BR112014017500B1 - Método de decodificação de vídeo - Google Patents

Método de decodificação de vídeo Download PDF

Info

Publication number
BR112014017500B1
BR112014017500B1 BR112014017500-4A BR112014017500A BR112014017500B1 BR 112014017500 B1 BR112014017500 B1 BR 112014017500B1 BR 112014017500 A BR112014017500 A BR 112014017500A BR 112014017500 B1 BR112014017500 B1 BR 112014017500B1
Authority
BR
Brazil
Prior art keywords
quantization matrix
matrix
value
scaling
list
Prior art date
Application number
BR112014017500-4A
Other languages
English (en)
Other versions
BR112014017500A2 (pt
BR112014017500A8 (pt
Inventor
Sung Chang Lim
Hui Yong Kim
Jin Ho Lee
Jin Soo Choi
Jin Woong Kim
Original Assignee
Electronics And Telecommunications Research Institute
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 Electronics And Telecommunications Research Institute filed Critical Electronics And Telecommunications Research Institute
Publication of BR112014017500A2 publication Critical patent/BR112014017500A2/pt
Publication of BR112014017500A8 publication Critical patent/BR112014017500A8/pt
Publication of BR112014017500B1 publication Critical patent/BR112014017500B1/pt

Links

Images

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
    • 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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/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
    • H04N19/198Methods 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 including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value

Abstract

MÉTODO PARA CODIFICAR E DECODIFICAR MATRIZ QUANTIZADA E APARELHO USANDO O MESMO. A presente invenção refere-se a um método para codificar e decodificar uma matriz quantizada e um aparelho usando o mesmo, o método para codificar uma matriz quantizada de acordo com a presente invenção compreendendo as etapas de: determinar uma matriz de quantização a ser usada para a quantização e quantizar; determinar o método de predição usado para a quantização da matriz de quantização; e codificar informação de matriz de quantização com base no método de predição determinado, onde o método de predição pode ser ou um método de predição entre os coeficientes na matriz de quantização ou uma duplicata da matriz de quantização.

Description

CAMPO DA TÉCNICA
[001]A presente invenção refere-se à tecnologia de codificação e decodificação de imagem e, mais particularmente, a métodos e aparelhos para codificar e decodificar uma matriz de quantização.
FUNDAMENTOS DA INVENÇÃO
[002]O serviço de transmissão tendo resolução em Alta Definição (HD), recentemente foi expandido em todo o mundo, bem como localmente. Consequentemente, muitos usuários se acostumaram a uma imagem com alta resolução e alta qualidade de imagem, e vários institutos estimulam o desenvolvimento do dispositivo de imagem de última geração.
[003]Como há um crescente interesse em Definição Ultra Alta (UHD), com resolução quatro vezes maior do que HDTV, bem como HDTV, há a necessidade de uma técnica de compressão de imagem com maior resolução e maior qualidade de imagem.
[004]Para compressão de imagem, informações sobre os pixels de uma imagem atual podem ser codificadas por predição. Por exemplo, uma técnica de interpredição na qual um valor de pixel incluído em uma imagem atual é predito a partir de uma imagem temporalmente anterior e/ou temporalmente subsequente e uma técnica de intrapredição na qual um valor de pixel incluído em uma imagem atual é predito usando informações sobre os pixels dentro da imagem atual podem ser usadas.
[005]Ademais, a eficiência da codificação pode ser melhorada e a quantidade de informação de transmissão pode ser reduzida usando tecnologia de codificação por entropia na qual um sinal curto é atribuído a um símbolo com alta frequência de aparecimento e um sinal longo é atribuído a um símbolo com baixa frequência de aparecimento.
[006]Nesse caso, um método de executar a quantização de um coeficiente de transformação para um bloco residual gerado pela predição mais eficazmente é problemático.
SUMÁRIO DA INVENÇÃO
[007]Um objetivo da presente invenção é fornecer um método e um aparelho para restringir a codificação/decodificação da matriz de quantização com base no tamanho de um bloco de transformação que está disponível.
[008]Outro objetivo da presente invenção é fornecer métodos de codificação/decodificação e aparelhos, em que uma matriz de quantização padrão e uma matriz de quantização não padrão podem ser misturadas e utilizadas de acordo com o tamanho de cada bloco de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia.
[009]Ainda outro objetivo da presente invenção é fornecer métodos e aparelhos de codificação/decodificação, em que uma matriz de quantização padrão é utilizada com base em um ID de matriz de quantização de referência.
[010]Ainda outro objetivo da presente invenção é fornecer métodos e aparelhos de codificação/decodificação, que aumentam a eficiência de codificação executando a predição de uma matriz de quantização apenas quando uma matriz de quantização de referência está presente.
[011]Além disso, ainda outro objetivo da presente invenção é fornecer um método e um aparelho para executar de forma eficaz a predição e a codificação/decodificação de um coeficiente de matriz DC.
[012]Ademais, ainda outro objetivo da presente invenção é fornecer métodos e aparelhos de codificação/decodificação para executar a predição de uma matriz de quantização a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando a codificação/decodificação é executada.
[013]Além disso, ainda outro objetivo da presente invenção é fornecer um método e um aparelho para executar a predição e a codificação/decodificação com base no primeiro coeficiente dentro de uma matriz de quantização.
[014]Uma modalidade da presente invenção fornece um método para codificar uma matriz de quantização, incluindo determinar e quantizar uma matriz de quantização a ser utilizada na quantização, determinar um método de predição da matriz de quantização utilizada na quantização, e informação de codificação sobre a matriz de quantização de acordo com o método de predição determinado, onde o método de predição pode ser qualquer um dentre um método para predizer um método de predição intercoeficientes dentro da matriz de quantização e uma cópia da matriz de quantização.
[015]Outra modalidade da presente invenção fornece um método para decodificar uma matriz de quantização, incluindo determinar um método de predição de uma matriz de quantização a ser usada na desquantização e decodificar a matriz de quantização a ser usada na desquantização de acordo com o método de predição determinado, onde o método de predição da matriz de quantização pode ser qualquer um dentre um método de predição intercoeficientes dentro da matriz de quantização e um cópia da matriz de quantização.
[016]De acordo com o presente invento, a eficiência da codificação pode ser melhorada e o grau de complexidade de cálculo pode ser reduzido, restringindo a codificação de uma matriz de quantização com base no tamanho de um bloco de transformação que está disponível.
[017]De acordo com a presente invenção, a eficiência da codificação pode ser melhorada e o grau de liberdade quando um codificador seleciona uma matriz de quantização pode ser aumentado através da mistura e usando uma matriz de quantização padrão e uma matriz de quantização não padrão de acordo com o tamanho de cada bloco de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia.
[018]De acordo com a presente invenção, a eficiência da codificação pode ser melhorada, o grau de complexidade do cálculo pode ser reduzido, e o grau de liberdade quando um codificador seleciona uma matriz de quantização pode ser aumentado pela informação de codificação/decodificação sobre se uma matriz de quantização padrão será usada ou não com base em um ID de matriz de quantização de referência ou executar a predição de uma matriz de quantização somente quando uma matriz de quantização de referência está presente.
[019]De acordo com a presente invenção, a eficiência da codificação pode ser melhorada, o grau de complexidade de cálculo pode ser reduzido, e o grau de liberdade quando um codificador seleciona uma matriz de quantização pode ser aumentado através da predição e codificação/decodificação de um coeficiente de matriz DC ou executar a predição de uma matriz de quantização a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando a codificação/decodificação é realizada.
[020]Por outro lado, de acordo com a presente invenção, a eficiência de codificação pode ser melhorada e o grau de complexidade do cálculo pode ser reduzido através de codificação/decodificação do primeiro coeficiente dentro de uma matriz de quantização usando um valor de coeficiente que ocorre frequentemente.
DESCRIÇÃO DOS DESENHOS
[021]A Figura 1 é um diagrama de bloco que mostra uma construção de acordo com uma modalidade de um aparelho de codificação de imagem no qual a presente invenção é aplicada.
[022]A Figura 2 é um diagrama de bloco que mostra uma construção de acordo com uma modalidade de um aparelho de decodificação de imagem no qual a presente invenção é aplicada.
[023]A Figura 3 é um diagrama conceitual que ilustra esquematicamente uma modalidade na qual uma unidade é particionada em uma pluralidade de unidades menores.
[024]A Figura 4 é um fluxograma que ilustra esquematicamente um método de codificação de imagem de acordo com a presente invenção.
[025]A Figura 5 é um fluxograma que ilustra esquematicamente um exemplo de uma operação de um decodificador para decodificar informação sobre uma matriz de quantização e executar a decodificação usando a informação decodificada.
[026]A Figura 6 é um fluxograma que ilustra esquematicamente um exemplo de um método para executar a desquantização de acordo com a presente invenção.
[027]A Figura 7 é um diagrama que ilustra esquematicamente um exemplo de um método para obter informação sobre uma matriz de quantização quando a matriz de quantização está presente em um conjunto de parâmetros e executar a desquantização usando a informação.
[028]A Figura 8 é um é um diagrama que ilustra esquematicamente outro exemplo de um método para obter informação sobre uma matriz de quantização quando a matriz de quantização está presente em um conjunto de parâmetros e executar a desquantização usando a informação.
DESCRIÇÃO DA INVENÇÃO
[029]Em seguida, as modalidades da presente invenção são descritas em detalhes com relação aos desenhos em anexo. Ademais, na descrição das modalidades da presente invenção, uma descrição detalhada das funções e constituições conhecidas será omitida se tornar a essência da presente invenção desnecessariamente vaga.
[030]Nesta especificação, quando diz-se que um elemento está “conectado”, “combinado”, ou “acoplado” com o outro elemento, o elemento pode ser diretamente conectado ou acoplado com o outro elemento, mas dever-se-ia entender também que um terceiro elemento pode ser “conectado”, “combinado” ou “acoplado” entre os dois elementos. Ademais, nesta especificação, os conteúdos descrevendo que um elemento específico está “incluído (ou compreendido)” não significa que elementos que não o elemento específico são excluídos, mas significa que elementos adicionais podem ser incluídos em uma implementação da presente invenção ou no escopo do espírito técnico da presente invenção.
[031]Termos, tais como o “primeiro” e o “segundo”, podem ser usados para descrever uma variedade de elementos, mas os elementos não estão limitados aos termos. Os termos são usados para distinguir um elemento do outro. Por exemplo, um primeiro elemento pode ser chamado de um segundo elemento e igualmente um segundo elemento pode ser chamado de um primeiro elemento sem abandonar o escopo da presente invenção.
[032]Ademais, os elementos descritos nas modalidades da presente invenção são independentemente mostrados de modo a indicar funções diferentes e características, e não significa que cada um dos elementos consiste de hardware separado ou um pedaço de módulo de software. Isto é, os elementos são dispostos, para conveniência de descrição, e ao menos dois dos elementos podem ser combinados para formar um elemento ou um elemento pode ser dividido em uma pluralidade de elementos e a pluralidade de elementos pode desempenhar funções. Uma modalidade na qual os elementos são combinados ou cada um dos elementos é dividido no escopo da presente invenção sem abandonar a essência da presente invenção.
[033]Ademais, na presente invenção, alguns elementos podem não ser elementos essenciais para desempenhar funções essenciais, mas podem ser elementos opcionais para melhorar somente o desempenho. A presente invenção pode ser implementada usando somente os elementos essenciais para implementar a essência da presente invenção que não os elementos usados para melhorar somente o desempenho, e uma estrutura incluindo somente os elementos essenciais que não os elementos opcionais usados para melhorar somente o desempenho são incluídos no escopo da presente invenção.
[034]Primeiro, os termos usados nesta especificação são descritos brevemente para conveniência de descrição e de modo a ajudar no entendimento da invenção.
[035]Uma unidade significa a unidade de codificação e decodificação de imagem. Em outras palavras, na codificação/decodificação de imagem, uma unidade de codificação ou uma unidade de decodificação refere-se a uma unidade particionada quanto uma imagem é subdividida e codificada ou decodificada. A unidade é também chamada um bloco, um macro bloco, uma unidade de codificação, uma unidade de predição, uma unidade de transformação, um bloco de codificação, um bloco de predição, um bloco de transformação, ou similar. Uma unidade pode ser particionada em unidades menores.
[036]Uma unidade de transformação é uma unidade básica em executar a codificação/decodificação de um bloco residual, tal como transformada, transformada inversa, quantização, desquantização, e codificação/decodificação de coeficiente de transformação. Uma unidade de transformação pode ser particionada em uma pluralidade de unidades de transformação menores. Ademais, a unidade de transformação pode ser usada como o mesmo significado de um bloco de transformação. Uma forma que inclui um elemento de sintaxe relacionado a um bloco de transformação para sinais luma e croma pode ser chamada de uma unidade de transformação.
[037]Uma matriz de quantização significa uma matriz que é usada em um processo de quantização ou quantização inversa de modo a melhorar a qualidade de imagem subjetiva ou qualidade de imagem objetiva de uma imagem. A matriz de quantização é também chamada de uma lista de escalonamento, e o processo de quantização inversa é idêntico ao processo de desquantização.
[038]Uma matriz de quantização usada na quantização/desquantização pode ser transmitida na forma de um fluxo de bits, e uma matriz padrão já incluída em um codificador e/ou em um decodificador pode ser usada como uma matriz de quantização. A informação sobre uma matriz de quantização pode ser transmitida em uma quantia de acordo com o tamanho de cada matriz de quantização ou o tamanho de um bloco de transformação no qual uma matriz de quantização é aplicada através de um Conjunto de Parâmetros de Sequência (SPS) ou um Conjunto de Parâmetros de Imagem (PPS). Por exemplo, as matrizes de quantização 4x4 para um bloco de transformação 4x4 podem ser transmitidas, matrizes 8x8 para um bloco de transformação 8x8 podem ser transmitidas, matrizes 16x16 para um bloco de transformação 16x16 podem ser transmitidas, e matrizes 32x32 para um bloco de transformação 32x32 podem ser transmitidas.
[039]Uma matriz de quantização aplicada a um bloco atual pode ser (1) obtida copiando-se uma matriz de quantização tendo o mesmo tamanho e (2) gerado por predição de um coeficiente de matriz anterior dentro da matriz de quantização. Uma matriz com o mesmo tamanho pode ser uma matriz de quantização que foi previamente codificada ou decodificada ou usada, uma matriz de quantização de referência, ou uma matriz de quantização padrão. Ou, uma matriz tendo o mesmo tamanho pode ser seletivamente determinada por uma combinação incluindo ao menos duas de uma matriz de quantização que foi previamente codificada ou decodificada ou usada, uma matriz de quantização de referência, e uma matriz de quantização padrão.
[040]Um conjunto de parâmetros corresponde à informação sobre o cabeçalho de uma estrutura dentro de um fluxo de bits e tem um significado que geralmente denota um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, um conjunto de parâmetros de adaptação, etc.
[041]Um parâmetro de quantização é um valor usado na quantização e desquantização e pode ser um valor mapeado quanto ao tamanho da etapa de quantização.
[042]Uma matriz padrão pode significar uma matriz de quantização específica que pode ter sido definida previamente em um codificador e/ou decodificador. Uma matriz de quantização padrão a ser descrita posteriormente nesta especificação pode ser usada como o mesmo significado de uma matriz padrão. Uma matriz não padrão pode significar uma matriz de quantização que não foi previamente definida em um codificador e/ou um decodificador e que é transmitida de um codificador para um decodificador, isto é, que é transmitida/recebida por um usuário. Uma matriz de quantização não padrão a ser descrita posteriormente nesta especificação pode ser usada como o mesmo significado de uma matriz não padrão.
[043]A Figura 1 é um diagrama de bloco que mostra uma construção de acordo com uma modalidade de um aparelho de codificação de imagem no qual a presente invenção é aplicada.
[044]Com relação à Figura 1, o aparelho de codificação de imagem 100 inclui um módulo de predição de movimento 111, um módulo de compensação de movimento 112, um módulo de intrapredição 120, um comutador 115, um subtrator 125, um módulo de transformação 130, um módulo de quantização 140, um módulo de codificação por entropia 150, um módulo de desquantização (quantização inversa) 160, um módulo de transformada inversa 170, um somador 175, um módulo de filtro 180, e um armazenador de imagem de referência 190.
[045]O aparelho de codificação de imagem 100 pode executar a codificação em uma imagem de entrada em modo intra ou modo inter e emitir um fluxo de bits. Intrapredição significa que a intraprediçãoquadros, e a interpredição significa a predição interquadros. No caso de modo intra, o comutador 115 pode ser comutado para modo intra. Após a geração de um bloco de predição para o bloco de entrada da imagem de entrada, o aparelho de codificação de imagem 100 pode codificar uma diferença entre o bloco de entrada e um bloco de predição. Aqui, a imagem de entrada pode significar a imagem original.
[046]No caso de modo intra, o módulo de intrapredição 120 pode gerar um bloco de predição executando predição espacial com base no valor de pixel de um bloco já codificado que é vizinho de um bloco atual.
[047]No caso de modo inter, o módulo de predição de movimento 111 pode buscar uma imagem de referência, armazenada no armazenador de imagem de referência 190, para uma região que corresponde melhor ao bloco de entrada em um processo de predição de movimento e obter um vetor de movimento com base na região restaurada. O módulo de compensação de movimento 112 pode gerar o bloco de predição executando a compensação de movimento usando o vetor de movimento. Aqui, o vetor de movimento é um vetor bidimensional usado na predição inter, e o vetor de movimento pode indicar uma compensação entre o bloco atual e um bloco dentro da imagem de referência.
[048]O subtrator 125 pode gerar um bloco residual com base em uma diferença entre o bloco de entrada e o bloco de predição gerado. O módulo de transformação 130 pode emitir um coeficiente de transformação executando transformação no bloco residual. Em seguida, o módulo de quantização 140 pode emitir um coeficiente quantização quantizando o coeficiente de transformação recebido usando ao menos um de um parâmetro de quantização e uma matriz de quantização. Aqui, a matriz de quantização pode ser inserida em um codificador, e pode ser determinado que a matriz de quantização inserida seja usada no codificador.
[049]O módulo de codificação por entropia 150 pode emitir um fluxo de bits executando codificação por entropia com base nos valores calculados pelo módulo de quantização 140 ou um valor de parâmetro de codificação, etc. calculado no processo de codificação. Se a codificação por entropia é aplicada, os símbolos podem ser representados atribuindo-se um pequeno número de bits a um símbolo tendo uma probabilidade de ocorrência e um grande número de bits a um símbolo tendo uma baixa probabilidade de ocorrência de modo a reduzir o tamanho de um fluxo de bits para símbolos de codificação a ser codificado. Consequentemente, o desempenho de compressão de codificação de imagem pode ser aumentado por codificação por entropia. O módulo de codificação por entropia 150 pode usar métodos de codificação, tal como codificação de exponencial Golomb, Codificação de Comprimento Variável Adaptativo ao Contexto (CAVLC), e Codificação Aritmética Binária Adaptativa ao Contexto (CABAC), para codificação por entropia.
[050]O aparelho de codificação de imagem (em seguida chamado de um codificador) de acordo com a modalidade da Figura 1 executa codificação de predição inter, isto é, codificação de predição interquadros, e assim, uma imagem atualmente codificada precisa ser codificada e armazenada de modo a ser usada como uma imagem de referência. Consequentemente, um coeficiente quantizado é submetido à desquantização pelo módulo de desquantização 160 e submetido à transformada inversa pelo módulo de transformação inversa 170. O coeficiente quantizado inversamente e transformado inversamente se torna um bloco residual reconstruído, e o bloco residual reconstruído é adicionado ao bloco de predição através do somador 175, gerando assim um bloco reconstruído.
[051]O bloco reconstruído experimenta o módulo de filtro 180. O módulo de filtro 180 pode aplicar um ou mais de um filtro de desblocagem, um Compensação Adaptativo de Amostra (SAO), e um Filtro Adaptativo de Laço (ALF) ao bloco reconstruído ou uma imagem reconstruída. O módulo de filtro 180 pode também ser chamado de filtro em laço. O filtro de desblocagem pode remover a distorção de um bloco que ocorreu no limite dos blocos. O SAO pode adicionar um valor de compensação apropriado a um valor de pixel de modo a compensar um erro de codificação. O ALF pode executar a filtragem com base em um valor obtido através da comparação de uma imagem reconstruída com a imagem original. O bloco reconstruído que experimentou o módulo de filtro 180 pode ser armazenado no armazenador de imagem de referência 190.
[052]A Figura 2 é um diagrama de bloco que mostra uma construção de acordo com uma modalidade de um aparelho de decodificação de imagem no qual a presente invenção é aplicada.
[053]Com relação à Figura 2, o aparelho de decodificação de imagem 200 inclui um módulo de decodificação por entropia 210, um módulo de desquantização (quantização inversa) 220, um módulo de transformação inversa 230, um módulo de intrapredição 240, um módulo de compensação de movimento 250, um somador 255, um módulo de filtro 260, e um armazenador de imagem de referência 270.
[054]O aparelho de decodificação de imagem 200 pode receber um fluxo de bits emitido a partir de um codificador, executar a decodificação no fluxo de bits em modo intra ou modo inter, e emitir uma imagem reconstruída. No caso de modo intra, um comutador pode ser comutado para modo intra. No caso de modo inter, o comutador pode ser trocado para modo inter. O aparelho de decodificação de imagem 200 pode obter um bloco residual reconstruído a partir de um fluxo de bits recebido, gerar um bloco de predição, e gerar um bloco reconstruído através da adição do bloco residual reconstruído a um bloco de predição.
[055]O módulo de decodificação por entropia 210 pode gerar símbolos incluindo um símbolo tendo uma forma de coeficiente quantizado executando decodificação por entropia em um fluxo de bits de entrada de acordo com uma distribuição de probabilidade. Um método de decodificação por entropia é similar ao método de codificação por entropia descrito acima.
[056]Se o método de decodificação por entropia é aplicado, os símbolos podem ser representados atribuindo-se um pequeno número de bits a um símbolo tendo uma alta probabilidade de ocorrência e um grande número de bits a um símbolo tendo uma baixa probabilidade de ocorrência de modo a reduzir o tamanho de um fluxo de bits para cada símbolo.
[057]Um coeficiente quantizado pode ser submetido à desquantização pelo módulo de desquantização 220 com base em um parâmetro de quantização e pode ser submetido à transformada inversa pelo módulo de transformação inversa 230. Como um resultado da desquantização/transformação inversa do coeficiente quantizado, um bloco residual reconstruído pode ser gerado.
[058]Uma matriz de quantização usada na desquantização é também chamada de uma lista de escalonamento. O módulo de desquantização 220 pode gerar um coeficiente quantizado inversamente aplicando uma matriz de quantização a um coeficiente quantizado.
[059]Aqui, o módulo de desquantização 220 pode executar desquantização em resposta à quantização aplicada por um codificador. Por exemplo, o módulo de desquantização 220 pode executar a desquantização aplicando uma matriz de quantização, aplicada por um codificador, a um coeficiente quantizado inversamente.
[060]Uma matriz de quantização usada em desquantização pelo aparelho de decodificação de imagem 200 (em seguida chamado de um decodificador) pode ser recebida a partir de um fluxo de bits, e uma matriz padrão já incluída em um codificador e/ou um decodificador pode ser usada como uma matriz de quantização.
[061]A informação sobre uma matriz de quantização que é transmitida pode ser recebida em uma quantia de acordo com o tamanho de cada matriz de quantização ou o tamanho de um bloco de transformação ao qual uma matriz de quantização através de um conjunto de parâmetros de sequência ou um conjunto de parâmetros de imagem. Por exemplo, as matrizes de quantização 4x4 para um bloco de transformação 4x4 podem ser recebidas, matrizes 8x8 para um bloco de transformação 8x8 podem ser recebidas, matrizes 16x16 para um bloco de transformação 16x16 podem ser recebidas, e matrizes 32x32 para um bloco de transformação 32x32 podem ser recebidas.
[062]No caso de modo intra, o módulo de intrapredição 240 pode gerar um bloco de predição executando predição espacial usando o valor de pixel de um bloco já decodificado que é vizinho a um bloco atual. No caso de modo inter, o módulo de compensação de movimento 250 pode gerar um bloco de predição executando compensação de movimento usando um vetor de movimento e uma imagem de referência armazenada no armazenador de imagem de referência 270.
[063]Um bloco residual reconstruído e um bloco de predição são adicionados juntos pelo somador 255, e o bloco adicionado pode experimentar o módulo de filtro 260. O módulo de filtro 260 pode aplicar um ou mais de um filtro de desblocagem, um SAO, e um ALF a um bloco reconstruído ou uma imagem reconstruída. O módulo de filtro 260 pode emitir uma imagem restaurada. A imagem reconstruída pode ser armazenada no armazenador de imagem de referência 270 e usada em predição inter.
[064]Ademais, a informação de partição de bloco pode incluir informação sobre a profundidade de uma unidade. A informação de profundidade pode indicar o número de vezes que uma unidade é particionada e/ou um grau que uma unidade é particionada.
[065]A Figura 3 é um diagrama conceitual que ilustra esquematicamente uma modalidade na qual uma unidade é particionada em uma pluralidade de unidades menores.
[066]Uma unidade ou bloco pode ser hierarquicamente particionada com base em uma estrutura de árvore com informação de profundidade. Cada uma das unidades menores particionadas pode ter informação de profundidade. A informação de profundidade pode incluir informação sobre o tamanho de uma unidade menor porque ela indica o número de vezes que uma unidade é particionada e/ou o grau que uma unidade é particionada.
[067]Com relação a 310 da Figura 3, o nó mais alto pode ser chamado de um nó raiz, e o nó mais alto pode ter o menor valor de profundidade, Aqui, o nó mais alto pode ter uma profundidade de um nível 0 e pode indicar a primeira unidade que não foi particionada.
[068]Um nó inferior tendo uma profundidade de um nível 1 pode indicar uma unidade particionada a partir da primeira unidade uma vez, e um nó inferior tendo uma profundidade de um nível 2 pode indicar uma unidade particionada a partir da primeira unidade duas vezes. Por exemplo, em 320 da Figura 3, uma unidade ‘a’ correspondente a um nó ‘a’ é uma unidade particionada a partir da primeira unidade uma vez, e a unidade ‘a’ pode ter uma profundidade de nível 1.
[069]Um nó folha de um nível 3 pode indicar uma unidade particionada a partir da primeira unidade três vezes. Por exemplo, em 320 da Figura 3, uma unidade ‘d’ correspondente a um nó ‘d’ é uma unidade particionada a partir da primeira unidade três vezes, e a unidade ‘d’ pode ter uma profundidade do nível 3. Consequentemente, um nó folha do nível 3, isto é, o nó mais inferior, pode ter a maior profundidade.
[070]Os métodos de codificação/decodificação esquemáticos foram descritos até agora. Os métodos de codificação/decodificação de matriz de quantização usados nos processos de quantização e quantização inversa de processos de codificação/decodificação têm uma grande influência na eficiência da codificação como outros processos de codificação/decodificação. Consequentemente, é necessário melhorar a quantização/desquantização levando a eficiência de codificação em consideração.
[071]Mais particularmente, convencionalmente, uma matriz de quantização para todas as transformações é codificada/decodificada não levando em consideração um tamanho mínimo e um tamanho máximo de uma unidade de transformação que estão disponíveis. Ademais, convencionalmente, uma matriz de quantização é aplicada em uma quantia sem misturação e usando uma matriz padrão e uma matriz não padrão de acordo com o tamanho de uma transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia. Consequentemente, há desvantagens em que o grau de liberdade quando o codificador seleciona uma matriz de quantização é baixo e a eficiência de codificação é baixa porque uma matriz padrão que não precisa ser codificada/decodificada precisa ser codificada e transmitida.
[072]Como descrito acima, de acordo com métodos convencionais, em aplicar uma matriz de quantização, o grau de liberdade e a eficiência de codificação são baixos e o grau de complexidade é alto.
[073]De modo a resolver os problemas, um método para usar eficazmente uma matriz de quantização precisa ser levado em consideração de modo a melhorar a eficiência da codificação e reduzir o grau de complexidade na quantização/desquantização.
[074]A Figura 4 é um fluxograma que ilustra esquematicamente um método de codificação de imagem de acordo com a presente invenção.
[075]Com relação à Figura 4, o codificador determina a informação sobre o tamanho da unidade de transformação de uma sequência atual ou imagem e codifica a informação na etapa S410.
[076]A informação sobre o tamanho da unidade de transformação significa ao menos um de um tamanho mínimo e um tamanho máximo da unidade de transformação. O codificador pode determinar um tamanho mínimo e um tamanho máximo da unidade de transformação quando codificando uma imagem.
[077]Por exemplo, o codificador pode determinar um tamanho mínimo de uma unidade de transformação quadrada como um bloco 4x4 ou pode determinar um tamanho máximo da unidade de transformação quadrada como um bloco 32x32. Ademais, o codificador pode determinar um tamanho mínimo e um tamanho máximo de uma unidade de transformação quadrada como um bloco 4x4 e um bloco 32x32, respectivamente. O codificador pode executar a codificação de acordo com o tamanho mínimo e o tamanho máximo da unidade de transformação quadrada.
[078]O codificador pode executar codificação por entropia na informação determinada sobre o tamanho da unidade de transformação para um fluxo de bits. Por exemplo, o codificador pode codificar a informação determinada sobre o tamanho da unidade de transformação em um conjunto de parâmetros dentro de um fluxo de bits.
[079]Como descrito acima, a informação sobre o tamanho de uma unidade de transformação refere-se à informação sobre ao menos um de um tamanho mínimo e um tamanho máximo da unidade de transformação. Consequentemente, o codificador pode codificar a informação sobre um tamanho mínimo e um tamanho máximo da unidade de transformação no fluxo de bits como a informação sobre o tamanho da unidade de transformação. Aqui, o tamanho máximo da unidade de transformação pode ser especificado usando um valor de diferença entre o tamanho máximo da transformação e o tamanho mínimo da transformação.
[080]A Tabela 1 mostra esquematicamente um exemplo de informação sobre o tamanho de uma unidade de transformação que foi codificada por entropia no conjunto de parâmetros de sequência de um fluxo de bits. <Tabela 1>
Figure img0001
[081]Como no elemento de sintaxe ilustrado na Tabela 1, após calcular Log2MinTrafoSize aplicando uma função Log2 a um tamanho horizontal ou vertical mínimo de uma unidade de transformação quadrada, o codificador pode especificar um valor obtido subtraindo-se 2 de Log2MinTrafoSize usando log2_min_transform_block_size_minus2. Ademais, após calcular Log2MaxTrafoSize aplicando uma função Log2 a um tamanho horizontal ou vertical máximo de uma unidade de transformação quadrada, o codificador pode especificar um valor de diferença entre Log2MaxTrafoSize e Log2MinTrafoSize usando log2_diff_max_min_transform_block_size. O codificador pode codificar log2_min_transform_block_size_minus2 e log2_diff_max_min_transform_block_size, isto é, um elemento de sintaxe, em um fluxo de bits e enviar o fluxo de bits resultante para o decodificador. Em outras palavras, o codificador pode codificar valores de indicador por log2_min_transform_block_size_minus2 e log2_diff_max_min_transform_block_size e enviar os valores codificados na forma de um fluxo de bits.
[082]O codificador pode codificar informação sobre uma matriz de quantização na etapa S420. O codificador codifica informação sobre uma matriz de quantização, incluindo um ou mais de (1) informação sobre se a matriz de quantização foi usada ou não, (2) informação sobre se a matriz de quantização está presente ou não, (3) informação sobre se a matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, (4) um método de codificação preditiva e o tipo da matriz de quantização, (5) um ID de matriz de quantização de referência (identificador), e (6) um valor de diferença entre o valor de coeficiente de uma matriz de quantização a ser codificada dentro da matriz de quantização.
[083]Aqui, o codificador pode codificar a informação sobre a matriz de quantização com base na informação sobre o tamanho da unidade de transformação.
[084]Em seguida, um método para codificar informação sobre uma matriz de quantização é descrito em detalhes com relação às figuras e às seguintes tabelas.
[085]A informação sobre uma matriz de quantização indica um método determinado ou usado pelo codificador. Por exemplo, o codificador pode determinar se ou não usar uma matriz de quantização e pode codificar informação sobre se a matriz de quantização foi usada ou não em um conjunto de parâmetros. Consequentemente, a informação codificada sobre se a matriz de quantização foi usada ou não indica se a matriz de quantização determinada pelo codificador foi usada ou não.
[086]A Tabela 2 mostra um exemplo no qual a informação sobre se uma matriz de quantização foi usada ou não é codificada em um parâmetro de sequência. <Tabela 2>
Figure img0002
[087]Como na sintaxe da Tabela 2, o codificador pode codificar scaling_list_enabled_flag, isto é, a informação sobre se uma matriz de quantização foi usada ou não, em um conjunto de parâmetros de sequência e enviar a informação codificada para o decodificador. Quando um valor de scaling_list_enabled_flag é 1, ele pode indicar que a matriz de quantização é usada na desquantização/escalonamento de um coeficiente de transformação para todas as sequências. Quando um valor de scaling_list_enabled_flag é 0, ele pode indicar que a matriz de quantização não é usada na desquantização/escalonamento de um coeficiente de transformação. Aqui, a sintaxe pode significar um elemento de sintaxe.
[088]Após determinar se uma matriz de quantização está presente ou não, o codificador pode codificar a informação sobre se a matriz de quantização está presente ou não em um conjunto de parâmetros.
[089]A Tabela 3 mostra um exemplo no qual a informação sobre se uma matriz de quantização está presente ou não é codificada em um conjunto de parâmetros. <Tabela 3>
Figure img0003
[090]Como no exemplo de sintaxe da Tabela 3, o codificador pode codificar aps_scaling_list_data_present_flag, isto é, a informação sobre se uma matriz de quantização está presente ou não, em um conjunto de parâmetros. Na Tabela 3, um exemplo no qual a informação sobre se uma matriz de quantização está presente ou não é codificada em um conjunto de parâmetros de adaptação foi ilustrado, mas a presente invenção não está limitada a esse. Por exemplo, o codificador pode codificar informação sobre se uma matriz de quantização está presente ou não em outro conjunto de parâmetros.
[091]Na Tabela 3, quando um valor de aps_scaling_list_data_present_flag é 1, ele indica que a matriz de quantização está presente no conjunto de parâmetros de adaptação. Quando um valor de aps_scaling_list_data_present_flag é 0, ele indica que a matriz de quantização não está presente no conjunto de parâmetros de adaptação. Se um valor de scaling_list_enabled_flag é 1 e um valor de aps_scaling_list_data_present_flag é 0, pode significar que uma matriz padrão é usada quando a desquantização é executada. Ademais, a informação sobre se uma matriz de quantização está presente ou não pode estar presente em diferentes conjuntos de parâmetros. Por exemplo, se sps_scaling_list_data_present_flag indicativo de se uma matriz de quantização está presente ou não em uma sequência e pps_scaling_list_data_present_flag indicativo de se uma matriz de quantização está presente ou não em uma imagem são usados, quando um valor de sps_scaling_list_data_present_flag é 1 e um valor de pps_scaling_list_data_present_flag é 0, uma matriz de quantização correspondente à sequência pode ser usada quando quantização/desquantização são executadas. Isto é, se uma matriz de quantização é transmitida através de vários conjuntos de parâmetros e uma matriz de quantização não está presente em alguns conjuntos de parâmetros, uma matriz de quantização que está presente ou não em um conjunto de parâmetros ativos pode ser usada quando quantização/desquantização são executadas. O conteúdo acima pode também ser aplicado ao conteúdo no qual a informação sobre se uma matriz de quantização está presente ou não é codificada/decodificada, dentre as modalidades a serem descritas posteriormente.
[092]Após determinar se ou não codificar uma matriz de quantização e se ou não usar uma matriz padrão, o codificador pode codificar a informação sobre se a matriz de quantização foi codificada ou não e se a matriz padrão foi usada ou não em um conjunto de parâmetros.
[093]A Tabela 4 mostra um exemplo no qual a informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não é codificada em um conjunto de parâmetros. <Tabela 4>
Figure img0004
[094]Como no exemplo da Tabela 4, o codificador pode codificar use_default_scaling_list_flag, isto é, informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, em um conjunto de parâmetros de adaptação. Quando um valor de use_default_scaling_list_flag é 1, a matriz de quantização não é codificada e assim os valores de coeficientes de todas as matrizes de quantização são determinados como sendo os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de use_default_scaling_list_flag é 0, a matriz de quantização é codificada e uma matriz padrão definida no codificador e/ou no decodificador não é usada.
[095]A Tabela 4 ilustra um exemplo no qual use_default_scaling_list_flag é codificado em um conjunto de parâmetros de adaptação. Esse é somente um exemplo para conveniência de descrição. Em algumas modalidades, use_default_scaling_list_flag pode ser codificado em outro conjunto de parâmetros.
[096]A informação sobre uma matriz de quantização pode ser determinada levando em consideração o tamanho de uma unidade de transformação ou o tamanho de um bloco de transformação, modo de codificação, e um componente de cor. Ademais, a informação sobre uma matriz de quantização pode indicar se a informação correspondente é componente luma (Y, luma) ou um componente croma (Cb, Cr, croma).
[097]Por exemplo, o codificador pode determinar ao menos um dentre a codificação de uma matriz de quantização, se ou não usar uma matriz padrão, e um método de codificação preditiva usando SizeID, isto é, a informação correspondente ao tamanho de uma matriz de quantização, e MatrixID, isto é, a informação correspondente ao tipo da matriz de quantização. Aqui, SizeID pode ser interpretado como a informação sobre uma matriz de quantização correspondente ao tamanho de uma unidade de transformação ou informação sobre uma matriz de quantização correspondente ao tamanho de um bloco de transformação. Ademais, SizeID usado nesta especificação é idêntico ao sizeID e sizeId, e MatrixID é idêntico a matrixID e matrixId.
[098]Aqui, o decodificador pode usar uma tabela armazenada nele e/ou uma tabela armazenada no decodificador.
[099]A Tabela 5 mostra um exemplo de uma tabela que é usada para indicar o tamanho de um bloco de transformação ou o tamanho de uma matriz de quantização correspondente a um bloco de transformação. <Tabela 5>
Figure img0005
[0100]No exemplo da Tabela 5, o valor SizeID especifica o tamanho de uma unidade de transformação, o tamanho de um bloco de transformação, ou o tamanho de uma matriz de quantização.
[0101]A Tabela 6 mostra um exemplo de uma tabela para codificar o modo de um bloco no qual uma matriz de quantização é usada e o tipo de matriz de quantização mapeado para um componente de cor. <Tabela 6>
Figure img0006
Figure img0007
[0102]No exemplo da Tabela 6, o valor MatrixID pode indicar o modo de codificação usado em uma matriz de quantização e o tipo de matriz de quantização que especifica um componente de cor. Aqui, o modo de codificação pode significar o modo de predição.
[0103]As Tabelas 7 e 8 são exemplos de tabelas de matriz de quantização padrão que são usadas para especificar uma matriz de quantização padrão com base em SizeID e MatrixID determinados nas Tabelas 5 e 6. Aqui, cada um dos valores dentro das tabelas significa um valor especificado por ScalingList[SizeID][MatrixID][i]. <Tabela 7>
Figure img0008
<Tabela 8>
Figure img0009
[0104]A Tabela 7 refere-se a uma matriz de quantização padrão na qual um valor SizeID é 0 (isto é, um bloco 4x4), e a Tabela 8 refere-se à matriz de quantização padrão na qual os valores SizeID são 1 (isto é, um bloco 8x8), 2 (isto é, um bloco 16x16), e 3 (isto é, um bloco 32x32). Nas Tabelas 7 e 8, os valores SizeID e MatrixID são valores especificados nas Tabelas 5 e 6.
[0105]Nas Tabelas 7 e 8, ‘i’ especifica a localização de cada coeficiente dentro de uma matriz de quantização. No caso de uma matriz de quantização, por exemplo, no caso de uma matriz de quantização para um bloco 16x16 ou um bloco 32x32, os valores de matriz de quantização para todos os blocos 16x16 e os blocos 32x32 não são especificados, mas um coeficiente de matriz de quantização para somente um bloco 8x8 pode ser especificado e os coeficientes de matriz de quantização não especificados podem ser derivados com base no valor de bloco 8x8 e usados. A Tabela 8 mostra um exemplo no qual uma matriz de quantização padrão é especificada para cada bloco 8x8. Um coeficiente de matriz de quantização para um bloco 16x16 ou um bloco 32x32 pode ser interpolado e derivado a partir das matrizes de quantização armazenadas para cada bloco 8x8 ou pode ser derivado de uma forma específica. Se uma matriz de quantização de tamanho 16x16 ou 32x32 é derivada de uma matriz de quantização de tamanho 8x8 através de interpolação, um valor interpolado não é usado, mas um valor adicional pode ser usado como um coeficiente de matriz de quantização em uma localização DC.
[0106]Ademais, se uma matriz de quantização não é usada levando em consideração um tamanho mínimo e um tamanho máximo de uma unidade de transformação que estão disponíveis, uma matriz de quantização para uma unidade de transformação tendo todos os tamanhos precisa ser codificada. Nesse caso, a eficiência de codificação pode ser deteriorada, e o grau de complexidade de cálculo pode ser aumentado.
[0107]De modo a resolver os problemas, o codificador pode codificar informação sobre uma matriz de quantização levando em consideração o tamanho de uma unidade de transformação. Por exemplo, o codificador pode limitar o SizeID com base em um tamanho mínimo e um tamanho máximo, dentre partes de informação sobre o tamanho de uma unidade de transformação.
[0108]O codificador pode executar uma ou mais dentre a codificação de uma matriz de quantização, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva usando um SizeID limitado.
[0109]A Tabela 9 mostra um exemplo de uma estrutura de sintaxe que é usada quando a codificação de uma matriz de quantização é executada limitando SizeID. <Tabela 9>
Figure img0010
[0110]Como no exemplo da Tabela 9, o codificador pode limitar SizeID com base em um tamanho mínimo e um tamanho máximo, dentre partes de informação sobre o tamanho de uma unidade de transformação, e executar uma ou mais dentre a codificação de uma matriz de quantização, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva em tamanhos de unidade de transformação específicos.
[0111]Por exemplo, quando um valor de Log2MinTrafoSize é 3 e um valor de Log2MaxTrafoSize de 4, o codificador pode executar uma ou mais dentre a codificação de uma matriz de quantização correspondente a uma unidade de transformação 8x8 em uma unidade de transformação 16x16, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva.
[0112]Ademais, no exemplo da Tabela 9, use_default_scaling_list_flag pode não ser codificado.
[0113]Ademais, o codificador pode restringir SizeID com base em um valor de diferença entre um tamanho máximo e um tamanho mínimo, dentre partes de informação sobre o tamanho de uma unidade de transformação, e executar uma ou mais dentre a codificação de uma matriz de quantização, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva.
[0114]A Tabela 10 mostra esquematicamente um exemplo de uma estrutura de sintaxe que é usada para codificar partes de informação sobre uma matriz de quantização restringindo SizeID com base em um valor de diferença entre um tamanho máximo e um valor mínimo, dentre partes de informação sobre o tamanho de uma unidade de transformação. <Tabela 10>
Figure img0011
[0115]No exemplo de sintaxe da Tabela 19, SizeID é restringido com base em um valor de diferença entre um tamanho máximo e um valor mínimo, dentre partes de informação sobre o tamanho de uma unidade de transformação. O codificador pode restringir SizeID com base em um valor de diferença entre um tamanho máximo e um valor mínimo, dentre partes de informação sobre o tamanho de uma unidade de transformação, e pode codificar uma ou mais informações sobre uma matriz de quantização, informação sobre se uma matriz padrão foi usada ou não, e informação sobre o tipo de método de codificação preditiva somente em uma faixa do tamanho de uma unidade de transformação específica com base no SizeID restrito.
[0116]No exemplo da Tabela 10, quando um valor de Log2MinTrafoSize é 3 e um valor de Log2MaxTrafoSize é 4, uma ou mais dentre a codificação de uma matriz de quantização correspondente a uma unidade de transformação 8x8 para uma unidade de transformação 16x16, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva pode ser executada.
[0117]Aqui, um valor de diferença entre Log2MaxTrafoSize e Log2MinTrafoSize é um valor de diferença entre um tamanho máximo e um valor mínimo de uma unidade de transformação e pode ser idêntico a log2_diff_max_min_transform_block_size. Ademais, Log2MinTrafoSize-2 pode ser idêntico a log2_min_transform_block_size_minus2.
[0118]No exemplo da Tabela 10, use_default_scaling_list_flag pode não ser codificado.
[0119]Ademais, se uma matriz padrão e uma matriz não padrão não são misturadas e usadas de acordo com o tamanho de cada bloco (ou unidade) de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia, o grau de liberdade quando o codificador seleciona uma matriz de quantização é reduzido. Por exemplo, de modo a usar uma matriz padrão para um bloco de transformação tendo um tamanho específico dentro de uma fatia e uma matriz não padrão para outro bloco de transformação tendo um tamanho específico dentro da fatia, as matrizes padrão precisam ser codificadas e transmitidas para o decodificador. Como um resultado, a eficiência de codificação é deteriorada.
[0120]De modo a misturar e usar uma matriz padrão e uma matriz não padrão de acordo com cada tamanho de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem ou uma fatia, o codificador pode codificar informação sobre se uma matriz de quantização foi codificada ou não e a informação sobre se uma matriz padrão foi usada ou não em um conjunto de parâmetros com base no SizeID.
[0121]A Tabela 11 mostra um exemplo de uma estrutura de sintaxe que pode ser usada quando a informação sobre uma matriz de quantização é codificada com base em SizeID. <Tabela 11>
Figure img0012
[0122]Como no exemplo da Tabela 11, o codificador pode codificar sid_use_default_scaling_list_flag[SizeID][MatrixID], isto é, informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, em um conjunto de parâmetros de adaptação baseado em SizeID. MatrixID indica o tipo de matriz de quantização específica como na Tabela 6.
[0123]Quando um valor de sid_use_default_scaling_list_flag[SizeID][MatrixID] é 1, uma matriz de quantização correspondente a SizeID não é codificada e os valores de coeficiente de uma matriz de quantização correspondente a SizeID podem ser determinados como os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de sid_use_default_scaling_list_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a SizeID é codificada, e uma matriz padrão definida no codificador e/ou no decodificador pode não ser usada em uma matriz de quantização correspondente a SizeID.
[0124]No exemplo da Tabela 11, use_default_scaling_list_flag pode não ser codificada.
[0125]Ademais, o codificador pode codificar informação sobre se uma matriz de quantização foi codificado ou não e se uma matriz padrão foi usada ou não em um conjunto de parâmetros com base em MatrixID.
[0126]A Tabela 12 mostra esquematicamente um exemplo de uma estrutura de sintaxe que pode ser usada quando informação sobre uma matriz de quantização é codificada usando MatrixID. <Tabela 12>
Figure img0013
[0127]Como no exemplo da Tabela 12, o codificador pode codificar mid_use_default_scaling_list_flag[SizeID][MatrixID], isto é, a informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, em um conjunto de parâmetros de adaptação com base em MatrixID.
[0128]Quando um valor de mid_use_default_scaling_list_flag[SizeID][MatrixID] é 1, uma matriz de quantização correspondente a MatrixID não é codificada e os valores de coeficiente de uma matriz de quantização correspondente a MatrixID podem ser determinados como os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de mid_use_default_scaling_list_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a MatrizID é codificada e uma matriz padrão definida no codificador e/ou no decodificador não é usada como uma matriz de quantização correspondente a MatrixID.
[0129]No exemplo da Tabela 12, use_default_scaling_list_flag pode não ser codificado.
[0130]Ademais, o codificador pode codificar informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não em um conjunto de parâmetros com base em SizeID e MatrixID.
[0131]A Tabela 13 mostra esquematicamente um exemplo de uma estrutura de sintaxe que pode ser usada quando informação sobre uma matriz de quantização é codificada usando SizeID e MatrixID. <Tabela 13>
Figure img0014
[0132]Como no exemplo da Tabela 13, o codificador pode codificar sid_mid_use_default_scaling_list_flag[SizeID][MatrixID], isto é, informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, em um conjunto de parâmetros de adaptação com base em SizeID e MatrixID.
[0133]Quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 1, uma matriz de quantização correspondente a SizeID e MatrixID não é codificada e os valores de coeficiente de uma matriz de quantização correspondentes a SizeID e MatrixID podem ser determinados como sendo os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador.
[0134]Quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a SizeID e MatrixID é codificada e uma matriz padrão definida no codificador e/ou no decodificador não é usada como uma matriz de quantização correspondente a SizeID e MatrixID.
[0135]No exemplo da Tabela 13, use_default_scaling_list_flag pode não ser codificado.
[0136]Ademais, diferente do exemplo da Tabela 13, o codificador pode codificar informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou nãos em um parâmetro baseado em SizeID e MatrixID. O codificador pode restringir SizeID com base em um tamanho mínimo e um tamanho máximo, dentre partes de informação sobre o tamanho de uma unidade de transformação, e executar uma ou mais dentre a codificação de uma matriz de quantização, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva com base no SizeID restrito.
[0137]A Tabela 14 mostra esquematicamente um exemplo de outra estrutura de sintaxe que pode ser usada quando a informação sobre a matriz de quantização é codificada usando SizeID e MatrixID. <Tabela 14>
Figure img0015
[0138]No exemplo da Tabela 14, use_default_scaling_list_flag pode não ser codificado.
[0139]Ademais, o codificador pode restringir SizeID com base em um valor de diferença entre um tamanho máximo e um valor mínimo, dentre partes de informação sobre uma unidade de transformação, e executar uma ou mais dentre a codificação de uma matriz de quantização, a codificação de informação sobre se uma matriz padrão foi usada ou não, e a codificação de informação sobre o tipo de método de codificação preditiva.
[0140]A Tabela 15 mostra esquematicamente um exemplo de ainda outra estrutura de sintaxe que pode ser usada quando a informação sobre uma matriz de quantização é codificada usando SizeID e MatrixID. <Tabela 15>
Figure img0016
[0141]No exemplo da Tabela 15, um valor de diferença entre Log2MaxTrafoSize, especificando um tamanho máximo de uma unidade de transformação, e Log2MinTrafoSize, especificando um tamanho mínimo da unidade de transformação, é um valor de diferença entre um tamanho máximo e um valor mínimo da unidade de transformação e é idêntico a log2_diff_max_min_transform_block_size. Log2MinTrafoSize-2 é idêntico a log2_min_transform_block_size_minus2.
[0142]No exemplo da Tabela 15, o codificador pode codificar informação sobre uma matriz de quantização que foi codificada ou não e se uma matriz padrão foi usada ou não em um parâmetro com base em SizeID e MatrixID restrito por Log2MaxTrafoSize-Log2MinTrafoSize+1.
[0143]No exemplo da Tabela 15, use_default_scaling_list_flag pode não ser codificado.
[0144]Ademais, a informação sobre se ou não a informação sobre uma matriz de quantização está presente em um conjunto de parâmetros a ser codificado ou se ou não a informação sobre uma matriz de quantização será atualizada pode ser codificada em um conjunto de parâmetros e usada na codificação/decodificação.
[0145]A Tabela 16 mostra esquematicamente um exemplo de uma estrutura de sintaxe que pode ser usada quando a informação sobre uma matriz de quantização está presente ou não é codificada. <Tabela 16>
Figure img0017
[0146]No exemplo da Tabela 16, o codificador pode especificar se ou não a informação sobre uma matriz de quantização está presente em um parâmetro a ser codificado usando um elemento de sintaxe scaling_list_update_flag[SizeID][MatrixID].
[0147]Por exemplo, quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 1, pode indicar que a informação sobre uma matriz de quantização correspondente a SizeID e MatrixID está presente. Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 1, pode indicar que a informação sobre uma matriz de quantização, correspondente a SizeID e MatrixID e previamente codificada, é atualizada em informação sobre uma matriz de quantização correspondente a SizeID e MatrixID dentro de um conjunto de parâmetros a ser codificado. A atualização pode significar que a informação sobre uma matriz de quantização foi previamente codificada é substituída por informação sobre uma matriz de quantização dentro de um conjunto de parâmetros a ser codificado.
[0148]Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, pode indicar que a informação sobre uma matriz de quantização correspondente a SizeID e MatrixID não está presente. Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, pode indicar que a informação sobre uma matriz de codificação não é atualizada.
[0149]Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, pode indicar que a informação sobre uma matriz de quantização correspondente a SizeID e MatrixID não está presente. Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, pode indicar que a informação sobre uma matriz de codificação não é atualizada.
[0150]Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, o decodificador não sabe que tem que executar a desquantização em um coeficiente de transformação quantizado correspondente a SizeID e MatrixID usando informação sobre qual matriz de quantização porque informação sobre uma matriz de quantização correspondente a SizeID e MatrixID não está presente em um conjunto de parâmetros e informação sobre a matriz de quantização que não foi codificada. Consequentemente, quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a SizeID e MatrixID pode significar que uma matriz padrão é usada ou que uma matriz de quantização não é usada porque a informação sobre a matriz de quantização correspondente a SizeID e MatrixID não está presente.
[0151]No exemplo da Tabela 16, quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 1 porque scaling_list_update_flag[SizeID][MatrixID] é codificado com base em SizeID e MatrixID, o codificador pode codificar uma ou mais dentre informação sobre uma matriz de quantização, informação sobre se uma matriz padrão foi usada ou não, e informação sobre o tipo de método de codificação preditiva.
[0152]Quando um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, o codificador não codifica uma ou mais dentre informação sobre uma matriz de quantização, informação sobre se uma matriz padrão foi usada ou não, e informação sobre o tipo de método de codificação preditiva não são codificadas. Isto é, o codificador pode não codificar uma matriz de quantização desnecessária usando scaling_list_update_flag[SizeID][MatrixID].
[0153]Como uma matriz padrão e uma matriz não padrão não podem ser misturadas e usadas para cada tamanho de transformação ou o tipo de cada matriz de quantização dentro de uma sequência, uma imagem ou uma fatia usando somente scaling_list_update_flag[SizeID][MatrixID], há uma desvantagem no fato de que o grau de liberdade quando um codificador seleciona uma matriz de quantização é baixo.
[0154]Consequentemente, o codificador pode codificar sid_mid_use_default_scaling_list_flag[SizeID][MatrixID], isto é, a informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não, em um conjunto de parâmetros com base em SizeID e MatrixID.
[0155]Por exemplo, no exemplo da Tabela 16, quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 1, uma matriz de quantização correspondente a SizeID e MatrixID não é codificada e os valores de coeficiente da matriz de quantização correspondentes a SizeID e MatrixID podem ser determinados como sendo os mesmos dos valores de coeficiente de matriz padrão definidos no codificador e/ou no decodificador. Quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a SizeID e MatrixID é codificada e uma matriz padrão definida no codificador e/ou no decodificador não é usada como uma matriz de quantização correspondente a SizeID e MatrixID.
[0156]No exemplo da Tabela 16, use_default_scaling_list_flag pode não ser codificado.
[0157]Ademais, o codificador pode codificar informação sobre se uma matriz de quantização foi codificada ou não e se uma matriz padrão foi usada ou não em um conjunto de parâmetros com base em SizeID e MatrixID. Ademais, o codificador pode usar scaling_list_update_flag[SizeID][MatrixID], isto é, informação indicando se ou não a informação sobre uma matriz de quantização será atualizada em informação sobre uma matriz de quantização, correspondente a SizeID e MatrixID, dentro de um parâmetro a ser codificado.
[0158]A Tabela 17 mostra esquematicamente um exemplo de uma estrutura de sintaxe que pode ser usada quando a informação sobre uma matriz de quantização é codificada com base em um SizeID e MatrixID como descrito acima. <Tabela 17>
Figure img0018
[0159]No exemplo da Tabela 17, quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 0 e um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, uma matriz de quantização correspondente a SizeID e MatrixID é codificada. Uma matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrixID, não é atualizada em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser codificado, e uma matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrixID codificados, é usada sem alteração.
[0160]Ademais, quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 0 e um valor de scaling_list_update_flag[SizeID][MatrixID] é 1, uma matriz de quantização correspondente a SizeID e MatrixID é codificada e uma matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrixID, é atualizada em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser codificado.
[0161]Ademais, quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 1 e um valor de scaling_list_update_flag[SizeID][MatrixID] é 0, uma matriz de quantização corresponsente a SizeID e MatrixID não é codificada e os valores de coeficiente de uma matriz de quantização são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador. Uma matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrixID, não é atualizada em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser codificado, e o codificador e o decodificador usam a matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrixID.
[0162]Ademais, quando um valor de sid_mid_use_default_scaling_list_flag[SizeID][MatrixID] é 1 e um valor de scaling_list_update_flag[SizeID][MatrixID] é também 1, uma matriz de quantização correspondente a SizeID e MatrixID não é codificada e os valores de coeficiente de uma matriz de quantização são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador. Uma matriz de quantização que foi previamente codificada, correspondente a SizeID e MatrizID, é atualizada em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser codificado.
[0163]No exemplo da Tabela 17, use_default_scaling_list_flag pode não ser codificado.
[0164]Ademais, após determinar o tipo de método de codificação preditiva de uma matriz de quantização, o codificador pode codificar informação sobre o método de codificação preditiva de uma matriz de quantização em um conjunto de parâmetros.
[0165]As Tabelas 18 e 19 mostram esquematicamente exemplos de sintaxes que podem ser usadas quando um método de codificação preditiva de uma matriz de quantização codificada em um conjunto de parâmetros. <Tabela 18>
Figure img0019
<Tabela 19>
Figure img0020
[0166]Como no exemplo da Tabela 18, o codificador pode codificar pred_mode_flag, isto é, informação sobre um método de codificação preditiva de uma matriz de quantização, em um conjunto de parâmetros de adaptação. Scaling_list_pred_mode_flag a ser descrito posteriormente nesta especificação pode ser interpretado como tendo o mesmo significado de pred_mode_flag.
[0167]Por exemplo, no exemplo da Tabela 18, quando um valor de pred_mode_flag é 1, o codificador pode codificar uma matriz de quantização de acordo com um método de Modulação de Código de Pulso Diferencial (DPCM) e um método de codificação de exponencial de Golomb. Quando um valor de pred_mode_flag é 0, o codificador pode determinar os valores de coeficiente de matriz de quantização a ser codificada de modo que tenham os mesmos valores dos valores de coeficiente da matriz de quantização previamente codificada. Aqui, os valores de coeficiente das matrizes de quantização e os valores de coeficiente das matrizes de quantização previamente codificadas podem ser valores dentro de matrizes de quantização diferentes.
[0168]Se um valor de pred_mode_flag é 0, o codificador pode codificar informação sobre o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada em um conjunto de parâmetros.
[0169]Consequentemente, como no exemplo da Tabela 18, o codificador pode codificar pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, em um conjunto de parâmetros de adaptação.
[0170]Scaling_list_pred_matrix_id_delta a ser descrito nesta especificação pode ser interpretado como tendo o mesmo significado de pred_matrix_id_delta. Aqui, o codificador e o decodificador pode determinar um valor de RefMatrixID, indicando a matriz de quantização de referência de uma matriz de quantização a ser codificada, usando pred_matrix_id_delta e Equação 1. <Equação 1> RefMatrixID = MatrixID - (1 + pred_matrix_id_delta)
[0171]Se um método para predição e codificação de uma matriz de quantização é um método para codificar uma matriz de quantização de acordo com os métodos DPCM e de codificação de exponencial de Golomb, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o valor de coeficiente da matriz de quantização previamente codificada pode ser um valor de coeficiente dentro da matriz de quantização a ser codificada. Isto é, o valor de coeficiente da matriz de quantização previamente codificada e o valor de coeficiente da matriz de quantização a ser codificada podem ser valores dentro da mesma matriz de quantização.
[0172]Consequentemente, como no exemplo da Tabela 19, o codificador pode codificar delta_coef, isto é, um valor de diferença entre o valor de coeficiente da matriz de quantização previamente codificada e o valor de coeficiente da matriz de quantização a ser codificada, em um conjunto de parâmetros de adaptação. Delta_coef a ser descrito posteriormente nesta especificação pode ser interpretado como tendo o mesmo significado como scaling_list_delta_coef.
[0173]O codificador pode misturar e usar uma matriz de quantização padrão e uma matriz de quantização não padrão dentro de uma sequência, uma imagem ou uma fatia usando o seguinte método e pode impedir que uma matriz de quantização desnecessária seja transmitida.
[0174]Se um método para predição e codificação de uma matriz de quantização é um método de determinar uma matriz padrão de modo que a mesma seja idêntica a uma matriz de quantização que já foi incluída no codificador e previamente codificada (pred_mode_flag = 0), o codificador pode codificar informação sobre se uma matriz padrão foi usada ou não em um conjunto de parâmetros usando o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada.
[0175]Por exemplo, como no exemplo da Tabela 18, o codificador pode codificar pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, em um conjunto de parâmetros. Aqui, o codificador e o decodificador podem determinar RefMatrixID indicativo da matriz de quantização de referência da matriz de quantização a ser codificada ou a matriz padrão usando pred_matrix_id_delta e Equação 2 e determinar se ou não usar a matriz padrão. <Equação 2> RefMatrixID = MatrixID - pred_matrix_id_delta
[0176]Na Equação 2, se um valor de RefMatrixID é idêntico ao valor MatrixID, os valores de coeficiente de uma matriz de quantização correspondente a SizeID e RefMatrixID são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador. Aqui, a matriz padrão significa uma matriz padrão especificada por SizeID e RefMatrixID.
[0177]Ademais, quando um valor de pred_matrix_id_delta é 0, um valor de RefMatrixID se torna idêntico a um valor MatrixID. Se um valor de RefMatrixID não é idêntico a um valor MatrixID, o codificador pode determinar uma matriz de quantização correspondente a RefMatrixID como a matriz de quantização de referência de uma matriz de quantização a ser codificada. Nesse caso, o codificador pode determinar os valores de coeficiente da matriz de quantização a ser codificada se modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência.
[0178]Se o tamanho de uma matriz de quantização correspondente a SizeID está incluído em um tamanho mínimo e um tamanho máximo de uma unidade de transformação que estão disponíveis pelo decodificador, a matriz de quantização de referência de uma matriz de quantização a ser codificada e se ou não usar a matriz padrão podem ser determinados usando o método acima. Se o tamanho de uma matriz de quantização correspondente a SizeID não está incluído em um tamanho mínimo e um tamanho máximo de uma unidade de transformação que estão disponíveis pelo decodificador, um método para codificar uma matriz de quantização correspondente a SizeID pode não ser determinada como sendo a mesma de uma matriz padrão. Os processos de determinação podem ser executados quando codificando uma ou mais de informação sobre uma matriz de quantização, informação sobre se uma matriz padrão foi usada ou não, e informação sobre o tipo de método de codificação preditiva com base no SizeID e um valor de diferença entre um tamanho máximo de uma unidade de transformação e um tamanho mínimo de uma unidade de transformação.
[0179]Após determinar se ou não usar uma matriz de quantização, o codificador pode codificar informação sobre se a matriz de quantização foi usada ou não em um conjunto de parâmetros.
[0180]A Tabela 20 mostra esquematicamente um exemplo no qual a informação sobre se uma matriz de quantização foi usada ou não é codificada em um conjunto de parâmetros. <Tabela 20>
Figure img0021
[0181]Como no exemplo da Tabela 20, o codificador pode codificar scaling_list_enable_flag, isto é, informação sobre se uma matriz de quantização foi usada ou não, em m conjunto de parâmetros.
[0182]No exemplo da Tabela 20, quando um valor de scaling_list_enable_flag é 1, uma matriz de quantização, tal como uma matriz padrão ou uma matriz não padrão, pode ser usado na quantização/desquantização. Quando um valor de scaling_list_enable_flag é 0, a matriz de quantização não é usada na quantização/desquantização ou todos os valores de coeficiente podem usar a mesma matriz de quantização. Aqui, todos os valores de coeficiente podem ser 16.
[0183]Ademais, se um método de codificação preditiva de uma matriz de quantização é um método de codificar a matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o valor de coeficiente da matriz de quantização previamente codificada pode ser um valor de coeficiente dentro da matriz de quantização a ser codificada. Isto é, o valor de coeficiente da matriz de quantização previamente codificada e o valor de coeficiente da matriz de quantização a ser codificada podem ser valores dentro da mesma matriz de quantização.
[0184]A Tabela 21 mostra esquematicamente um exemplo de uma estrutura de sintaxe que pode ser usada quando informação sobre uma matriz de quantização é codificada usando um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada e o valor de coeficiente de uma matriz de quantização a ser codificada. <Tabela 21>
Figure img0022
[0185]No exemplo da Tabela 21, delta_coef, isto é, um valor de diferença entre o valor de coeficiente da matriz de quantização que foi previamente codificada e o valor de coeficiente da matriz de quantização a ser codificada, é codificado no conjunto de parâmetros.
[0186]No exemplo da Tabela 21, o valor de coeficiente da matriz de quantização pode ser calculado usando a Equação 3. <Equação 3> Nextcoef = (nextcoef + delta_coef + 256) % 256
[0187]Se nextcoef, isto é, o valor de coeficiente da matriz de quantização calculado usando a Equação 3 é idêntico a (1) um valor específico e é (2) o primeiro valor da matriz de quantização, os valores de coeficiente da matriz de quantização podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador.
[0188]Isto é, se um valor de nextcoef é idêntico a (1) um valor específico e é (2) o primeiro valor de uma matriz de quantização, a matriz de quantização correspondente pode ser usada como uma matriz padrão.
[0189]Aqui, o valor específico pode ser 0. Ademais, a matriz padrão pode ser uma matriz padrão correspondente a SizeID e MatrixID. Consequentemente, se nextcoef, isto é, o valor de coeficiente de uma matriz de quantização, é idêntico a 0 e o valor de coeficiente de uma matriz de quantização corresponde ao primeiro valor da matriz de quantização, a codificação de um valor de diferença entre a matriz de quantização correspondente e a matriz de quantização pode ser interrompida.
[0190]Se um método de codificação preditiva de uma matriz de quantização é um método de codificação de uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificado e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o valor de coeficiente da matriz de quantização que foi previamente codificada pode ser um valor de coeficiente dentro da matriz de quantização a ser codificada. Isto é, o valor de coeficiente da matriz de quantização que foi previamente codificado e o valor de coeficiente da matriz de quantização a ser codificada podem ser valores dentro da mesma matriz de quantização.
[0191]A Tabela 22 mostra esquematicamente um exemplo de uma estrutura de sintaxe quando uma diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada e o valor de coeficiente de uma matriz de quantização a ser codificada é usada. <Tabela 22>
Figure img0023
[0192]No exemplo da Tabela 22, delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada e o valor de coeficiente de uma matriz de quantização a ser codificada, é codificado em um conjunto de parâmetros. No exemplo da Tabela 22, se nextcoef, isto é, o valor de coeficiente de uma matriz de quantização calculada usando a Equação 3, é idêntico a um valor específico e é o primeiro valor da matriz de quantização, os valores de coeficiente da matriz de quantização podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador.
[0193]Isto é, se um valor de nextcoef é idêntico a (1) um valor específico e é (2) o primeiro valor de uma matriz de quantização, a matriz de quantização pode ser usada como uma matriz padrão. Aqui, o valor específico pode ser 0, e o valor de coeficiente da matriz de quantização calculado usando a Equação 3 pode ser o valor de coeficiente de uma matriz de quantização tendo um tamanho de matriz de quantização ou um tamanho de transformação de 4x4 e 8x8.
[0194]Ademais, o primeiro valor da matriz de quantização pode ser um valor que usa scaling_list_dc_coef_minus8, e o valor específico pode ser um valor correspondente a scaling_list_dc_coef_minus8+8.
[0195]Aqui, scaling_list_dc_coef_minus8 pode significar o primeiro valor de uma matriz de quantização tendo um tamanho 16x16 ou uma matriz de quantização tendo um tamanho 32x32. Isto é, scaling_list_dc_coef_minus8 pode significar o valor de coeficiente de uma matriz de quantização para um coeficiente de matriz DC e pode significar um coeficiente de matriz DC. Nesta especificação, um coeficiente de matriz DC está presente dentro de uma matriz de quantização usada quando a desquantização é executada, e o coeficiente de matriz DC pode significar um coeficiente de matriz de quantização para um coeficiente de transformação DC dentro de um bloco de transformação.
[0196]Por exemplo, quando sizeID é 2, scaling_list_dc_coef_minus8[sizeID- 2][matrixID] pode significar o valor de coeficiente de uma matriz de quantização para um coeficiente de matriz DC em uma matriz de quantização tendo um tamanho 16x16 ou um tamanho de transformação. Quando SizeID é 3, scaling_list_dc_coef_minus8[sizeID-2][matrixID] pode significar o valor de coeficiente de uma matriz de quantização para um coeficiente de matriz DC em uma matriz de quantização tendo um tamanho 32x32 ou um tamanho de transformação.
[0197]Ademais, a matriz padrão mencionada acima pode significar uma matriz padrão correspondente a SizeID e MatrixID. Como descrito acima, se o valor de coeficiente de uma matriz de quantização, nextcoef, é idêntico a 0 e é o primeiro valor da matriz de quantização, a codificação de uma diferença entre a matriz de quantização correspondente e a matriz de quantização pode ser interrompida.
[0198]Se esse método é usado, se ou não codificar scaling_list_dc_coef_minus8, isto é, o valor de coeficiente de uma matriz de quantização para um coeficiente de matriz DC, e a codificação de informação sobre se uma matriz padrão foi usada ou não pode ser diferentemente executada de acordo com o tamanho de uma matriz de quantização ou um tamanho de transformação.
[0199]Ademais, os métodos de codificação/decodificação de uma matriz de quantização para determinar se ou não usar uma matriz padrão usando o valor de coeficiente de uma matriz de quantização são desvantajosos pelo fato de que o grau de complexidade em um processo de codificação/decodificação, o valor de coeficiente de uma matriz de quantização é aumentado.
[0200]O seguinte método fornece um método para determinar se ou não usar uma matriz padrão usando um ID de matriz de quantização de referência na codificação/decodificação de imagem. Consequentemente, se o seguinte método é usado, o grau de complexidade de cálculo pode ser reduzido quando codificando/decodificando uma matriz de quantização.
[0201]As Tabelas 23 e 24 mostram esquematicamente exemplos de estruturas de sintaxe que podem ser usadas quando um ID de matriz de quantização de referência é usado. <Tabela 23>
Figure img0024
<Tabela 24>
Figure img0025
[0202]Primeiro, o codificador pode codificar informação sobre se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0203]Como no exemplo da Tabela 23, o codificador pode codificar scaling_list_present_flag, isto é, informação sobre se uma matriz de quantização está presente ou não dentro de um fluxo de bits, em um conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e as matrizes de quantização são determinadas como uma matriz de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0204]O codificador pode determinar o tipo de método de codificação preditiva para uma matriz de quantização e informação de código sobre um método determinado de predição e codificação de uma matriz de quantização em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0205]Como no exemplo da Tabela 23, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação especificando um método de codificação preditiva de uma matriz de quantização, em um conjunto de parâmetros. Por exemplo, se o valor de coeficiente de uma matriz de quantização é codificado de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização de modo a predizer e codificar a matriz de quantização, o codificador codifica um valor de scaling_list_pred_mode_flag como 1. Ademais, se uma matriz de quantização de referência e uma matriz de quantização a serem codificadas são determinadas como tendo os valores idênticos ou os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0.
[0206]Aqui, determinar as matrizes ou os valores de coeficiente de modo que eles tenham os valores idênticos pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica aos valores de coeficiente de uma matriz de quantização a ser codificada é usado.
[0207]Se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada e a informação sobre se uma matriz padrão foi usada ou não em um conjunto de parâmetros. Aqui, o conjunto de parâmetros pode ser um conjunto de parâmetros de adaptação.
[0208]Como no exemplo da Tabela 23, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, em um conjunto de parâmetros.
[0209]Aqui, o codificador pode determinar um valor de scaling_list_pred_matrix_id_delta, isto é, um ID de matriz de quantização, usando matrixID indicativo da matriz de quantização a ser codificada, RefMatrixID indicativo da matriz de quantização de referência ou a matriz padrão, e a Equação 4. <Equação 4> scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
[0210]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, o codificador torna um valor de RefMatrixID idêntico a um valor de matrixID codificando um valor de scaling_list_pred_matrix_id_delta como 0. Aqui, a matriz padrão pode significar uma matriz padrão correspondente a sizeID e matrixID.
[0211]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência (isto é, determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização que foi previamente codificada), o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como um valor diferente de 0 de modo que um valor de RefMatrixID não é idêntico a um valor de matrixID. Aqui, um valor de scaling_list_pred_matrix_id_delta pode ser um inteiro positivo.
[0212]Se um método de codificação preditiva de uma matriz de quantização é um método de codificação de uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0213]Como no exemplo da Tabela 24, se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, em um conjunto de parâmetros.
[0214]Como no exemplo da Tabela 24, o codificador pode codificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada, em um conjunto de parâmetros. Nas Tabelas 23 e 24, exemplos nos quais a informação sobre uma matriz de quantização é codificada em um conjunto de parâmetros de adaptação foram ilustrados, mas a presente invenção não está limitada a esses. Por exemplo, o codificador pode codificar informação sobre uma matriz de quantização em outro conjunto de parâmetros (isto é, um conjunto de parâmetros incluindo ao menos um de um conjunto de parâmetros de sequência e um conjunto de parâmetros de imagem).
[0215]Como descrito acima, os métodos de codificação/decodificação de matriz de quantização convencionais são desvantajosos pelo fato de que a eficiência de codificação é deteriorada porque informação desnecessária é codificada/decodificada quando predizendo a matriz de quantização.
[0216]Na presente invenção, entretanto, a eficiência de codificação pode ser melhorada quando codificando/decodificando uma matriz de quantização executando diferentemente a codificação/decodificação da matriz de quantização dependendo se uma matriz de quantização de referência está presente ou não.
[0217]As Tabelas 25 e 26 mostram esquematicamente exemplos de estruturas de sintaxe que podem ser usadas quando codificação/decodificação de uma matriz de quantização são diferentemente executadas dependendo se uma matriz de quantização de referência está presente ou não. <Tabela 25>
Figure img0026
<Tabela 26>
Figure img0027
[0218]Primeiro, o codificador pode codificar informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0219]Como no exemplo da Tabela 25, o codificador pode codificar scaling_list_present_flag, isto é, informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, em um conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0220]Após determinar o tipo de método de codificação preditiva de uma matriz de quantização, se um valor de matrixID é maior do que 0, o codificador pode codificar informação sobre o método de codificação preditiva de uma matriz de quantização em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0221]Como no exemplo da Tabela 25, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação especificando um método de codificação preditiva de uma matriz de quantização, em um conjunto de parâmetros somente quando um valor de matrixID é maior do que 0. Se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb por varredura da matriz de quantização de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador codifica um valor de scaling_list_pred_mode_flag como 1. Ademais, se uma matriz de quantização de referência é determinada como tendo os mesmos valores de uma matriz de quantização a ser codificada, o codificador codifica um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar as matrizes de modo que elas tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0222]Se um valor de matrixID é 0, um valor de scaling_list_pred_mode_flag se torna TRUE como no exemplo da Tabela 23. Consequentemente, o codificador não codifica um valor de scaling_list_pred_mode_flag e pode codificar uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb por varredura da matriz de quantização.
[0223]Se um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é maior do que 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o ID de matriz de quantização de referência é codificado pode ser um conjunto de parâmetro de adaptação.
[0224]Como no exemplo da Tabela 25, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, em um conjunto de parâmetros somente quando um valor de matrixID é maior do que 0. Aqui, o codificador e o decodificador podem determinar um valor de scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização, usando matrixID indicativo da matriz de quantização a ser codificada, RefMatrixID indicativo da matriz de quantização de referência, e a Equação 5. <Equação 5> scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
[0225]Quando um valor de matrixID é 0, a primeira matriz de quantização é indicada para cada sizeID. Como uma matriz de quantização pode ser predita a partir de somente uma matriz de quantização tendo o mesmo sizeID, que foi previamente codificado, uma matriz de quantização de referência tendo o mesmo valor sizeID não está presente para a primeira matriz de quantização para cada sizeID. Consequentemente, a predição de uma matriz de quantização, tal como um método de cópia de matriz, não pode ser executada. Como um resultado, somente quando um valor de matrixID é maior do que 0, o codificador pode codificar scaling_list_pred_matrix_id_delta que é um ID de matriz de quantização de referência, determinar RefMatrixID com base no ID de matriz de quantização de referência codificada, e determinar os valores de coeficiente de uma matriz de quantização a ser codificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência.
[0226]Determinar os valores de coeficiente de uma matriz de quantização a ser codificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar um método de predição de matriz de quantização para determinar uma matriz de quantização de referência, RefMatrixID correspondente, como a matriz de quantização de referência de uma matriz de quantização a ser codificada e copiar os valores de coeficientes da matriz de quantização de referência aos valores de coeficiente da matriz de quantização a ser codificada.
[0227]Se um método de codificação preditiva de uma matriz de quantização é um método de codificação de uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através da varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0228]Como no exemplo da Tabela 26, se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, em um conjunto de parâmetros.
[0229]Como no exemplo da Tabela 26, o codificador pode codificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros.
[0230]Ademais, o codificador pode codificar informação sobre se uma matriz padrão foi usada ou não usando scaling_list_delta_coef que é usado para calcular scaling_list_dc_coef_minus8 ou nextCoef. Isto é, o codificador pode codificar um valor de scaling_list_dc_coef_minus8 de modo que ele se torne -8 para instruir o decodificador a usar uma matriz padrão e pode codificar scaling_list_delta_coef de modo que o primeiro valor nextCoef se torna 0 de modo a instruir o decodificador a usar uma matriz padrão.
[0231]Ademais, um método de codificação/decodificação de uma matriz de quantização na qual se ou não usar uma matriz padrão usando o valor de coeficiente da matriz de quantização tem uma desvantagem pelo fato de que aumenta o grau de complexidade em um processo de codificação/decodificação do valor de coeficiente da matriz de quantização. Ademais, há uma desvantagem em que a eficiência da codificação é deteriorada porque informação desnecessária é codificada/decodificada quando realizando a predição da matriz de quantização.
[0232]Entretanto, a presente invenção pode reduzir o grau de complexidade do cálculo quando codificando/decodificando uma matriz de quantização porque se ou não usar uma matriz padrão é determinado usando o ID de matriz de quantização de referência na codificação/decodificação de imagem. Ademais, a presente invenção pode melhorar a eficiência de codificação quando codificando/decodificando uma matriz de quantização por codificação/decodificação diferentemente da matriz de quantização dependendo se uma matriz de quantização de referência está presente ou não.
[0233]As Tabelas 27 e 28 mostram esquematicamente exemplos de estruturas de sintaxe que podem ser usadas quando o ID de matriz de quantização de referência é usado. <Tabela 27>
Figure img0028
<Tabela 28>
Figure img0029
[0234]Primeiro, o codificador pode codificar informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0235]Como no exemplo da Tabela 27, o codificador pode codificar scaling_list_present_flag, isto é, informação especificando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, em um conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0236]Após determinar o tipo de método de codificação preditiva para a matriz de quantização, o codificador pode codificar informação sobre o método de codificação preditiva de uma matriz de quantização em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0237]Como no exemplo da Tabela 27, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação sobre o método de codificação preditiva de uma matriz de quantização, em um conjunto de parâmetros. Por exemplo, se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 1. Se uma matriz de quantização de referência e uma matriz de quantização a ser codificada são determinadas como tendo os mesmos valores ou os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica aos valores de coeficiente de uma matriz de quantização a ser codificada é usado.
[0238]Se um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é maior do que 0, o codificador pode codificar informação sobre o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada e se ou não usar a matriz padrão em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o ID de matriz de quantização de referência e se ou não usar a matriz padrão é codificada pode ser um conjunto de parâmetros de adaptação.
[0239]Como no exemplo da Tabela 27, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, no conjunto de parâmetros somente quando um valor de matrixID é maior do que 0.
[0240]Aqui, o codificador pode determinar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização, usando matrixID indicando a matriz de quantização a ser codificada, RefMatrixID indicando a matriz de quantização de referência ou a matriz padrão, e a Equação 6. <Equação 6> scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
[0241]Se os valores de coeficiente de uma matriz de quantização a ser codificada foram determinados como sendo idênticos com os valores de coeficiente de uma matriz padrão definida no codificador e/ou decodificador, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como 0 de modo que um valor de RefMatrixID é idêntico a um valor de matrixID. Aqui, a matriz padrão significa uma matriz padrão correspondente a sizeID e matrixID.
[0242]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como um valor diferente de 0 de modo que um valor de RefMatrixID e um valor de matrixID não sejam idênticos entre si.
[0243]Ademais, quando um valor de scaling_list_pred_mode_flag é 0, ele indica que um método de predizer e codificar uma matriz de quantização é executado para determinar uma matriz de quantização como sendo a mesma de uma matriz de quantização de referência ou uma matriz padrão. Nesse caso, a matriz de quantização pode ser predita a partir de uma matriz de quantização ou uma matriz padrão tendo o mesmo sizeID, que foi previamente codificada.
[0244]Quando um valor de matrixID é 0, significa a primeira matriz de quantização para cada sizeID. Assim, quando um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é 0, uma matriz de quantização de referência tendo o mesmo valor sizeID para a primeira matriz de quantização para cada sizeID não está presente. Consequentemente, a predição de uma matriz de quantização, tal como um método de cópia de matriz, não pode ser executada na primeira matriz de quantização para cada sizeID.
[0245]Nesse caso, o codificador pode derivar um valor de scaling_list_pred_matrix_id_delta como 0 sem codificar scaling_list_pred_matrix_id_delta. Quando um valor de scaling_list_pred_matrix_id_delta é 0, os valores de coeficiente de uma matriz de quantização a ser codificada correspondente a sizeID e matrixID podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão que foi definida no codificador e/ou decodificador porque um valor de RefMatrixID é idêntico a um valor de matrixID. Aqui, a matriz padrão pode significar uma matriz padrão correspondente a sizeID e matrixID.
[0246]Se um método para predizer e codificar uma matriz de quantização é um método de codificar uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0247]Como no exemplo da Tabela 28, se o tamanho da matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, no conjunto de parâmetros.
[0248]Scaling_list_delta_coef, isto é, o valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser codificada, pode ser codificado no conjunto de parâmetros como no exemplo da Tabela 28.
[0249]Em métodos de codificação/decodificação de matriz de quantização convencionais, quando enviando uma matriz de quantização, todos os coeficientes e um coeficiente de matriz DC dentro de uma matriz são codificados/decodificados. Nesse caso, a melhora da eficiência de codificação é limitada porque a predição e a codificação/decodificação não são executadas no coeficiente de matriz DC.
[0250]Em contraste, se a predição e a codificação/decodificação são executadas em um coeficiente de matriz DC dentro de uma matriz de quantização, a eficiência de codificação pode ser melhorada.
[0251]Aqui, a presente invenção fornece um método de predizer um coeficiente de matriz DC a partir de coeficientes AC vizinhos usando uma alta correlação entre coeficientes vizinhos sem predizer o coeficiente de matriz DC a partir de uma constante 8. A presente invenção pode melhora a eficiência de codificação através desse método.
[0252]As Tabelas 29 e 30 mostram esquematicamente exemplos de estruturas de sintaxe que podem ser usadas quando predizendo um coeficiente de matriz DC usando uma correlação entre coeficientes vizinhos. <Tabela 29>
Figure img0030
<Tabela 30>
Figure img0031
[0253]Nos exemplos das Tabelas 29 e 30, a sequência de codificação/decodificação de uma matriz de quantização é idêntica à sequência de restauração da matriz de quantização. Nesse caso, um espaço de memória para armazenar coeficientes de matriz DC pode ser reduzido. Ademais, nos exemplos das Tabelas 29 e 30, quando indicando se ou não usar uma matriz padrão, somente um elemento de sintaxe ‘scaling_list_delta_coef’ pode ser usado sem usar vários elementos de sintaxe.
[0254]Primeiro, o codificador pode codificar informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0255]Como no exemplo da Tabela 28, o codificador pode codificar scaling_list_present_flag, isto é, informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, no conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0256]Após determinar o tipo de método de predizer e codificar uma matriz de quantização, o codificador pode codificar informação sobre o método de predizer e codificar uma matriz de quantização no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0257]Como no exemplo da Tabela 29, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação sobre um método para predizer e codificar uma matriz de quantização, no conjunto de parâmetros. Por exemplo, se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 1. Se uma matriz de quantização de referência é determinada como tendo os mesmos valores de uma matriz de quantização a ser codificada, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0258]Se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o ID de matriz de quantização de referência é codificado pode ser um conjunto de parâmetros de adaptação.
[0259]Como no exemplo da Tabela 29, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, no conjunto de parâmetros. Aqui, o codificador pode determinar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização, usando matrixID indicando a matriz de quantização a ser codificada, RefMatrixID indicando a matriz de quantização de referência, e a Equação 7 abaixo. <Equação 7> scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
[0260]Determinar os valores de coeficiente da matriz de quantização a ser codificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência pode significar que um método de predição de matriz de quantização de determinar a matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser codificada e copiando os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0261]Se um método de predizer e codificar uma matriz de quantização é um método de codificar a matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0262]Como no exemplo da Tabela 30, o codificador pode codificar scaling_list_delta_coef, isto é, o valor de diferença entre o valor de coeficiente da matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente da matriz a ser codificada, no conjunto de parâmetros.
[0263]Aqui, o codificador pode codificar a informação sobre se ou não usar uma matriz padrão usando scaling_list_delta_coef que é usado para calcular nextCoef. Por exemplo, o codificador pode codificar scaling_list_delta_coef de modo que o primeiro valor nextCoef se torne 0 para instruir o decodificador a usar a matriz padrão.
[0264]Como no exemplo da Tabela 30, o codificador pode codificar scaling_list_dc_coef_res, isto é, um valor de diferença entre os valores de coeficiente das matrizes de quantização correspondente a um coeficiente de matriz DC, no conjunto de parâmetros. Aqui, scaling_list_dc_coef_res pode ser codificado em (useDefaultScalingMatrixFlag = 0) se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3) e a matriz padrão não é usada.
[0265]No exemplo da Tabela 30, um valor de scaling_list_dc_coef_res para uma matriz de quantização de tamanho 16x16 ou 32x32 para codificar um coeficiente de matriz DC separadamente pode ser calculado usando uma diferença entre um valor do coeficiente de matriz DC e um coeficiente de matriz presente em uma localização DC.
[0266]Ademais, um método para codificar/decodificar uma matriz de quantização para determinar se ou não usar uma matriz padrão usando o valor de coeficiente de uma matriz de quantização tem uma desvantagem em que ele aumenta o grau de complexidade em um processo de codificação/decodificação do valor de coeficiente da matriz de quantização. Ademais, convencionalmente, quando enviando uma matriz de quantização, todos os coeficientes e um coeficiente de matriz DC dentro de uma matriz são codificados/decodificados. Nesse caso, a melhora na eficiência de codificação é limitada porque a predição e a codificação/decodificação não são executadas no coeficiente de matriz DC.
[0267]Na presente invenção, na codificação/decodificação de imagem, se ou não usar uma matriz padrão é determinado usando o ID de uma matriz de quantização de referência. Consequentemente, o grau de complexidade do cálculo quando codificando/decodificando uma matriz de quantização pode ser reduzido. Ademais, na presente invenção, como a predição e a codificação/decodificação são executadas em um coeficiente de matriz DC dentro de uma matriz de quantização, a eficiência de codificação pode ser melhorada. Ademais, a eficiência da codificação pode ser melhorada porque um coeficiente de matriz DC é predito a partir de coeficientes AC vizinhos usando uma alta correlação entre os coeficientes AC vizinhos sem predizer uma constante 8.
[0268]As Tabelas 31 e 32 mostram esquematicamente um exemplo de estruturas de sintaxe que podem ser usadas quando todas as características mencionadas anteriormente são aplicadas. <Tabela 31>
Figure img0032
<Tabela 32>
Figure img0033
[0269]Nos exemplos das Tabelas 31 e 32, a sequência de codificação/decodificação de uma matriz de quantização é feita idêntica à sequência de restauração da matriz de quantização. Consequentemente, um espaço em memória para armazenar coeficientes de matriz DC pode ser reduzido. Ademais, nos exemplos das Tabelas 31 e 32, quando indicando se ou não usar uma matriz padrão, vários elementos de sintaxe não são usados, mas somente um elemento de sintaxe scaling_list_delta_coef pode ser usado.
[0270]Primeiro, o codificador pode codificar informação com relação a se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0271]Como no exemplo da Tabela 31, o codificador pode codificar scaling_list_present_flag, isto é, informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, no conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0272]Após determinar o tipo de método de codificação preditiva para a matriz de quantização, o codificador pode codificar informação sobre o método de predizer e codificar uma matriz de quantização no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva/decodificação de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0273]Como no exemplo da Tabela 31, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação especificando um método de codificação preditiva/decodificação de uma matriz de quantização, no conjunto de parâmetros. Por exemplo, se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador codifica um valor de scaling_list_pred_mode_flag como 1. Ademais, se uma matriz de quantização de referência e uma matriz de quantização a ser codificada são determinadas como tendo os mesmos valores ou se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão, o codificador codifica um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser codificada é usado.
[0274]Se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada e informação sobre se ou não usar uma matriz padrão em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a codificação é executada pode ser um conjunto de parâmetros de adaptação.
[0275]Como no exemplo da Tabela 31, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência a ser codificado no conjunto de parâmetros.
[0276]Aqui, o codificador e o decodificador podem determinar um valor de scaling_list_pred_matrix_id_delta, isto é, um ID de matriz de quantização, usando matrixID indicando a matriz de quantização a ser codificada, RefMatrixID indicando a matriz de quantização de referência ou a matriz padrão, e a Equação 8. <Equação 8> scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
[0277]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como 0 de modo que um valor de RefMatrixID seja idêntico a um valor de matrixID. Aqui, a matriz padrão significa uma matriz padrão correspondente a sizeID e matrixID.
[0278]Se um valor de scaling_list_pred_matrix_id_delta é 0, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como um valor diferente de 0 de modo que um valor de RefMatrixID não seja idêntico a um valor de matrixID.
[0279]Se um método para predizer e codificar uma matriz de quantização é um método para codificar uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0280]Como no exemplo da Tabela 32, o codificador pode codificar scaling_list_delta_coef, isto é, o valor da diferença entre o valor de coeficiente da matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser codificada, no conjunto de parâmetros.
[0281]Como no exemplo da Tabela 32, o codificador pode codificar scaling_list_dc_coef_res, isto é, um valor da diferença entre os valores de coeficiente de matrizes de quantização correspondente a um coeficiente de matriz DC, no conjunto de parâmetros. Aqui, scaling_list_dc_coef_res pode ser codificado em (useDefaultScalingMatrixFlag = 0), se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3) e uma matriz padrão não é utilizada.
[0282]Um valor de scaling_list_dc_coef_res para uma matriz de quantização de tamanho 16x16 ou uma matriz de quantização de tamanho 32x32 para codificar separadamente um coeficiente de matriz DC pode ser calculado utilizando uma diferença entre um valor de coeficiente de matriz DC e um coeficiente de matriz presente em uma localização DC.
[0283]Por outro lado, nos métodos convencionais de codificação/decodificação de matriz de quantização, uma matriz de quantização é copiada usando o tamanho de uma matriz de quantização quando quantização e desquantização são realizadas não no tamanho de uma matriz de quantização quando a codificação/decodificação são realizadas. Consequentemente, uma matriz de quantização é copiada a partir de um número limitado de matrizes de quantização. Como resultado, a melhora da eficiência da codificação é limitada quando a matriz de quantização é codificada/decodificada.
[0284]Na presente invenção, no entanto, a eficiência de codificação pode ser melhorada e o grau de liberdade na predição de uma matriz de quantização pode ser aumentado porque uma matriz de quantização é predita a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando a codificação/decodificação são executadas.
[0285]As Tabelas 33 e 34 mostram, esquematicamente, exemplos de estruturas de sintaxe que podem ser utilizadas quando uma matriz de quantização é predita a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando codificação/decodificação são realizadas. <Tabela 33>
Figure img0034
<Tabela 34>
Figure img0035
[0286]Em primeiro lugar, o codificador pode codificar informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0287]Como no exemplo da Tabela 33 ou 34, o codificador pode codificar scaling_list_present_flag, isto é, a informação que indica se uma matriz de quantização está presente ou não dentro de um fluxo de bits, para o conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0288]Após determinar o tipo de método de codificação preditiva para a matriz de quantização, o codificador pode codificar informações sobre o método de codificação preditiva de uma matriz de quantização no conjunto de parâmetros. Aqui, o conjunto de parâmetros em que a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação. Por exemplo, como no exemplo da Tabela 33 ou Tabela 34, o codificador pode codificar scaling_list_pred_mode_flag, isto é, a informação sobre o método de codificação preditiva de uma matriz de quantização, no conjunto de parâmetros. Para um exemplo detalhado, se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 1. Se uma matriz de quantização de referência e uma matriz de quantização a ser codificada são determinadas como tendo os mesmos valores, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores dos coeficientes da matriz quantização de referência para os valores de coeficientes da matriz de quantização a ser codificada é usado.
[0289]Ademais, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, ao menos uma da informação que especifica o tamanho da matriz de quantização de referência da matriz de quantização a ser codificada, e informação especificando a matriz de quantização de referência, pode ser codificada no conjunto de parâmetros como a informação de ID (identificador) sobre a matriz de quantização de referência. O conjunto de parâmetros codificados pode ser um conjunto de parâmetros de adaptação.
[0290]Por exemplo, como no exemplo da Tabela 33, se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência, o codificador pode codificar scaling_list_pred_size_matrix_id_delta, isto é, a informação de ID sobre a matriz de quantização de referência da matriz de quantização a ser codificada, no conjunto de parâmetros. Aqui, um valor de scaling_list_pred_size_matrix_id_delta, isto é, informação de ID de uma matriz de quantização, pode ser determinado usando RefSizeID, isto é, o tamanho da matriz de quantização de referência da matriz de quantização a ser codificada, RefMatrixID indicativo da matriz de quantização de referência, e a Equação 9. <Equação 9> scaling_list_pred_size_matrix_id_delta = 6*(RefSizeID-sizeID) + (RefMatrix- ID% 6)
[0291]Para outro exemplo, como no exemplo da Tabela 34, se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência, o codificador pode codificar scaling_list_pred_size_id_delta e scaling_list_pred_size_matrix_id_delta, isto é, informação de ID sobre a matriz de quantização de referência da matriz de quantização a ser codificada, em um conjunto de parâmetros. Aqui, um valor de scaling_list_pred_size_id_delta pode ser determinado usando RefSizeID e a Equação 10, e um valor de scaling_list_pred_matrix_id_delta pode ser determinado usando RefMatrixID indicativo da matriz de quantização de referência da matriz de quantização a ser codificada e a Equação 11. <Equação 10> scaling_list_pred_size_id_delta = sizeID - RefSizeID <Equação 11> scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
[0292]Determinar os valores de coeficiente de uma matriz de quantização a ser codificada como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência pode significar que copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0293]Consequentemente, apenas a predição de uma matriz de quantização a partir de uma matriz de quantização com o mesmo sizeID não é permitida, mas uma matriz de quantização pode ser predita a partir de uma matriz de quantização com o mesmo tamanho de matriz, mas um sizeID diferente quando codificação/decodificação são realizadas através do exemplo da Tabela 33 ou Tabela 34.
[0294]Por outro lado, no exemplo da Tabela 33 ou Tabela 34, uma gama de valores dos elementos de sintaxe pode ser limitada a um valor específico. Por exemplo, no exemplo da Tabela 33 ou da Tabela 34, scaling_list_pred_size_matrix_id_delta pode ser limitado a um valor que varia de 0 a 17, scaling_list_pred_size_id_delta pode ser limitado a um valor que varia de 0 a 2, e scaling_list_pred_matrix_id_delta pode ser limitado a um valor que varia de 0 a 5.
[0295]Ademais, no exemplo da Tabela 33 ou da Tabela 34, o codificador pode não predizer uma matriz de quantização a partir de uma matriz de quantização com um tamanho maior do que uma matriz de quantização a ser codificada.
[0296]Por outro lado, o codificador pode classificar uma matriz de quantização para um coeficiente de matriz DC e um coeficiente de matriz AC de acordo com o tamanho de cada uma das matrizes de quantização e predizer a matriz de quantização para o coeficiente de matriz DC e o coeficiente de matriz AC. Por exemplo, uma matriz de quantização com um tamanho de 8x8 pode ser classificada em um coeficiente de matriz DC e um coeficiente de matriz AC e então predita, e tanto um coeficiente de matriz DC quanto um coeficiente de matriz AC pode ser predito em relação a matrizes de quantização tendo os tamanhos restantes. Em outras palavras, quando executando a predição a partir de uma matriz de quantização com um tamanho de 8x8, o codificador pode predizer um valor em uma localização correspondente determinando um valor correspondente à localização de um coeficiente de matriz DC dentro da matriz de quantização de tamanho 8x8, como o coeficiente de matriz DC de uma matriz de quantização a ser codificada. Se a predição é executada a partir de uma matriz de quantização com um tamanho de 16x16 ou 32x32, o codificador também pode predizer o coeficiente de matriz DC da matriz de quantização.
[0297]Por outro lado, se um método de codificação preditiva de uma matriz de quantização é um método de codificação de uma matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros pode ser um conjunto de parâmetros de adaptação.
[0298]A Tabela 35 mostra um exemplo de uma estrutura de sintaxe que pode ser utilizada quando um coeficiente dentro de uma matriz de quantização é predito usando o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização. <Tabela 35>
Figure img0036
[0299]Como no exemplo da Tabela 35, se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus8, isto é, informação sobre um coeficiente de matriz DC, no conjunto de parâmetros.
[0300]Como no exemplo da Tabela 35, o codificador pode codificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser codificada, no conjunto de parâmetros.
[0301]Além disso, o codificador pode codificar informação sobre se ou não usar uma matriz padrão usando scaling_list_delta_coef que é usado para derivar um valor de scaling_list_dc_coef_minus8 ou nextCoef. Por exemplo, o codificador pode codificar um valor de scaling_list_dc_coef_minus8 como -8, a fim de instruir o decodificador a utilizar uma matriz padrão e pode codificar scaling_list_delta_coef de modo que o primeiro valor nextCoef seja 0, a fim de instruir o decodificador a utilizar uma matriz padrão.
[0302]Em outras palavras, um método de codificação/decodificação de uma matriz de quantização para determinar se ou não utilizar uma matriz padrão usando o valor de coeficiente de uma matriz de quantização tem uma desvantagem na medida em que aumenta o grau de complexidade em um processo de codificação/decodificação do valor de coeficiente da matriz de quantização. Ademais, há uma desvantagem na medida em que a eficiência de codificação é deteriorada, porque informação desnecessária é codificada/decodificada quando uma matriz de quantização é predita. Além disso, uma matriz de quantização é copiada usando o tamanho de uma matriz de quantização quando quantização e desquantização são realizadas não no tamanho de uma matriz de quantização quando a codificação/decodificação são realizadas. Uma vez que uma matriz de quantização é copiada a partir de um número limitado de matrizes de quantização, a melhora da eficiência de codificação é limitada quando codificando/decodificando uma matriz de quantização.
[0303]Na presente invenção, na codificação/decodificação de imagem, se ou não utilizar uma matriz padrão pode ser determinado usando o ID de uma matriz de quantização de referência. Consequentemente, o grau de complexidade do cálculo quando codificando/decodificando uma matriz de quantização pode ser reduzido. Além disso, a eficiência de codificação pode ser melhorada e o grau de liberdade na predição de uma matriz de quantização pode ser aumentado porque uma matriz de quantização é predita a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando codificando/decodificando a matriz de quantização.
[0304]As Tabelas 36 e 37 mostram esquematicamente exemplos de estruturas de sintaxe que podem ser usadas quando predizendo uma matriz de quantização usando o ID de uma matriz de quantização de referência e usando uma matriz de quantização tendo o mesmo tamanho quando codificando/decodificando a matriz de quantização. <Tabela 36>
Figure img0037
<Tabela 37>
Figure img0038
[0305]Em primeiro lugar, o codificador pode codificar informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0306]Como no exemplo da Tabela 36 ou 37, o codificador pode codificar scaling_list_present_flag, isto é, informação sobre se a matriz de quantização está presente ou não dentro de um fluxo de bits, no conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador codifica um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador codifica um valor de scaling_list_present_flag como 1.
[0307]Após determinar o tipo de método de codificação preditiva para a matriz de quantização, o codificador pode codificar informação sobre o método de codificação preditiva de uma matriz de quantização no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0308]Como no exemplo da Tabela 36 ou Tabela 37, o codificador pode codificar scaling_list_pred_mode_flag, isto é, informação especificando o método de codificação preditiva de uma matriz de quantização, no conjunto de parâmetros. Por exemplo, se uma matriz de quantização é codificada de acordo com método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização, a fim de predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 1. Ademais, se uma matriz de quantização de referência e uma matriz de quantização a ser codificada são determinadas como tendo os mesmos valores e, se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição da matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser codificada é usado.
[0309]Se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, pelo menos uma da informação especificando o tamanho da matriz de quantização de referência da matriz de quantização a ser codificada, e a informação especificando a matriz de quantização de referência, pode ser codificada no conjunto de parâmetros como informação de ID sobre a matriz de quantização de referência. O conjunto de parâmetros codificados pode ser um conjunto de parâmetros de adaptação. Além disso, o conjunto de parâmetros no qual o ID ou a informação de ID é codificada pode ser um conjunto de parâmetros de adaptação.
[0310]Por exemplo, como no exemplo da Tabela 36, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_size_matrix_id_delta, isto é, informação de ID sobre a matriz de quantização de referência da matriz de quantização a ser codificada, no conjunto de parâmetros. Aqui, o codificador pode determinar scaling_list_pred_size_matrix_id_delta, isto é, informação de ID sobre a matriz de quantização, utilizando RefSizeID e RefMatrixID indicando a matriz de quantização de referência, ou a matriz padrão e a Equação 12. <Equação 12> scaling_list_pred_size_matrix_id_delta = 6*(RefSizeID-sizeID) + (RefMatrix- ID% 6)
[0311]Para outro exemplo, como na Tabela 37, se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência, ou se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão, o codificador pode codificar scaling_list_pred_size_id_delta e scaling_list_pred_size_matrix_id_delta, isto é, informação de ID sobre a matriz de quantização de referência da matriz de quantização a ser codificada, no conjunto de parâmetros. Aqui, o codificador pode determinar um valor de scaling_list_pred_size_id_delta usando RefSizeID e a Equação 13 e pode derivar um valor de scaling_list_pred_matrix_id_delta usando RefMatrixID indicativo da matriz de quantização de referência da matriz de quantização a ser codificada ou a matriz padrão e a Equação 14. <Equação 13> scaling_list_pred_size_id_delta = sizeID - RefSizeID <Equação 14> scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
[0312]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como 0 de modo que um valor de RefMatrixID e um valor de matrixID são idênticos entre si. Aqui, a matriz padrão significa uma matriz padrão correspondente a sizeID e matrixID.
[0313]Se os valores de coeficiente de uma matriz de quantização a ser codificada são determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência, o codificador pode codificar um valor de scaling_list_pred_matrix_id_delta como um valor diferente de 0, de modo que um valor de RefMatrixID e um valor de matrixID não são idênticos entre si.
[0314]Consequentemente, a título de exemplo da Tabela 36 ou Tabela 37, uma matriz de quantização pode ser predita a partir de uma matriz de quantização com o mesmo sizeID, e uma matriz de quantização pode ser predita a partir de uma matriz de quantização com o mesmo tamanho, mas um sizeID diferente quando a codificação/decodificação são realizadas pode ser predito.
[0315]Ademais, no exemplo da Tabela 36 ou da Tabela 37, uma gama de valores de scaling_list_pred_size_matrix_id_delta e um caling_list_pred_size_id_delta, scaling_list_pred_matrix_id_delta pode ser limitada. Por exemplo, scaling_list_pred_size_matrix_id_delta pode ser limitado a um valor que varia de 0 a 17, scaling_list_pred_size_id_delta pode ser limitado a um valor que varia de 0 a 2, e scaling_list_pred_matrix_id_delta pode ser limitado a um valor que varia de 0 a 5.
[0316]Ademais, a predição de uma matriz de quantização pode não ser realizada a partir de uma matriz de quantização com um tamanho maior do que uma matriz de quantização a ser codificada.
[0317]Ao predizer uma matriz de quantização, um método de predição de uma matriz de quantização pode ser realizado de maneira diferente levando o tamanho da matriz em consideração. Por exemplo, quando realizando a predição de uma matriz de quantização com um tamanho 8x8, o codificador pode predizer um valor em uma localização correspondente determinando um valor, correspondente à localização de um coeficiente de matriz DC dentro da matriz de quantização de tamanho 8x8, como a coeficiente de matriz DC. Se a predição é executada a partir de uma matriz de quantização com um tamanho de 16x16 ou 32x32, o codificador também pode predizer um coeficiente de matriz DC.
[0318]Por outro lado, se um método de codificação preditiva de uma matriz de quantização é um método de codificação da matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada em um conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor da diferença é codificado como sendo um conjunto de parâmetros de adaptação.
[0319]A Tabela 38 mostra um exemplo de uma estrutura de sintaxe que pode ser usada para predizer um coeficiente dentro de uma matriz de quantização, utilizando o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização. <Tabela 38>
Figure img0039
[0320]Como no exemplo da Tabela 38, se o tamanho de uma matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus8, isto é, a informação que especifica um coeficiente de matriz DC, no conjunto de parâmetros.
[0321]Como no exemplo da Tabela 38, o codificador pode codificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor do coeficiente de uma matriz de quantização a ser codificada, no conjunto de parâmetros.
[0322]Nos métodos convencionais de codificação/decodificação de matriz de quantização, o valor de coeficiente de uma matriz de quantização é codificado não levando em conta um valor de coeficiente, frequentemente ocorrendo quando codificando/decodificando um primeiro coeficiente dentro da matriz de quantização. Consequentemente, nos métodos convencionais de codificação/decodificação da matriz de quantização, a melhora da eficiência de codificação é limitada.
[0323]Na presente invenção, um primeiro coeficiente dentro de uma matriz de quantização pode ser predito e codificado/decodificado utilizando um valor de coeficiente que ocorre frequentemente. Ademais, na presente invenção, se o primeiro valor de coeficiente ou valor de coeficiente de matriz DC de uma matriz padrão é definido como sendo 16 ou o primeiro valor de coeficiente ou valor de coeficiente de matriz DC de uma matriz não padrão é distribuído em torno de 16, um primeiro valor de coeficiente ou um valor de coeficiente de matriz DC dentro de uma matriz de quantização a ser codificada/decodificada pode ser predito a partir da constante 16 e, em seguida, codificado/decodificado. Neste caso, a presente invenção pode melhorar a eficiência da codificação.
[0324]As Tabelas 39 e 40 mostram, esquematicamente, exemplos de estruturas de sintaxe que podem ser usadas quando um primeiro coeficiente dentro de uma matriz de quantização é levado em consideração. <Tabela 39>
Figure img0040
<Tabela 40>
Figure img0041
[0325]Em primeiro lugar, o codificador pode codificar a informação indicativa de se uma matriz de quantização está presente ou não em um conjunto de parâmetros.
[0326]Como no exemplo da Tabela 39, o codificador pode codificar scaling_list_present_flag, isto é, informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, no conjunto de parâmetros. Por exemplo, se a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão, o codificador pode codificar um valor de scaling_list_present_flag como 0. Se uma matriz de quantização codificada está presente, o codificador pode codificar um valor de scaling_list_present_flag como 1.
[0327]Após determinar o tipo de método de codificação preditiva para a matriz de quantização, o codificador pode codificar informação sobre o método de codificação preditiva de uma matriz de quantização no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual a informação sobre o método de codificação preditiva de uma matriz de quantização é codificada pode ser um conjunto de parâmetros de adaptação.
[0328]Como no exemplo da Tabela 39, o codificador pode codificar scaling_list_pred_mode_flag, isto é, a informação o método de codificação preditiva de uma matriz de quantização, no conjunto de parâmetros. Por exemplo, se uma matriz de quantização é codificada de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura da matriz de quantização a fim de predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 1. Ademais, se uma matriz de quantização de referência e uma matriz de quantização a ser codificada são determinadas como tendo os mesmos valores, o codificador pode codificar um valor de scaling_list_pred_mode_flag como 0. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0329]Se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o ID de matriz de quantização de referência é codificado pode ser um conjunto de parâmetros de adaptação.
[0330]Como no exemplo da Tabela 39, se um valor de scaling_list_pred_mode_flag é 0, o codificador pode codificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser codificada, no conjunto de parâmetros. Aqui, o codificador pode determinar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência, utilizando matrixID indicando a matriz de quantização a ser codificada, RefMatrixID indicando a matriz de quantização de referência, e a Equação 15. <Equação 15> scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
[0331]Determinar os valores de coeficiente de uma matriz de quantização a ser codificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser codificada é usado.
[0332]Se um método de codificação preditiva de uma matriz de quantização é um método de codificação da matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura de modo a predizer e codificar um coeficiente dentro da matriz de quantização, o codificador pode codificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor do coeficiente de uma matriz de quantização a ser codificada no conjunto de parâmetros. Aqui, o conjunto de parâmetros no qual o valor de diferença é codificado pode ser um conjunto de parâmetros de adaptação.
[0333]Como no exemplo da Tabela 40, se o tamanho da matriz de quantização a ser codificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o codificador pode codificar scaling_list_dc_coef_minus16, isto é, o valor de coeficiente de matriz de quantização que corresponde a um coeficiente de matriz DC, no conjunto de parâmetros. Aqui, um valor de scaling_list_dc_coef_minus16 indica um coeficiente de matriz DC calculado assumindo-se que o valor de predição é 16.
[0334]Como no exemplo da Tabela 40, o codificador pode codificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente codificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser codificada, no conjunto de parâmetros. Como no exemplo da Tabela 40, o codificador pode configurar ‘nextCoef = 16’, isto é, estabelecer um valor de predição para o primeiro valor de coeficiente como 16.
[0335]Ademais, o codificador pode determinar se ou não usar uma matriz padrão usando scaling_list_delta_coef que é usado para scaling_list_dc_coef_minus16 calculado ou nextCoef. Isto é, o codificador pode codificar um valor de scaling_list_dc_coef_minus16 como -16 a fim de instruir o decodificador a utilizar uma matriz padrão e pode codificar scaling_list_delta_coef de modo que um valor do primeiro nextCoef se torna 0, a fim de instruir o decodificador a utilizar uma matriz padrão.
[0336]Nas modalidades das tabelas acima e das tabelas seguintes, bem como os exemplos das Tabelas 39 e 40, o codificador pode configurar nextCoef como 16, e um valor de scaling_list_dc_coef_minus16 pode significar um coeficiente de matriz DC calculado assumindo-se que o valor de predição é 16. Além disso, nas modalidades das tabelas anteriores e das tabelas seguintes, o codificador pode codificar um valor de scaling_list_dc_coef_minus16 como -16 a fim de instruir o decodificador a utilizar uma matriz padrão.
[0337]Os exemplos referentes às operações do codificador para a codificação de informação sobre uma matriz de quantização e sinalização da informação codificada foram descritos até agora. Daqui em diante, os exemplos em que o decodificador decodifica a informação sobre uma matriz de quantização e obtém uma matriz de quantização são descritos usando os exemplos das tabelas anteriores.
[0338]A Figura 5 é um fluxograma que ilustra esquematicamente um exemplo de uma operação do decodificador para decodificar informação sobre uma matriz de quantização e realizar a decodificação utilizando a informação decodificada.
[0339]Com relação à Figura 5, o decodificador decodifica a informação sobre o tamanho de uma unidade de transformação e determina o tamanho da unidade de transformação com base na informação decodificada na etapa S510.
[0340]O decodificador executa decodificação por entropia na informação sobre o tamanho de uma unidade de transformação a partir de um fluxo de bits recebido. O decodificador pode decodificar informação sobre o tamanho da unidade de transformação a partir de um conjunto de parâmetros dentro do fluxo de bits.
[0341]Por exemplo, o decodificador pode decodificar a informação sobre um tamanho mínimo e um tamanho máximo da unidade de transformação a partir do fluxo de bits.
[0342]Como no exemplo da Tabela 1, o decodificador pode decodificar um tamanho mínimo na direção horizontal ou vertical de uma unidade de transformação quadrada a qual uma função Log2 foi aplicada usando o elemento de sintaxe ‘log2_min_transform_block_size_minus2’ dentro do fluxo de bits. Ademais, o decodificador pode decodificar um valor de diferença entre o tamanho máximo na direção horizontal ou vertical de uma unidade de transformação quadrada a qual uma função Log2 foi aplicada e um tamanho mínimo na direção horizontal ou vertical da unidade de transformação quadrada usando o elemento de sintaxe ‘log2_diff_max_min_transform_block_size’ dentro do fluxo de bits.
[0343]O decodificador pode determinar um tamanho mínimo e um tamanho máximo da unidade de transformação decodificada. Aqui, o tamanho máximo da unidade de transformação pode ser determinado pelo valor de diferença decodificado entre um tamanho máximo e um valor mínimo e o tamanho mínimo decodificado.
[0344]Por exemplo, o decodificador pode calcular Log2MinTrafoSize adicionando 2 a log2_min_transform_block_size_minus2 decodificado e determinar um valor, calculado utilizando 1 << Log2MinTrafoSize, como um tamanho mínimo na direção horizontal ou vertical da unidade de transformação quadrada. O decodificador pode calcular Log2MaxTrafoSize com base em um valor de log2_diff_max_min_transform_block_size decodificado e um valor obtido através da adição de 2 a log2_min_transform_block_size_minus2 decodificado e determinar um valor, calculado utilizando 1 << Log2MaxTrafoSize, como um tamanho máximo na direção horizontal ou vertical da unidade de transformação quadrada.
[0345]Aqui, o tamanho mínimo da unidade de transformação pode significar um valor calculado usando Log2MinTrafoSize ou 1 << Log2MinTrafoSize, e o tamanho máximo da unidade de transformação pode significar um valor calculado usando Log2MaxTrafoSize ou 1 << Log2MaxTrafoSize.
[0346]O decodificador decodifica informação sobre uma matriz de quantização na etapa S520. O decodificador pode decodificar informação sobre a matriz de quantização, incluindo um ou mais de (1) informação sobre se a matriz de quantização foi usada ou não, (2) informação sobre se a matriz de quantização está presente ou não, (3) informação sobre se a matriz de quantização foi decodificada ou não e se a matriz padrão foi usada ou não, (4) informação sobre o tipo de método de decodificação preditiva da matriz de quantização, (5) informação sobre um ID de matriz de quantização de referência, e (6) informação sobre um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada. Aqui, a informação sobre a matriz de quantização pode ser dependente do tamanho de uma unidade de transformação.
[0347]Em primeiro lugar, o decodificador pode determinar se uma matriz de quantização foi usada ou não através da decodificação de informação sobre se a matriz de quantização foi usada ou não a partir do conjunto de parâmetros. Como no exemplo da Tabela 2, o decodificador pode decodificar scaling_list_enabled_flag, isto é, a informação sobre se uma matriz de quantização foi utilizada ou não, a partir de um conjunto de parâmetros de sequência. Aqui, quando o valor de scaling_list_enabled_flag é 1, o decodificador pode utilizar a matriz de quantização na desquantização/escalonamento de um coeficiente de transformação para a sequência inteira. Quando um valor de scaling_list_enabled_flag é 0, o decodificador pode não utilizar a matriz de quantização na desquantização/escalonamento do coeficiente de transformação.
[0348]O decodificador pode determinar se uma matriz de quantização está presente ou não através da decodificação de informação sobre se uma matriz de quantização está presente ou não a partir do conjunto de parâmetros. Como no exemplo da Tabela 3, o decodificador pode decodificar aps_scaling_list_data_present_flag, isto é, a informação sobre se uma matriz de quantização está presente ou não, a partir de um conjunto de parâmetros de adaptação. Por exemplo, quando um valor de aps_scaling_list_data_present_flag é 1, isso significa que uma matriz de quantização está presente no conjunto de parâmetros de adaptação. Quando um valor de aps_scaling_list_data_present_flag é 0, isso significa que uma matriz de quantização não está presente no conjunto de parâmetros de adaptação. Se scaling_list_enabled_flag é 1 e aps_scaling_list_data_present_flag é 0, isso pode significar que uma matriz padrão é usada quando a desquantização é realizada. Ademais, os exemplos em que a informação sobre se uma matriz de quantização está presente ou não é decodificada a partir de um conjunto de parâmetros de adaptação foram ilustrados, mas a presente invenção não está limitada a eles. O decodificador pode decodificar informação sobre se uma matriz de quantização está presente ou não a partir de um outro conjunto de parâmetros.
[0349]O decodificador pode determinar se uma matriz de quantização foi decodificada ou não e se uma matriz padrão foi usada ou não decodificando informação sobre se a matriz de quantização foi decodificada ou não e se a matriz padrão foi usada ou não a partir do conjunto de parâmetros. Como no exemplo da Tabela 4, o decodificador pode decodificar use_default_scaling_list_flag, isto é, a informação sobre se uma matriz de quantização foi decodificada ou não e se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros de adaptação. Por exemplo, quando um valor de use_default_scaling_list_flag é 1, a matriz de quantização não é decodificada e os valores de coeficiente de toda a matriz de quantização podem ser determinados como sendo os mesmos dos valores de coeficiente de uma matriz de quantização padrão definida no codificador e/ou no decodificador. Quando um valor de use_default_scaling_list_flag é 0, a matriz de quantização é decodificada e uma matriz padrão definida no codificador e/ou no decodificador pode não ser utilizada.
[0350]O decodificador pode determinar um ou mais dentre se ou não decodificar uma matriz de quantização, se ou não usar uma matriz padrão, e se ou não realizar a predição e decodificação usando SizeID e MatrixID.
[0351]Como nos exemplos das Tabelas 5 e 6, um valor de SizeID pode especificar uma matriz de quantização de acordo com o tamanho de uma unidade de transformação ou o tamanho de uma matriz de quantização utilizando as tabelas, e um valor de MatrixID pode especificar o modo de codificação no qual uma matriz de quantização é utilizada e o tipo de matriz de quantização correspondente a um componente de cor.
[0352]Ademais, uma matriz de quantização padrão pode ser indicada utilizando as Tabelas 7 e 8.
[0353]Se um tamanho mínimo e um tamanho máximo de uma unidade de transformação que estão disponíveis não são levados em consideração, uma matriz de quantização para uma unidade de transformação tendo todos os tamanhos precisa ser decodificada. Nesse caso, a eficiência da codificação é deteriorada, e o grau de complexidade do cálculo é aumentado.
[0354]De acordo com a presente invenção, a informação sobre uma matriz de quantização pode ser decodificada levando em consideração o tamanho de uma unidade de transformação.
[0355]No exemplo da Tabela 9, SizeID correspondente ao tamanho de cada unidade de transformação é restrito com base em um tamanho mínimo e um tamanho máximo de uma unidade de transformação, dentre as partes de informações sobre a unidade de transformação, e uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação de informação sobre se uma matriz padrão foi usada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva são realizadas com base no SizeID restrito.
[0356]Como no exemplo da Tabela 9, SizeID pode ser restrito com base em um tamanho mínimo e um tamanho máximo de uma unidade de transformação, dentre as partes de informação sobre a unidade de transformação, e uma ou mais dentre a informação sobre se uma matriz de quantização ou uma matriz padrão foi utilizada ou não, e a informação sobre o tipo de método de decodificação preditiva podem ser decodificadas em relação a apenas unidades de transformação com um tamanho específico.
[0357]Por exemplo, se um valor de Log2MinTrafoSize que especifica um tamanho mínimo de uma unidade de transformação é 3 e um valor de Log2MaxTrafoSize que especifica um tamanho máximo de uma unidade de transformação é 4, o decodificador pode executar uma ou mais dentre a decodificação de uma matriz de quantização correspondente a unidades de transformação de um tamanho de 8x8 a um tamanho 16x16, a decodificação de informação sobre se uma matriz padrão foi usada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva.
[0358]No exemplo da Tabela 9, use_default_scaling_list_flag não pode ser decodificado.
[0359]Ademais, diferente do exemplo, o decodificador pode restringir SizeID com base em um valor de diferença entre um tamanho máximo e um valor mínimo de uma unidade de transformação e executar uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação da informação sobre se uma matriz padrão foi usado ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva com base no SizeID restrito.
[0360]Como no exemplo da Tabela 10, o decodificador pode restringir SizeID com base em um valor de diferença entre o tamanho máximo e um valor mínimo de uma unidade de transformação e executar uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação de informação sobre se uma matriz padrão foi utilizada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva apenas em unidades de transformação que têm um tamanho específico (isto é, apenas os tamanhos específicos de uma unidade de transformação.
[0361]Por exemplo, se um valor de Log2MinTrafoSize que especifica um tamanho mínimo de uma unidade de transformação é 3 e um valor de Log2MaxTrafoSize que especifica um tamanho máximo de uma unidade de transformação é 4, o decodificador pode executar uma ou mais dentre a decodificação de uma matriz de quantização correspondente para a unidades de transformação de um tamanho de 8x8 a um tamanho 16x16, a decodificação de informação sobre se uma matriz padrão foi usada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva.
[0362]Aqui, um valor de diferença entre Log2MaxTrafoSize Log2MinTrafoSize é um valor de diferença entre o tamanho máximo e um valor mínimo de uma unidade de transformação e pode ser especificado por log2_diff_max_min_transform_block_size. Ademais, Log2MinTrafoSize-2 é o mesmo que log2_min_transform_block_size_minus2.
[0363]No exemplo da Tabela 10, use_default_scaling_list_flag pode não ser decodificado.
[0364]Por outro lado, se uma matriz padrão e uma matriz não padrão não são misturadas e utilizadas de acordo com o tamanho de cada bloco de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia, o grau de liberdade é reduzido quando o codificador seleciona uma matriz de quantização. Por exemplo, a fim de utilizar uma matriz padrão para um tamanho de transformação específico dentro de uma fatia e de usar uma matriz não padrão para outro tamanho de transformação específico dentro da fatia, a eficiência da codificação pode ser deteriorada porque a matriz padrão precisa ser codificada e transmitida.
[0365]Na presente invenção, uma matriz padrão e uma matriz não padrão podem ser misturadas e utilizadas de acordo com o tamanho de cada bloco de transformação ou o tipo de matriz de quantização dentro de uma sequência, uma imagem, ou uma fatia.
[0366]Por exemplo, o decodificador pode decodificar informação sobre se uma matriz de quantização foi decodificada ou não e se uma matriz padrão foi usada ou não a partir do conjunto de parâmetros com base em SizeID. Como no exemplo da Tabela 11, o decodificador pode decodificar sid_use_default_scaling_list_flag [SizeID] [MatrixID], isto é, a informação especificando se uma matriz de quantização foi decodificada ou não, e se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros de adaptação baseado em SizeID. Por exemplo, quando um valor de sid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1, o decodificador não decodificar uma matriz de quantização correspondendo a SizeID, e os valores de coeficiente de uma matriz de quantização correspondendo a SizeID podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de sid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0, o decodificador decodifica uma matriz de quantização correspondente a SizeID, mas não utiliza uma matriz padrão, definida no codificador e/ou no decodificador, como uma matriz de quantização correspondente a SizeID.
[0367]Por outro lado, no exemplo da Tabela 11, use_default_scaling_list_flag pode não ser decodificado.
[0368]Ademais, o decodificador pode decodificar informação sobre se uma matriz de quantização foi decodificada ou não e se a matriz padrão foi usada ou não a partir do conjunto de parâmetros com base em MatrixID em vez de SizeID.
[0369]Como no exemplo da Tabela 12, o decodificador pode decodificar mid_use_default_scaling_list_flag [SizeID] [MatrixID], isto é, a informação especificando se uma matriz de quantização foi decodificada ou não, e se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros de adaptação baseado em MatrixID. Por exemplo, quando um valor de mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1, o decodificador não decodifica uma matriz de quantização correspondente a MatrixID, e os valores de coeficiente de uma matriz de quantização correspondente a MatrixID podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0, o decodificador decodifica uma matriz de quantização correspondente a MatrixID, mas não utiliza uma matriz padrão definida no codificador e/ou no decodificador como uma matriz de quantização correspondente a MatrixID.
[0370]No exemplo da Tabela 12, use_default_scaling_list_flag pode não ser decodificado.
[0371]Ademais, o decodificador pode decodificar informação sobre se uma matriz de quantização foi decodificada ou não e se a matriz padrão foi usada ou não a partir do conjunto de parâmetros com base em SizeID e MatrixID levando em consideração tanto SizeID quanto MatrixID, em vez de levar apenas SizeID ou apenas MatrixID em consideração.
[0372]Como no exemplo da Tabela 13, o decodificador pode decodificar sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID], isto é, a informação especificando se uma matriz de quantização foi decodificada ou não, e se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros de adaptação baseado em SizeID e MatrixID. Por exemplo, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1, o decodificador não decodifica uma matriz de quantização correspondente a SizeID e MatrixID, e os valores de coeficiente de uma matriz de quantização correspondente a SizeID MatrixID podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0, o decodificador decodifica uma matriz de quantização correspondente a SizeID e MatrixID e não utiliza uma matriz padrão definida no codificador e/ou no decodificador, como uma matriz de quantização correspondente a SizeID e MatrixID.
[0373]No exemplo da Tabela 13, use_default_scaling_list_flag pode não ser decodificado.
[0374]Por outro lado, como no exemplo da Tabela 14, o decodificador restringe SizeID de acordo com um tamanho mínimo e um tamanho máximo de uma unidade de transformação e realiza uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação da informação sobre se uma matriz padrão foi utilizada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva com base no SizeID restrito. Além disso, o decodificador pode decodificar informação sobre se uma matriz de quantização foi decodificada ou não, e informação sobre se uma matriz padrão foi usada ou não a partir do conjunto de parâmetros com base em SizeID e MatrixID.
[0375]No exemplo da Tabela 14, use_default_scaling_list_flag pode não ser decodificado.
[0376]Como no exemplo da Tabela 15, o decodificador pode restringir SizeID com base em um valor de diferença entre um tamanho máximo e um valor mínimo de uma unidade de transformação, dentre as partes de informação sobre a unidade de transformação, e executar uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação de informação sobre se uma matriz padrão foi usada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva baseado no SizeID restrito. Por exemplo, um valor de diferença entre Log2MaxTrafoSize Log2MinTrafoSize é um valor de diferença entre o tamanho máximo e um valor mínimo de uma unidade de transformação e idêntico a log2_diff_max_min_transform_block_size, e Log2MinTrafoSize-2 é idêntico a log2_min_transform_block_size_minus2. Além disso, o decodificador pode decodificar informação sobre se uma matriz de quantização foi decodificada ou não e se a matriz padrão foi usada ou não a partir do conjunto de parâmetros com base em SizeID e MatrixID.
[0377]No exemplo da Tabela 15, use_default_scaling_list_flag pode não ser decodificado.
[0378]Por outro lado, como no exemplo da Tabela 16, o decodificador pode determinar se a informação sobre uma matriz de quantização está ou não presente em um conjunto de parâmetros a ser decodificada ou se está ou não atualiza a matriz de quantização com base em scaling_list_update_flag [SizeID] [MatrixID] dentro do conjunto de parâmetros. Por exemplo, scaling_list_update_flag [SizeID] [MatrixID] tendo um valor de 1 indica que a informação sobre uma matriz de quantização especificada por SizeID e MatrixID está presente em um conjunto de parâmetros a ser decodificado ou indica que a informação sobre uma matriz de quantização, correspondente a SizeID e MatrixID e previamente decodificada, deveria ser atualizada em informação sobre uma matriz de quantização correspondente a SizeID e MatrixID dentro de um conjunto de parâmetros a ser decodificado. Aqui, atualizar a informação sobre uma matriz de quantização pode significar que a informação sobre uma matriz de quantização que foi previamente decodificada é substituída por informação sobre uma matriz de quantização dentro de um conjunto de parâmetros a ser decodificado. Além disso, scaling_list_update_flag [SizeID] [MatrixID] tendo um valor de 0 indica que uma matriz de quantização correspondente a SizeID e MatrixID não está presente em um conjunto de parâmetros a ser decodificado ou que a informação sobre uma matriz de quantização que foi previamente decodificada não está atualizada. Por exemplo, quando um valor de scaling_list_update_flag [SizeID] [MatrixID] é 0, o decodificador não sabe que a informação sobre qual matriz de quantização deveria ser utilizada em desquantização para o coeficiente de uma matriz de quantização especificada por SizeID e MatrixID porque uma matriz de quantização correspondente a SizeID e MatrixID não está presente no conjunto de parâmetros e a informação sobre a matriz de quantização não foi decodificada. Consequentemente, quando um valor de scaling_list_update_flag [SizeID] [MatrixID] é 0, pode ser instruído que uma matriz padrão seja utilizada como uma matriz de quantização correspondente a SizeID e MatrixID ou que a matriz de quantização não seja utilizada porque a informação sobre uma matriz de quantização correspondente a SizeID e MatrixID não está presente em um conjunto de parâmetros a ser decodificado.
[0379]Aqui, scaling_list_update_flag [SizeID] [MatrixID] é decodificado com base em SizeID e MatrixID correspondente ao tamanho de cada unidade de transformação. Consequentemente, quando um valor de scaling_list_update_flag [SizeID] [MatrixID] é 1, o decodificador pode executar uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação da informação sobre se uma matriz padrão foi utilizada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva. Quando um valor de scaling_list_update_flag [SizeID] [MatrixID] é 0, o decodificador não executa uma ou mais dentre a decodificação de uma matriz de quantização, a decodificação da informação sobre se uma matriz padrão foi utilizada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva. Isto é, o decodificador não pode decodificar uma matriz de quantização desnecessária com base em uma indicação de scaling_list_update_flag [SizeID] [MatrixID].
[0380]Por outro lado, há uma desvantagem na medida em que o grau de liberdade na seleção de uma matriz de quantização é baixo porque uma matriz padrão e uma matriz não padrão não são misturadas e utilizadas de acordo com o tamanho de cada bloco de transformação ou o tipo de matriz de quantização dentro de uma sequência, imagem, ou fatia usando apenas scaling_list_update_flag [SizeID] [MatrixID]. Consequentemente, o decodificador pode decodificar sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID], isto é, informação sobre se uma matriz de quantização foi decodificada ou não e se uma matriz padrão foi usada ou não, a partir do conjunto de parâmetros com base em SizeID e MatrixID. Por exemplo, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1, o decodificador não codifica uma matriz de quantização especificada por SizeID e MatrixID, e os valores de coeficiente de uma matriz de quantização correspondente a SizeID e MatrixID são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0, o decodificador decodifica uma matriz de quantização especificada por SizeID e MatrixID e não utiliza uma matriz padrão, definida no codificador e/ou no decodificador, como a matriz de quantização correspondente a SizeID e MatrixID.
[0381]No exemplo da Tabela 16, use_default_scaling_list_flag pode não ser decodificado.
[0382]Por outro lado, como no exemplo da Tabela 17, o decodificador pode decodificar a informação sobre se uma matriz de quantização foi decodificada ou não, e se uma matriz padrão foi utilizada ou não a partir do conjunto de parâmetros com base em SizeID e MatrixID. Ademais, scaling_list_update_flag [SizeID] [MatrixID] com relação à atualização na informação sobre uma matriz de quantização correspondente a SizeID e MatrixID pode ser usado dentro de um parâmetro a ser decodificado.
[0383]Por exemplo, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0 e um valor de scaling_list_update_flag [SizeID] [MatrixID] é 0, o decodificador decodifica uma matriz de quantização correspondente a SizeID e MatrixID, não atualiza uma quantização matriz correspondente a SizeID e MatrixID previamente decodificada, para uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser decodificado, e utiliza a matriz de quantização correspondente a SizeID e MatrixID que foi anteriormente decodificada.
[0384]Por outro lado, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 0 e um valor de scaling_list_update_flag [SizeID] [MatrixID] é 1, o decodificador decodifica uma matriz de quantização correspondente a SizeID e MatrixID e atualiza uma matriz de quantização correspondente a SizeID e MatrixID decodificada previamente, em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser decodificada.
[0385]Ademais, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1 e um valor de scaling_list_update_flag [SizeID] [MatrixID] é 0, o decodificador não decodifica uma matriz de quantização correspondente a SizeID e MatrixID, determina os valores de coeficiente de uma matriz de quantização como sendo os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, não atualiza uma matriz de quantização correspondente a SizeID e MatrixID decodificada previamente, em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser decodificada, e utiliza a matriz de quantização correspondente a SizeID e MatrixID que foi anteriormente decodificada.
[0386]Por outro lado, quando um valor de sid_mid_use_default_scaling_list_flag [SizeID] [MatrixID] é 1 e um valor de scaling_list_update_flag [SizeID] [MatrixID] é 1, o decodificador não decodifica uma matriz de quantização correspondente a SizeID e MatrixID, determina os valores de coeficiente de uma matriz de quantização como sendo os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, e atualiza uma matriz de quantização correspondente a SizeID e MatrixID decodificada previamente, em uma matriz de quantização correspondente a SizeID e MatrixID dentro de um parâmetro a ser decodificada.
[0387]No exemplo da Tabela 17, use_default_scaling_list_flag pode não ser decodificado.
[0388]Ademais, o decodificador pode decodificar a informação sobre um método de decodificação preditiva de uma matriz de quantização a partir do conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para uma matriz de quantização com base na informação decodificada. Como no exemplo da Tabela 18, o decodificador pode decodificar pred_mode_flag, isto é, a informação sobre um método de decodificação preditiva de uma matriz de quantização, a partir de um conjunto de parâmetros de adaptação. Por exemplo, quando um valor de pred_mode_flag é 1, o decodificador pode decodificar a matriz de quantização de acordo com o método de Modulação de Código de Pulso Diferencial (DPCM) e método de codificação de exponencial de Golomb. Quando um valor de pred_mode_flag é 0, o decodificador determina os valores de coeficientes da matriz de quantização como sendo os mesmos dos valores de coeficiente de uma matriz de quantização que foi previamente decodificada. Aqui, os valores de coeficiente da matriz de quantização e os valores de coeficiente da matriz de quantização que foram previamente decodificados podem ser valores dentro de diferentes matrizes de quantização, e a matriz de quantização previamente decodificada pode significar uma matriz de quantização de referência.
[0389]Se um valor de pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Como no exemplo da Tabela 18, o decodificador pode decodificar pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros de adaptação. Aqui, o decodificador pode determinar RefMatrixID indicativo da matriz de quantização de referência da matriz de quantização a ser decodificada usando pred_matrix_id_delta e a Equação 16. <Equação 16> RefMatrixID = MatrixID - (1 + pred_matrix_id_delta)
[0390]Se um método de decodificação preditiva de uma matriz de quantização é um método de decodificação de matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o valor de coeficiente da matriz de quantização que foi previamente decodificada pode ser um valor de coeficiente dentro da matriz de quantização a ser decodificada. Como no exemplo da Tabela 19, o decodificador pode decodificar delta_coef, isto é, um valor de diferença entre o valor de coeficiente da matriz de quantização que foi previamente decodificado e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros de adaptação.
[0391]Enquanto isso, uma matriz de quantização padrão e uma matriz de quantização não padrão podem ser misturadas e usadas dentro de uma sequência, imagem, ou fatia usando o método a seguir, e a recepção de uma matriz de quantização desnecessária pode ser evitada.
[0392]Por exemplo, se um método de decodificação preditiva de uma matriz de quantização é um método de determinar a matriz de quantização como sendo a mesma de uma matriz de quantização que já foi incluída no decodificador e que foi previamente decodificada (pred_mode_flag = 0), o decodificador pode decodificar informação sobre se uma matriz padrão foi usada ou não, usando o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros.
[0393]Como no exemplo da Tabela 18, o decodificador pode decodificar pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, o decodificador pode determinar RefMatrixID, isto é, a informação especificando a matriz de quantização de referência ou a matriz padrão da matriz de quantização a ser decodificada e a informação sobre se uma matriz padrão foi utilizada ou não, usando pred_matrix_id_delta e a Equação 17. <Equação 17> RefMatrixID = MatrixID - pred_matrix_id_delta
[0394]Por exemplo, quando um valor de RefMatrixID é idêntico a um valor de MatrixID, os valores de coeficientes de uma matriz de quantização correspondente a SizeID e RefMatrixID são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Aqui, a matriz padrão significa uma matriz padrão correspondente a SizeID e RefMatrixID. Além disso, quando um valor de pred_matrix_id_delta é 0, um valor de RefMatrixID torna-se idêntico a um valor de MatrixID. Se um valor de RefMatrixID não é idêntico a um valor de MatrixID, uma matriz de quantização correspondente a RefMatrixID é determinada como a matriz de quantização de referência de uma matriz de quantização a ser decodificada e os valores de coeficiente da matriz de quantização a ser decodificada são determinados como sendo idênticos aos valores de coeficiente da matriz de quantização de referência.
[0395]Se o tamanho de uma matriz de quantização correspondente a SizeID está incluído em um tamanho mínimo e em um tamanho máximo de uma unidade de transformação que estão disponíveis para o decodificador, a matriz de quantização de referência da matriz de quantização a ser decodificada e se a matriz padrão foi utilizada ou não pode ser determinado usando o método acima. Se o tamanho de uma matriz de quantização correspondente a SizeID não está incluído em um tamanho mínimo e em um tamanho máximo de uma unidade de transformação que estão disponíveis para o decodificador, a matriz de quantização correspondente a SizeID não pode ser determinada como sendo a mesma de uma matriz padrão. O processo de determinação acima para SizeID pode ser realizado se uma ou mais dentre a decodificação da matriz de quantização, a decodificação da informação sobre se uma matriz padrão foi utilizada ou não, e a decodificação de informação sobre o tipo de método de decodificação preditiva são realizadas com base em um valor de diferença entre o tamanho máximo e um valor mínimo de uma unidade de transformação, dentre as partes de informação sobre a unidade de transformação.
[0396]Após determinar se a matriz de quantização foi usada ou não, o decodificador pode decodificar informação sobre se a matriz de quantização foi usada ou não a partir do conjunto de parâmetros.
[0397]Como no exemplo da Tabela 20, o decodificador pode decodificar scaling_list_enable_flag, isto é, a informação sobre se a matriz de quantização foi utilizada ou não, a partir de um conjunto de parâmetros. Aqui, quando um valor de scaling_list_enable_flag é 1, o decodificador pode usar uma matriz de quantização, tal como uma matriz padrão ou uma matriz não padrão, em desquantização. Quando um valor de scaling_list_enable_flag é 0, o decodificador não utiliza a matriz de quantização ou pode usar uma matriz de quantização tendo todos os mesmos valores de coeficiente em desquantização. Aqui, todos os valores de coeficiente podem ser 16.
[0398]Ademais, se um método de predição e codificação de uma matriz de quantização é um método de decodificação da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma quantização matriz que foi previamente decodificada e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. O valor de coeficiente da matriz de quantização que foi anteriormente decodificada pode ser um valor de coeficiente dentro da matriz de quantização a ser decodificada. Isto é, o valor de coeficiente da matriz de quantização foi previamente decodificado e o valor de coeficiente da matriz de quantização a ser decodificada podem ser valores dentro da mesma matriz de quantização.
[0399]Como no exemplo da Tabela 21, o decodificador pode decodificar delta_coef, isto é, um valor de diferença entre o valor de coeficiente da matriz de quantização que foi previamente decodificada e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Como no exemplo da Tabela 21, se o valor de coeficiente ‘nextcoef’ de uma matriz de quantização é (1) idêntico a um valor específico e é (2) o primeiro valor da matriz de quantização, os valores de coeficiente da matriz de quantização correspondente podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador por meio da Equação 18. <Equação 18> nextcoef = (nextcoef + delta_coef + 256) % 256
[0400]Isto é, se o valor do coeficiente ‘nextcoef’ da matriz de quantização é (1) idêntico a um valor específico e é (2) o primeiro valor da matriz de quantização, o decodificador pode utilizar a matriz de quantização correspondente como uma matriz padrão. Aqui, o valor específico pode ser 0. Ademais, a matriz padrão pode significar uma matriz padrão especificada por SizeID e MatrixID. Consequentemente, se o valor de coeficiente ‘nextcoef’ da matriz de quantização é idêntico a 0 e é o primeiro valor da matriz de quantização, o decodificador pode parar a decodificação de um valor de diferença entre a matriz de quantização correspondente e a matriz de quantização.
[0401]Por outro lado, se um método de predição e decodificação de uma matriz de quantização é um método de decodificação de matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. O valor de coeficiente da matriz de quantização que foi previamente decodificada pode ser um valor de coeficiente dentro da matriz de quantização a ser decodificada. Isto é, o valor de coeficiente da matriz de quantização que foi previamente decodificada e o valor de coeficiente da matriz de quantização a ser decodificada podem ser os valores dentro da mesma matriz de quantização.
[0402]Como no exemplo da Tabela 22, o decodificador pode decodificar delta_coef, isto é, um valor de diferença entre o valor de coeficiente da matriz de quantização que foi previamente decodificada e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Por exemplo, como no exemplo da Tabela 22, se o valor de coeficiente ‘nextcoef’ de uma matriz de quantização calculado utilizando a Equação 18, isto é, (nextcoef + delta_coef + 256) % 256, é idêntico a um valor específico e é o primeiro valor da matriz de quantização, o decodificador pode determinar os valores de coeficiente da matriz de quantização correspondente como sendo os mesmos dos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Isto é, se nextcoef é (1) idêntico ao valor específico e é (2) o primeiro valor da matriz de quantização, o decodificador pode utilizar a matriz de quantização correspondente como uma matriz padrão. Aqui, o valor específico pode ser 0, e o valor de coeficiente da matriz de quantização calculado utilizando (nextcoef + delta_coef + 256) % 256 pode ser o valor de coeficiente de uma matriz de quantização com um tamanho de 4x4 ou 8x8.
[0403]Ademais, o primeiro valor da matriz de quantização pode ser um valor usando scaling_list_dc_coef_minus8, e o valor específico pode ser um valor que corresponde a scaling_list_dc_coef_minus8 + 8.
[0404]scaling_list_dc_coef_minus8 pode significar o primeiro valor de uma matriz de quantização tendo um tamanho de 16x16 ou 32x32, o que pode significar um valor de coeficiente de matriz DC.
[0405]Quando um valor de sizeID é 2, scaling_list_dc_coef_minus8 [sizeID- 2] [matrixID] pode corresponder a um valor de coeficiente de matriz DC tendo um tamanho de 16x16. Aqui, 16x16 pode ser o tamanho de um bloco de transformação correspondente a uma matriz de quantização. Quando um valor de SizeID é 3, scaling_list_dc_coef_minus8 [sizeID-2] [matrixID] pode corresponder a um valor de coeficiente de matriz de DC em uma matriz de quantização com um tamanho de 32x32. Aqui, o tamanho 32x32 pode ser o tamanho de um bloco de transformação correspondente a uma matriz de quantização. Em cada caso, a matriz padrão pode significar uma matriz padrão correspondente a SizeID e MatrixID. Consequentemente, se o valor de coeficiente ‘nextcoef’ de uma matriz de quantização é idêntico a 0 e é o primeiro valor da matriz de quantização, o decodificador pode parar a decodificação de um valor de diferença entre (isto é, a diferença entre os valores de coeficiente) entre a matriz de quantização correspondente e a matriz de quantização.
[0406]O decodificador pode executar diferentemente se ou não decodificar scaling_list_dc_coef_minus8, isto é, um valor de coeficiente de matriz DC, e a decodificação de informação sobre se uma matriz padrão foi utilizada ou não de acordo com o tamanho de uma matriz de quantização ou um tamanho de transformação utilizando o método.
[0407]Ademais, um método de codificação/decodificação de uma matriz de quantização para determinar se ou não usar uma matriz padrão usando o valor de coeficiente de uma matriz de quantização é uma desvantagem na medida em que o grau de complexidade em um processo de codificação/decodificação do valor de coeficiente de uma matriz de quantização é aumentado. Em contraste, na presente invenção, na codificação/decodificação de imagem, se ou não utilizar uma matriz padrão pode ser determinado utilizando um ID de matriz de quantização de referência. Consequentemente, o grau de complexidade do cálculo em um processo de codificação/decodificação de uma matriz de quantização pode ser reduzido.
[0408]Em primeiro lugar, o decodificador pode decodificar informação indicativa de se uma matriz de quantização está presente ou não a partir do conjunto de parâmetros. Como no exemplo da Tabela 23, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso significa que a matriz de quantização não está presente e a matriz de quantização é determinada como uma matriz de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso significa que uma matriz de quantização codificada está presente.
[0409]O decodificador pode decodificar a informação sobre um método de predição e decodificação da matriz de quantização a partir do conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de decodificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação. Como no exemplo da Tabela 23, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predição e decodificação da matriz de quantização, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador prediz e decodifica um coeficiente dentro da matriz de quantização decodificando a matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador determina os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência ou determina os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores que os valores de coeficiente de uma matriz padrão. Aqui, determinar os valores de modo que tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser decodificada é utilizado.
[0410]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e informação sobre se uma matriz padrão foi usada ou não a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência e a informação são decodificados pode ser um conjunto de parâmetros de adaptação.
[0411]Isto é, como no exemplo da Tabela 23, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, a informação especificando o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e a informação sobre se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros. Aqui, o decodificador pode determinar RefMatrixID indicativo da matriz de quantização de referência ou a matriz padrão da matriz de quantização a ser decodificada usando scaling_list_pred_matrix_id_delta e a Equação 19. <Equação 19> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta
[0412]Se um valor de RefMatrixID é idêntico a um valor de matrixID, os valores de coeficiente de uma matriz de quantização a ser decodificada, correspondente a sizeID e matrixID, podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Aqui, a matriz padrão pode ser uma matriz padrão correspondente a sizeID e matrixID. Com relação à Equação 19, quando um valor de scaling_list_pred_matrix_id_delta é 0, isso significa que um valor de RefMatrixID é idêntico a um valor de matrixID.
[0413]Se um valor de RefMatrixID não é idêntico a um valor de matrixID, o decodificador pode determinar uma matriz de quantização correspondente a RefMatrixID como a matriz de quantização de referência de uma matriz de quantização a ser decodificada e determinar os valores de coeficiente da matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição de matriz de quantização de determinar uma matriz de quantização de referência correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é usado. Aqui, um valor de scaling_list_pred_matrix_id_delta pode ser um valor inteiro positivo.
[0414]Se um método de predição e decodificação de uma matriz de quantização é um método de predizer e decodificar um coeficiente dentro da matriz de quantização de acordo com o método DPCM e método de codificação de exponencial de Golomb através de varredura, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor de diferença é decodificado pelo decodificador pode ser um conjunto de parâmetros de adaptação.
[0415]Como no exemplo da Tabela 24, se o tamanho de uma matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Ademais, como no exemplo da Tabela 24, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Nos exemplos das Tabelas 23 e 24, os exemplos nos quais a informação sobre a matriz de quantização é decodificada a partir do conjunto de parâmetros de adaptação foram ilustrados, mas a presente invenção não está limitada a esses. O decodificador pode decodificar informação sobre a matriz de quantização a partir de outro conjunto de parâmetros (isto é, um conjunto de parâmetros incluindo ao menos um dentre um conjunto de parâmetros de sequência e um conjunto de parâmetros de imagem).
[0416]Como descrito acima no exemplo do codificador, nos métodos convencionais de codificação/decodificação de matriz de quantização, a eficiência da codificação é deteriorada porque informação desnecessária é codificada/decodificada quando predizendo uma matriz de quantização. Na presente invenção, entretanto, a eficiência da codificação pode ser melhorada quando codificando/decodificando uma matriz de quantização, porque a codificação/decodificação de matriz de quantização pode ser realizada diferentemente dependendo se uma matriz de quantização de referência está presente ou não.
[0417]Mais particularmente, o decodificador pode decodificar informação indicativa se uma matriz de quantização está presente ou não a partir do conjunto de parâmetros. Como no exemplo da Tabela 25, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação sobre se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso significa que a matriz de quantização não está presente e todas as matrizes de quantização são determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso significa que uma matriz de quantização codificada está presente.
[0418]Por outro lado, quando um valor de matrixID é maior que 0, o decodificador pode decodificar a informação sobre um método de predição e decodificação de uma matriz de quantização a partir do conjunto de parâmetros e determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre um método de decodificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação.
[0419]Por exemplo, como no exemplo da Tabela 25, quando um valor de matrixID é maior que 0, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predição e decodificação de uma matriz de quantização, a partir de um conjunto de parâmetros. No exemplo da Tabela 25, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização decodificando a matriz de quantização de acordo com o método DPCM- inverso e método de codificação de exponencial de Golomb através de varredura. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência. Aqui, determinar os valores de modo que eles tenham os mesmos valores pode significar que um método de predição da matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0420]Ademais, no exemplo da Tabela 25, quando um valor de matrixID é 0, um valor de scaling_list_pred_mode_flag se torna TRUE. Consequentemente, o decodificador não decodifica scaling_list_pred_mode_flag e pode decodificar a matriz de quantização através de varredura da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb.
[0421]Se um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é maior que 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência é decodificado pode ser um conjunto de parâmetros de adaptação.
[0422]Por exemplo, como no exemplo da Tabela 25, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada, a partir do conjunto de parâmetro quando um valor de matrixID é maior do que 0. Aqui, RefMatrixID indicando a matriz de quantização de referência da matriz de quantização a ser decodificada pode ser determinado usando scaling_list_pred_matrix_id_delta e a Equação 20. <Equação 20> RefMatrixID = matrixID-(1 + scaling_list_pred_matrix_id_delta)
[0423]No exemplo da Tabela 25, matrixID tendo um valor de 0 indica a primeira matriz de quantização para cada sizeID. A matriz de quantização pode ser predita a partir de apenas uma matriz de quantização previamente decodificada tendo o mesmo sizeID, e a predição de uma matriz de quantização utilizando um método, tal como a cópia de matriz, não pode ser realizada na primeira matriz de quantização para cada sizeID porque uma matriz de quantização de referência tendo o mesmo valor sizeID não está presente. Consequentemente, quando um valor de matrixID é maior que 0, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência, determinar uma matriz de quantização correspondene a RefMatrixID como a matriz de quantização de referência de uma matriz de quantização a ser decodificada com base no ID de matriz de quantização de referência decodificado, e determinar os valores de coeficiente da matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição da matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores dos coeficientes da matriz de referência de quantização para os valores de coeficientes da matriz de quantização a ser decodificada é usado.
[0424]Se um método de predizer e decodificar a matriz de quantização decodificada é um método de predizer e decodificar um coeficiente dentro da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor de diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0425]Por exemplo, como no exemplo da Tabela 26, quando o tamanho de uma matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Além disso, como no exemplo da Tabela 26, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros.
[0426]Por outro lado, o decodificador pode determinar se uma matriz padrão foi utilizada ou não, usando scaling_list_delta_coef que é usado para calcular scaling_list_dc_coef_minus8 ou nextCoef. Por exemplo, um valor de scaling_list_dc_coef_minus8 é decodificado como -8, o decodificador pode determinar a matriz de quantização correspondente como uma matriz padrão. Quando um valor do primeiro valor calculado nextCoef decodificando scaling_list_delta_coef é 0, o decodificador pode determinar a matriz de quantização correspondente como uma matriz padrão.
[0427]Como descrito acima no exemplo do codificador, um método de codificação/decodificação de uma matriz de quantização para determinar se uma matriz padrão foi utilizada ou não, utilizando o valor de coeficiente de uma matriz de quantização tem uma desvantagem na medida em que aumenta o grau de complexidade de um processo de codificação/decodificação do valor de coeficiente da matriz de quantização. Ademais, a eficiência da codificação é deteriorada porque informação desnecessária é codificada/decodificada quando predizendo a matriz de quantização. Na presente invenção, entretanto, em codificação/decodificação de imagem, o grau de complexidade de cálculo na codificação/decodificação de uma matriz de quantização pode ser reduzido, porque se uma matriz padrão foi utilizada ou não pode ser determinada com base em um ID de matriz de quantização de referência, e a eficiência da codificação na codificação/decodificação de uma matriz de quantização pode ser melhorada porque a matriz de quantização é diferentemente codificada/decodificada, dependendo se uma matriz de quantização de referência está presente ou não.
[0428]Mais particula, em primeiro lugar, o decodificador pode decodificar informação indicativa de se uma matriz de quantização está presente ou não a partir do conjunto de parâmetros. Tal como no exemplo da Tabela 27, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização são determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, ele indica uma matriz de quantização codificada.
[0429]Ademais, o decodificador pode decodificar informação sobre um método de predição e codificação de uma matriz de quantização a partir do conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de decodificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação.
[0430]Mais particularmente, como no exemplo da Tabela 27, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predizer e decodificar uma matriz de quantização, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização decodificando a matriz de quantização de acordo com o método DPCM- inverso e método de codificação de exponencial de Golomb. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência ou determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz padrão. Aqui, determinar os valores de modo que tenham os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser decodificada é utilizado.
[0431]Se um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é maior que 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e a informação sobre se a matriz padrão foi utilizada ou não, a partir do conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência e a informação sobre se a matriz padrão foi usada ou não são decodificados pode ser um conjunto de parâmetros de adaptação.
[0432]Neste caso, como no exemplo da Tabela 27, quando um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é maior que 0, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, indicando o ID de matriz de quantização de referência da matriz de quantização a ser decodificada e a informação sobre se a matriz padrão foi usada ou não, a partir de um conjunto de parâmetros. Aqui, RefMatrixID indicando a matriz de quantização de referência ou a matriz padrão da matriz de quantização a ser decodificada pode ser determinado usando scaling_list_pred_matrix_id_delta e Equação 21. <Equação 21> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta
[0433]Se um valor de RefMatrixID é idêntico a um valor de matrixID, os valores de coeficiente de uma matriz de quantização a ser decodificada, correspondente a sizeID e matrixID, são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Aqui, a matriz padrão significa uma matriz padrão correspondente a sizeID e matrixID. De acordo com a Equação 21, quando um valor de scaling_list_pred_matrix_id_delta é 0, isso significa que um valor de RefMatrixID é idêntico a um valor de matrixID.
[0434]Se um valor de RefMatrixID não é idêntico a um valor de matrixID, uma matriz de quantização correspondente a RefMatrixID é determinada como a matriz de quantização de referência da matriz de quantização a ser decodificada e os valores de coeficiente da matriz de quantização a ser decodificada são determinados como sendo idênticos aos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição da matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é usado.
[0435]Aqui, quando um valor de scaling_list_pred_mode_flag é 0, isso indica que o método de predição e decodificação de uma matriz de quantização é um método de determinar uma matriz de quantização como sendo idêntica a uma matriz de quantização previamente decodificada. Nesse caso, a matriz de quantização pode ser predita a partir de uma matriz de quantização previamente decodificada com o mesmo sizeID.
[0436]Quando um valor de matrixID é 0, a primeira matriz de quantização é indicada para cada sizeID. Se um valor de scaling_list_pred_mode_flag é 0 e um valor de matrixID é 0, a predição de uma matriz de quantização utilizando um método, tal como cópia de matriz, não pode ser realizada na primeira matriz de quantização para cada sizeID porque uma matriz de quantização de referência tendo o mesmo valor sizeID não está presente. Nesse caso, o decodificador não decodifica scaling_list_pred_matrix_id_delta e deriva um valor de scaling_list_pred_matrix_id_delta como 0. Quando um valor de scaling_list_pred_matrix_id_delta é 0, os valores de coeficiente de uma matriz de quantização a ser decodificada, correspondente a sizeID e matrixID, são determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador, porque um valor de RefMatrixID é idêntico a um valor de matrixID. Aqui, a matriz padrão significa uma matriz padrão correspondente a sizeID e matrixID.
[0437]Se um método de predição e decodificação da matriz de quantização decodificada é um método de predizer e decodificar um coeficiente dentro da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura, o decodificador pode decodificar um valor de diferença entre o valor do coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor de diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0438]Por exemplo, como no exemplo da Tabela 28, se o tamanho de uma matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Como no exemplo da Tabela 28, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros.
[0439]Como descrito acima no exemplo do codificador, em métodos convencionais de codificação/decodificação da matriz de quantização, quando enviando uma matriz de quantização, o número total de coeficientes e um coeficiente de matriz DC dentro da matriz é codificado/decodificado. Nesse caso, a melhora da eficiência de codificação é limitada porque o coeficiente de matriz DC não é predito e codificado/decodificado. Na presente invenção, um coeficiente de matriz DC dentro de uma matriz de quantização pode ser predito e codificado/decodificado, e assim a eficiência da codificação pode ser melhorada. Por exemplo, nos exemplos das Tabelas 29 e 30, a eficiência da codificação pode ser melhorada porque o coeficiente de matriz DC não é predito a partir de uma constante 8, mas é predito a partir de coeficientes AC vizinhos utilizando a alta correlação entre os coeficientes vizinhos. Ademais, nos exemplos das Tabelas 29 e 30, um espaço em memória para armazenar os coeficientes de matriz DC pode ser reduzido porque a sequência de codificação/decodificação de uma matriz de quantização é feita idêntica à sequência de restauração da matriz de quantização. Ademais, nos exemplos das Tabelas 29 e 30, se uma matriz padrão foi usada ou não pode ser indicado pela elemento de sintaxe ‘scaling_list_delta_coef’ sem o uso de vários elementos de sintaxe.
[0440]Mais particularmente, o decodificador pode decodificar a informação indicativa do fato de que uma matriz de quantização está presente ou não a partir de um conjunto de parâmetros. Por exemplo, como no exemplo da Tabela 29, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Aqui, quando o valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização são determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso indica que uma matriz de quantização codificada está presente.
[0441]O decodificador pode decodificar a informação sobre um método de predição e decodificação da matriz de quantização a partir do conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de predição e decodificação da matriz de quantização é decodificada pode ser um conjunto de parâmetros de adaptação.
[0442]Mais particularmente, como no exemplo da Tabela 29, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predizer e decodificar a matriz de quantização, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência. Aqui, determinar os valores de modo a terem os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0443]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência da matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência é decodificado pode ser um conjunto de parâmetros de adaptação.
[0444]Mais particularmente, como no exemplo da Tabela 29, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, RefMatrixID indicando a matriz de quantização de referência da matriz de quantização a ser decodificada pode ser determinado usando scaling_list_pred_matrix_id_delta e a Equação 22. <Equação 22> RefMatrixID = matrixID-(1 + scaling_list_pred_matrix_id_delta)
[0445]O decodificador pode determinar uma matriz de quantização, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e determinar os valores de coeficiente da matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição da matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é usado.
[0446]Se um método de predição e decodificação da matriz de quantização decodificada é um método para predizer e decodificar um coeficiente dentro da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor da diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0447]Por exemplo, como no exemplo da Tabela 30, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, o decodificador pode determinar se uma matriz padrão foi utilizada ou não, usando scaling_list_delta_coef que é usado para calcular nextCoef. Isto é, quando um valor do primeiro nextCoef calculado decodificando scaling_list_delta_coef é 0, o decodificador pode determinar a matriz de quantização correspondente como uma matriz padrão.
[0448]Por outro lado, como no exemplo da Tabela 30, o decodificador pode decodificar scaling_list_dc_coef_res, isto é, um valor da diferença entre os valores de coeficiente de matrizes de quantização correspondentes a um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Aqui, scaling_list_dc_coef_res pode ser decodificado a partir de (useDefaultScalingMatrixFlag = 0) quando o tamanho da matriz de quantização para ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3) e uma matriz padrão não é utilizada.
[0449]Em relação a uma matriz de quantização com um tamanho de 16x16 ou 32x32, cuja matriz DC é decodificada separadamente, o coeficiente de matriz DC pode ser calculado usando a soma de um valor de scaling_list_dc_coef_res e um coeficiente de matriz presente em uma localização DC de acordo com a Equação 23. <Equação 23> ScalingFactor [2] [matrixID] [0] [0] = scaling_list_dc_coef_res [0] [matrixID] + ScalingFactor [2] [matrixID] [0] [0] com matrixID = 0 .. 5 ScalingFactor[3][matrixID][0][0]=scaling_list_dc_coef_res[1][matrixID]+ Scal- ingFactor[3][matrixID][0][0] com matrixID = 0 .. 1
[0450]Na equação 23, ScalingFactor [2] refere-se a uma matriz de quantização com um tamanho de 16x16, e ScalingFactor [3] se refere a uma matriz de quantização com um tamanho de 32x32. Além disso, ScalingFactor [2] [matrixID] [0] [0] refere-se a um coeficiente de matriz DC dentro da matriz de quantização com um tamanho de 16x16, correspondendo a matrixID. ScalingFactor [3] [matrixID] [0] [0] refere-se a um coeficiente de matriz DC dentro da matriz de quantização com um tamanho de 32x32, correspondendo a matrixID.
[0451]Por outro lado, um método de codificação/decodificação de uma matriz de quantização para determinar se uma matriz padrão foi utilizada ou não, utilizando o valor de coeficiente de uma matriz de quantização tem uma desvantagem na medida em que aumenta o grau de complexidade em um processo de codificar/decodificar o valor de coeficiente da matriz de quantização. Além disso, todos os coeficientes e um coeficiente de matriz DC dentro de uma matriz de quantização são codificados/decodificados quando enviando a matriz de quantização. Nesse caso, a melhora da eficiência de codificação é limitada porque o coeficiente de matriz DC não é predito e codificado/decodificado.
[0452]Na presente invenção, em codificação/decodificação de imagem, o grau de complexidade quando codificando/decodificando uma matriz de quantização pode ser reduzido determinando se uma matriz padrão foi utilizada ou não com base em um ID de matriz de quantização de referência. Ademais, a eficiência de codificação pode ser melhorada através da predição e codificação/decodificação de um coeficiente de matriz DC dentro de uma matriz de quantização. Por exemplo, nos exemplos das Tabelas 31 e 32, a eficiência de codificação pode ser melhorada através da predição de um coeficiente de matriz DC dentro de uma matriz de quantização a partir de coeficientes AC vizinhos com base em uma alta correlação entre os coeficientes vizinhos sem predizer o coeficiente de matriz DC a partir de uma constante 8. Além disso, nos exemplos das Tabelas 31 e 32, um espaço em memória para armazenar coeficientes de matriz DC pode ser reduzido, porque a sequência de codificação/decodificação de uma matriz de quantização pode ser idêntica à sequência de restauração da matriz de quantização. Além disso, no exemplo das Tabelas 31 e 32, se uma matriz padrão foi usada ou não pode ser indicado pelo elemento de sintaxe de ‘scaling_list_delta_coef’ sem o uso de vários elementos de sintaxe.
[0453]Mais particularmente, o decodificador pode decodificar informação indicativa de se uma matriz de quantização está presente ou não a partir de um conjunto de parâmetros. Como no exemplo da Tabela 31, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Aqui, quando o valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização são determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso indica que uma matriz de quantização codificada está presente.
[0454]O decodificador pode decodificar informação sobre um método de predizer e decodificar uma matriz de quantização a partir de um conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de decodificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação.
[0455]Por exemplo, como no exemplo da Tabela 31, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predição e decodificação de uma matriz de quantização, a partir de um conjunto de parâmetros. No exemplo da Tabela 31, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização decodificando a matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura. Quando um valor de scaling_list_pred_mode_flag é 0, os valores de coeficiente de uma matriz de quantização a ser decodificada podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência ou os valores de coeficiente de uma matriz de quantização a ser decodificada podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão. Aqui, determinar os valores de modo que eles tenham valores idênticos pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser decodificada é utilizado.
[0456]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e informação sobre se uma matriz padrão foi usada ou não a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros decodificado pode ser um conjunto de parâmetros de adaptação.
[0457]Mais particularmente, como no exemplo da Tabela 31, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, informação sobre o ID de matriz de quantização de referência da matriz de quantização a ser decodificada e se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros. Aqui, RefMatrixID indicando a matriz de quantização de referência ou a matriz padrão da matriz de quantização a ser decodificada é determinado usando scaling_list_pred_matrix_id_delta e a Equação 24. <Equação 24> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta
[0458]Se um valor de RefMatrixID é idêntico a um valor de matrixID, os valores de coeficiente de uma matriz de quantização a ser decodificada, correspondente a sizeID e matrixID, podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Aqui, a matriz padrão refere-se a uma matriz padrão correspondente a sizeID e matrixID. Ademais, na Equação 24, quando um valor de scaling_list_pred_matrix_id_delta é 0, isso significa que um valor de RefMatrixID é idêntico a um valor de matrixID. Quando um valor de RefMatrixID não é idêntico a um valor de matrixID, uma matriz de quantização correspondente a RefMatrixID pode ser determinada como a matriz de quantização de referência da matriz de quantização a ser decodificada e os valores de coeficiente da matriz de quantização a ser decodificada podem ser determinados como sendo idênticos aos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficientes de uma matriz de quantização a ser decodificada como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição de matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é usado.
[0459]Se um método de predição e decodificação da matriz de quantização decodificada é um método de decodificação da matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb, a fim de predizer e decodificar um coeficiente dentro da matriz de quantização através de varredura, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor da diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0460]Ademais, como no exemplo da Tabela 32, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor do coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor do coeficiente de uma matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Como no exemplo da Tabela 32, o decodificador pode decodificar scaling_list_dc_coef_res, isto é, um valor da diferença entre os valores de coeficiente de matrizes de quantização correspondentes a um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Aqui, scaling_list_dc_coef_res pode ser decodificado a partir de (useDefaultScalingMatrixFlag = 0), se o tamanho de uma matriz de quantização a ser decodificada é um 16x16 (sizeID = 2) ou 32x32 (sizeID = 3) e uma matriz padrão não é utilizada.
[0461]Em relação a uma matriz de quantização com um tamanho de 16x16 ou uma matriz de quantização com um tamanho de 32x32 cujo coeficiente de matriz DC é decodificado separadamente, o coeficiente de matriz DC pode ser calculado usando a soma de um valor de scaling_list_dc_coef_res e o coeficiente de uma matriz presente em uma localização DC como na Equação 25. <Equação 25> ScalingFactor [2] [matrixID] [0] [0] = scaling_list_dc_coef_res [0] [matrixID] + ScalingFactor [2] [matrixID] [0] [0] com matrixID = 0 .. 5 ScalingFactor [3] [matrixID] [0] [0] = scaling_list_dc_coef_res [1] [matrixID] + ScalingFactor [3] [matrixID] [0] [0] com matrixID = 0 .. 1
[0462]Na equação 25, ScalingFactor[2] refere-se a uma matriz de quantização de tamanho 16x16, e ScalingFactor[3] se refere a uma matriz de quantização de tamanho 32x32. Ademais, ScalingFactor [2] [matrixID] [0] [0] refere- se a um coeficiente de matriz DC dentro da matriz de quantização de tamanho 16x16 correspondente a um matrixID correspondente, e ScalingFactor [3] [matrixID] [0] [0] refere-se a um coeficiente de matriz DC dentro da matriz de quantização de tamanho 32x32 correspondente a um matrixID correspondente.
[0463]Como descrito acima em um exemplo relacionado ao codificador, em métodos convencionais de codificação/decodificação de matriz de quantização, uma matriz de quantização é copiada usando o tamanho da matriz de quantização quando quantização e a desquantização são executadas não utilizando o tamanho da matriz de quantização quando codificação/decodificação são executadas. Consequentemente, a eficiência da codificação de uma matriz de quantização é limitada porque a matriz de quantização precisa ser copiada a partir de um número limitado de matrizes de quantização. Na presente invenção, entretanto, a eficiência da codificação pode ser melhorada e o grau de liberdade na predição de uma matriz de quantização pode ser aumentado porque a matriz de quantização pode ser predita a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando codificação/decodificação são realizadas.
[0464]Mais particularmente, o decodificador pode decodificar informação indicativa de se uma matriz de quantização está presente ou não a partir de um conjunto de parâmetros. Como nos exemplos das Tabelas 33 e 34, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização são determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso indica que uma matriz de quantização codificada está presente.
[0465]Ademais, o decodificador pode decodificar a informação sobre um método de predição e decodificação da matriz de quantização a partir do conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de decodificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação.
[0466]Mais particularmente, como nos exemplos das Tabelas 33 e 34, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predição e decodificação da matriz de quantização, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização decodificando a matriz de quantização de acordo com um método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência. Aqui, determinar os valores de modo a terem os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0467]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o ID de informação (identificador) sobre a matriz de quantização de referência pode incluir um ou mais dentre o tamanho da matriz de quantização de referência de uma matriz de quantização a ser decodificada e da matriz de quantização de referência. Ademais, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência é decodificado pode ser um conjunto de parâmetros de adaptação.
[0468]Por exemplo, como no exemplo da Tabela 33, o decodificador pode decodificar scaling_list_pred_size_matrix_id_delta, isto é, ID de informação sobre a matriz de quantização de referência da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, RefSizeID, isto é, o tamanho da matriz de quantização de referência da matriz de quantização a ser decodificada, e RefMatrixID indicando a matriz de quantização de referência pode ser determinada usando scaling_list_pred_size_matrix_id_delta e a Equação 26. <Equação 26> RefSizeID = sizeID-(scaling_list_pred_size_matrix_id_delta/6) RefMatrixID = scaling_list_pred_size_matrix_id_delta % 6
[0469]Por outro lado, como no exemplo da Tabela 34, o decodificador pode decodificar scaling_list_pred_size_id_delta e scaling_list_pred_size_matrix_id_delta, isto é, informação de ID sobre a matriz de quantização de referência da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, RefSizeID pode ser determinado usando um valor de scaling_list_pred_size_id_delta e a Equação 27, e RefMatrixID indicando a matriz de quantização de referência da matriz de quantização a ser decodificada pode ser determinado usando scaling_list_pred_matrix_id_delta e a Equação 28. <Equação 27> RefSizeID = sizeID-scaling_list_pred_size_id_delta <Equação 28> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta
[0470]Os valores de coeficiente de uma matriz de quantização a ser decodificada podem ser igualmente determinados a partir dos valores de coeficiente de uma matriz de quantização de referência cujo sizeID é igual a RefSizeID e matrixID é igual a RefMatrixID. Isto é, o decodificador pode copiar a matriz de quantização de referência para a matriz de quantização a ser decodificada. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição de matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefSizeID e RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0471]Através dos exemplos das Tabelas 33 e 34, uma matriz de quantização pode ser predita a partir de uma matriz de quantização com o mesmo sizeID, e a matriz de quantização pode ser igualmente predita a partir de uma matriz de quantização com o mesmo tamanho de matriz, quando codificação/decodificação são realizadas, mas tendo um sizeID diferente.
[0472]Ademais, nos exemplos das Tabelas 33 e 34, um valor de scaling_list_pred_size_matrix_id_delta, um valor de scaling_list_pred_size_id_delta, e um valor de scaling_list_pred_matrix_id_delta podem ser limitados a um valor de um intervalo específico. Por exemplo, scaling_list_pred_size_matrix_id_delta pode ser limitado a um valor que varia de 0 a 17, scaling_list_pred_size_id_delta pode ser limitado a um valor que varia de 0 a 2, e scaling_list_pred_matrix_id_delta pode ser limitado a um valor que varia de 0 a 5.
[0473]Por outro lado, nos exemplos das Tabelas 33 e 34, o decodificador não pode predizer uma matriz de quantização a ser decodificada a partir de uma matriz de quantização com um tamanho maior do que a matriz de quantização a ser decodificada.
[0474]Ademais, nos exemplos das Tabelas 33 e 34, quando predizendo uma matriz de quantização a ser decodificada a partir de uma matriz de quantização com um tamanho de 8x8, o decodificador pode predizer um valor em uma localização correspondente determinando um valor, correspondente à localização de um coeficiente de matriz DC dentro da matriz de quantização de tamanho 8x8, como o coeficiente de matriz DC. Além disso, quando predizendo uma matriz de quantização a ser decodificada a partir de uma matriz de quantização tendo um tamanho 16x16 ou 32x32, o decodificador pode também predizer um coeficiente de matriz DC.
[0475]Ademais, se um método de predição e decodificação de uma matriz de quantização é um método de decodificação de matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura de modo a predizer e decodificar um coeficiente dentro da matriz de quantização, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro de uma matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor da diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0476]Mais particularmente, como no exemplo da Tabela 35, se o tamanho de uma matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, a partir de um conjunto de parâmetros.
[0477]Por outro lado, como no exemplo da Tabela 35, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros.
[0478]Ademais, o decodificador pode determinar se uma matriz padrão foi utilizada ou não, usando scaling_list_delta_coef que é usado para calcular scaling_list_dc_coef_minus8 ou nextCoef. Isto é, se um valor de scaling_list_dc_coef_minus8 é decodificado como -8, uma matriz de quantização correspondente pode ser determinada como uma matriz padrão. Se um valor do primeiro nextCoef calculado decodificando scaling_list_delta_coef é 0, uma matriz de quantização correspondente pode ser determinada como uma matriz padrão.
[0479]Como descrito acima em um exemplo do codificador, em métodos convencionais de codificação/decodificação de matriz de quantização, o grau de complexidade de um processo de codificação/decodificação do valor de coeficiente de uma matriz de quantização é aumentado, porque se uma matriz padrão foi utilizada ou não é determinado usando o valor de coeficiente da matriz de quantização. Além disso, uma matriz de quantização é copiada a partir de um número limitado de matrizes de quantização, porque a matriz de quantização é copiada usando o tamanho da matriz de quantização quando a quantização e a desquantização são realizadas não no tamanho da matriz de quantização quando codificação/decodificação são realizadas. Na presente invenção, entretanto, o grau de complexidade de cálculo quando a codificando/decodificando uma matriz de quantização pode ser reduzido determinando se uma matriz padrão foi utilizada ou não com base em um ID de matriz de quantização de referência. Ademais, na presente invenção, a eficiência da codificação pode ser melhorada e o grau de liberdade na predição de uma matriz de quantização pode ser aumentado através da predição de uma matriz de quantização a partir de uma matriz de quantização tendo o mesmo tamanho de uma matriz de quantização quando codificação/decodificação são realizadas.
[0480]Mais particularmente, o decodificador pode decodificar informação indicativa do fato de que uma matriz de quantização está presente ou não a partir de um conjunto de parâmetros. Tal como nos exemplos das Tabelas 36 e 37, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação que indica se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização podem ser determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso indica que uma matriz de quantização codificada está presente.
[0481]O decodificador pode decodificar informação sobre um método de predizer e codificar uma matriz de quantização a partir de um conjunto de parâmetros e pode determinar o tipo de método de predição e decodificação de uma matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros decodificado pode ser um conjunto de parâmetros de adaptação.
[0482]Como nos exemplos das Tabelas 36 e 37, o decodificador pode decodificar scaling_list_pred_mode_flag, ou seja, informação sobre um método de predizer e decodificar uma matriz de quantização, a partir de um conjunto de parâmetros. Aqui, quando o valor de scaling_list_pred_mode_flag é 1, o decodificador pode decodificar uma matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura de modo a predizer e decodificar um coeficiente dentro da matriz de quantização. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência ou determinam os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz padrão. Aqui, determinar os valores de modo a terem os mesmos valores pode significar que um método de predição de matriz de quantização de copiar os valores de coeficiente de uma matriz de quantização específica para os valores de coeficiente de uma matriz de quantização a ser decodificada é utilizado.
[0483]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e informação sobre se uma matriz padrão foi usada ou não a partir de um conjunto de parâmetros. Aqui, a informação de ID (identificador) sobre a matriz de quantização de referência pode incluir um ou mais dentre o tamanho da matriz de quantização de referência da matriz de quantização a ser decodificada e da matriz de quantização de referência. Ademais, o conjunto de parâmetros decodificado pode ser um conjunto de parâmetros de adaptação.
[0484]Por exemplo, como no exemplo da Tabela 36, o decodificador pode decodificar scaling_list_pred_size_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e a informação sobre se uma matriz padrão foi utilizada ou não, a partir de um conjunto de parâmetros. Aqui, RefSizeID e RefMatrixID indicando a matriz de quantização de referência podem ser determinados usando scaling_list_pred_size_matrix_id_delta e a Equação 29. <Equação 29> RefSizeID = sizeID-(scaling_list_pred_size_matrix_id_delta/6) RefMatrixID = scaling_list_pred_size_matrix_id_delta % 6
[0485]Ademais, como no exemplo da Tabela 37, o decodificador pode decodificar scaling_list_pred_size_id_delta e scaling_list_pred_size_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada e a informação sobre se uma matriz padrão foi utilizada ou não, a partir um conjunto de parâmetros. Aqui, RefSizeID pode ser determinado usando um valor de scaling_list_pred_size_id_delta e a Equação 30, e RefMatrixID indicando a matriz de quantização de referência ou a matriz padrão de uma matriz de quantização a ser decodificada pode ser determinado usando um valor de scaling_list_pred_matrix_id_delta e a Equação 31. <Equação 30> RefSizeID = sizeID-scaling_list_pred_size_id_delta <Equação 31> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta
[0486]Se um valor de RefMatrixID é idêntico a um valor de matrixID, os valores de coeficiente de uma matriz de quantização a ser decodificada, correspondente a sizeID e matrixID, podem ser determinados como sendo idênticos aos valores de coeficiente de uma matriz padrão definida no codificador e/ou no decodificador. Aqui, a matriz padrão refere-se a uma matriz padrão correspondente a sizeID e matrixID. Além disso, na Equação 31, quando um valor de scaling_list_pred_matrix_id_delta é 0, isso significa que um valor de RefMatrixID é igual a um valor de matrixID.
[0487]Se um valor de RefMatrixID não é idêntico a um valor de matrixID, uma matriz de quantização correspondendo a RefSizeID e RefMatrixID é determinada como a matriz de quantização de referência de uma matriz de quantização a ser decodificada e os valores de coeficiente da matriz de quantização a ser decodificada podem ser determinados como sendo idênticos aos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada como sendo idênticos aos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição da matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefSizeID e RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficientes da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0488]De acordo com o exemplo da Tabela 36 ou 37, uma matriz de quantização pode ser predita a partir de uma matriz de quantização com o mesmo sizeID, e uma matriz de quantização pode ser igualmente predita a partir de uma matriz de quantização com o mesmo tamanho de matriz, quando codificação/decodificação são executadas, mas tendo um sizeID diferente.
[0489]Por outro lado, no exemplo da Tabela 36 ou 37, um valor de scaling_list_pred_size_matrix_id_delta, um valor de scaling_list_pred_size_id_delta, e um valor de scaling_list_pred_matrix_id_delta podem ser limitados a uma gama mensurável. Por exemplo, scaling_list_pred_size_matrix_id_delta pode ser limitado a um valor que varia de 0 a 17, scaling_list_pred_size_id_delta pode ser limitado a um valor que varia de 0 a 2, e scaling_list_pred_matrix_id_delta pode ser limitado a um valor que varia de 0 a 5.
[0490]Por outro lado, no exemplo da Tabela 36 ou 37, o decodificador não pode predizer uma matriz de quantização a partir de uma matriz de quantização com um tamanho maior do que uma matriz de quantização a ser decodificada.
[0491]Ademais, quando se realiza a predição a partir de uma matriz de quantização com um tamanho de 8x8, o decodificador pode predizer um valor em uma localização correspondente determinando um valor, correspondente à localização de um coeficiente de matriz DC dentro da matriz de quantização de tamanho 8x8, como o coeficiente de matriz DC. Além disso, quando se realiza a predição a partir de uma matriz de quantização de tamanho 16x16 ou uma matriz de quantização de tamanho 32x32, o decodificador pode também predizer um coeficiente de matriz DC.
[0492]Ademais, se um método de predição e decodificação de uma matriz de quantização é um método de decodificação de matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura de modo a predizer e decodificar um coeficiente dentro da matriz de quantização, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor da diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0493]Como no exemplo da Tabela 38, se o tamanho de uma matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus8, isto é, um coeficiente de matriz DC, a partir de um conjunto de parâmetros.
[0494]Como no exemplo da Tabela 38, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros.
[0495]Como descrito acima, em um exemplo relacionado ao codificador, em métodos convencionais de codificação/decodificação de matriz de quantização, a melhora da eficiência de codificação é limitada, porque o valor de coeficiente de uma matriz de quantização é codificado não levando em conta um valor de coeficiente que ocorre frequentemente quando codificando/decodificando um primeiro coeficiente dentro da matriz de quantização. Na presente invenção, entretanto, a eficiência de codificação pode ser melhorada porque um primeiro coeficiente dentro de uma matriz de quantização pode ser predito e codificado/decodificado utilizando um valor de coeficiente que ocorre frequentemente. Se o primeiro valor de coeficiente ou valor de coeficiente de matriz DC de uma matriz padrão é definido como 16 e o primeiro valor de coeficiente ou valor de coeficiente de matriz DC de uma matriz não padrão é distribuído com base em 16, a eficiência de codificação pode ser melhorada se um primeiro valor de coeficiente ou um valor de coeficiente de matriz DC dentro de uma matriz de quantização a ser codificada/decodificada é codificado/decodificado através de predição do primeiro valor de coeficiente ou o valor de coeficiente de matriz DC a partir da constante 16.
[0496]Mais particularmente, o decodificador pode decodificar informação indicativa do fato de se uma matriz de quantização está presente ou não a partir de um conjunto de parâmetros. Tal como no exemplo da Tabela 39, o decodificador pode decodificar scaling_list_present_flag, isto é, a informação indicando se uma matriz de quantização está presente ou não dentro de um fluxo de bits, a partir de um conjunto de parâmetros. Por exemplo, quando um valor de scaling_list_present_flag é 0, isso indica que a matriz de quantização não está presente e, assim, todas as matrizes de quantização podem ser determinadas como matrizes de quantização padrão. Quando um valor de scaling_list_present_flag é 1, isso indica que uma matriz de quantização codificada está presente.
[0497]Ademais, o decodificador pode decodificar a informação sobre um método de predição e decodificação de uma matriz de quantização a partir de um conjunto de parâmetros e pode determinar o tipo de método de decodificação preditiva para a matriz de quantização com base na informação decodificada. Aqui, o conjunto de parâmetros a partir do qual a informação sobre o método de codificação preditiva é decodificada pode ser um conjunto de parâmetros de adaptação.
[0498]Como no exemplo da Tabela 39, o decodificador pode decodificar scaling_list_pred_mode_flag, isto é, a informação sobre um método de predição e decodificação de uma matriz de quantização, a partir de um conjunto de parâmetros. Aqui, quando o valor de scaling_list_pred_mode_flag é 1, o decodificador decodifica a matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura de modo a predizer e decodificar um coeficiente dentro da matriz de quantização. Quando um valor de scaling_list_pred_mode_flag é 0, o decodificador determina os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência. Aqui, determinar os valores de modo que tenham os mesmos valores pode significar que um método de predição da matriz de quantização de copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é utilizado.
[0499]Se um valor de scaling_list_pred_mode_flag é 0, o decodificador pode decodificar o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o ID de matriz de quantização de referência é decodificado pode ser um conjunto de parâmetros de adaptação.
[0500]Ademais, como no exemplo da Tabela 39, o decodificador pode decodificar scaling_list_pred_matrix_id_delta, isto é, o ID de matriz de quantização de referência de uma matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, RefMatrixID indicando a matriz de quantização de referência de uma matriz de quantização a ser decodificada pode ser determinado usando scaling_list_pred_matrix_id_delta e a Equação 32. <Equação 32> RefMatrixID = matrixID-(1 + scaling_list_pred_matrix_id_delta)
[0501]O decodificador pode determinar uma matriz de quantização, correspondente a RefMatrixID, como a matriz de quantização de referência de uma matriz de quantização a ser decodificada e determinar os valores de coeficiente da matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente da matriz de quantização de referência. Determinar os valores de coeficiente de uma matriz de quantização a ser decodificada de modo que eles tenham os mesmos valores dos valores de coeficiente de uma matriz de quantização de referência pode significar que um método de predição de matriz de quantização de determinar uma matriz de quantização de referência, correspondente a RefMatrixID, como a matriz de quantização de referência da matriz de quantização a ser decodificada e copiar os valores de coeficiente da matriz de quantização de referência para os valores de coeficiente da matriz de quantização a ser decodificada é usado. Aqui, um valor de scaling_list_pred_matrix_id_delta pode ser um valor inteiro positivo.
[0502]Se um método de predizer e decodificar a matriz de quantização decodificada é um método de decodificar a matriz de quantização de acordo com o método DPCM-inverso e método de codificação de exponencial de Golomb através de varredura, a fim de predizer e decodificar um coeficiente dentro da matriz de quantização, o decodificador pode decodificar um valor de diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente de uma matriz de quantização a ser decodificada a partir de um conjunto de parâmetros. Aqui, o conjunto de parâmetros a partir do qual o valor da diferença é decodificado pode ser um conjunto de parâmetros de adaptação.
[0503]Como no exemplo da Tabela 40, o decodificador pode decodificar scaling_list_delta_coef, isto é, um valor da diferença entre o valor de coeficiente de uma matriz de quantização que foi previamente decodificada dentro da matriz de quantização e o valor de coeficiente da matriz de quantização a ser decodificada, a partir de um conjunto de parâmetros. Aqui, o decodificador pode definir um valor de predição para o primeiro valor de coeficiente de 16 como em nextCoef = 16.
[0504]Ademais, como no exemplo da Tabela 40, se o tamanho da matriz de quantização a ser decodificada é 16x16 (sizeID = 2) ou 32x32 (sizeID = 3), o decodificador pode decodificar scaling_list_dc_coef_minus16, isto é, o valor de coeficiente de uma matriz de quantização correspondente a um coeficiente de matriz DC, a partir de um conjunto de parâmetros. Um valor de scaling_list_dc_coef_minus16 significa um coeficiente de matriz DC calculado assumindo-se que um valor de predição é 16.
[0505]Por outro lado, o decodificador pode determinar se uma matriz padrão foi utilizada ou não, usando scaling_list_delta_coef que é usado para calcular scaling_list_dc_coef_minus16 ou nextCoef. Por exemplo, se um valor de scaling_list_dc_coef_minus16 é decodificado como -16, uma matriz de quantização correspondente pode ser determinada como uma matriz padrão. Se um valor do primeiro valor nextCoef calculado decodificando scaling_list_delta_coef é 0, uma matriz de quantização correspondente pode ser determinada como uma matriz padrão.
[0506]Nos exemplos das tabelas, bem como os exemplos das Tabelas 39 e 40, nextCoef pode ser ajustado para 16 e um valor de scaling_list_dc_coef_minus16 pode significar um coeficiente de matriz DC calculado assumindo-se que um valor de predição é 16. Se um valor de scaling_list_dc_coef_minus16 é decodificado como - 16, o decodificador pode determinar uma matriz de quantização correspondente como uma matriz padrão.
[0507]As modalidades com relação à codificação/decodificação e à transmissão/recepção de informação sobre uma matriz de quantização de acordo com a presente invenção foram descritas até agora com relação às figuras e tabelas.
[0508]Nos exemplos das Tabelas 18 e 19, os exemplos das Tabelas 20 e 21, os exemplos das Tabelas 23 e 24, os exemplos das Tabelas 25 e 26, os exemplos das Tabelas 27 e 28, os exemplos das Tabelas 29 e 30, os exemplos das Tabelas 31 e 32, os exemplos das Tabelas 33 e 34, os exemplos das Tabelas 36 e 38, os exemplos das Tabelas 37 e 38, e os exemplos das Tabelas 39 e 40, os exemplos das estruturas de sintaxe de acordo com a presente invenção foram descritos com relação a duas tabelas, mas isto é apenas para conveniência de descrição e a presente invenção não está limitada aos exemplos.
[0509]Por exemplo, nos exemplos das estruturas de sintaxe, scaling_list_pred_mode_flag é ilustrado como indicando um método de predição de uma matriz de quantização. Quando um valor de scaling_list_pred_mode_flag é 0, a matriz de quantização é obtida através de cópia da matriz e quando um valor de scaling_list_pred_mode_flag é 1, a matriz de quantização é obtida através da predição de um coeficiente de matriz a partir de um coeficiente de matriz anterior dentro da matriz de quantização.
[0510]Por exemplo, nos exemplos das Tabelas 23 e 24, quando um valor de scaling_list_pred_mode_flag é 1, uma matriz de quantização é obtida por extração da sintaxe da matriz de quantização, ou seja, a sintaxe de uma lista de escalonamento 'scaling_list', mas isso pode ser resolvido de uma única estrutura de sintaxe. Nota-se que construir duas ou mais estruturas de sintaxe utilizando uma estrutura de sintaxe tendo o mesmo significado não muda o conteúdo da presente invenção, mas está dentro do escopo da presente invenção.
[0511]A Tabela 41 mostra um exemplo no qual as duas estruturas de sintaxe das Tabelas 23 e 24 são formadas em uma estrutura de sintaxe. Como nos exemplos das Tabelas 23 e 24, o codificador pode codificar informação sobre a matriz de quantização da Tabela 41 em um conjunto de parâmetros, incluindo ao menos um de um conjunto de parâmetros de sequência e um conjunto de parâmetros de imagem, e o decodificador pode decodificar informação sobre a matriz de quantização da Tabela 41 a partir de um conjunto de parâmetros, incluindo pelo menos um de um conjunto de parâmetros de sequência e um conjunto de parâmetros de imagem. <Tabela 41>
Figure img0042
[0512]Como descrito acima, os exemplos das Tabelas 23 e 24 e o exemplo da Tabela 41 são os mesmos, exceto que o número de estruturas de sintaxe é dois ou um.
[0513]Como no exemplo da Tabela 41, o codificador pode indicar o modo de predição de uma matriz através scaling_list_pred_mode_flag. Por exemplo, quando a cópia entre as matrizes de quantização é realizada, um valor de scaling_list_pred_mode_flag é determinado como 0 e codificado. Quando o coeficiente de uma matriz é predito e codificado dentro de uma matriz de quantização, um valor de scaling_list_pred_mode_flag é determinado como 1 e codificado. A cópia de uma matriz de quantização, tal como descrita acima, significa que uma matriz de quantização padrão é utilizada como uma matriz de quantização a ser codificada ou uma matriz de quantização de referência é utilizada como uma matriz de quantização de ser codificada. Um método de predizer o coeficiente de uma matriz, como descrito acima, significa um método de predição e de codificação de um coeficiente dentro de uma matriz de quantização.
[0514]Se a cópia de uma matriz de quantização é realizada (scaling_list_pred_mode_flag == 0), scaling_list_pred_matrix_id_delta é transmitido. Como descrito acima, scaling_list_pred_matrix_id_delta especifica uma matriz de quantização de referência ou a uma matriz de quantização padrão que é utilizada para derivar uma matriz de quantização a ser atualmente codificada.
[0515]Por exemplo, se uma matriz de quantização a ser codificada é determinada como uma matriz de quantização padrão, um valor de scaling_list_pred_matrix_id_delta pode ser determinada como 0 e codificada. Ou seja, isso corresponde a um caso em que uma matriz de quantização a ser atualmente codificada é inferida dentre as matrizes de quantização padrão. A matriz de quantização padrão pode ser especificada pelas Tabelas 7 e 8.
[0516]Se uma matriz de quantização a ser atualmente codificada é determinada a partir de uma matriz de quantização de referência, um valor de scaling_list_pred_matrix_id_delta pode ser determinado como um valor diferente de 0 e codificado. Ou seja, isso corresponde a um caso em que uma matriz de quantização a ser atualmente codificada, isto é, ScalingList, é determinada a partir de uma matriz de quantização de referência como na Equação 33. <Equação 33> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta [sizeID] [matrixID] ScalingList [sizeID] [matrixID] [i] = ScalingList [sizeID] [RefMatrixId] [i]
[0517]Na Equação 33, um valor de scaling_list_pred_matrix_id_delta é especificado por sizeID e matrixID e um índice ‘i’ especifica a localização de um coeficiente dentro de uma matriz de quantização.
[0518]Se a predição e a codificação são executadas dentro de uma matriz de quantização (scaling_list_pred_mode_flag == 1), os coeficientes de matriz para uma matriz de quantização com um tamanho de 4x4, coeficientes de matriz para uma matriz de quantização com um tamanho de 8x8, os coeficientes de matriz para uma matriz tendo uma quantização tamanho 16x16 incluindo um coeficiente de matriz DC, e os coeficientes de matriz para uma matriz de quantização com um tamanho de 32x32 incluindo uma matriz de coeficiente DC podem ser codificados. Aqui, o número total de coeficientes de matriz codificados pode ser calculado utilizando-se coefNum = Min (64, (1 << (4 + (sizeId << 1)))). Ademais, cada uma dentre a matriz de quantização de tamanho 16x16 e a matriz de quantização de tamanho 32x32 pode ser reduzida para uma matriz de quantização de tamanho 8x8 e codificada.
[0519]O decodificador pode decodificar os elementos de sintaxe da Tabela 41 a partir de um fluxo de bits, realizar a desquantização nos elementos de sintaxe decodificados, e reconstruir uma imagem utilizando os resultados.
[0520]Como no exemplo da Tabela 41, o decodificador pode determinar o modo de predição de uma matriz, tal como indicado por scaling_list_pred_mode_flag recebido. Por exemplo, quando um valor de scaling_list_pred_mode_flag é 0, o decodificador pode efetuar a cópia entre as matrizes de quantização. Quando um valor de scaling_list_pred_mode_flag é 1, o decodificador pode predizer um coeficiente de matriz dentro de uma matriz de quantização. Deste modo, o decodificador pode obter uma matriz de quantização (inversa) a ser usada na desquantização. Nota-se que nesta presente especificação, tanto a matriz de quantização a ser codificada que é aplicada no caso de quantização quanto uma matriz de quantização a ser decodificada que é aplicada no caso de desquantização são chamadas matrizes de quantização, mas isto é apenas para conveniência de descrição. Uma matriz aplicada à quantização e a uma matriz aplicada à desquantização podem ter uma relação inversa, e uma matriz de quantização utilizada na desquantização pode ser chamada de uma lista de escalonamento.
[0521]A cópia de uma matriz de quantização, tal como descrita acima, significa que uma matriz de quantização padrão é determinado como uma matriz de quantização a ser decodificada ou uma matriz de quantização de referência é determinada como uma matriz de quantização a ser decodificada. Um método de predizer o coeficiente de uma matriz, como descrito acima, significa um método de predição e decodificação de um coeficiente dentro de uma matriz de quantização.
[0522]Se a cópia de uma matriz de quantização é realizada (scaling_list_pred_mode_flag == 0), o decodificador especifica uma matriz de quantização de referência ou uma matriz de quantização padrão que é utilizada para derivar uma matriz de quantização a ser atualmente decodificada.
[0523]Por exemplo, quando um valor de scaling_list_pred_matrix_id_delta é 0, o decodificador pode determinar uma matriz de quantização a ser decodificada como uma matriz de quantização padrão. Isto é, uma matriz de quantização a ser atualmente decodificada pode ser inferida dentre as matrizes de quantização padrão. A matriz de quantização padrão pode ser especificada pelas Tabelas 7 e 8.
[0524]Quando um valor de scaling_list_pred_matrix_id_delta não é 0, o decodificador pode determinar uma matriz de quantização a ser atualmente decodificada a partir de uma matriz de quantização de referência. Isto é, uma matriz de quantização a ser atualmente decodificada, ou seja, ScalingList, pode ser determinada a partir de uma matriz de quantização de referência como na Equação 34. <Equação 34> RefMatrixID = matrixID-scaling_list_pred_matrix_id_delta [sizeID] [matrixID] ScalingList [sizeID] [matrixID] [i] = ScalingList [sizeID] [RefMatrixId] [i]
[0525]Na Equação 34, um valor de scaling_list_pred_matrix_id_delta é especificado por sizeID e matrixID e um índice ‘i’ especifica a localização de um coeficiente dentro de uma matriz de quantização.
[0526]Se a predição e a decodificação dentro de uma matriz de quantização são realizadas (scaling_list_pred_mode_flag == 1), o decodificador pode decodificar coeficientes de matriz para uma matriz de quantização com um tamanho de 4x4, coeficientes de matriz para uma matriz de quantização com um tamanho de 8x8, coeficientes de matriz para uma matriz de quantização com um tamanho de 16x16 incluindo um coeficiente de matriz de DC, e coeficientes de matriz para uma matriz de quantização com um tamanho de 32x32 incluindo um coeficiente de matriz de DC. Aqui, o número total de coeficientes de matriz decodificados pode ser calculado utilizando coefNum = Min (64, (1 << (4 + (sizeId << 1)))). Aqui, uma vez que cada uma dentre a matriz de quantização de tamanho 16x16 e a matriz de quantização de tamanho 32x32 é reduzida para uma matriz de quantização de tamanho 8x8 quando a matriz de quantização de tamanho 16x16 e a matriz de quantização de tamanho 32x32 são codificadas, a matriz de quantização de tamanho 8x8 pode ser restaurada para a matriz de quantização de tamanho 16x16 e a matriz de quantização de tamanho 32x32 por ampliação ou interpolando a matriz de quantização de tamanho 8x8. Além disso, se o aumento ou a interpolação é utilizado, uma matriz de coeficiente DC não usa um valor interpolado, mas pode ser substituída por um valor derivado de um valor adicionalmente sinalizado, tal como scaling_list_dc_coef_minus8.
[0527]Os exemplos das estruturas de sintaxe e os exemplos de codificação e decodificação utilizando as estruturas de sintaxe foram descritos até agora com relação às tabelas. Nos exemplos mencionados acima, os exemplos de codificação e os exemplos de decodificação foram descritos utilizando as estruturas de sintaxe, mas o presente invenção não está limitada a eles. Por exemplo, as tabelas das estruturas de sintaxe podem ser utilizadas somente em codificação ou decodificação.
[0528]A Figura 6 é um fluxograma que ilustra esquematicamente um exemplo de um método para executar a desquantização de acordo com a presente invenção.
[0529]Com relação à Figura 6, o decodificador pode obter um identificador indicando se uma matriz de quantização está ou não presente em um conjunto de parâmetros na etapa S610. A informação indicando se a matriz de quantização está ou não presente no conjunto de parâmetros pode ser scaling_list_present_flag nos exemplos das tabelas mencionadas anteriormente.
[0530]Aqui, a presença da matriz de quantização no conjunto de parâmetros que inclui essa informação (por exemplo, scaling_list_pred_mode_flag, scaling_list_pred_matrix_id_delta, scaling_list_dc_coef_minus8, e scaling_list_delta_coef) sobre a matriz de quantização está presente no conjunto de parâmetros. Além disso, antes de obter o identificador que indica se a matriz de quantização está presente ou não, scaling_list_enable_flag, isto é, um identificador indicando se a matriz de quantização é utilizada ou não, pode ser obtido. Se uma matriz de quantização é usada obtendo scaling_list_enable_flag, um identificador indicando se a matriz de quantização está presente ou não pode ser obtido.
[0531]Aqui, o conjunto de parâmetros pode ser um conjunto de parâmetros de sequência ou um conjunto de parâmetros de imagem através dos quais a informação sobre a matriz de quantização é transmitida.
[0532]O decodificador pode determinar se a matriz de quantização está ou não presente no conjunto de parâmetros com base no identificador na etapa S620. Por exemplo, quando um valor de scaling_list_present_flag é 1, o decodificador pode determinar que a matriz de quantização está presente no conjunto de parâmetros. Quando um valor de scaling_list_present_flag é 0, o decodificador pode determinar que a matriz de quantização não está presente no conjunto de parâmetros.
[0533]Se, como um resultado da determinação, a matriz de quantização não está presente no conjunto de parâmetros (isto é, se a matriz de quantização é determinada como não estando presente no conjunto de parâmetros), o decodificador pode não utilizar a matriz de quantização na desquantização, pode usar uma matriz de quantização (isto é, uma matriz plana) com os mesmos coeficientes de matriz de 16 em desquantização, ou pode determinar todas as matrizes de quantização como matrizes de quantização padrão na desquantização na etapa S630.
[0534]Se, como um resultado da determinação, a matriz de quantização está presente no conjunto de parâmetros (isto é, se a matriz de quantização é determinada como estando presente no conjunto de parâmetros), o decodificador pode obter informação sobre a matriz de quantização de acordo com o tamanho de cada matriz de quantização ou o tipo de matriz de quantização na etapa S640. Aqui, o tipo de matriz de quantização pode incluir ao menos uma dentre uma matriz de quantização para a desquantização de um coeficiente de transformação para um bloco residual intra, uma matriz de quantização para a desquantização de um coeficiente de transformação para um bloco residual inter, uma matriz de quantização para a desquantização de um coeficiente de transformação para um bloco residual luma, e uma matriz de quantização para a desquantização de um coeficiente de transformação para um bloco residual croma ou uma combinação deles.
[0535]O decodificador pode realizar a desquantização usando a matriz de quantização obtida na etapa S650. Se a matriz de quantização não está presente no conjunto de parâmetros, o decodificador pode realizar a desquantização sem usar a matriz de quantização como determinado na etapa S630, ou pode realizar a desquantização de modo que uma matriz de quantização (isto é, uma matriz plana) com os mesmos coeficientes de matriz de 16 é realizada em desquantização ou todas as matrizes de quantização são utilizadas como matrizes de quantização padrão em desquantização. A predição do coeficiente de uma matriz de quantização e o uso de uma matriz de quantização padrão foram descritos acima em conjunto com as modalidades mencionadas acima. Se a matriz de quantização está presente no conjunto de parâmetros, o decodificador pode obter a matriz de quantização correspondente e utilizar a matriz de quantização obtida em desquantização. O decodificador pode reconstruir uma imagem com base em um sinal inversamente quantizado, como descrito acima com relação à Figura 2.
[0536]Enquanto isso, na Figura 6, um exemplo no qual um identificador indicando se uma matriz de quantização está presente ou não é transmitido por um codificador foi ilustrado, mas isso é apenas um exemplo da invenção. Como descrito acima, se a informação sobre uma matriz de quantização é transmitida, a informação indicando se a matriz de quantização está presente ou não pode não ser adicionalmente transmitida.
[0537]A FIG. 7 é um diagrama que ilustra esquematicamente um exemplo de um método para obter informação sobre uma matriz de quantização, quando uma matriz de quantização estiver presente em um conjunto de parâmetros e realizar a desquantização usando a informação. O método da Figura 7 pode corresponder a (1) um método que inclui as etapas S640 e S650 da Figura 6 e (2) um método de obter uma matriz de quantização e realizar a desquantização usando a matriz de quantização obtida, embora um identificador adicional que indica se uma matriz de quantização está presente ou não seja transmitido, mas a matriz de quantização está presente em um conjunto de parâmetros e a informação sobre a matriz de quantização é transmitida pelo codificador. O método (1) é o mesmo do método (2), além da informação sobre se a matriz de quantização está presente ou não ser transmitida através do identificador adicional ou não. Na Figura 7, o decodificador pode decodificar informação sobre uma matriz de quantização de um conjunto de parâmetros, incluindo pelo menos um dentre um conjunto de parâmetros de sequência e um conjunto de parâmetros de imagem.
[0538]No exemplo da Figura 7, de modo a reduzir o grau de complexidade quando codificando/decodificando uma matriz de quantização, se um valor de ID de matriz de quantização de referência para a predição de uma matriz de quantização a ser decodificada é idêntico a um valor de ID da matriz de quantização a ser decodificada, o decodificador não decodifica a matriz de quantização a ser decodificada, mas pode usar uma matriz de quantização já incluída no decodificador quando executando a desquantização. Aqui, a matriz de quantização já incluída no decodificador pode ser uma matriz de quantização padrão.
[0539]Mais particularmente, com relação à Figura 7, se uma matriz de quantização está presente no conjunto de parâmetros, o decodificador pode determinar um método para predizer a matriz de quantização na etapa S710. A presença da matriz de quantização no conjunto de parâmetros inclui a presença de informação (por exemplo, scaling_list_pred_mode_flag, scaling_list_pred_matrix_id_delta, scaling_list_dc_coef_minus8 e scaling_list_delta_coef) sobre a matriz de quantização no conjunto de parâmetros.
[0540]Com relação aos exemplos mencionados acima, o método de predição da matriz de quantização pode ser determinado com base em um valor do elemento de sintaxe ‘pred_mode_flag’ recebido a partir do codificador. De modo a esclarecer que o método de predição é para a matriz de quantização, pred_mode_flag pode ser representado como scaling_list_pred_mode_flag como nos exemplos mencionados acima. Um método de predição da matriz de quantização, indicado por pred_mode_flag, pode ser qualquer um de (1) um método de utilizar uma matriz de quantização já incluída no decodificador sem alteração e (2) um método de receber um valor da matriz de quantização e realizar DPCM inverso entre os valores de coeficientes da matriz de quantização dentro da matriz de quantização.
[0541]Por exemplo, quando um valor de pred_mode_flag é 0, o decodificador pode usar uma matriz de quantização (isto é, uma matriz de quantização já decodificada (ou matriz de referência) ou matriz padrão) já incluída nele. Quando um valor de pred_mode_flag é 1, o decodificador pode predizer e decodificar um coeficiente dentro da matriz de quantização com base na informação recebida.
[0542]Se um método de predizer a matriz de quantização é um método de utilizar uma matriz de quantização já incluída no decodificador sem alteração, o decodificador pode obter informação de ID sobre a matriz de quantização na etapa S720. A informação de ID da matriz de quantização é informação na qual a matriz de quantização já incluída no decodificador pode ser identificada, e a informação de ID pode corresponder a scaling_list_pred_matrix_id_delta, pred_matrix_id_delta, etc. que foi descrita nos exemplos mencionados acima.
[0543]O decodificador pode determinar se a matriz de quantização especificada por informação de ID é idêntica a uma matriz de quantização a ser atualmente decodificada ou não na etapa S730. pred_matrix_id_delta especifica uma matriz de quantização de referência que é usada para derivar a matriz de quantização. De modo a esclarecer que pred_matrix_id_delta é para a matriz de quantização, pred_matrix_id_delta pode ser representado como scaling_list_pred_matrix_id_delta como nos exemplos mencionados acima.
[0544]Quando um valor de scaling_list_pred_matrix_id_delta é 0, o decodificador pode usar uma matriz de quantização padrão, especificada pela informação (SizeID e/ou MatrixID) sobre a matriz de quantização, tal como a matriz de quantização a ser decodificada.
[0545]Quando um valor de scaling_list_pred_matrix_id_delta não é 0, o decodificador pode derivar a matriz de quantização a ser decodificada a partir de uma matriz de quantização de referência já decodificada porque matrixID especificando a matriz de quantização a ser decodificada (ou do tipo de matriz de quantização) e RefMatrixID especificando a matriz de quantização de referência têm uma relação ‘scaling_list_pred_matrix_id_delta = matrixID-RefMatrixID’ com relação aos exemplos mencionados acima.
[0546]Se, como um resultado da determinação na etapa S730, a matriz de quantização determinada pela informação de ID da matriz de quantização é determinada como não sendo idêntica à matriz de quantização a ser decodificada (isto é, !scaling_list_pred_matrix_id_delta == 0 ou matrixID! = RefMatrixID), o decodificador pode determinar uma matriz de quantização que será utilizada quando a desquantização é realizada utilizando a informação de ID da matriz de quantização na etapa S740. Nesse caso, o decodificador pode determinar uma matriz de quantização a ser utilizada quando a desquantização é realizada como nas tabelas mencionadas acima com base na informação de ID ‘scaling_list_pred_matrix_id_delta’ da matriz de quantização.
[0547]Se, como um resultado da determinação na etapa S730, a matriz de quantização determinada pela informação de ID da matriz de quantização é determinada como sendo idêntica à matriz de quantização a ser decodificada (isto é, scaling_list_pred_matrix_id_delta == 0 ou matrixID == RefMatrixID), o decodificador pode usar uma matriz de quantização padrão já incluída nele na etapa S750. Aqui, a matriz de quantização padrão pode ser determinada usando-se as Tabelas 7 e 8.
[0548]Se um método de predição da matriz de quantização é um método de utilização de um método de DPCM inverso entre os valores de coeficientes da matriz de quantização em S710, o decodificador pode inicializar o valor de coeficiente da matriz de quantização na etapa S760. Por exemplo, o decodificador pode inicializar o valor de coeficiente ‘nextcoef’ da matriz de quantização definindo o valor de coeficiente para uma constante. A constante definida durante a inicialização do valor de coeficiente ‘nextcoef’ pode ser qualquer um de 8 e 16, tal como nos exemplos das tabelas anteriores.
[0549]O decodificador pode decodificar um valor da diferença entre os coeficientes dentro da matriz de quantização recebida partir do codificador na etapa S770. O valor da diferença entre os coeficientes dentro da matriz de quantização pode ser especificado por um elemento de sintaxe, como delta_coef. De modo a esclarecer que o elemento de sintaxe é para a matriz de quantização, delta_coef pode ser chamado scaling_list_delta_coef como nos exemplos das tabelas anteriores.
[0550]O decodificador pode derivar o valor de coeficiente da matriz de quantização na etapa S780. O decodificador pode derivar o valor de coeficiente de uma matriz de quantização a ser decodificada (isto é, uma matriz de quantização atual) adicionando o valor da diferença entre os coeficientes dentro da matriz de quantização ao valor de coeficiente de uma matriz de quantização que foi previamente decodificada. Por exemplo, o decodificador pode derivar o valor de coeficiente da matriz de quantização atual usando uma relação ‘nextcoef = (nextcoef delta_coef = + 256) % 256’ como nas equações mencionadas acima.
[0551]O decodificador pode determinar se a matriz de quantização foi derivada ou não na etapa S790. Se, como um resultado da determinação, a matriz de quantização é determinada como não tendo sido derivada (isto é, se todos os valores de coeficiente dentro da matriz de quantização não foram decodificados), o decodificador retorna para a etapa S770, e executa as etapas subsequentes.
[0552]O decodificador pode realizar a desquantização usando a matriz de quantização obtida na etapa S650.
[0553]Por outro lado, embora não seja claramente descrito no exemplo da Figura 7 quando derivando o valor de coeficiente da matriz de quantização, o coeficiente de matriz DC para uma matriz de quantização com um tamanho específico pode ser derivado primeiro como nas modalidades mencionadas acima.
[0554]A Figura 8 é um diagrama que ilustra esquematicamente outro exemplo de um método de obter informação sobre uma matriz de quantização, quando uma matriz de quantização está presente em um conjunto de parâmetros e realizar a desquantização usando a informação. O método da Figura 8 pode corresponder a (1) um método que inclui as etapas S640 e S650 da Figura 6 e (2) um método de obter uma matriz de quantização e realizar a desquantização usando a matriz de quantização obtida, embora um identificador adicional indicando se uma matriz de quantização está presente ou não, não seja transmitido, mas a matriz de quantização está presente em um conjunto de parâmetros e a informação sobre a matriz de quantização é transmitida pelo codificador. O método (1) é o mesmo do método (2), além da informação sobre se a matriz de quantização está presente ou não ser transmitida através do identificador adicional ou não.
[0555]No exemplo da Figura 8, de modo a evitar que uma matriz de quantização desnecessária seja transmitida, se o primeiro valor de uma matriz de quantização a ser decodificada é um valor específico, o decodificador não decodifica a matriz de quantização a ser decodificada e pode utilizar uma matriz de quantização padrão já incluída nele quando executando a desquantização.
[0556]Mais particularmente, com relação à Figura 8, se uma matriz de quantização está presente no conjunto de parâmetros, o decodificador pode determinar um método de predição da matriz de quantização na etapa S810. A presença da matriz de quantização no conjunto de parâmetros inclui a presença de informação sobre a matriz de quantização no conjunto de parâmetros.
[0557]Se um método de predição da matriz de quantização é um método de utilização de uma matriz de quantização já incluída no decodificador sem alteração, o decodificador pode obter informação de ID sobre a matriz de quantização na etapa S820.
[0558]A informação de ID da matriz de quantização é informação na qual a matriz de quantização já incluída no decodificador pode ser identificada, e a informação de ID pode corresponder a scaling_list_pred_matrix_id_delta, pred_matrix_id_delta, etc. que foram descritos nos exemplos mencionados acima.
[0559]O decodificador pode determinar uma matriz de quantização a ser usada quando realizando a desquantização usando a informação de ID da matriz de quantização na etapa S830. O decodificador pode determinar a matriz de quantização de acordo com a informação de ID, tal como scaling_list_pred_matrix_id_delta ou pred_matrix_id_delta.
[0560]Se um método de predição da matriz de quantização é um método de utilização de um método de DPCM inverso entre os valores de coeficientes da matriz de quantização em S810, o decodificador pode inicializar o valor de coeficiente da matriz de quantização na etapa S840. Por exemplo, o decodificador pode inicializar o valor de coeficiente ‘nextcoef’ da matriz de quantização, definindo o valor do coeficiente como uma constante. A constante definida durante a inicialização do valor de coeficiente ‘nextcoef’ pode ser qualquer um de 8 e 16, tal como nos exemplos das tabelas anteriores.
[0561]O decodificador pode decodificar um valor de diferença entre os coeficientes dentro da matriz de quantização recebida a partir do codificador na etapa S850. O valor da diferença entre os coeficientes dentro da matriz de quantização pode ser especificado por um elemento de sintaxe, como delta_coef.
[0562]O decodificador pode derivar o valor de coeficiente da matriz de quantização na etapa S860. O decodificador pode derivar o valor de coeficiente de uma matriz de quantização a ser decodificada (isto é, uma matriz de quantização atual), adicionando o valor da diferença entre os coeficientes dentro da matriz de quantização ao valor de coeficiente de uma matriz de quantização que foi previamente decodificada. Por exemplo, o decodificador pode derivar o valor de coeficiente da matriz de quantização atual usando uma relação ‘nextcoef = (nextcoef delta_coef = + 256) % 256’ como nas equações mencionadas acima.
[0563]O decodificador pode determinar se o coeficiente derivado é o primeiro valor de coeficiente da matriz de quantização ou não, ou se o coeficiente derivado é idêntico a um valor específico ou não, na etapa S870. Aqui, o valor específico pode ser 0.
[0564]Se, como um resultado da determinação na etapa S870, o coeficiente derivado é determinado como sendo o primeiro valor de coeficiente da matriz de quantização e como sendo igual ao valor específico, o decodificador pode determinar a utilização de uma matriz de quantização padrão, já incluída nele, na desquantização na etapa S880.
[0565]Se, como um resultado da determinação na etapa S870, o coeficiente derivado é determinado como não sendo o primeiro valor de coeficiente da matriz de quantização e como não sendo idêntico ao valor específico, o decodificador verifica se todos os valores de diferença para os coeficientes dentro da matriz de quantização foram decodificados ou não na etapa S890. Se, como resultado da verificação, todos os valores de diferença são determinados como não tendo sido decodificados, o decodificador pode voltar à etapa S850 e executar as etapas subsequentes.
[0566]O decodificador pode realizar a desquantização usando a matriz de quantização obtida na etapa S650.
[0567]Nas modalidades mencionadas acima, a informação sobre uma matriz de quantização significa uma matriz de quantização ou informação na qual uma matriz de quantização pode ser derivada. Aqui, a informação na qual uma matriz de quantização pode ser derivada pode significar informação sobre se uma matriz padrão foi usada ou não, o tipo de método de codificação/decodificação preditiva, um ID de matriz de quantização de referência, uma matriz de quantização de referência, etc.
[0568]No sistema exemplificado acima, embora os métodos tenham sido descritos com base nos fluxogramas na forma de uma série de etapas ou blocos, a presente invenção não se limita à sequência das etapas, e algumas das etapas podem ser realizadas por uma ordem diferente de outras etapas, ou podem ser realizadas simultâneas às outras etapas. Ademais, os versados na técnica compreenderão que as etapas mostradas no fluxograma não são exclusivas e podem incluir etapas adicionais, ou que uma ou mais etapas do fluxograma podem ser deletadas sem afetar o escopo da presente invenção.

