BR112021007273A2 - método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória - Google Patents

método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória Download PDF

Info

Publication number
BR112021007273A2
BR112021007273A2 BR112021007273-0A BR112021007273A BR112021007273A2 BR 112021007273 A2 BR112021007273 A2 BR 112021007273A2 BR 112021007273 A BR112021007273 A BR 112021007273A BR 112021007273 A2 BR112021007273 A2 BR 112021007273A2
Authority
BR
Brazil
Prior art keywords
information
transform coefficients
prefix
current block
region
Prior art date
Application number
BR112021007273-0A
Other languages
English (en)
Inventor
Jungah CHOI
Sunmi YOO
Jin Heo
Ling Li
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 BR122021011813-2A priority Critical patent/BR122021011813A2/pt
Publication of BR112021007273A2 publication Critical patent/BR112021007273A2/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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

MÉTODO DE DECODIFICAÇÃO DE IMAGENS ATRAVÉS DE UM APARELHO DE DECODIFICAÇÃO, MÉTODO DE CODIFICAÇÃO DE IMAGENS ATRAVÉS DE UM APARELHO DE CODIFICAÇÃO E MÍDIA DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIA. Trata-se de um método de decodificação de imagens por um aparelho decodificador que, de acordo com a presente invenção, compreende as etapas de: receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada quantizados referentes a um bloco atual com base nas informações residuais incluídas no fluxo de bits; derivar amostras residuais referentes ao bloco atual com base nos coeficientes de transformada quantizados; e gerar uma gravura reconstruída com base nas amostras residuais referentes ao bloco atual.

Description

