BR112021004516A2 - método de codificação residual e dispositivo para o mesmo - Google Patents

método de codificação residual e dispositivo para o mesmo Download PDF

Info

Publication number
BR112021004516A2
BR112021004516A2 BR112021004516-3A BR112021004516A BR112021004516A2 BR 112021004516 A2 BR112021004516 A2 BR 112021004516A2 BR 112021004516 A BR112021004516 A BR 112021004516A BR 112021004516 A2 BR112021004516 A2 BR 112021004516A2
Authority
BR
Brazil
Prior art keywords
transform coefficient
flag
value
level
coefficient
Prior art date
Application number
BR112021004516-3A
Other languages
English (en)
Other versions
BR112021004516B1 (pt
Inventor
Jungah CHOI
Sunmi YOO
Jin Heo
Seunghwan Kim
Jangwon CHOI
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 BR122021008882-9A priority Critical patent/BR122021008882B1/pt
Priority to BR122021008876-4A priority patent/BR122021008876B1/pt
Publication of BR112021004516A2 publication Critical patent/BR112021004516A2/pt
Publication of BR112021004516B1 publication Critical patent/BR112021004516B1/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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 IMAGEM EXECUTADO POR UM APARELHO DE DECODIFICAÇÃO, MÉTODO DE CODIFICAÇÃO DE IMAGEM EXECUTADO POR UM APARELHO DE CODIFICAÇÃO E MÍDIA DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR. Trata-se de um método de decodificação de imagem, o qual é executado por um dispositivo de decodificação de acordo com a presente invenção, o qual é caracterizado por incluir: uma etapa para receber um fluxo de bits incluindo informação residual; uma etapa para derivar um coeficiente de transformada quantizado para um bloco atual com base na informação residual incluída no fluxo de bits; uma etapa para derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de quantização inversa; uma etapa para derivar uma amostra residual para o bloco atual por meio da aplicação de uma transformada inversa ao coeficiente de transformada derivado; e uma etapa para gerar uma imagem restaurada com base na amostra residual para o bloco atual.

Description

“MÉTODO DE DECODIFICAÇÃO DE IMAGEM EXECUTADO POR UM APARELHO DE DECODIFICAÇÃO, MÉTODO DE CODIFICAÇÃO DE IMAGEM EXECUTADO POR UM APARELHO DE CODIFICAÇÃO E MÍDIA DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR”
ANTECEDENTES DA INVENÇÃO Campo da Revelação
[001] A presente revelação relaciona-se a uma tecnologia de codificação de imagem, e, mais particularmente, a um sistema de codificação residual em um sistema de codificação de imagem, e a um dispositivo para o mesmo.
Técnica Relacionada
[002] Recentemente, a demanda por imagem/vídeo em alta resolução e de alta qualidade, tal como imagem/vídeo em Ultra-Alta Definição (UHD) em 4K ou 8K, vem aumentando em vários setores. À medida que a resolução ou qualidade da imagem/vídeo se torna maior, transmite-se uma quantidade de informação ou bits relativamente maior do que no caso dos dados de imagem/vídeo convencionais.
Portanto, se os dados de imagem/vídeo forem transmitidos através de um meio, tal como uma linha de banda larga com fio/sem fio existente, ou armazenados em um meio de armazenamento legado, os custos para transmissão e armazenamento aumentam de imediato.
[003] Além disso, tem aumentado o interesse e a demanda por conteúdos de realidade virtual (VR) e realidade artificial (AR), e por meios imersivos, como hologramas; e a difusão de imagens/vídeos exibindo características de imagem/vídeo diferentes das de uma imagem/vídeo real, tais como imagens/vídeo de jogo, também tem crescido.
[004] Portanto, uma técnica de compactação de imagem/vídeo altamente eficiente é necessária para, de forma eficaz, comprimir e transmitir, armazenar ou reproduzir imagens/vídeos de alta qualidade e alta resolução apresentando várias características como descrito acima.
SUMÁRIO
[005] Um objetivo da presente revelação é oferecer um método e um dispositivo para aprimorar a eficiência de codificação de imagem.
[006] Outro objetivo da presente revelação é oferecer um método e um dispositivo para aprimorar a eficiência da codificação residual.
[007] Ainda outro objetivo da presente revelação é oferecer um método e um dispositivo para aprimorar a eficiência da codificação residual por meio da realização de um processo de binarização nas informações residuais baseado em um parâmetro de Rice.
[008] Ainda outro objetivo da presente revelação é oferecer um método e um dispositivo para realizar a codificação residual definindo o valor máximo do parâmetro de Rice em 3.
[009] Ainda outro objetivo da presente revelação é oferecer um método e um dispositivo para realizar um processo de inicialização para derivar pelo menos um parâmetro de Rice para um sub-bloco incluído em um bloco atual.
[010] Uma modalidade da presente revelação oferece um método para decodificar uma imagem executado por um aparelho de decodificação. O método inclui receber um fluxo de bits incluindo informação residual, derivar um coeficiente de transformada quantizado para um bloco atual baseado nas informações residuais incluída no fluxo de bits, derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de desquantização, derivar uma amostra residual para o bloco atual pela aplicação de uma transformada inversa ao coeficiente de transformada derivado, e gerar uma imagem reconstruída com base na amostra residual para o bloco atual, e as informações residuais inclui informação de nível de coeficiente de transformada, a derivação do coeficiente de transformada quantizado inclui realizar um processo de binarização para o a informação de nível de coeficiente de transformada baseado em um parâmetro de Rice, derivar um valor da informação de nível de coeficiente de transformada baseado no resultado do processo de binarização, e derivar o coeficiente de transformada quantizado baseado no valor da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3.
[011] Outra modalidade da presente revelação proporciona um aparelho de decodificação para realizar a decodificação de imagem. O aparelho de decodificação inclui um decodificador por entropia que recebe um fluxo de bits incluindo informação residual, e deriva um coeficiente de transformada quantizado para um bloco atual baseado nas informações residuais incluída no fluxo de bits, um desquantizador que deriva um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de desquantização, um transformador inverso que deriva uma amostra residual para o bloco atual pela aplicação de uma transformada inversa ao coeficiente de transformada derivado, e um adicionador que gera uma imagem reconstruída com base na amostra residual para o bloco atual, e as informações residuais inclui informação de nível de coeficiente de transformada, o decodificador por entropia realiza um processo de binarização para a informação de nível de coeficiente de transformada com base em um parâmetro de Rice, deriva um valor da informação de nível de coeficiente de transformada com base no resultado do processo de binarização, e deriva o coeficiente de transformada quantizado com base no valor da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3.
[012] Ainda outra modalidade da presente revelação oferece um método para codificar uma imagem executado por um aparelho de codificação. O método inclui derivar uma amostra residual para um bloco atual, derivar um coeficiente de transformada por meio da transformação da amostra residual para o bloco atual, derivar um coeficiente de transformada quantizado a partir do coeficiente de transformada baseado em um processo de quantização, e codificar informação residual incluindo informação para o coeficiente de transformada quantizado, e as informações residuais inclui informação de nível de coeficiente de transformada, a codificação das informações residuais inclui derivar um valor de binarização da informação de nível de coeficiente de transformada por meio da execução do processo de binarização para a informação de nível de coeficiente de transformada baseado em um parâmetro de Rice e pela codificação do valor de binarização da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3.
[013] Ainda outra modalidade da presente revelação proporciona um aparelho de codificação para realizar a codificação de imagem. O aparelho de codificação incluir um subtrator que deriva uma amostra residual para um bloco atual, um transformador que deriva um coeficiente de transformada por meio da transformação da amostra residual para o bloco atual, um quantizador que deriva um coeficiente de transformada quantizado a partir do coeficiente de transformada baseado em um processo de quantização, e um codificador por entropia que codificas informações residuais incluindo informação sobre o coeficiente de transformada quantizado, e as informações residuais inclui informação de nível de coeficiente de transformada, o codificador por entropia deriva um valor de binarização da informação de nível de coeficiente de transformada por meio da execução do processo de binarização para a informação de nível de coeficiente de transformada baseado em um parâmetro de Rice, e codifica o valor de binarização da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3.
[014] De acordo com a presente revelação, é possível aprimorar a eficiência geral de compactação de imagem/vídeo.
[015] De acordo com a presente revelação, é possível aprimorar a eficiência da codificação residual.
[016] De acordo com a presente revelação, é possível aprimorar a eficiência de codificação residual realizando o processo de binarização nas informações residuais com base nos parâmetros de Rice.
[017] De acordo com a presente revelação, é possível realizar a codificação residual de maneira eficiente ao definir o valor máximo do parâmetro de Rice como
3.
[018] De acordo com a presente revelação, é possível realizar o processo de inicialização para derivar pelo menos um parâmetro de Rice para o sub-bloco incluído no bloco atual.
BREVE DESCRIÇÃO DOS DESENHOS
[019] A FIG. 1 é um diagrama ilustrando esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[020] A FIG. 2 é um diagrama explicando esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[021] A FIG. 3 é um diagrama explicando esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[022] A FIG. 4 é um diagrama para explicar um exemplo de derivação de um parâmetro de Rice para um coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com uma modalidade.
[023] As FIGS. 5A a 5C são diagramas para explicar outro exemplo de derivação de um parâmetro de Rice para um coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com algumas modalidades.
[024] As FIGS. 6A a 6C são diagramas para explicar ainda outro exemplo de derivação de um parâmetro de Rice para um coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com algumas outras modalidades.
[025] A FIG. 7 é um diagrama ilustrando um processo de derivação de coeficientes quantizados de um bloco 2x2 de acordo com uma modalidade.
[026] As FIGS. 8A e 8B são diagramas ilustrando uma configuração e um método de operação de um codificador por entropia de acordo com uma modalidade.
[027] As FIGS. 9A e 9B são diagramas ilustrando uma configuração e um método de operação de um decodificador por entropia de acordo com uma modalidade.
[028] A FIG. 10 é um fluxograma ilustrando um método de codificação por entropia de um aparelho de codificação de acordo com uma modalidade.
[029] A FIG. 11 é um fluxograma ilustrando um método de decodificação por entropia de um aparelho de decodificação de acordo com uma modalidade.
[030] A FIG. 12 é um fluxograma ilustrando uma operação do aparelho de codificação de acordo com uma modalidade.
[031] A FIG. 13 é um diagrama de blocos ilustrando uma configuração do aparelho de codificação de acordo com uma modalidade.
[032] A FIG. 14 é um fluxograma ilustrando uma operação do aparelho de decodificação de acordo com uma modalidade.
[033] A FIG. 15 é um diagrama de blocos ilustrando uma configuração do aparelho de decodificação de acordo com uma modalidade.
[034] A FIG. 16 é um diagrama ilustrando um exemplo de um sistema de transmissão em fluxo contínuo de conteúdo ao qual a revelação revelada no presente documento pode ser aplicada.
DESCRIÇÃO DAS MODALIDADES ILUSTRATIVAS
[035] Uma modalidade da presente revelação oferece um método para decodificar uma imagem executado por um aparelho de decodificação. O método inclui receber um fluxo de bits incluindo informação residual, derivar um coeficiente de transformada quantizado para um bloco atual baseado nas informações residuais incluída no fluxo de bits, derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de desquantização, derivar uma amostra residual para o bloco atual pela aplicação de uma transformada inversa ao coeficiente de transformada derivado, e gerar uma imagem reconstruída com base na amostra residual para o bloco atual, e as informações residuais compreende informação de nível de coeficiente de transformada, a derivação do coeficiente de transformada quantizado inclui realizar um processo de binarização para o a informação de nível de coeficiente de transformada baseado em um parâmetro de Rice, derivar um valor da informação de nível de coeficiente de transformada baseado no resultado do processo de binarização, e derivar o coeficiente de transformada quantizado baseado no valor da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3.
[036] A presente revelação pode ser alterada de várias maneiras e pode ter várias modalidades, e modalidades específicas da mesma serão descritas em detalhes ilustradas nos desenhos. Entretanto, isso não limita a presente revelação às modalidades específicas. Os termos usados no presente relatório descritivo são usados para meramente descrever modalidades específicas e não têm a intenção de limitar a essência técnica da presente revelação. Uma expressão de um número singular inclui uma expressão do número plural, contanto que seja lida claramente no contexto de maneira diferente. Termos como “incluem” e “possuem”, no presente relatório descritivo, pretendem representar que os aspectos, números, etapas, operações, componentes, partes ou combinações dos mesmos usados no relatório descritivo existem, e deve-se compreender que a possibilidade de existência ou adição de um ou mais aspectos, números, etapas, operações, componentes, partes, ou combinações diferentes dos mesmos não está excluída de antemão.
[037] Enquanto isso, cada um dos componentes nos desenhos descritos na presente revelação é ilustrado de maneira independente por conveniência de descrição no que diz respeito às diferentes funções das características, e não significa que cada um dos componentes é implementado em hardware separado ou software separado. Por exemplo, dois ou mais dos componentes podem ser combinados para formar um componente, ou um componente pode ser dividido em uma pluralidade de elementos. Modalidades nas quais cada componente é integrado e/ou separado também estão incluídas no escopo da presente revelação sem se afastar da ideia central da presente revelação.
[038] Daqui em diante, modalidades preferidas da presente revelação serão descritas em mais detalhes com referência aos desenhos acompanhantes. Daqui em diante, os mesmos numerais de referência são usados para os mesmos componentes nos desenhos, e a descrição redundante dos mesmos componentes pode ser omitida.
[039] A FIG. 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[040] Referindo-se à FIG. 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro aparelho (dispositivo de origem) e um segundo aparelho (dispositivo de recepção). O dispositivo de origem pode transmitir informação ou dados de vídeo/imagem codificados ao dispositivo de recepção através de um meio de armazenamento digital ou rede na forma de um arquivo ou transmissão em fluxo contínuo (streaming).
[041] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo receptor pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser chamado de aparelho de codificação de vídeo/imagem e o aparelho de decodificação pode ser chamado de aparelho de decodificação de vídeo/imagem. O transmissor pode ser incluído no aparelho de codificação. O receptor pode ser incluído no aparelho de decodificação. O renderizador pode incluir um meio de exibição, e o meio de exibição pode ser configurado como um dispositivo separado ou como um componente externo.
[042] A fonte de vídeo pode obter vídeo/imagem através de um processo de captura, síntese ou geração do vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens capturadas anteriormente, entre outros. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones, e pode (eletronicamente) gerar vídeo/imagens. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador, ou similares. Neste caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[043] O aparelho de codificação pode codificar vídeo/imagem de entrada. O aparelho de codificação pode realizar uma série de procedimentos, tal como predição, transformada, e quantização para eficiência de compactação e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos na forma de um fluxo de bits.
[044] O transmissor pode transmitir as informações ou dados de imagem/vídeo codificados na forma de um fluxo de bits ao receptor do dispositivo receptor através de um meio de armazenamento digital ou uma rede na forma de um arquivo ou transmissão em fluxo contínuo. O meio de armazenamento digital pode incluir vários meios de armazenamento, tais como USB, SD, CD, DVD, Blu-ray, HDD, SSD, dente outros. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado, e pode incluir um elemento para transmissão através de uma rede de difusão/comunicação. O receptor pode receber / extrair o fluxo de bits e transmitir o fluxo de bits recebido ao aparelho de decodificação.
[045] O aparelho de decodificação pode decodificar o vídeo/imagem realizando uma série de procedimentos, tal como desquantização, transformada inversa, e predição correspondendo à operação do aparelho de codificação.
[046] O renderizador pode renderizar o vídeo/imagem decodificada. O vídeo/imagem renderizado(a) pode ser exibido(a) através do meio de exibição.
[047] Este documento está relacionado à codificação de vídeo/imagem. Por exemplo, os métodos/modalidades revelados neste documento podem ser aplicados a um método que é revelado em um padrão de codificação de vídeo versátil (VVC), em um padrão de codificação de vídeo essencial (EVC), em um padrão de Vídeo AOMedia 1 (AV1), em uma padrão de 2a geração de codificação de áudio/vídeo
(AVS2), ou em um padrão de codificação de vídeo/imagem de próxima geração (por exemplo, H.267, H.268, entre outros).
[048] Este documento sugere várias modalidades de codificação de vídeo/imagem, e as modalidades acima também podem ser realizadas em combinação umas com as outras, salvo especificação em contrário.
[049] Neste documento, um vídeo pode se referir a uma série de imagens ao longo do tempo. Uma imagem refere-se, de modo geral, à unidade representando uma imagem em um período de tempo específico, e uma fatia/tile refere-se à unidade constituindo a imagem em termos de codificação. Uma fatia/tile pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma imagem pode consistir em uma ou mais fatias/ladrilhos (tiles). Uma imagem pode consistir em um ou mais grupos de ladrilhos (tiles). Um grupo de ladrilhos pode incluir um ou mais ladrilhos.
Um brick pode representar uma região retangular de linhas de CTU dentro de um tile em uma imagem. Um tile pode ser particionado em múltiplos bricks, cada um dos quais consiste de uma ou mais linhas de CTU dentro do tile. Um tile que não é particionado em múltiplos bricks também pode ser chamado de brick. Uma varredura de brick é uma ordenação sequencial específica das CTUs particionando uma imagem em que as CTUs são ordenadas consecutivamente na varredura por rastreamento de CTU em um brick, os bricks dentro de um tile são ordenados consecutivamente em uma varredura por rastreamento dos bricks do tile, e os ladrilhos em uma imagem são ordenados consecutivamente em uma varredura por rastreio dos ladrilhos da imagem. Um tile é uma região retangular de CTUs dentro de uma determinada coluna de tile e uma determinada linha de tile em uma imagem. A coluna de tile é uma região retangular de CTUs com uma altura igual à altura da imagem e uma largura especificada pelos elementos de sintaxe no conjunto de parâmetros de imagem. A linha de tile é uma região retangular de CTUs com uma altura especificada pelos elementos de sintaxe no conjunto de parâmetros de imagem e uma largura igual à largura da imagem. Uma varredura de tile é uma ordenação sequencial especificada de CTUs particionando uma imagem, em que as CTUs são ordenadas consecutivamente em uma varredura por rastreamento de CTU em um tile, ao passo que os ladrilhos em uma imagem são ordenados consecutivamente em uma varredura por rastreamento dos ladrilhos da imagem.
Uma fatia inclui um número inteiro de bricks de uma imagem que podem estar exclusivamente contidos em uma única unidade NAL. Uma fatia pode consistir tanto de um número de ladrilhos completos quanto somente de uma sequência consecutiva de bricks completos de um tile. Neste documento, um grupo de ladrilhos e uma fatia podem ser usados de forma intercambiável. Por exemplo, neste documento, um grupo de ladrilhos/cabeçalho de grupo de ladrilhos também pode ser chamado de fatia/cabeçalho de fatia.
[050] Um pixel ou um “pel” (elemento de imagem) pode representar uma unidade mínima constituindo uma imagem (ou figura). Além disso, o termo "amostra" pode ser usado como um termo correspondendo a um pixel. Uma amostra pode representar de forma geral um pixel ou um valor de um pixel, e pode representar somente um pixel / valor de pixel de um componente de luma ou somente um pixel / valor de final de um componente de croma.
[051] Uma unidade pode representar uma unidade básica de processamento de imagem. A unidade pode incluir pelo menos uma dentre uma região específica da imagem e informações relacionadas à região. Uma unidade pode incluir um bloco de luma e dois blocos de croma (por exemplo, cb, cr). A unidade pode ser usada de forma intercambiável com termos tais 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.
[052] Neste documento, o termo “/” e “;” deverá ser interpretado para indicar “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”. Além disso, “A/B/C” pode significar “pelo menos um de A, B e/ou C”. Adicionalmente, “A/B/C” pode significar “pelo menos um de A, B e/ou C”.
[053] Além disso, neste documento, o termo “ou” deverá ser interpretado para indicar “e/ou”. Por exemplo, a expressão “A ou B” pode compreender 1) somente A, 2) somente B, e/ou 3) tanto A quanto B. Em outras palavras, o termo “ou”, neste documento, deverá ser interpretado para indicar “adicionalmente ou alternativamente”.
[054] A FIG. 2 ilustra uma estrutura de um aparelho de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada. No que se segue, um aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[055] Referindo-se à Figura. 2, o aparelho de codificação 200 inclui um particionador de imagem 210, um preditor 220, um processador de residual 230, e um codificador por entropia 240, um adicionador 250, um filtro 260, e uma memória
270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 222. O processador de residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234 e um transformador inverso 235. O processador de residual 230 pode adicionalmente incluir um subtrator 231. O adicionador 250 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador de residual 230, o codificador por entropia 240, o adicionador 250 e o filtro 260 podem ser configurados por pelo menos um componente de hardware (por exemplo, um chipset codificador ou processador) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um armazenamento temporário de imagens decodificadas (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode adicionalmente incluir a memória 270 como um componente interno/externo.
[056] O particionador de imagem 210 pode particionar uma imagem de entrada (ou imagem ou quadro), transmitida ao aparelho de codificação 200 para um ou mais processadores. Por exemplo, o processador pode ser chamado de unidade de codificação (CU). Neste caso, a unidade de codificação pode ser particionada recursivamente de acordo com uma estrutura de árvore quaternária – árvore binária – árvore ternária (QTBTTT) a partir de uma unidade de árvore de codificação) ou uma maior unidade de codificação (LCU). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação de profundidade maior com base em uma estrutura de árvore quaternária, uma estrutura de árvore binária e/ou uma estrutura de árvore ternária. Neste caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou a estrutura ternária pode ser aplicada depois. Como alternativa, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com a presente revelação pode ser realizado com base na unidade de codificação final que não é mais particionada. Neste caso, a maior unidade de codificação pode ser usada como a unidade de codificação final com base na eficiência de codificação de acordo com as características de imagem, ou, se necessário, a unidade de codificação pode ser particionada recursivamente em unidades de codificação de profundidade maior e uma unidade de codificação possuindo 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á descrito posteriormente. Como outro exemplo, o processador pode adicionalmente incluir uma unidade de predição (PU), ou uma unidade de transformada (TU). Neste caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas a partir de cada 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 de um coeficiente de transformada.
[057] A unidade pode ser usada de forma intercambiável com termos tais 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 compostos de M colunas e N linhas. Uma amostra pode representar de forma geral um pixel ou um valor de um pixel, pode representar somente um pixel / valor de pixel de um componente de luma ou representar somente um pixel / valor de pixel de um componente de croma. Uma mostra pode ser usada como um termo correspondendo a uma figura (ou imagem) para um pixel ou um “pel” (elemento de imagem).
[058] No aparelho de codificação 200, um sinal de predição (bloco predito, arranjo de amostras de predição) emitido a partir do interpreditor 221 ou do intrapreditor 222 é subtraído de um sinal de imagem de entrada (bloco original, arranjo de amostras original) para gerar um bloco residual de sinal residual, arranjo de amostras residuais), e o sinal residual gerado é transmitido ao transformador 232.
Neste 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 ou arranjo de amostras original) no codificador 200 pode ser chamada de subtrator 231. O preditor 110 pode realizar predição em um bloco a ser processado (daqui em diante, chamado de bloco atual), e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada na base do bloco atual ou CU. Como descrito posteriormente 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 transmitir as informações geradas ao codificador por entropia 240. A informação sobre a predição pode ser codificada no codificador por entropia 240 e emitida na forma de um fluxo de bits.
[059] O intrapreditor 222 pode predizer o bloco atual referindo-se às amostras na imagem atual. As amostras referenciadas podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas distante 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 modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcional ou 65 modos de predição direcional de acordo com o grau de detalhes da direção de predição. Entretanto, isto é meramente um exemplo, podendo-se usar mais ou menos modos de predição direcional dependendo de uma configuração. 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.
[060] O interpreditor 221 pode derivar um bloco predito para o bloco atual baseado em um bloco de referência (arranjo de amostras de referência) especificado por um vetor de movimento em uma imagem de referência. Aqui, de modo a reduzir a quantidade de informação de movimento transmitida no modo de interpredição, a informação de movimento pode ser predita em unidades de blocos, sub-blocos ou amostras baseado na correlação da informação de movimento entre o bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de imagem de referência. A informação de movimento pode adicionalmente incluir informação de direção de interpredição (predição L0, predição
L1, Bipredição, etc.). No caso da interpredição, o bloco adjacente pode incluir um bloco espacial adjacente presente na imagem atual e um bloco temporal adjacente presente na imagem de referência. A imagem de referência incluindo o bloco de referência e a imagem de referência incluindo o bloco vizinho temporal pode ser a mesma ou diferente. O bloco vizinho temporal pode ser chamado de bloco de referência co-localizado, de CU co-localizada (colCU), e similares, e a imagem de referência incluindo o bloco vizinho temporal pode ser chamado de imagem co- localizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos de informação de movimento baseado nos blocos vizinhos e gerar informações representando qual candidato é usado para derivar um vetor de movimento e/ou índice de imagem 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 combinação, o interpreditor 221 pode usar informação de movimento do bloco vizinho como informação de movimento do bloco atual. No modo de salto, ao contrário do modo de combinação, um sinal residual pode não ser transmitido. No caso do modo de predição de vetor de movimento (MVP), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser indicado sinalizando uma diferença do vetor de movimento.
[061] O preditor 220 pode gerar um sinal de predição baseado em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não apenas aplicar intrapredição ou interpredição para predizer um bloco, mas também simultaneamente aplicar tanto intrapredição quanto interpredição. Esta pode ser chamada de combinação inter e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou em um modo de paleta para predição de um bloco. O modo de predição de IBS ou modo de paleta pode ser usado para codificação de imagem/vídeo de um jogo ou similar, por exemplo, codificação de conteúdo na tela (SCC). A IBS basicamente realiza predição na imagem atual, mas pode ser realizada similarmente à interpredição em que um bloco de referência é derivado na imagem atual. Isto é, a IBS pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou intrapredição Quando o modo de paleta é aplicado, um valor de amostra dentro de uma imagem pode ser sinalizado com base na informação sobre a tabela de paleta e no índice de paleta.
[062] O sinal de predição gerado pelo preditor (incluindo 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 pela aplicação de uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma dentre uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada de Karhunen–Loève (KLT), uma transformada baseada em grafos (GBT), ou uma transformada condicionalmente não-linear (CNT). Aqui, a GBT refere- se a uma transformada obtida a partir de um grafo quando a informação de relação entre os pixels é representada pelo grafo. A CNT refere-se a uma transformada gerada com base em um sinal de predição gerado usando todos os pixels reconstruídos anteriormente. Adicionalmente, o processo de transformada pode ser aplicado a blocos de pixels quadrados possuindo o mesmo tamanho ou pode ser aplicado a blocos possuindo um tamanho variável em vez de quadrado
[063] A 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 (informação sobre os coeficientes de transformada quantizados) e emitir um fluxo de bits.
A informação sobre os coeficientes de transformada quantizados pode ser chamada de informação residual.
O quantizador
233 pode reordenar os coeficientes de transformada quantizados do tipo bloco em uma forma de vetor unidimensional baseado em uma ordem de varredura de coeficiente e gerar informação sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados na forma de vetor unidimensional.
A informação sobre os coeficientes de transformada pode ser gerada.
O codificador por entropia 240 pode realizar vários métodos de codificação,
tal como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptativa ao contexto (CAVLC), e codificação aritmética binária adaptativa ao contexto (CABAC), entre outros.
O codificador por entropia 240 pode codificar informação necessária para reconstrução de vídeo/imagem além dos coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.),
juntos ou separadamente.
A informação codificada (por exemplo, informação de vídeo/imagem codificada) pode ser transmitida ou armazenada em unidades de
NALs (camada de abstração de rede) na forma de um fluxo de bits.
A informação de vídeo/imagem pode adicionalmente incluir informação sobre vários conjuntos de parâmetros, tal como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de imagem (PPS), um conjunto de parâmetros de sequência (SPS),
ou um conjunto de parâmetros de vídeo (VPS). Adicionalmente, a informação de vídeo/imagem pode adicionalmente incluir informação de restrição geral.
Neste documento, a informação e/ou os elementos de sintaxe transmitidos / sinalizados a partir do aparelho de codificação para o aparelho de decodificação podem ser incluídos na informação de vídeo/imagem.
A informação de vídeo/imagem pode ser codificada através do procedimento de codificação descrito acima e incluída no fluxo de bits.
O fluxo de bits pode ser transmitido através de uma rede ou pode ser armazenado em um meio de armazenamento digital. A rede pode incluir uma rede de difusão e/ou uma rede de comunicação, e o meio de armazenamento digital pode incluir vários meios de armazenamento, tal como um USB, SD, CD, DVD, Blu-ray, HDD, SSD, dentre outros. Um transmissor (não ilustrado) transmitindo um sinal emitido a partir do codificador por entropia 240 e/ou de uma unidade de armazenamento (não ilustrada) armazenando o sinal pode ser configurado como um elemento interno/externo do aparelho de codificação 200, e, alternativamente, o transmissor pode ser incluído no codificador por entropia 240.
[064] Os coeficientes de transformada quantizados emitidos a partir do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído pela aplicação de desquantização e transformada inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235. O adicionador 250 adiciona o sinal residual reconstruído ao sinal de predição emitido a partir do interpreditor 221 ou do intrapreditor 222 para gerar um sinal reconstruído (imagem reconstruída, bloco reconstruído, arranjo de amostras reconstruído). Se não houver residual para o bloco a ser processado, tal como um caso em que o modo de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído. O adicionador 250 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para a intrapredição de um próximo bloco a ser processado na imagem atual e pode ser usado para a interpredição de uma próxima imagem através de filtragem, como descrito abaixo.
[065] Enquanto isso, o mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado durante a codificação e/ou reconstrução de imagem.
[066] O filtro 260 pode melhorar a qualidade subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma imagem reconstruída modificada pela aplicação de vários métodos de filtragem à imagem reconstruída e armazenar a imagem reconstruída modificada na memória 270, especificamente, um DPB da memória 270. Os diversos métodos de filtragem podem incluir, por exemplo, filtro de remoção do efeito de bloco, uma compensação de amostra adaptativa, um filtro em laço adaptativo, um filtro bilateral, entre outros. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas ao codificador por entropia 240, como descrito posteriormente na descrição de cada método de filtragem. A informação relacionada à filtragem pode ser codificada pelo codificador por entropia 240 e emitida na forma de um fluxo de bits.
[067] A imagem reconstruída modificada transmitida à memória 270 pode ser usada como a imagem de referência no interpreditor 221. Quando a interpredição é aplicada através do aparelho de codificação, o descompasso de predição entre o aparelho de codificação 300 e o aparelho de decodificação pode ser evitado e a eficiência de codificação pode ser aprimorada.
[068] O DPB da memória 270 DPB pode armazenar a imagem reconstruída modificada para uso como uma imagem de referência no interpreditor 221. A memória 270 pode armazenar a informação de movimento do bloco a partir do qual a informação de movimento na imagem atual é derivada (ou codificada) e/ou a informação de movimento dos blocos na imagem que já foram reconstruídos. A informação de movimento armazenada pode ser transmitida ao interpreditor 221 e usada como a informação de movimento do bloco vizinho espacial ou a informação de movimento do bloco vizinho temporal. A memória 270 pode armazenar amostras reconstruídas de blocos reconstruídos na imagem atual e pode transferir as amostras reconstruídas ao intrapreditor 222.
[069] A FIG. 3 ilustra uma estrutura de um aparelho de decodificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[070] Referindo-se à Figura 3, o aparelho de decodificação 300 pode incluir um decodificador por entropia 310, um processador de residual 320, um preditor 330, um adicionador 340, um filtro 350, e uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador de residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador por entropia 310, o processador de residual 320, o preditor 330, o adicionador 340 e o filtro 350 podem ser configurados por um componente de hardware (por exemplo, um chipset decodificador ou um processador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um armazenamento temporário de imagens decodificadas (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode adicionalmente incluir a memória 360 como um componente interno/externo.
[071] Quando um fluxo de bits incluindo informação de vídeo/imagem é recebido, o aparelho de decodificação 300 pode reconstruir uma imagem de acordo com um processo no qual a informação de vídeo/imagem é processada no aparelho de codificação da Figura 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base em informações relacionadas à partição de blocos obtida a partir do fluxo de bits. O aparelho de decodificação 300 pode realizar decodificação usando um processador aplicado no aparelho de codificação. 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 árvore de codificação ou da maior unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas a partir da unidade de codificação. O sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução.
[072] O aparelho de decodificação 300 pode receber um sinal emitido a partir do aparelho de codificação da Figura 2 na forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador por entropia 310. Por exemplo, o decodificador por entropia 310 pode analisar o fluxo de bits para derivar informação (por exemplo, informação de vídeo/imagem) necessária à reconstrução de imagem (ou reconstrução de figura). A informação de vídeo/imagem pode adicionalmente incluir informação sobre vários conjuntos de parâmetros, tal como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de imagem (PPS), um conjunto de parâmetros de sequência (SPS), ou um conjunto de parâmetros de vídeo (VPS). Adicionalmente, a informação de vídeo/imagem pode adicionalmente incluir informação de restrição geral. O aparelho de decodificação pode adicionalmente decodificar imagem baseado na informação do conjunto de parâmetros e/ou na informação de restrição geral. A informação sinalizada/recebida e/ou os elementos de sintaxe descritos posteriormente 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 a informação no fluxo de bits com base em um método de codificação, tal como codificação de Golomb exponencial, CAVLC, CABAC, e emite elementos de sintaxe necessários à reconstrução de vídeo e valores quantizados de coeficientes de transformada para residual. Mais especificamente, o método de decodificação por entropia CABAC pode receber um bin correspondendo a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto usando uma informação de elemento de sintaxe alvo, decodificação da informação de um blocos alvo ou informação de um símbolo/bin decodificado em um estágio anterior, e realizar uma decodificação aritmética no bin por meio da predição de uma probabilidade de ocorrência de um bin de acordo com o modelo de contexto determinado, e gerar um símbolo correspondendo ao valor de cada elemento de sintaxe.
Neste caso, o método de decodificação por entropia CABAC pode atualizar o modelo de contexto usando a informação do símbolo/bin decodificado para um modelo de contexto de um próximo símbolo/bin após a determinação do modelo de contexto.
A informação relacionada à predição dentre a informação decodificada pelo decodificador por entropia 310 pode ser fornecida ao preditor (o interpreditor 332 e o intrapreditor 331), e o valor residual no qual a decodificação por entropia foi realizada no decodificador por entropia 310, isto é, os coeficientes de transformada quantizados e informação de parâmetro relacionada, podem ser informados ao processador de residual 320. O processador de residual 320 pode derivar o sinal residual (o bloco residual, as amostras residuais, o arranjo de amostras residuais). Adicionalmente, a informação sobre filtragem dentre as informações decodificadas pelo decodificador por entropia
310 pode ser fornecida ao filtro 350. Enquanto isto, um receptor (não ilustrado) para receber um sinal emitido a partir do aparelho de codificação pode ser adicionalmente configurado como um elemento interno / externo do aparelho de decodificação 300,
ou o receptor pode ser um componente do decodificador por entropia 310. Enquanto isso, o aparelho de decodificação de acordo com este documento pode ser chamado de aparelho de decodificação de vídeo / imagem / figura, e o aparelho de decodificação pode ser classificado em um decodificador de informação
(decodificador de informação de vídeo / imagem / figura) e um decodificador de amostra (decodificador de amostra de vídeo / imagem / figura). O decodificador de informação pode incluir o decodificador por entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o adicionador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331.
[073] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir o coeficientes de transformada. O desquantizador 321 pode reordenar os coeficientes de transformada quantizados na forma de uma forma de bloco bidimensional. Neste caso, a reordenação pode ser realizada com base na ordem de varredura de coeficientes realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informação de tamanho de passo de quantização) e obter coeficientes de transformada.
[074] O transformador inverso 322 transforma inversamente os coeficientes de transformada para obter um sinal residual (bloco residual, arranjo de amostras residuais).
[075] O preditor pode realizar predição no bloco atual e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou a interpredição é aplicada ao bloco atual com base na informação sobre a saída de predição a partir do decodificador por entropia 310, e pode determinar um modo de intrapredição/inter específico.
[076] O preditor 320 pode gerar um sinal de predição baseado em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não apenas aplicar intrapredição ou interpredição para predizer um bloco, mas também simultaneamente aplicar intrapredição e interpredição. Esta pode ser chamada de combinação inter e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou em um modo de paleta para predição de um bloco. O modo de predição de IBS ou modo de paleta pode ser usado para codificação de imagem/vídeo de um jogo ou similar, por exemplo, codificação de conteúdo na tela (SCC). A IBS basicamente realiza predição na imagem atual, mas pode ser realizada similarmente à interpredição em que um bloco de referência é derivado na imagem atual. Isto é, a IBS pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou intrapredição Quando o modo de paleta é aplicado, um valor de amostra dentro de uma imagem pode ser sinalizado com base na informação sobre a tabela de paleta e no índice de paleta.
[077] O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na imagem atual. As amostras referenciadas podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas distante 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.
[078] O interpreditor 332 pode derivar um bloco predito para o bloco atual baseado em um bloco de referência (arranjo de amostras de referência) especificado por um vetor de movimento em uma imagem de referência. Neste caso, de modo a reduzir a quantidade de informação de movimento transmitida no modo de interpredição, a informação de movimento pode ser predita em unidades de blocos, sub-blocos ou amostras baseado na correlação da informação de movimento entre o bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de imagem de referência. A informação de movimento pode adicionalmente incluir informação de direção de interpredição (predição L0, predição L1, Bipredição, etc.). No caso da interpredição, o bloco adjacente pode incluir um bloco espacial adjacente presente na imagem atual e um bloco temporal adjacente presente na imagem de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidatos de informação de movimento com base nos blocos vizinhos, e derivar um vetor de movimento do bloco atual e/ou um índice de imagem de referência com base na informação de seleção de candidato recebida. A interpredição pode ser realizada com base em vários modos de predição, e a informação sobre a predição pode incluir informação representando um modo de interpredição para o bloco atual.
[079] O adicionador 340 pode gerar um sinal reconstruído (imagem reconstruída, bloco reconstruído, arranjo de amostras reconstruído) por meio da adição do sinal residual obtido ao sinal de predição (bloco predito, arranjo de amostras preditas) emitido a partir do preditor (incluindo o interpreditor 332 e/ou o intrapreditor 331). Se não houver residual para o bloco a ser processado, tal como um caso em que o modo de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído.
[080] O adicionador 340 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para a intrapredição de um próximo bloco a ser processado na imagem atual, pode ser emitido através de filtragem como descrito abaixo, ou pode ser usado para interpredição de uma próxima imagem.
[081] Enquanto isso, o mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado no processo de codificação de imagem.
[082] O filtro 350 pode melhorar a qualidade subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma imagem reconstruída modificada pela aplicação de vários métodos de filtragem à imagem reconstruída e armazenar a imagem reconstruída modificada na memória 360, especificamente, um DPB da memória 360. Os diversos métodos de filtragem podem incluir, por exemplo, filtro de remoção do efeito de bloco, uma compensação de amostra adaptativa, um filtro em laço adaptativo, um filtro bilateral, entre outros.
[083] A imagem reconstruída (modificada) armazenada no DPB da memória 360 pode ser usada como uma imagem de referência no interpreditor 332. A memória 360 pode armazenar a informação de movimento do bloco a partir do qual a informação de movimento na imagem atual é derivada (ou decodificada) e/ou a informação de movimento dos blocos na imagem que já foram reconstruídos. A informação de movimento armazenada pode ser transmitida ao interpreditor 260 de modo a ser utilizada como a informação de movimento do bloco vizinho espacial ou a informação de movimento do bloco vizinho temporal. A memória 360 pode armazenar amostras reconstruídas de blocos reconstruídos na imagem atual e transferir as amostras reconstruídas ao intrapreditor 331.
[084] Na presente revelação, as modalidades descritas no filtro 260, o interpreditor 221, e o intrapreditor 222 do aparelho de codificação 200 podem ser os mesmos que ou respectivamente aplicados para corresponder ao filtro 350, ao interpreditor 332 e ao intrapreditor 331 do aparelho de decodificação 300. O mesmo também pode se aplicar à unidade 332 e ao intrapreditor 331.
[085] Como descrito acima, ao realizar a codificação de vídeo, a predição é realizada para melhorar a eficiência de compactação. Consequentemente, um bloco predito incluindo amostras de predição para um bloco atual, que é um bloco de codificação alvo, pode ser gerado. Aqui, o bloco predito inclui amostras de predição em um domínio espacial (ou domínio de pixel). O bloco predito é derivado igualmente de um aparelho de codificação e de um aparelho de decodificação, e o aparelho de codificação pode sinalizar informação (informação de residual) sobre o residual entre o bloco original e o bloco predito em vez do valor de amostra original do próprio bloco original ao aparelho de decodificação, dessa forma melhorando a eficiência de codificação de imagem. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, gerar um bloco reconstruído incluindo amostras de reconstrução somando-se o bloco residual e o bloco predito, e gerar uma imagem reconstruída incluindo os blocos reestruturados.
[086] As informações residuais pode ser gerada através de procedimentos de transformada e quantização. Por exemplo, o aparelho de codificação pode sinalizar informação residual relacionada ao aparelho de decodificação (através de um fluxo de bits) por meio da derivação do bloco residual entre o bloco original e o bloco predito, derivar coeficientes de transformada realizando o procedimento de transformada para as amostras residuais (arranjo de amostras residuais) incluídas no bloco residual, e derivar coeficientes de transformada quantizados realizando o procedimento de quantização para os coeficientes de transformada. Aqui, as informações residuais pode incluir informações tais como informações de valor, informações de posição, uma técnica de transformada, um núcleo de transformada, e parâmetros de quantização dos coeficientes de transformada quantizados. O aparelho de decodificação pode realizar procedimentos de desquantização / transformada inversa com base nas informações residuais, e derivar as amostras residuais (ou blocos residuais). O aparelho de decodificação pode gerar uma imagem reconstruída com base no bloco predito e no bloco residual. O aparelho de codificação também pode desquantizar/transformar inversamente os coeficientes de transformada quantizados para referência para a interpredição da pós-imagem para derivar o bloco residual, e gerar a imagem reconstruída com base no mesmo.
[087] Em uma modalidade, os coeficientes de transformada (quantizados) são codificados e/ou decodificados com base nos elementos de sintaxe, tais como transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix,
last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, abs_remainder, coeff_sign_flag, e mts_idx. A Tabela 1 abaixo representa os elementos de sintaxe relacionados à codificação dos dados residuais.
Tabela 1 Descrito residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { r if( transform_skip_enabled_flag && ( cIdx ! = 0 | | cu_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 lastSub-block = ( 1 << ( log2TbWidth + log2TbHeight − 2 * log2SbSize ) )−1 do { if( lastScanPos = = 0 ) { lastScanPos = numSbCoeff lastSub-block− −
}
lastScanPos− − xS =
DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize
]
[ lastSub-block ][ 0 ]
yS =
DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize
]
[ lastSub-block ][ 1 ]
xC = ( xS << log2SbSize ) +
DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 0 ]
yC = ( yS << log2SbSize ) +
DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 1 ]
} while( ( xC != LastSignificantCoeffX ) | | ( yC != LastSignificantCoeffY
))
QState = 0 for( i = lastSub-block; i >= 0; i− − ) {
startQStateSb = QState xS =
DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize
]
[ lastSub-block ][ 0 ]
yS =
DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize
]
[ lastSub-block ][ 1 ]
inferSbDcSigCoeffFlag = 0 if( ( i < lastSub-block ) && ( i > 0 ) ) {
coded_sub_block_flag[ xS ][ yS ] ae(v)
inferSbDcSigCoeffFlag = 1
}
firstSigScanPosSb = numSbCoeff lastSigScanPosSb = −1 for( n = ( i = = lastSub-block ) ? 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 ] ae(v)
}
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 ) | | ( CuPredMode[ x0 ][ y0 ] = = MODE_INTER ) ) ) { mts_idx[ x0 ][ y0 ] ae(v) }
[088] O transform_skip_flag representa se a transformada é omitida em um bloco associado. O bloco associado pode ser um bloco de codificação (CB) ou um bloco de transformada (TB). Com respeito aos procedimentos de transformada (e quantização) e codificação residual, o CB e o TB podem ser usados de forma intercambiável. Por exemplo, como descrito acima, as amostras residuais podem ser derivadas para o CB, e os coeficientes de transformada (quantizados) podem ser derivados através da transformada e da quantização para as amostras residuais, e a informação (por exemplo, elementos de sintaxe) representando de maneira eficiente a posição, tamanho, sinal, dentre outros, dos coeficientes de transformada (quantizados), pode ser gerada e sinalizada através do procedimento de codificação residual. Os coeficientes de transformada quantizados podem simplesmente ser chamados de coeficientes de transformada. Geralmente, se o CB não for maior do que o TB máximo, o tamanho do CB pode ser igual ao tamanho do TB, e, neste caso, o bloco alvo a ser transformado (e quantizado) e codificado por residual pode ser chamado de CB ou TB. Enquanto isso, se o CB for maior do que o TB máximo, o bloco alvo a ser transformado (e quantizado) e codificado por residual pode ser chamado de TB. Daqui em diante, embora seja descrito que os elementos de sintaxe relacionados à codificação residual são sinalizados em unidades de bloco de transformada (TB), isto é um exemplo e o TB pode ser usado de forma intercambiável com o bloco de codificação (CB), como descrito acima.
[089] Em uma modalidade, a informação de posição (x, y) do último coeficiente de transformada não zero dentro do bloco de transformada pode ser codificada com base nos elementos de sintaxe last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix e last_sig_coeff_y_suffix. Mais especificamente, o last_sig_coeff_x_prefix representa o prefixo da posição de coluna do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, o last_sig_coeff_y_prefix representa o prefixo da posição de linha do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, o last_sig_coeff_x_suffix representa o sufixo da posição de coluna do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, e o last_sig_coeff_y_suffix representa o sufixo da posição de linha do último coeficiente significativo na ordem de varredura dentro do bloco de transformada. Aqui, o coeficiente significativo pode representar o coeficiente não zero. A ordem de varredura pode ser uma ordem de varredura diagonal cima-direita.
Como alternativa, a ordem de varredura pode ser uma ordem de varredura horizontal ou uma ordem de varredura vertical. A ordem de varredura pode ser determinada com base em se a intrapredição/inter é aplicada ao bloco alvo (CB, ou CB incluindo TB) e/ou a um modo de intrapredição/inter específico.
[090] Subsequentemente, após o bloco de transformada ser dividido em sub- blocos de 4x4, um elemento de sintaxe de 1 bit coded_sub_block_flag pode ser usado a cada sub-bloco de 4x4 para representar se existe o coeficiente não zero dentro do sub-bloco atual.
[091] Se um valor do coded_sub_block_flag for 0, não há mais informação a ser transmitida, de modo que o processo de codificação para o sub-bloco atual pode ser terminado. Inversamente, se o valor do coded_sub_block_flag for 1, o processo de codificação para o sig_coeff_flag pode ser realizado continuamente. Uma vez que a codificação para o coded_sub_block_flag não é necessária para o sub-bloco incluindo o último coeficiente não zero, e o sub-bloco incluindo informação DC do bloco de transformada tem alta probabilidade de incluir o coeficiente não zero, o coded_sub_block_flag não é codificado e o valor do mesmo pode ser assumido como sendo 1.
[092] Se o valor do coded_sub_block_flag for 1 e for determinado que o coeficiente não zero existe dentro do sub-bloco atual, o sig_coeff_flag possuindo um valor binário pode ser codificado de acordo com a ordem varrida inversamente. Um elemento de sintaxe de 1 bit sig_coeff_flag pode ser codificado para cada coeficiente de acordo com a ordem de varredura. Se o valor do coeficiente de transformada na posição de varredura atual não for 0, o valor do sig_coeff_flag pode ser 1. Aqui, no caso do sub-bloco incluindo o último coeficiente não zero, uma vez que não é necessário codificar o sig_coeff_flag para o último coeficiente não zero, o processo de codificação para o sub-bloco pode ser omitido. A informação de nível pode ser codificada somente quando o sig_coeff_flag é 1, e quatro elementos de sintaxe podem ser usados no processo de codificação de informação de nível. Mais especificamente, cada sig_coeff_flag [xC] [yC] pode representar se o nível (valor) do coeficiente de transformada correspondente em cada posição de coeficiente de transformada (xC, yC) dentro do TB atual é não zero.
[093] O valor de nível restante após a codificação para o sig_coeff_flag pode ser expresso pela Equação 1 abaixo. Ou seja, o elemento de sintaxe remAbsLevel representando o valor de nível a ser codificado pode ser expresso pela Equação 1 abaixo. Aqui, o coeff significa um valor de coeficiente de transformada real.
[094] Equação 1
[095] remAbsLevel = |coeff| - 1
[096] Como expresso pela Equação 2 abaixo, um valor do coeficiente menos significativo (LSB) do remAbsLevel expresso pela Equação 1 pode ser codificado através do par_level_flag. Aqui, o par_level_flag [n] pode representar uma paridade do nível (valor) de coeficiente de transformada na posição de varredura (n). Após o par_level_flag ser codificado, um valor de nível de coeficiente de transformada remAbsLevel a ser codificado pode ser atualizado como expresso pela Equação 3 abaixo.
[097] Equação 2
[098] par_level_flag = remAbsLevel & 1
[099] Equação 3
[0100] remAbsLevel’ = remAbsLevel >> 1
[0101] O rem_abs_gt1_flag pode representar se o remAbsLevel' na posição de varredura correspondente (n) é maior do que 1, e o rem_abs_gt2_flag pode representar se o remAbsLevel' na posição de varredura correspondente (n) é maior do que 2. A codificação para o abs_remainder pode ser realizada somente quando o rem_abs_gt2_flag é 1. A relação entre o valor de coeficiente de transformada real (coeff) e os respectivos elementos de sintaxe é, por exemplo, resumida como expresso pela Equação 4 abaixo, e a Tabela 2 a seguir representa exemplos relacionados à Equação 4. Além disso, o sinal de cada coeficiente pode ser codificado usando um símbolo de 1 bit coeff_sign_flag. O |coeff| representa o nível (valor) de coeficiente de transformada, e também pode ser expresso como AbsLevel para o coeficiente de transformada.
[0102] Equação 4
[0103] |coeff| = sig_coeff_flag + par_level_flag + 2 * (rem_abs_gt1_flag + rem_abs_gt2_flag + abs_remainder) Tabela 2 |coeff| sig_coeff_flag par_level_flag rem_abs_gt1_flag rem_abs_gt2_flag abs_remainder 0 0 1 1 0 0 2 1 1 0 3 1 0 1 0 4 1 1 1 0 5 1 0 1 1 0 6 1 1 1 1 0 7 1 0 1 1 1 8 1 1 1 1 1 9 1 0 1 1 2
... ... ... ... ... ...
[0104] Enquanto isso, em outra modalidade, o rem_abs_gt2_flag também pode ser chamado de rem_abs_gt3_flag, e em ainda outra modalidade, o rem_abs_gt1_flag e o rem_abs_gt2_flag também podem ser representados com base em abs_level_gtx_flag [n] [j]. O abs_level_gtx_flag [n] [j] pode ser um sinalizador representando se um valor absoluto do nível de coeficiente de transformada (ou valor obtido deslocando-se o nível de coeficiente de transformada para a direita por 1) na posição de varredura (n) é maior do que (j << 1) + 1. O rem_abs_gt1_flag pode realizar as mesmas funções e/ou similares que o abs_level_gtx_flag [n] [0], e o rem_abs_gt2_flag pode realizar as mesmas funções ou similares que o abs_level_gtx_flag [n] [1]. Em alguns casos, o (j << 1) + 1 também pode ser substituído por um valor de referência predeterminado, tal como um primeiro valor de referência e um segundo valor de referência.
[0105] O método de binarização para cada elemento de sintaxe pode ser expresso na Tabela 3 abaixo. Na Tabela 3, um TR significa um método de binarização de Rice Truncado, FL significa um método de binarização de Comprimento Fixo, e uma descrição detalhada de cada método de binarização será descrita posteriormente.
Tabela 3 Binarização Elemento de sintaxe Process Parâmetros de entrada o transform_skip_flag[ ][ ][ FL cMax = 1 ]
cMax = ( log2TrafoSize << 1 ) − 1, last_sig_coeff_x_prefix TR cRiceParam = 0 cMax = ( log2TrafoSize << 1 ) − 1, last_sig_coeff_y_prefix TR cRiceParam = 0 cMax = last_sig_coeff_x_suffix FL ( 1 << ( ( last_sig_coeff_x_prefix >> 1 ) − 1 ) −1) cMax = last_sig_coeff_y_suffix FL ( 1 << ( ( last_sig_coeff_y_prefix >> 1 ) − 1 ) −1) coded_sub_block_flag[ ] FL cMax = 1 [] sig_coeff_flag[ ][ ] FL cMax = 1 par_level_flag[ ] FL cMax = 1 rem_abs_gt1_flag[ ] FL cMax = 1 rem_abs_gt2_flag[ ] FL cMax = 1 abs_remainder[ ] 2.0.5 cIdx, x0, y0, xC, yC, log2TbWidth, log2TbHeight coeff_sign_flag[ ] FL cMax = 1 mts_idx[ ][ ] FL cMax = 3
[0106] Em uma modalidade, o processo de binarização de Rice Truncado, um processo de análise para o processo de binarização de Exp-Golomb de 0-ésima ordem, o processo de binarização de Exp-Golomb de k-ésima ordem, o processo de binarização de Comprimento Fixo, o processo de binarização para o abs_remainder, o processo de derivação de parâmetros de Rice, entre outros, podem ser, por exemplo, implementados de acordo com a seguinte especificação em inglês.
[0107] 1. Processo de binarização de Rice Truncado
[0108] A entrada para este processo é uma solicitação por uma binarização de Rice truncado (TR), cMax e cRiceParam.
[0109] A saída deste processo é a binarização de TR associando cada valor symbolVal a uma sequência de caracteres binária correspondente.
[0110] Uma sequência de caracteres TR é uma concatenação de uma sequência de caracteres binária de prefixo e, quando presente, uma sequência de caracteres binária de sufixo.
[0111] Para a derivação da sequência de caracteres binária de prefixo, o seguinte se aplica:
[0112] – O valor de prefixo de symbolVal, prefixVal, é derivado como se segue:
[0113] prefixVal = symbolVal >> cRiceParam (1)
[0114] – O prefixo da sequência de caracteres binária TR é especificado como se segue:
[0115] – Se prefixVal for menor do que cMax >> cRiceParam, a sequência de caracteres binária de prefixo é uma sequência de caracteres de bits de comprimento prefixVal + 1 indexado por binIdx. Os bins (binários) para binIdx menor do que prefix Val são iguais a 1. O bin com binIdx igual a prefixVal é igual a 0. A Tabela 4 ilustra as sequências de caracteres binárias desta binarização unária para prefixVal.
[0116] – Caso contrário, a sequências de caracteres binárias é uma sequência de caracteres de comprimento cMax >> cRiceParam com todos os bins sendo iguais a 1.
Tabela 4 prefixVal Sequência de caracteres binária 0 0
...
binIdx 0 1 2 3 4 5
[0117] Quando cMax é maior do que symbolVal e cRiceParam é maior do que 0, o sufixo da sequência de caracteres binária TR está presente e é derivado como se segue:
[0118] – O valor do sufixo suffixVal é derivado como se segue:
[0119] suffixVal = symbolVal − ( ( prefixVal ) << cRiceParam ) (2)
[0120] – O sufixo da sequências de caracteres binária TR é especificado invocando-se o processo de binarização de comprimento fixo (FL) conforme especificado na cláusula 4 para suffixVal com um valor de cMax igual a ( 1 << cRiceParam ) − 1.
[0121] NOTA – Para o parâmetro de entrada cRiceParam = 0, a binarização de TR é exatamente uma binarização unária truncada e é sempre invocada com um valor de cMax igual ao maior valor possível do elemento de sintaxe sendo codificado.
[0122] 2. Processo de análise para o processo de binarização de Exp- Golomb de 0a ordem
[0123] Os elementos de sintaxe codificados como ue(v) são codificados por Exp-Golomb. O processo de análise para esses elementos de sintaxe começa com a leitura dos bits iniciando na localização atual no fluxo de bits até e incluindo o primeiro bit não zero, e contando o número de bits dianteiros que são iguais a 0.
Este processo é especificado como se segue:
[0124] leadingZeroBits = −1
[0125] for( b = 0; !b; leadingZeroBits++ ) (3)
[0126] b = read_bits( 1 )
[0127] A variável codeNum é então designada como se segue:
[0128] codeNum = 2leadingZeroBits − 1 + read_bits( leadingZeroBits ) (4)
[0129] onde o valor retornado a partir de read_bits( leadingZeroBits ) é interpretado como uma representação binária de um inteiro sem sinal com o bit mais significativo escrito primeiro.
[0130] A Tabela 5 ilustra a estrutura do código de Exp-Golomb separando a sequência de caracteres de bits em bits de “prefixo” e “sufixo”. Os bits de “prefixo” são os bits que são analisados como especificado acima para o cálculo de leadingZeroBits, e são apresentados como 0 ou 1 na coluna de sequência de caracteres de bits da Tabela 5. Os bits de “sufixo” são os bits que são analisados no cálculo de codeNum e são apresentados como xi na Tabela 5, com i no intervalo de 0 a leadingZeroBits – 1, inclusive. Cada xi é igual a 0 ou 1.
Tabela 5 Forma da sequência de caracteres de bits Intevalo de codeNum 1 0 0 1 x0 1..2 0 0 1 x1 x0 3..6 0 0 0 1 x2 x1 x0 7..14 0 0 0 0 1 x 3 x2 x1 x0 15..30 0 0 0 0 0 1 x4 x3 x2 x1 x0 31..62
... ...
[0131] A Tabela 6 ilustra de forma explícita a atribuição das sequências de caracteres de bits aos valores de codeNum. Isto é, as sequências de caracteres de bits de Exp-Golomb e codeNum são representados na forma explícita e usados como ue(v).
Tabela 6 Sequência de caracteres de bits codeNum 1 0 010 1 011 2 00100 3 00101 4 00110 5 00111 6 0001000 7 0001001 8 0001010 9 ... ...
[0132] Dependendo do descritor, o valor de um elemento de sintaxe é derivado como se segue:
[0133] – Se o elemento de sintaxe for codificado como ue(v), o valor do elemento de sintaxe é igual a codeNum.
[0134] 3. processo de binarização de Exp-Golomb de k-ésima ordem
[0135] As entradas para este processo são uma solicitação para uma binarização de Exp-Golomb de k-ésima ordem (EGk)
[0136] A saída deste processo é a binarização de EGk associando cada valor symbolVal a uma sequência de caracteres binária correspondente.
[0137] A sequência de caracteres binária do processo de binarização de EGk para cada valor symbolVal é especificada como se segue, onde cada chamada da função put(X), com X sendo igual a 0 ou 1, adiciona o valor binário X ao final da sequência de caracteres binária:
[0138] absV = Abs( symbolVal )
[0139] stopLoop = 0
[0140] do
[0141] if( absV >= ( 1 << k ) ) {
[0142] put( 1 )
[0143] absV = absV − ( 1 << k )
[0144] k++
[0145] } else {
[0146] put( 0 ) (5)
[0147] while( k− − )
[0148] put( ( absV >> k ) & 1 )
[0149] stopLoop = 1
[0150] }
[0151] while( !stopLoop )
[0152] NOTA – A especificação para o código de Exp-Golomb de k-ésima ordem (EGk) usa 1s e 0s no significado reverso para a parte unária do código de Exp-Golomb de 0-ésima ordem conforme especificado na cláusula 2.
[0153] 4. Processo de binarização de comprimento fixo
[0154] As entradas para este processo são uma solicitação para uma binarização de comprimento fixo (FL) e cMax.
[0155] A saída deste processo é a binarização de FL associando cada valor symbolVal a uma sequência de caracteres binária correspondente.
[0156] A binarização de FL é construída usando a sequência de caracteres binária de inteiro sem sinal de bit fixedLength do valor de símbolo symbolVal, onde fixedLength = Ceil( Log2( cMax + 1 ) ). A indexação dos bins para a binarização de FL é tal que o binIdx = 0 se relaciona ao bit mais significativo com valores crescentes de binIdx em direção ao bit menos significativo.
[0157] 5. Processo de binarização para abs_remainder
[0158] A entrada para este processo é uma solicitação para uma binarização para o elemento de sintaxe abs_remainder[ n ], o componente de cor cIdx, a localização de luma ( x0, y0 ) especificando a amostra superior-esquerda do bloco de transformada de luma atual em relação à amostra de luma superior-esquerda da imagem), a localização de varredura de coeficiente atual ( xC, yC ), o logaritmo binário da largura de bloco de transformada log2TbWidth, e o logaritmo binário da altura de bloco de transformada log2TbHeight
[0159] A saída deste processo é a binarização do elemento de sintaxe.
[0160] O parâmetro de Rice cRiceParam é derivado invocando-se o processo de derivação de parâmetro de Rice conforme especificado na cláusula 6 com o índice de componente de cor cIdx, a localização de luma (x0, y0), a localização de varredura de coeficiente atual hm da altura de bloco de transformada log2TbHeight como entradas.
[0161] A variável cMax é derivada de cRiceParam como:
[0162] cMax = ( cRiceParam = = 1 ? 6 : 7 ) << cRiceParam (6)
[0163] A binarização do elemento de sintaxe abs_remainder[ n ] é uma concatenação de uma sequência de caracteres binária de prefixo e (quando presente) uma sequência de caracteres binária de sufixo.
[0164] Para a derivação da sequência de caracteres binária de prefixo, o seguinte se aplica:
[0165] – O valor de prefixo de abs_remainder[ n ], prefixVal, é derivado como se segue:
[0166] prefixVal = Min( cMax, abs_remainder[ n ] ) (7)
[0167] – A sequência de caracteres binária de prefixo é especificada invocando-se o processo de binarização de TR como especificado na cláusula 1 para prefixVal com as variáveis cMax e cRiceParam como entradas.
[0168] Quando a sequência de caracteres binária de prefixo é igual à sequência de caracteres de bits de comprimento 4 com todos os bits iguais a 1, a sequência de caracteres binária de sufixo está presente e é derivada como se segue:
[0169] – O valor de sufixo de abs_remainder[ n ], suffixVal, é derivado como se segue:
[0170] suffixVal = abs_remainder[ n ] − cMax (8)
[0171] – A sequência de caracteres binária de sufixo é especificada invocando-se o processo de binarização de EGk de k-ésima ordem conforme especificado na cláusula 3 para a binarização de suffixVal com a Exp-Golomb de ordem k definida igual a cRiceParam + 1.
[0172] 6. Processo de derivação de parâmetro de Rice
[0173] As entradas para este processo são o índice de componente de cor cIdx, a localização de luma ( x0, y0 ) especificando a amostra superior-esquerda do bloco de transformada atual em relação à amostra superior-esquerda da imagem atual, a localização de varredura de coeficiente atual ( xC, yC ), o logaritmo binário da largura de bloco de transformada log2TbWidth, e o logaritmo binário da altura de bloco de transformada log2TbHeight
[0174] A saída deste processo é o parâmetro de Rice cRiceParam.
[0175] Dados os elementos de sintaxe sig_coeff_flag[ x ][ y ] e o arranjo AbsLevel[ x ][ C ] para o bloco de transformada com o índice de componente cIdx e a localização de luma superior-esquerda ( x0, y0 ), a variável locSumAbs é derivada conforme especificado pelo seguinte pseudocódigo:
[0176] locSumAbs = 0
[0177] if( xC < (1 << log2TbWidth) − 1 ) {
[0178] locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ]
[0179] if( xC < (1 << log2TbWidth) − 2 )
[0180] locSumAbs += AbsLevel[ xC + 2 ][ yC ] − sig_coeff_flag[ xC + 2 ][ yC ]
[0181] if( yC < (1 << log2TbHeight) − 1 )
[0182] locSumAbs += AbsLevel[ xC + 1 ][ yC + 1 ] − sig_coeff_flag[ xC + 1 ][ yC + 1 ] (9)
[0183] }
[0184] if( yC < (1 << log2TbHeight) − 1 ) {
[0185] locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ]
[0186] if( yC < (1 << log2TbHeight) − 2 )
[0187] locSumAbsPass1 += AbsLevelPass1 [ xC ][ yC + 2 ] − sig_coeff_flag[ xC ][ yC + 2 ]
[0188] }
[0189] O parâmetro de Rice cRiceParam é derivado como se segue:
[0190] – Se locSumAbs for menor do que 12, cRiceParam é definido igual a 0;
[0191] – Senão Se locSumAbs for menor do que 25, cRiceParam é definido igual a 1;
[0192] – Senão (locSumAbs é maior do que ou igual a 25), cRiceParam é definido igual a 2.
[0193] A FIG. 4 é um diagrama para explicar um exemplo de derivação de um parâmetro de Rice para um coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com uma modalidade.
[0194] Como descrito acima na Seção 6 da especificação em inglês ilustrada na FIG. 3, o parâmetro de Rice para o coeficiente de transformada da posição de varredura atual pode ser determinado com base na soma de nível dos cinco coeficientes de transformada vizinhos já codificados (indicação sombreada clara na FIG. 4) para o coeficiente de transformada atual (indicação sombreada na FIG. 4) e o valor do sig_coeff_flag. Neste caso, pode ser necessário confirmar toda vez que as posições dos coeficientes de transformada de referência excedem um limite de bloco de transformada. Ou seja, toda vez que o nível de coeficiente de transformada é codificado, cinco processos de verificação de limite podem ser acompanhados. Mais especificamente, uma vez que as 5 vezes dos processos de verificação de limite são necessárias para o coeficiente de transformada requerendo a codificação do elemento de sintaxe abs_remainder, a complexidade computacional pode aumentar se um grande número de coeficientes de transformada com um valor de nível grande forem gerados.
[0195] Uma vez que a complexidade computacional aumenta em proporção ao tamanho do coeficiente de transformada de referência usado no processo de derivação do parâmetro de Rice, as seguintes modalidades propõem um método para usar menos do que 5 coeficientes de transformada de referência. As FIGS. 5A a 5C ilustram um caso em que quatro, três e dois coeficientes de transformada de referência são usados, e vários padrões de uso de coeficiente de transformada de referência correspondendo a cada caso são ilustrados. As FIGS. 6A a 6C ilustram vários padrões de uso de coeficiente de transformada de referência no caso de se utilizar um coeficiente de transformada de referência. O objetivo das modalidades de acordo com as FIGS. 5A a 6C é reduzir a complexidade computacional por meio da redução do número de coeficientes de transformada de referência, de modo que a presente revelação inclua todos os casos em que menos de 5 coeficientes de transformada de referência são usados, e não se limita às modalidades supramencionadas.
[0196] As FIGS. 5A a 5C são diagramas para explicar outro exemplo de derivação de um parâmetro de Rice para o coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com algumas modalidades.
[0197] A FIG. 5A é um diagrama para explicar um processo de derivação de um parâmetro de Rice baseado em quatro coeficientes de transformada de referência vizinhos (indicação sombreada clara na FIG. 5A) para o coeficiente de transformada atual. Um coeficiente de soma temporário pode ser derivado no meio para derivar o parâmetro de Rice. O coeficiente de soma temporário pode ser representado como, por exemplo, locSumAbs. Um valor do coeficiente de soma temporário (por exemplo, locSumAbs) pode ser inicialmente zero, e o valor do coeficiente de soma temporário (por exemplo, locSumAbs) pode ser atualizado ao mesmo tempo em que se detecta cada coeficiente de transformada de referência vizinho.
[0198] O processo de atualizar o valor do coeficiente de soma temporário (por exemplo, locSumAbs) baseado nos quatro coeficientes de transformada de referência vizinhos ilustrados na FIG. 5A pode ser, por exemplo, expresso na Tabela 7 abaixo.
Tabela 7 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ] if( xC < (1 << log2TbWidth) − 2 ) locSumAbs += AbsLevel[ xC + 2 ][ yC ] − sig_coeff_flag[ xC + 2 ][ yC ] } if( yC < (1 << log2TbHeight) − 1 ) { locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ] if( yC < (1 << log2TbHeight) − 2 ) locSumAbsPass1 += AbsLevelPass1 [ xC ][ yC + 2 ] − sig_coeff_flag[ xC ][ yC + 2 ] }
[0199] A FIG. 5B é um diagrama para explicar um processo de derivação de um parâmetro de Rice baseado em três coeficientes de transformada de referência vizinhos (indicação sombreada clara na FIG. 5B) para o coeficiente de transformada atual. O processo de atualizar o valor do coeficiente de soma temporário (por exemplo, locSumAbs) baseado nos três coeficientes de transformada de referência vizinhos ilustrados na FIG. 5B pode ser, por exemplo, expresso na Tabela 8 abaixo.
Tabela 8 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ] if( yC < (1 << log2TbHeight) − 1 ) locSumAbs += AbsLevel[ xC + 1 ][ yC + 1 ] − sig_coeff_flag[ xC + 1 ][ yC + 1] } if( yC < (1 << log2TbHeight) − 1 ) {
locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ] }
[0200] A FIG. 5C é um diagrama para explicar um processo de derivação de um parâmetro de Rice baseado em dois coeficientes de transformada de referência vizinhos (indicação sombreada clara na FIG. 5C) para o coeficiente de transformada atual. O processo de atualizar o valor do coeficiente de soma temporário (por exemplo, locSumAbs) baseado nos dois coeficientes de transformada de referência vizinhos ilustrados na FIG. 5C pode ser, por exemplo, expresso na Tabela 9 abaixo.
[0201] Tabela 9 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ] } if( yC < (1 << log2TbHeight) − 1 ) { locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ] }
[0202] As FIGS. 6A a 6C são diagramas para explicar ainda outro exemplo de derivação de um parâmetro de Rice para o coeficiente de transformada atual com base nos coeficientes de transformada de referência vizinhos de acordo com algumas outras modalidades.
[0203] As FIGS. 6A a 6C são diagramas para explicar um processo de derivação de um parâmetro de Rice baseado em um coeficiente de transformada de referência vizinhos (indicação sombreada clara nas FIGS. 6A a 6C) para o coeficiente de transformada atual. A FIG. 6A é um diagrama para explicar um processo para usar um coeficiente de transformada de referência vizinho posicionado à direita do coeficiente de transformada atual, a FIG. 6B é um diagrama para explicar um processo para usar um coeficiente de transformada de referência vizinho posicionado na linha diagonal inferior-direita do coeficiente de transformada atual, e a FIG. 6C é um diagrama para explicar um processo para usar um coeficiente de transformada de referência vizinho posicionado abaixo do coeficiente de transformada atual.
[0204] O processo de atualizar o valor do coeficiente de soma temporário (por exemplo, locSumAbs) baseado no coeficiente de transformada de referência vizinho à direita ilustrado na FIG. 6A pode ser, por exemplo, expresso na Tabela 10 abaixo.
Tabela 10 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ] }
[0205] O processo de atualizar o valor do coeficiente de soma temporário (por exemplo, locSumAbs) baseado no coeficiente de transformada de referência vizinho da linha diagonal inferior direita ilustrada na FIG. 6B pode ser, por exemplo, expresso na Tabela 11 abaixo.
Tabela 11 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { if( yC < (1 << log2TbHeight) − 1 ) locSumAbs += AbsLevel[ xC + 1 ][ yC + 1 ] − sig_coeff_flag[ xC + 1 ][ yC + 1] }
[0206] O processo de atualizar o valor do coeficiente de soma temporário
(por exemplo, locSumAbs) baseado no coeficiente de transformada de referência vizinho inferior ilustrado na FIG. 6C pode ser, por exemplo, expresso na Tabela 12 abaixo.
Tabela 12 locSumAbs = 0 if( yC < (1 << log2TbHeight) − 1 ) { locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ] }
[0207] Em uma modalidade, como revelado na Seção 3 na especificação em inglês ilustrada na FIG. 3, é possível determinar um parâmetro de Rice para o coeficiente de transformada da próxima posição de varredura baseado no valor de locSumAbs. Por exemplo, o parâmetro de Rice pode ser determinado com base na Equação 5 abaixo.
[0208] Equação 5
[0209]
[0210] Alternativamente, por exemplo, o parâmetro de Rice pode ser determinado com base na Equação 6 abaixo.
[0211] Equação 6
[0212]
[0213] Em uma modalidade, o th1 e o th2 na Equação 6 podem ser menores do que 12 e 25 na Equação 5, respectivamente, mas a modalidade não se limita aos mesmos.
[0214] Em uma modalidade, se as posições dos coeficientes de transformada de referência vizinhos referenciados excederem o limite do bloco de transformada, um método para predizer um parâmetro de Rice usando os valores de coeficiente de transformada da posição referenciável, um método para manter o valor do último parâmetro de Rice sem atualização se o último parâmetro de Rice existir, um método para substituir o valor do parâmetro de Rice com um valor inicial específico se o valor inicial específico existir, entre outros, podem ser usados.
[0215] Além disso, um método para determinar a ordem de varredura não se limita a um método de varredura diagonal, e o padrão pode ser modificado quando o método de varredura de coeficientes é modificado.
[0216] A FIG. 7 é um diagrama ilustrando um processo de derivação de coeficientes quantizados de um bloco 2x2 de acordo com uma modalidade.
[0217] Em uma modalidade, a FIG. 7 ilustra um exemplo dos coeficientes quantizados em um sub-bloco 2x2 no processo de codificação de um bloco de croma. Os resultados de codificação para os coeficientes varridos diagonalmente inversamente ilustrados na FIG. 7 podem ser expressos na Tabela 13 abaixo. Na Tabela 13, a scan_pos representa a posição do coeficiente de acordo com a varredura diagonal inversa. Um coeficiente que é varrido primeiro, ou seja, o coeficiente do canto inferior-direito no bloco 2x2, pode ter o valor de scan_pos de 3, e um coeficiente que é varrido por último, isto é, o coeficiente do canto superior- esquerdo, pode ser representado no valor de scan_pos de 0.
Tabela 13 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 1 1 par_level_flag 1 1 0 1 rem_abs_gt1_flag 1 1 1 1 rem_abs_gt2_flag 0 1 1 1 abs_remainder 0 1 2 ceoff_sign_flag 0 0 1 0
[0218] Em uma modalidade, o número de elementos de sintaxe rem_abs_gt2_flags pode ser limitado no processo de codificação para o sub-bloco de 2x2 do bloco de croma. Como expressado acima na Tabela 1, os elementos de sintaxe principais em unidades de sub-bloco de 2x2 podem incluir sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, rem_abs_gt2_flag, abs_remainder, coeff_sign_flag, entre outros. Dentre eles, o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, e o rem_abs_gt2_flag podem incluir informação sobre um bin codificado pelo contexto que é codificado usando o mecanismo de codificação regular, e o abs_remainder e o coeff_sign_flag podem incluir informação sobre um bin de contorno que é codificado pelo mecanismo de codificação de contorno. O bin codificado pelo contexto pode apresentar maior dependência de dados, pois ele usa o estado e faixa de probabilidade atualizados enquanto processando o bin anterior.
Isto é, uma vez que o bin codificado pelo contexto pode realizar a codificação/decodificação do próximo bin após codificar/decodificar completamente o bin atual, um processamento paralelo pode ser difícil. Além disso, pode-se levar um longo tempo para ler a seção de probabilidade e determinar o estado atual. Por conseguinte, em uma modalidade, um método para melhorar a velocidade de processamento da CABAC por meio da redução do número de bins codificados pelo contexto e pelo aumento do número de bins de contorno pode ser proposto.
[0219] Em uma modalidade, a informação de nível de coeficiente pode ser codificada em uma ordem de varredura inversa. Isto é, a informação de nível de coeficiente pode ser codificada após ser varrida a partir dos coeficientes da extremidade inferior-direita do bloco de unidade em direção aos da extremidade superior-esquerda do mesmo. Geralmente, o nível de coeficiente que é varrido primeiro na ordem de varredura inversa tende a ter um valor pequeno. O sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, e o rem_abs_gt2_flag para esses coeficientes podem ser usados para reduzir o comprimento dos bins binarizados quando o nível de coeficiente é representado, e os respectivos elementos de sintaxe podem ser codificados de forma eficiente através de codificação aritmética de acordo com o contexto codificado anteriormente baseado em um contexto predeterminado.
[0220] Entretanto, no caso de alguns níveis de coeficiente possuindo valores grandes, isto é, os níveis de coeficiente posicionados na extremidade superior- esquerda do bloco de unidade, usar o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, e o rem_abs_gt2_flag pode não ajudar a melhorar o desempenho de compactação. Em vez disso, o uso do sig_coeff_flag, do par_level_flag, do rem_abs_gt1_flag, e do rem_abs_gt2_flag pode reduzir a eficiência de codificação.
[0221] Em uma modalidade, o número de bins codificados pelo contexto pode ser reduzido trocando rapidamente os elementos de sintaxe (sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, e rem_abs_gt2_flag) que são codificados nos bins codificados pelo contexto para o elemento de sintaxe abs_remainder, que é codificado com base no mecanismo de codificação de contorno, ou seja, codificado nos bins de contorno.
[0222] Em uma modalidade, o número de coeficientes codificados com o rem_abs_gt2_flag pode ser limitado. O número máximo dos rem_abs_gt2_flags que podem ser usados para codificação no bloco de 2x2 pode ser 4. Isto é, todos os coeficientes cujo valor absoluto é maior do que 2 podem ser codificados com o rem_abs_gt2_flag. Em um exemplo, somente os primeiros N coeficientes possuindo o valor absoluto maior do que 2 (isto é, coeficientes nos quais os rem_abs_gt1_flag é 1) podem ser codificados com o rem_abs_gt2_flag de acordo com a ordem de varredura. O N pode ser selecionado pelo codificador, e também pode ser definido como qualquer valor de 0 a 4. Assumindo que o bin codificado pelo contexto para o sub-bloco de 4x4 de luma ou croma é limitado ao codificador em um método similar à presente modalidade, o N também pode ser calculado com base no valor limite usado neste momento. Como um método para calcular o N, o valor limite (N4x4) do bin codificado pelo contexto para o sub-bloco de 4x4 de luma ou croma é usado tal como é expresso pela Equação 7, ou o número de pixels no sub-bloco de 2x2 é 4, dessa forma calculando o N através da Equação 8. Aqui, o a e b significam constantes, e não se limitam a valores específicos.
[0223] Equação 7
[0224] N = N4x4
[0225] Equação 8
[0226] N = {N4x4 >> (4 – a)} + b
[0227] Similarmente, o N também pode ser calculado usando os valores de tamanho horizontal e/ou vertical do sub-bloco. Uma vez que o sub-bloco tem um formato quadrado, o valor de tamanho horizontal e o valor de tamanho vertical são os mesmos. Uma vez que o valor de tamanho horizontal ou vertical do sub-bloco de 2x2 é 2, o N pode ser calculado através da Equação 9 abaixo.
[0228] Equação 9
[0229] N = {N4x4 >> (a - 2)} + b
[0230] A Tabela 14 abaixo mostra um exemplo de aplicação quando o N é 1.
A codificação para o rem_abs_gt2_flag pode ser reduzida o tanto indicado por X no bloco de 2x2, dessa forma reduzindo o número de bins codificados pelo contexto. Os valores abs_remainder dos coeficientes podem ser alterados com respeito às posições de varredura onde a codificação do rem_abs_gt2_flag não é realizada se comparado aos na Tabela 13.
Tabela 14 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 1 1 par_level_flag 1 1 0 1 rem_abs_gt1_flag 1 1 1 1 rem_abs_gt2_flag 0 X X X abs_remainder 1 2 3 ceoff_sign_flag 0 0 1 0
[0231] Em uma modalidade, a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags na codificação do sub-bloco de 2x2 do bloco de croma podem ser limitados. Supondo que a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags seja limitada a K, o K pode ter um valor de 0 a 12. Em um exemplo, quando a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags excede o K e o sig_coeff_flag, o par_level_flag e o rem_abs_gt1_flag não são codificados, o rem_abs_gt2_flag pode também não ser codificado.
[0232] O K pode ser selecionado pelo codificador, e também pode ser definido como qualquer valor de 0 a 12. Se o bin codificado pelo contexto para o sub-bloco de luma ou croma de 4x4 for limitado ao codificador, o K também pode ser calculado com base no valor limite usado neste momento. Como um método para calcular o K, o valor limite (N4x4) do bin codificado pelo contexto para o sub-bloco de 4x4 de luma ou croma é usado tal como é expresso pela Equação 10 abaixo, ou o número de pixels no sub-bloco de 2x2 é 4, dessa forma calculando o K através da Equação 11. Aqui, o a e b significam constantes, e não se limitam a valores específicos.
[0233] Equação 10
[0234] K = K4x4
[0235] Equação 11
[0236] K = {K4x4 >> (4 – a)} + b
[0237] Similarmente, o K também pode ser calculado usando os valores de tamanho horizontal / vertical do sub-bloco. Uma vez que o sub-bloco tem um formato quadrado, o valor de tamanho horizontal e o valor de tamanho vertical são os mesmos. Uma vez que o valor de tamanho horizontal ou vertical do sub-bloco de 2x2 é 2, o K pode ser calculado através da Equação 12.
[0238] Equação 12
[0239] K = {K4x4 >> (a - 2)} + b
[0240] A Tabela 15 abaixo mostra o caso em que K é limitado a 6 Tabela 15 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 X X par_level_flag 1 1 X X rem_abs_gt1_flag 1 1 X X rem_abs_gt2_flag 0 1 X X abs_remainder 0 7 10 ceoff_sign_flag 0 0 1 0
[0241] Em uma modalidade, cada um dentre a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags, e o número de rem_abs_gt2_flags pode ser limitado na codificação do sub-bloco de 2x2 do bloco de croma. Isto é, um método para limitar a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags e um método para limitar o número de rem_abs_gt2_flags também podem ser combinados. Supondo que a soma do número de sig_coeff_flags, o número de par_level_flags, e o número de rem_abs_gt1_flags seja limitado a K, e o número de rem_abs_gt2_flags é limitado a N, o K pode ter um valor de 0 a 12, e o N pode ter um valor de 0 a 4.
[0242] O K e o N também podem ser determinados pelo codificador, ou também podem ser calculados com base nos conteúdos descritos com respeito às Equações 7 a 12.
[0243] A Tabela 16 abaixo mostra um exemplo no qual o K é limitado a 6 e o N é limitado a 1.
Tabela 16 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 X X par_level_flag 1 1 X X rem_abs_gt1_flag 1 1 X X rem_abs_gt2_flag 0 X X X abs_remainder 1 7 10 ceoff_sign_flag 0 0 1 0
[0244] Em uma modalidade, um método para alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flag pode ser usado. Por exemplo, um método para codificar na ordem do rem_abs_gt1_flag e do par_level_flag pode ser proposto sem codificação na ordem do par_level_flag e do rem_abs_gt1_flag. Em um exemplo, a alteração supracitada da ordem de codificação pode ser aplicada quando o sub-bloco de tamanho 2x2 do bloco de croma é codificado. Se a ordem do par_level_flag e do rem_abs_gt1_flag for alterada, o rem_abs_gt1_flag é codificado após o sig_coeff_flag, e o par_level_flag pode ser codificado somente quando o rem_abs_gt1_flag é 1. Por conseguinte, a relação entre o valor de coeficiente de transformada real (coeff) e os respectivos elementos de sintaxe pode ser alterada como expresso pela Equação 13 abaixo.
[0245] Equação 13
[0246] |coeff| = sig_coeff_flag + rem_abs_gt1_flag + par_level_flag + 2 * (rem_abs_gt2_flag + abs_remainder)
[0247] Quando a Tabela 17 abaixo é comparada com a Tabela 2, o par_level_flag não é codificado se o |coeff| for 1, de modo que a modalidade de acordo com a Tabela 16 possa ter vantagens em termos de velocidade de processamento e codificação. Evidentemente, o rem_abs_gt2_flag precisa ser codificado se o |coeff| for 2 ao contrário da Tabela 2, e o abs_remainder precisa ser codificado se o |coeff| for 4 ao contrário da Tabela 2, mas geralmente, o caso em que o |coeff| é 1 ocorre mais frequentemente do que o caso em que o |coeff| é 2 ou 4, de modo que o método de acordo com a Tabela 17 possa exibir maior velocidade de processamento e desempenho de codificação do que o método de acordo com a Tabela 2. Em um exemplo, o resultado da codificação do sub-bloco de 4x4 como ilustrado na FIG. 7 pode ser expresso na Tabela 18 abaixo.
Tabela 17 |coeff| sig_coeff_flag rem_abs_gt1_flag par_level_flag rem_abs_gt2_flag abs_remainder 0 0 1 1 0 2 1 1 0 0 3 1 1 1 0 4 1 1 0 1 0
... ... ... ... ... ...
Tabela 18 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 1 1 rem_abs_gt1_flag 1 1 1 1 par_level_flag 0 0 1 0 rem_abs_gt2_flag 1 1 1 1 abs_remainder 0 1 1 3 ceoff_sign_flag 0 0 1 0
[0248] Em uma modalidade, um método para alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flag, e limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags pode ser proporcionado. Ou seja, quando a codificação é realizada na ordem do sig_coeff_flag, do rem_abs_gt1_flag, do par_level_flag, do rem_abs_gt2_flag, do abs_remainder, e do coeff_sign_flag, um método para limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags pode ser proporcionado. Supondo que a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags é limitado a K, o K pode ter um valor de 0 a 12. O K também pode ser selecionado pelo codificador, e também pode ser definido como qualquer valor de 0 a 12. Além disso, o K pode ser calculado com base no método supramencionado com respeito às Equações 10 a
12.
[0249] Em uma modalidade, quando o sig_coeff_flag, o rem_abs_gt1_flag, e o par_level_flag não são mais codificados, o rem_abs_gt2_flag pode também não ser codificado. A Tabela 19 abaixo mostra um exemplo no qual o K é 6.
Tabela 19 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 X X rem_abs_gt1_flag 1 1 X X par_level_flag 0 0 X X rem_abs_gt2_flag 1 1 X X abs_remainder 0 1 7 10 ceoff_sign_flag 0 0 1 0
[0250] Em uma modalidade, os elementos de sintaxe sig_coeff_flag, rem_abs_gt1_flag e par_level_flag podem ser codificados dentro de um para laço (loop) na sintaxe. Embora a soma do número dos três elementos de sintaxe (sig_coeff_flag, rem_abs_gt1_flag, e par_level_flag) não exceda K, e a soma não corresponda exatamente a K, a codificação pode ser interrompida na mesma posição de varredura. A Tabela 19 abaixo mostra um exemplo no qual o K é 8.
Quando a codificação é realizada até uma posição de varredura 2, a soma do número de sig_coeff_flags, o número de rem_abs_gt1_flahs, e o número de par_level_flags é 6. A soma é um valor que não excede o K, mas neste momento, uma vez que o aparelho de codificação (ou codificador) não conhece o valor do nível de coeficiente da próxima posição de varredura 1 (scan_pos = 1), o aparelho de codificação (ou codificador) pode não reconhecer que o número de bins codificados pelo contexto gerado na scan_pos = 1 tem qualquer valor de 1 a 3. Neste momento, o aparelho de codificação pode codificar somente até a scan_pos = 2 e terminar a codificação. Por conseguinte, embora o valor de K seja diferente, os resultados de codificação podem ser os mesmos na Tabela 19 e na Tabela 20 abaixo.
Tabela 20 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 X X rem_abs_gt1_flag 1 1 X X par_level_flag 0 0 X X rem_abs_gt2_flag 1 1 X X abs_remainder 0 1 7 10 ceoff_sign_flag 0 0 1 0
[0251] Em uma modalidade, um método para alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flag e limitar o número de rem_abs_gt2_flags pode ser proporcionado. Ou seja, quando a codificação é realizada na ordem do sig_coeff_flag, do rem_abs_gt1_flag, do par_level_flag, do rem_abs_gt2_flag, do abs_remainder, e do coeff_sign_flag, um método para limitar a soma do número de coeficientes codificados com o rem_abs_gt2_flag pode ser proporcionado. Em um exemplo, o número de erm_abs_gt2_flags codificados dentro do bloco de 2x2 pode ser 4. Isto é, todos os coeficientes cujo valor absoluto é maior do que 2 podem ser codificados com o rem_abs_gt2_flag. Em outro exemplo, somente os primeiros N coeficientes possuindo um valor absoluto maior do que 2 (isto é, coeficientes nos quais os rem_abs_gt1_flag é 1) podem ser codificados com o rem_abs_gt2_flag de acordo com a ordem de varredura. O N também pode ser selecionado pelo codificador, e também pode ser definido como qualquer valor de 0 a 4. Além disso, o N também pode ser calculado com base no método supramencionado com respeito às Equações 7 a 9.
[0252] A Tabela 21 mostra um exemplo quando o N é 1. A codificação para o rem_abs_gt2_flag pode ser reduzida o tanto indicado por X no bloco de 4x4, dessa forma reduzindo o número de bins codificados pelo contexto. Os valores abs_remainder dos coeficientes podem ser alterados com respeito às posições de varredura onde o rem_abs_gt2_flag não é codificado como expresso na Tabela 21 abaixo se comparado com as da Tabela 18.
Tabela 21 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 1 1 rem_abs_gt1_flag 1 1 1 1 par_level_flag 0 0 1 0 rem_abs_gt2_flag 1 X X X abs_remainder 0 2 2 4 ceoff_sign_flag 0 0 1 0
[0253] Em uma modalidade, um método para alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flag, e limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags, e do número de rem_abs_gt2_flags pode ser proporcionado. Ou seja, quando a codificação é realizada na ordem do sig_coeff_flag, do rem_abs_gt1_flag, do par_level_flag, do rem_abs_gt2_flag, do abs_remainder, e do coeff_sign_flag, o método para limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags pode ser proporcionado e o método para limitar o número de rem_abs_gt2_flags podem ser combinados.
Supondo que a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags seja limitado a K, e o número de rem_abs_gt2_flags seja limitado a N, o K pode ter um valor de 0 a 12, e o N pode ter um valor de 0 a 4. O K e o N também podem ser selecionados pelo codificador, e o K também pode ser definido como qualquer valor de 0 a 12 e o N também pode ser definido como qualquer valor de 0 a 4. Como alternativa, o K e o N também podem ser calculados com base nos conteúdos descritos com respeito às Equações 7 a 12.
[0254] A Tabela 22 mostra um exemplo no qual o K é 6 e o N é 1.
Tabela 22 scan_pos 3 2 1 0 coeficientes 4 6 -7 10 sig_coeff_flag 1 1 X X rem_abs_gt1_flag 1 1 X X par_level_flag 0 0 X X rem_abs_gt2_flag 1 X X X abs_remainder 0 2 7 10 ceoff_sign_flag 0 0 1 0
[0255] De acordo com uma modalidade, no caso de limitar a soma do número de sig_coeff_flags, do número de par_level_flags, e do número de rem_abs_gt1_flags na codificação do sub-bloco de 2x2 ou 4x4 do bloco de croma, um método para simplificar a determinação do parâmetro de Rice usado para definir códigos de Golomb para o abs_remainder pode ser proporcionado. Em uma modalidade, referindo-se novamente à FIG. 4, o parâmetro de Rice para o coeficiente de transformada da posição de varredura atual pode ser determinado com base na soma de nível dos cinco coeficientes de transformadas vizinhos já codificados (indicação sombreada clara na FIG. 4) do coeficiente de transformada atual (indicação sombreada escura na FIG. 4) e na informação sobre o sig_coeff_flag. A Tabela 22 abaixo mostra o pseudocódigo relacionado à FIG. 4.
Referindo-se à Tabela 23 abaixo, pode ser confirmado que é necessários verificar toda vez se as posições dos coeficientes de transformada referenciadas no pseudocódigo excedem o limite de bloco de transformada. Isto é, é necessário realizar cinco processos de verificação de limite toda vez que um nível de coeficiente de transformada é codificado. Mesmo na codificação do elemento de sintaxe abs_remainder, uma vez que as 5 vezes dos processos de verificação de limite são necessárias para o coeficiente de transformada do alvo que requer a codificação, a complexidade computacional pode aumentar se um grande número de coeficientes de transformada possuindo valores de nível grandes for gerado.
[0256] Tabela 23 locSumAbs = 0 if( xC < (1 << log2TbWidth) − 1 ) { locSumAbs += AbsLevel[ xC + 1 ][ yC ] − sig_coeff_flag[ xC + 1 ][ yC ] if( xC < (1 << log2TbWidth) − 2 ) locSumAbs += AbsLevel[ xC + 2 ][ yC ] − sig_coeff_flag[ xC + 2 ][ yC ] if( yC < (1 << log2TbHeight) − 1 ) locSumAbs += AbsLevel[ xC + 1 ][ yC + 1 ] − sig_coeff_flag[ xC + 1 ][ yC + 1] } if( yC < (1 << log2TbHeight) − 1 ) { locSumAbs += AbsLevel[ xC ][ yC + 1 ] − sig_coeff_flag[ xC ][ yC + 1 ] if( yC < (1 << log2TbHeight) − 2 )
locSumAbsPass1 += AbsLevelPass1 [ xC ][ yC + 2 ] − sig_coeff_flag[ xC ][ yC + 2 ] }
[0257] De acordo com uma modalidade, em um método para derivar cRiceParam representando um parâmetro de Rice, um valor do cRiceParam pode ser 0 se locSumAbs for menor do que 12, o valor do cRiceParam pode ser 1 se o locSumAbs for menor do que 25, e o valor do cRiceParam pode ser 2 se o valor do locSumAbs for 25 ou mais.
[0258] Em uma modalidade, se a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags for limitada, o abs_remainder pode ser determinado de maneira diferente, respectivamente, de acordo com os seguintes três casos. No método para limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags, vários processos de codificação podem ser aplicados aos sub-blocos de acordo com o (i), (ii) e (iii) seguintes. O (i) pode representar um caso em que todos dentre o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, e o rem_abs_gt2_flag existem, o (ii) representa um caso em que somente o sig_coeff_flag, o par_level_flag, e o rem_abs_gt1_flag existem, e o (iii) representam um caso em que nenhum dentre o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, e o rem_abs_gt2_flag existe.
[0259] No caso de (i), a relação entre o valor de coeficiente de transformada real (coeff) e o abs_remainder é expressa pela Equação 4, no caso de (ii), a relação entre os mesmos é como expressa pela Equação 14, e no caso de (iii), a relação entre os mesmos é como expressa pela Equação 15.
[0260] Equação 14
[0261] |coeff| = sig_coeff_flag + par_level_flag + 2 * (rem_abs_gt1_flag + abs_remainder)
[0262] Equação 15
[0263] |coeff| = abs_remainder
[0264] Uma vez que a complexidade computacional aumenta em proporção ao tamanho do coeficiente de transformada de referência usado no processo de derivação do parâmetro de Rice, uma modalidade pode derivar o parâmetro de Rice baseado no valor de nível logo antes abaixo da ordem de varredura do sub-bloco de 4x4 ou 2x2 somente para a codificação do bloco de croma. Neste momento, o parâmetro de Rice pode ser inicializado para zero somente na etapa inicial do sub- bloco, e cada etapa do (i), (ii) e (iii) que codifica o abs_remainder dentro do sub- bloco pode não inicializar o parâmetro de Rice. Na codificação do sub-bloco, o parâmetro de Rice aumenta em 1 quando o valor de nível logo antes é maior do que th1, th2 ou th3. Na presente revelação, o th1 e o th2 não estão limitados a valores específicos, mas, em uma modalidade, o th1 pode ser determinado como 1, 2 ou 3, th2 pode ser determinado como 4, 5 ou 6, e th3 pode ser determinado como 10, 11 ou 12.
[0265] De acordo com uma modalidade, no caso de alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flags na codificação do sub-bloco de 2x2 ou 4x4 do bloco de croma, e limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags e do número de par_level_flags, um método para simplificar a determinação do parâmetro de Rice usado para definir códigos de Golomb para o abs_remainder pode ser proporcionado.
[0266] No caso de alterar a ordem de codificação do par_level_flag e do rem_abs_gt1_flag, o abs_remainder pode ser determinado de maneira diferente, respectivamente, de acordo com os seguintes três casos se a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags e do número de par_level_flags for limitada. De acordo com o método para limitar a soma do número de sig_coeff_flags, do número de rem_abs_gt1_flags, e do número de par_level_flags, o (i), (ii) e (iii) seguintes podem ser verificados com relação a um sub-bloco. O (i) é um caso em que todos dentre o sig_coeff_flag, o rem_abs_gt1_flag, o par_level_flag, e o rem_abs_gt2_flag existem, o (ii) é um caso em que somente o sig_coeff_flag, o rem_abs_gt1_flag e o par_level_flag, e o (iii) é um caso em que todos dentre o sig_coeff_flag, o rem_abs_gt1_flag, o par_level_flag e o rem_abs_gt2_flag não existem.
[0267] No caso de (i), a relação entre o valor de coeficiente de transformada real (coeff) e o abs_remainder é expressa pela Equação 13, no caso de (ii), a relação entre os mesmos é expressa pela Equação 16, e no caso de (iii), a relação entre os mesmos é como expressa pela Equação 15.
[0268] Equação 16
[0269] |coeff| = sig_coeff_flag + rem_abs_gt1_flag + par_level_flag + (2 * abs_remainder)
[0270] Uma vez que a complexidade computacional aumenta em proporção ao tamanho do coeficiente de transformada de referência usado no processo de derivação do parâmetro de Rice, uma modalidade pode proporcionar um método para conduzir o parâmetro de Rice usando o valor de nível logo antes sob a ordem de varredura do sub-bloco de 4x4 ou 2x2 somente para a codificação do bloco de croma. O parâmetro de Rice pode ser inicializado para zero somente na etapa inicial do sub-bloco, e em cada estágio do (i), (ii) e (iii) que codifica o abs_remainder dentro do sub-bloco, o parâmetro de Rice pode não ser inicializado. Na codificação do sub- bloco, o parâmetro de Rice pode aumentar em 1 quando o valor de nível logo antes é maior do que th1, th2 ou th3. Na presente revelação, o th1 e o th2 não estão limitados a valores específicos, mas, em uma modalidade, o th1 pode ser determinado como 1, 2 ou 3, o th2 pode ser determinado como 4, 5 ou 6, e o th3 pode ser determinado como 10, 11 ou 12.
[0271] As FIGS. 8A e 8B são diagramas ilustrando uma configuração e um método de operação de um codificador por entropia de acordo com uma modalidade.
[0272] De acordo com uma modalidade, do código de Rice 0 até um 2o código de Rice máximo podem ser usados, e a ordem do código de Rice pode ser expressa como um parâmetro de Rice. Se a ordem do código de Rice, ou seja, o valor do parâmetro de Rice máximo for aumentado, pode haver uma vantagem pelo fato de que menos bits podem ser atribuídos se um valor de entrada grande for inserido. A tabela 24 abaixo mostra o comprimento de palavra-código do 0o código de Rice ao 3o código de Rice como um exemplo, e pode-se confirmar que a binarização com o 3o código de Rice é mais curta no comprimento de palavra-código resultante do que a binarização com o 2o código de Rice se o valor de entrada for maior do que 11. Por conseguinte, em uma modalidade, um método para aumentar a ordem do código de Rice máximo suportado, ou seja, o valor do parâmetro de Rice máximo na codificação de nível de coeficiente de transformada, pode ser proporcionado.
Tabela 24 valor cRiceParam = 0 cRiceParam = 1 cRiceParam = 2 cRiceParam = 3 0 1 2 3 4 1 2 2 3 4 2 3 3 3 4 3 4 3 3 4 4 5 4 4 4 5 6 4 4 4 6 7 5 4 4
[0273] À medida que o parâmetro de Rice máximo aumenta, a Equação 6, que classifica o parâmetro de Rice com base no locSumAbs, pode ser modificada como expresso pela Equação 17 abaixo. A Equação 17 mostra um exemplo do caso em que se utiliza até o 3o código de Rice.
[0274] Equação 17
[0275]
[0276] Referindo-se às FIGS. 8A e 8B, o aparelho de codificação (codificador por entropia 240) pode realizar um procedimento de codificação residual para coeficientes de transformada (quantizados). Como descrito acima, o aparelho de codificação pode codificar residualmente os coeficientes de transformada (quantizados) dentro do bloco atual (CB atual ou TB atual) de acordo com a ordem de varredura. O aparelho de codificação pode gerar e codificar vários elementos de sintaxe relacionados à informação residual, por exemplo, como expresso na Tabela
1.
[0277] Especificamente, o aparelho de codificação pode derivar um valor do abs_remainder ao mesmo tempo em que codifica o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag e o rem_abs_gt2_flag, e derivar um parâmetro de Rice para o abs_remainder (S800). Os parâmetros de Rice podem ser derivados com base no coeficiente de transformada de referência vizinho como descrito acima. Mais especificamente, o parâmetro de Rice para (o coeficiente de transformada da) a posição de varredura atual pode ser derivado com base no locSumAbs supramencionado, e o loc SumAbs pode ser derivado com base no AbsLevel e/ou no sig_coeff_flag dos coeficientes de transformada de referência vizinhos. As posições e o número dos coeficientes de transformada de referência vizinhos podem incluir os conteúdos descritos nas FIGS. 4 a 6C. O procedimento de derivar o parâmetro de Rice pode ser realizado por um derivador de parâmetros de Rice 242 dentro do codificador por entropia 240.
[0278] O aparelho de codificação pode efetuar binarização no valor do abs_remainder baseado no parâmetro de Rice derivado (S810). No procedimento de binarização, a descrição supramencionada pode ser aplicada na Seção 5 (processo de binarização para abs_remainder) da especificação em inglês incluída na descrição da FIG. 3. O aparelho de codificação pode derivar uma sequência de caracteres binária para o abs_remainder através do procedimento de binarização. O procedimento de binarização pode ser realizado por um binarizador 244 dentro do codificador por entropia 240. De acordo com a presente revelação, como descrito acima, o comprimento da sequência de caracteres binária para o valor do abs_remainder pode ser determinado de forma adaptativa com base no parâmetro de Rice. Por exemplo, como expresso na Tabela 23, o comprimento do valor a ser codificado pode ser determinado de forma adaptativa com base no parâmetro de Rice. De acordo com a presente revelação, o parâmetro de Rice para o valor do abs_remainder do coeficiente de transformada atual pode ser derivado com base nos coeficientes de transformada de referência vizinhos, e, por conseguinte, uma sequência de caracteres binária relativamente mais curta pode ser atribuída de forma adaptativa do que quando o parâmetro de Rice fixo é usado com respeito ao valor do abs_remainder do coeficiente de transformada atual.
[0279] É aparente aos versados na técnica que o procedimento de derivar o parâmetro de Rice pode ser omitido para o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, o rem_abs_gt2_flag, e similares, os quais são binarizados com base no FL sem usar o parâmetro de Rice. O sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, o rem_abs_gt2_flag, entre outros, podem não ser binarizados com base no parâmetro de Rice, mas sim binarizados de acordo com a Seção 4 (processo de binarização de comprimento Fixo) da especificação em inglês incluída na descrição da FIG. 3.
[0280] O aparelho de codificação pode realizar codificação por entropia baseado na sequência de caracteres binária para o abs_remainder (S820). O aparelho de codificação pode codificar por entropia a sequência de caracteres binária baseado no contexto 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 (CALVC), e a saída do mesmo pode ser incluída em um fluxo de bits. O procedimento de codificação por entropia pode ser realizado por um processador de codificação por entropia 244 dentro do codificador por entropia 240. Como descrito acima, o fluxo de bits pode incluir várias informações para decodificação de imagem/vídeo, tais como informações de predição além das informações residuais incluindo a informação sobre o abs_remainder. O fluxo de bits pode ser distribuído ao aparelho de decodificação através de um meio de armazenamento (digital) ou uma rede.
[0281] As FIGS. 9A e 9B são diagramas ilustrando uma configuração e um método de operação de um decodificador por entropia de acordo com uma modalidade.
[0282] Referindo-se às FIGS. 9A e 9B, o aparelho de decodificação (decodificador por entropia) pode decodificar as informações residuais codificada para derivar coeficientes de transformada (quantizados). Como descrito acima, o aparelho de decodificação pode decodificar as informações residuais codificada para o bloco atual (CB atual ou TB atual) para derivar os coeficientes de transformada (quantizados). Por exemplo, o aparelho de decodificação pode decodificar vários elementos de sintaxe relacionados à informação residual como expresso na tabela
1, e derivar os coeficientes de transformada (quantizados) com base nos valores dos elementos de sintaxe relacionados.
[0283] Especificamente, o aparelho de decodificação pode derivar um parâmetro de Rice para o abs_remainder (S900). Como descrito acima, o parâmetro de Rice pode ser derivado com base no coeficiente de transformada de referência vizinho. Especificamente, o parâmetro de Rice para (o coeficiente de transformada da) a posição de varredura atual pode ser derivado com base no locSumAbs supramencionado, e o loc SumAbs pode ser derivado com base no AbsLevel e/ou no sig_coeff_flag dos coeficientes de transformada de referência vizinhos. As posições e o número dos coeficientes de transformada de referência vizinhos podem incluir as descrições supracitadas nas FIGS. 4 a 6C. O procedimento de derivar o parâmetro de Rice pode ser realizado pelo derivador de parâmetros de Rice 312 no decodificador por entropia 310.
[0284] O aparelho de decodificação pode realizar binarização para o abs_remainder baseado no parâmetro de Rice derivado (S910). No procedimento de binarização, a descrição supramencionada pode ser aplicada na Seção 5 (processo de binarização para abs_remainder) da especificação em inglês incluída na descrição da FIG. 3. O aparelho de decodificação pode derivar sequências de caracteres binárias disponíveis para valores disponíveis do abs_remainder através do procedimento de binarização. O procedimento de binarização pode ser realizado pelo binarizador 244 no decodificador por entropia 310. De acordo com a presente revelação, como descrito acima, o comprimento da sequência de caracteres binária para o valor do abs_remainder pode ser determinado de forma adaptativa com base no parâmetro de Rice. Por exemplo, como expresso na Tabela 23, o comprimento do valor a ser codificado pode ser determinado de forma adaptativa com base no parâmetro de Rice. De acordo com a presente revelação, o parâmetro de Rice para o valor do abs_remainder do coeficiente de transformada atual pode ser derivado com base nos coeficientes de transformada de referência vizinhos, e, por conseguinte, uma sequência de caracteres binária relativamente mais curta pode ser atribuída de forma adaptativa do que quando o parâmetro de Rice fixo é usado com respeito ao valor do abs_remainder do coeficiente de transformada atual.
[0285] O aparelho de decodificação pode realizar decodificação por entropia para o abs_remainder (S920). O aparelho de decodificação pode analisar e decodificar cada bin para o abs_remainder sequencialmente, e comparar a sequência de caracteres binária derivada com as sequências de caracteres binárias disponíveis. Se a sequência de caracteres binária derivada for igual a uma das sequências de caracteres disponíveis, um valor correspondendo à sequência de caracteres correspondente pode ser derivado como o valor do abs_remainder. Caso contrário, o procedimento de comparação pode ser realizado após análise e decodificação adicional do próximo bit dentro do fluxo de bits. Através de tal processo, a informação correspondente pode ser sinalizada usando um bit de comprimento variável mesmo sem usar um bit inicial ou um bit final para informação específica (elemento de sintaxe específico) dentro do fluxo de bits. Por conseguinte, o aparelho de decodificação pode atribuir relativamente menos bits a um valor baixo, e aprimorar a eficiência de codificação geral.
[0286] O aparelho de decodificação pode realizar decodificação por entropia baseada em contexto para os respectivos bins dentro da sequência de caracteres binárias a partir do fluxo de bits baseado em uma técnica de codificação por entropia, tal como CABAC ou CAVLC. O procedimento de decodificação por entropia pode ser realizado por um processador de decodificação por entropia 316 dentro do decodificador por entropia 310. Como descrito acima, o fluxo de bits pode incluir várias informações para decodificação de imagem/vídeo, tais como informações de predição além das informações residuais incluindo a informação sobre o abs_remainder.
[0287] É aparente aos versados na técnica que o procedimento de derivar o parâmetro de Rice pode ser omitido para o sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, o rem_abs_gt2_flag, e similares, os quais são binarizados com base no FL sem usar o parâmetro de Rice. O sig_coeff_flag, o par_level_flag, o rem_abs_gt1_flag, o rem_abs_gt2_flag, entre outros, podem não ser binarizados com base nos parâmetros de Rice, mas sim binarizados de acordo com a Seção 4 (processo de binarização de comprimento Fixo) da especificação em inglês incluída na descrição da FIG. 3.
[0288] Como descrito acima, o fluxo de bits pode incluir várias informações para decodificação de imagem/vídeo, tais como informações de predição além das informações residuais incluindo a informação sobre o abs_remainder. Como descrito acima, o fluxo de bits pode ser distribuído ao aparelho de decodificação através de um meio de armazenamento (digital) ou uma rede.
[0289] O aparelho de decodificação pode derivar amostras residuais para o bloco atual realizando procedimentos de desquantização e/ou transformação inversa com base nos coeficientes de transformada (quantizados). Como descrito acima, amostras de reconstrução podem ser geradas com base nas amostras residuais e as amostras de predição derivadas através de interpredição / intra, e uma imagem reconstruída incluindo as amostras de reconstrução, podem ser geradas.
[0290] A FIG. 10 é um fluxograma ilustrando um método de codificação por entropia de um aparelho de codificação de acordo com uma modalidade.
[0291] S810 e S820 descritas acima com referência à FIG. 8A podem ser incluídos em S1040 ilustrada na FIG. 10.
[0292] S1000 pode ser realizada pelo interpreditor 221 ou pelo intrapreditor
222 do aparelho de codificação, e S1010, S1020, S1030 e S1040 podem ser realizadas pelo subtrator 231, pelo transformador 232, pelo quantizador 233 e pelo codificador por entropia 240 do aparelho de codificação, respectivamente.
[0293] O aparelho de codificação de acordo com uma modalidade pode derivar amostras de predição através de predição para um bloco atual (S1000). O aparelho de codificação pode determinar se deverá realizar interpredição ou intrapredição no bloco atual, e determinar um modo de interpredição específico ou um modo de intrapredição específico com base em um custo de RD. De acordo com o modo determinado, o aparelho de codificação pode derivar as amostras de predição para o bloco atual.
[0294] O aparelho de codificação de acordo com uma modalidade pode derivar amostras residuais comparando as amostras originais com as amostras de predição para o bloco atual (S1010).
[0295] O aparelho de codificação de acordo com uma modalidade pode derivar coeficientes de transformada através de um procedimento de transformada para as amostras residuais (s1020) e derivar coeficientes de transformada quantizados por meio da quantização dos coeficientes de transformada derivados (S1030).
[0296] O aparelho de codificação de acordo com uma modalidade pode codificar informação de imagem incluindo informação de predição e informação residual, e emitir a informação de imagem codificada na forma de um fluxo de bits (S1040). A informação de predição é informação relacionada ao procedimento de predição, e pode incluir informação de modo de predição, informação sobre informação de movimento (por exemplo, um caso em que a interpredição é aplicada), e similares. As informações residuais é informação sobre os coeficientes de transformada quantizados, e pode incluir, por exemplo, informação revelada na
Tabela 1 acima.
[0297] O fluxo de bits de saída pode ser distribuído ao aparelho de decodificação através de um meio de armazenamento ou uma rede.
[0298] A FIG. 11 é um fluxograma ilustrando um método de decodificação por entropia de um aparelho de decodificação de acordo com uma modalidade.
[0299] S910 a S920 descritas acima na FIG. 9 podem ser incluídas em S1110 ilustrada na FIG. 11.
[0300] S1100 pode ser realizada pelo interpreditor 260 ou pelo intrapreditor 265 do aparelho de decodificação. Em S1100, um procedimento de decodificação da informação de predição incluída no fluxo de bits e derivação dos valores dos elementos de sintaxe relacionados pode ser realizado pelo decodificador por entropia 310 do aparelho de decodificação. S1110, S1120, S1130 e S1140 podem ser executadas pelo decodificador por entropia 210, pelo desquantizador 220, pelo transformador inverso 230, e pelo adicionador 235 do aparelho de decodificação, respectivamente.
[0301] O aparelho de decodificação de acordo com uma modalidade pode executar uma operação correspondendo a uma operação que é realizada no aparelho de codificação. O aparelho de decodificação pode realizar interpredição ou intrapredição no bloco atual baseado na informação de predição recebida e derivar amostras de predição (S1100).
[0302] O aparelho de decodificação de acordo com uma modalidade pode derivar coeficientes de transformada quantizados para o bloco atual com base nas informações residuais recebida (S1110).
[0303] O aparelho de decodificação de acordo com uma modalidade pode desquantizar os coeficientes de transformada quantizados para derivar coeficientes de transformada (S1120).
[0304] O aparelho de decodificação de acordo com uma modalidade pode derivar amostras residuais através de um procedimento de transformada inversa nos coeficientes de transformada (S1130).
[0305] O aparelho de decodificação de acordo com uma modalidade pode gerar amostras de reconstrução para o bloco atual com base nas amostras de predição e nas amostras residuais e gerar uma imagem reconstruída com base nas amostras de reconstrução (S1340). Como descrito acima, em seguida, um procedimento de filtragem em laço pode ser adicionalmente aplicado à imagem reconstruída.
[0306] A FIG. 12 é um fluxograma ilustrando uma operação do aparelho de codificação de acordo com uma modalidade, e a FIG. 13 é um diagrama de blocos ilustrando uma configuração do aparelho de codificação de acordo com uma modalidade.
[0307] O aparelho de codificação de acordo com as FIGS. 12 e 13 pode executar operações correspondendo ao aparelho de decodificação de acordo com as FIGS. 14 e 15. Por conseguinte, as operações do aparelho de decodificação a ser descrito posteriormente nas FIGS. 14 e 15 também podem ser aplicadas ao aparelho de codificação de acordo com as FIGS. 12 e 13.
[0308] Cada etapa ilustrada na FIG. 12 pode ser realizado pelo aparelho de codificação 200 ilustrado na FIG. 2. Mais especificamente, S1200 pode ser realizada pelo subtrator 231 ilustrado na FIG. 2, S1210 pode ser realizada pelo transformador 232 ilustrado na FIG. 2, S1220 pode ser realizada pelo quantizador 233 ilustrado na FIG. 2, e S1230 pode ser realizado pelo codificador por entropia 240 ilustrado na FIG. 2. Além disso, as operações de acordo com S1200 a S1230 se baseiam em algumas das descrições supracitadas com referência às FIGS. 4 a 11. Por conseguinte, descrições detalhadas que se sobreponham às descrições supracitadas com referência às FIGS. 2 e 4 a 11 serão omitidas ou simplificadas.
[0309] Como ilustrado na Fig. 13, o aparelho de codificação de acordo com uma modalidade pode incluir o subtrator 231, o transformador 232, o quantizador 233 e o codificador por entropia 240. Entretanto, em alguns casos, todos os componentes ilustrados na FIG. 13 podem não ser componentes essenciais do aparelho de codificação, e o aparelho de codificação pode ser implementado por mais ou menos componentes do que os componentes ilustrados na FIG. 13.
[0310] No aparelho de codificação de acordo com uma modalidade, o subtrator 231, o transformador 232, o quantizador 233 e o codificador por entropia 240 também pode ser implementado como chips separados, respectivamente, ou pelo menos dois componentes também podem ser implementados através de um único chip.
[0311] O aparelho de codificação de acordo com uma modalidade pode derivar uma amostra residual para o bloco atual (S1200). Mais especificamente, o subtrator 231 do aparelho de codificação pode derivar a amostra residual para o bloco atual.
[0312] O aparelho de codificação de acordo com uma modalidade pode derivar o coeficiente de transformada por meio da transformação da amostra residual para o bloco atual (S1210). Mais especificamente, o transformador 232 do aparelho de codificação pode derivar o coeficiente de transformada por meio da transformação da amostra residual para o bloco atual.
[0313] O aparelho de codificação de acordo com uma modalidade pode derivar um coeficiente de transformada quantizado a partir do coeficiente de transformada baseado em um processo de quantização (S1220). Mais especificamente, o quantizador 233 do aparelho de codificação pode derivar o coeficiente de transformada quantizado a partir do coeficiente de transformada com base no processo de quantização.
[0314] O aparelho de codificação de acordo com uma modalidade pode codificar informação residual incluindo informação sobre o coeficiente de transformada quantizado (S1230). Mais especificamente, o codificador por entropia 240 do aparelho de codificação pode codificar as informações residuais incluindo a informação sobre o coeficiente de transformada quantizado.
[0315] Em uma modalidade, as informações residuais inclui informação de nível de coeficiente de transformada, e a codificação das informações residuais pode incluir derivar um valor de binarização da informação de nível de coeficiente de transformada por meio da execução de um processo de binarização para a informação de nível de coeficiente de transformada com base em um parâmetro de Rice e da codificação do valor de binarização da informação de nível de coeficiente de transformada. Em um exemplo, o parâmetro de Rice pode ser representado como cRiceParam.
[0316] Em uma modalidade, o valor máximo do parâmetro de Rice pode ser
3. Em uma modalidade, o valor máximo do parâmetro de Rice pode ser 3.
[0317] Em uma modalidade, um processo de inicialização pode ser executado para derivar pelo menos um parâmetro de Rice para o sub-bloco atual incluído no bloco atual.
[0318] Em uma modalidade, o parâmetro de Rice para o coeficiente de transformada atual dentro do sub-bloco atual é derivado com base no último parâmetro de Rice para o coeficiente de transformada na ordem anterior do coeficiente de transformada atual, e se o coeficiente de transformada atual for o primeiro coeficiente de transformada do sub-bloco atual, o valor do último parâmetro de Rice para o coeficiente de transformada da ordem anterior pode ser zero. Em um exemplo, o último parâmetro de Rice pode ser representado como lastRiceParam.
Em um exemplo, o tamanho do sub-bloco atual pode ser de 2x2 ou 4x4.
[0319] Em uma modalidade, o parâmetro de Rice para o coeficiente de transformada atual pode ser derivado com base nos coeficientes de transformada de referência vizinhos do coeficiente de transformada atual, e o número de coeficientes de transformada de referência vizinhos pode ser de 4 ou menos.
[0320] Em uma modalidade, um coeficiente de soma temporário pode ser derivado com base nos coeficientes de transformada de referência vizinhos, um valor do parâmetro de Rice pode ser determinado como zero quando um valor do coeficiente de soma temporário é menor do que um primeiro limite, o valor do parâmetro de Rice pode ser determinado como 1 se o valor do coeficiente de soma temporário for o primeiro limite ou mais e menor do que um segundo limite, o valor do parâmetro de Rice pode ser determinado como 2 se o valor do coeficiente de soma temporário for o segundo limite ou mais e menor do que um terceiro limite, e o valor do parâmetro de Rice pode ser determinado como 3 se o valor do coeficiente de soma temporário for o terceiro limite ou mais. Em um exemplo, o coeficiente de soma temporário pode ser representado como locSumAbs.
[0321] Em uma modalidade, o primeiro limite pode ser 1, 2 ou 3, o segundo limite pode ser 4, 5 ou 6, e o terceiro limite pode ser 10, 11 ou 12. No exemplo, o primeiro limite pode ser representado como th1, o segundo limite pode ser representado como th2, e o terceiro limite pode ser representado como th3.
[0322] De acordo com o aparelho de codificação e um método de operação do aparelho de codificação ilustrado nas FIGS. 12 e 13, ele se caracteriza pelo fato de que o aparelho de codificação deriva uma amostra residual para um bloco atual (S1200), deriva um coeficiente de transformada por meio da transformação da amostra residual para o bloco atual (S1210), derivar um coeficiente de transformada quantizado a partir do coeficiente de transformada baseado em um processo de quantização (S1220), e codificas informações residuais incluindo informação sobre o coeficiente de transformada quantizado (S1230), e as informações residuais inclui informação de nível de coeficiente de transformada, a codificação das informações residuais inclui derivar um valor de binarização da informação de nível de coeficiente de transformada por meio da execução de um processo de binarização para a informação de nível de coeficiente de transformada baseado em um parâmetro de Rice e pela codificação do valor de binarização da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3. Isto é, a codificação residual pode ser realizada de maneira eficiente definindo o valor máximo do parâmetro de Rice como 3.
[0323] A FIG. 12 é um fluxograma ilustrando uma operação do aparelho de decodificação de acordo com uma modalidade, e a FIG. 13 é um diagrama de blocos ilustrando uma configuração do aparelho de decodificação de acordo com uma modalidade.
[0324] Cada etapa ilustrada na FIG. 14 pode ser realizado pelo aparelho de decodificação 300 ilustrado na FIG. 3. Mais especificamente, S1400 e S1410 podem ser executadas pelo decodificador por entropia 310 ilustrado na FIG. 3, S1420 pode ser executada pelo desquantizador 321 ilustrado na FIg. 3, S1430 pode ser executada pelo transformador inverso 322, e S1440 pode ser executada pelo adicionador 340. Além disso, as operações de acordo com S1400 a S1440 se baseiam em algumas das descrições supracitadas com referência às FIGS. 4 a 11.
Por conseguinte, descrições detalhadas que se sobreponham às descrições supracitadas nas FIGS. 3 a 11 serão omitidas ou simplificadas.
[0325] Como ilustrado na FIG. 15, o aparelho de decodificação de acordo com uma modalidade pode incluir o decodificador por entropia 310, o desquantizador 321, o quantizador inverso 322, e o adicionador 340. Entretanto, em alguns casos, todos os componentes ilustrados na FIG. 15 podem não ser componentes essenciais do aparelho de decodificação, e o aparelho de decodificação pode ser implementado por mais ou menos componentes do que os componentes ilustrados na FIG. 15.
[0326] No aparelho de decodificação de acordo com uma modalidade, cada um dentre o decodificador por entropia 310, o desquantizador 321, o transformador inverso 322, e o adicionador 340 é implementado como chips separados, ou pelo menos dois componentes também podem ser implementados através de um único chip.
[0327] O aparelho de decodificação de acordo com uma modalidade pode receber um fluxo de bits incluindo informação residual (S1400). Mais especificamente, o decodificador por entropia 310 do aparelho de decodificação pode receber o fluxo de bits incluindo as informações residuais.
[0328] O aparelho de decodificação de acordo com uma modalidade pode derivar um coeficiente de transformada quantizado para o bloco atual com base nas informações residuais incluída no fluxo de bits (S1410). Mais especificamente, o decodificador por entropia 310 do aparelho de decodificação pode derivar o coeficiente de transformada quantizado para o bloco atual baseado nas informações residuais incluída no fluxo de bits.
[0329] O aparelho de decodificação de acordo com uma modalidade pode derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de quantização (S1420). Mais especificamente, o desquantizador 321 do aparelho de decodificação pode derivar o coeficiente de transformada a partir do coeficiente de transformada quantizado com base no processo de desquantização.
[0330] O aparelho de decodificação de acordo com uma modalidade pode derivar uma amostra residual para o bloco atual por meio da aplicação de uma transformada inversa ao coeficiente de transformada derivado (S1430). Mais especificamente, o transformador inverso 322 do aparelho de decodificação pode derivar a amostra residual para o bloco atual por meio da aplicação da transformada inversa ao coeficiente de transformada derivado.
[0331] O aparelho de decodificação de acordo com uma modalidade pode gerar uma imagem reconstruída com base na amostra residual para o bloco atual (S1440). Mais especificamente, o adicionador 340 do aparelho de decodificação pode gerar a imagem reconstruída baseado na amostra residual para o bloco atual.
[0332] Em uma modalidade, as informações residuais inclui informação de nível de coeficiente de transformada, e a derivação do coeficiente de transformada quantizado pode incluir realizar um processo de binarização para a informação de nível de coeficiente de transformada com base em um parâmetro de Rice, derivar um valor da informação de nível de coeficiente de transformada baseado no resultado do processo de binarização, e derivar o coeficiente de transformada quantizado com base no valor da informação de nível de coeficiente de transformada. Em um exemplo, o parâmetro de Rice pode ser representado como cRiceParam.
[0333] Em uma modalidade, o valor máximo do parâmetro de Rice pode ser
3. Em um exemplo, o valor máximo do cRiceParam pode ser 3.
[0334] Em uma modalidade, um processo de inicialização pode ser executado para derivar pelo menos um parâmetro de Rice para o sub-bloco atual incluído no bloco atual.
[0335] Em uma modalidade, o parâmetro de Rice para o coeficiente de transformada atual dentro do sub-bloco atual pode ser derivado com base no último parâmetro de Rice para o coeficiente de transformada na ordem anterior do coeficiente de transformada atual, e um valor do último parâmetro de Rice para o coeficiente de transformada da ordem pode ser zero se o coeficiente de transformada atual for o primeiro coeficiente de transformada do sub-bloco atual. Em um exemplo, o último parâmetro de Rice pode ser representado como lastRiceParam. Em um exemplo, o tamanho do sub-bloco atual pode ser de 2x2 ou 4x4.
[0336] Em uma modalidade, o parâmetro de Rice para o coeficiente de transformada atual pode ser derivado com base nos coeficientes de transformada de referência vizinhos do coeficiente de transformada atual, e o número de coeficientes de transformada de referência vizinhos pode ser de 4 ou menos.
[0337] Em uma modalidade, um coeficiente de soma temporário pode ser derivado com base nos coeficientes de transformada de referência vizinhos, um valor do parâmetro de Rice pode ser determinado como zero se o valor do coeficiente de soma temporário for menor do que um primeiro limite (por exemplo, th1), o valor do parâmetro de Rice pode ser determinado como 1 se o valor do coeficiente de soma temporário for o primeiro limite ou mais e menor do que um segundo limite (por exemplo, th2), o valor do parâmetro de Rice pode ser determinado como 2 se o valor do coeficiente de soma temporário for o segundo limite ou mais e menor do que um terceiro limite (por exemplo, th3), e o valor do parâmetro de Rice pode ser determinado como 3 se o valor do coeficiente de soma temporário for o terceiro limite ou mais. Em um exemplo, o coeficiente de soma temporário pode ser representado como locSumAbs.
[0338] Em uma modalidade, o primeiro limite pode ser 1, 2 ou 3, o segundo limite pode ser 4, 5 ou 6, e o terceiro limite pode ser 10, 11 ou 12. No exemplo, o primeiro limite pode ser representado como th1, o segundo limite pode ser representado como th2, e o terceiro limite pode ser representado como th3.
[0339] De acordo com o aparelho de decodificação e um método de operação do aparelho de decodificação ilustrado nas FIGS. 14 e 15, ele é caracterizado pelo fato de que o aparelho de decodificação recebe um fluxo de bits incluindo informação residual (S1400), deriva um coeficiente de transformada quantizado para o bloco atual com base nas informações residuais incluída no fluxo de bits (S1410), deriva um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de desquantização (S1420), e deriva uma amostra residual para o bloco atual por meio da aplicação de uma transformada inversa ao coeficiente de transformada derivado (S1430), e gera uma imagem reconstruída com base na amostra residual para o bloco atual (S1440), e as informações residuais inclui informação de nível de coeficiente de transformada, a derivação do coeficiente de transformada quantizado inclui executar um processo de binarização para a informação de nível de coeficiente de transformada com base em um parâmetro de Rice, derivar um valor da informação de nível de coeficiente de transformada com base no resultado do processo de binarização, e derivar o coeficiente de transformada quantizado com base no valor da informação de nível de coeficiente de transformada, e o valor máximo do parâmetro de Rice é 3 Isto é, a codificação residual pode ser realizada de maneira eficiente definindo o valor máximo do parâmetro de Rice como 3.
[0340] Nas modalidades supramencionadas, embora os métodos sejam descritos com base nos fluxogramas como uma série de etapas ou blocos, a presente revelação não se limita à ordem das etapas, e uma certa etapa pode ocorrer em ordem diferente de ou simultaneamente com uma etapa diferente da descrita acima. Além disso, os versados na técnica entenderão que as etapas ilustradas nos fluxogramas não são exclusivas e que outras etapas podem ser incluídas ou uma ou mais das etapas nos fluxogramas podem ser excluídas sem que isso afete o escopo da presente revelação.
[0341] O método supramencionado de acordo com a presente revelação pode ser implementado na forma de software, e o aparelho de codificação e/ou o aparelho de decodificação de acordo com a presente revelação podem ser incluídos no aparelho para realizar o processamento de imagem de, por exemplo, uma TV, um computador, um smartphone, um decodificador de sinais, um dispositivo de exibição, entre outros.
[0342] Quando as modalidades na presente revelação são implementadas em software, o método supramencionado pode ser implementado como um módulo (processo, função, e similares) para realizar a função supramencionada. O módulo pode ser armazenado em uma memória e executado por um processador. A memória pode estar localizada dentro ou fora do processador, e pode ser acoplada ao processador por vários meios bem-conhecidos. O processador pode incluir circuitos integrados de aplicação específica (ASICs), outros chipsets, circuitos lógicos e/ou dispositivos de processamento 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 outros dispositivos de armazenamento. Isto é, as modalidades descritas na presente revelação podem ser realizadas sendo implementadas em um processador, em um microprocessador, em um controlador ou em um chip. Por exemplo, as unidades funcionais ilustradas em cada desenho podem ser executadas sendo implementadas no computador, no processador, no microprocessador, no controlador ou no chip.
Neste caso, a informação para implementação (por exemplo, informação sobre instruções) ou algoritmo pode ser armazenado em um meio de armazenamento digital.
[0343] Além disso, o aparelho de decodificação e o aparelho de codificação aos quais a presente revelação é aplicada podem ser incluídos em um transceptor de difusão de multimídia, em um terminal de comunicação móvel, em um dispositivo de vídeo de cinema em casa, em um dispositivo de vídeo de cinema digital, em uma câmera de vigilância, em um dispositivo de comunicação de vídeo, em um dispositivo de comunicação em tempo real, tal como comunicação de vídeo, em um dispositivo de transmissão em fluxo contínuo móvel, em um meio de armazenamento, em uma filmadora de mão, em um provedor de serviços de Vídeo sob Demanda (VoD), em um dispositivo de vídeo “Over the top” (vídeo OTT), em um provedor de serviços de transmissão em fluxo contínuo (streaming) para Internet, em um dispositivo de vídeo tridimensional (3D), em um dispositivo de realidade virtual (VR), em um dispositivo de realidade aumentada (AR), em um dispositivo de videotelefonia, em um terminal de transporte (por exemplo, veículo (inclusive veículos autônomos), terminal de aeronaves, terminal de navios, entre outros), e em um dispositivo de vídeo de uso médico, e similares, e podem ser usados para processar sinais de vídeo ou sinais de dados. Por exemplo, o dispositivo de vídeo “over the top” (vídeo OTT) pode incluir um console de jogo, um reprodutor de Blu- ray, uma TV conectada à Internet, um sistema de home theater, um smartphone, um PC tablet, um Gravador de Vídeo Digital (DVR), entre outros.
[0344] Adicionalmente, o método de processamento ao qual a presente revelação é aplicada pode ser produzido na forma de um programa executado por um computador, e pode ser armazenado em um meio de gravação legível por computador. Os dados multimídia possuindo uma estrutura de dados de acordo com a presente revelação também podem ser armazenados no meio de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuído nos quais se armazenam dados legíveis por computador. 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 disco flexível, e um dispositivo de armazenamento de dados ópticos. Adicionalmente, o meio de gravação legível por computador inclui meios implementados na forma de portadoras (por exemplo, transmissão através da Internet). Além disso, o fluxo de bits gerado pelo método de codificação pode ser armazenado no meio de gravação legível por computador ou transmitido através de redes de comunicação com fio / sem fio.
[0345] Além disso, as modalidades da presente revelação podem ser implementadas como um produto de programa de computador por um código de programa, e o código de programa pode ser executado no computador de acordo com as modalidades da presente revelação. O código de programa pode ser armazenado em um portador legível por computador.
[0346] A FIG. 16 ilustra um exemplo de um sistema de transmissão em fluxo contínuo de conteúdo ao qual a revelação revelada no presente documento pode ser aplicada.
[0347] Referindo-se à FIG. 16, o sistema de transmissão em fluxo de conteúdo ao qual a presente revelação é aplicada pode, em grande parte, incluir um servidor de codificação, um servidor de transmissão em fluxo contínuo (streaming), um servidor da Rede (web), um armazenamento em mídia, um dispositivo do usuário e um dispositivo de entrada multimídia.
[0348] O servidor de codificação serve para compactar os conteúdos, que são inseridos a partir de dispositivos de entrada multimídia, tal como um smartphone, uma câmera ou uma filmadora de mão, em dados digitais, para gerar o fluxo de bits e transmitir o fluxo de bits ao servidor de transmissão em fluxo contínuo.
Como outro exemplo, quando os dispositivos de entrada de multimídia, tal como um smartphone, uma câmera ou uma filmadora de mão, gerarem diretamente o fluxo de bits, o servidor de codificação pode ser omitido.
[0349] O fluxo de bits pode ser gerado pelo método de codificação ou pelo método de geração de fluxo de bits ao qual a revelação é aplicada, e o servidor de transmissão em fluxo contínuo pode armazenar temporariamente o fluxo de bits no processo de transmitir ou receber o fluxo de bits.
[0350] O servidor de transmissão em fluxo contínuo funciona como um meio para transmitir dados de multimídia a um dispositivo do usuário com base em uma solicitação do usuário através de um servidor da Rede, e o servidor da Rede funciona como um meio para informar o usuário sobre quais serviços estão disponíveis. Se o usuário solicitar um serviço desejado a partir do servidor da Rede, o servidor da Rede distribui a solicitação ao servidor de transmissão em fluxo contínuo, e o servidor de transmissão em fluxo contínuo transmite dados de multimídia ao usuário. Neste momento, o sistema de transmissão em fluxo contínuo de conteúdo pode incluir um servidor de controle separado, e neste caso, o servidor de controle desempenha o papel de controlar comandos / respostas entre os dispositivos dentro do sistema de transmissão em fluxo contínuo de conteúdo.
[0351] O servidor de transmissão em fluxo contínuo pode receber conteúdos a partir de um armazenamento em mídia e/ou de um servidor de codificação. Por exemplo, se os conteúdos forem recebidos a partir do servidor de codificação, os conteúdos podem ser recebidos em tempo real. Neste caso, para proporcionar um serviço de transmissão em fluxo contínuo ininterrupto, o servidor de transmissão em fluxo contínuo pode armazenar o fluxo de bits por um certo tempo.
[0352] Exemplos do dispositivo do usuário podem incluir um telefone celular, um smartphone, um computador laptop, um terminal de difusão digital, um assistente digital pessoal (PDA), um reprodutor multimídia portátil (PMP), um terminal de navegação, um PC slate, um PC tablet, um ultrabook, um dispositivo vestível (por exemplo, um relógio inteligente (“smart watch”), um óculos inteligente (“smart glass”), ou óculos de realidade virtual (HMD)), uma TV digital, um computador de mesa, uma assinatura digital, entre outros.
[0353] Cada servidor dentro do sistema de transmissão em fluxo contínuo de conteúdo pode ser operado como um servidor distribuído, e, neste caso, os dados recebidos por cada servidor podem ser processados de maneira distribuída.