Claims (2)

1. Método de decodificação de vídeo, CARACTERIZADO pelo fato de que compreende: determinar um esquema de predição de uma matriz de quantização usada em quantização inversa; e decodificar a matriz de quantização usada na quantização inversa de acordo com o esquema de predição da matriz de quantização, em que o esquema de predição da matriz de quantização é qualquer um dentre um esquema de predição entre coeficientes na matriz de quantização e um esquema de cópia de matriz de quantização, em que na decodificação da matriz de quantização, em resposta ao esquema de predição da matriz de quantização sendo o esquema de predição entre os coeficientes na matriz de quantização, um valor de coeficiente de matriz DC é adquirido com relação a uma matriz de quantização tendo um tamanho, e um valor inicial para o coeficiente de matriz de quantização é induzido com base no valor de coeficiente de matriz DC, em que na decodificação da matriz de quantização, em resposta ao esquema de predição da matriz de quantização sendo o esquema de cópia de matriz de quantização, um elemento de sintaxe é decodificado, o elemento de sintaxe indicando se como a matriz de quantização, uma matriz de quantização de referência é usada ou uma matriz de quantização padrão é usada, em que o elemento de sintaxe é usado normalmente para uma primeira função para indicar um valor de diferença entre um valor para espeficiar uma matriz de quantização alvo de decodificação e um valor para especificar a matriz de quantização de referência, e uma segunda função para indicar que a matriz de quantização é decodificada a partir da matriz de quantização padrão se o valor do elemento de sintaxe for 0.
2. Método de decodificação de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, na determinação do esquema de predição da matriz de quantização, o esquema de predição da matriz de quantização é determinado com base em informação de sinalizador recebida a partir de um codificador.
BR112014017500-4A 2012-01-20 2013-01-21 Método de decodificação de vídeo BR112014017500B1 (pt)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
KR10-2012-0006564 2012-01-20
KR20120006564 2012-01-20
KR20120011672 2012-02-06
KR10-2012-0011672 2012-02-06
KR10-2012-0013462 2012-02-09
KR20120013462 2012-02-09
KR10-2012-0013996 2012-02-10
KR20120013996 2012-02-10
KR10-2012-0038971 2012-04-16
KR20120038971 2012-04-16
PCT/KR2013/000493 WO2013109127A1 (ko) 2012-01-20 2013-01-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020130006736A KR101627085B1 (ko) 2012-01-20 2013-01-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Publications (3)