"MÉTODO DE DECODIFICAÇÃO DE IMAGENS ATRAVÉS DE UM APARELHO DE DECODIFICAÇÃO, MÉTODO DE CODIFICAÇÃO DE IMAGENS ATRAVÉS DE UM APARELHO DE CODIFICAÇÃO E MÍDIA DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIA"
ANTECEDENTES DA INVENÇÃO Campo da Invenção
[001] A presente invenção refere-se a uma técnica de codificação de imagens, mais particularmente a um método para codificar um coeficiente de transformada com base na zeração de alta frequência em um sistema de codificação de imagens, e a um aparelho para o mesmo. Técnica Relacionada
[002] Hoje em dia, a demanda por imagens/vídeos de alta qualidade e em alta resolução, tais como imagens/vídeos em 4K, 8K ou ultra-alta definição (UHD), vem crescendo em vários setores. À medida que a resolução e qualidade dos dados de imagem/vídeo crescem, a quantidade de informação ou de bits transmitida cresce em comparação aos dados de imagem convencionais. Logo, quando dados de imagem são transmitidos usando um meio, tal como uma linha de banca larga convencional com fio/sem fio, ou dados de imagem/vídeo são armazenados usando um meio de armazenamento existente, o custo para transmissão e o custo para armazenamento dos mesmos aumentam.
[003] Logo, hoje em dia, o interesse e a demanda por meios imersivos, tais como conteúdo ou hologramas de realidade virtual (RV), realidade artificial (RA) ou seus semelhantes, estão crescendo, e a difusão de imagens/vídeos com recursos de imagem diferentes dos recursos de imagens reais, tais como uma imagem de jogo eletrônico, está crescendo.
[004] Logo, existe a necessidade por uma técnica de compressão de imagem/vídeo altamente eficaz para comprimir e transmitir, ou armazenar, e reproduzir com eficácia informações de alta resolução e imagens/vídeos de alta qualidade com vários recursos como os descritos acima.
SUMÁRIO
[005] Um problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que aumentem a eficácia na codificação de imagens.
[006] Outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que aumentem a eficácia na codificação residual.
[007] Ainda outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que aumentem a eficácia na codificação no nível dos coeficientes de transformada.
[008] Ainda outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que aumentem a eficácia na codificação residual ao codificar um coeficiente de transformada com base na zeração de alta frequência.
[009] Ainda outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que posicionem no código informações de um último coeficiente significativo em um bloco atual (ou bloco de transformada atual) com base na zeração de alta frequência.
[010] Ainda outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que derivem o comprimento máximo de uma palavra-código que representa um último coeficiente de transformada significativo com base no tamanho de uma região no bloco atual, à qual a zeração de alta frequência não é aplicada quando os coeficientes de transformada para o bloco atual (ou bloco de transformada atual) são codificados com base na zeração de alta frequência.
[011] Ainda outro problema técnico de que a presente invenção tratará consiste em propor um método e aparelho que binarizem as informações de prefixo do último coeficiente significativo e as informações de sufixo do último coeficiente significativo quando a zeração de alta frequência for realizada.
[012] De acordo com um exemplo da presente invenção, é proposto um método de decodificação de imagens que é executado por um aparelho decodificador. O método inclui receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas no fluxo de bits; derivar coeficientes de transformada para o bloco atual a partir dos coeficientes de transformada quantizados com base em um processo de quantização inversa; derivar amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados; e gerar uma gravura (picture) reconstruída com base nas amostras residuais para o bloco atual, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero é determinada com base na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[013] De acordo com outro exemplo da presente invenção, é proposto um aparelho decodificador para executar a decodificação de imagens. O aparelho decodificador inclui um decodificador por entropia que recebe um fluxo de bits que inclui informações residuais e deriva coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas no fluxo de bits; um desquantizador que deriva coeficientes de transformada para o bloco atual a partir dos coeficientes de transformada quantizados com base em um processo de quantização inversa; um transformador inverso que deriva amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados; e um somador que gera uma gravura reconstruída com base nas amostras residuais para o bloco atual, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero é determinada com base na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[014] De acordo com ainda outro exemplo da invenção, é proposto um método de codificação de imagens que é executado por um aparelho codificador. O método inclui derivar amostras residuais para um bloco atual; derivar coeficientes de transformada para o bloco atual ao transformar as amostras residuais para o bloco atual; derivar coeficientes de transformada quantizados a partir dos coeficientes de transformada com base em um processo de quantização; e codificar informações residuais que incluem informações sobre os coeficientes de transformada quantizados, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta por um coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero baseia-se na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código do prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[015] De acordo com ainda outro exemplo da presente invenção, é proposto um aparelho codificador para executar a codificação de imagens. O aparelho codificador inclui um subtrator que deriva amostras residuais para um bloco atual; um transformador que deriva coeficientes de transformada para o bloco atual ao transformar as amostras residuais para o bloco atual; um quantizador que deriva coeficientes de transformada quantizados a partir dos coeficientes de transformada com base em um processo de quantização; e um codificador por entropia que codifica informações residuais que incluem informações sobre os coeficientes de transformada quantizados, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta por um coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero baseia-se na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código do prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[016] De acordo com ainda outro exemplo da presente invenção, é proposto um meio de armazenamento legível por decodificador que armazena informações sobre instruções que fazem com que um aparelho decodificador de vídeo execute métodos de decodificação de acordo com alguns exemplos.
[017] De acordo com ainda outro exemplo da presente invenção, é proposto um meio de armazenamento legível por decodificador que armazena informações sobre instruções que fazem com que um aparelho decodificador de vídeo execute um método de decodificação de acordo com um exemplo. O método de decodificação de acordo com o exemplo inclui receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas no fluxo de bits; derivar coeficientes de transformada para o bloco atual a partir dos coeficientes de transformada quantizados com base em um processo de quantização inversa; derivar amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados; e gerar uma gravura reconstruída com base nas amostras residuais para o bloco atual, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero é determinada com base na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[018] De acordo com a presente invenção, é possível aumentar a eficácia geral na compressão de imagens/vídeo.
[019] De acordo com a presente invenção, é possível aumentar a eficácia na codificação residual.
[020] De acordo com a presente invenção, é possível aumentar a eficácia na codificação no nível dos coeficientes de transformada.
[021] De acordo com a presente invenção, é possível aumentar a eficácia na codificação residual ao codificar um coeficiente de transformada com base na zeração de alta frequência (ou redução a zero de alta frequência).
[022] De acordo com a presente invenção, é possível aumentar a eficácia na codificação de imagens ao codificar informações de posição de um último coeficiente de transformada significativo em um bloco atual (ou bloco de transformada atual) com base na zeração de alta frequência.
[023] De acordo com a presente invenção, é possível aumentar a eficácia na codificação de imagens ao derivar o comprimento máximo de uma palavra-código que representa um último coeficiente de transformada significativo com base no tamanho de uma região no bloco atual, à qual a zeração de alta frequência não é aplicada quando os coeficientes de transformada para o bloco atual (ou bloco de transformada atual) são codificados com base na zeração de alta frequência.
[024] De acordo com a presente invenção, quando a zeração de alta frequência é aplicada, ao executar a binarização sobre um elemento de sintaxe com base no tamanho de uma região de zeração de baixa frequência (ou região à qual a zeração de alta frequência não é aplicada), é possível executar a codificação com mais eficácia e aprimorar o tempo de processamento da CABAC por reduzir o número de bins codificados por contexto.
BREVE DESCRIÇÃO DOS DESENHOS
[025] A Fig. 1 representa esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente invenção pode ser aplicada.
[026] A Fig. 2 é um diagrama que descreve esquematicamente uma configuração de um aparelho codificador de vídeo/imagem ao qual a presente invenção pode ser aplicada.
[027] A Fig. 3 é um diagrama que descreve esquematicamente uma configuração de um aparelho decodificador de vídeo/imagem ao qual a presente invenção pode ser aplicada.
[028] As Figs. 4A e 4B são um desenho para explicar a configuração e operação do codificador por entropia de acordo com um exemplo.
[029] As Figs. 5A e 5B são um desenho para explicar a configuração e método de operação de um decodificador por entropia de acordo com um exemplo.
[030] A Fig. 6 é um desenho para explicar a zeração de alta frequência de acordo com um exemplo.
[031] A Fig. 7 é um fluxograma que ilustra a operação de um aparelho codificador de acordo com um exemplo.
[032] A Fig. 8 é um diagrama em blocos que ilustra uma configuração de um aparelho codificador de acordo com um exemplo.
[033] A Fig. 9 é um fluxograma que ilustra a operação de um aparelho decodificador de acordo com um exemplo.
[034] A Fig. 10 é um diagrama em blocos que ilustra uma configuração de um aparelho decodificador de acordo com um exemplo.
[035] A Fig. 11 representa um exemplo de um sistema de transmissão de conteúdo ao qual a presente invenção pode ser aplicada.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICATIVAS
[036] De acordo com um exemplo da presente invenção, é proposto um método de decodificação de imagens que é executado por um aparelho decodificador. O método inclui receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas no fluxo de bits; derivar coeficientes de transformada para o bloco atual a partir dos coeficientes de transformada quantizados com base em um processo de quantização inversa; derivar amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados; e gerar uma gravura reconstruída com base nas amostras residuais para o bloco atual, em que cada um dos coeficientes de transformada para o bloco atual refere-se a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero é determinada com base na palavra-código do prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo é determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[037] Embora a presente invenção seja suscetível a várias modificações e inclua várias modalidades, modalidades específicas da mesma são ilustradas à guisa de exemplo nos desenhos e serão descritas em detalhes doravante. No entanto, não tenciona-se limitar a presente invenção às modalidades específicas reveladas neste documento. A terminologia usada neste documento serve tão somente à finalidade de descrever modalidades específicas, não havendo intenção de limitar a ideia técnica da presente invenção. As formas no singular podem incluir as formas no plural, salvo quando o contexto ditar claramente o contrário. Termos como "compreender", "incluir" e seus semelhantes visam a indicar que os recursos, números, etapas, operações, elementos, componentes ou combinações desses usados na descrição a seguir existem, e, portanto, não deve-se interpretá-los como se a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes ou combinações desses diferentes fosse excluída de antemão.
[038] Por outro lado, cada componente nos desenhos descrito neste documento é ilustrado de maneira independente para fins de conveniência na descrição de funções características diferentes uns dos outros, e, todavia, não tenciona-se que cada componente seja concretizado por um hardware ou software distinto. Por exemplo, quaisquer dois ou mais desses componentes podem ser combinados para formar um mesmo componente, e qualquer componente pode ser dividido em vários. As modalidades nas quais componentes são combinados e/ou divididos enquadrar-se-ão no âmbito do direito de patente da presente invenção contanto que não divirjam da essência da presente invenção.
[039] Doravante, explicar-se-ão modalidades preferidas da presente invenção em mais detalhes e com referência aos desenhos anexos. Doravante, símbolos de referência iguais são usados para os mesmos componentes nos desenhos, e descrições repetidas para os mesmos componentes podem ser omitidas.
[040] A Fig. 1 representa esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente invenção pode ser aplicada.
[041] O presente documento refere-se à codificação de vídeo/imagem. Por exemplo, os métodos/modalidades revelados neste documento podem aplicar-se a um método revelado na 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), na 2ª geração do padrão de codificação de áudio e vídeo (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.).
[042] O presente documento traz várias modalidades de codificação de vídeo/imagem, e essas modalidades podem ser executadas em combinação umas às outras, salvo menção em contrário.
[043] No presente documento, vídeo pode referir-se a uma sequência de imagens ao longo do tempo. Em termos gerais, gravura refere-se a uma unidade que representa uma imagem em uma zona temporal específica, e uma fatia/ladrilho (slice/tile) é uma unidade que constitui parte de uma gravura na codificação. A fatia/ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma gravura pode ser composta por um ou mais fatias/ladrilhos. Uma gravura pode ser composta por um ou mais grupos de ladrilhos. Um grupo de ladrilhos pode incluir um ou mais ladrilhos. Um tijolo (brick) pode representar uma região retangular de linhas de CTU dentro de um ladrilho em uma gravura. Um ladrilho pode ser dividido em vários tijolos, cada um dos quais composto por uma ou mais linhas de CTU dentro do ladrilho. Um ladrilho que não é dividido em vários tijolos também pode ser chamado de tijolo. Uma varredura de tijolos é uma ordenação sequencial específica das CTUs que dividem uma imagem na qual as CTUs são ordenadas consecutivamente em uma varredura rastreada de CTU em um tijolo, os tijolos dentro de um ladrilho são ordenados consecutivamente em uma varredura rastreada dos tijolos do ladrilho e os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura rastreada dos ladrilhos da gravura. Um ladrilho é uma região retangular de CTUs dentro de uma coluna de ladrilhos específica e uma linha de ladrilhos específica em uma gravura. A coluna de ladrilhos é uma região retangular de CTUs com uma altura igual à altura da gravura e uma largura especificada por elementos de sintaxe no conjunto de parâmetros de gravura. A linha de ladrilhos é uma região retangular de CTUs com uma altura especificada por elementos de sintaxe no conjunto de parâmetros de gravura e uma largura igual à largura da gravura. Uma varredura de ladrilhos é uma ordenação sequencial específica de CTUs que dividem uma gravura na qual as CTUs são ordenadas consecutivamente em uma varredura rastreada de CTU em um ladrilho, ao passo que os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura rastreada dos ladrilhos da gravura. Uma fatia inclui um número inteiro de tijolos de uma gravura que podem ser contidos exclusivamente em uma única unidade NAL. Uma fatia pode consistir ou no número de ladrilhos completos ou apenas em uma sequência consecutiva de tijolos completos de um ladrilho. Grupos de ladrilhos e fatias podem ser usados de maneira intercambiável neste documento. Por exemplo, neste documento, um grupo de ladrilhos/cabeçalho de grupo de ladrilhos pode ser chamado de fatia/cabeçalho de fatia.
[044] Um pixel ou um pel podem significar a menor unidade que constitui uma gravura (ou imagem). Além disso, "amostra" pode ser usado como um termo correspondente a um pixel. Uma amostra pode representar, em termos gerais, um pixel ou um valor de um pixel, e pode representar somente um pixel/valor de pixel de um componente luma ou somente um pixel/valor de pixel de um componente croma.
[045] Uma unidade pode representar uma unidade básica de processamento de imagem. A unidade pode incluir ao menos uma região específica da gravura e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos croma (por exemplo, cb, cr). O termo "unidade" pode ser usado de maneira intercambiável com termos como "bloco" ou "área", em alguns casos. Em um caso geral, um bloco M×N pode incluir amostras (ou arranjos de amostras) ou um conjunto (ou arranjo) de coeficientes de transformada de M colunas e N linhas.
[046] Neste documento, os termos "/" e "," devem ser interpretados como se indicassem "e/ou". Por exemplo, a expressão "A/B" pode significar "A e/ou B". Além disso, "A, B" pode significar "A e/ou B". Ademais, "A/B/C" pode significar "ao menos um de A, B e/ou C". Além do mais, "A/B/C" pode significar "ao menos um de A, B e/ou C".
[047] Além disso, no documento, o termo "ou" deve ser interpretado como se indicasse "e/ou". Por exemplo, a expressão "A ou B" pode compreender 1) somente A, 2) somente B e/ou 3) ambos A e B. Em outras palavras, o termo "ou", neste documento, deve ser interpretado como se indicasse "em aditamento, ou como alternativa".
[048] Com referência à Figura 1, um sistema codificador de vídeo/imagem pode incluir um primeiro dispositivo (dispositivo de origem) e um segundo dispositivo (dispositivo receptor). O dispositivo de origem pode distribuir informações ou dados de vídeo/imagem codificados na forma de um arquivo ou transmissão ao dispositivo receptor através de um meio de armazenamento digital ou rede.
[049] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho codificador e um transmissor. O dispositivo receptor pode incluir um receptor, um aparelho decodificador e um renderizador. O aparelho codificador pode ser chamado de aparelho codificador de vídeo/imagem, e o aparelho decodificador pode ser chamado de aparelho decodificador de vídeo/imagem. O transmissor pode ser incluído no aparelho codificador. O receptor pode ser incluído no aparelho decodificador. O renderizador pode incluir uma tela, e a tela pode ser configurada como um dispositivo distinto ou um componente externo.
[050] A fonte de vídeo pode adquirir vídeo/imagens através de um processo de captura, sinterização ou geração do vídeo/imagens. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo gerador 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 que incluem vídeo/imagens previamente capturados, e seus semelhantes. O dispositivo gerador 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 seus semelhantes. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de gerar dados relacionados.
[051] O aparelho codificador pode codificar vídeo/imagens de entrada. O aparelho codificador pode executar uma série de procedimentos, tais como predição, transformada e quantização, para eficácia na compressão e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser enviados na forma de um fluxo de bits.
[052] O transmissor pode transmitir a imagem/informações ou dados de imagem codificados enviados na forma de um fluxo de bits ao receptor do dispositivo receptor através de um meio de armazenamento digital ou rede na forma de um arquivo ou transmissão. O meio de armazenamento digital pode incluir vários meios de armazenamento, tais como USB, SD, CD, DVD, Blu-ray, HDD, SSD e seus semelhantes. O transmissor pode incluir um elemento para gerar um arquivo de mídia por meio 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 transmiti-lo ao aparelho decodificador.
[053] O aparelho decodificador pode decodificar o vídeo/imagem executando uma série de procedimentos, tais como desquantização, transformada inversa e predição, correspondentes à operação do aparelho codificador.
[054] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido na tela.
[055] A Fig. 2 é um diagrama que descreve esquematicamente uma configuração de um aparelho codificador de vídeo/imagem ao qual a presente invenção pode ser aplicada. Doravante, aquilo que for chamado de aparelho codificador de vídeo pode incluir um aparelho codificador de imagem.
[056] Com referência à Figura 2, o aparelho codificador 200 inclui um divisor de imagem 210, um preditor 220, um processador residual 230, um codificador por entropia 240, um somador 250, um filtro 260 e uma memória 270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 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 ainda um subtrator 231. O somador 250 pode ser chamado de reconstrutor ou gerador de blocos reconstruídos. O divisor de imagem 210, o preditor 220, o processador residual 230, o codificador por entropia 240, o somador 250 e o filtro 260 podem ser configurados por ao menos um componente de hardware (por exemplo, um chipset ou processador de codificador) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um buffer de gravuras decodificadas (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir ainda a memória 270 como um componente interno/externo.
[057] O divisor de imagem 210 pode dividir uma imagem de entrada (ou uma gravura ou um quadro) introduzida no aparelho de codificação 200 em um ou mais processadores.
Por exemplo, o processador pode ser chamado de unidade de codificação (CU). Nesse caso, a unidade de codificação pode ser recursivamente dividida de acordo com uma estrutura árvore quaternária árvore binária árvore ternária (QTBTTT) a partir de uma unidade de árvore de codificação (CTU) ou de uma unidade de codificação maior (LCU). Por exemplo, uma unidade de codificação pode ser dividida em uma pluralidade de unidades de codificação mais profundas 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 primeiramente, e a estrutura de árvore binária e/ou estrutura ternária podem ser aplicadas mais tarde.
Como alternativa, a estrutura de árvore binária pode ser aplicada primeiramente.
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 dividida.
Nesse caso, a unidade de codificação maior pode ser usada como a unidade de codificação final com base na eficácia de codificação de acordo com características da imagem, ou, se necessário, a unidade de codificação pode ser recursivamente dividida em unidades de codificação mais profundas e uma unidade de codificação com 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, transformada e reconstrução, que serão descritos mais adiante.
Em outro exemplo, o processador pode incluir ainda uma unidade de predição (PU) ou uma unidade de transformada (TU). Nesse caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas a partir da unidade de codificação final supramencionada.
A unidade de predição pode ser uma unidade de predição de amostra, e a unidade de transformada pode ser uma unidade para derivar um coeficiente de transformada e/ou uma unidade para derivar um sinal residual a partir do coeficiente de transformada.
[058] O termo "unidade" pode ser usado de maneira 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 ou coeficientes de transformada composto por M colunas e N linhas. Uma amostra pode representar, em termos gerais, um pixel ou um valor de um pixel, pode representar somente um pixel/valor de pixel de um componente luma ou representar somente um pixel/valor de pixel de um componente croma. "Amostra" pode ser usado como um termo correspondente a uma gravura (ou imagem) para um pixel ou um pel.
[059] No aparelho codificador 200, um sinal de predição (bloco predito, arranjo de amostras de predição) emitido a partir do interpreditor 221 ou intrapreditor 222 é subtraído de um sinal de imagem de entrada (bloco original, arranjo de amostras originais) para gerar um sinal residual (bloco residual, arranjo de amostras residuais), e o sinal residual gerado é transmitido ao transformador 232. Nesse caso, como ilustrado, uma unidade para subtrair um sinal de predição (bloco predito, arranjo de amostras de predição) do sinal de imagem de entrada (bloco original, arranjo de amostras originais) no codificador 200 pode ser chamada de subtrator
231. O preditor pode executar a predição em um bloco a ser processado (doravante, chamado de bloco atual) e gerar um bloco predito que inclui amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada com base no bloco atual ou CU. Como descrito mais adiante na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, tais como informações de modo de predição, e transmiti-las ao codificador por entropia 240. As informações sobre a predição podem ser codificadas no codificador por entropia 240 e emitidas na forma de um fluxo de bits.
[060] O intrapreditor 222 pode predizer o bloco atual ao referir-se às amostras na gravura atual. As amostras referidas podem situar-se nos arredores do bloco atual ou podem localizar-se distantes de acordo com o modo de predição. Na intrapredição, 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 mono 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. No entanto, esse é só um exemplo, mais ou menos modos de predição direcionais podem ser usados dependendo das configurações. O intrapreditor 222 pode determinar o modo de predição aplicado ao bloco atual usando um modo de predição aplicado a um bloco vizinho.
[061] O interpreditor 221 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostras de referência) especificado por um vetor de movimento em uma gravura de referência. Aqui, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas 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 gravuras de referência. As informações de movimento podem incluir ainda informações de direção de interpredição (predição L0, predição L1, predição Bi etc.). No caso da interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. A gravura de referência que inclui o bloco de referência e a gravura de referência que inclui o bloco vizinho temporal podem ser a mesma ou diferentes. O bloco vizinho temporal pode ser chamado de bloco de referência colocalizado, uma CU colocalizada (colCU) e seus semelhantes, e a gravura de referência que inclui o bloco vizinho temporal pode ser chamada de gravura colocalizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos a informação de movimento com base em blocos vizinhos e gerar informações indicativas de qual candidato é usado para derivar um vetor de movimento e/ou um índice de gravuras de referência do bloco atual. A interpredição 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 fusão, o interpreditor 221 pode utilizar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de salto, à diferença do modo de fusão, o sinal residual pode não ser transmitido. No caso do modo de predição de vetores de movimento (MVP), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetores de movimento e o vetor de movimento do bloco atual pode ser indicado ao sinalizar uma diferença entre vetores de movimento.
[062] 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 intrapredição ou interpredição para predizer um bloco mas também aplicar simultaneamente tanto intrapredição quanto interpredição. Isso pode ser chamado de interpredição e intra (CIIP). Além disso, o preditor pode basear-se em um modo de predição cópia intrablocos (IBC) ou em um modo paleta para a predição de um bloco. O modo de predição IBC ou modo paleta podem ser usados para a codificação de imagens/vídeo de conteúdo de um jogo eletrônico, ou de algo do gênero, por exemplo, para a codificação de conteúdo de tela (SCC). A IBC realiza basicamente a predição na gravura atual mas pode ser realizada à semelhança da interpredição no sentido que um bloco de referência é derivado na gravura atual. Ou seja, a IBC pode utilizar ao menos uma das técnicas de interpredição descritas neste documento. O modo paleta pode ser considerado um exemplo da codificação intra ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base em informações na tabela de paletas e no índice de paletas.
[063] O sinal de predição gerado pelo preditor (inclusive o interpreditor 221 e/ou o intrapreditor 222) pode ser usado para gerar um sinal reconstruído ou para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformada aplicando uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir ao menos um de 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 de um gráfico quando as informações de relação entre pixels são representadas por ele. A CNT refere-se a uma transformada gerada com base em um sinal de predição gerado usando todos os pixels previamente reconstruídos. Além disso, o processo de transformada pode ser aplicado a blocos de pixels quadrados com as mesmas dimensões ou pode ser aplicado a blocos com dimensões variadas em vez de quadrados.
[064] O quantizador 233 pode quantizar os coeficientes de transformada e transmiti-los ao codificador por entropia 240, e o codificador por entropia 240 pode codificar o sinal quantizado (as 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 reorganizar os coeficientes de transformada quantizados por tipo de bloco em uma forma de vetor unidimensional com base na ordem de varredura dos coeficientes e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados na forma de um vetor unidimensional. Informações sobre os coeficientes de transformada podem ser geradas. O codificador por entropia 240 pode executar vários métodos de codificação como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), e seus semelhantes. O codificador por entropia 240 pode codificar informações necessárias para a reconstrução de vídeo/imagens que não os coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe etc.) conjunta ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em unidades de NALs (camadas de abstração de rede) na forma de um fluxo de bits. As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, tais como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (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 ainda informações de restrição gerais. No presente documento, as informações e/ou elementos de sintaxe transmitidos/sinalizados do aparelho codificador ao aparelho decodificador podem ser incluídos nas informações de vídeo/imagem. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação supradescrito e incluídas no fluxo de bits. O fluxo de bits pode ser transmitido por uma rede ou 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, tal como USB, SD, CD, DVD, Blu-ray, HDD, SSD e seus semelhantes. Um transmissor (não ilustrado) que transmite um sinal emitido pelo codificador por entropia 240 e/ou por uma unidade de armazenamento (não ilustrada) que armazena o sinal pode ser incluído como um elemento interno/externo do aparelho codificador 200, e, como alternativa, o transmissor pode ser incluído no codificador por entropia 240.
[065] Os coeficientes de transformada quantizados emitidos pelo 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 desquantização e transformada inversa dos coeficientes de transformada quantizados por meio do desquantizador 234 e da transformada inversa 235. O somador 250 adiciona o sinal residual reconstruído ao sinal de predição emitido pelo interpreditor 221 ou intrapreditor 222 para gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, conjunto de amostras reconstruídas). Se não houver resíduo para o bloco a ser processado, como no caso em que o modo de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído. O somador 250 pode ser chamado de reconstrutor ou gerador de blocos reconstruídos. O sinal reconstruído gerado pode ser usado para a intrapredição de um próximo bloco a ser processado na gravura atual e pode ser usado para a interpredição de uma próxima gravura por meio de filtragem, conforme descrito abaixo.
[066] Por outro lado, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado durante a codificação e/ou reconstrução de uma gravura.
[067] O filtro 260 pode aprimorar a qualidade de imagem subjetiva/objetiva ao aplicar filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma gravura reconstruída modificada ao aplicar vários métodos de filtragem à gravura reconstruída e armazenar a gravura reconstruída modificada na memória 270, mais especificamente em um DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desblocagem, um desvio adaptativo de amostra, um filtro de loop adaptativo, um filtro bilateral e seus semelhantes. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmiti-las ao codificador por entropia 240, conforme descrito mais adiante na descrição de cada método de filtragem. As informações relacionadas à filtragem podem ser codificadas pelo codificador por entropia 240 e emitidas na forma de um fluxo de bits.
[068] A gravura reconstruída modificada transmitida à memória 270 pode ser usada como a gravura de referência no interpreditor 221. Quando a interpredição é aplicada através do aparelho codificador, evita-se a incompatibilidade de predição entre o aparelho codificador 200 e o aparelho decodificador, e a eficácia de codificação é aprimorada.
[069] O DPB da memória 270 pode armazenar a gravura reconstruída modificada para uso como uma gravura de referência no interpreditor 221. A memória 270 pode armazenar as informações de movimento do bloco do qual as informações de movimento na gravura atual derivam (ou são codificadas) e/ou as informações de movimento dos blocos na gravura que foram reconstruídos. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 221 e usadas como as informações de movimento do bloco vizinho espacial ou como as informações de movimento do bloco vizinho temporal. A memória 270 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e pode transferir as amostras reconstruídas ao intrapreditor 222.
[070] A Figura 3 é um diagrama esquemático que ilustra uma configuração de um aparelho decodificador de vídeo/imagem ao qual a(s) modalidade(s) do presente documento pode(m) ser aplicada(s).
[071] Com referência à Figura 3, o aparelho decodificador 300 pode incluir um decodificador por entropia 310, um processador residual 320, um preditor 330, um somador 340, um filtro 350, uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador por entropia 310, o processador residual 320, o preditor 330, o somador 340 e o filtro 350 podem ser configurados por ao menos um componente de hardware (por exemplo, um chipset ou processador de decodificador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de gravuras decodificadas (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir ainda a memória 360 como um componente interno/externo.
[072] Quando um fluxo de bits que inclui informações de vídeo/imagem chega, o aparelho decodificador 300 pode reconstruir uma imagem de maneira correspondente a um processo no qual as informações de vídeo/imagem são processadas no aparelho codificador da Figura 2. Por exemplo, o aparelho decodificador 300 pode derivar unidades/blocos com base em informações referentes à partição em blocos obtidas do fluxo de bits. O aparelho decodificador 300 pode executar a decodificação usando um processador aplicado no aparelho codificador. Sendo assim, 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 a partir da unidade de codificação ou unidade de codificação maior. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. O sinal de imagem reconstruído decodificado e emitido através do aparelho decodificador 300 pode ser reproduzido através de um aparelho reprodutor.
[073] O aparelho decodificador 300 pode receber um sinal emitido pelo aparelho codificador da Figura 2 na forma de um fluxo de bits, e o sinal recebido pode ser decodificado pelo decodificador por entropia 310. Por exemplo, o decodificador por entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias à reconstrução de imagens (ou à reconstrução de gravuras). As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, tais como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (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 ainda informações de restrição gerais. O aparelho decodificador pode ainda decodificar uma gravura com base nas informações sobre o conjunto de parâmetros e/ou nas informações de restrição gerais.
As informações e/ou elementos de sintaxe sinalizados/recebidos descritos mais adiante neste documento podem ser decodificados pelo procedimento de decodificação e obtidos a partir do fluxo de bits.
Por exemplo, o decodificador por entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação, tal como codificação de Golomb exponencial, CAVLC ou CABAC, e emite elementos de sintaxe necessários à reconstrução de imagens e valores dos coeficientes de transformada quantizados para resíduos.
Mais especificamente, o método de decodificação por 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 alvo de decodificação, decodificar informações de um bloco alvo de decodificação ou informações de um símbolo/bin decodificado em um estágio anterior, e executar uma decodificação aritmética sobre o bin ao predizer a 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 por 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 referentes à predição dentre as informações decodificadas pelo decodificador por entropia 310 podem ser encaminhadas ao preditor (ao interpreditor 332 e ao intrapreditor 331), e o valor residual sobre o qual a decodificação por entropia foi realizada no decodificador por entropia 310, ou seja, os coeficientes de transformada e informações de parâmetro relacionadas, pode ser introduzido no processador residual 320. O processador residual 320 pode derivar o sinal residual (o bloco residual, as amostras residuais, o arranjo de amostras residuais). Além disso, as informações sobre a filtragem dentre as informações decodificadas pelo decodificador por entropia 310 podem ser encaminhadas ao filtro
350. Por outro lado, um receptor (não ilustrado) para receber um sinal emitido pelo aparelho codificador pode ser adicionalmente configurado como um elemento interno/externo do aparelho decodificador 300, ou o receptor pode ser um componente do decodificador por entropia 310. Por outro lado, o aparelho decodificador de acordo com o presente documento pode ser chamado de aparelho decodificador de vídeo/imagem/gravura, e o aparelho decodificador pode ser classificado como um decodificador de informações (decodificador de informações de vídeo/imagem/gravura) e um decodificador de amostras (decodificador de amostras de vídeo/imagens/gravura). O decodificador de informações pode incluir o decodificador por entropia 310, e o decodificador de amostras pode incluir ao menos um dentre o desquantizador 321, o transformador inverso 322, o somador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331.
[074] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir os coeficientes de transformada. O desquantizador 321 pode reorganizar os coeficientes de transformada quantizados na forma de um bloco bidimensional. Nesse caso, a reorganização pode ser realizada com base na ordem de varredura dos coeficientes executada no aparelho codificador. O desquantizador 321 pode executar a desquantização sobre os coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informações do tamanho das etapas de quantização) e obter coeficientes de transformada.
[075] O transformador inverso 322 transforma inversamente os coeficientes de transformada para obter um sinal residual (bloco residual, arranjo de amostras residuais).
[076] O preditor pode executar predição sobre o bloco atual e gerar um bloco predito que inclui amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada ao bloco atual com base nas informações sobre a predição emitidas pelo decodificador por entropia 310 e pode determinar um modo de intrapredição/inter específico.
[077] 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 intrapredição ou interpredição para predizer um bloco mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser chamado de interpredição e intra (CIIP). Além disso, o preditor pode basear-se em um modo de predição cópia intrablocos (IBC) ou em um modo paleta para a predição de um bloco. O modo de predição IBC ou modo paleta podem ser usados para a codificação de imagens/vídeo de conteúdo de um jogo eletrônico, ou de algo do gênero, por exemplo, para a codificação de conteúdo de tela (SCC). A IBC realiza basicamente a predição na gravura atual mas pode ser realizada à semelhança da interpredição no sentido que um bloco de referência é derivado na gravura atual. Ou seja, a IBC pode utilizar ao menos uma das técnicas de interpredição descritas neste documento. O modo paleta pode ser considerado um exemplo da codificação intra ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base em informações na tabela de paletas e no índice de paletas.
[078] O intrapreditor 331 pode predizer o bloco atual ao referir-se às amostras na gravura atual. As amostras referidas podem situar-se nos arredores do bloco atual ou podem localizar-se distantes de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 331 pode determinar o modo de predição aplicado ao bloco atual usando um modo de predição aplicado a um bloco vizinho.
[079] O interpreditor 332 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostras de referência)
especificado por um vetor de movimento em uma gravura de referência. Nesse caso, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas 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 gravuras de referência. As informações de movimento podem incluir ainda informações de direção de interpredição (predição L0, predição L1, predição Bi etc.). No caso da interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidatos a informações de movimento com base em blocos vizinhos e derivar um vetor de movimento e/ou um índice de gravuras de referência com base nas informações de seleção de candidato recebidas. A interpredição pode ser executada com base em vários modos de predição, e as informações sobre a predição podem incluir informações indicativas de um modo de interpredição para o bloco atual.
[080] O somador 340 pode gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, arranjo de amostras reconstruídas) ao adicionar o sinal residual obtido ao sinal de predição (bloco predito, arranjo de amostras preditas) emitido a partir do preditor (incluindo do interpreditor 332 e/ou do intrapreditor 331). Se não houver resíduo para o bloco a ser processado, tal como quando o caso de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído.
[081] O somador 340 pode ser chamado de reconstrutor ou gerador de blocos reconstruídos. O sinal reconstruído gerado pode ser usado para a intrapredição de um próximo bloco a ser processado na gravura atual, pode ser emitido através de filtragem conforme descrito abaixo ou pode ser usado para a interpredição de uma próxima gravura.
[082] Por outro lado, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado no processo de decodificação de gravura.
[083] O filtro 350 pode aprimorar a qualidade de imagem subjetiva/objetiva ao aplicar filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma gravura reconstruída modificada ao aplicar vários métodos de filtragem à gravura reconstruída e armazenar a gravura reconstruída modificada na memória 360, mais especificamente em um DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desblocagem, um desvio adaptativo de amostra, um filtro de loop adaptativo, um filtro bilateral e seus semelhantes.
[084] A gravura reconstruída (modificada) armazenada no DPV da memória 360 pode ser usada como uma gravura de referência no interpreditor 332. A memória 360 pode armazenar as informações de movimento do bloco do qual as informações de movimento na gravura atual derivam (ou são decodificadas) e/ou as informações de movimento dos blocos na gravura que foram reconstruídos. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 260 para ser utilizadas como as informações de movimento do bloco vizinho espacial ou como as informações de movimento do bloco vizinho temporal. A memória 360 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transferir as amostras reconstruídas ao intrapreditor 331.
[085] Na presente revelação, as modalidades descritas no filtro 260, no interpreditor 221 e no intrapreditor 222 do aparelho codificador 200 podem ser as mesmas para o filtro 350, o interpreditor 332 e o intrapreditor 331 do aparelho decodificador 300, ou aplicadas para corresponder respectivamente a esses. O mesmo também aplica-se à unidade 332 e ao intrapreditor 331.
[086] Como descrito acima, a predição é realizada a fim de aumentar a eficácia na compressão ao executar a codificação de vídeo. Com isso, um bloco predito que inclui amostras de predição para um bloco atual, que é um bloco alvo de codificação, podem ser geradas. Aqui, o bloco predito inclui amostras de predição em um domínio de espaço (ou domínio de pixel). O bloco predito pode ser derivado de maneira idêntica no aparelho codificador e no aparelho decodificador, e o aparelho codificador pode aumentar a eficácia na codificação de imagens ao sinalizar ao aparelho decodificador não o valor de amostra original de um bloco original em si, mas sim informações sobre o resíduo (informações residuais) entre o bloco original e o bloco predito. O aparelho decodificador pode derivar um bloco residual que inclui amostras residuais com base nas informações residuais, gerar um bloco reconstruído que inclui amostras de reconstrução ao adicionar o bloco residual ao bloco predito, e gerar uma gravura reconstruída que inclui blocos reconstruídos.
[087] As informações residuais podem ser geradas por procedimentos de transformada e quantização. Por exemplo, o aparelho codificador pode derivar um bloco residual entre o bloco original e o bloco predito, derivar coeficientes de transformada ao executar um procedimento de transformada sobre amostras residuais (arranjo de amostras residuais) incluídas no bloco residual, e derivar coeficientes de transformada quantizados ao executar um procedimento de quantização sobre os coeficientes de transformada, para que assim possa sinalizar informações residuais associadas ao aparelho decodificador (através de um fluxo de bits). Aqui, as informações residuais podem incluir informações de valor, informações de posição, uma técnica de transformada, um kernel de transformada, um parâmetro de quantização ou seus semelhantes dos coeficientes de transformada quantizados. O aparelho decodificador pode executar um procedimento de quantização/desquantização e derivar as amostras residuais (ou bloco de amostras residuais), com base em informações residuais. O aparelho decodificador pode gerar um bloco reconstruído com base em um bloco predito e no bloco residual. O aparelho codificador pode derivar um bloco residual ao desquantizar/transformar inversamente coeficientes de transformada quantizados para referência para a interpredição de uma próxima gravura, e pode gerar uma gravura reconstruída com base no mesmo.
[088] As Figs. 4A e 4B são um desenho para explicar a configuração e operação do codificador por entropia de acordo com uma modalidade.
[089] Com referência às Figs. 4A e 4B, o aparelho codificador (codificador por entropia) pode executar um procedimento de codificação residual sobre coeficientes de transformada (quantizados). O aparelho codificador pode executar a codificação residual sobre coeficientes de transformada (quantizados) no bloco atual (bloco de codificação (CB) atual ou bloco de transformada (TB) atual) de acordo com uma ordem de varredura conforme descrita mais adiante na Fig. 6. O aparelho codificador, por exemplo, pode gerar e codificar vários elementos de sintaxe com base em informações residuais conforme descrito na Tabela 1 abaixo. As etapas S400 e S410 podem ser incorporadas ao procedimento de codificação de informações residuais da Fig. 2. Tabela 1 residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { Descritor if( transform_skip_enabled_flag && ( cIdx ! = 0 I I cu_mts_flag[ x0 ][ y0 ] = = 0 ) && ( log2TbWidth <= 2 ) && ( log2TbHeight <= 2 ) ) transform_skip_flag[ x0 ][ y0 ][ cIdx ] ae(v) last_sig_coeff_x_prefix ae(y) last_sig_coeff_y_preiix ae(y) if( last_sig_coeff_x_prefix > 3 ) last_sig_coeff_x_suffix ae(v) if( last_sig_coeff_y_prefix > 3 ) last_sig_coeff_y_suffix ae(v)
log2SbSize = ( Min(log2TbWidth, log2TbHeight) < 2 ? 1 : 2 ) numSbCoeff = 1 << (log2SbSize << 1) lastScanPos = numSbCoeff lastSubBlock = (1 << ( log2Tb Width + log2TbHeight - 2 * log2SbSize) ) -1 do { if( lastScanPos = = 0) { lastScanPos = numSbCoeff lastSubBlock- - } lastScanPos- -
xS = DiagScanOrder[ log2TWidth - log2SbSize ][ log2TbHeight -log2SbSize ] [ lastSubBlock ][ 0 ]
yS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight -log2SbSize ] [ lastSubBlock ][ 1 ]
xC = ( xS << log2SbSize) + DiagScanOrder[ log2SbSize )[ log2SbSize ][ lastScanPos ][ 0 ]
yC = ( yS <<log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScauPbs ][ 1 ]
} while( (xC != LastSignificantCoeffX) | | ( yC != LastSignificantCoeffY ))
QState = 0 for{ i = lastSubBlock; i >= 0; i- -) { startQStateSb = QState xS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight -log2SbSize ] [ lastSubBlock ][ 0 ]
yS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight -Log2SbSize ] [ lastSubBlock ][ 1 ]
inferSbDcSigCoeffFlag = 0 if( (i < lastSubBLock) && ( i > 0 ) ) { coded_sub_block_flag[ xS ][ yS ] ac(v) inferSbDcSigCoeffFlag = 1 } firstSigScanPosSb = numSbCoeff lastSigScanPosSb = -1 for( n = (i = = lastSubBlock) ? lastScanPos - 1 : numSbCoeff -1; n >= 0; n-- ) {
xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = (yS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( coded_sub_block_flag[ xS ][ yS ] && (n > 0 | | !inferSbDcSigCoeffFlag )){
sig_coeff_flag[ xC ][ yC ] ae(v) } if( sig_coeff_flag[ xC ][ yC ]) { par_level_flag[ n ] ae(v) rem_abs_gt1_flag[ n ] ae(v) if( lastSigScanPosSb = = -1 ) lastSigScanPosSb = n firstSigScanPosSb = n }
AbsLevelPass1[ xC ][ yC ] = sig_coeff_flag[ xC ][ yC ] + par_level_flag[ n ] + 2 * rem_abs_gt1_flag[ n ]
if( dep_quant_enabled_flag )
QState = QStateTransTable[ QState ][ par_level_flag[ n ] ] } for( n = numSbCoeff - 1; n >= 0; n-- ) { if( rem_abs_gt1_flag[ n ] ) rem_abs_gt2_flag[ n ] a£(y) } for( n = numSbCoeff - 1; n >= 0; n- - ) {
xC = (xS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS <<log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( rem_abs_gt2_flag[ n ] ) abs_remainder[ n ]
AbsLevel[ xC ][ yC ] = AbsLevelPass1[ xC )[ yC ] + 2 * ( rem_abs_gt2_flag[ n ] + abs_remainder[ n ] )
} if( dep_quant_enabled_flag | | !sign_data_hiding_enabled_flag ) signHidden = 0 else signHidden = (lastSigScanPosSb - firstsigScanPosSb > 3 ? 1 : 0) for( n = numSbCoeff - 1; n >= 0; n-- ) {
xC = ( xS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( sig_coeff_flag[ xC ][ yC ] && ( !signHidden | | ( n != firstSigScanPosSb )))
coeff_sign_flag[ n ] ae(v) } if( dep_quant_enabled_flag ) {
QState = startQStateSb for( n = numSbCoeff - 1; n >= 0; n-- ) {
xC = ( xS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS <<log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( sig_coeff_flag[ xC ][ yC ] )
TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] = ( 2 * AbsLevel[ xC ][ yC ] - ( QState > 1 1 : 0 ) ) * (1 - 2 * coeff_sign_flag[ n ] )
QState = QStateTransTable[ QState ][ par_level_flag[ n ] ] } else { sumAbsLevel = 0 for( n = numSbCoeff - 1; n >= 0; n-- ) {
xC = ( xS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( sig_coeff_flag[ xC ][ yC ] ) {
TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] = AbsLevel[ xC ][ yC ] * ( 1 - 2 * coeff_sign_flag[ n ] )
if( signHidden) { sumAbsLevel += AbsLevel[ xC ][ yC ] if( ( n = = firstSigScanPosSb) && ( sumAbsLevel % 2 ) = = 1 ) ) TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] = -TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ]
} } } }
} if( cu_mts_flag[ x0 ][ y0 ] && ( cIdx = = 0 ) && ! transform_skip_flag[ x0 ][ y0 ][ cIdx ] && ( ( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA && numSigCoeff > 2 ) | | ( CuPredModef x0 ][ y0 ] = = MODE_INTER ) ) ) { mts_idx[ x0 ][ y0 ] ae(v) }
[090] O aparelho codificador pode executar a binarização sobre elementos de sintaxe relacionados à codificação residual, incluindo last_sig_coeff_x_prefix e last_sig_coeff_y_prefix (S400). O last_sig_coeff_x_prefix e o last_sig_coeff_y_prefix podem ser derivados com base na posição de um último coeficiente significativo em um bloco atual.
[091] O last_sig_coeff_x_prefix e o last_sig_coeff_y_prefix podem representar um exemplo de informações de prefixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual. Mais especificamente, last_sig_coeff_x_prefix pode representar um exemplo de informações de prefixo no eixo x, que é uma das informações de prefixo do último coeficiente significativo, e last_sig_coeff_y_prefix pode representar um exemplo de informações de prefixo no eixo y, que é uma das informações de prefixo do último coeficiente significativo.
[092] Nesse caso, zero pode ser usado como um valor de cRiceParam. O aparelho codificador pode derivar uma cadeia de bins para cada um de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix através do procedimento de binarização. O procedimento de binarização pode ser executado por um binarizador 242 no codificador por entropia 240.
[093] De acordo com uma modalidade, o valor cMax para cada um de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix pode ser derivado com base em se a zeração de alta frequência é aplicada. A equação específica para derivar cMax será descrita mais adiante na Fig. 6. cMax pode representar o comprimento máximo de uma palavra-código (cadeia de bins) derivada no procedimento de binarização para last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix. Ao diminuir o valor de cMax, o comprimento da palavra-código para last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix pode ser efetivamente encurtado. E, como o bin codificado reduzido ao encurtar a palavra-código é um bin codificado por contexto, pode haver vantagem em termos do tempo de processamento da codificação de imagens.
[094] Por outro lado, a binarização pode avançar pelos demais elementos de sintaxe da Tabela 1 de acordo com um método predeterminado. Por exemplo, a binarização pode ser executada sobre transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, coeff_sign_flag, mts_idx ou seus semelhantes, de acordo com um processo de binarização de comprimento fixo, e, sobre abs_remainder, a binarização correspondente ao mesmo pode ser executada.
[095] O aparelho codificador pode executar a codificação por entropia sobre elementos de sintaxe relacionados à codificação residual, incluindo last_sig_coeff_x_prefix e last_sig_coeff_y_prefix (S410). O aparelho codificador pode executar a codificação por entropia com base em uma cadeia de bins para cada um de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix. O aparelho codificador pode codificar com base no contexto ou com base em bypass a cadeia de bins com base em uma técnica de codificação por entropia, tal como codificação aritmética adaptativa ao contexto (CABAC) ou codificação de comprimento variável adaptativa ao contexto (CAVLC), e a saída desses pode ser incorporada a um fluxo de bits. O procedimento de codificação por entropia pode ser realizado por um processador de codificação por entropia 244 no codificador por entropia 240. O fluxo de bits pode incluir várias informações para a decodificação de imagens/vídeo, tal como informações de predição ou seus semelhantes, que não informações residuais, incluindo informações sobre last_sig_coeff_x_prefix e last_sig_coeff_y_prefix,
conforme descrito acima. O fluxo de bits pode ser transferido ao aparelho decodificador através de um meio de armazenamento (digital) ou rede.
[096] As Figs. 5A e 5B são um desenho para explicar a configuração e método de operação de um decodificador por entropia de acordo com uma modalidade.
[097] Com referência às Figs. 5A e 5B, o aparelho decodificador (decodificador por entropia) pode derivar coeficientes de transformada (quantizados) ao decodificar informações residuais codificadas. O aparelho decodificador pode derivar coeficientes de transformada (quantizados) ao decodificar informações residuais codificadas para um bloco atual (CB atual ou TB atual) conforme descrito mais adiante na Fig. 6. Por exemplo, o aparelho decodificador pode decodificar vários elementos de sintaxe relacionados a essas informações residuais conforme redigidas na Tabela 1, analisar valores de elementos de sintaxe associados, e derivar os coeficientes de transformada (quantizados) com base no valor dos elementos de sintaxe analisados. As etapas de S500 a S510 podem ser incorporadas a um procedimento que deriva os coeficientes de transformada (quantizados) da Fig. 3 descritos acima.
[098] O aparelho decodificador pode executar a binarização sobre elementos de sintaxe relacionados à codificação residual, incluindo last_sig_coeff_x_prefix e last_sig_coeff_y_prefix (S500). Nesse caso, zero pode ser usado como um valor de cRiceParam. O aparelho codificador pode derivar uma cadeia de bins disponível para cada valor disponível de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix através do procedimento de binarização. O procedimento de binarização pode ser executado por um binarizador 312 no decodificador por entropia 310. De acordo com uma modalidade, o valor cMax para cada um de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix pode ser derivado com base em se a zeração de alta frequência é aplicada. A equação específica para derivar cMax será descrita mais adiante na Fig. 6.
[099] cMax pode representar o comprimento máximo de uma palavra-código (cadeia de bins) derivada no procedimento de binarização para last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix. Ao diminuir o valor de cMax, o comprimento da palavra-código para last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix pode ser efetivamente encurtado. E, como o bin codificado reduzido ao encurtar a palavra-código é um bin codificado por contexto, pode haver vantagem em termos do tempo de processamento da codificação de imagens.
[0100] Por outro lado, a binarização pode avançar pelos demais elementos de sintaxe da Tabela 1 de acordo com um método predeterminado. Por exemplo, a binarização pode ser executada sobre transform_skip_flag, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, coeff_sign_flag, mts_idx ou seus semelhantes, de acordo com um processo de binarização de comprimento fixo, e, sobre abs_remainder, a binarização correspondente ao mesmo pode ser executada.
[0101] O aparelho decodificador pode executar a decodificação por entropia sobre elementos de sintaxe relacionados à codificação residual, incluindo last_sig_coeff_x_prefix e last_sig_coeff_y_prefix (S510). O aparelho decodificador pode comparar a cadeia de bins derivada às cadeias de bins disponíveis enquanto analisa e decodifica sequencialmente cada um dos bins para last_sig_coeff_x_prefix. Quando uma cadeia de bins derivada é igual a uma das cadeias de bins disponíveis, o valor correspondente à cadeia de bins pode ser derivado como um valor de last_sig_coeff_x_prefix. Quando uma cadeia de bins derivada não é igual a nenhuma das cadeias de bins disponíveis, o procedimentos de comparação pode ser executado após adicionalmente analisar e decodificar o próximo bin no fluxo de bits. Além disso, o aparelho decodificador pode comparar a cadeia de bins derivada às cadeias de bins disponíveis enquanto analisa e decodifica sequencialmente cada um dos bins para last_sig_coeff_y_prefix. Quando uma cadeia de bins derivada é igual a uma das cadeias de bins disponíveis, o valor correspondente à cadeia de bins pode ser derivado como um valor de last_sig_coeff_y_prefix. Quando uma cadeia de bins derivada não é igual a nenhuma das cadeias de bins disponíveis, o procedimentos de comparação pode ser executado após adicionalmente analisar e decodificar o próximo bin no fluxo de bits. Através desses processos, sem usar um bit inicial ou um bit final para informações específicas (elemento de sintaxe específico) em um fluxo de bits, as informações podem ser sinalizadas usando um bit de comprimento variável, com o que um bit relativamente menor pode ser atribuído a um valor baixo, aumentando assim a eficácia de codificação geral.
[0102] O aparelho decodificador pode executar decodificação baseada no contexto ou decodificação baseada em bypass sobre cada um dos bins na cadeia de bins de um fluxo de bits com base em uma técnica de codificação por entropia, tal como CABAC, CAVLC ou seus semelhantes. O procedimento de decodificação por entropia pode ser realizado por um processador de decodificação por entropia 244 no decodificador por entropia 310. O aparelho decodificador pode derivar uma posição de um último coeficiente significativo com base em um valor de last_sig_coeff_x_prefix e um valor de last_sig_coeff_y_prefix. O cálculo específico, por exemplo, pode ser realizado com base na Tabela 2 abaixo. Tabela 2 A posição de coluna do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada LastSignificantCoeffX é derivada de acordo com o seguinte: // Se last_sig_coeff_x_suffix não se faz presente, o seguinte aplica-se: LastSignificantCoeffX = last_sig_coeff_x_prefix// Do contrário, (last_sig_coeff_x_suffix se faz presente), o seguinte aplica-se: LastSignificantCoeffX = (1<<((last_sig_coeff_x_prefix>>1)-1)) * (2+(last_sig_coeff_x_prefix&1)) + last_sig_coeff_x_suffix// A posição de linha do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada LastSignificantCoeffY é derivada de acordo com o seguinte:// Se last_sig_coeff_y_suffix não se faz presente,
o seguinte aplica-se: LastSignificantCoeffY = last_sigcoeff_y_prefix// Do contrário (last_sig_coeff_y_suffix se faz presente), o seguinte aplica-se: LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)- ))*(2+(last_sig_coeff_y_prefix>>1)- ))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
[0103] Na Tabela 2, LastSignificantCoeffX pode representar a posição no eixo x de um último coeficiente significativo diferente de zero no bloco (de transformada) atual, e LastSignificantCoeffY pode representar a posição no eixo y de um último coeficiente significativo diferente de zero no bloco (de transformada) atual.
[0104] O fluxo de bits pode incluir várias informações para a decodificação de imagens/vídeo, tais como informações de predição ou seus semelhantes, que não informações residuais, incluindo informações sobre last_sig_coeff_x_prefix e last_sig_coeff_y_prefix, conforme descrito acima. Conforme descrito acima, o fluxo de bits pode ser transferido ao aparelho decodificador através de um meio de armazenamento (digital) ou rede.
[0105] O aparelho decodificador pode derivar amostras residuais para um bloco atual ao executar um procedimento de desquantização e/ou um procedimento de transformada inversa com base nos coeficientes de transformada (quantizados). Amostras reconstruídas podem ser geradas com base nas amostras residuais e nas amostras de predição derivadas por interpredição/intrapredição, e uma gravura reconstruída que inclui as amostras reconstruídas pode ser gerada.
[0106] A Fig. 6 é um desenho para explicar a zeração de alta frequência de acordo com um exemplo.
[0107] No presente relatório descritivo, "zeração de alta frequência" significa um processo pelo qual os coeficientes de transformada relacionados a uma frequência igual ou maior que certo valor em um bloco (de transformada) com uma primeira largura W1 e uma primeira altura H1 são zerados (isto é, reduzidos a zero). Quando a zeração de alta frequência é aplicada, os valores dos coeficientes de transformada fora de uma região de coeficientes de transformada de baixa frequência configurada com base em uma segunda largura W2 e uma segunda altura H2 entre os coeficientes de transformada no bloco (de transformada) podem ser todos determinados (definidos) como zero. O exterior da região de coeficientes de transformada de baixa frequência pode ser chamado de região de coeficientes de transformada de alta frequência. Em um exemplo, a região de coeficientes de transformada de baixa frequência pode ser uma região de formato retangular localizada na extremidade superior esquerda do bloco (de transformada).
[0108] No presente relatório descritivo, um termo ou sintagma específico é usado para definir uma informação ou conceito específico. Por exemplo, no presente relatório descritivo, conforme descrito acima, o processo pelo qual os coeficientes de transformada relacionados a uma frequência igual ou superior a certo valor no bloco (de transformada) com a primeira largura W1 e a primeira altura H1 são zerados é definido como "zeração de alta frequência"; uma região onde a zeração foi realizada através da zeração de alta frequência, "região de coeficientes de transformada de alta frequência"; e uma região onde a zeração não é realizada, "região de coeficientes de transformada de baixa frequência". A fim de representar o tamanho da região de coeficientes de transformada de baixa frequência, a segunda largura W2 e a segunda altura H2 são usadas.
[0109] No entanto, o termo "zeração de alta frequência" pode ser substituído por vários temos, tais como definição em zero de alta frequência, redução a zero de alta frequência, redução a zero ou seus semelhantes; o termo "região de coeficientes de transformada de alta frequência", por vários termos, tais como região onde aplica-se a zeração de alta frequência, região onde aplica-se a redução a zero de alta frequência, região de alta frequência, região de coeficientes de alta frequência, região de redução a zero de alta frequência, região de redução a zero ou seus semelhantes; e o termo "região de coeficientes de transformada de baixa frequência", por vários termos, tais como região onde não aplica-se a zeração de alta frequência, região de baixa frequência, região de coeficientes de baixa frequência, região restrita, ou seus semelhantes. Logo, no presente relatório descritivo, ao interpretar um termo ou sintagma específico que aparece ao longo do mesmo para definir uma informação ou conceito específico, é necessário prestar atenção a várias operações, funções e efeitos de acordo com o conteúdo que o termo visa a representar em vez de limitar-se a seu nome.
[0110] Em um exemplo, é proposto um método para realizar a binarização dos elementos de sintaxe, last_sig_coeff_x_prefix e last_sig_coeff_y_prefix, para um bloco (TB, TU ou CB) (de transformada) ao qual a zeração de alta frequência é aplicada. last_sig_coeff_x_prefix e last_sig_coeff_y_prefix podem ser binarizados com um código de Rice truncado, e, a essa altura, o valor de cRiceParam pode ser
0. O valor de cMax usado na binarização para o código de Rice truncado pode ser determinado com base na Equação 1 ao executar a binarização de last_sig_coeff_x_prefix e determinado com base na Equação 2 ao executar a binarização de last_sig_coeff_y_prefix. [Equação 1] cMax = (log2W1 << 1) - 1 [Equação 2] cMax = (log2H1 << 1) - 1 onde W1 representa a largura do bloco (de transformada), e H1 representa a altura do bloco (de transformada). Por exemplo, no caso de um bloco de transformada de 64 x 32 como na Fig. 6, W1 é 64 e H1 é 32. Logo, o valor de cMax para a binarização de last_sig_coeff_x_prefix pode ser 11, e o valor de cMax para a binarização de last_sig_coeff_y_prefix pode ser 9.
[0111] A Tabela 3 abaixo representa a binarização quando W1 ou H1 é 32, e a Tabela 4 abaixo representa a palavra-código de binarização quando W1 ou H1 é
64. Em um exemplo, a binarização por código de Rice truncado pode ser realizada sobre uma dimensão do bloco de transformada e, portanto, como na Tabela 4 abaixo, a palavra-código de last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix para a codificação sendo o valor de LastSignificantCoeffX ou LastSignificantCoeffY de 32 a 47 pode ser ‘11111111110’, e a palavra-código de last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix para a codificação sendo o valor de LastSignificantCoeffX ou LastSignificantCoeffY de 48 a 63 pode ser ‘11111111111’. Em ambos os casos, a binarização pode ser realizada com base em 11 bins.
A palavra-código pode ser chamada de cadeia de bins.
Tabela 3 comprimento da LastSignificantCoeffXorLastSignificantCoeffY palavra-código palavra-código 0 0 1 1 10 2 2 110 3 3 1110 4 4,5 11110 5 6,7 111110 6 8~11 1111110 7 12~15 11111110 8 16~23 111111110 9 24~31 111111111 9
Tabela 4 comprimento da LastSignificantCoeffXorLastSignificantCoeffY palavra-código palavra-código 0 0 1 1 10 2 2 110 3 3 1110 4 4,5 11110 5 comprimento da LastSignificantCoeffXorLastSignificantCoeffY palavra-código palavra-código 6,7 111110 6 8~11 1111110 7 12~15 11111110 8 16~23 111111110 9 24~31 1111111110 10 32~47 11111111110 11 48~63 11111111111 11
[0112] Como demonstra a Tabela 1 acima, quando o valor de last_sig_coeff_x_prefix é maior que 3, last_sig_coeff_x_suffix pode ser adicionalmente sinalizado, e LastSignificantCoeffX pode ser derivado com base no valor de last_sig_coeff_x_suffix. Por exemplo, a palavra-código de last_sig_coeff_x_prefix para a codificação sendo o valor de LastSignificantCoeffX de 32 a 47 pode ser ‘11111111110’, e determina-se qual valor entre 32 a 47 será usado com base no valor de last_sig_coeff_x_suffix. Como demonstra a Tabela 1 acima, quando o valor de last_sig_coeff_y_prefix é maior que 3, last_sig_coeff_y_suffix pode ser adicionalmente sinalizado, e LastSignificantCoeffY pode ser derivado com base no valor de last_sig_coeff_y_suffix. Por exemplo, a palavra-código de last_sig_coeff_x_prefix para a codificação sendo o valor de LastSignificantCoeffY de 32 a 47 pode ser ‘11111111110’, e determina-se qual valor entre 32 a 47 será usado com base no valor de last_sig_coeff_y_suffix.
[0113] O cálculo específico para derivar LastSignificantCoeffX ou LastSignificantCoeffY pode ser realizado, por exemplo, de acordo com o seguinte. Tabela 5 A posição de coluna do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada LastSignificantCoeffX é derivada de acordo com o seguinte: // Se last_sig_coeff_x_suffix não se faz presente, o seguinte aplica-se: LastSignificantCoeffX = last_sig_coeff_x_prefix// Do contrário
(last_sig_coeff_x_suffix se faz presente), o seguinte aplica-se: LastSignificantCoeffX = (1<<((last_sig_coeff_x_prefix>>1)-1) ) * (2+(last_sig_coeff_x_prefix&1) ) + last_sig_coeff_x_suffix// A posição de linha do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada LastSignificantCoeffY é derivada de acordo com o seguinte: // Se last_sig_coeff_y_suffLx não se faz presente, o seguinte aplica-se: LastSignificantCoeffY = last_sigcoeff_y_prefix// Do contrário (last_sig_coeff_y_suffix se faz presente), o seguinte aplica-se: LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)- 1))*(2+flast_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
[0114] Zeração de alta frequência significa zerar os coeficientes de uma frequência mais alta que certo valor em um bloco de transformada com uma primeira largura W1 ou uma primeira altura H1 (isto é, reduzi-los a zero), e limitar os coeficientes de transformada residuais a uma segunda largura W2 ou uma segunda altura H2. A essa altura, em um exemplo, um método no qual a binarização é realizada com base em um código de Rice truncado com base em uma dimensão (segunda largura ou segunda altura) de uma região restrita derivada através da zeração de alta frequência pode ser considerado, em vez de um método no qual a binarização é realizada com base em um código de Rice truncado com base em uma dimensão (primeira largura ou primeira altura) de um bloco de transformada. Depois de definir cMax para last_sig_coeff_x_prefix e cMax para last_sig_coeff_y_prefix de acordo com as Equações 3 e 4, respectivamente, usando a segunda largura e a segunda altura, o código de Rice truncado pode ser gerado. [Equação 3] cMax = (log2(min(W1, W2)) << 1) - 1 [Equação 4] cMax = (log2(min(H1, H2)) << 1) - 1
[0115] Em um exemplo, quando a primeira largura ou primeira altura é 64 e a segunda largura ou segunda altura é 32, o código de Rice truncado derivado com base nas Equações 3 e 4 pode ser como na Tabela 6 abaixo. Através da zeração de alta frequência, o coeficiente de transformada residual desaparece dos coeficientes de alta frequência em uma região de coeficientes de transformada de alta frequência formada fora da segunda largura ou segunda altura, logo é possível projetar uma palavra-código de binarização como na Tabela 6 abaixo.
[0116] Em um exemplo, W2 e H2 podem ser definidas como um valor fixo. Como alternativa, W2 e H2 podem ser determinadas com base em W1 e H1. Como alternativa, as informações indicativas de W2 e H2 podem ser sinalizadas de um aparelho codificador a um aparelho decodificador. Em um exemplo, W2 e H2 podem ser definidas como 32 ou 16, respectivamente. Em outro exemplo, W2 e H2 podem ser derivadas como metade de W1 e metade de H1, respectivamente. Em ainda outro exemplo, W2 e H2 podem ser derivadas como metade de max(W1, H1). No entanto, esses são só exemplos, e W2 e H2 podem ser determinadas de acordo com outros vários métodos definidos em um aparelho codificador e um aparelho decodificador. Através do método proposto, é possível reduzir efetivamente o comprimento de uma palavra-código para alguns valores de LastSignificantCoeffX ou LastSignificantCoeffY. Além disso, como o bin codificado reduzido dessa maneira é um bin codificado por contexto, pode haver vantagem em termos do tempo de processamento. Tabela 6 comprimento da LastSignificantCoeffXorLastSignificantCoeffY palavra-código palavra-código 0 0 1 1 10 2 2 110 3 3 1110 4 4,5 11110 5 6,7 111110 6 8~11 1111110 7 comprimento da LastSignificantCoeffXorLastSignificantCoeffY palavra-código palavra-código 12~15 11111110 8 16~23 111111110 9 24~31 111111111 9 32~47 N/A N/A 48~63 N/A N/A
[0117] Em um exemplo, o método de codificação residual descrito acima nas Figs. 4A a 5B pode ser realizado com base em exemplos descritos na Fig. 6. Em outro exemplo, um método de codificação que será descrito mais adiante na Fig. 7 ou um método de decodificação que será descrito mais adiante na Fig. 9 podem ser realizados com base em exemplos descritos na Fig. 6.
[0118] A Fig. 7 é um fluxograma que ilustra a operação de um aparelho codificador de acordo com um exemplo, e a Fig. 8 é um diagrama em blocos que ilustra uma configuração de um aparelho codificador de acordo com um exemplo.
[0119] O aparelho codificador de acordo com as Figs. 7 e 8 pode executar uma operação correspondente à de um aparelho decodificador de acordo com as Figs. 9 e 10. Logo, as operações do aparelho decodificador que será descrito mais adiante nas Figs. 9 e 10 podem aplicar-se, outrossim, ao aparelho codificador de acordo com as Figs. 7 e 8.
[0120] Cada uma das etapas reveladas na Fig. 7 pode ser realizada pelo aparelho codificador 200 revelado na Fig. 2. Mais especificamente, a etapa S700 pode ser realizada pelo subtrator 231 revelado na Fig. 2; a etapa S710 pelo transformador 232 revelado na Fig. 2; a etapa S720 pelo quantizador 233 revelado na Fig. 2; e a S730 pelo codificador por entropia 240 revelado na Fig. 2. Além disso, as operações de acordo com as etapas de S700 a S730 baseiam-se em alguns dos conteúdos descritos acima nas Figs. de 4 a 6. Logo, uma explicação para um conteúdo específico duplicada com os conteúdos descritos acima nas Figs. 2 e de 4 a 6 será omitida ou abreviada.
[0121] Conforme ilustra a Fig. 8, o aparelho codificador de acordo com um exemplo pode incluir o subtrator 231, o transformador 232, o quantizador 233 e o codificador por entropia 240. No entanto, de acordo com as circunstâncias, todos os componentes ilustrados na Fig. 8 podem não ser componentes essenciais do aparelho codificador, e o aparelho codificador pode ser concretizado com mais ou menos componentes do que os ilustrados na Fig. 8.
[0122] No aparelho codificador de acordo com um exemplo, cada um dentre o subtrator 231, o transformador 232, o quantizador 233 e o codificador por entropia 240 pode ser concretizado por um chip diferente, ou ao menos dois ou mais componentes podem ser concretizados por um mesmo chip.
[0123] O aparelho codificador de acordo com um exemplo pode derivar amostras residuais para um bloco atual (S700). Mais especificamente, o subtrator 231 do aparelho codificador pode derivar amostras residuais para o bloco atual.
[0124] O aparelho codificador de acordo com um exemplo pode derivar coeficientes de transformada para o bloco atual ao transformar as amostras residuais para o bloco atual (S710). Mais especificamente, o transformador 232 do aparelho codificador pode derivar coeficientes de transformada para o bloco atual ao transformar as amostras residuais para o bloco atual.
[0125] O aparelho codificador de acordo com um exemplo pode derivar coeficientes de transformada quantizados a partir dos coeficientes de transformadas com base em um processo de quantização (S720). Mais especificamente, o quantizador 233 do aparelho codificador pode derivar os coeficientes de transformada quantizados a partir dos coeficientes de transformada com base em um processo de quantização.
[0126] O aparelho codificador de acordo com um exemplo pode codificar informações residuais que incluem informações sobre os coeficientes de transformada quantizados (S730). Mais especificamente, o codificador 240 do aparelho codificador pode codificar as informações residuais, que incluem informações sobre os coeficientes de transformada quantizados.
[0127] Em um exemplo, cada um dos coeficientes de transformada para o bloco atual pode referir-se a uma região de coeficientes de transformada de alta frequência composta por um coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo.
[0128] Em um exemplo, as informações residuais incluem informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual.
[0129] Em um exemplo, a posição do último coeficiente de transformada diferente de zero pode basear-se em uma palavra-código de prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo.
[0130] Em um exemplo, o comprimento máximo da palavra-código de prefixo pode ser determinado com base no tamanho da região de coeficientes de transformada de baixa frequência.
[0131] De acordo com o aparelho codificador e o método de operação do aparelho codificador das Figs. 7 e 8, o aparelho codificador pode derivar as amostras residuais para o bloco atual (S700), derivar os coeficientes de transformada para o bloco atual ao transformar as amostras residuais para o bloco atual (S710), derivar os coeficientes de transformada quantizados a partir dos coeficientes de transformada com base em um processo de quantização (S720), e codificar as informações residuais incluindo as informações sobre os coeficientes de transformada quantizados (S730), em que cada um dos coeficientes de transformada para o bloco atual pode ser relacionado a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais podem incluir informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero pode ser baseada na palavra-código de prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo pode ser determinado com base no tamanho da região de coeficientes de transformada de baixa frequência. Ou seja, de acordo com a presente revelação, quando a zeração de alta frequência é aplicada, ao executar a binarização em um elemento de sintaxe com base no tamanho da região de zeração de baixa frequência (mais especificamente, uma região à qual a zeração de alta frequência não é aplicada), é possível executar a codificação com mais eficácia e aprimorar o tempo de processamento da CABAC ao reduzir o número de bins codificados por contexto.
[0132] A Fig. 9 é um fluxograma que ilustra a operação de um aparelho decodificador de acordo com um exemplo, e a Fig. 10 é um diagrama em blocos que ilustra uma configuração de um aparelho decodificador de acordo com um exemplo.
[0133] Cada uma das etapas reveladas na Fig. 9 pode ser realizada pelo aparelho decodificador 300 revelado na Fig. 3. Mais especificamente, as etapas S900 e S910 podem ser realizadas pelo decodificador por entropia 310 revelado na Fig. 3; a etapa S920 pelo desquantizador 321 revelado na Fig. 3; a etapa S930 pelo transformador inverso 322 revelado na Fig. 3; e a etapa S940 pelo somador 340 revelado na Fig. 3. Além disso, as operações de acordo com as etapas de S900 a
S940 baseiam-se em alguns dos conteúdos descritos acima nas Figs. de 4 a 6. Logo, uma explicação para um conteúdo específico duplicada com conteúdos descritos acima nas Figs. 3 a 6 será omitida ou abreviada.
[0134] Conforme ilustra a Fig. 10, o aparelho decodificador de acordo com um exemplo pode incluir o decodificador por entropia 310, o desquantizador 321, o transformador inverso 322 e o somador 340. No entanto, de acordo com as circunstâncias, todos os componentes ilustrados na Fig. 10 podem não ser componentes essenciais do aparelho decodificador, e o aparelho decodificador pode ser concretizado com mais ou menos componentes do que os ilustrados na Fig. 10.
[0135] No aparelho decodificador de acordo com um exemplo, cada um dentre o decodificador 310, o desquantizador 321, o transformador inverso 322 e o somador 340 pode ser concretizado por um chip diferente, ou ao menos dois ou mais componentes podem ser concretizados por um mesmo chip.
[0136] O aparelho decodificador de acordo com um exemplo pode receber um fluxo de bits que inclui informações residuais (S900). Mais especificamente, o decodificador por entropia 310 do aparelho decodificador pode receber um fluxo de bits que inclui informações residuais.
[0137] O aparelho decodificador de acordo com um exemplo pode derivar coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas em um fluxo de bits (S910). Mais especificamente, o decodificador por entropia 310 do aparelho decodificador pode derivar o coeficiente de transformada quantizado para o bloco atual com base nas informações residuais incluídas no fluxo de bits.
[0138] O aparelho decodificador de acordo com um exemplo pode derivar coeficientes de transformada quantizados com base em um processo de desquantização (S920). Mais especificamente, o desquantizador 321 do aparelho decodificador pode derivar os coeficientes de transformada a partir dos coeficientes de transformada quantizados com base no processo de desquantização.
[0139] O aparelho decodificador de acordo com um exemplo pode derivar amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados (S920). Mais especificamente, o transformador inverso 322 do aparelho decodificador pode derivar as amostras residuais para o bloco atual ao aplicar uma transformada inversa aos coeficientes de transformada derivados.
[0140] O aparelho decodificador de acordo com um exemplo pode gerar uma gravura reconstruída com base na amostra residual para o bloco atual (S940). Mais especificamente, o somador 340 do aparelho decodificador pode gerar a gravura reconstruída com base na amostra residual para o bloco atual.
[0141] Em um exemplo, uma unidade do bloco atual pode ser um bloco de transformada TB.
[0142] Em um exemplo, cada um dos coeficientes de transformada para o bloco atual pode referir-se a uma região de coeficientes de transformada de alta frequência composta por um coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo.
[0143] Em um exemplo, as informações residuais podem incluir informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual.
[0144] Em um exemplo, a posição do último coeficiente de transformada diferente de zero pode ser determinada com base em uma palavra-código de prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo.
[0145] Em um exemplo, o comprimento máximo da palavra-código de prefixo pode ser determinado com base no tamanho da região de coeficientes de transformada de baixa frequência. O comprimento máximo da palavra-código de prefixo pode ser expresso por cMax.
[0146] Em um exemplo, o tamanho da região de coeficientes de transformada de baixa frequência pode ser determinada com base na largura e altura da região de coeficientes de transformada de baixa frequência.
[0147] Em um exemplo, as informações de prefixo do último coeficiente significativo podem incluir informações de prefixo no eixo x e informações de prefixo no eixo y, e a palavra-código de prefixo pode ser uma palavra-código para as informações de prefixo no eixo x ou uma palavra-código para as informações de prefixo no eixo y.
[0148] Em um exemplo, as informações de prefixo no eixo x podem ser expressas por last_sig_coeff_x_prefix; as informações de prefixo no eixo y podem ser expressas por last_sig_coeff_y_prefix; e a posição do último coeficiente de transformada diferente de zero pode ser expressa por (LastSignificantCoeffX, LastSignificantCoeffY).
[0149] Em um exemplo, o comprimento máximo da palavra-código que indica as informações de prefixo no eixo x pode ser determinado como 9 com base na determinação de que a largura da região de coeficientes de transformada de baixa frequência é 32.
[0150] Em um exemplo, o comprimento máximo da palavra-código que indica as informações de prefixo no eixo y pode ser determinado como 9 com base na determinação de que a altura da região de coeficientes de transformada de baixa frequência é 32.
[0151] Em um exemplo, o valor binarizado máximo da palavra-código para as informações de prefixo no eixo x pode ser determinado como 111111111 com base na determinação de que a largura do bloco atual é superior a 32 e de que a largura da região de coeficientes de transformada de baixa frequência é 32.
[0152] Em um exemplo, o valor binarizado máximo da palavra-código para as informações de prefixo no eixo y pode ser determinado como 111111111 com base na determinação de que a altura do bloco atual é superior a 32 e de que a largura da região de coeficientes de transformada de baixa frequência é 32.
[0153] Em um exemplo, o comprimento máximo da palavra-código para as informações de prefixo no eixo x pode ser determinado com base na Equação 5 abaixo. [Equação 5] cMaxx= (log2(min(W1, W2)) << 1) -1
[0154] Na Equação 5, cMaxx é o comprimento máximo da palavra-código para as informações de prefixo no eixo x; W1, a largura do bloco atual; e W2, a largura da região de coeficientes de transformada de baixa frequência.
[0155] Em um exemplo, a largura da região de coeficientes de transformada de baixa frequência pode ser 32, e o comprimento máximo da palavra-código para as informações de prefixo no eixo x pode ser determinado com base na Equação 6 abaixo. [Equação 6] cMaxx= (min(log2W1, 5)) << 1) -1
[0156] Na Equação 6, cMaxx é o comprimento máximo da palavra-código para as informações de prefixo no eixo x, e W1 é a largura do bloco atual.
[0157] Em um exemplo, o comprimento máximo da palavra-código para as informações de prefixo no eixo y pode ser determinado com base na Equação 7 abaixo. [Equação 7] cMaxy= (log2(min(H1, H2)) << 1) -1
[0158] Na Equação 7, cMaxy pode ser o comprimento máximo da palavra-
código para as informações de prefixo no eixo y; H1, a altura do bloco atual; e H2, a altura da região de coeficientes de transformada de baixa frequência.
[0159] Em um exemplo, a altura da região de coeficientes de transformada de baixa frequência pode ser 32, e o comprimento máximo da palavra-código para as informações de prefixo no eixo y pode ser determinado com base na Equação 8 abaixo. [Equação 8] cMaxy= (min(log2H1, 5)) << 1) -1
[0160] Na Equação 8, cMaxy pode ser o comprimento máximo da palavra- código para as informações de prefixo no eixo x, e H1 pode ser a altura do bloco atual.
[0161] Em um exemplo, a palavra-código de prefixo pode ser um código de Rice truncado com base em um processo de binarização de Rice truncada.
[0162] Em um exemplo, o bloco atual pode ser um bloco quadrado ou um bloco não quadrado. A largura da região de coeficientes de transformada de baixa frequência pode ser determinada como 32 com base na determinação de que a largura do bloco atual é 64, e a altura da região de coeficientes de transformada de baixa frequência pode ser determinada como 32 com base na determinação de que a altura do bloco atual é 64.
[0163] Em um exemplo, o tamanho da região de coeficientes de transformada de baixa frequência pode ser um de 32x16, 16x32, 16x16 ou 32x32.
[0164] Em um exemplo, o tamanho da região de coeficientes de transformada de baixa frequência pode ser determinada com base no tamanho do bloco atual.
[0165] Em um exemplo, as informações residuais podem incluir informações sobre o tamanho da região de coeficientes de transformada de baixa frequência.
[0166] Em um exemplo, o tamanho do bloco atual pode ser de 64 x 64; o tamanho da região de coeficientes de transformada de baixa frequência de 32 x 32; e o comprimento máximo da palavra-código de prefixo, 9.
[0167] De acordo com o aparelho decodificador e o método de operação do aparelho decodificador das Figs. 9 e 10, o aparelho decodificador pode receber um fluxo de bits que inclui informações residuais (S900), derivar coeficientes de transformada quantizados para um bloco atual com base nas informações residuais incluídas no fluxo de bits (S910), derivar coeficientes de transformada a partir dos coeficientes de transformada quantizados com base em um processo de desquantização (S920), e derivar amostras residuais para o bloco atual ao aplicar a transformada inversa aos coeficientes de transformada derivados (S930), e gerar uma gravura reconstruída com base em amostras residuais para o bloco atual (S940), em que cada um dos coeficientes de transformada para o bloco atual pode ser relacionado a uma região de coeficientes de transformada de alta frequência composta pelo coeficiente de transformada 0, ou a uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo, as informações residuais podem incluir informações de prefixo do último coeficiente significativo e informações de sufixo do último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero pode ser determinada com base na palavra-código de prefixo, que representa as informações de prefixo do último coeficiente significativo, e nas informações de sufixo do último coeficiente significativo, e o comprimento máximo da palavra-código de prefixo pode ser determinada com base no tamanho da região de coeficientes de transformada de baixa frequência. Ou seja, de acordo com a presente invenção, quando a zeração de alta frequência é aplicada, ao executar a binarização em um elemento de sintaxe com base no tamanho da região de zeração de baixa frequência (mais especificamente, uma região à qual a zeração de alta frequência não é aplicada), é possível executar a codificação com mais eficácia e aprimorar o tempo de processamento da CABAC ao reduzir o número de bins codificados por contexto.
[0168] Em um exemplo, o processo de codificação residual descrito acima nas Figs. 4 a 10 pode basear-se no conteúdo do relatório descritivo em inglês abaixo. Resumo
[0169] Nesta proposta, a binarização da posição do último coeficiente significativo é modificada para reduzir o número máximo de bins codificados por contexto. Mais especificamente, o número de bins codificados por contexto para um bloco grande (isto é, de 64×64, 64×N, N×64) na pior das hipóteses é reduzido de 11 para 9. Os resultados experimentais exibem reduções na taxa de BD de 0,01%, 0%, e -0,02% nos componentes Y, Cb e Cr, respectivamente, em comparação ao VTM3.0 na configuração all-intra, e reduções na taxa de BD de 0,01%, -0,01% e -0,01% na configuração de acesso aleatório.
1. Introdução
[0170] Sabe-se que as partições em bloco grandes tipicamente exibem menos resíduos e que a energia é mais concentrada nos coeficientes de baixa frequência no domínio de transformadas. No VTM3.0 [1], os coeficientes de transformada de alta frequência são zerados para os blocos de transformada com dimensão (largura ou altura, ou ambas a largura e a altura) igual a 64. Sendo assim, para um bloco de transformada W × H, onde W indica a largura do bloco e H a altura do bloco, só os coeficientes de transformada superiores esquerdos (W == 64 ? 32 : W) × (H == 64 ? 32 : H) são mantidos.
[0171] Em [1], o prefixo last_sig_coeff_x_prefix e last_sig_coeff_y_prefix são ambos codificados por contexto usando a binarização Rice truncada com cMax = (log2TbSize << 1) – 1. Aqui, se o elemento de sintaxe a ser analisado for last_sig_coeff_x_prefix, log2TbSize é definido igual a log2TbWidth e, do contrário, log2TbSize é definido igual a log2TbHeight. Ou seja, a máxima grandeza possível é determinada pela largura ou altura do bloco de transformada. Na pior das hipóteses, o número dos bins que utilizam modelagem por contexto é igual a 11. A Tabela 7 traz a binarização para W = 64 ou H = 64 no VTM3.0, onde X significa 0 ou 1. Tabela 7 Grandeza last_sig_coeff_x do _prefixorlast_ last_sig_coeff_x_suffixorlast_sig_coeff_y_suffix componente sig_coeff_y_prefix (bin (bin por bypass) na última codificado por contexto) posição 0 0 1 10 2 110 3 1110 4,5 11110 X 6,7 111110 X 8~11 1111110 XX 12~15 11111110 XX 16~23 111111110 XXX 24~31 1111111110 XXX 32~47 11111111110 xxxx 48~63 11111111111 xxxx
2. Método proposto
[0172] Essa contribuição é proposta além de JVET-M0250 [2]. No método proposto, verifica-se se o grupo de coeficientes atual pertence à região de zeração de alta frequência. Usando essas informações, a desnecessária codificação de coded_sub_block_flag (CSBF) para a região de zeração de alta frequência pode ser pulada.
[0173] Em uma modalidade, um método de codificação CSBF que leva em consideração a região de zeração de alta frequência pode ser proposto. Se uma primeira condição para último ou primeiro grupo de coeficientes é satisfeita, deduz- se que o valor de CSBF é 1. Se a condição para o último ou primeiro grupo de coeficientes não é satisfeita, verifica-se uma segunda condição para a região de zeração de alta frequência. Se a segunda condição para a região de zeração de alta frequência é satisfeita, não há codificação CSBF. Se a segunda condição para a região de zeração de alta frequência não é satisfeita, o índice de contexto é derivado e a codificação CSBF é realizada.
[0174] Um esquema de codificação da última posição é proposto para transformadas com blocos grandes. Em comparação ao VTM3.0, o esquema de codificação proposto utiliza menos bins codificados por contexto na pior das hipóteses. A palavra-código no esquema proposto ainda começa com um código de Rice truncado e é seguida por um código de comprimento fixo. Após a zeração de alta frequência, para um bloco de transformada W×H, somente os coeficientes de transformada min(W, 32) × min(H, 32) na esquerda superior são mantidos. Sendo assim, o máximo comprimento da palavra-código possível para o prefixo last_sig_coeff_x_prefix ou last_sig_coeff_y_prefix é derivado por: cMax = (min(log2TbSize, 5) << 1) – 1.
[0175] A Tabela 8 traz a binarização para W = 64 ou H = 64, em que X significa 0 ou 1. Aqui, as diferentes partes são enfatizadas. Tabela 8 Grandez a do last_sig_coeff_x_prefixorlast_sig_coe compone last_sig_coeff_x_suffixorlast_sig_coe ff_y_prefix (bin codificado por nte na ff_y_suffix (bin por bypass) contexto) última posição 0 0 1 10 2 110 3 1110 4,5 11110 X
Grandez a do last_sig_coeff_x_prefixorlast_sig_coe compone last_sig_coeff_x_suffixorlast_sig_coe ff_y_prefix (bin codificado por nte na ff_y_suffix (bin por bypass) contexto) última posição 6,7 111110 X 8~11 1111110 XX 12~15 11111110 XX 16~23 111111110 XXX 24~31 111111111 XXX 32~47 N/A N/A 48~63 N/A N/A Tabela 9 Grandeza do componente na última VTM3.0 Método proposto posição 0 1 1 1 2 2 2 3 3 3 4 4 4,5 5 5 6,7 6 6 8~11 7 7 12~15 8 8 16~23 9 9 24~31 10 9 32~47 11 N/A 48~63 11 N/A
[0176] A Tabela 9 traz a comparação do comprimento da palavra-código para o prefixo (bins codificados por contexto) quando W = 64 ou H = 64 e no VTM3.0. Os bins codificados por contexto podem chegar a 9 no método proposto, ao passo que são até 11 bins em VTM3.0. Observe-se que, quando a grandeza do componente na última posição é na faixa de 24 a 31, o número de bins codificados por contexto é reduzido de 10 para 9.
3. Resultados experimentais
[0177] Os métodos propostos foram implementados no software VTM3.0. As simulações foram realizadas seguindo as condições de teste comuns definidas em JVET-L1010 [3]. Em cada caso, a âncora é o software VTM3.0. O tempo de codificação e o tempo de decodificação advêm dos resultados da verificação cruzada [4]. A Tabela 10 traz os resultados experimentais para a condição de teste all-intra (AI); a âncora é o VTM3.0 Tabela 10 All Intra Main10 No VTM-3.0 Y U V EncT DecT Classe A1 0,03% -0,07% 0,03% 100% 101% Classe A2 0,02% 0,00% -0,03% 100% 100% Classe B 0,01% 0,05% -0,02% 100% 102% Classe C 0,00% 0,01% -0,03% 100% 101% Classe E 0,02% -0,02% -0,03% 100% 99% Geral 0,01% 0,00% -0,02% 100% 101% Classe D 0,00% 0,01% -0,01% 100% 100% Classe F -0,01% 0,03% 0,02% 100% 99%
[0178] A Tabela 11 traz os resultados experimentais para a condição de teste de acesso aleatório (RA); a âncora é o VTM3.0 Tabela 11 Random access Main10 No VTM-3.0 Y U V EncT DecT Classe A1 0,05% -0,09% 0,00% Classe A2 0,01% 0,07% 0,03%
Classe B -0,01% -0,02% -0,04% 100% 100% Classe C 0,00% 0,02% -0,01% 99% 100% Classe E Geral 0,01% -0,01% -0,01% Classe D 0,00% 0,03% 0,06% 100% 100% Classe F -0,01% -0,03% -0,07% 100% 99%
4. Referência
[1] B. Bross, et al., "Versatile Video Coding (Draft 3)," Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC1/SC 29/WG 11 JVET-L1001, 12ª conferência, Macao, CN, 3 a 12 de outubro de 2018.
[2] J. Choi, et al., "Non-CE7: Simplified CSBF coding for large block-size transforms," Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC1/SC 29/WG 11 JVET-M0250, 13ª conferência, Marrakech, MA, 9 a 18 de janeiro de 2019.
[3] F. Bossen, et al., "JVET common test conditions and software reference configurations for SDR video" Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC1/SC 29/WG 11 JVET-L1010, 12ª conferência, Macao, CN, 3 a 12 de outubro de 2018.
[4] H. Schwarz, "Crosscheck of JVET-M0251 (Non-CE7: Last position coding for large block-size transforms)," Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC1/SC 29/WG 11 JVET-M0646, 13ª conferência, Marrakech, MA, 9 a 18 de janeiro de 2019.
5. Declaração(ões) de direitos de patente
[0179] A LG Electronics Inc. pode ter direitos de patente atuais ou pendentes com referência à tecnologia descrita nesta contribuição e, sob condição de reciprocidade, está preparada para conceder licenças sob termos razoáveis e não discriminatórios, de acordo com o necessário, para a implementação da Recomendação ITU-T resultante | Padrão Internacional ISO/IEC (de acordo com a caixa 2 da declaração de patente ITU-T/ITU-R/ISO/IEC e o formulário de declaração de licenciamento).
6. Relatório Descritivo Tabela 12 residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { Descritor if( transform_skip_enabled_flag && ( cIdx ! = 0 I I tu_mts_flag[ x0 ][ y0 ] = = 0 ) && ( log2TbWidth <= 2 ) && ( log2TbHeight <= 2 ) ) transform_skip_flag[ x0 ][ y0 ][ cIdx ] ae(v) last_sig_coeff_x_prefix ae(v) last_sig_coeff_y_prefix ae(v) if( last_sig_coeff_x_prefix > 3 ) last_sig_coeff_x_suffix ae(v) if( last_sig_coeff_y_prefix > 3 ) last_sig_coeff_y_suffix ae(v) log2SbSize = ( Min( log2TbWidth, log2TbHeight) < 2 ? 1 : 2 ) numSbCoeff = 1 << (log2SbSize << 1 ) lastScanPos = numSbCoeff log2TbWidth = Min( log2TbWidth, 5 ) log2TbHeight = Min( log2TbHeight, 5 ) lastSubBlock = (1 << ( log2TbWidth + log2TbHeight - 2 * log2SbSize) ) -1 do { if( lastScanPos = = 0) { lastScanPos = numSbCoeff lastSubBlock- - } lastScanPos- - xS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight - log2SbSize ] [ lastSubBlock ][ 0 ]
yS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight - log2SbSize ] [ lastSubBlock ][ 1 ]
xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 0 ]
yC = ( yS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 1 ]
} while( ( xC != LastSignificantCoeffX ) | | < yC != LastSignificantCoeffY )) numSigCoeff = 0 QState = 0 for( i = lastSubBlock; i >= 0; i- -) { startQStateSb = QState xS = DiagScanOrderf log2TbWidth - log2SbSize ][ log2TbHeight - log2SbSize ] [ lastSubBlock ][ 0 ]
yS = DiagScanOrder[ log2TbWidth - log2SbSize ][ log2TbHeight - log2SbSize ] [ lastSubBlock ][ 1 ] inferSbDcSigCoeffFlag = 0 if( (i < lastSubBlock ) && (i > 0 ) ) { coded_sub_block_flag[ xS ][ yS ] ae(v) inferSbDcSigCoeffFlag = 1 } firstSigScanPosSb = numSbCoeff lastSigScanPosSb = -1 remBinsPass1 = ( log2SbSize < 2 ? 6 : 28 ) remBinsPass2 = ( log2SbSize < 2 ? 2 : 4 ) firstPosMode0 = ( i = = lastSubBlock ? lastScanPos - 1 : numSbCoeff -1 ) firstPosMode1 = -1 firstPosMode2 = -1 for( n = (i = = firstPosMode0; n >= 0 && remBinsPass1 >= 3: n- -) {
xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS <<log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( coded_sub_block_flag[ xS ][ yS ] && (n > 0 | | !inferSbDcSigCoeffFlag ) ) { sig_coeff_flag[ xC ][ yC ] ae(v) remBinsPass1- - if( sig_coeff_flag[ xC ][ yC ]) inferSbDcSigCoeffFlag = 0 } if( sig_coeff_flag[ xC ][ yC ]) { numSigCoeff++ abs_level_gt1_flag[ n ] ae(v) remBinsPass1- - if( abs_level_gt1_flag [ n ]) { par_level_flag[ n ] ae(v) remBinsPass1- - if( remBinsPass2 > 0 ) { remBmsPass2- - if( remBinsPass2 = = 0 ) firstPosMode1 = n - 1 } } if( lastSigScanPosSb = = -1 ) lastSigScanPosSb = n firstSigScanPosSb = n } AbsLevelPass1[ xC ][ yC ] = sig_coeff_flag[ xC ][ yC ] + par_level_flag[ n ] + abs_level_gt1_flag[ n ] if( dep_quant_enabled_flag )
QState = QStateTransTable[ QState ][ AbsLevelPass1[ xC ][ yC ] & 1 ]
if( remBinsPass1 < 3 ) firstPosMode2 = n - 1 } if( firstPosMode1 < firstPosMode2 ) firstPosMode1 = firstPosMode2 for( n = numSbCoeff - 1; n >= firstPosMode2; n-- ) if( abs_level_gt1_flag[ n ]) abs_level_gt3_flag[ n ] ae(v) for( n = numSbCoeff - 1; n >= firstPosMode1; n-- ) { xC = (xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] if( abs_level_gt3_flag[ n ]) abs_remainder[ n ] ae(v) AbsLevel[ xC ][ yC ] = AbsLevelPass1[ xC ][ yC ] + 2 * ( abs_level_gt3_flag[ n ] + abs_remainder[ n ] ) } for( n = firstPosMode1; n > firstPosMode2; n- - ) { xC = (xS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] if( abs_level_gt1_flag[ n ]) abs_remainder[ n ] ae(v) AbsLevel[ xC ][ yC ] = AbsLevelPass1[ xC ][ yC ] + 2 * abs_remamder[ n] } for( n = firstPosMode2; n >= 0; n- -) { xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] dec_abs_level[ n ] ae(v) if(AbsLevel[ xC ][ yC ] > 0) firstSigScanPosSb = n if( dep_quant_enabled_flag) QState = QStateTransTable[ QState ][ AbsLevel[ xC ][ yC ] & 1 ] } if( dep_quant_enabled_flag | | !sign_data_hiding_enabled_flag ) signHidden = 0 else signHidden = (lastSigScanPosSb - firstSigScanPosSb > 3 ? 1 : 0) for( n = numSbCoeff - 1; n >= 0; n-- ) { xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS <<log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( sig_coeff_flag[ xC ][ yC ] && ( !signHidden | | ( n != firstSigScanPosSb) )) coeff_sign_flag[ n ] ae(v) } if( dep_quant_enabled_flag) { QState = startQStateSb for( n = numSbCoeff - 1; n >= 0; n--) { xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS <<log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] if( sig_coeff_flag[ xC ][ yC ])
TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] = (2 * AbsLevel[ xC ][ yC ] - (QState > 1 1 : 0) ) * (1 - 2 * coeff_sign_flag[ n ] )
QState = QStateTransTable[ QState ][ par_level_flag[ n ] ] DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] dec_abs_level[ n ] ae(v) if(AbsLevel[ xC ][ yC ] > 0) firstSigScanPosSb = n if( dep_quant_enabled_flag) QState = QStateTransTable[ QState ][ AbsLevel[ xC ][ yC ] & 1 ] } if( dep_quant_enabled_flag | | !sign_data_hiding_enabled_flag ) signHidden = 0 else signHidden = (lastSigScanPosSb - firstSigScanPosSb > 3 ? 1 : 0) for( n = numSbCoeff - 1; n >= 0; n-- ) { xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]
if( sig_coeff_flag[ xC ][ yC ] && ( !signHidden | | ( n != firstSigScanPosSb) ) ) coeff_sign_flag[ n ] ae(v) } if( dep_quant_enabled_flag) { QState = startQStateSb for( n = numSbCoeff - 1; n >= 0; n-- ) { xC = ( xS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]
yC = ( yS << log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ] if( sig_coeff_flag[ xC ][ yC ])
TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] = (2 * AbsLevel[ xC ][ yC ] - (QState >1 1 : 0) ) * ( 1 - 2 * coeff_sign_flag[ n ] )
QState = QStateTransTable[ QState ][ par_level_flag[ n ] ]
[0180] last_sig_coeff_x_prefix especifica o prefixo da posição de coluna do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada. Os valores de last_sig_coeff_x_prefix serão na faixa de 0 a ( Min( log2TbWidth, 5 ) << 1 ) − 1, inclusive.
[0181] last_sig_coeff_y_prefix especifica o prefixo da posição de linha do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada. Os valores de last_sig_coeff_y_prefix serão na faixa de 0 a ( Min( log2TbHeight, 5 ) << 1 ) − 1, inclusive.
[0182] A Tabela 13 abaixo traz os elementos de sintaxe e as binarizações associadas. Tabela 13 Binarização Estrutura de Elemento de sintaxe Process sintaxe Parâmetros de entrada o tile_group_data( end_of_tile_group_flag FL cMax = 1 ) coding_tree_unit alf_ctb_flag[ ][ ][ ] FL cMax = 1 () sao_merge_left_flag FL cMax = 1 sao_merge_up_flag FL cMax = 1 sao_type_idx_luma TR cMax = 2, cRiceParam = 0 sao_type_idx_chroma TR cMax = 2, cRicePaiam = 0 cMax = ( 1 << ( Min( bitDepth, sao( ) sao_offset_abs[ ][ ][ ][ ] TR 10) - 5 ) ) - 1, cRiceParam = 0 sao.offset_sign[ ][ ][ ][ ] FL Cmax = 1 sao_band_position[ ][ ][ ] FL Cmax = 31 sao_eo_class_luma FL Cmax = 3 sao_eo_class_chroma FL Cmax = 3 coding_quadtree qt_split_cu_flag[ ][ ] FL Cmax = 1 () mtt_split_cu_flag FL Cmax = 1 multi_type_tree( mtt_split_cu_vertical_flag FL Cmax = 1 ) mtt_split_cu_binary_flag FL Cmax = 1 coding_unit( ) cu_skip_flag[ ][ ] FL Cmax = 1 pred_mode_flag FL Cmax = 1 pcm_flag[ ][ ] FL Cmax = 1 intra_luma_ref_idx[ ][ ] TR cMax = 2, cRiceParam = 0 intra_luma_mpm_flag[ ][ ] FL cMax = 1 cMax = 5,cRiceParam = 0
TR intra_luma_mpm_idx[ ][ ] intra_luma_mpm_remainde TB cMix-60 r[ ][ ] intra_chroma_pred_mode[
9.5.3.7 - ][ ] merge_flag[ ][ ] FL cMax = 1 inter_pred_idc[ x0 ][ y0 ] 9.5.3.8 cbWidth, cbHeight inter_affine_flag[ ] [ ] FL cMax = 1 cu_affine_type_flag[ ][ ] FL cMax = 1 cMax = ref_idx_10[ ][ ] TR num_ref_idx_10_active_minus 1, cRiceParam = 0 mvp_10_flag[ ][ ] FL cMax = 1 cMax = ref_idx_11[ ][ ] TR num_ref_idx_11_active_minus 1, cRiceParam = 0 mvp_11_flag[ ][ ] FL cMax = 1 avmr_flag[ ][ ] FL cMax = 1 avmr_4pel_flag[ ][ ] FL cMax = 1 cMax = NoBackwardPredFlag gbi_idx[ ][ ] TR ? 4: 2 cu_cbf FL cMax = 1 mmvd_flag[ ][ ] FL cMax = 1 mmvd_merge_flag[ ][ ] FL cMax = 1 mmvd_distance_idx[ ][ ] TR cMax = 7, cRiceParam = 0 mmvd_direction_idx[ ][ ] FL cMax = 3 ciip_flag[ ][ ] FL cMax = 1 merge_data( ) ciip_luma_mpm_flag[ ][ ] FL cMax = 1 ciip_luma_mpm_idex[ ][ ] TR cMax = 2, cRiceParam = 0 merge_subblock_flag[ ][ ] FL cMax = 1 cMax = merge_subblock_idx[ ][ ] TR MaxNumSubblockMergeCand - 1, cRiceParam = 0 merge_triangle_flag[ ][ ] FL cMax = 1 merge_triangle_idx[ ][ ] EG1 - cMax = MaxNumMergeCand - merge_idx [ ][ ] TR 1, cRiceParam = 0 abs_mvd_greater0_flag[ ] FL cMax = 1 abs_mvd_greater1_flag[ ] FL cMax = 1 mvd_coding( ) abs_mvd_minus2[ ] EG1 - mvd_sign_flag[ ] FL cMax = 1 tu_cbf_luma[ ][ ][ ] FL cMax = 1 tu_cbf_cb[ ][ ][ ] FL cMax = 1 tu_cbf_cr[ ][ ][ ] FL cMax = 1 transform_unit( ) cu_qp_delta_abs 9.5.3.9 - cu_qp_delta_sign_flag FL cMax = 1 tu_mts_flag[ ][ ] FL cMax = 1 transform_skip_flag[ ][ ][ ] FL cMax = 1 cMax = ( Min( log2TbWidth, 5 ) last_sig_coeff_x _pefix TR << 1 ) - 1, cRiceParam = 0 cMax = ( Min( log2TbHeight, 5 last_sig_coeff_y_prefix TR ) << 1 ) - 1, cRiceParam = 0 cMax = ( 1 << ( ( last_sig_coeff_x _suffix FL last_sig_coeff_x_prefix >> 1 ) - 1) - 1) cMax = ( 1 << ( ( last_sig_coeff_y _suffix FL last_sig_coeff_y_prefix >> 1 ) - 1) - 1) residual_coding( coded_sub_block_flag[ ][ ] FL cMax = 1 ) sig_coeff_flag[ ][ ] FL cMax = 1 par_level_flag[ ] FL cMax = 1 abs_level_gt1_flag[ ] FL cMax = 1 abs_level_gt3_flag[ ] FL cMax = 1 cIdx, current sub-block index i, abs_remainder[ ] 9.5.3.10 x0, y0 cIdx, x0, y0, xC, yC, dec_abs_level[ ] 9.5.3.11 log2TbWidth, log2TbHeight coeff_sign_flag[ ] FL cMax = 1 mts_idx[ ][ ][ ] FL cMax = 3
[0183] No exemplo descrito acima, os métodos são explicados com base em um fluxograma por meio de uma série de etapas ou blocos, mas a presente invenção não se limita à ordem das etapas, e certa etapa pode ocorrer em uma ordem diferente ou simultaneamente a outras etapas em lugar do descrito acima. Além disso, os versados na técnica entenderão que as etapas ilustradas em um fluxograma não são exclusivas, e que outra etapa pode ser incorporada ou uma ou mais etapas do fluxograma podem ser removidas sem afetar o âmbito da presente invenção.
[0184] Os métodos precedentes de acordo com a invenção podem ser implementados na forma de um software, e o aparelho codificador e/ou o aparelho decodificador de acordo com a invenção podem ser incluídos em um aparelho para realizar o processamento de imagens, por exemplo, de uma TV, de um computador, de um smartphone, de um conversor de sinais e de um dispositivo de tela.
[0185] Na invenção, quando os exemplos são concretizados por um software, os métodos precedentes podem ser concretizados com módulos (processo, função ou seus semelhantes) para executar as funções supradescritas. Os módulos podem ser armazenados em uma memória e executados por um processador. A memória pode situar-se dentro ou fora do processador e pode ser conectada ao mesmo por vários meios bem conhecidos. O processador pode incluir um circuito integrado de aplicação específica (ASIC), um chipset diferente, um circuito de lógica e/ou um processador de dados. A memória pode incluir uma memória somente para 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 outro dispositivo de armazenamento. Ou seja, os exemplos descritos na presente invenção podem ser concretizados e executados em um processador, em um microprocessador, em um controlador ou em um chip. Por exemplo, as unidades de função ilustradas em cada desenho podem ser concretizadas e executadas em um processador, em um microprocessador, em um controlador ou em um chip. Nesse caso, as informações ou algoritmos para concretização (por exemplo, as informações sobre instruções) podem ser armazenados em um meio de armazenamento digital.
[0186] Além disso, o aparelho decodificador e o aparelho codificador aos quais a presente invenção se aplica podem ser incluídos em um transceptor de difusão multimídia, um terminal de comunicação móvel, um dispositivo de cinema em casa, um dispositivo de cinema digital, uma câmera de vigilância, um dispositivo de bate-papo com vídeo, um dispositivo de comunicação em tempo real tal como comunicação por vídeo, um dispositivo de transmissão móvel, um meio de armazenamento, uma filmadora, um dispositivo provedor de serviços de vídeo sob demanda (VoD), um dispositivo de vídeo over the top (OTT), um dispositivo provedor de serviços de transmissão via internet, um dispositivo de vídeos tridimensionais (3D), um dispositivo de realidade virtual, um dispositivo de realidade aumentada, um dispositivo de vídeo de telefonia com vídeo, um terminal de meio de transporte (por exemplo, um terminal de veículo (inclusive de veículo autônomo), um terminal de aeronave, um terminal de embarcação etc.) e um dispositivo de vídeo médico, e podem ser usados para processar um sinal de vídeo ou um sinal de dados. Por exemplo, o dispositivo de vídeo over the top (OTT) pode incluir um console de jogos eletrônicos, um reprodutor Blu-ray, uma TV com acesso à Internet, um sistema de home theater, um smartphone, um tablet, uma gravadora de vídeo digital (DVR) e seus semelhantes.
[0187] Além disso, o método de processamento ao qual a presente invenção se aplica pode ser produzido na forma de um programa executado por um computador e ser armazenado em um meio de gravação legível por computador. Dados multimídia com uma estrutura de dados de acordo com a presente invenção também podem ser armazenados em um 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 distribuição nos quais dados legíveis por computador são armazenados. O meio de gravação legível por computador pode incluir, 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 de dados óptico. Ademais, o meio de gravação legível por computador também inclui meios concretizados na forma de uma onda portadora (por exemplo, transmissão via Internet). Em aditamento, um fluxo de bits gerado pelo método de codificação pode ser armazenado em um meio de gravação legível por computador ou transmitido por uma rede de comunicação com fio ou sem fio.
[0188] Além disso, os exemplos da presente invenção podem ser concretizados como um produto de programa de computador por códigos de programa, e os códigos de programa podem ser executados em um computador pelos exemplos da presente invenção. Os códigos de programa podem ser armazenados em um portador legível por computador. Ademais, os versados na técnica entenderão que as etapas ilustradas em um fluxograma não são exclusivas e que outras etapas que não as descritas acima podem ser incluídas.
[0189] A Fig. 11 representa um exemplo de um sistema de transmissão de conteúdo ao qual a presente invenção pode ser aplicada.
[0190] Com referência à Fig 11, o sistema de transmissão de conteúdo ao qual (a)s modalidade(s) do presente documento se aplica(m) pode incluir em termos gerais um servidor de codificação, um servidor de transmissão, um servidor web, um armazenamento de mídia, um dispositivo do usuário e um dispositivo de entrada multimídia.
[0191] O servidor de codificação comprime os conteúdos introduzidos por dispositivos de entrada multimídia, tais como um smartphone, uma câmera, uma filmadora etc., em dados digitais para gerar um fluxo de bits e transmitir o fluxo de bits ao servidor de transmissão. Em outro exemplo, quando os dispositivos de entrada multimídia, tais como smartphones, câmeras, filmadoras etc., geram diretamente um fluxo de bits, o servidor de codificação pode ser omitido.
[0192] O fluxo de bits pode ser gerado por um método de codificação ou método de geração de fluxo de bits ao qual a(s) modalidade(s) do presente invenção se aplica(m), e o servidor de transmissão pode armazenar temporariamente o fluxo de bits no processo para transmitir ou receber o fluxo de bits.
[0193] O servidor de transmissão transmite os dados multimídia ao dispositivo do usuário com base em um pedido do usuário através do servidor web, e o servidor web atua como um meio para informar o usuário sobre um serviço. Quando o usuário solicita um serviço desejado ao servidor web, este o distribui a um servidor de transmissão, e o servidor de transmissão transmite dados multimídia ao usuário. Nesse caso, o sistema de transmissão de conteúdo pode incluir um servidor de controle separado. Nesse caso, o servidor de controle serve para controlar um comando/resposta entre dispositivos no sistema de transmissão de conteúdo.
[0194] O servidor de transmissão pode receber conteúdo de um armazenamento de mídia e/ou servidor de codificação. Por exemplo, quando o conteúdo é recebido do servidor de codificação, ele pode ser recebido em tempo real. Nesse caso, a fim de obter um servidor de transmissão fluido, o servidor de transmissão pode armazenar o fluxo de bits por um tempo predeterminado.
[0195] Exemplos do dispositivo do usuário podem incluir um telefone móvel, um smartphone, um computador laptop, um terminal de transmissão digital, um assistente digital pessoal (PDA), um reprodutor multimídia portátil (PMP), navegação, um slate PC, tablets, ultrabooks, dispositivos de vestir (por exemplo, smartwatches, smart glasses, telas de cabeça), TVs digitais, computadores desktop, sinalização digital, e seus semelhantes. Cada servidor no sistema de transmissão de conteúdo pode ser operado como um servidor distribuído, caso esse em que os dados recebidos de cada servidor podem ser distribuídos.
[0196] Cada um dos servidores no sistema de transmissão 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 (15)

REIVINDICAÇÕES
1. Método de decodificação de imagens através de um aparelho de decodificação, CARACTERIZADO por compreender: receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada para um bloco atual com base nas informações residuais; derivar amostras residuais para o bloco atual aplicando uma transformada inversa aos coeficientes de transformada derivados; e gerar uma gravura (picture) reconstruída com base nas amostras residuais para o bloco atual, em que o bloco atual inclui uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo e uma região à exceção da região de coeficientes de transformada de baixa frequência que inclui coeficiente de transformada 0; as informações residuais incluem informações de prefixo de último coeficiente significativo e informações de sufixo de último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero é determinada com base em uma palavra-código de prefixo e nas informações de sufixo de último coeficiente significativo, a palavra-código de prefixo é relacionada às informações de prefixo de último coeficiente significativo, e um comprimento máximo da palavra-código de prefixo é determinado com base em um tamanho da região de coeficientes de transformada de baixa frequência.
2. Método de decodificação de imagens, de acordo com a reivindicação 1,
CARACTERIZADO pelo fato de que o tamanho da região de coeficientes de transformada de baixa frequência é determinado com base em uma largura e altura da região de coeficientes de transformada de baixa frequência , e as informações de prefixo de último coeficiente significativo incluem informações de prefixo no eixo x e informações de prefixo no eixo y, e a palavra- código de prefixo é uma palavra-código para as informações de prefixo no eixo x ou uma palavra-código para as informações de prefixo no eixo y.
3. Método de decodificação de imagens, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que um comprimento máximo da palavra-código que indica as informações de prefixo no eixo x é determinado como 9 com base na largura da região de coeficientes de transformada de baixa frequência ser igual a 32, e um comprimento máximo da palavra-código que indica as informações de prefixo no eixo y é determinado como 9 com base na altura da região de coeficientes de transformada de baixa frequência ser igual a 32.
4. Método de decodificação de imagens, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que um valor binarizado máximo da palavra-código para as informações de prefixo no eixo x é determinado como 111111111 com base na largura do bloco atual ser superior a 32 e na largura da região de coeficientes de transformada de baixa frequência ser de 32, e um valor binarizado máximo da palavra-código para as informações de prefixo no eixo y é determinado como 111111111 com base na altura do bloco atual ser superior a 32 e na altura da região de coeficientes de transformada de baixa frequência ser de 32.
5. Método de decodificação de imagens, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que um comprimento máximo da palavra-código para as informações de prefixo no eixo x é determinado com base em cMaxx, em que cMaxx sendo calculado com base na seguinte equação: cMaxx= (log2(Min(W1, W2)) << 1) -1 onde cMaxx é igual ao comprimento máximo da palavra-código para as informações de prefixo no eixo x; W1 é uma largura do bloco atual; e W2 é uma largura da região de coeficientes de transformada de baixa frequência.
6. Método de decodificação de imagens, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que uma largura da região de coeficientes de transformada de baixa frequência é 32, e um comprimento máximo da palavra-código para as informações de prefixo no eixo x é determinado com base em cMaxx, em que cMaxx sendo calculado com base na seguinte equação: cMaxx= (Min(log2W1, 5)) << 1) -1 onde cMaxx é igual ao comprimento máximo da palavra-código para as informações de prefixo no eixo x, e W1 é uma largura do bloco atual.
7. Método de decodificação de imagens, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que um comprimento máximo da palavra-código para as informações de prefixo no eixo y é determinado com base em cMaxy, em que cMaxy sendo calculado com base na seguinte equação: cMaxy= (log2(Min(H1, H2)) << 1) -1 onde cMaxy é igual ao comprimento máximo da palavra-código para as informações de prefixo no eixo y; H1 é a altura do bloco atual; e H2 é a altura da região de coeficientes de transformada de baixa frequência.
8. Método de decodificação de imagens, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a altura do coeficiente de transformada de baixa frequência é 32, e o comprimento máximo da palavra-código para as informações de prefixo no eixo y é determinado com base em cMaxy, em que cMaxy sendo calculado com base na seguinte equação: cMaxy= (Min(log2H1, 5)) << 1) -1 onde cMaxy é igual ao comprimento máximo da palavra-código para as informações de prefixo no eixo y, e H1 é a altura do bloco atual.
9. Método de decodificação de imagens, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o bloco atual é um bloco quadrado ou um bloco não quadrado, uma largura da região de coeficientes de transformada de baixa frequência é determinada como 32 com base na largura do bloco atual ser de 64, e uma altura da região de coeficientes de transformada de baixa frequência é determinada como 32 com base na altura do bloco atual ser de 64.
10. Método de decodificação de imagens, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o tamanho da região de coeficientes de transformada de baixa frequência é um de 32x16, 16x32, 16x16 ou 32x32.
11. Método de decodificação de imagens, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o tamanho da região de coeficientes de transformada de baixa frequência é determinado com base em um tamanho do bloco atual.
12. Método de decodificação de imagens, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as informações residuais incluem informações sobre o tamanho da região de coeficientes de transformada de baixa frequência.
13. Método de decodificação de imagens, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que um tamanho do bloco atual é de 64 x 64, o tamanho da região de coeficientes de transformada de baixa frequência é de 32 x 32 e um comprimento máximo da palavra-código de prefixo é de 9.
14. Método de codificação de imagens através de um aparelho de codificação, CARACTERIZADO por compreender:
derivar amostras residuais para um bloco atual; derivar coeficientes de transformada para o bloco atual com base nas amostras residuais para o bloco atual; e codificar informações residuais relacionadas aos coeficientes de transformada, em que o bloco atual inclui uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo e uma região à exceção da região de coeficientes de transformada de baixa frequência que inclui coeficiente de transformada 0, as informações residuais incluem informações de prefixo de último coeficiente significativo e informações de sufixo de último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, a posição do último coeficiente de transformada diferente de zero sendo baseada em uma palavra-código de prefixo e nas informações de sufixo de último coeficiente significativo, a palavra-código de prefixo referindo-se às informações de prefixo de último coeficiente significativo, e um comprimento máximo da palavra-código de prefixo é determinado com base em um tamanho da região de coeficientes de transformada de baixa frequência.
15. Mídia de armazenamento legível por computador não transitória CARACTERIZADA por armazenar informações codificadas que fazem com que um aparelho de decodificação execute um método de decodificação de imagens, o método compreendendo: receber um fluxo de bits que inclui informações residuais; derivar coeficientes de transformada para um bloco atual com base nas informações residuais; derivar amostras residuais para o bloco atual aplicando uma transformada inversa aos coeficientes de transformada derivados; e gerar uma gravura (picture) reconstruída com base nas amostras residuais para o bloco atual, em que o bloco atual inclui uma região de coeficientes de transformada de baixa frequência que inclui ao menos um coeficiente de transformada significativo e uma região à exceção da região de coeficientes de transformada de baixa frequência que inclui coeficiente de transformada 0; em que as informações residuais incluem informações de prefixo de último coeficiente significativo e informações de sufixo de último coeficiente significativo na posição de um último coeficiente de transformada diferente de zero dentre os coeficientes de transformada para o bloco atual, em que a posição do último coeficiente de transformada diferente de zero é determinada com base em uma palavra-código de prefixo e nas informações de sufixo de último coeficiente significativo, em que a palavra-código de prefixo é relacionada às informações de prefixo de último coeficiente significativo, e em que um comprimento máximo da palavra-código de prefixo é determinado com base em um tamanho da região de coeficientes de transformada de baixa frequência.
BR112021007273-0A 2018-11-12 2019-11-12 método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória BR112021007273A2 (pt)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BR122021011813-2A BR122021011813A2 (pt) 2018-11-12 2019-11-12 Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862760033P 2018-11-12 2018-11-12
US62/760,033 2018-11-12
US201962792824P 2019-01-15 2019-01-15
US62/792,824 2019-01-15
PCT/KR2019/015330 WO2020101321A1 (ko) 2018-11-12 2019-11-12 고주파 제로잉을 기반으로 변환 계수를 코딩하는 방법 및 그 장치

