BR122018003088B1 - Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos - Google Patents

Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos Download PDF

Info

Publication number
BR122018003088B1
BR122018003088B1 BR122018003088-7A BR122018003088A BR122018003088B1 BR 122018003088 B1 BR122018003088 B1 BR 122018003088B1 BR 122018003088 A BR122018003088 A BR 122018003088A BR 122018003088 B1 BR122018003088 B1 BR 122018003088B1
Authority
BR
Brazil
Prior art keywords
motion information
block
information
prediction
predicted
Prior art date
Application number
BR122018003088-7A
Other languages
English (en)
Other versions
BR122018003088A2 (pt
Inventor
Taichiro Shiodera
Akiyuki Tanizawa
Tomoo Yamakage
Takeshi Chujoh
Original Assignee
Kabushiki Kaisha Toshiba
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 Kabushiki Kaisha Toshiba filed Critical Kabushiki Kaisha Toshiba
Publication of BR122018003088A2 publication Critical patent/BR122018003088A2/pt
Publication of BR122018003088B1 publication Critical patent/BR122018003088B1/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/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Abstract

MÉTODO PARA DECODIFICAÇÃO DE IMAGEM PARA A DIVISÃO DE UM SINAL DE IMAGEM DE ENTRADA EM BLOCOS DE PIXELS, E PARA A REALIZAÇÃO DE INTER-PREDIÇÃO NOS BLOCOS DE PIXELS DIVIDIDOS De acordo com uma concretização, é descrito um método para a divisão de um sinal de imagem de entrada em blocos de pixels, e para a realização de inter-predição nos blocos de pixels divididos. Este método inclui a seleção de informação cinematográfica a partir de um buffer de informação cinematográfica que armazena informação cinematográfica em uma região codificada, e predizer a informação cinematográfica de um bloco codificador alvo pelo uso da informação cinematográfica prevista. O método inclui ainda a aquisição de informação cinematográfica representativa a partir de uma pluralidade de itens de informação cinematográfica em uma região codificada de acordo com uma primeira informação indicando um método para a seleção da informação cinematográfica prevista, obtendo desta forma apenas a informação cinematográfica representativa.

Description

[0001] O presente pedido é dividido do BR 11 2013 022646 3, de 09 de março de 2011.
Campo técnico
[0002] As modalidades descritas aqui referem-se de forma geral a um método para compressão de informação de movimento, a um método para codificação de imagem, e a um método para decodificação de imagem a serem usados na codificação e na decodificação de uma imagem em movimento.
Cenário da Invenção
[0003] Recentemente, foi recomendado um método para codificação de imagem com alta eficiência de codificação chamado ITU-T Rec. H.264 e ISO/IEC 14496-10 (referido como H.264 a partir daqui) por meio da cooperação entre ITU-T e ISO/IEC. No H.264, um processo preditivo, um processo de conversão, e um processo de codificação entrópica são realizados para cada bloco retangular (por exemplo, cada bloco de 16 x 16 ou 8 por 8 pixels). No processo preditivo, a compensação de movimento de realizar a previsão no domínio temporal é realizada em um bloco retangular a ser codificado (um bloco alvo de codificação) pela referência a um quadro já codificado (quadro de referência). Nesta compensação de movimento, é necessário codificar a informação de movimento contendo um vetor de movimento como informações de deslocamento espacial entre o bloco alvo de codificação e um bloco a ser referenciado no quadro de referência, e transmitir a informação de movimento codificada para um lado decodificador. Quando for realizada compensação de movimento pelo uso de vários quadros de referência, é também necessário codificar os números dos quadros de referência em adição à informação de movimento. Isto geralmente aumenta o volume de código de informação de movimento e dos números dos quadros de referência. Há ainda métodos de predição de informação de movimento pelos quais a informação de movimento de um bloco alvo de codificação é derivada pela referência à informação de movimento de um quadro de referência, que está armazenada em uma memória de informação de movimento (Literatura - Patente 1 e Literatura - não Patente 2), e a capacidade da memória de informação de movimento para o armazenamento de informação de movimento geralmente aumenta.
[0004] Como um exemplo de um método para a redução da capacidade da memória de informação de movimento, uma informação de movimento representativa é derivada em um bloco pré- determinado e apenas a informação de movimento representativa é armazenada na memória de informação de movimento na Literatura não Patente 2.
Lista de citações Literatura - Patente
[0005] Literatura - Patente 1: Patente Japonesa No. 4020789
Literatura - não Patente
[0006] Literatura - não Patente 1: J. Jung et al, “Temporal MV Predictor Modification for MV-Comp, Skip, Direct and Merge Schemes”, Documento do Grupo Colaborativo Integrado de Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-D164, Janeiro de 2011
[0007] Literatura - não Patente 2: Yeping Su et al, “CE9: Reduced Resolution Storage of Motion Vector Data”, Documento do Grupo Colaborativo Integrado de Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-D072, Janeiro de 2011
Sumário da Invenção Problema técnico
[0008] Existe, porém, um problema que consiste no fato de, no caso de o método de derivação para a previsão de informação de movimento descrito na Literatura - não Patente 1 e o método de derivação de informação de movimento descrito na Literatura não Patente 2 serem diferentes, a correlação temporal da informação de movimento prevista diminuir, e como consequência o volume de código da informação de movimento aumentar.
[0009] A presente modalidade foi criada para resolver o problema supramencionado, e tem como objetivo prover um aparato de codificação de imagem e um aparato de decodificação de imagem incluindo um dispositivo de compressão de informação capaz de aumentar a eficiência de codificação. Solução para o problema
[0010] De forma geral, de acordo com uma modalidade, é descrito um método para dividir um sinal de imagem de entrada em blocos de pixels, e realizar a interpredição dos blocos de pixels divididos. Este método inclui a seleção de informação de movimento prevista a partir de um buffer de informação de movimento que armazena informação de movimento em uma região codificada, e a previsão de informação de movimento de um bloco alvo de codificação pelo uso da informação de movimento prevista. O método inclui ainda a aquisição de informação de movimento representativa a partir de uma pluralidade de itens de informação de movimento em uma região codificada de acordo com a primeira informação indicando um método para selecionar a informação de movimento prevista, obtendo desta forma apenas a informação de movimento representativa.
Breve descrição das Figuras
[0011] A Figura 1 é um diagrama de blocos mostrando esquematicamente o arranjo de um aparato codificador de imagens de acordo com a primeira modalidade.
[0012] A Figura 2A é uma vista para explicar uma sequência codificadora preditiva de um bloco de pixels.
[0013] A Figura 2B é uma vista para explicar um exemplo de um tamanho de bloco de pixels.
[0014] A Figura 2C é uma vista para explicar outro exemplo de tamanho de bloco de pixels.
[0015] A Figura 2D é uma vista para explicar outro exemplo de tamanho de bloco de pixels.
[0016] A Figura 3A é uma vista para explicar um exemplo de um bloco de pixels em uma unidade de árvore de codificação.
[0017] A Figura 3B é uma vista para explicar outro exemplo de um bloco de pixels em uma unidade de árvore de codificação.
[0018] A Figura 3C é uma vista para explicar outro exemplo de um bloco de pixels em uma unidade de árvore de codificação.
[0019] A Figura 3D é uma vista para explicar outro exemplo de um bloco de pixels em uma unidade de árvore de codificação.
[0020] A Figura 4 é um diagrama de blocos mostrando esquematicamente o arranjo de um codificador entrópico mostrado da Figura 1.
[0021] A Figura 5 é uma vista mostrando esquematicamente o arranjo de uma memória de informação de movimento mostrada na Figura 1.
[0022] A Figura 6A é uma vista para explicar um exemplo de um processo de interpredição executado por um interpreditor mostrado na Figura 1.
[0023] A Figura 6B é uma vista para explicar outro exemplo de um processo de interpredição executado por um interpreditor mostrado na Figura 1.
[0024] A Figura 7A é uma vista para explicar um exemplo de uma unidade de previsão.
[0025] A Figura 7B é uma vista para explicar outro exemplo de uma unidade de previsão.
[0026] A Figura 7C é uma vista para explicar outro exemplo de uma unidade de previsão.
[0027] A Figura 7D é uma vista para explicar outro exemplo de uma unidade de previsão.
[0028] A Figura 7E é uma vista para explicar outro exemplo de uma unidade de previsão.
[0029] A Figura 7F é uma vista para explicar outro exemplo de uma unidade de previsão.
[0030] A Figura 7G é uma vista para explicar outro exemplo de uma unidade de previsão.
[0031] A Figura 8 é uma vista para explicar um modo de avanço, um modo de fusão, e um modo de interseção.
[0032] A Figura 9 é um diagrama de blocos mostrando esquematicamente o arranjo de um codificador de informação de movimento mostrado na Figura 4.
[0033] A Figura 10 é uma vista para explicar exemplos da posição de uma candidata a informação de movimento prevista em relação a uma unidade de predição alvo de codificação.
[0034] A Figura 11 é uma vista para explicar outro exemplo da posição de uma candidata a informação de movimento prevista em relação a uma unidade de predição alvo de codificação.
[0035] A Figura 12 é uma vista mostrando um exemplo de uma lista indicando a relação entre as posições dos blocos e os índices Mvpidx de uma pluralidade das candidatas a informação de movimento prevista.
[0036] A Figura 13A é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32 x 32.
[0037] A Figura 13B é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32 x 16.
[0038] A Figura 13C é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 32.
[0039] A Figura 13D é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 16.
[0040] A Figura 13E é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 8.
[0041] A Figura 13F é uma vista mostrando um exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 8 x 16.
[0042] A Figura 14A é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32 x 32.
[0043] A Figura 14B é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32 x 16.
[0044] A Figura 14C é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 32.
[0045] A Figura 14D é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 16.
[0046] A Figura 14E é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16 x 8.
[0047] A Figura 14F é uma vista mostrando outro exemplo de posição de uma informação de movimento de referência indicando o centro de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 8 x 16.
[0048] A Figura 15 é uma vista para explicar uma memória de informação de movimento com domínio espacial 501 e uma memória de informação de movimento com domínio temporal 502.
[0049] A Figura 16 é um fluxograma mostrando um exemplo da operação de um compressor de informação de movimento mostrado na Figura 1.
[0050] A Figura 17A é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32x32.
[0051] A Figura 17B é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 32x16.
[0052] A Figura 17C é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16x32.
[0053] A Figura 17D é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16x16.
[0054] A Figura 17E é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 16x8.
[0055] A Figura 17F é uma vista mostrando um exemplo de uma posição de aquisição de informação de movimento de referência indicando a extremidade superior esquerda de uma unidade de predição alvo de codificação quando o tamanho da unidade de predição é 8x16.
[0056] A Figura 18A é uma vista mostrando exemplos de uma posição de informação de movimento representativa.
[0057] A Figura 18B é uma vista mostrando outros exemplos da posição de informação de movimento representativa.
[0058] A Figura 19 é uma vista mostrando exemplos dos centros das unidades de predição com diferentes tamanhos de predição.
[0059] A Figura 20A é uma vista mostrando exemplos de uma posição de informação de movimento representativa quando o baricentro de uma pluralidade de posições de aquisição de informação de movimento de referência de cada bloco compressor de informação de movimento é configurado como a posição da informação de movimento representativa.
[0060] A Figura 20B é uma vista mostrando outros exemplos de uma posição de informação de movimento representativa quando o baricentro de uma pluralidade de posições de aquisição de informação de movimento de referência de cada bloco compressor de informação de movimento é configurado como a posição da informação de movimento representativa.
[0061] A Figura 21A é uma vista mostrando um exemplo de uma posição de informação de movimento representativa.
[0062] A Figura 21B é uma vista mostrando outro exemplo de uma posição de informação de movimento representativa.
[0063] A Figura 22 é uma vista mostrando uma estrutura de sintaxe de acordo com uma modalidade.
[0064] A Figura 23A é uma vista mostrando um exemplo de uma sintaxe de um conjunto de parâmetros sequenciais de acordo com uma modalidade.
[0065] A Figura 23B é uma vista mostrando outro exemplo de uma sintaxe de um conjunto de parâmetros sequenciais de acordo com uma modalidade.
[0066] A Figura 24 é uma vista mostrando um exemplo de uma sintaxe de unidade de predição de acordo com uma modalidade.
[0067] A Figura 25 é um diagrama de blocos mostrando esquematicamente um aparato de decodificação de imagem de acordo com a segunda modalidade.
[0068] A Figura 26 é um diagrama de blocos mostrando esquematicamente um decodificador entrópico mostrado na Figura 25.
[0069] A Figura 27 é um diagrama de blocos mostrando esquematicamente um decodificador de informação de movimento mostrado na Figura 26.
Breve descrição das Modalidades
[0070] Um aparato codificador de imagem e um aparato decodificador de imagem de acordo com cada modalidade serão explicados em detalhes abaixo, com referência aos desenhos em anexo. Deve ser notado que, na explicação a seguir, o termo “imagem” pode ser apropriadamente substituído por termos como “figura”, “pixel”, “sinal de imagem”, e “dados de imagem”. Deve também ser notado que, nas modalidades a seguir, porções denotadas pelo mesmo número de referência realizam a mesma operação, de forma a omitir uma explicação repetida.
Primeira Modalidade
[0071] A primeira modalidade é direcionada a um aparato codificador de imagem. Um aparato codificador de imagem correspondente ao aparato codificador de imagem de acordo com esta modalidade será explicado na segunda modalidade. Este aparato codificador de imagem pode ser implementado por hardwares como chips de integração em larga escala (LSI), processadores de sinal digital (DSP), ou grade de portas programável por campo (FPGA). Este aparato codificador de imagem pode ainda ser implementado fazendo-se com que um computador execute um programa codificador de imagem.
[0072] Como mostrado na Figura 1, um aparato codificador de imagem 100 de acordo com esta modalidade inclui um subroteador 101, um transformador ortogonal 102, um quantificador 103, um quantificador inverso 104, um transformador ortogonal inverso 105, um acumulador 106, uma memória de imagem de referência 107, um interpreditor 108, um compressor de informação de movimento 109, uma memória de informação de movimento 110, e um codificador entrópico 112. Um controlador de codificação 114 e um buffer de saída 113 são normalmente instalados do lado de fora do aparato codificador de imagem 100.
[0073] O aparato codificador de imagem 100 mostrado na Figura 1 divide cada quadro, cada campo, ou cada corte conformando um sinal de imagem de entrada 151 em uma pluralidade de blocos de pixels, realiza codificação preditiva nestes blocos de pixels divididos, e fornece os dados codificados de saída 163. Na explicação a seguir, assume-se, para fins de simplificação, que a codificação preditiva dos blocos de pixels é realizada da extremidade superior esquerda para a extremidade inferior direita, como mostrado na Figura 2A. Com referência à Figura 2A, os blocos de pixels codificados p são posicionados acima e do lado esquerdo de um bloco de pixels alvo de codificação c em um quadro f como um alvo de codificação.
[0074] O bloco de pixels é uma unidade de processamento de imagem, tal como um bloco de M x N pixels (sendo N e M números naturais), uma unidade de codificação, um macrobloco, um sub- bloco, ou um pixel. Deve ser notado que o bloco de pixels basicamente significa uma unidade de codificação na explicação a seguir, mas o bloco de pixels pode ser interpretado também pelos significados descritos acima pela substituição adequada dos termos. A unidade codificadora é tipicamente, por exemplo, um bloco de 16 x 16 pixels, como mostrado na Figura 2B, mas pode ainda ser um bloco de 32 x 32 pixels, como mostrado na Figura 2C, ou um bloco de 64 x 64 pixels, como mostrado na Figura 2D. A unidade codificadora pode ainda ser um bloco de 8 x 8 pixels (não mostrado) ou um bloco de 4 x 4 pixels (não mostrado). Adicionalmente, não é necessário que a unidade codificadora seja quadrada. Na explicação a seguir, o bloco alvo de codificação ou a unidade alvo de codificação do sinal de imagem de entrada 151 serão também referidos como "bloco de predição alvo". Adicionalmente, a unidade da codificação não está limitada a um bloco de pixels tal como a unidade codificadora, e é também possível usar um quadro, campo, ou corte, ou uma combinação destes.
[0075] As Figuras 3A, 3B, 3C e 3D são vistas mostrando exemplos práticos da unidade codificadora. A Figura 3A mostra um exemplo no qual o tamanho da unidade codificadora é 64 x 64 pixels (N=32). N representa o tamanho da unidade codificadora como uma referência. O tamanho quando a unidade codificadora é dividida é definido como N, e o tamanho quando a unidade não está dividida é definido como 2N. Uma unidade da árvore de codificação tem uma estrutura de árvore quaternária. Quando a unidade da árvore de codificação está dividida, os índices são alocados a quatro blocos de pixels na ordem de escaneamento em Z. A Figura 3B mostra um exemplo no qual a divisão da árvore quaternária é feita no bloco de 64 x 64 pixels mostrado na Figura 3A. Os números mostrados na Figura 3B representam os números ordinais do escaneamento em Z. É também possível realizar adicionalmente uma divisão da árvore quaternária em um índice de árvore quaternária da unidade codificadora. A profundidade da divisão é definida como Nível. Ou seja, a Figura 3A mostra um exemplo no qual Nível = 0. A Figura 3C mostra um exemplo de uma unidade codificadora com um tamanho de 32 x 32 pixels (N = 16) quando Nível = 1. A maior unidade de uma unidade da árvore de codificação como esta é chamada uma unidade ou bloco grande da árvore de codificação, e o sinal de imagem de entrada é codificado em ordem de escaneamento por matriz usando esta unidade, como mostrado na Figura 2A.
[0076] Baseando-se em uma entrada de parâmetro de codificação do controlador de codificação 114, o aparato de codificação de imagem 100 mostrado na Figura 1 realiza interpredição (também chamada predição interimagens, predição interquadros, ou predição de compensação de movimento) ou intrapredição (também chamada predição intraimagens ou predição intraquadros) (não mostrada) no bloco de pixels, gerando desta forma um sinal previsto de imagem 159. O aparato de codificação de imagem 100 transforma e quantifica ortogonalmente um sinal de erro de predição 152 entre o bloco de pixels (sinal de imagem de entrada 151) e o sinal de imagem previsto 159, gera os dados codificados 163 pela realização de codificação entrópica, e tem como saída os dados codificados 163.
[0077] O aparato codificador de imagem 100 mostrado na Figura 1 realiza codificação aplicando seletivamente uma pluralidade de modos de predição com tamanhos diferentes de blocos e diferentes métodos para gerar o sinal de imagem previsto 159. Os métodos para gerar o sinal de imagem previsto 159 são classificados de forma simplificada em dois tipos: intrapredição, que realiza a predição dentro de um quadro de predição alvo; e interpredição, que realiza predição usando um quadro de referência ou uma pluralidade de quadros de referência temporalmente diferentes.
[0078] Cada elemento incluído no aparato codificador de imagem 100 mostrado na Figura 1 será explicado abaixo.
[0079] O subtrator 101 obtém o sinal de erro de predição 152 subtraindo do bloco alvo de codificação do sinal de imagem de entrada 151 o sinal de imagem previsto 159 correspondente ao bloco alvo de codificação. O subtrator 101 fornece o sinal de erro de predição 152 como entrada para o transformador ortogonal 102.
[0080] O transformador ortogonal 102 obtém um coeficiente de transformação 153 através de transformação ortogonal como a transformada discreta de cosseno (DCT) sobre o sinal de erro de predição 152 do subtrator 101. O transformador ortogonal 102 fornece como saída o coeficiente de transformação 153 para o quantificador 103.
[0081] O quantificador 103 obtém um coeficiente de transformação quantificado 154 pela quantificação do coeficiente de transformação 153 do transformador ortogonal 102. Mais especificamente, o quantificador 103 realiza quantificação de acordo com informações de quantificação, como um parâmetro de quantificação ou uma matriz de quantificação definidos pelo controlador de codificação 114. O parâmetro de quantificação indica a qualidade da quantificação. A matriz de quantificação é usada para ponderar a qualidade da quantificação para cada componente do coeficiente de transformação, mas usar a matriz de quantificação não é essencial à modalidade. O quantificador 103 fornece como saída o coeficiente quantificado de transformação 154 para o codificador entrópico 112 e o quantificador inverso 104.
[0082] O codificador entrópico 112 realiza codificação entrópica (por exemplo, codificação de Huffman ou codificação aritmética) sobre vários parâmetros codificadores como o coeficiente de transformação 154 do quantificador 103, a informação de movimento 160 do interpreditor 108, a informação de predição 165 definida pelo controlador de codificação 114, a informação de posição de referência 164 do controlador de codificação 114, e a informação de quantificação, gerando desta forma os dados codificados 163. Note-se que os parâmetros de codificação são parâmetros necessários para a decodificação, assim como a informação de predição 165, a informação do coeficiente de transformação, e a informação de quantificação. Por exemplo, o controlador de codificação 114 inclui uma memória interna (não mostrada), e esta memória armazena os parâmetros de codificação. Quando esta codifica um bloco de predição alvo, os parâmetros de codificação de um bloco de pixels já codificado adjacente ao bloco de predição alvo são usados.
[0083] Mais especificamente, como mostrado na Figura 4, o codificador entrópico 112 inclui um codificador de parâmetros 401, um codificador de coeficientes de transformação 402, um codificador de informação de movimento 403, e um multiplexador 404. O codificador de parâmetros 401 gera dados codificados 451A pela codificação dos parâmetros de codificação como a informação de predição 165 recebida do controlador de codificação 114. O codificador de coeficientes de transformação 402 gera dados codificador 451B pela codificação do coeficiente de transformação quantificado 154 recebido do quantificador 103.
[0084] O codificador de informação de movimento 403 codifica a informação de movimento 160 recebida do interpreditor 108 referindo-se à informação de movimento de referência 166 recebida da memória de informação de movimento 110 e da informação de posição de referência 164 recebida do controlador de codificação 114, desta forma gerando dados codificados 451C. Detalhes do codificador de informação de movimento 403 serão descritos posteriormente.
[0085] O multiplexador 404 gera os dados codificados 163 pela multiplexação dos dados codificados 451A, 451B, e 451C. Os dados codificados gerados 163 contêm todos os parâmetros necessários para a decodificação, assim como a informação do coeficiente de transformação e a informação da quantificação, além da informação de movimento 160 e a informação de predição 165.
[0086] Os dados codificados 163 gerados pelo codificador entrópico 112 são temporariamente armazenados no buffer de saída 113 após, por exemplo, multiplicação, e fornecidos como saída em um tempo adequado de saída administrado pelo controlador de codificação 114. Os dados codificados 163 são enviados para, por exemplo, um sistema de armazenamento (meio de armazenamento) (não mostrado) ou um sistema de transmissão (linha de comunicação) (não mostrado).
[0087] O quantificador inverso 104 obtém um coeficiente de transformação recuperado 155 pela quantificação inversa do coeficiente de transformação quantificado 154 do quantificador 103. Mais especificamente, o quantificador inverso 104 realiza quantificação inversa de acordo com a informação de quantificação usada no quantificador 103. A informação de quantificação usada no quantificador 103 é carregada da memória interna do controlador de codificação 114. O quantificador inverso 104 fornece como saída o coeficiente de transformação recuperado 155 para o transformador ortogonal inverso 105.
[0088] O transformador ortogonal inverso 105 realiza sobre o coeficiente de transformação recuperado 155 do quantificador inverso 104, transformação ortogonal inversa como uma transformação discreta de cosseno inversa correspondente à transformação ortogonal realizada no transformador ortogonal 102, obtendo desta forma um sinal de erro de predição recuperado 156. O transformador ortogonal inverso 105 fornece como saída o sinal de erro de predição recuperado 156 para o acumulador 106.
[0089] O acumulador 106 gera um sinal de imagem decodificada local 157 pela adição do erro de predição recuperado 156 ao sinal de imagem previsto 159. O sinal de imagem decodificado 157 é uma entrada para a memória de imagem de referência 107 através de um filtro de deblocagem ou filtro de Wiener (não mostrado).
[0090] A memória de imagem de referência 107 armazena um sinal de imagem filtrado decodificado localmente 158. O interpreditor 108 refere-se ao sinal de imagem filtrado 158 como um sinal de imagem de referência 158 quando gera uma imagem prevista, caso necessário.
[0091] O interpreditor 108 realiza interpredição usando o sinal de imagem de referência 158 salvo na memória de imagem de referência 107. Mais especificamente, o interpreditor 108 deriva uma diferença de movimento (vetor de movimento) pela realização de um processo de reconhecimento de blocos entre o bloco de predição alvo e o sinal de imagem de referência 158. Baseado neste vetor de movimento, o interpreditor 108 gera uma imagem interprevista pela realização de compensação de movimento (interpolação para um movimento com precisão decimal). No H.264, a interpolação pode ser realizada com precisão de até 1/4 de pixel. O vetor de movimento derivado é entropicamente codificado como parte da informação de movimento 160.
[0092] A memória de informação de movimento 110 inclui o compressor de informação de movimento 109. A memória de informação de movimento 110 reduz a quantidade de informação da informação de movimento 160 pela realização apropriada de um processo de compressão, e armazena temporariamente a informação de movimento comprimida como a informação de movimento de referência 166. Como mostrado na Figura 5, a memória de informação de movimento 110 é armazenada para cada quadro (ou corte), e a memória de informação de movimento 110 inclui ainda uma memória de informação de movimento de referência em domínio espacial 501 para armazenar a informação de movimento 160 do mesmo quadro da informação de movimento de referência 166, e uma memória de informação de movimento de referência em domínio temporal 502 para armazenar a informação de movimento 160 de um quadro já codificado igual ao da informação de movimento de referência 166. A memória de informação de movimento 110 pode ainda incluir uma pluralidade de memórias de informação de movimento de referência em domínio temporal 502 de acordo com o número de quadros de referência a serem usados pelo quadro alvo da codificação para predição.
[0093] Além disso, a memória de informação de movimento de referência em domínio espacial 501 e a memória de informação de movimento de referência em domínio temporal 502 podem ser obtidas pela separação lógica de uma memória fisicamente individual. Além disso, a memória de informação de movimento de referência em domínio espacial 501 pode armazenar apenas informação de movimento em domínio espacial para um quadro que já está sendo codificado, e itens de informação de movimento em domínio espacial que não sejam mais necessários como informação de referência podem ser sequencialmente comprimidos e armazenados na memória de informação de movimento de referência em domínio temporal 502.
[0094] A informação de movimento de referência 166 é armazenada para cada região pré-determinada (por exemplo, cada bloco de 4 x 4 pixels) na memória de informação de movimento de referência em domínio espacial 501 e na memória de informação de movimento de referência em domínio temporal 502. A informação de movimento de referência 166 contém ainda informação indicando se a região é codificada por interpredição (a ser descrita posteriormente) ou intrapredição (a ser descrita posteriormente).
[0095] Além disso, mesmo quando uma unidade codificadora (ou unidade de predição) é interprevista usando a informação de movimento 160 prevista a partir de uma região codificada sem codificar o valor do vetor de movimento na informação de movimento 160, tal como em um modo de avanço ou modo direto definido por H.264 ou em um modo de junção (a ser descrito posteriormente), a informação de movimento na unidade codificadora (ou unidade de predição) é armazenada como a informação de movimento de referência 166.
[0096] Quando o processo de codificação do quadro ou corte alvos de codificação está completo, a referência da memória de informação de movimento de referência em domínio espacial 501 do quadro é trocada para aquela da memória de informação de movimento de referência em domínio temporal 502 para um quadro a ser codificado em seguida. Nesta etapa, para reduzir a capacidade de memória da memória de informação de movimento de referência em domínio temporal 502, a informação de movimento 160 comprimida pelo compressor de informação de movimento 109 (a ser descrito posteriormente) é armazenada na memória de informação de movimento de referência em domínio temporal 502.
[0097] A informação de predição 165 está em conformidade com um modo de predição controlado pelo controlador de codificação 114. Como descrito acima, é possível selecionar interpredição, ou intrapredição (não mostrada) ou interpredição de forma a gerar o sinal de imagem previsto 159. É ainda possível selecionar adicionalmente uma pluralidade de modos para cada uma entre intrapredição e interpredição. O controlador de codificação 114 determina uma entre a pluralidade de modos preditivos de intrapredição e interpredição como um modo de predição ótimo, e configura a informação de predição 165.
[0098] Por exemplo, o controlador de codificação 114 determina um modo de predição ótimo usando uma função custo indicada pela equação (1) abaixo: K = SAD + À x OH (1)
[0099] Na equação (1) (a ser chamada de custo de codificação simplificado a partir deste ponto), OH indica o volume de código da informação de predição 160 (por exemplo, informação de vetor de movimento ou informação de tamanho de blocos de previsão), e SAD indica uma soma de valores de diferenças absolutas (isto é, a soma cumulativa dos valores absolutos do sinal de erro de predição 152) entre o bloco de predição alvo e o sinal de imagem prevista 159. Além disso, À indica um multiplicador indeterminado de Lagrange a ser determinado baseando-se no valor da informação de quantificação (parâmetro de quantificação), e K indica o custo de codificação. Quando a equação (1) é usada, um modo de predição que minimiza o custo de codificação K é determinado como um modo de predição ótimo do ponto de vista do volume de código gerado e do erro de predição. Como uma variação da equação (1), é ainda possível estimar o custo de codificação apenas a partir de OH ou SAD, ou estimar o custo de codificação usando um valor obtido pela realização de uma transformada de Hadamard sobre o SAD ou uma aproximação do valor.
[0100] Adicionalmente, um modo de predição ótimo pode ser determinado usando uma unidade codificadora temporária (não mostrada). Por exemplo, o controlador de codificação 114 determina um modo de predição ótimo usando uma função de custo indicada pela equação (2), abaixo: K = D + À x R (2)
[0101] Na equação (2), D indica uma soma de erros quadráticos (isto é, distorção de codificação) entre um bloco de predição alvo e uma imagem localmente decodificada, R indica um volume de código estimado pela codificação temporária para um erro de predição entre o bloco de predição alvo e o sinal de imagem previsto 159 do modo de predição, e J indica o custo de codificação. Quando é calculado o custo de codificação J (a ser chamado custo detalhado de codificação a partir deste ponto) da equação (2), um processo de codificação temporário e um processo de decodificação local são necessários para cada modo de predição, de forma que a escala do circuito ou a quantidade de cálculos aumenta. Por outro lado, o custo de codificação J é calculado baseando-se em uma distorção de codificação mais precisa e um volume de código mais preciso. Isto facilita manter uma alta eficiência de codificação pela determinação precisa de um modo de predição ótimo. Note-se que, como variação da equação (2), é ainda possível estimar o custo de codificação apenas de R ou D, ou estimar o custo de codificação usando um valor aproximado de R ou D. Além disso, um uso hierárquico destes custos é ainda possível. O controlador de codificação 114 pode também diminuir previamente o número de candidatos de modos de predição para realizar a determinação usando a equação (1) ou (2), baseando-se em informações (por exemplo, modos de predição de blocos de pixels adjacentes ou o resultado da análise da imagem) pré-obtidas para um bloco de predição alvo.
[0102] Como uma modificação desta modalidade, é possível reduzir ainda mais o número de candidatos a modos de predição mantendo o desempenho da codificação, pela realização de determinações de modo de duas etapas combinando as equações (1) e (2). O custo de codificação simplificado indicado pela equação (1) não requer um processo local de decodificação, ao contrário da equação (2), e desta forma pode ser calculado a alta velocidade. O aparato codificador de imagem desta modalidade tem mais modos de predição do que aquele do H.264, portanto a determinação de modo usando o custo de codificação detalhado é irreal. Como uma primeira etapa, portanto, a determinação de modo usando o custo de codificação simplificado é realizada em modos de predição que podem ser usados para o bloco de pixels correspondente, desta forma derivando candidatos a modo de predição.
[0103] Uma vez que a correlação entre o custo de codificação simplificado e o custo de codificação detalhado aumenta quando o valor do parâmetro de quantificação, que define quão simples será a quantificação, se torna maior, o número de candidatos a modo de predição é modificado pelo uso desta propriedade.
[0104] A seguir, o processo de predição do aparato codificador de imagem 100 será explicado.
[0105] Apesar de não serem mostrados, uma pluralidade de modos de predição estão preparados para o aparato codificador de imagem 100 mostrado na Figura 1, e o método para gerar o sinal previsto 159 e o tamanho do bloco de compensação de movimento variam de um modo de predição para o outro. Os métodos pelos quais o preditor 108 gera o sinal de imagem previsto 159 são classificados, simplificadamente, em intrapredição (predição intraquadros), que gera uma imagem prevista usando o sinal de imagem de referência 158 do quadro (ou campo) alvo de codificação, e interpredição (predição interquadros), que gera uma imagem prevista usando o sinal de imagem de referência 158 de um ou mais quadros de referência (ou campos de referência) codificados. O preditor 108 gera o sinal previsto de imagem 159 do bloco alvo de codificação pela troca seletiva entre intrapredição e interpredição.
[0106] A Figura 6A mostra um exemplo de interpredição. A interpredição é tipicamente executada para cada unidade de predição, e cada unidade de predição pode ter informações de movimento 160 únicas. Na interpredição, como mostrado na Figura 6A, o sinal de imagem previsto 159 é gerado usando o sinal de imagem de referência 158 de um bloco 602 em uma posição espacialmente deslocada, de acordo com o vetor de movimento contido na informação de movimento 160, a partir de um bloco 601 que é um bloco de pixels em um quadro de referência já codificado (por exemplo, um quadro codificado imediatamente anterior) e existe na mesma posição que a de uma unidade de predição alvo de codificação. Ou seja, o sinal de imagem prevista 159 é gerado usando o sinal de imagem de referência 158 do bloco 602 no quadro de referência, que é especificado pela posição (coordenadas) do bloco alvo codificador e o vetor de movimento contido na informação de movimento 160.
[0107] Na interpredição, a compensação do movimento à precisão de um pequeno número de pixels (por exemplo, precisão de 1/2 pixel ou precisão de 1/4 pixel) é possível, e o valor de um pixel interpolante é gerado filtrando-se o sinal de imagem de referência 158. Por exemplo, um processo de interpolação de precisão de até 1/4 pixel pode ser realizado em um sinal de claridade em H.264. Este processo de interpolação pode ser executado usando filtragem arbitrária ao invés da filtragem definida por H.264.
[0108] Deve ser notado que na interpredição é possível usar não apenas um quadro de referência imediatamente precedente, como mostrado na Figura 6A, mas também qualquer quadro de referência já codificado, como mostrado na Figura 6B. Quando os sinais da imagem de referência 158 de uma pluralidade de quadros de referência com diferentes posições no tempo são armazenados, a informação indicando a posição temporal do sinal do sinal de imagem de referência 158 a partir do qual o sinal de imagem previsto 159 é gerado é representada por um número de quadro de referência. A informação de movimento 160 contém este número de quadro de referência. O número de quadro de referência pode ser alterado para cada região (por exemplo, cada figura, corte, ou bloco). Ou seja, diferentes quadros de referência podem ser usados para diferentes unidades de predição. Por exemplo, quando um quadro de referência codificado imediatamente anterior é usado na predição, o número do quadro de referência desta região é definido como zero. Quando um quadro de referência codificado dois quadros antes de um quadro alvo de codificação é usado na predição, o número do quadro de referência desta região é definido como um. Como outro exemplo, se o sinal de imagem de referência 158 de apenas um quadro for armazenado na memória de imagem de referência 107 (quando apenas um quadro de referência é armazenado), o número de quadro de referência é sempre definido como zero.
[0109] Adicionalmente, é possível usar seletivamente um tamanho adequado para um bloco alvo de codificação a partir de uma pluralidade de tamanhos preparados de unidades de predição. Por exemplo, a compensação de movimento pode ser realizada para cada unidade de predição obtida pela divisão das unidades da árvore de codificação, como mostrado nas Figuras 7A, 7B, 7C, 7D, 7E, 7F, e 7G. É ainda possível realizar compensação de movimento para cada unidade de predição dividida em uma forma diferente de um quadrado, como mostrado nas Figuras 7F ou 7G.
[0110] Como descrito anteriormente, a informação de movimento 160 de um bloco de pixels codificado (por exemplo, um bloco de 4 x 4 pixels) em um quadro alvo de codificação a ser usado em interpredição é armazenada como a informação de movimento de referência 166. Portanto, a forma e o vetor de movimento de um bloco de compensação de movimento ótimo e o número de quadros de referência podem ser usados de acordo com a propriedade local do sinal de imagem de entrada 151. É ainda possível combinar livremente unidades codificantes e unidades de predição. Quando a unidade codificante é um bloco de 64 x 64 pixels, cada uma das quatro unidades da árvore de codificação (blocos de 32 x 32 pixels) obtidas pela divisão do bloco de 64 x 64 pixels pode ainda ser dividida em quatro blocos. Isto torna possível usar hierarquicamente blocos de 16 x 16 pixels a partir dos blocos de 64 x 64 pixels. De forma similar, é possível usar hierarquicamente blocos de 8 x 8 pixels a partir dos blocos de 64 x 64 pixels. Quando a unidade de predição é obtida pela divisão da unidade da árvore de codificação em quatro blocos, é possível executar um processo de compensação de movimento hierárquico a partir de um bloco de 64 x 64 pixels para blocos de 4 x 4 pixels.
[0111] Adicionalmente, na interpredição, uma predição bidirecional usando dois tipos de compensação de movimento pode ser executada sobre um bloco de pixels alvo de codificação. Em H.264, um novo sinal de imagem previsto (não mostrado) é obtido pela realização de dois tipos de compensação de movimento sobre um bloco de pixels alvo de codificação, e pelo cálculo da média ponderada de dois tipos de sinal de imagem prevista. Nesta predição bidimensional, os dois tipos de compensação de movimento serão referidos como predição de lista 0 e predição de lista 1. Explicação do Modo de Avanço, Modo de Junção e Modo de Interseção
[0112] O aparato codificador de imagem 100 de acordo com esta modalidade usa uma pluralidade de modos de predição com diferentes processos de codificação, como mostrado na Figura 8. Com referência à Figura 8, o modo de avanço é um modo no qual apenas a sintaxe de uma posição de informação de movimento prevista 954 (descrita posteriormente) é codificada, e outras sintaxes não são codificadas. O modo de junção é um modo no qual apenas a sintaxe de uma posição de informação de movimento prevista 954 e a informação do coeficiente de transformação 153 são codificadas, e outras sintaxes não são codificadas. O modo de interseção é um modo no qual a sintaxe de uma posição de informação de movimento prevista 954, a informação de movimento diferencial 953 (a ser descrita posteriormente) e a informação do coeficiente de transformação 153 são codificadas. Estes modos são alternados pela informação de predição 165 controlada pelo controlador de codificação 114. Codificador de Informação de Movimento 403
[0113] O codificador de informação de movimento 403 será explicado abaixo referindo-se à Figura 9.
[0114] O codificador de informação de movimento 403 inclui uma unidade de aquisição de vetor de movimento 901, um alternador de seleção de vetor de movimento previsto (também referido como um alternador de seleção de informação de movimento prevista) 902, um subtrator 903, um codificador de informação de movimento diferencial 904, um codificador de posição de informação de movimento prevista 905, e um multiplexador 906.
[0115] A unidade de aquisição de vetor de movimento 901 recebe a informação de movimento de referência 166 e a informação de posição de referência 164, e gera pelo menos uma candidata a informação de movimento prevista (também referido como um candidato a vetor de movimento previsto) 951 (951A, 951B,...). As Figuras 10 e 11 ilustram exemplos da posição da candidata à informação de movimento prevista 951 em relação a uma unidade de predição alvo. A Figura 10 mostra as posições das unidades de predição espacialmente adjacentes à unidade de predição alvo. AX (X = 0 a nA - 1) indica uma unidade de predição adjacente ao lado esquerdo da unidade de predição alvo, BY (Y = 0 a nB - 1) indica uma unidade de predição adjacente acima da unidade de predição alvo, e C, D e E indicam, respectivamente, unidades de predição adjacentes no canto superior direito, superior esquerdo, e inferior esquerdo da unidade de predição alvo. A Figura 11 mostra a posição de uma unidade de predição em um quadro de referência já codificado em relação à unidade de predição alvo de codificação. Na Figura 11, Col indica uma unidade de predição, que existe na mesma posição que aquela da unidade de predição alvo de codificação, no quadro de referência. A Figura 12 mostra um exemplo de uma lista indicando a relação entre as posições dos blocos e os índices Mvpidx de uma pluralidade de candidatas a informação de movimento prevista 951. Os índices Mvpidx 0 a 2 indicam os candidatos a vetores de movimentos previstos 951 posicionados no domínio espacial, e o índice Mvpidx 3 indica o candidato a vetor de movimento previsto 951 posicionado no domínio temporal. A posição de unidade de predição A é a posição de uma unidade preditiva de interpredição, isto é, uma unidade preditiva com a informação de movimento de referência 166, em AX, como mostrado na Figura 10, e o valor de X é menor na posição de unidade de predição A. A posição de unidade de predição B é a posição de uma unidade preditiva de interpredição, isto é, uma unidade preditiva com a informação de movimento de referência 166, em BY, como mostrado na Figura 10, e o valor de Y é menor na posição de unidade de predição B. Quando a posição de unidade de predição C não é de interpredição, a informação de movimento de referência 166 na posição de unidade de predição D é substituída pela informação de movimento de referência 166 na posição de unidade de predição C. Quando as posições de unidades de predição C e D não são de interpredição, a informação de movimento de referência 166 na posição de unidade de predição E são substituídas pela informação de movimento de referência 166 na posição de unidade de predição C.
[0116] Se o tamanho da unidade de predição alvo de codificação for maior que aquele da menor unidade de predição, a posição de unidade de predição Col pode armazenar uma pluralidade de itens de informação de movimento de referência 166 na memória de informação de movimento de referência no domínio temporal 502. Neste caso, a informação de movimento de referência 166 na unidade de predição da posição Col é adquirida de acordo com a informação de posição de referência 164. A posição de aquisição da informação de movimento de referência 166 na unidade de predição na posição Col será referida como posição de aquisição de informação de movimento a partir daqui. As Figuras 13A, 13B, 13C, 13D, 13E, e 13F ilustram exemplos da posição de aquisição de informação de movimento para cada tamanho de unidade de predição alvo de codificação (32 x 32 a 16 x 16) quando a informação de posição de referência 164 indica o centro da unidade de predição na posição Col. Nas Figuras 13A, 13B, 13C, 13D, 13E e 13F, cada bloco indica uma unidade de predição 4 x 4, e um círculo indica a posição de uma unidade de predição 4 x 4 a ser adquirida como candidata a informação de movimento prevista 951. As Figuras 14A, 14B, 14C, 14D, 14E e 14F ilustram outros exemplos de posição de aquisição de informação de movimento. Com referência às Figuras 14A, 14B, 14C, 14D, 14E e 14F, não há unidades de predição 4 x 4 na posição de um círculo, de forma que o candidata a informação de movimento prevista 951 é gerado por um método pré-determinado como a média ou mediana da informação de movimento de referência 166 em quatro unidades de predição 4 x 4 adjacentes ao círculo. Como outro exemplo adicional da posição de aquisição de informação de movimento, a informação de movimento de referência 166 de uma unidade de predição 4 x 4 posicionada no canto superior esquerdo da unidade de predição na posição Col pode também ser usada como a candidata a informação de movimento prevista 951. Em um caso diferente dos exemplos supramencionados, é possível gerar a candidata a informação de movimento prevista 951 usando qualquer posição e qualquer método, provido que o método seja um método pré- determinado.
[0117] Deve ser notado que, se não existir uma informação de movimento de referência 166, a informação de movimento 160 com um vetor zero será fornecida como saída como a candidata a informação de movimento prevista 951.
[0118] Pelo processamento descrito acima, pelo menos uma candidata a informação de movimento prevista 951 é dada como saída do bloco de movimento de referência. Se o número de quadros de referência da candidata a informação de movimento prevista 951 for diferente do da unidade de predição alvo de codificação, a candidata a informação de movimento prevista 951 pode ser redimensionada usando o número de quadros de referência da candidata a informação de movimento prevista 951 e o da unidade de predição alvo de codificação.
[0119] O alternador de seleção de informação de movimento prevista 902 seleciona uma dentre a pluralidade de candidatas a informação de movimento prevista 951 de acordo com um comando do controlador de codificação 114, e fornece como saída a informação de movimento prevista 952. O alternador de seleção de informação de movimento prevista 902 pode ainda fornecer como saída a informação de posição da informação de movimento prevista 954 (a ser descrita posteriormente). A seleção supramencionada pode ser realizada usando uma função de avaliação como as equações (1) ou (2). O subtrator 903 subtrai a informação do vetor de movimento previsto 952 da informação de movimento 160, e fornece como saída a informação de movimento diferencial 953 para o codificador de informação de movimento diferencial 904. O codificador de informação de movimento diferencial 904 codifica a informação de movimento diferencial 953, e fornece como saída os dados codificados 960A. Note-se que, no modo de avanço e no modo de junção, o codificador de informação de movimento diferencial 904 não precisa codificar a informação de movimento diferencial 953.
[0120] O codificador de posição de informação de movimento prevista 905 codifica a informação de posição da informação de movimento prevista 954 (Mvpidx) indicando qual candidata a informação de movimento prevista 951 é selecionado da lista mostrada na Figura 12, e fornece como saída os dados codificados 960B. A informação de posição da informação de movimento prevista 954 é codificada usando codificação com comprimento fixo ou codificação com comprimento variável geradas a partir do número total de candidatas a informação de movimento prevista 951. A codificação com comprimento variável pode ainda ser realizada usando a correlação com blocos adjacentes. Além disso, se uma pluralidade das candidatas a informação de movimento prevista 951 possuírem informação idêntica, é ainda possível codificar a informação de posição da informação de movimento prevista 954 pela formação de uma tabela de código a partir do número total de candidatas a informação de movimento prevista 951 a partir da qual as candidatas a informação de movimento prevista 951 idênticas são deletadas. Ainda, se o número total de candidatas a informação de movimento prevista 951 for 1, é determinado que a candidata a informação de movimento prevista 951 é a informação do vetor de movimento previsto 952, de forma que a informação de posição da informação de movimento prevista 954 não precisa ser codificada.
[0121] Adicionalmente, no modo de avanço, no modo de junção, e no modo de interseção, os métodos para derivar a candidata à informação de movimento prevista 951 não precisam ser o mesmo, e é possível configurar independentemente os métodos para derivar a candidata à informação de movimento prevista 951. Esta modalidade será explicada assumindo que o mesmo método para derivar a candidata à informação de movimento prevista 951 é usado no modo de avanço e no modo de junção, e um método diferente para derivar a candidata à informação de movimento prevista 951 é usado no modo de junção. Detalhes do Compressor de Informação de movimento 109
[0122] Primeiramente, o processo de compressão de informação de movimento será explicado em relação à Figura 15. Na Figura 15, a informação de movimento de referência 166 da memória de informação de movimento de referência em domínio espacial 501 é comprimida e armazenada na memória de informação de movimento de referência em domínio temporal 502. A informação de movimento de referência 166 que está armazenada na posição de informação de movimento representativa para cada bloco de compressão de informação de movimento (na Figura 15, um bloco de 16 x 16 pixels) na memória de informação de movimento de referência em domínio espacial 501 é armazenada na memória de informação de movimento de referência em domínio temporal 502. Quando for realizado o processo de codificação de informação de movimento descrito acima, a informação de movimento de referência 166 armazenada na posição de aquisição de informação de movimento de referência descrita acima é definida como a candidata a informação de movimento prevista 951. Neste caso, é ainda possível assumir que o bloco de compressão de informação de movimento tem virtualmente a mesma informação de movimento de referência 166, e define a informação de movimento de referência 166 armazenada na posição de informação de movimento de referência descrita acima como a candidata a informação de movimento prevista 951 (a mesma candidata a informação de movimento prevista 951 é derivada).
[0123] A seguir, o compressor de informação de movimento 109 será explicado com referência ao fluxograma mostrado na Figura 16. Quando o processo de codificação de um quadro (ou uma unidade arbitrária como um corte ou unidade de codificação) está completo, o compressor de informação de movimento 109 comprime a informação de movimento 160 e armazena a informação de movimento 160 na memória de informação de movimento de referência em domínio temporal 502.
[0124] Primeiramente, a informação de posição de referência 164 é adquirida do controlador de codificação 114 (etapa s1601), e um quadro é dividido em blocos de compressão de informação de movimento como unidades de compressão da informação de movimento 160 (etapa s1602). O bloco de compressão de informação de movimento é um bloco de pixels maior que uma unidade (tipicamente, um bloco de 4 x 4 pixels) através do qual a informação de movimento 160 é armazenada pelo processo de compensação de movimento, e é tipicamente um bloco de 16 x 16 pixels. O bloco de compressão de informação de movimento pode ainda ser um bloco de 64 x 64 pixels, um bloco de 32 x 32 pixels, um bloco de 8 x 8 pixels, um bloco de pixels retangular, ou uma região de pixels com forma arbitrária.
[0125] Em seguida, uma posição de informação de movimento representativa é gerada de acordo com a informação de posição de referência 164 (etapa s1603). Como exemplo da geração de uma posição de informação de movimento representativa, quando o bloco de compressão de informação de movimento é um bloco de 16 x 16 pixels, a posição de aquisição de informação de movimento de referência sendo o tamanho da unidade de predição igual a 16 x 16, como mostrado nas Figuras 13D, 14D, e 17D, é definida como a posição de informação de movimento representativa. Subsequentemente, a informação de movimento de referência 166 da posição de informação de movimento representativa gerada é definida como a informação de movimento representativa (etapa s1604), e a informação de movimento representativa é armazenada na memória de informação de movimento de referência em domínio temporal 502 (etapa s1605). As etapas s1604 e s1605 descritas acima são executadas para todos os blocos de compressão de informação de movimento.
[0126] Quando a unidade para armazenamento da informação de movimento 160 é um bloco M x M e o tamanho do bloco de compressão de informação de movimento é N x N (N é um múltiplo de M), a capacidade da memória de informação de movimento de referência pode ser reduzida para (M x M)/(N x N) pela execução do processo de compressão de informação de movimento supramencionado. Outras Modalidades de Posições de Informação de movimento Representativa
[0127] Como outro exemplo da geração de uma posição de informação de movimento representativa, a posição central de uma pluralidade de posições de aquisição de informação de movimento de referência pode também ser usada como a posição de informação de movimento representativa. As Figuras 18A e 18B mostram a posição de informação de movimento representativa de cada bloco de compressão de movimento com um tamanho de 16 x 16. A Figura 18A mostra posições de informação de movimento representativa onde as posições de aquisição de informação de movimento de referência são as posições mostradas na Figura 13D. Da mesma forma, a Figura 18B mostra posições de informação de movimento representativa onde as posições de aquisição de informação de movimento de referência são as posições mostradas na Figura 17D. Os símbolos • nas Figuras 18A e 18B indicam posições de aquisição de informação de movimento de referência onde uma unidade de predição é um bloco 16 x 16. Uma posição de informação de movimento representativa indicada por x está localizada na posição central (também chamada de posição baricêntrica) de quatro posições de aquisição de informação de movimento de referência.
[0128] Como outro exemplo da geração de uma posição de informação de movimento representativa, é ainda possível usar uma posição de aquisição de informação de movimento de referência para cada tamanho de uma pluralidade de unidades de predição como a informação de posição de referência 164, e gerar uma posição de informação de movimento representativa a partir de uma pluralidade de posições de aquisição de informação de movimento de referência.
[0129] Como outro exemplo da geração de uma posição de informação de movimento representativa, é ainda possível usar uma posição de aquisição de informação de movimento de referência para cada tamanho de uma pluralidade de unidades de predição como a informação de posição de referência 164, e gerar uma posição de informação de movimento representativa a partir de uma pluralidade de posições de aquisição de informação de movimento de referência. A Figura 19 mostra o centro (posição de aquisição de informação de movimento de referência) de cada unidade de predição com um tamanho de unidade de predição de 16 x 16 ou mais, quando um bloco da árvore é um bloco de 64 x 64 pixels.
[0130] Como outro exemplo da geração de uma posição de informação de movimento representativa, uma posição de informação de movimento representativa pode ainda ser definida usando um conjunto de posições de aquisição de informação de movimento de referência para cada bloco de compressão de informação de movimento. A Figura 20A mostra um exemplo quando o baricentro de uma pluralidade de posições de aquisição de informação de movimento de referência em cada bloco de compressão de informação de movimento é definido como a posição de informação de movimento representativa. Se a posição baricêntrica não corresponde à posição de um bloco 4 x 4, é possível definir o bloco 4 x 4 mais próximo como uma posição de informação de movimento representativa, ou gerar o vetor de movimento de referência 166 da posição baricêntrica usando interpolação como uma interpolação bilinear.
[0131] A Figura 20B mostra um exemplo no qual uma entre uma pluralidade de posições de aquisição de informação de movimento de referência é selecionada para cada bloco de compressão de informação de movimento, e definida como uma posição de informação de movimento representativa.
[0132] Adicionalmente, as Figuras 21A e 21B ilustram exemplos quando os blocos de compressão de informação de movimento têm a mesma posição de aquisição de informação de movimento de referência em um bloco da árvore. Uma vez que todos os blocos de compressão de informação de movimento têm a mesma posição de informação de movimento representativa, as posições de informação de movimento representativa não precisam ser substituídas de acordo com uma posição no bloco da árvore. A posição de informação de movimento representativa não é necessariamente aquela mostrada das Figuras 21A e 21B, e pode ser qualquer posição, como o canto superior esquerdo ou o canto superior direito no bloco de compressão de informação de movimento.
[0133] Como um exemplo da geração de uma posição de informação de movimento representativa, uma posição de informação de movimento representativa pode ainda ser indicada usando BlkIdx que indicam posições de blocos 4 x 4 em um bloco de compressão de informação de movimento no escaneamento em Z. Quando o tamanho do bloco de compressão de informação de movimento é 16 x 16, a posição de informação de movimento representativa mostrada na Figura 21A é equivalente à posição de BlkIdx = 12. Além disso, a posição de informação de movimento representativa mostrada na Figura 21B é equivalente à posição de BlkIdx = 15.
[0134] Como outro exemplo do processo de compressão de informação de movimento, o processo de compressão de informação de movimento pode ainda incluir números de quadro de referência de forma a reduzir a capacidade de memória para números de quadro de referência. Neste caso, um número de quadro de referência armazenado em uma posição de informação de movimento representativa é armazenado na capacidade da memória para números de quadros de referência. De acordo, a memória de informação de movimento de referência em domínio espacial 501 e a memória de informação de movimento de referência em domínio temporal 502 mostradas na Figura 5 armazenam números de quadros de referência adicionalmente à informação do vetor de movimento.
[0135] Como outro exemplo do processo de compressão de informação de movimento, quando o processo de compressão de informação de movimento não inclui quaisquer números de quadros de referência, a informação do vetor de movimento na informação de movimento em uma posição de informação de movimento representativa pode ser redimensionada usando um número de quadro de referência, e armazenada na memória de informação de movimento 110. Um exemplo típico do processo de redimensionamento é um processo de redimensionamento linear baseado no quadro de referência número zero. Ou seja, se o número do quadro de referência não for zero, o processo de redimensionamento linear é realizado de forma que a informação do vetor de movimento refere-se a um quadro de referência correspondente ao quadro de referência número zero. A base do processo de redimensionamento descrito acima pode também ser um valor diferente do número de quadro de referência zero. Se a divisão ocorrer durante a realização do processo de redimensionamento linear descrito acima, esta divisão pode ser implementada pela busca em uma tabela de processos de divisão formada anteriormente.
[0136] Quando o tamanho do bloco de compressão de informação de movimento não é de 16 x 16, é gerada uma posição de informação de movimento representativa usando o mesmo processamento descrito acima. Como exemplo, quando o tamanho do bloco de compressão de informação de movimento é 64 x 64, é definida uma posição de aquisição de informação de movimento de referência em uma unidade de predição 64 x 64 como uma posição de informação de movimento representativa. Como outro exemplo, uma posição de informação de movimento representativa no bloco de compressão de informação de movimento de 16 x 16 mostrado, por exemplo, nas Figuras 21A e 21B, pode ser redimensionada nas direções vertical e horizontal de acordo com o tamanho do bloco de compressão de informação de movimento, e a posição redimensionada pode ser definida como uma posição de informação de movimento representativa.
[0137] Se não houver posição de informação de movimento representativa porque uma posição de informação de movimento representativa está fora de uma figura ou corte, uma posição onde a posição de informação de movimento representativa pode ser adquirida em um bloco de compressão de informação de movimento, por exemplo, o canto superior esquerdo do bloco de compressão de informação de movimento pode ser definido como a nova posição de informação de movimento representativa. Além disso, se não existir uma informação de movimento de referência porque uma posição de informação de movimento representativa é uma região à qual é aplicada intrapredição, uma nova posição de informação de movimento representativa pode ser definida executando o mesmo processo.
Configuração de Sintaxe
[0138] A sintaxe usada pelo aparato codificador de imagem 100 mostrado na Figura 1 será explicada abaixo.
[0139] A sintaxe indica a estrutura dos dados codificados (por exemplo, os dados codificados 163 mostrados na Figura 1) obtida quando o aparato codificador de imagem codifica dados de imagem em movimento. Quando estes dados codificados são decodificados, um aparato decodificador de imagens interpreta a sintaxe referindo-se à mesma estrutura sintática. A Figura 22 mostra um exemplo de uma sintaxe 2200 usada pelo aparato codificador de imagem 100 mostrado na Figura 1.
[0140] A sintaxe 2200 inclui três partes, isto é, uma sintaxe de alto nível 2201, uma sintaxe no nível dos cortes 2202, e uma sintaxe no nível da árvore de codificação 2203. A sintaxe de alto nível 2201 contém informações de sintaxe de camadas superiores a um corte. O corte é uma região retangular ou uma região contínua incluída em um quadro ou campo. A sintaxe no nível dos cortes 2202 contém informação necessária para decodificar cada corte. A sintaxe no nível da árvore de codificação 2203 contém informação necessária para decodificar cada árvore de codificação (isto é, cada unidade da árvore de codificação). Estas partes incluem adicionalmente, cada uma, sintaxes detalhadas.
[0141] A sintaxe de alto nível 2201 inclui sintaxes no nível de sequência e de figura como uma sintaxe de conjunto de parâmetros sequenciais 2204 e uma sintaxe de conjunto de parâmetros pictóricos 2205. A sintaxe ao nível dos cortes 2202 inclui uma sintaxe do cabeçalho de cortes 2206 e uma sintaxe de dados dos cortes 2207. A sintaxe no nível da árvore de codificação 2203 inclui uma sintaxe de unidades da árvore de codificação 2208, uma sintaxe de unidades de transformação 2009, e uma sintaxe de unidades de predição 2210.
[0142] A sintaxe das unidades da árvore de codificação 2208 pode ter uma estrutura de árvore quaternária. Mais especificamente, a sintaxe das unidades da árvore de codificação 2208 pode ser chamada recursivamente como um elemento de sintaxe da sintaxe das unidades da árvore de codificação 2208. Ou seja, uma unidade da árvore de codificação pode ser subdividida por uma árvore quaternária. Além disso, a sintaxe das unidades da árvore de codificação 2208 inclui a sintaxe das unidades de transformação 2209 e a sintaxe das unidades de predição 2210. A sintaxe das unidades de transformação 2209 e a sintaxe das unidades de predição 2210 são chamadas em cada sintaxe das unidades da árvore de codificação 2208 na porção final da árvore quaternária. As informações da predição são descritas na sintaxe das unidades de predição 2210. A informação da transformação ortogonal e da quantificação inversas é descrita na sintaxe das unidades de transformação 2209.
[0143] A Figura 23 mostra exemplos da sintaxe de conjunto de parâmetros sequenciais 2204 de acordo com esta modalidade. O sinalizador motion_vector_buffer_comp_flag mostrado nas Figuras 23A e 23B é uma sintaxe indicando se a compressão da informação de movimento de acordo com esta modalidade é válida/inválida para a sequência. Se motion_vector_buffer_comp_flag for igual a 0, a compressão da informação de movimento de acordo com esta modalidade é inválida para a sequência. De acordo, o processamento do compressor de informação de movimento mostrado na Figura 1 é pulado. Como um exemplo, se motion_vector_buffer_comp_flag for igual a 0, a compressão da informação de movimento de acordo com esta modalidade é válida para a sequência. O valor motion_vector_buffer_comp_ratio_log2 mostrado nas Figuras 23A e 23B é uma informação indicando a unidade do processo de compressão da informação de movimento, e é mostrado quando motion_vector_buffer_comp_flag é igual a 1. Por exemplo, motion_vector_buffer_comp_ratio_log2 indica a informação do tamanho do bloco de compressão da informação de movimento de acordo com esta modalidade, e um valor obtido pela multiplicação da menor unidade de compensação de movimento por 2 (motion_vector_buffer_comp_ratio_log2) é o tamanho do bloco de compressão da informação de movimento. Um exemplo no qual a menor unidade de compensação de movimento é um bloco de 4 x 4 pixels, isto é, onde a memória da informação de movimento de referência é armazenada para cada bloco de 4 x 4 pixels, será descrito abaixo. Quando motion_vector_buffer_comp_ratio_log2 é igual a 1, o tamanho do bloco de compressão de informação de movimento de acordo com esta modalidade é de 8 x 8 pixels. De forma similar, quando motion_vector_buffer_comp_ratio_log2 é igual a 2, o tamanho do bloco de compressão de informação de movimento de acordo com esta modalidade é de 16 x 16 pixels. O valor motion_vector_buffer_comp_position mostrado na Figura 23B é uma informação indicando uma posição de informação de movimento representativa no bloco de compressão de informação de movimento, e é mostrado quando motion_vector_buffer_comp_flag é igual a 1. Por exemplo, motion_vector_buffer_comp_position pode indicar, ainda, uma posição de informação de movimento representativa no bloco de compressão de informação de movimento, como mostrado nas Figuras 21A e 21B, ou indicar uma posição de informação de movimento representativa em cada bloco de compressão de informação de movimento, como mostrado nas Figuras 20A e 20B. Além disso, motion_vector_buffer_comp_position pode indicar ainda o centro de uma pluralidade de blocos.
[0144] Como outro exemplo, a validade/invalidade da predição de acordo com esta modalidade pode também ser definida para cada região local dentro do corte em sintaxes de cortes (por exemplo, a sintaxe de parâmetros pictóricos, a sintaxe no nível dos cortes, a unidade da árvore de codificação, e a unidade de transformação) abaixo de motion_vector_buffer_comp_flag, motion_vector_buffer_comp_ratio_log2, e motion_vector_buffer_comp_position.
[0145] A Figura 24 apresenta um exemplo da sintaxe de undiade de predição. O sinalizador skip_flag mostrado na Figura 24 indica se o modo de predição de uma unidade de codificação à qual a sintaxe da unidade de predição pertence é o modo de avanço. Se skip_flag for igual a 1, isto indica que as sintaxes (a sintaxe da unidade de codificação, a sintaxe da unidade de predição, e a sintaxe da unidade de transformação) além da informação de posição da informação de movimento prevista 954 não estão codificadas. NumMVPCand(L0) e NumMVPCand(L1) indicam, respectivamente, os números das candidatas a informação de movimento prevista 951 na predição da lista 0 e na predição da lista 1. Se a candidata a informação de movimento prevista 951 existir (NumMVPCand(LX) > 0, X = 0 ou 1), sendo que mvp_idx_IX indica que a informação de posição da informação de movimento prevista 954 está codificada. Se skip_flag for igual a 0, há a indicação de que o modo de predição de uma unidade de codificação à qual a sintaxe da unidade de predição pertence não está no modo de avanço. NumMergeCandidates indica o número de candidatas a informação de movimento prevista 951 derivados na Figura 12 ou similares. Se as candidatas a informação de movimento prevista 951 existirem, (NumMergeCandidates > 0), merge_flag como um sinalizador indicando se a unidade de predição está no modo de junção é codificado. Quando o valor de merge_flag é igual a 1, o sinalizador indica que a unidade de predição está no modo de junção. Se o valor for 0, o sinalizador indica que a unidade de predição usa o modo de interseção. Se merge_flag é igual a 1 e existem duas ou mais candidatas a informação de movimento prevista 951 (NumMergeCandidates > 1), codifica-se merge_idx como a informação do vetor de movimento previsto 952 indicando um bloco de candidatas a informação de movimento prevista 951 a partir das quais a junção é iniciada.
[0146] Se merge_flag é igual a 1, as sintaxes de unidade de predição diferentes de merge_flag e merge_idx não precisam ser codificadas.
[0147] Se merge_flag é igual a 0, há a indicação de que a unidade de predição está no modo de interseção. No modo de interseção, mvd_IX (X = 0 ou 1) indica uma informação de vetor de movimento diferencial contida na informação de movimento diferencial 953 e o número de quadros de referência ref_idx_IX são codificados, e, no caso de um corte B, é codificado inter_pred_idc indicando se a unidade de predição é uma predição unidirecional (lista 0 ou lista 1) ou predição bidirecional. Adicionalmente, NumMVPCand(L0) e NumMVPCand(L1) são adquiridos no modo de avanço. Se a candidata a informação de movimento prevista 951 existir (NumMVPCand(LX) > 0, X = 0 ou 1), é codificado mvp_idx_IX indicando a informação de posição da informação de movimento prevista 954.
Segunda modalidade
[0148] A segunda modalidade é direcionada a um aparato decodificador de imagem. O aparato codificador de imagem correspondente ao aparato decodificador de imagem de acordo com esta modalidade é explicado na primeira modalidade. Ou seja, o aparato decodificador de imagem de acordo com esta modalidade decodifica, por exemplo, dados codificados gerados pelo aparato codificador de imagem de acordo com a primeira modalidade.
[0149] Como mostrado na Figura 25, o aparato decodificador de imagem de acordo com esta modalidade inclui um decodificador entrópico 2501, um quantificador inverso 2502, um transformador ortogonal inverso 2503, um acumulador 2504, uma memória de imagem de referência 2505, um interpreditor 2506, uma memória de informação de movimento 2507, um compressor de informação de movimento de referência 2508, e um controlador de decodificação 2510.
[0150] O aparato decodificador de imagem mostrado na Figura 25 decodifica dados codificados 2550, armazena um sinal de imagem decodificada 2554 em um buffer de saída 2511, e fornece como saída o sinal de imagem decodificado 2554 como uma imagem de saída. Os dados codificados 2550 são a saída, por exemplo, do aparato codificador de imagem mostrado na Figura 1, e entrada para um aparato decodificador de imagem 2500 através de um sistema de armazenamento (não mostrado) ou um sistema de transmissão (não mostrado).
[0151] O decodificador entrópico 2501 realiza decriptação baseado na sintaxe de forma a decodificar os dados codificados 2550. O decodificador entrópico 2501 decodifica entropicamente, sequencialmente, uma sequência de código de cada sintaxe, e reproduz parâmetros de codificação, como a informação de movimento 2559 e um coeficiente de transformação quantificado 2551, de um bloco alvo de codificação. Os parâmetros de codificação são parâmetros necessários para decodificar, por exemplo, informação de predição informação de um coeficiente de transformação, e informação de quantificação.
[0152] Mais especificamente, como mostrado na Figura 26, o decodificador entrópico 2501 inclui um separador 2601, um decodificador de parâmetros 2602, um decodificador de coeficientes de transformação 2603, e um decodificador de informação de movimento 2604. O separador 2601 separa os dados codificados 2550, e fornece como saída: os dados codificados 2651A de um parâmetro para o decodificador de parâmetros 2602, os dados codificados 2651B de um coeficiente de transformação para o decodificador de coeficiente de transformação 2603, e os dados codificados 2651C de informação de movimento para o decodificador de informação de movimento 2604. O decodificador de parâmetros 2602 decodifica um parâmetro de codificação 2651A como uma informação de predição e fornece como saída o parâmetro de codificação 2570 para o controlador de decodificação 2510. O decodificador do coeficiente de transformação 2603 recebe os dados codificados 2651B, decodifica a informação do coeficiente de transformação 2551, e fornece como saída a informação decodificada para o quantificador inverso 2502.
[0153] O decodificador de informação de movimento 2604 recebe os dados codificados 2651C do separador 2601, a informação de posição de referência 2560 do controlador de decodificação 2510, e a informação de movimento de referência 2558 da memória de informação de movimento de referência 2507, e fornece como saída a informação de movimento 2559. A informação de movimento de saída 2559 é entrada para o interpreditor 2506.
[0154] Como mostrado na Figura 27, o decodificador de informação de movimento 2604 inclui um separador 2701, um decodificador de informação de movimento diferencial 2702, um decodificador de posição de informação de movimento prevista 2703, uma unidade de aquisição de informação de movimento de referência 2704, um alternador de seleção de informação de movimento prevista 2705, e um acumulador 2706.
[0155] Os dados codificados 2651C da informação de movimento são enviados para o separador 2701, e separados em dados codificados 2751 de informação de movimento diferencial e dados codificados 2752 de uma posição de informação de movimento prevista. O codificador de informação de movimento diferencial 2702 recebe os dados codificados 2751 de informação de movimento diferencial, e decodifica a informação de movimento diferencial 2753. O acumulador 2706 soma a informação de movimento diferencial 2753 à informação de movimento prevista 2756 (a ser descrita posteriormente), e fornece como saída a informação de movimento 2759. O decodificador de posição de informação de movimento prevista 2703 recebe os dados codificados 2752 de uma posição de informação de movimento prevista, e decodifica uma posição de informação de movimento prevista 2754.
[0156] O alternador de seleção de informação de movimento prevista 2705 recebe a posição da informação de movimento prevista 2754, e seleciona a informação de movimento prevista 2756 das candidatas a informação de movimento prevista 2755. A informação da posição da informação de movimento prevista 2560 é decodificada usando decodificação com comprimento fixo ou decodificação com comprimento variável, gerada do número de candidatas a informação de movimento prevista 2755. A decodificação com comprimento variável pode ainda ser realizada usando a correlação com blocos adjacentes. Além disso, se uma pluralidade de candidatas a informação de movimento prevista 2755 forem idênticos, a informação da posição da informação de movimento prevista 2560 pode ser decodificada baseando-se em uma tabela de códigos gerada a partir do número total de candidatas a informação de movimento prevista 2755 a partir dos quais os candidatos idênticos são deletados. Adicionalmente, se o número total de candidatas a informação de movimento prevista 2755 é 1, a candidata a informação de movimento prevista 2755 correspondente é determinado como a informação de movimento prevista 2756, de forma que a informação da posição da informação de movimento prevista 2760 não precisa ser decodificada.
[0157] A organização e as características do processamento da unidade de aquisição de informação de movimento prevista 2704 são iguais aos da unidade de aquisição de informação de movimento prevista 901 explicada na primeira modalidade.
[0158] A unidade de aquisição de informação de movimento prevista 2704 recebe a informação de movimento de referência 2558 e a informação da posição de referência 2560, e gera pelo menos uma candidata a informação de movimento prevista 2755 (2755A, 2755B, ...). As Figuras 10 e 11 ilustram exemplos da posição do candidato a informação de movimento prevista 2755 em relação a uma unidade de predição alvo de decodificação. A Figura 10 mostra as posições das unidades de predição espacialmente adjacentes à unidade de predição alvo da decodificação. AX (X = 0 a nA-1) indica uma unidade de predição adjacente ao lado esquerdo da unidade de predição alvo, BY (Y = 0 a nB-1) indica uma unidade de predição adjacente acima da unidade de predição alvo, e C, D, e E indicam, respectivamente, unidades de predição adjacentes no canto superior direito, no canto superior esquerdo, e no canto inferior esquerdo da unidade de predição alvo. A Figura 11 mostra a posição de uma unidade de predição em um quadro de referência já decodificado em relação à unidade de predição alvo de decodificação. Na Figura 11, Col indica uma unidade de predição, que existe na mesma posição que a da unidade de predição alvo de decodificação, no quadro de referência. A Figura 12 mostra um exemplo de uma lista indicando a relação entre as posições dos blocos e os índices Mvpidx de uma pluralidade de candidatas a informação de movimento prevista 2755. Os índices 0 a 2 de Mvpidx indicam os candidatos a vetor de movimento previsto 2755 posicionados no domínio espacial, e o índice 3 de Mvpidx indica os candidatos a vetor de movimento previsto 2755 posicionados no domínio temporal. A posição da unidade de predição A é a posição de uma unidade preditiva de interpredição, isto é, uma unidade de previsão tendo a informação de movimento de referência 2558, em AX, como mostrado na Figura 10, e o valor de X é menor na posição da unidade de predição A. A posição da unidade de predição B é a posição de uma unidade preditiva de interpredição, isto é, uma unidade de previsão tendo a informação de movimento de referência 2558, em BY, como mostrado na Figura 10, e o valor de Y é menor na posição da unidade de predição B. Quando a posição da unidade de predição C não é de interpredição, a informação de movimento de referência 2558 na posição da unidade de predição D é substituída pela informação de movimento de referência 2558 na posição da unidade de predição C. Quando as posições das unidades de predição C e D não são de interpredição, a informação de movimento de referência 2558 na posição da unidade de predição E é substituída pela informação de movimento de referência 2558 na posição da unidade de predição C.
[0159] Se o tamanho da unidade de predição alvo da decodificação for maior que o da menor unidade de predição, a posição da unidade de predição Col pode armazenar uma pluralidade de itens da informação de movimento de referência 2558 na memória de informação de movimento de referência no domínio temporal 2507. Neste caso, a informação de movimento de referência 2558 na unidade de predição na posição Col é adquirida de acordo com a informação de posição de referência 2560. A posição de aquisição da informação de movimento de referência 2558 na unidade de predição na posição Col será referida como posição de aquisição da informação de movimento de referência a partir deste ponto. As Figuras 13A, 13B, 13C, 13D, 13E, e 13F ilustram exemplos da posição de aquisição da informação de movimento de referência para cada tamanho de unidade de predição alvo da decodificação (32 x 32 a 16 x 16). quando a informação da posição de referência 2560 indica o centro da unidade de predição na posição Col. Nas Figuras 13A, 13B, 13C, 13D, 13E, e 13F, cada bloco indica uma unidade de predição 4 x 4, e um círculo indica a posição de uma unidade de predição 4 x 4 a ser adquirida como candidata a informação de movimento prevista 2755. As Figuras 14A, 14B, 14C, 14D, 14E e 14F ilustram outros exemplos de posição de aquisição de informação de movimento de referência. Com referência às Figuras 14A, 14B, 14C, 14D, 14E e 14F, não há unidades de predição 4 x 4 na posição de um círculo, de forma que o candidata a informação de movimento prevista 2755 é gerado por um método pré-determinado como a média ou mediana da informação de movimento de referência 2558 em quatro unidades de predição 4 x 4 adjacentes ao círculo. Como outro exemplo adicional da posição de aquisição de informação de movimento, a informação de movimento de referência 2558 de uma unidade de predição 4 x 4 posicionada no canto superior esquerdo da unidade de predição na posição Col pode também ser usada como a candidata a informação de movimento prevista 2755. Em um caso diferente dos exemplos supramencionados, é possível gerar a candidata a informação de movimento prevista 2755 usando qualquer posição e qualquer método, provido que o método seja um método pré- determinado.
[0160] Deve ser notado que, se não existir uma informação de movimento de referência 2558, a informação de movimento 2559 com um vetor zero será fornecida como saída como a candidata a informação de movimento prevista 2755.
[0161] Pelo processamento descrito acima, pelo menos uma candidata a informação de movimento prevista 2755 é dada como saída do bloco de movimento de referência. Se o número de quadros de referência da candidata a informação de movimento prevista 2755 for diferente do da unidade de predição alvo de codificação, a candidata a informação de movimento prevista 2755 pode ser redimensionada usando o número de quadros de referência da candidata a informação de movimento prevista 2755 e o da unidade de predição alvo de decodificação. O alternador de seleção de informação de movimento prevista 2705 seleciona uma dentre a pluralidade de candidatas a informação de movimento prevista 2755 de acordo com a posição da informação de movimento prevista 2754, e fornece como saída a informação de movimento prevista 952.
[0162] O quantificador inverso 2502 obtém um coeficiente de transformação recuperado 2552 pela quantificação inversa do coeficiente de transformação quantificado 2551 do decodificador entrópico 2501. Mais especificamente, o quantificador inverso 2502 realiza quantificação inversa de acordo com informações de quantificação definidas pelo decodificadas pelo decodificador entrópico 2501. O quantificador inverso 2502 fornece como saída o coeficiente de transformação recuperado 2552 para o transformador ortogonal inverso 2503.
[0163] O transformador ortogonal inverso 2503 realiza, sobre o coeficiente de transformação recuperado 2552 do quantificador inverso 2502, transformação ortogonal inversa correspondente à transformação ortogonal realizada no lado codificador, desta forma obtendo um sinal de erro de predição recuperado 2553. O transformador ortogonal inverso 2503 fornece o sinal de erro de predição recuperado 2553 como uma entrada para o acumulador 2504.
[0164] O acumulador 2504 gera o sinal de imagem decodificada 2554 pela adição do sinal de erro de predição recuperado 2553 ao sinal de imagem prevista correspondente 2556. O sinal de imagem decodificada 2554 é processado por um filtro de deblocagem (não mostrado) ou um filtro de Wiener (não mostrado), temporariamente armazenado no buffer de saída 2511 para uma imagem de saída, e é também salvo na memória de imagem de referência 2505 para um sinal de imagem de referência 2555. O sinal de imagem decodificada 2554 salvo na memória de imagem de referência 2505 é referenciado, como o sinal de imagem de referência 2555, para cada quadro ou cada campo necessários para o interpreditor 2506. O sinal de imagem decodificada 2554 temporariamente armazenado no buffer de saída 2511 é fornecido como saída de acordo com um regime de tempo administrado pelo controlador de decodificação 2510.
[0165] O interpreditor 2506 realiza interpredição usando o sinal de imagem de referência 2555 salvo na memória de imagem de referência 2505. Mais especificamente, o interpreditor 2506 adquire a informação de movimento 2559 contendo uma diferença de movimento (vetor de movimento) entre o bloco alvo da predição e o sinal de imagem de referência 2555 do decodificador entrópico 2501, e gera uma imagem interprevista realizando interpolação (compensação de movimento) baseando-se neste vetor de movimento. A geração da imagem interprevista é igual à da primeira modalidade, portanto uma explicação repetida será omitida.
[0166] O controlador de de codificação 2510 controla cada elemento do aparato decodificador de imagem mostrado na Figura 25. Mais especificamente, o controlador de decodificação 2510 fornece como saída a informação de posição de referência 2560 (a ser descrita posteriormente) para o decodificador entrópico 2501, e realiza vários tipos de controle para o processo de decodificação incluindo as operações supramencionadas. Explicação do Modo de Avanço, Modo de Junção e Modo de Interseção
[0167] O aparato decodificador de imagem 2500 de acordo com esta modalidade usa uma pluralidade de modos de predição com diferentes processos de decodificação, como mostrado na Figura 8. Com referência à Figura 8, o modo de avanço é um modo no qual apenas a sintaxe de uma posição de informação de movimento prevista 2754 (descrita posteriormente) é decodificada, e outras sintaxes não são decodificadas. O modo de junção é um modo no qual apenas a sintaxe de uma posição de informação de movimento prevista 2754 e a informação do coeficiente de transformação 2551 são decodificadas, e outras sintaxes não são codificadas. O modo de interseção é um modo no qual a sintaxe de uma posição de informação de movimento prevista 2754, a informação de movimento diferencial 2753 (a ser descrita posteriormente) e a informação do coeficiente de transformação 2551 são decodificadas. Estes modos são alternados pela informação de predição 2571 controlada pelo controlador de decodificação 2510.
[0168] Além disso, o aparato decodificador de imagem mostrado na Figura 25 usa sintaxes que são iguais ou similares às sintaxes explicadas com referência à Figura 22, portanto uma explicação detalhada das mesmas será omitida. Detalhes do Compressor de Informação de movimento 2508
[0169] A seguir, o compressor de informação de movimento 2508 será explicado com referência ao fluxograma mostrado na Figura 16. Quando o processo de decodificação de um quadro (ou uma unidade arbitrária como um corte ou unidade de decodificação) está completo, o compressor de informação de movimento 2508 comprime a informação de movimento 2559 e armazena a informação de movimento 2559 na memória de informação de movimento de referência em domínio temporal 502.
[0170] Primeiramente, a informação de posição de referência 2560 é adquirida do controlador de decodificação 2510 (etapa s1601), e um quadro é dividido em blocos de compressão de informação de movimento como unidades de compressão da informação de movimento 2559 (etapa s1602). O bloco de compressão de informação de movimento é um bloco de pixels maior que uma unidade (tipicamente, um bloco de 4 x 4 pixels) através do qual a informação de movimento 2559 é armazenada pelo processo de compensação de movimento, e é tipicamente um bloco de 16 x 16 pixels. O bloco de compressão de informação de movimento pode ainda ser um bloco de 32 x 32 pixels, um bloco de 8 x 8 pixels, ou uma região de pixels com forma arbitrária.
[0171] Em seguida, uma posição de informação de movimento representativa é gerada de acordo com a informação de posição de referência 2560 (etapa s1603). Como exemplo da geração de uma posição de informação de movimento representativa, quando o bloco de compressão de informação de movimento é um bloco de 16 x 16 pixels, a posição de aquisição de informação de movimento de referência sendo o tamanho da unidade de predição igual a 16 x 16, como mostrado nas Figuras 13D, 14D, e 17D, é definida como a posição de informação de movimento representativa. Subsequentemente, a informação de movimento de referência 2558 da posição de informação de movimento representativa gerada é definida como a informação de movimento representativa (etapa s1604), e a informação de movimento representativa é armazenada na memória de informação de movimento de referência em domínio temporal 502 (etapa s1605). As etapas s1604 e s1605 descritas acima são executadas para todos os blocos de compressão de informação de movimento.
[0172] Quando a unidade para armazenamento da informação de movimento 2559 é um bloco M x M e o tamanho do bloco de compressão de informação de movimento é N x N (N é um múltiplo de M), a capacidade da memória de informação de movimento de referência pode ser reduzida para (M x M)/(N x N) pela execução do processo de compressão de informação de movimento supramencionado. Outras Modalidades de Posições de Informação de movimento Representativa
[0173] Como outro exemplo da geração de uma posição de informação de movimento representativa, a posição central de uma pluralidade de posições de aquisição de informação de movimento de referência pode também ser usada como a posição de informação de movimento representativa. As Figuras 18A e 18B mostram a posição de informação de movimento representativa de cada bloco de compressão de movimento com um tamanho de 16 x 16. A Figura 18A mostra posições de informação de movimento representativa onde as posições de aquisição de informação de movimento de referência são as posições mostradas na Figura 13D. Da mesma forma, a Figura 18B mostra posições de informação de movimento representativa onde as posições de aquisição de informação de movimento de referência são as posições mostradas na Figura 17D. Os símbolos • nas Figuras 18A e 18B indicam posições de aquisição de informação de movimento de referência onde uma unidade de predição é um bloco 16 x 16. Uma posição de informação de movimento representativa indicada por x está localizada na posição central (também chamada de posição baricêntrica) de quatro posições de aquisição de informação de movimento de referência.
[0174] Como outro exemplo da geração de uma posição de informação de movimento representativa, é ainda possível usar uma posição de aquisição de informação de movimento de referência para cada tamanho de uma pluralidade de unidades de predição como a informação de posição de referência 2560, e gerar uma posição de informação de movimento representativa a partir de uma pluralidade de posições de aquisição de informação de movimento de referência. A Figura 19 mostra o centro (posição de aquisição de informação de movimento de referência) de cada unidade de predição com um tamanho de unidade de predição de 16 x 16 ou mais, quando um bloco da árvore é um bloco de 64 x 64 pixels.
[0175] Como outro exemplo da geração de uma posição de informação de movimento representativa, uma posição de informação de movimento representativa pode ainda ser definida usando um conjunto de posições de aquisição de informação de movimento de referência para cada bloco de compressão de informação de movimento. A Figura 20A mostra um exemplo quando o baricentro de uma pluralidade de posições de aquisição de informação de movimento de referência em cada bloco de compressão de informação de movimento é definido como a posição de informação de movimento representativa. Se a posição baricêntrica não corresponde à posição de um bloco 4 x 4, é possível definir o bloco 4 x 4 mais próximo como uma posição de informação de movimento representativa, ou gerar o vetor de movimento de referência 166 da posição baricêntrica usando interpolação como uma interpolação bilinear.
[0176] A Figura 20B mostra um exemplo no qual uma entre uma pluralidade de posições de aquisição de informação de movimento de referência é selecionada para cada bloco de compressão de informação de movimento, e definida como uma posição de informação de movimento representativa.
[0177] Adicionalmente, as Figuras 21A e 21B ilustram exemplos quando os blocos de compressão de informação de movimento têm a mesma posição de aquisição de informação de movimento de referência em um bloco da árvore. Uma vez que todos os blocos de compressão de informação de movimento têm a mesma posição de informação de movimento representativa, as posições de informação de movimento representativa não precisam ser substituídas de acordo com uma posição no bloco da árvore. A posição de informação de movimento representativa não é necessariamente aquela mostrada das Figuras 21A e 21B, e pode ser qualquer posição, como o canto superior esquerdo ou o canto superior direito no bloco de compressão de informação de movimento.
[0178] Como um exemplo da geração de uma posição de informação de movimento representativa, uma posição de informação de movimento representativa pode ainda ser indicada usando BlkIdx que indicam posições de blocos 4 x 4 em um bloco de compressão de informação de movimento no escaneamento em Z. Quando o tamanho do bloco de compressão de informação de movimento é 16 x 16, a posição de informação de movimento representativa mostrada na Figura 21A é equivalente à posição de BlkIdx = 12. Além disso, a posição de informação de movimento representativa mostrada na Figura 21B é equivalente à posição de BlkIdx = 15.
[0179] Como outro exemplo do processo de compressão de informação de movimento, o processo de compressão de informação de movimento pode ainda incluir números de quadro de referência de forma a reduzir a capacidade de memória para números de quadro de referência. Neste caso, um número de quadro de referência armazenado em uma posição de informação de movimento representativa é armazenado na capacidade da memória para números de quadros de referência. De acordo, a memória de informação de movimento de referência em domínio espacial 501 e a memória de informação de movimento de referência em domínio temporal 502 mostradas na Figura 5 armazenam números de quadros de referência adicionalmente à informação do vetor de movimento.
[0180] Como outro exemplo do processo de compressão de informação de movimento, quando o processo de compressão de informação de movimento não inclui quaisquer números de quadros de referência, a informação do vetor de movimento na informação de movimento em uma posição de informação de movimento representativa pode ser redimensionada usando um número de quadro de referência, e armazenada na memória de informação de movimento 110. Um exemplo típico do processo de redimensionamento é um processo de redimensionamento linear baseado no quadro de referência número zero. Ou seja, se o número do quadro de referência não for zero, o processo de redimensionamento linear é realizado de forma que a informação do vetor de movimento refere-se a um quadro de referência correspondente ao quadro de referência número zero. A base do processo de redimensionamento descrito acima pode também ser um valor diferente do número de quadro de referência zero. Se a divisão ocorrer durante a realização do processo de redimensionamento linear descrito acima, esta divisão pode ser implementada pela busca em uma tabela de processos de divisão formada anteriormente.
[0181] Quando o tamanho do bloco de compressão de informação de movimento não é de 16 x 16, é gerada uma posição de informação de movimento representativa usando o mesmo processamento descrito acima. Como exemplo, quando o tamanho do bloco de compressão de informação de movimento é 64 x 64, é definida uma posição de aquisição de informação de movimento de referência em uma unidade de predição 64 x 64 como uma posição de informação de movimento representativa. Como outro exemplo, uma posição de informação de movimento representativa no bloco de compressão de informação de movimento de 16 x 16 mostrado, por exemplo, nas Figuras 21A e 21B, pode ser redimensionada nas direções vertical e horizontal de acordo com o tamanho do bloco de compressão de informação de movimento, e a posição redimensionada pode ser definida como uma posição de informação de movimento representativa.
[0182] Se não houver posição de informação de movimento representativa porque uma posição de informação de movimento representativa está fora de uma figura ou corte, uma posição onde a posição de informação de movimento representativa pode ser adquirida em um bloco de compressão de informação de movimento, por exemplo, o canto superior esquerdo do bloco de compressão de informação de movimento pode ser definido como a nova posição de informação de movimento representativa. Além disso, se não existir uma informação de movimento de referência porque uma posição de informação de movimento representativa é uma região à qual é aplicada intrapredição, uma nova posição de informação de movimento representativa pode ser definida executando o mesmo processo.
[0183] Modificações em cada modalidade serão explicadas abaixo.
[0184] Em cada uma entre a primeira e a segunda modalidades, um exemplo no qual um quadro é dividido em blocos retangulares com um tamanho de, por exemplo, 16 x 16 pixels e a codificação ou decodificação são realizadas na ordem que vai do bloco superior esquerdo ao bloco inferior direito em uma tela foram explicados (vide Figura 2A). Porém, a ordem de codificação e a ordem de decodificação não estão limitadas a este exemplo. Por exemplo, a codificação e a decodificação podem também ser realizadas na ordem do bloco inferior direito para o bloco superior esquerdo, ou realizadas de forma espiral a partir do centro para as bordas de uma tela. Adicionalmente, a codificação e a decodificação podem também ser realizadas na ordem do bloco superior direito para o bloco inferior esquerdo, ou realizadas de forma espiral a partir das bordas para o centro de uma tela.
[0185] A primeira e a segunda modalidades foram explicadas apresentando tamanhos de blocos alvos de predição tais como um bloco de 4 x 4 pixels, um bloco de 8 x 8 pixels, e um bloco de 16 x 16 pixels como exemplos, porém um bloco alvo de predição não precisa ter uma forma uniforme de bloco. Por exemplo, o tamanho do bloco alvo de predição (unidade de predição) pode também ser um bloco de 16 x 8 pixels, um bloco de 8 x 16 pixels, um bloco de 8 x 4 pixels, ou um bloco de 4 x 8 pixels. Além disso, os tamanhos de todos os blocos não precisam ser iguais em uma unidade da árvore de codificação, e uma pluralidade de diferentes tamanhos de blocos pode coexistir. Quando uma pluralidade de diferentes tamanhos de blocos coexiste em uma unidade da árvore de codificação, a quantidade de código para informações de divisão de codificação ou de decodificação aumenta junto com o número de blocos divididos. Portanto, é desejável que o tamanho dos blocos seja selecionado levando em conta o balanço entre a quantidade de código da informação de divisão e a qualidade de uma imagem codificada ou de uma imagem decodificada localmente.
[0186] Na primeira e na segunda modalidades, uma explicação compreensiva foi descrita para os componentes dos sinais de cores sem distinguir-se entre um sinal de claridade e sinais de diferença de cores para fins de simplificação. Porém, quando diferentes processos de predição são usados para um sinal de claridade e sinais de diferença de cores, é possível usar o mesmo método de predição ou diferentes métodos de predição. Quando forem usados diferentes métodos de predição para um sinal de claridade e para sinais de diferença de cores, um método de predição selecionado para os sinais de diferença de cores pode ser codificado ou decodificado pelo mesmo método que o sinal de claridade.
[0187] Na primeira e na segunda modalidades, uma explicação compreensiva foi descrita para os componentes dos sinais de cores sem distinguir-se entre um sinal de claridade e sinais de diferença de cores para fins de simplificação. Porém, quando diferentes processos de transformação ortogonal são usados para um sinal de claridade e sinais de diferença de cores, é possível usar o mesmo método de transformação ortogonal ou diferentes métodos de transformação ortogonal. Quando forem usados diferentes métodos de transformação ortogonal para um sinal de claridade e para sinais de diferença de cores, um método de transformação ortogonal selecionado para os sinais de diferença de cores pode ser codificado ou decodificado pelo mesmo método que o sinal de claridade.
[0188] Na primeira e na segunda modalidades, um elemento de sintaxe não definido nas modalidades pode ser inserido entre as linhas da tabela indicando a configuração da sintaxe, ou outra descrição referente aos entroncamentos condicionais pode também ser incluída. É ainda possível dividir a tabela de sintaxe em uma pluralidade de tabelas, ou integrar uma pluralidade de tabelas em uma tabela. Além disso, não é sempre necessário usar a mesma linguagem, e é possível modificar livremente a linguagem de acordo com um formulário de uso.
[0189] Como foi explicado acima, cada modalidade pode implementar uma transformação ortogonal e uma transformação ortogonal inversa eficientes de forma a reduzir a complexidade em um pacote de hardware e em um pacote de software. Desta forma, cada modalidade aumenta a eficiência de codificação e aprimora a qualidade subjetiva da imagem.
[0190] Além disso, as instruções indicadas pelos procedimentos explicados nas modalidades descritas acima podem ser executadas baseando-se em um programa, como um software. Um sistema de computador de propósito geral pode obter efeitos similares àqueles do aparato codificador de imagem e do aparato decodificador de imagem das modalidades descritas acima, pré- armazenando o programa e o lendo. As instruções descritas nas modalidades mencionadas acima podem ser gravadas, como um programa executável por um computador, em um disco magnético (por exemplo, um disco flexível ou disco rígido), um disco ótico (por exemplo, um CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-R, ou DVD- RW), uma memória semicondutora, ou um meio de gravação deste tipo. O formato de armazenamento do meio de gravação pode tomar qualquer forma, provido que o meio possa ser lido por um computador ou um sistema embutido. O computador pode implementar as mesmas operações que as do aparato codificador de imagem e do aparato decodificador de imagem das modalidades descritas acima lendo o programa do meio de gravação, e fazendo com que um CPU execute, baseando-se neste programa, as instruções descritas no programa. O computador pode, obviamente, também adquirir ou ler o programa através de uma rede.
[0191] Adicionalmente, baseando-se nas instruções do programa instalado no computador ou no sistema embutido pelo meio de gravação, um sistema operacional (OS) rodando no computador, um software de gerenciamento de base de dados, ou middleware (MW) da rede ou similares podem executar uma parte de cada processamento para implementar as modalidades.
[0192] Adicionalmente, o meio de gravação de acordo com as modalidades não está limitado a um meio independente do computador ou do sistema embutido, e inclui um meio de gravação armazenando ou armazenando temporariamente o programa transmitido através de LAN ou da Internet e carregado. É ainda possível armazenar o programa para implementar o processo de cada modalidade em um computador (servidor) conectado a uma rede tal como a Internet, e carregar o programa em um computador (cliente) através da rede.
[0193] Além disso, o meio de gravação não está restrito a apenas um. Mesmo quando o processo de cada modalidade é executado a partir de uma pluralidade de meios, estes meios estão incluídos no meio de gravação de acordo com as modalidades, e os meios podem tomar quaisquer formas.
[0194] Deve ser notado que o computador ou sistema embutido de acordo com as modalidades é usado para executar cada processo das modalidades baseando-se no programa armazenado no meio de gravação, e pode ser, por exemplo, um aparato individual como um computador pessoal ou microcomputador, ou um sistema obtido pela conexão de uma pluralidade de aparatos ao longo de uma rede.
[0195] Deve ser notado, ainda, que o computador de acordo com as modalidades não está limitado a um computador pessoal, e inclui uma unidade de processamento ou microcomputador incorporado em um aparato de processamento de informação. Ou seja, o computador é um termo geral de um aparato e dispositivo capaz de implementar as funções das modalidades baseando-se no programa.
[0196] Apesar de certas modalidades terem sido descritas, estas modalidades foram apresentadas para fins de exemplo apenas, e não têm a intenção de limitar o escopo das invenções. Sendo assim, as modalidades inovadoras descritas aqui podem ser construídas em uma variedade de outras formas; adicionalmente, várias omissões, substituições e mudanças na forma das modalidades descritas aqui podem ser feitas sem se distanciar do espírito das invenções. As reivindicações em anexo e seus equivalentes têm a intenção de cobrir tais formas ou modificações que estariam dentro do escopo e espírito das invenções.

Claims (2)

1. Método para codificação de imagem que divide um sinal de imagem de entrada em blocos de pixels, e a realização de interpredição em um bloco de pixels divididos, caracterizado por compreender: selecionar informação de movimento prevista a partir de uma pluralidade de informações de movimento em regiões codificadas, e a predição da informação de movimento de um bloco codificador alvo pelo uso da informação de movimento prevista; e adquirir informação de movimento representativa a partir de um bloco de pixels que existe em um centro de uma região de uma mesma posição do bloco codificador alvo em um quadro de referência, de acordo com primeira informação especificando o centro da região da mesma posição do bloco codificador alvo, a partir de uma pluralidade de informações de movimento nas regiões codificadas.
2. Método para decodificação de imagem que divide um sinal de imagem de entrada em blocos de pixels, e a realização de interpredição em um bloco de pixels divididos, caracterizado por compreender: selecionar informação de movimento prevista a partir de uma pluralidade de informações de movimento em regiões decodificadas, e a predição da informação de movimento de um bloco decodificador alvo pelo uso da informação de movimento prevista; e adquirir informação de movimento representativa a partir de um bloco de pixels que existe em um centro de uma região de uma mesma posição do bloco decodificador alvo em um quadro de referência, de acordo com primeira informação especificando o centro da região da mesma posição do bloco decodificador alvo, a partir de uma pluralidade de informações de movimento nas regiões decodificadas.
BR122018003088-7A 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos BR122018003088B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
BR112013022646-3 2011-03-09
PCT/JP2011/055504 WO2012120661A1 (ja) 2011-03-09 2011-03-09 動画像符号化方法及び動画像復号化方法

Publications (2)

Publication Number Publication Date
BR122018003088A2 BR122018003088A2 (pt) 2020-08-25
BR122018003088B1 true BR122018003088B1 (pt) 2023-01-24

Family

ID=46797664

Family Applications (5)

Application Number Title Priority Date Filing Date
BR112013022646-3A BR112013022646B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição nos blocos de pixels divididos
BR122018003088-7A BR122018003088B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR122020020897-0A BR122020020897B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR122020020892-9A BR122020020892B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR122020020797-3A BR122020020797B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um primeiro bloco de pixels dividido

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112013022646-3A BR112013022646B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição nos blocos de pixels divididos

Family Applications After (3)

Application Number Title Priority Date Filing Date
BR122020020897-0A BR122020020897B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR122020020892-9A BR122020020892B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR122020020797-3A BR122020020797B1 (pt) 2011-03-09 2011-03-09 Método para codificação e decodificação de imagem e a realização de interpredição em um primeiro bloco de pixels dividido

Country Status (13)

Country Link
US (9) US9900594B2 (pt)
EP (4) EP4254956A3 (pt)
JP (1) JP5563148B2 (pt)
KR (2) KR101543138B1 (pt)
CN (1) CN103339940B (pt)
AU (1) AU2011361644A1 (pt)
BR (5) BR112013022646B1 (pt)
CA (1) CA2829038C (pt)
MX (1) MX2013010112A (pt)
RU (1) RU2571538C2 (pt)
SG (1) SG192985A1 (pt)
WO (1) WO2012120661A1 (pt)
ZA (1) ZA201306523B (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112013022646B1 (pt) 2011-03-09 2022-09-13 Kabushiki Kaisha Toshiba Método para codificação e decodificação de imagem e a realização de interpredição nos blocos de pixels divididos
JP5982734B2 (ja) 2011-03-11 2016-08-31 ソニー株式会社 画像処理装置および方法
JP2012253722A (ja) * 2011-06-07 2012-12-20 Sony Corp 画像符号化装置と画像復号装置およびその方法とプログラム
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
JP5893178B2 (ja) * 2015-01-06 2016-03-23 株式会社東芝 動画像符号化方法及び動画像復号化方法
WO2016158518A1 (ja) * 2015-03-27 2016-10-06 富士フイルム株式会社 電気音響変換器
JP6914722B2 (ja) * 2017-05-11 2021-08-04 キヤノン株式会社 動画像符号化装置、動画像符号化方法及びプログラム
JP6936641B2 (ja) * 2017-07-05 2021-09-22 キヤノン株式会社 画像処理装置、画像処理方法
WO2019142667A1 (ja) * 2018-01-17 2019-07-25 ソニー株式会社 画像処理装置および方法
CN108769688B (zh) * 2018-05-24 2021-09-03 西华师范大学 视频编解码方法
WO2020009515A1 (ko) * 2018-07-05 2020-01-09 엘지전자 주식회사 Ctu 단위의 버퍼 압축을 이용한 영상 코딩 방법 및 그 장치
JP7032532B2 (ja) * 2018-07-10 2022-03-08 オリンパス株式会社 撮像装置、画像補正方法および画像補正プログラム
US11451807B2 (en) * 2018-08-08 2022-09-20 Tencent America LLC Method and apparatus for video coding
JP7225381B2 (ja) 2018-09-22 2023-02-20 エルジー エレクトロニクス インコーポレイティド インター予測に基づいて、ビデオ信号を処理するための方法及び装置
RU2701058C1 (ru) * 2019-04-12 2019-09-24 Общество с ограниченной ответственностью "Научно-производственная фирма "САД-КОМ" Способ компенсации движения и устройство для его реализации
JP6871343B2 (ja) * 2019-11-28 2021-05-12 株式会社東芝 動画像符号化方法及び動画像復号化方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3263960B2 (ja) 1991-10-22 2002-03-11 ソニー株式会社 動きベクトル符号器および復号器
JPH07131792A (ja) 1993-11-01 1995-05-19 Olympus Optical Co Ltd 動画像符号化装置
KR100198986B1 (ko) 1995-03-15 1999-06-15 전주범 블록킹 현상방지용 움직임 보상장치
JP3639640B2 (ja) 1995-06-20 2005-04-20 キヤノン株式会社 動きベクトル検出装置
JP2798035B2 (ja) 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
KR100865034B1 (ko) 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
KR100506864B1 (ko) 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
US7978769B2 (en) 2003-06-30 2011-07-12 Ntt Docomo, Inc. Method and apparatus for coding motion information
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression
KR101182977B1 (ko) 2004-06-29 2012-09-18 소니 주식회사 움직임 예측 보상 방법 및 움직임 예측 보상 장치
US7558428B2 (en) 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
KR100703770B1 (ko) * 2005-03-25 2007-04-06 삼성전자주식회사 가중 예측을 이용한 비디오 코딩 및 디코딩 방법, 이를위한 장치
JP2008193410A (ja) * 2007-02-05 2008-08-21 Matsushita Electric Ind Co Ltd 画像符号化装置、録画装置、動画像符号化方法、動画像符号化プログラム
JP4788649B2 (ja) 2007-04-27 2011-10-05 株式会社日立製作所 動画像記録方法及びその装置
JP2008283490A (ja) * 2007-05-10 2008-11-20 Ntt Docomo Inc 動画像符号化装置、方法及びプログラム、並びに動画像復号化装置、方法及びプログラム
JP2011501555A (ja) 2007-10-16 2011-01-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号処理方法及び装置
EP2321970A1 (en) 2008-09-04 2011-05-18 Thomson Licensing Methods and apparatus for prediction refinement using implicit motion prediction
CN102301720A (zh) 2009-01-29 2011-12-28 松下电器产业株式会社 图像编码方法以及图像解码方法
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
CN101917627B (zh) * 2010-08-20 2012-01-25 浙江大学 一种基于自适应灵活宏块次序的视频容错编码方法
US8736767B2 (en) * 2010-09-29 2014-05-27 Sharp Laboratories Of America, Inc. Efficient motion vector field estimation
JP5893570B2 (ja) * 2011-01-28 2016-03-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法および画像復号化方法
CN107483943B (zh) 2011-02-09 2020-04-03 Lg 电子株式会社 视频编码装置和视频解码装置及其导出运动矢量的方法
JP5807588B2 (ja) * 2011-03-08 2015-11-10 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに、送信装置、送信方法及び送信プログラム
JP2012186759A (ja) * 2011-03-08 2012-09-27 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2012186760A (ja) 2011-03-08 2012-09-27 Jvc Kenwood Corp 動画像復号化装置、動画像復号化方法及び動画像復号化プログラム
BR112013022646B1 (pt) 2011-03-09 2022-09-13 Kabushiki Kaisha Toshiba Método para codificação e decodificação de imagem e a realização de interpredição nos blocos de pixels divididos
GB2501836B (en) * 2011-03-09 2014-08-06 Canon Kk Video encoding

Also Published As

Publication number Publication date
MX2013010112A (es) 2013-10-07
EP2685717A1 (en) 2014-01-15
US11323735B2 (en) 2022-05-03
JPWO2012120661A1 (ja) 2014-07-07
US20230232033A1 (en) 2023-07-20
US10841606B2 (en) 2020-11-17
US20140010309A1 (en) 2014-01-09
KR20130122652A (ko) 2013-11-07
US10511851B2 (en) 2019-12-17
BR122020020897B1 (pt) 2023-01-24
US20200059656A1 (en) 2020-02-20
SG192985A1 (en) 2013-09-30
US9900594B2 (en) 2018-02-20
US20210385480A1 (en) 2021-12-09
BR122020020892B1 (pt) 2023-01-24
US20210014517A1 (en) 2021-01-14
EP2685717A4 (en) 2014-08-27
JP5563148B2 (ja) 2014-07-30
CN103339940B (zh) 2016-08-10
RU2571538C2 (ru) 2015-12-20
CN103339940A (zh) 2013-10-02
US20210021851A1 (en) 2021-01-21
US20210014519A1 (en) 2021-01-14
BR112013022646B1 (pt) 2022-09-13
US11647219B2 (en) 2023-05-09
KR20150031490A (ko) 2015-03-24
CA2829038C (en) 2020-04-07
BR122018003088A2 (pt) 2020-08-25
US11290738B2 (en) 2022-03-29
AU2011361644A1 (en) 2013-09-19
ZA201306523B (en) 2014-05-28
US11303918B2 (en) 2022-04-12
CA2829038A1 (en) 2012-09-13
EP4254956A2 (en) 2023-10-04
EP3681160A1 (en) 2020-07-15
BR112013022646A2 (pt) 2020-06-02
EP3349457A1 (en) 2018-07-18
KR101543213B1 (ko) 2015-08-07
BR122020020797B1 (pt) 2023-01-24
US20180131956A1 (en) 2018-05-10
KR101543138B1 (ko) 2015-08-07
US20210014518A1 (en) 2021-01-14
RU2013140677A (ru) 2015-04-20
EP4254956A3 (en) 2023-12-20
US11303917B2 (en) 2022-04-12
WO2012120661A1 (ja) 2012-09-13

Similar Documents

Publication Publication Date Title
BR122018003088B1 (pt) Método para codificação e decodificação de imagem e a realização de interpredição em um bloco de pixels divididos
BR112013021612B1 (pt) Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador
JP6503014B2 (ja) 動画像符号化方法及び動画像復号化方法
JP6510084B2 (ja) 動画像復号化方法及び電子装置
RU2615677C1 (ru) Способ кодирования изображений и способ декодирования изображений
JP2016106494A (ja) 動画像符号化方法及び動画像復号化方法
JP5893178B2 (ja) 動画像符号化方法及び動画像復号化方法
JP2020048208A (ja) 動画像符号化方法及び動画像復号化方法
JP5680778B2 (ja) 動画像符号化方法及び動画像復号化方法
CN105933709B (zh) 运动图像编码方法、装置以及运动图像解码方法、装置
JP2020074582A (ja) 動画像符号化方法及び動画像復号化方法

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 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 09/03/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.