Claims (19)

REIVINDICAÇÕES
1. Método de decodificação de imagem executado por um aparelho de decodificação, o método CARACTERIZADO por compreender: receber um fluxo de bits compreendendo informações residuais; derivar um coeficiente de transformada quantizado para um bloco atual baseado nas informações residuais compreendida no fluxo de bits; derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de quantização inversa; derivar uma amostra residual para o bloco atual pela aplicação de uma transformada inversa no coeficiente de transformada; e gerar uma imagem reconstruída com base na amostra residual para o bloco atual, em que as informações residuais inclui um sinalizador de coeficiente significativo representando se o coeficiente de transformada quantizado é um coeficiente significativo não zero, um sinalizador de nível de paridade para uma paridade de um nível de coeficiente de transformada para o coeficiente de transformada quantizado, um primeiro sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um primeiro valor de referência, um segundo sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um segundo valor de referência e informações restantes do nível de coeficiente de transformada, em que derivar o coeficiente de transformada quantizado compreende: decodificar o sinalizador de coeficiente significativo, o sinalizador de nível de paridade, o primeiro sinalizador de nível de coeficiente de transformada e o segundo sinalizador de nível de coeficiente de transformada;
realizar um processo de binarização para a informações restantes do nível de coeficiente de transformada com base em um parâmetro de Rice; derivar um valor da informações restantes do nível de coeficiente de transformada com base em um resultado do processo de binarização; derivar o coeficiente de transformada quantizado com base no valor das informações restantes do nível de coeficiente de transformada, e em que a decodificação do primeiro sinalizador de nível de coeficiente de transformada é realizada antes da decodificação do sinalizador de nível de paridade.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a soma do número de sinalizadores de coeficiente significativo para os coeficientes de transformada quantizados dentro do bloco atual, do número de sinalizadores de nível de paridade, do número de primeiros sinalizadores de nível de coeficiente de transformada e do número de segundos sinalizadores de nível de coeficiente de transformada, que estão compreendidos nas informações residuais, é um limite predeterminado ou menos.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o limite predeterminado é determinado com base no tamanho do bloco atual.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que um processo de inicialização é executado para derivar pelo menos um parâmetro de Rice para um sub-bloco atual compreendido no bloco atual.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o parâmetro de Rice para um coeficiente de transformada atual dentro do sub- bloco atual é derivado com base em um último parâmetro de Rice para um coeficiente de transformada de uma ordem anterior do coeficiente de transformada atual, e em que se o coeficiente de transformada atual for o primeiro coeficiente de transformada do sub-bloco atual, um valor do último parâmetro de Rice para o coeficiente de transformada da ordem anterior é zero.
6. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o tamanho do sub-bloco atual é de 2x2 ou 4x4.
7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o parâmetro de Rice para o coeficiente de transformada atual é derivado com base nos coeficientes de transformada de referência vizinhos do coeficiente de transformada atual, e o número de coeficientes de transformada de referência vizinhos é 4 ou menos.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que um coeficiente de soma temporário é derivado com base nos coeficientes de transformada de referência vizinhos, e em que o valor do parâmetro de Rice é determinado como zero se o valor do coeficiente de soma temporário for menor do que um primeiro limite, o valor do parâmetro de Rice é determinado como 1 se o valor do coeficiente de soma temporário for o primeiro limite ou mais e menor do que um segundo limite, o valor do parâmetro de Rice é determinado como 2 se o valor do coeficiente de soma temporário for o segundo limite ou mais e menor do que um terceiro limite, e o valor do parâmetro de Rice é determinado como 3 se o valor do coeficiente de soma temporário for o terceiro limite ou mais.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o primeiro limite é 1, 2 ou 3, o segundo limite 4, 5 ou 6, e o terceiro limite é 10, 11 ou 12.
10. Método de codificação de imagem executado por um aparelho de codificação, o método sendo CARACTERIZADO por compreender: derivar uma amostra residual para um bloco atual;
derivar um coeficiente de transformada por meio da transformação da amostra residual para o bloco atual;
derivar um coeficiente de transformada quantizado a partir do coeficiente de transformada com base em um processo de quantização; e codificar informações residuais compreendendo informação para o coeficiente de transformada quantizado,
em que as informações residuais compreende um sinalizador de coeficiente significativo representando se o coeficiente de transformada quantizado é um coeficiente significativo não zero, um sinalizador de nível de paridade para uma paridade de um nível de coeficiente de transformada para o coeficiente de transformada quantizado, um primeiro sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um primeiro valor de referência, um segundo sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um segundo valor de referência e informações restantes do nível de coeficiente de transformada,
em que a codificação das informações residuais compreende derivar o sinalizador de coeficiente significativo, o sinalizador de nível de paridade, o primeiro sinalizador de nível de coeficiente de transformada e o segundo sinalizador de nível de coeficiente de transformada;
codificar o sinalizador de coeficiente significativo, o sinalizador de nível de paridade, o primeiro sinalizador de nível de coeficiente de transformada e o segundo sinalizador de nível de coeficiente de transformada;
derivar um valor de binarização da informações restantes pela execução do processo de binarização para as informações restantes com base em um parâmetro de Rice; e codificar o valor de binarização da informações restantes, e em que a codificação do primeiro sinalizador de nível de coeficiente de transformada é realizada antes da codificação do sinalizador de nível de paridade.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a soma do número de sinalizadores de coeficiente significativo para os coeficientes de transformada quantizados dentro do bloco atual, do número de sinalizadores de nível de paridade, do número de primeiros sinalizadores de nível de coeficiente de transformada e do número de segundos sinalizadores de nível de coeficiente de transformada, que estão compreendidos nas informações residuais, é um limite predeterminado ou menos.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o limite predeterminado é determinado com base no tamanho do bloco atual.
13. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que um processo de inicialização é executado para derivar pelo menos um parâmetro de Rice para um sub-bloco atual compreendido no bloco atual.
14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o parâmetro de Rice para um coeficiente de transformada atual dentro do sub-bloco atual é derivado com base em um último parâmetro de Rice para um coeficiente de transformada de uma ordem anterior do coeficiente de transformada atual, e em que se o coeficiente de transformada atual for o primeiro coeficiente de transformada do sub-bloco atual, um valor do último parâmetro de Rice para o coeficiente de transformada da ordem anterior é zero.
15. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o tamanho do sub-bloco atual é de 2x2 ou 4x4.
16. Método, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o parâmetro de Rice para o coeficiente de transformada atual é derivado com base nos coeficientes de transformada de referência vizinhos do coeficiente de transformada atual, e o número de coeficientes de transformada de referência vizinhos é 4 ou menos.
17. Método, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de que um coeficiente de soma temporário é derivado com base nos coeficientes de transformada de referência vizinhos, e em que o valor do parâmetro de Rice é determinado como zero se o valor do coeficiente de soma temporário for menor do que um primeiro limite, o valor do parâmetro de Rice é determinado como 1 se o valor do coeficiente de soma temporário for o primeiro limite ou mais e menor do que um segundo limite, o valor do parâmetro de Rice é determinado como 2 se o valor do coeficiente de soma temporário for o segundo limite ou mais e menor do que um terceiro limite, e o valor do parâmetro de Rice é determinado como 3 se o valor do coeficiente de soma temporário for o terceiro limite ou mais.
18. Método, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que o primeiro limite é 1, 2 ou 3, o segundo limite 4, 5 ou 6, e o terceiro limite é 10, 11 ou 12.
19. Mídia de armazenamento legível por computador não transitória, CARACTERIZADA pelo fato de que armazena informações codificadas que fazem com que um aparelho de decodificação execute um método de decodificação de imagem, o método compreendendo: obter um fluxo de bits compreendendo informações residuais; derivar um coeficiente de transformada quantizado para um bloco atual baseado nas informações residuais compreendidas no fluxo de bits; derivar um coeficiente de transformada a partir do coeficiente de transformada quantizado com base em um processo de desquantização;
derivar uma amostra residual para o bloco atual por meio da aplicação de uma transformada inversa ao coeficiente de transformada derivado; e gerar uma imagem reconstruída com base na amostra residual para o bloco atual,
em que as informações residuais compreendem um sinalizador de coeficiente significativo representando se o coeficiente de transformada quantizado é um coeficiente significativo não zero, um sinalizador de nível de paridade para uma paridade de um nível de coeficiente de transformada para o coeficiente de transformada quantizado, um primeiro sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um primeiro valor de referência, um segundo sinalizador de nível de coeficiente de transformada a respeito de se o nível de coeficiente de transformada é maior do que um segundo valor de referência e informações restantes do nível de coeficiente de transformada,
em que derivar o coeficiente de transformada quantizado compreende:
decodificar o sinalizador de coeficiente significativo, o sinalizador de nível de paridade, o primeiro sinalizador de nível de coeficiente de transformada e o segundo sinalizador de nível de coeficiente de transformada;
realizar um processo de binarização para a informações restantes do nível de coeficiente de transformada com base em um parâmetro de Rice; e derivar um valor das informações restantes do nível de coeficiente de transformada com base no resultado do processo de binarização, e derivar o coeficiente de transformada quantizado com base no valor das informações restantes do nível de coeficiente de transformada, e em que a decodificação do primeiro sinalizador de nível de coeficiente de transformada é realizada antes da decodificação do sinalizador de nível de paridade.
BR112021004516-3A 2018-09-11 2019-08-30 Método de decodificação de imagem executado por um aparelho de decodificação, método de codificação de imagem executado por um aparelho de codificação e mídia de armazenamento legível por computador BR112021004516B1 (pt)