Publications (1)

Publication Number Publication Date
BR112021007273A2 true BR112021007273A2 (pt) 2021-07-20

Family

ID=70730543

Family Applications (2)

Application Number Title Priority Date Filing Date
BR122021011813-2A BR122021011813A2 (pt) 2018-11-12 2019-11-12 Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória
BR112021007273-0A BR112021007273A2 (pt) 2018-11-12 2019-11-12 método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122021011813-2A BR122021011813A2 (pt) 2018-11-12 2019-11-12 Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória

Country Status (10)

Country Link
US (5) US10958939B2 (pt)
EP (1) EP3709658A4 (pt)
JP (1) JP2021510022A (pt)
KR (4) KR20230070059A (pt)
CN (5) CN114390282B (pt)
AU (3) AU2019378514B2 (pt)
BR (2) BR122021011813A2 (pt)
CA (1) CA3119744A1 (pt)
MX (1) MX2021005493A (pt)
WO (1) WO2020101321A1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102388807B1 (ko) * 2018-12-17 2022-04-20 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
TWI737143B (zh) * 2019-01-25 2021-08-21 聯發科技股份有限公司 帶有變換塊級別約束的變換係數編碼的方法和設備
KR20210124218A (ko) * 2019-02-07 2021-10-14 소니그룹주식회사 화상 처리 장치 및 방법
WO2020185022A1 (ko) 2019-03-12 2020-09-17 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11716474B2 (en) * 2020-01-02 2023-08-01 Samsung Electronics Co., Ltd. Storage of EVC decoder configuration information
CN114615504A (zh) * 2020-12-04 2022-06-10 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置及设备
KR20230150292A (ko) * 2021-02-24 2023-10-30 엘지전자 주식회사 영상 코딩 방법 및 그 장치
KR102593936B1 (ko) 2021-12-13 2023-10-27 주식회사 아이바이오코리아 신규한 펩타이드를 포함하는 황반변성의 치료용 조성물
WO2023191261A1 (ko) * 2022-03-30 2023-10-05 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 코딩하는 방법 및 장치

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100496118C (zh) * 2006-12-28 2009-06-03 武汉大学 一种h.264标准视频信息中残差系数幅值的加解密方法
JP2008252230A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 画像復号装置及び復号方法
EP2457378A4 (en) * 2009-07-23 2016-08-10 Ericsson Telefon Ab L M METHOD AND DEVICE FOR IMAGE CODING AND DECODING
KR101418101B1 (ko) * 2009-09-23 2014-07-16 에스케이 텔레콤주식회사 저주파수 성분을 고려한 영상 부호화/복호화 방법 및 장치
PT3244612T (pt) * 2010-04-13 2018-11-14 Ge Video Compression Llc Codificação de mapas de significância e blocos de coeficientes de transformada
KR101763113B1 (ko) * 2010-12-06 2017-08-01 에스케이 텔레콤주식회사 노이즈성분을 위한 공간영역에서의 영상 부호화/복호화 방법 및 장치
US9338449B2 (en) * 2011-03-08 2016-05-10 Qualcomm Incorporated Harmonized scan order for coding transform coefficients in video coding
ES2797423T3 (es) 2011-06-28 2020-12-02 Samsung Electronics Co Ltd Procedimiento de codificación y decodificación de vídeo usando codificación aritmética con una señalización bidimensional del último coeficiente significativo
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
EP2735154A1 (en) * 2011-07-22 2014-05-28 Motorola Mobility LLC Device and methods for scanning rectangular-shaped transforms in video coding
WO2013067435A1 (en) * 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
US9154792B2 (en) * 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
JP6134651B2 (ja) 2011-12-28 2017-05-24 シャープ株式会社 算術復号装置、算術符号化装置および算術復号方法
SG11201404240PA (en) * 2012-01-20 2014-08-28 Fraunhofer Ges Forschung Transform coefficient coding
EP2805495B1 (en) * 2012-01-20 2023-07-19 Google Technology Holdings LLC Devices and methods for context reduction in last significant coefficient position coding
KR101818102B1 (ko) * 2012-04-13 2018-01-12 캐논 가부시끼가이샤 인코딩된 비디오 데이터의 변환 유닛의 서브세트를 인코딩 및 디코딩하는 방법, 장치 및 시스템
CN104350753B (zh) * 2012-06-01 2019-07-09 威勒斯媒体国际有限公司 算术解码装置、图像解码装置、算术编码装置以及图像编码装置
EP2946553B1 (en) * 2013-01-16 2019-01-02 BlackBerry Limited Transform coefficient coding for context-adaptive binary entropy coding of video
WO2015100514A1 (en) * 2013-12-30 2015-07-09 Qualcomm Incorporated Simplification of delta dc residual coding in 3d video coding
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
WO2017057953A1 (ko) * 2015-09-30 2017-04-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
EP3270595A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for last coefficient coding for adaptive transform based video compression
CN115297324A (zh) * 2017-04-13 2022-11-04 Lg 电子株式会社 熵编码和解码视频信号的方法和设备