Publication Number Publication Date
BR112014017500A2 BR112014017500A2 (pt) 2017-06-13
BR112014017500A8 BR112014017500A8 (pt) 2017-07-04
BR112014017500B1 true BR112014017500B1 (pt) 2022-11-16

Family

ID=48995992

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112014017500-4A BR112014017500B1 (pt) 2012-01-20 2013-01-21 Método de decodificação de vídeo
BR122020017515-0A BR122020017515B1 (pt) 2012-01-20 2013-01-21 Método de decodificação de vídeo
BR122020017523-0A BR122020017523B1 (pt) 2012-01-20 2013-02-21 Aparelho de decodificação de vídeo

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122020017515-0A BR122020017515B1 (pt) 2012-01-20 2013-01-21 Método de decodificação de vídeo
BR122020017523-0A BR122020017523B1 (pt) 2012-01-20 2013-02-21 Aparelho de decodificação de vídeo

Country Status (7)

Country Link
US (7) US9866839B2 (pt)
EP (2) EP3855744A1 (pt)
JP (11) JP5886446B2 (pt)
KR (10) KR101627085B1 (pt)
CN (7) CN104170382B (pt)
BR (3) BR112014017500B1 (pt)
WO (1) WO2013109127A1 (pt)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL1709801T3 (pl) 2004-01-30 2013-02-28 Panasonic Ip Corp America Sposób dekodowania video z wykorzystaniem adaptacyjnych macierzy kwantyzacji
CN104170382B (zh) 2012-01-20 2018-08-03 韩国电子通信研究院 用于编码和解码量化矩阵的方法和使用其的设备
KR102153270B1 (ko) * 2012-02-29 2020-09-07 소니 주식회사 화상 처리 장치 및 방법, 및 기록 매체
AU2015258162B2 (en) * 2012-02-29 2017-01-12 Sony Corporation Image Processing Device and Method
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US9253483B2 (en) 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
WO2014051962A1 (en) * 2012-09-25 2014-04-03 Motorola Mobility Llc Signaling of scaling list
WO2016103542A1 (ja) 2014-12-26 2016-06-30 パナソニックIpマネジメント株式会社 符号化方法、復号方法、符号化装置および復号装置
TWI561060B (en) * 2015-01-15 2016-12-01 Mstar Semiconductor Inc Signal processing apparatus and signal processing method including quantization or inverse-quantization process
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
CN109644269B (zh) * 2016-08-24 2022-02-11 索尼公司 图像处理设备、图像处理方法和存储介质
US10827173B2 (en) 2017-11-13 2020-11-03 Electronics And Telecommunications Research Institute Method and apparatus for quantization
MX2020009803A (es) * 2018-03-28 2020-10-28 Sony Corp Dispositivo de procesamiento de imagen y metodo de procesamiento de imagen.
US11509889B2 (en) 2018-06-27 2022-11-22 Kt Corporation Method and apparatus for processing video signal
MX2020012688A (es) 2018-06-27 2021-02-15 Kt Corp Metodo y aparato para procesar se?ales de video.
KR102462910B1 (ko) 2018-11-12 2022-11-04 한국전자통신연구원 배치 정규화 레이어의 웨이트들에 대한 양자화 방법 및 그 장치
JP2020098986A (ja) * 2018-12-17 2020-06-25 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム
US20220086443A1 (en) * 2018-12-26 2022-03-17 Electronics And Telecommunications Research Institute Quantization matrix encoding/decoding method and device, and recording medium in which bitstream is stored
JP2020150338A (ja) 2019-03-11 2020-09-17 キヤノン株式会社 画像復号装置、画像復号方法、及びプログラム
EP3925217A4 (en) * 2019-03-25 2023-03-08 HFI Innovation Inc. METHOD AND DEVICE FOR QUANTIZATION MATRIX CALCULATION AND REPRESENTATION FOR VIDEO CODING
US20220217404A1 (en) * 2019-04-15 2022-07-07 Lg Electronics Inc. Scaling list-based video or image coding
KR20210130235A (ko) * 2019-04-15 2021-10-29 엘지전자 주식회사 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩
KR20210122863A (ko) * 2019-04-15 2021-10-12 엘지전자 주식회사 스케일링 리스트 데이터의 시그널링 기반 비디오 또는 영상 코딩
KR20200133185A (ko) * 2019-05-15 2020-11-26 현대자동차주식회사 영상 복호화 장치에서 이용하는 역양자화장치 및 방법
CN113906743A (zh) * 2019-06-14 2022-01-07 韩国电子通信研究院 量化矩阵编码/解码方法和装置、以及存储比特流的记录介质
TW202106017A (zh) * 2019-06-21 2021-02-01 法商內數位Vc控股法國公司 用於視訊編碼及解碼的單一索引量化矩陣設計
CN114073076B (zh) * 2019-07-06 2023-12-12 寰发股份有限公司 量化矩阵的发信技术
CN114365497A (zh) 2019-07-08 2022-04-15 Lg电子株式会社 基于缩放列表参数的视频或图像编码
KR20220044894A (ko) 2019-08-29 2022-04-12 엘지전자 주식회사 영상 코딩 장치 및 방법
JP2021048532A (ja) * 2019-09-19 2021-03-25 キヤノン株式会社 画像符号化装置、画像復号装置及びそれらの制御方法及びプログラム
US20220345694A1 (en) * 2019-09-23 2022-10-27 Lg Electronics Inc. Image encoding/decoding method and apparatus using quantization matrix, and method for transmitting bitstream
CN115720265A (zh) * 2019-12-18 2023-02-28 腾讯科技(深圳)有限公司 视频编解码方法、装置、设备及存储介质
CN111147858B (zh) * 2019-12-31 2024-02-27 腾讯科技(深圳)有限公司 视频解码方法、装置、设备及存储介质
US11451779B2 (en) * 2020-03-05 2022-09-20 Qualcomm Incorporated Scaling list signalling for video coding
US11316541B2 (en) 2020-09-25 2022-04-26 Samsung Electronics Co., Ltd. Low-density parity-check (LDCP) decoder of reconstruction-computation-quantization (RCQ) approach for a storage device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4973961A (en) 1990-02-12 1990-11-27 At&T Bell Laboratories Method and apparatus for carry-over control in arithmetic entropy coding
KR0132895B1 (ko) * 1992-07-24 1998-10-01 강진구 적응 양자화 기능을 갖는 영상압축 및 신장방법과 그 장치
FI973873A (fi) 1997-10-02 1999-04-03 Nokia Mobile Phones Ltd Puhekoodaus
KR100584552B1 (ko) 2003-01-14 2006-05-30 삼성전자주식회사 동영상 부호화 및 복호화 방법과 그 장치
PL1709801T3 (pl) * 2004-01-30 2013-02-28 Panasonic Ip Corp America Sposób dekodowania video z wykorzystaniem adaptacyjnych macierzy kwantyzacji
US7373009B2 (en) * 2005-02-09 2008-05-13 Lsi Corporation Method and apparatus for efficient transmission and decoding of quantization matrices
US7991236B2 (en) * 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
WO2008132890A1 (ja) 2007-04-16 2008-11-06 Kabushiki Kaisha Toshiba 画像符号化と画像復号化の方法及び装置
JP2010288166A (ja) * 2009-06-15 2010-12-24 Panasonic Corp 動画像符号化装置、放送波記録装置及び、プログラム
KR101669873B1 (ko) 2009-10-16 2016-10-27 삼성전자주식회사 삼차원 메쉬 압축장치 및 방법
JP5328629B2 (ja) 2009-12-17 2013-10-30 株式会社メガチップス エンコーダおよび画像変換装置
US9167252B2 (en) * 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
WO2012108237A1 (ja) 2011-02-10 2012-08-16 ソニー株式会社 画像処理装置及び画像処理方法
US10277915B2 (en) * 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
CN104170382B (zh) * 2012-01-20 2018-08-03 韩国电子通信研究院 用于编码和解码量化矩阵的方法和使用其的设备
KR102153270B1 (ko) 2012-02-29 2020-09-07 소니 주식회사 화상 처리 장치 및 방법, 및 기록 매체