Priority Applications (2)

Application Number Priority Date Filing Date Title
BR122021008882-9A BR122021008882B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo
BR122021008876-4A BR122021008876B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862729979P 2018-09-11 2018-09-11
US62/729,979 2018-09-11
US201862735211P 2018-09-24 2018-09-24
US62/735,211 2018-09-24
PCT/KR2019/011195 WO2020055014A1 (ko) 2018-09-11 2019-08-30 레지듀얼 코딩 방법 및 그 장치

Publications (2)

Publication Number Publication Date
BR112021004516A2 true BR112021004516A2 (pt) 2021-06-08
BR112021004516B1 BR112021004516B1 (pt) 2021-12-14

Family

ID=69777920

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122021008876-4A BR122021008876B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo
BR112021004516-3A BR112021004516B1 (pt) 2018-09-11 2019-08-30 Método de decodificação de imagem executado por um aparelho de decodificação, método de codificação de imagem executado por um aparelho de codificação e mídia de armazenamento legível por computador
BR122021008882-9A BR122021008882B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122021008876-4A BR122021008876B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122021008882-9A BR122021008882B1 (pt) 2018-09-11 2019-08-30 Método de codificação residual e dispositivo para o mesmo

Country Status (8)

Country Link
US (3) US10992935B2 (pt)
EP (2) EP3975572A1 (pt)
JP (2) JP7208234B2 (pt)
KR (4) KR102459940B1 (pt)
CN (5) CN111406407B (pt)
BR (3) BR122021008876B1 (pt)
MX (1) MX2021002815A (pt)
WO (1) WO2020055014A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111406407B (zh) * 2018-09-11 2023-10-24 Lg电子株式会社 残差编码方法及其装置
KR20210124218A (ko) * 2019-02-07 2021-10-14 소니그룹주식회사 화상 처리 장치 및 방법
EP4248651A1 (en) * 2020-11-18 2023-09-27 Beijing Dajia Internet Information Technology Co., Ltd. Residual and coefficients coding for video coding
US11849133B2 (en) * 2020-12-10 2023-12-19 Qualcomm Incorporated Low complexity history usage for rice parameter derivation for high bit-depth video coding
CN117044208A (zh) * 2021-02-24 2023-11-10 Lg电子株式会社 图像编译方法及其装置
WO2022256451A1 (en) * 2021-06-03 2022-12-08 Innopeak Technology, Inc. Quantization level binarization in video coding
WO2024035762A1 (en) * 2022-08-09 2024-02-15 Innopeak Technology, Inc. Dynamic mesh geometry refinement component adaptive coding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090067503A1 (en) * 2006-01-07 2009-03-12 Electronics And Telecommunications Research Institute Method and apparatus for video data encoding and decoding
KR101539240B1 (ko) * 2007-06-14 2015-07-30 삼성전자주식회사 영상 데이터의 엔트로피 부호화, 복호화 방법 및 장치
KR101539110B1 (ko) * 2011-10-18 2015-07-29 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
KR101660605B1 (ko) * 2011-11-08 2016-09-27 구글 테크놀로지 홀딩스 엘엘씨 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US11233998B2 (en) * 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
KR20180069789A (ko) * 2015-10-16 2018-06-25 엘지전자 주식회사 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
EP3818703A1 (en) * 2018-07-02 2021-05-12 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Entropy coding of transform coefficients suitable for dependent scalar quantization
US11336918B2 (en) * 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN111406407B (zh) * 2018-09-11 2023-10-24 Lg电子株式会社 残差编码方法及其装置
CN117857796A (zh) * 2018-09-11 2024-04-09 夏普株式会社 用于对变换系数位阶值进行编码的系统和方法
CN111373753B (zh) * 2018-09-20 2023-09-08 Lg电子株式会社 变换因子级别编码方法及其装置
CN116320397A (zh) * 2018-09-21 2023-06-23 Oppo广东移动通信有限公司 视频信号编码/解码方法以及用于所述方法的设备