Also Published As

Publication number Publication date
KR20220025268A (ko) 2022-03-03
CN114390280B (zh) 2023-08-18
CN114390280A (zh) 2022-04-22
AU2019378514A1 (en) 2021-06-03
WO2020101321A1 (ko) 2020-05-22
CA3119744A1 (en) 2020-05-22
CN114390282B (zh) 2023-09-08
US11659205B2 (en) 2023-05-23
AU2023201854B2 (en) 2024-01-11
CN114374839B (zh) 2023-06-20
AU2024202188A1 (en) 2024-05-02
KR20220127385A (ko) 2022-09-19
BR122021011813A2 (pt) 2021-08-10
US20220086491A1 (en) 2022-03-17
CN114390281B (zh) 2023-09-08
KR102531145B1 (ko) 2023-05-09
CN114390281A (zh) 2022-04-22
US20230239507A1 (en) 2023-07-27
US10958939B2 (en) 2021-03-23
KR20200060397A (ko) 2020-05-29
KR102443278B1 (ko) 2022-09-14
AU2023201854A1 (en) 2023-04-13
EP3709658A4 (en) 2021-03-10
US20240129534A1 (en) 2024-04-18
KR20230070059A (ko) 2023-05-19
CN111436231A (zh) 2020-07-21
MX2021005493A (es) 2021-06-18
US11902582B2 (en) 2024-02-13
US20200236403A1 (en) 2020-07-23
EP3709658A1 (en) 2020-09-16
CN111436231B (zh) 2022-03-25
US11218733B2 (en) 2022-01-04
KR102365119B1 (ko) 2022-02-18
JP2021510022A (ja) 2021-04-08
CN114374839A (zh) 2022-04-19
CN114390282A (zh) 2022-04-22
AU2019378514B2 (en) 2022-12-22
US20210136418A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
BR112021007273A2 (pt) método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória
KR102448535B1 (ko) 변환 계수 레벨 코딩 방법 및 그 장치
BR122021007351B1 (pt) Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo
US20240056579A1 (en) Method of determining transform coefficient scan order based on high frequency zeroing and apparatus thereof
KR102631361B1 (ko) 변환 계수 코딩 방법 및 장치
RU2789446C2 (ru) Способ для кодирования коэффициента преобразования на основе высокочастотного обнуления и оборудование для этого
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
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]