Also Published As

Publication number Publication date
KR20140092286A (ko) 2014-07-23
US20180048905A1 (en) 2018-02-15
EP3855744A1 (en) 2021-07-28
BR122020017515B1 (pt) 2022-11-22
CN107580230A (zh) 2018-01-12
KR101875206B1 (ko) 2018-08-02
KR102115318B1 (ko) 2020-05-26
CN108924571B (zh) 2021-09-07
CN108924570B (zh) 2021-08-24
JP6163574B2 (ja) 2017-07-12
JP2022061985A (ja) 2022-04-19
JP2016129356A (ja) 2016-07-14
US11778189B2 (en) 2023-10-03
CN104170382B (zh) 2018-08-03
US20190238850A1 (en) 2019-08-01
EP2806640A1 (en) 2014-11-26
JP7003191B2 (ja) 2022-01-20
JP6163575B2 (ja) 2017-07-12
KR20130086012A (ko) 2013-07-30
JP2019054541A (ja) 2019-04-04
JP6445623B2 (ja) 2018-12-26
US20220132126A1 (en) 2022-04-28
KR20180078212A (ko) 2018-07-09
CN104170382A (zh) 2014-11-26
JP6738882B2 (ja) 2020-08-12
KR20240027661A (ko) 2024-03-04
WO2013109127A1 (ko) 2013-07-25
KR20210124171A (ko) 2021-10-14
JP2019062551A (ja) 2019-04-18
CN109194958A (zh) 2019-01-11
US20150334396A1 (en) 2015-11-19
KR20180078213A (ko) 2018-07-09
JP2017200216A (ja) 2017-11-02
JP2019054540A (ja) 2019-04-04
EP2806640A4 (en) 2016-04-27
CN109194958B (zh) 2021-08-20
KR20140092288A (ko) 2014-07-23
JP2016129355A (ja) 2016-07-14
JP2023139264A (ja) 2023-10-03
US20200296376A1 (en) 2020-09-17
US11252411B2 (en) 2022-02-15
JP2016136732A (ja) 2016-07-28
CN109194967B (zh) 2021-09-07
KR101527442B1 (ko) 2015-06-11
CN108924570A (zh) 2018-11-30
KR20180079274A (ko) 2018-07-10
KR20140092287A (ko) 2014-07-23
JP5886446B2 (ja) 2016-03-16
JP2020182234A (ja) 2020-11-05
KR102313195B1 (ko) 2021-10-15
US11736696B2 (en) 2023-08-22
US20220124333A1 (en) 2022-04-21
CN108924571A (zh) 2018-11-30
KR101971077B1 (ko) 2019-04-22
CN108683916B (zh) 2021-09-07
CN109194967A (zh) 2019-01-11
US10708595B2 (en) 2020-07-07
US9866839B2 (en) 2018-01-09
KR20200057693A (ko) 2020-05-26
BR112014017500A2 (pt) 2017-06-13
JP2015504289A (ja) 2015-02-05
JP6720278B2 (ja) 2020-07-08
KR101627085B1 (ko) 2016-06-03
BR112014017500A8 (pt) 2017-07-04
US10306228B2 (en) 2019-05-28
BR122020017523B1 (pt) 2022-11-22
KR102020838B1 (ko) 2019-09-11
US20230396769A1 (en) 2023-12-07
CN108683916A (zh) 2018-10-19
JP6163576B2 (ja) 2017-07-12
KR101998390B1 (ko) 2019-07-09
CN107580230B (zh) 2021-08-20
JP6736642B2 (ja) 2020-08-05

Similar Documents

Publication Publication Date Title
BR112014017500B1 (pt) Método de decodificação de vídeo
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
WO2020247577A1 (en) Adaptive motion vector resolution for affine mode
WO2022066783A1 (en) Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary
WO2023200907A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
WO2023129744A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023114155A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023091688A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023164245A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023141238A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023049292A1 (en) Methods and devices for decoder-side intra mode derivation
EP4238311A1 (en) Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary
CN117957838A (zh) 帧内预测模式信令

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/00

Ipc: H04N 19/126 (2014.01), H04N 19/159 (2014.01), H04N

B350 Update of information on the portal [chapter 15.35 patent gazette]
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 21/02/2013, OBSERVADAS AS CONDICOES LEGAIS

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 11A ANUIDADE.

B21H Decision of lapse of a patent or of a certificate of addition of invention cancelled [chapter 21.8 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 21.6 NA RPI NO 2762 DE 12/12/2023 POR TER SIDO INDEVIDA.