Also Published As

Publication number Publication date
BR112021004516B1 (pt) 2021-12-14
BR122021008876A2 (pt) 2021-07-13
US11700372B2 (en) 2023-07-11
KR102459940B1 (ko) 2022-10-27
JP2022173594A (ja) 2022-11-18
CN117201785A (zh) 2023-12-08
CN117201786A (zh) 2023-12-08
US20210211667A1 (en) 2021-07-08
EP3975572A1 (en) 2022-03-30
KR102370754B1 (ko) 2022-03-04
US20200260080A1 (en) 2020-08-13
MX2021002815A (es) 2021-05-12
CN111406407B (zh) 2023-10-24
KR20220150414A (ko) 2022-11-10
BR122021008882A2 (pt) 2021-07-13
EP3691275A1 (en) 2020-08-05
BR122021008882B1 (pt) 2021-12-21
WO2020055014A1 (ko) 2020-03-19
KR20230088925A (ko) 2023-06-20
JP2021503233A (ja) 2021-02-04
KR102542001B1 (ko) 2023-06-13
EP3691275A4 (en) 2020-12-30
JP7208234B2 (ja) 2023-01-18
KR20220029790A (ko) 2022-03-08
CN111406407A (zh) 2020-07-10
KR20200055085A (ko) 2020-05-20
US20230319278A1 (en) 2023-10-05
CN117201788A (zh) 2023-12-08
US10992935B2 (en) 2021-04-27
CN117201787A (zh) 2023-12-08
BR122021008876B1 (pt) 2021-12-21

Similar Documents

Publication Publication Date Title
BR122021012448B1 (pt) Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR112021004516A2 (pt) método de codificação residual e dispositivo para o mesmo
KR20200056451A (ko) Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치
US11706419B2 (en) Conversion factor level coding method and device therefor
BR112021013735A2 (pt) Método de codificação de imagens e dispositivo para executar intrapredição baseada em mrl
BR112021005796B1 (pt) Método de decodificação de vídeo realizado por um aparelho de decodificação, método de codificação de vídeo realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória
BR122022002102B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, aparelho de decodificação/codificação para decodificação/codificação de imagem, método de transmissão de dados para imagem e mídia de armazenamento legível por computador não transitória
BR112021012505B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação e mídia de armazenamento não transitória legível por computador
BR122022005515B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, método de transmissão de dados para uma imagem , aparelho de d ecodificação / codificação para decodificação/codificação de imagem, aparelho de transmissão para transmissão de dados para uma imagem e mídia de armazenamento não transitória legível por computador
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
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04N 19/90 , H04N 19/132 , H04N 19/139 , H04N 19/70 , H04N 19/176

Ipc: H04N 19/13 (2014.01), H04N 19/176 (2014.01), H04N

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/08/2019, OBSERVADAS AS CONDICOES LEGAIS.