BRPI0304549B1 - Method of coding vector movement and decoding method of vector motion - Google Patents
Method of coding vector movement and decoding method of vector motion Download PDFInfo
- Publication number
- BRPI0304549B1 BRPI0304549B1 BRPI0304549-8A BRPI0304549A BRPI0304549B1 BR PI0304549 B1 BRPI0304549 B1 BR PI0304549B1 BR PI0304549 A BRPI0304549 A BR PI0304549A BR PI0304549 B1 BRPI0304549 B1 BR PI0304549B1
- Authority
- BR
- Brazil
- Prior art keywords
- motion vectors
- vector
- motion
- current block
- motion vector
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Abstract
"método de codificação de vetor de movimento e método de decodificação de vetor de movimento". a presente invenção aperfeiçoa a eficiência de codificação de vetores de movimento quando um bloco corrente é codificado usando uma pluralidade de vetores de movimento. uma unidade de codificação de vetores de movimento (117) codifica um vetor de movimento introduzido de uma unidade de detecção de vetor de movimento (108). um vetor de movimento para cada bloco corrente é codificado com base em uma diferença entre o vetor de movimento e um vetor predito obtido dos vetores de movimento para blocos vizinhos previamente codificados. o vetor predito é gerado por um dos seguintes processamentos: (a) os vetores de movimento que se referem a mesma imagem são selecionados dentre os vetores de movimento para os blocos vizinhos de modo a gerar o vetor predito; (b) os vetores de movimento para os respectivos blocos vizinhos são ordenados na ordem predeterminada e os vetores de movimento da mesma ordem são selecionados dos vetores de movimento ordenados de modo a gerar o vetor predito; (c) o vetor predito para o segundo vetor de movimento do bloco corrente será o primeiro vetor de movimento e, se o segundo vetor de movimento e o primeiro vetor de movimento se referem a imagens diferentes, o primeiro vetor de movimento é dimensionado de acordo com a distância temporal entre as imagens de modo a gerar o vetor predito.
Description
Relatório Descritivo da Patente de Invenção para "MÉTODO DE CODIFICAÇÃO DE VETOR DE MOVIMENTO E MÉTODO DE DECODIFICAÇAO DE VETOR DE MOVIMENTO".
Campo Técnico [001] A presente invenção refere-se a métodos para codificação e decodificação de informação de vetor de movimento na codificação e na decodificação de filmes usando codificação de predição interima-gens.
Fundamento da Técnica [002] De um modo geral, na codificação de filmes, a quantidade de informação é comprimida através de supressão das redundâncias espaciais e temporais que existem dentro de filmes. Como um método de supressão das redundâncias temporais, a codificação de predição interimagens é usada. Na codificação de predição interimagens, para codificação de uma imagem corrente, as imagens que, temporariamente, precedem ou seguem a imagem corrente são usadas como imagens de referência. O movimento da imagem corrente das imagens de referência é detectado e a diferença entre a imagem obtida pela compensação de movimento e a imagem corrente é calculada. A seguir, as redundâncias espaciais são eliminadas dessa diferença, de modo a comprimir a quantidade de informação dos filmes.
[003] No método convencional de codificação de filmes de acordo com o padrão MPEG-4 (ISO/IEC 14496-2: tecnologia de informação de 1999, Codificação de objetos audiovisuais - Parte 2: Visual, pp.146 -148) (daqui para frente referido como MPEG-4) e semelhantes, há três tipos de imagens. As imagens I (Imagens Intracodificadas) são codificadas não usando predição interimagens, mas intracodificadas. As imagens P (Imagens Preditivas Codificadas) são codificadas usando predição interimagens com referência a uma imagem precedente. As imagens B (Imagens Codificadas Preditivas Bidirecionais) são codifi- cadas usando predição interimagens com referência a uma imagem precedente (imagem I ou imagem P) e uma imagem seguinte (imagem I ou imagem P). A Figura 15 mostra relações preditivas entre as respectivas imagens no método de codificação de filmes mencionado acima. Na Figura 15, linhas verticais mostram imagens, e tipos de imagem (I, P e B) são indicadas no lado direito inferior das respectivas imagens. As imagens nas cabeças das setas são codificadas usando predição interimagens com referência às imagens nas outras extremidades das setas. Por exemplo, a segunda imagem B é codificada usando a primeira imagem I e a quarta imagem P como imagens de referência.
[004] De acordo com o padrão MPEG-4, para codificação de vetores de movimento, uma diferença entre um vetor de movimento de um bloco corrente e um vetor predito obtido dos vetores de movimento para os blocos vizinhos é codificado. Uma vez que os vetores de movimento dos blocos vizinhos usualmente têm tamanho e direção de movimento similares na coordenada espacial para os vetores de movimento para o bloco corrente, a quantidade de codificação dos vetores de movimento pode ser reduzida pelo cálculo da diferença do vetor predito obtido dos vetores de movimento dos blocos vizinhos. Como codificar os vetores de movimento de acordo com MPEG-4 será explicado com referência às Figuras 16A ~ 16D. Nessas Figuras, os blocos indicados em negrito são macroblocos de pixels de 16 x 16 e lá existem 4 blocos de pixels de 8 x 8 em cada macrobloco. Nas Figuras 16A ~16D, o vetor de movimento (MV) de cada bloco é codificado com base na diferença do vetor predito obtido dos vetores de movimento (MV1, MV2 e MV3) dos três blocos vizinhos. Como esse vetor predito, medianas calculadas, respectivamente, dos componentes horizontais e verticais desses três vetores de movimento MV1, MV2 e MV3 são usadas. Contudo, um bloco vizinho, algumas vezes, não tem vetor de movimento, por exemplo, quando ele é intracodificado ou é codificado como uma imagem B no modo direto. Se um dos blocos vizinhos for um bloco desse tipo, o vetor de movimento para o bloco é considerado igual a 0. Se dois dos blocos vizinhos forem blocos desse tipo, o vetor de movimento do bloco restante é usado como um vetor predito. E quando todos os blocos vizinhos não têm vetor de movimento, o vetor de movimento do bloco corrente é codificado na suposição de que o vetor predito é 0.
[005] Enquanto isso, o método H.26L, que foi desenvolvido para padronização, propõe um novo método de codificação de imagens B. As imagens B, tradicionalmente, são codificadas usando uma imagem precedente previamente codificada e uma imagem seguinte previamente codificada como imagens de referência, mas no novo método de codificação, as imagens B são codificadas usando duas imagens precedentes previamente codificadas, duas imagens seguintes previamente codificadas ou uma imagem precedente previamente codificada e uma imagem seguinte previamente codificada.
[006] No método convencional de codificação de vetor de movimento, mesmo se os blocos vizinhos em uma imagem B, respectivamente, tiverem dois vetores de movimento em direção às imagens de referência precedente ou dois vetores de movimento em direção às imagens de referência seguintes, não há método definido e unificado de determinação de qual desses dois vetores será usado como um vetor predito e, desse modo, não há método de codificação eficiente do vetor de movimento determinado.
[007] A presente invenção foi concebida a fim de resolver o problema mencionado acima e é o objetivo da presente invenção proporcionar um método de codificação de vetor de movimento e um método de decodificação de vetor de movimento capazes de unificar o método de determinação de um vetor predito para codificação de um vetor de movimento e aperfeiçoamento de preditabilidade.
Descrição da invenção [008] A fim de alcançar o objetivo mencionado acima, o método de codificação de vetor de movimento da presente invenção é um método de codificação de vetor de movimento para gerar um vetor de movimento para um bloco corrente a ser codificado e um vetor predito para o vetor de movimento e codificação de uma diferença entre o vetor de movimento e o vetor predito, o método de codificação de vetor de movimento compreendendo: uma etapa de atribuição para quando pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tem dois vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, atribuir IDs aos dois vetores de movimento para o respectivo de uma pluralidade de blocos codificados; e uma etapa de geração para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados.
[009] Aqui, na etapa de atribuição, os IDs podem ainda ser atribuídos aos vetores de movimento para o bloco corrente e, na etapa de geração, o vetor predito para cada um dos vetores de movimento para o bloco corrente pode ser gerado com base nos vetores de movimento com o mesmo ID que o ID atribuído ao vetor de movimento para o bloco corrente entre os vetores de movimento para a pluralidade de blocos codificados.
[0010] Também, na etapa de atribuição, os IDs podem ser atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados baseado em uma ordem em um fluxo de bits onde cada um dos vetores de movimento é colocado como a diferença codificada.
[0011] Aqui, na etapa de atribuição, os IDs podem ser atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados em uma de ordens descendentes e ascendentes de distâncias temporais na ordem de exibição de uma imagem, incluindo o bloco corrente para as imagens de referência referidas pelos dois vetores de movimento.
[0012] Aqui, na etapa de geração, vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente são selecionados dentre os vetores de movimento com o mesmo ID e o vetor predito pode ser gerado com base nos vetores de movimento selecionados.
[0013] Aqui, na etapa de geração, uma mediana dos vetores de movimento selecionados pode ser gerada como o vetor predito.
[0014] O método de codificação de filmes, o método de decodifi-cação de vetor de movimento, o método de decodificação de filmes, o aparelho de codificação de vetor de movimento, o aparelho de decodificação de vetor de movimento e programas para os mesmos de acordo com a presente invenção são estruturados similarmente ao método de codificação de vetor de movimento mencionado acima.
[0015] No método de codificação de vetor de movimento da presente invenção, um vetor de movimento de cada bloco corrente é codificado usando uma diferença entre um vetor predito obtido de vetores de movimento de blocos vizinhos previamente codificados e o vetor de movimento do bloco corrente. Esse vetor predito é gerado por um dos processamentos seguintes: quando o bloco corrente e os blocos vizinhos, respectivamente, têm uma pluralidade de vetores de movimento apontando as imagens de referência na mesma direção (para frente ou para trás), (A) os vetores de movimento que se referem a mesma imagem são selecionados dentre os vetores de movimento para os blocos vizinhos de modo a gerar o vetor predito (baseado nos vetores de mo- vimento selecionados); (B) os vetores de movimento para os respectivos blocos vizinhos são ordenados na ordem predeterminada e os vetores de movimento da mesma ordem são selecionados dos vetores de movimento ordenados de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (C) o vetor predito para o “segundo vetor de movimento” do bloco corrente será o “primeiro vetor de movimento” e, se o “segundo vetor de movimento” e o “primeiro vetor de movimento” se referem à imagens diferentes, o “primeiro vetor de movimento” é dimensionado de acordo com a distância temporal entre as imagens de modo a gerar o vetor predito.
[0016] Conseqüentemente, mesmo quando um bloco tem uma pluralidade de vetores de movimento apontando na mesma direção (para frente ou para trás), o método para codificação de vetores de movimento pode ser unificado e a eficiência de codificação dos vetores de movimento pode ser aperfeiçoada.
[0017] Por outro lado, no método de decodificação de vetor de movimento da presente invenção, um vetor de movimento de cada bloco corrente é decodificado através da adição de um vetor predito obtido dos vetores de movimento dos blocos vizinhos decodificados e o vetor de movimento do bloco corrente. Esse vetor predito é gerado por um dos seguintes processamentos: quando o bloco corrente e os blocos vizinhos, respectivamente, têm uma pluralidade de vetores de movimento apontando as imagens de referência na mesma direção (para frente ou para trás), (A) os vetores de movimento que se referem a mesma imagem são selecionados dentre os vetores de movimento para os blocos vizinhos de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (B) os vetores de movimento para os respectivos blocos vizinhos são ordenados na ordem predeterminada e os vetores de movimento da mesma ordem são selecionados dos vetores de movimento ordenados de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (C) o vetor predito para o "segundo vetor de movimento” do bloco corrente será o “primeiro vetor de movimento” e, se o “segundo vetor de movimento" e o "primeiro vetor de movimento se referem a imagens diferentes, o "primeiro vetor de movimento" é dimensionado de acordo com a distância temporal entre as imagens, de modo a gerar o vetor predito, [0018] Conseqüentemente, o vetor de movimento que é codificado pelo método de codificação de vetor de movimento da presente invenção pode ser decodificado corretamente.
Breve Descrição dos Desenhos [0019] A Figura 1 é um diagrama em blocos mostrando a estrutura de um aparelho de codificação de imagens de acordo com uma primeira concretização da presente invenção.
[0020] A Figura 2A é um diagrama mostrando a ordem de imagens introduzidas em uma memória de quadro.
[0021] A Figura 2B é um diagrama mostrando a ordem de codificação das imagens.
[0022] A Figura 3A é um diagrama mostrando um bloco corrente a ser codificado (no lado esquerdo superior em um macrobloco) e os blocos vizinhos previa mente codificados.
[0023] A Figura 3B é um diagrama mostrando um bloco corrente a ser codificado (no lado direito superior em um macrobloco) e os blocos vizinhos previamente codificados.
[0024] A Figura 3C é um diagrama mostrando um bloco corrente a ser codificado (no lado esquerdo inferior em um macrobloco e os blocos vizinhos previa mente codificados).
[0025] A Figura 3D é um diagrama mostrando um bloco corrente a ser codificado (no lado direito inferior em um macrobloco) e os blocos vizinhos previamente codificados.
[0026] A Figura 4A é um diagrama mostrando imagens de referen- cia a que vetores de movimento de um bloco corrente a ser codificado e blocos vizinhos previamente codificados se referem, respectivamente.
[0027] A Figura 4B é um diagrama mostrando imagens de referência a que vetores de movimento de um bloco corrente a ser codificado e blocos vizinhos previamente codificados se referem, respectivamente.
[0028] A Figura 4C é um diagrama mostrando imagens de referência a que vetores de movimento de um bloco corrente a ser codificado e blocos vizinhos previamente codificados se referem, respectivamente.
[0029] A Figura 5 é um diagrama explicando compensação de movimento no caso onde duas imagens de referência estão ambas localizadas em uma direção para frente.
[0030] A Figura 6 é um diagrama explicando o caso onde vetores de movimento são dimensionados.
[0031] A Figura 7 é um fluxograma mostrando um método de geração de vetores preditos no caso onde os primeiro e segundo métodos de geração de vetores preditos são usados em combinação.
[0032] A Figura 8 é um diagrama mostrando a ordem de vetores de movimento colocados em um fluxo de bits.
[0033] A Figura 9 é um diagrama em blocos mostrando a estrutura de um aparelho de decodificação de imagens de acordo com uma segunda concretização da presente invenção.
[0034] A Figura 10A é um diagrama mostrando um formato físico de um disco flexível.
[0035] A Figura 10B é um diagrama mostrando um disco flexível, a vista seccional transversal da aparência do disco flexível e a vista frontal da aparência do disco flexível.
[0036] A Figura 10C é um diagrama mostrando a aparência de um aparelho para escrever e ler um programa no e do disco flexível.
[0037] A Figura 11 é um diagrama em blocos mostrando a configuração global de um sistema de fornecimento de conteúdo.
[0038] A Figura 12 é um diagrama mostrando um telefone móvel usando um método de codificação de filmes e um método de decodifi- cação de filmes.
[0039] A Figura 13 é um diagrama em blocos mostrando a estrutura do telefone móvel.
[0040] A Figura 14 é um diagrama mostrando um sistema digital de difusão.
[0041] A Figura 15 é um diagrama mostrando relações de referência de imagem na técnica convencional.
[0042] A Figura 16 é um diagrama mostrando blocos vizinhos usados para gerar um vetor predito.
Melhor Modo para Realização da Invenção (Primeira Concretização) [0043] A primeira concretização da presente invenção será explicada abaixo com referência às figuras. A Figura 1 é um diagrama em blocos do aparelho de codificação de imagens para codificação de vetores de movimento como uma parte de codificação de imagens, incluindo uma memória de quadros 101, uma unidade de cálculo de diferença 102, uma unidade de codificação de erro residual 103, uma unidade de geração de fluxo de bits 104, uma unidade de decodificação de erro residual 105, uma unidade de adição 106, uma memória de quadros 107, uma unidade de detecção de vetor de movimento 108, uma unidade de seleção de modo 109, uma unidade de controle de codificação 110, chaves 111 - 115, uma unidade de armazenamento de vetores de movimento 116 e uma unidade de codificação de vetores de movimento 117.
[0044] As imagens são introduzidas na memória de quadros 101 na base de imagem por imagem na ordem de exibição. A Figura 2A mostra a ordem de introdução de imagens na memória de quadros 101. Na Figura 2A, linhas verticais mostram imagens e um alfabeto e um número no lado direito inferior de cada imagem indicam, respectivamente, um tipo de imagem (P indica uma imagem P e B indica uma imagem B) e um número de imagem na ordem de exibição. As imagens introduzidas na memória de quadros 101 são reordenadas na ordem de codificação. As imagens são reordenadas na ordem de codificação com base nas relações de referência na codificação de predi-ção interimagens, isto é, as imagens são reordenadas de modo que as imagens usadas como imagens de referência são codificadas antes das imagens que se referem àquelas imagens de referência. Por exemplo, as relações de referência das imagens B8 e B9 são mostradas por setas na Figura 2A. Nessa figura, as pontas de setas indicam as imagens que se referem às imagens de referência e as outras extremidades das setas indicam as imagens de referência. Nesse caso, as imagens mostradas na Figura 2A são reordenadas naquelas conforme mostrado na Figura 2B.
[0045] As imagens reordenadas na memória de quadros 101 são lidas por cada macrobloco. Nesse caso, um macrobloco terá um tamanho de pixels de 16, na horizontal, x 16, na vertical, e a compensação de movimento será realizada por cada bloco (pixels de 8 x 8, em tamanho). A codificação da imagem B8 será explicada etapa por etapa.
[0046] A imagem B8 é uma imagem B e codificada por cada macrobloco ou bloco usando um máximo de duas imagens de referência entre cinco imagens codificadas, imagens codificadas precedentes P1, P4 e P7 e imagens codificadas seguintes P10 e P13. Essas imagens de referência já foram codificadas e as imagens decodificadas locais estão armazenadas na memória de quadros 107.
[0047] Para codificar uma imagem B, a unidade de controle de co- dificação 110 LIGA a chave 113. Se uma imagem B for usada como uma imagem de referência para outras imagens, a unidade de controle de codificação 110 controla as chaves 114 e 115 para ficarem LIGADAS. Se a imagem B não for usada como uma imagem de referência para outras imagens, ela controla as chaves 114 e 115 para ficarem DESLIGADAS. Portanto, os macroblocos da imagem B8 lidos da memória de quadros 101 são primeiro introduzidos na unidade de detecção de vetor de movimento 108, na unidade de seleção de modo 109 e na unidade de cálculo de diferença 102.
[0048] A unidade de detecção de vetor de movimento 108 detecta vetores de movimento para frente e vetores de movimento para trás de cada bloco incluídos em um macrobloco, usando os dados de imagem decodificada das imagens P1, P4 e P7 como imagens de referência para frente e os dados de imagem decodificada das imagens P10 e P13 como imagens de referência para trás, que são armazenadas, respectivamente, na memória de quadros 107.
[0049] A unidade de seleção de modo 109 determina o modo de codificação de macroblocos usando os vetores de movimento detectados pela unidade de detecção de vetor de movimento 108. Aqui, o modo de codificação de macroblocos em uma imagem B pode ser selecionado dentre codificação intraimagens, codificação de predição interimagens, usando uma imagem de referência para frente, codificação de predição interimagens, usando duas imagens de referência para frente, codificação de predição interimagens, usando uma imagem de referência para trás, codificação de predição interimagens, usando duas imagens de referência para trás e codificação de predição interimagens, usando vetores de movimento bidirecionais, por exemplo. Quando a codificação de predição interimagens usando duas imagens de referência para frente, a codificação de predição interimagens usando duas imagens de referência para trás ou a codificação de pre- dição interimagens usando vetores de movimento bidirecionais (uma referência para frente e uma referência para trás) for selecionada, o bloco obtido pela média de dois blocos de referência é usado como o bloco de compensação de movimento. Um exemplo desse caso será explicado com referência à Figura 5. Nessa figura, para compensação de movimento de um bloco X na imagem B8 usando um bloco Y na imagem P7 e um bloco Z na imagem P4 como imagens de referência para frente, o bloco médio dos blocos Y e Z é usado como um bloco de compensação de movimento para o bloco X.
[0050] O modo de codificação determinado pela unidade de seleção de modo 109 é transferido para a unidade de geração de fluxo de bits 104. Os blocos de referência com base no modo de codificação determinado pela unidade de seleção de modo 109 são transferidos para a unidade de cálculo de diferença 102 e a unidade de adição 106. Se a codificação intraimagens for selecionada, os blocos de referência não são transferidos. Se a unidade de seleção de modo 109 seleciona codificação intraimagens, a chave 111 e a chave 112 são controladas para serem conectadas, respectivamente, a “a” e “c” e se ela seleciona codificação de predição interimagens, a chave 111 e a chave 112 são controladas para serem conectadas, respectivamente, a “b” e “d”. O caso onde a unidade de seleção de modo 109 seleciona codificação de predição interimagens será explicado abaixo.
[0051] A unidade de cálculo de diferença 102 recebe os blocos de referência 102 da unidade de seleção de modo 109. A unidade de cálculo de diferença 102 calcula a diferença entre o bloco da imagem B8 e o bloco de referência (o bloco de compensação de movimento) e gera o erro residual para saída.
[0052] O erro residual é introduzido na unidade de codificação de erro residual 103. A unidade de codificação de erro residual 103 realiza processamento de codificação, tal como conversão de freqüência e quantificação do erro residual introduzido e, desse modo, gera os dados codificados de erro residual para saída. Os dados codificados transferidos da unidade de codificação de erro residual 103 são introduzidos na unidade de geração de fluxo de bits 104.
[0053] Os vetores de movimento usados no modo de codificação selecionado pela unidade de seleção de modo 109 são transferidos para a unidade de armazenamento de vetores de movimento 116 e a unidade de codificação de vetores de movimento 117.
[0054] A unidade de armazenamento de vetores de movimento 116 armazena os vetores de movimento introduzidos da unidade de seleção de modo 109. Em outras palavras, a unidade de armazenamento de vetores de movimento 116 armazena os vetores de movimento que foram usados para os blocos previamente codificados.
[0055] A unidade de codificação de vetores de movimento 117 codifica os vetores de movimento introduzidos da unidade de seleção de modo 109. Essa operação será explicada com referência às Figuras 3A ~ 3D. Nessas Figuras, blocos mostrados em negrito são macroblo-cos de pixels de 16 x 16 e lá existem quatro blocos de pixels de 8 x 8 em cada macrobloco. Nas Figuras 3A ~3D, um bloco A é um bloco corrente que deve ser codificado e o vetor de movimento para o bloco A é codificado com base na diferença do vetor predito obtido dos vetores de movimento dos três blocos vizinhos codificados B, C e D. Os vetores de movimento para os blocos vizinhos são obtidos da unidade de armazenamento de vetores de movimento 116.
[0056] Métodos de cálculo de um vetor predito serão explicados com referência às Figuras 4A ~ 4C. Essas Figuras mostram os vetores de movimento para os blocos A ~ D. MV1 e MV2 indicam o primeiro vetor de movimento e o segundo vetor de movimento, respectivamente. "Para frente" significa um vetor de movimento de referência para frente. Sinais e números nos parênteses mostram as imagens de refe- rência.
[0057] Pelo primeiro método, o vetor predito é gerado pela seleção apenas dos vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento do bloco corrente, dos vetores de movimento para os blocos vizinhos. Na Figura 4A, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Na Figura 4B, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é o MV2 para o próprio bloco C. Na Figura 4C, o vetor predito para MV1 para o bloco A é a mediana de MV1 e MV2 para o bloco B, MV1 para o bloco C e MV1 e MV2 para o bloco D e o vetor predito para MV2 para o bloco A é o MV2 para o próprio bloco C. Nesse caso, o vetor predito para MV1 para o bloco A pode ser a mediana de três vetores; a média de MV1 e MV2 para o bloco B; MV1 para o bloco C; ou a média de MV1 e MV2 para o bloco D. A média de MV1 e MV2 para o bloco D. A média de MV1 e MV2 para o bloco B é arredondada para a precisão dos vetores de movimento (tal como precisão de pixel de 2/1, precisão de pixel de 1/4 e precisão de pixel de 1/8). Essa precisão de pixel é determinada por cada bloco, imagem ou seqüência. Nesse caso, se não houver vetor de movimento para os blocos vizinhos que se referem a mesma imagem de referência, o vetor predito pode ser 0. As medianas são calculadas para componentes horizontais e verticais do vetor de movimento, respectivamente.
[0058] Pelo segundo método, os vetores preditos são criados separadamente para MV1 e MV2, independente das imagens de referência. Nesse caso, a ordem de MV1 e MV2 em cada bloco pode ser determinada por um método especificado. Por exemplo, MV1 e MV2 podem ser ordenados na ordem descendente ou ascendente de distân- cias temporais da imagem corrente para as imagens de referência, vetores para frente primeiro ou vetores para trás primeiro, na ordem de codificação (na ordem em um fluxo de bits) ou semelhante. Por exemplo, a ordem descendente ou ascendente de distâncias temporais da imagem corrente para as imagens de referência aumenta a probabilidade de que a imagem de referência para o vetor de movimento do bloco corrente esteja, temporariamente, próximo à imagem de referência para o vetor de movimento selecionado para um vetor predito e, desse modo, a eficiência de codificação de vetor de movimento pode ser aperfeiçoada. Também, a ordem de vetores para frente primeiro e vetores para trás em segundo lugar aumenta a probabilidade de que o vetor de movimento para frente do bloco corrente seja codificado usando o vetor predito gerado dos vetores de movimento para frente dos blocos vizinhos e o vetor de movimento para trás do bloco corrente seja codificado usando o vetor predito gerado dos vetores de movimento para frente dos blocos vizinhos e, desse modo, a eficiência de codificação do vetor de movimento pode ser aperfeiçoada. Ainda, a ordem de codificação pode simplificar o método para gerenciamento dos blocos vizinhos para gerar um vetor predito. Na Figura 4A, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Também, nas Figuras 4B e AC, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Se as imagens de referência dos vetores de movimento para o bloco A são diferentes das imagens de referência dos vetores de movimento para os blocos B, C e D, que são usados para o vetor predito para o bloco A, os vetores de movimento para os blocos B, C e D podem ser dimensionados. Eles podem ser dimensionados com base em um valor determinado pela distância temporal entre imagens ou um valor predeterminado.
[0059] Pelo terceiro método, o vetor predito para MV1 é gerado com base nos blocos vizinhos para uso. Se MV1 for usado como um vetor predito para MV2, o próprio MV1 pode ser usado como o vetor predito ou o MV1 dimensionado pode ser usado. Se o dimensionado for usado, é concebível fazer a distância temporal entre a imagem B8 e a imagem de referência de MV1 igual à distância temporal entre a imagem B8 e a imagem de referência de MV2. Um exemplo de como fazê-los iguais será explicado com referência à Figura 6. Na Figura 6, é suposto que o bloco A na imagem B8 tem os vetores de movimento MV1 e MV2 e as imagens de referência de MV1 e MV2 são as imagens P7 e P4, respectivamente. Nesse caso, MV1' obtido por dimensi-onamento de MV1 para a imagem P4 (que é um vetor obtido por qua-druplicação de componentes horizontais e verticais de MV1, respectivamente, neste exemplo) é usado como um vetor predito para o vetor de movimento MV2. Ou, pode ser dimensionado usando um valor predeterminado para outro método. Além disso, a ordem de MV1 e MV2 para cada bloco pode ser predeterminada por um método especificado. Por exemplo, MV1 e MV2 podem ser ordenados em ordem descendente ou ascendente de distâncias temporais da imagem corrente para as imagens de referência, vetores para frente primeiro ou vetores para trás primeiro, na ordem de codificação, ou semelhantes.
[0060] Nos exemplos acima, todos os blocos B ~ D têm vetores de movimento, mas, se esses blocos são codificados como intrablocos ou em modo direto, processamento excepcional pode ser realizado por eles. Por exemplo, se um dos blocos B ~ D for um bloco desse tipo, os vetores de movimento para aquele bloco são considerados como sendo 0 para codificação. Se dois deles são blocos desse tipo , os vetores de movimento do bloco restante são usados como vetores preditos. E, se todos os blocos não tiverem vetor de movimento, os vetores de movimento são codificados na suposição de que o vetor predito é 0. Esse tipo de processamento também pode ser aplicado.
[0061] Mediante o recebimento dos dados codificados, a unidade de geração de fluxo de bits 104 realiza codificação de comprimento variável dos dados codificados e ainda adiciona a informação, como vetores de movimento codificados introduzidos da unidade de codificação de vetores de movimento 117, o modo de codificação introduzido da unidade de seleção de modo 109 e a informação de cabeçalho, aos dados codificados, de modo a gerar um fluxo de bits para saída.
[0062] De acordo com o mesmo processamento, os macroblocos restantes na imagem B8 são codificados.
[0063] Conforme descrito acima, de acordo com o método de codificação de vetor de movimento da presente invenção, um vetor de movimento para cada bloco corrente é codificado usando uma diferença entre o vetor predito que é obtido de vetores de movimento para blocos vizinhos previamente codificados e o vetor de movimento para o bloco corrente. Esse vetor predito é gerado por um dos seguintes processamentos: quando o bloco corrente e os blocos vizinhos, respectivamente, têm uma pluralidade de vetores de movimento apontando as imagens de referência na mesma direção (para frente ou para trás), (A) os vetores de movimento que se referem a mesma imagem são selecionados dentre os vetores de movimento para os blocos vizinhos de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (B) os vetores de movimento para os respectivos blocos vizinhos são ordenados na ordem predeterminada e os vetores de movimento da mesma ordem são selecionados dos vetores de movimento ordenados de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (C) o vetor predito para o “segundo vetor de movimento” do bloco corrente será o “primeiro vetor de movi- mento” e, se o “segundo vetor de movimento” e o “primeiro vetor de movimento” se referem à imagens diferentes, o “primeiro vetor de movimento” é dimensionado de acordo com a distância temporal entre as imagens de modo a gerar o vetor predito.
[0064] Mais especificamente, o método de codificação de vetor de movimento de acordo com a presente invenção é um método de codificação de vetor de movimento para gerar um vetor de movimento para um bloco corrente a ser codificado e um vetor predito para o vetor de movimento e codificação de uma diferença entre o vetor de movimento e o vetor predito, o método de codificação de vetor de movimento compreendendo: uma etapa de atribuição para, quando pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, atribuindo IDs a dois vetores de movimento para o respectivo da pluralidade de blocos codificados; e uma etapa de geração para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente com base nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados. Aqui, na etapa de atribuição e na etapa de geração mencionadas acima, os seguintes (a) e (b) podem ser executados: (a) na etapa de atribuição, os IDs são ainda atribuídos aos vetores de movimento para o bloco corrente e, na etapa de geração, o vetor predito para cada um dos vetores de movimento pra o bloco corrente é gerado com base nos vetores de movimento com o mesmo ID que o ID atribuído ao vetor de movimento para o bloco corrente entre os vetores de movimento para a pluralidade de blocos codificados. (b) na etapa de atribuição, os IDs são ainda atribuídos aos vetores de movimento para o bloco corrente e a etapa de geração inclui: uma subetapa de geração para gerar um vetor predito candidato por cada ID com base nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados; e uma subetapa de associação para associar o vetor predito candidato com cada ID para o vetor de movimento para o bloco corrente.
[0065] Conseqüentemente, mesmo quando um bloco vizinho tem uma pluralidade de vetores de movimento apontando na mesma direção (para frente ou para trás), o método para codificação dos vetores de movimento pode ser unificado e a eficiência de codificação dos vetores de movimento pode ser aperfeiçoada.
[0066] Na presente concretização, um macrobloco tem pixels horizontais de 16 x verticais de 16, compensação de movimento é realizada por cada bloco de pixels de 8 x 8 e o erro residual é codificado por cada um dos pixels horizontais de 8 x verticais de 8, mas qualquer outro número de pixels também pode ser aplicado.
[0067] Ainda, na presente concretização, um vetor de movimento de um bloco corrente é codificado usando a mediana dos vetores de movimento dos três blocos vizinhos previamente codificados como um vetor predito, mas o número de blocos vizinhos pode ser qualquer outro número e o vetor predito pode ser determinado por quaisquer outros métodos. Por exemplo, os vetores de movimento para o bloco imediatamente à esquerda do bloco corrente podem ser usados para um vetor predito.
[0068] Na presente concretização, a localização do bloco vizinho previamente codificado para codificação de vetor de movimento foi explicada com referência à Figura 3, mas quaisquer outras localizações podem ser aplicadas.
[0069] Por exemplo, se os blocos de pixels de 8 x 8 da presente concretização e blocos de quaisquer outros tamanhos são misturados, os seguintes blocos vizinhos codificados B, C e D podem ser usados para o bloco corrente A . Especificamente, pode ser determinado que o bloco Β é um bloco contendo um pixel à esquerda do pixel esquerdo superior no bloco A, o bloco C é um bloco contendo um pixel exatamente acima do pixel esquerdo superior no bloco A e o bloco D é um bloco contendo um pixel acima e à direita do pixel direito superior no bloco A.
[0070] Na presente concretização, vetor de movimento é codificado pelo cálculo da diferença entre o vetor de movimento de um bloco corrente e o vetor predito obtido dos vetores de movimento para os blocos vizinhos, mas pode ser codificado por outros métodos que não o cálculo da diferença.
[0071] Além disso, na presente concretização, o primeiro, o segundo e o terceiro métodos de geração do vetor predito para codificação de vetor de movimento foram explicados, respectivamente, mas esses métodos podem ser usados em combinação.
[0072] Um exemplo do método combinado será explicado com referência à Figura 7. A Figura 7 é um fluxograma mostrando o caso onde os primeiro e segundo métodos de geração de vetor predito são combinados e, mais especificamente, o processamento de geração de um vetor predito no caso onde um bloco A nas Figuras 3A ~ 3D é um bloco corrente e dois vetores de movimento de cada bloco vizinho B ~ D apontam os blocos de referência na mesma direção (para frente ou para trás). Nessa figura, as etapas S115 ~ S118 correspondem ao primeiro método de geração de vetor predito mencionado acima. E as etapas S111 ~ S114 correspondem a uma parte de determinação da ordem dos blocos vizinhos para o segundo método.
[0073] Uma ordem predeterminada em S112 pode ser a ordem descendente ou ascendente de distâncias temporais da imagem corrente para as imagens de referência, ordem de codificação ou semelhantes. Aqui, a ordem de codificação é a ordem em um fluxo de bits, conforme mostrado na Figura 8. A Figura 8 mostra dados de imagem correspondentes a uma imagem em um fluxo de bits. Os dados de imagem incluem um cabeçalho e dados codificados de respectivos blocos. Os vetores de movimento são colocados nos dados codificados dos blocos. Nessa figura, os vetores de movimento para os blocos B e C são colocados na ordem de codificação.
[0074] Em S113, os vetores de movimento na ordem predeterminada são classificados em MV1 e MV2 de acordo com suas classificações. Essa classificação dos vetores de movimento para os blocos vizinhos permite processamento mais simplificado. Se os vetores de movimento não estão classificados, a mediana de um máximo de 6 vetores de movimento (2 vetores de movimento x 3 blocos vizinhos) precisa ser calculada.
[0075] Mais especificamente, no processamento de Laço 1, dois vetores de movimento para o bloco vizinho B são primeiro ordenados na ordem predeterminada acima (S112) e IDs (por exemplo, 0 e 1, 1 e 2, MV1 e MV2 ou semelhantes) são atribuídos aos mesmos nesta ordem (S113). Os IDs (por exemplo, 0 e 1, 1 e 2, MV1 e MV2, ou semelhantes) também são atribuídos aos vetores de movimento, respectivamente, para os blocos vizinhos C e D da mesma maneira. Nesse momento, os IDs também são atribuídos aos dois vetores de movimento para o bloco corrente A da mesma maneira.
[0076] Em seguida, no processamento de Laço 2, os vetores de movimento com o mesmo ID (por exemplo, 0 ou 1) são primeiro selecionados dentre os vetores de movimento para os blocos vizinhos B ~ D ( S116) e a mediana dos vetores de movimento selecionados é considerada como um vetor predito para o bloco corrente A (S117). O vetor predito para outro vetor de movimento também é obtido da mesma maneira.
[0077] Note que no Laço 2, as duas medianas mencionadas acima podem ser calculadas como vetores preditos candidatos, independente dos IDs dos vetores de movimento para o bloco A, de modo a selecionar qualquer um dos vetores candidatos (ou associá-los com) para cada ID do vetor de movimento para o bloco A . Também, no Laço 1, os IDs não precisam ser atribuídos quando da geração dos vetores preditos para o bloco A, mas podem ser atribuídos quando da detecção dos vetores de movimento para os blocos vizinhos B, C e D. Os IDs atribuídos bem como os vetores de movimento são armazenados na unidade de armazenamento de vetores de movimento 116.
[0078] Para usar os primeiro e terceiro métodos de geração de vetores preditos juntos, o terceiro método de geração de vetor predito pode ser executado em lugar de S115 ~ S118 na Figura 7.
[0079] Na presente concretização, um vetor predito é gerado para codificação de um vetor de movimento na suposição de que um bloco corrente tem vetores de movimento de referência para frente apenas, mas o vetor predito pode ser gerado da mesma maneira, mesmo se o bloco corrente tiver um vetor de movimento de referência para trás.
[0080] Ainda, na presente concretização, um vetor predito é gerado para codificação de um vetor de movimento na suposição de que todos os blocos vizinhos têm dois vetores de movimento, respectivamente. Contudo, mesmo se um bloco vizinho tiver apenas um vetor de movimento, o vetor de movimento pode ser tratado como um primeiro ou um segundo vetor de movimento.
[0081] Além disso, na presente concretização, o caso onde o número máximo de imagens de referência é 2 foi explicado, mas pode ser 3 ou mais.
[0082] Além disso, há os seguintes métodos para armazenamento e gerenciamento de vetores de movimento na unidade de armazenamento de vetores de movimento 116 da presente concretização: (1) vetores de movimento para blocos vizinhos e a sua ordem (IDs indicando se eles são os primeiros vetores de movimento ou os segundos vetores de movimento) são armazenados de modo a adquirir o primeiro ou o segundo vetor de movimento para cada bloco vizinho da unidade de armazenamento de vetores de movimento 116, usando os IDs; e (2) as localizações para armazenamento do primeiro vetor de movimento e do segundo vetor de movimento para cada bloco vizinho são predeterminadas de modo a adquirir o primeiro ou o segundo vetor de movimento para o bloco vizinho da unidade de armazenamento de vetores de movimento 116 pelo acesso das suas localizações de armazenamento. (Segunda Concretização) [0083] A segunda concretização da presente invenção será explicada abaixo com referência à Figura 9. A Figura 9 é um diagrama em blocos do aparelho de decodificaçâo de imagens para decodificação de vetores de movimento como uma parte de decodificação de imagem, incluindo uma unidade de análise de fluxo de bits 701, uma unidade de decodificação de erro residual 702, uma unidade de decodifi-caçâo de modo 703, uma unidade de decodificação de compensação de movimento 705, uma unidade de armazenamento de vetores de movimento 706, uma memória de quadros 707, uma unidade de adição 708, chaves 709 e 710 e uma unidade de decodificação de vetor de movimento 711.
[0084] A ordem de entrada de imagens no fluxo de bits é a mesma que aquela mostrada na Figura 2B. O processamento da decodificação da imagem B8 será explicado abaixo etapa por etapa.
[0085] O fluxo de bits da imagem B8 é introduzido na unidade de análise de fluxo de bits 701, A unidade de análise de fluxo de bits 701 extrai vários tipos de dados do fluxo de bits introduzido. Aqui, vários tipos de dados incluem informação de seleção de modo e informação de vetor de movimento. A informação de seleção de modo extraída sai para a unidade de decodificação de modo 703. A informação de vetor de movimento extraída sai para a unidade de decodificação de vetor de movimento 711. Os dados codificados de erro residual saem para a unidade de decodificação de erro residual 702.
[0086] A unidade de decodificação de modo 703 controla a chave 709 e a chave 710 com base na informação de seleção de modo extraída do fluxo de bits. Se a seleção de modo é codificação intra-imagens, ela controla a chave 709 e a chave 710 para serem conectadas a “a” e “c”, respectivamente. Se a seleção de modo foi codificação de predição interimagens, ela controla a chave 709 e a chave 710 para serem conectadas a “b” e “d”, respectivamente.
[0087] A unidade de decodificação de modo 703 também transfere a informação de seleção de modo para a unidade de decodificação de compensação de movimento 705 e a unidade de decodificação de vetor de movimento 711. O caso onde a seleção de modo é codificação de predição interimagens será explicado abaixo.
[0088] A unidade de decodificação de erro residual 702 decodifica os dados codificados introduzidos de erro residual para gerar erros residuais. Os erros residuais gerados são transferidos para a chave 709. Uma vez que a chave 709 é conectada a “b” aqui, os erros residuais são transferidos para a unidade de adição 708.
[0089] A unidade de decodificação de vetor de movimento 711 realiza processamento de decodificação dos vetores de movimento codificados que são introduzidos da unidade de análise de fluxo de bits 701. Os vetores de movimento codificados são decodificados usando os vetores de movimento dos blocos vizinhos previamente decodificados. Essa operação será explicada com referência às Figuras 3A ~ 3D. O vetor de movimento codificado (MV) para o bloco corrente A que deve ser decodificado é calculado pela adição do vetor predito obtido dos vetores de movimento dos três blocos vizinhos previamente decodificados B, C e D e o vetor de movimento codificado. Os vetores de mo- vimento dos blocos vizinhos são obtidos da unidade de armazenamento de vetores de movimento 706.
[0090] Métodos de cálculo de um vetor predito serão explicados com referência às Figuras 4A ~ AC. Essas Figuras mostram os vetores de movimento para os blocos A ~ D. MV1 e MV2 indicam os primeiros vetores de movimento e os segundos vetores de movimento, respectivamente. “Para frente” significa um vetor de movimento de referência para frente. Sinais e números nos parênteses mostram as imagens de referência.
[0091] Pelo primeiro método, o vetor predito é gerado pela seleção apenas dos vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente, dos vetores de movimento para os blocos vizinhos. Na Figura 4A, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Na Figura 4B, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é o MV2 para o próprio bloco C. Na Figura AC, o vetor predito para MV1 para o bloco A é a mediana de MV1 e MV2 para o bloco B, MV1 para o bloco C e MV1 e MV2 para o bloco D e o vetor predito para MV2 para o bloco A é o MV2 para o próprio bloco C. Nesse caso, o vetor predito para MV1 para o bloco A pode ser a mediana dos três vetores; a média de MV1 e MV2 para o bloco B; MV1 para o bloco C; ou a média de MV1 e MV2 para o bloco D. A média de MV1 e MV2 para o bloco B é arredondada para a precisão dos vetores de movimento (como precisão de pixel de 2/1, precisão de pixel de 1/4 e precisão de pixel de 1/8). Essa precisão de pixel é determinada por cada bloco, imagem ou seqüência. Nesse caso, se não houver vetor de movimento para os blocos vizinhos que se referem a mesma imagem de referência, o vetor predi- to pode ser 0. As medianas são calculadas para componentes horizontais e verticais do vetor de movimento, respectivamente.
[0092] Pelo segundo método, os vetores preditos são criados separadamente para MV1 e MV2, independente das imagens de referência. Nesse caso, a ordem de MV1 e MV2 em cada bloco pode ser determinada por um método especificado. Por exemplo, MV1 e MV2 podem ser ordenados na ordem descendente ou ascendente de distâncias temporais da imagem corrente para as imagens de referência, vetores para frente primeiro ou vetores para trás primeiro, na ordem de decodificação (na ordem em um fluxo de bits) ou semelhante. Na Figura 4A, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Também, nas Figuras 4B e 4C, o vetor predito para MV1 para o bloco A é a mediana de MV1 respectiva para os blocos B, C e D e o vetor predito para MV2 para o bloco A é a mediana de MV2 respectiva para os blocos B, C e D. Se as imagens de referência dos vetores de movimento para o bloco A são diferentes das imagens de referência dos vetores de movimento para os blocos B , C e D, que são usados para o vetor predito para o bloco A, os vetores de movimento para os blocos B, C e D podem ser dimensionados. Eles podem ser dimensionados com base em um valor determinado pela distância temporal entre imagens ou um valor predeterminado.
[0093] Pelo terceiro método, o vetor predito para MV1 é gerado com base nos blocos vizinhos para uso. Se MV1 for usado como um vetor predito para MV2, o próprio MV1 pode ser usado como o vetor predito ou o MV1 dimensionado pode ser usado. Se o dimensionado for usado, é concebível tornar a distância temporal entre a imagem BÔ e a imagem de referência de MV1 igual à distância temporal entre a imagem B8 e a imagem de referência de MV2. Um exemplo de como torná-las iguais será explicado com referência à Figura 6. Na Figura 6, é suposto que o bloco A na imagem B8 tenha os vetores de movimento MV1 e MV2 e as imagens de referência de MV1 e MV2 são as imagens P7 e P4, respectivamente. Nesse caso, MV1' obtido pelo dimen-sionamento de MV1 para a imagem P4 (isto é, um vetor obtido pela quadruplicação de componentes horizontais e verticais de MV1, respectivamente, neste exemplo) é usado como um vetor predito para o vetor de movimento MV2. Ou pode ser dimensionado usando um valor predeterminado para outro método. Além disso, a ordem de MV1 e MV2 para cada bloco pode ser predeterminada por um método especificado. Por exemplo, MV1 e MV2 podem ser ordenados na ordem descendente ou ascendente de distâncias temporais da imagem corrente para as imagens de referência, vetores para frente primeiro e vetores para trás primeiro, na ordem de decodificação, ou semelhante.
[0094] No exemplo acima, todos os blocos B ~ D têm vetores de movimento, mas, se esses blocos forem codificados como intrablocos ou em modo direto, processamento excepcional pode ser realizado para eles. Por exemplo, se um dos blocos B ~ D for um bloco desse tipo, os vetores de movimento para aquele bloco são considerados como sendo 0 para decodificação. Se dois deles forem blocos desse tipo, os vetores de movimento do bloco restante são usados como vetores preditos. E, se todos os blocos não tiverem vetor de movimento algum, os vetores de movimento são decodificados na suposição de que o vetor predito é 0. Esse tipo de processamento também pode ser aplicado.
[0095] Os vetores de movimento decodificados são transferidos para a unidade de decodificação de compensação de movimento 705 e a unidade de armazenamento de vetores de movimento 706.
[0096] A unidade de decodificação de compensação de movimento 705 adquire os blocos de compensação de movimento da memória de quadros 707 com base nos vetores de movimento introduzidos. Os blocos de compensação de movimento gerados como mencionado acima são transferidos para a unidade de adição 708.
[0097] A unidade de armazenamento de vetores de movimento 706 armazena os vetores de movimento introduzidos. Especificamente, a unidade de armazenamento de vetores de movimento 706 armazena os vetores de movimento para os blocos decodificados.
[0098] A unidade de adição 708 adiciona os erros residuais introduzidos e os blocos de compensação de movimento para gerar blocos decodificados. Os blocos decodificados gerados saem para a memória de quadros 707 através da chave 710.
[0099] Os macroblocos na imagem 8 são decodificados em se-qüência na maneira mencionada acima.
[00100] Como descrito acima, de acordo com o método de decodifi-cação de vetor de movimento da presente invenção, um vetor de movimento para cada bloco corrente é decodificado pela adição de um vetor predito, que é obtido de vetores de movimento para blocos vizinhos previamente decodificados e o vetor de movimento codificado para o bloco corrente. O vetor predito é gerado por um dos seguintes processamentos: quando o bloco corrente e os blocos vizinhos, respectivamente, têm uma pluralidade de vetores de movimento apontando as imagens de referência na mesma direção (para frente ou para trás), (A) os vetores de movimento que se referem a mesma imagem são selecionados dentre os vetores de movimento para os blocos vizinhos de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (B) os vetores de movimento para os respectivos blocos vizinhos são ordenados na ordem predeterminada e os vetores de movimento da mesma ordem são selecionados dos vetores de movimento ordenados de modo a gerar o vetor predito (baseado nos vetores de movimento selecionados); (C) o vetor predito para o “segundo vetor de movimento” do bloco corrente será o “primeiro vetor de movimento” e, se o “segundo vetor de movimento” e o “primeiro vetor de movimento” se referirem à imagens diferentes, o “primeiro vetor de movimento” é dimensionado de acordo com a distância temporal entre as imagens de modo a gerar o vetor predito.
[00101] Mais especificamente, o método de decodificação de vetor de movimento de acordo com a presente invenção é um método de decodificação de vetor de movimento para gerar um vetor predito para um bloco corrente a ser decodificado e decodificação de um vetor de movimento codificado, usando o vetor predito, o método de decodificação de vetor de movimento compreendendo: uma etapa de atribuição para, quando pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, atribuindo IDs aos dois vetores de movimento para o respectivo de uma pluralidade de blocos decodificados; e uma etapa de geração para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos decodificados. Aqui, na etapa de geração mencionada acima, (a) e (b) a seguir podem ser executados: (a) na etapa de geração, o vetor predito é gerado com base nos vetores de movimento para a pluralidade de blocos decodificados com o mesmo ID que o ID atribuído ao vetor de movimento para o bloco corrente. (b) na etapa de geração, o vetor predito é gerado pela associação de um vetor predito candidato gerado por cada ID para os vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos decodificados com o ID para o vetor de movimento para o bloco corrente. Os vetores de movimento para o bloco decodificado são distinguidos com base em uma das ordens descendentes e ascendentes de distâncias temporais na ordem de exibição de uma imagem incluindo o bloco corrente para as imagens de referência referidas pelos vetores de movimento.
[00102] Conseqüentemente, os vetores de movimento que são codificados no método como mostrado na primeira concretização podem ser decodificados corretamente.
[00103] Na presente concretização, um vetor de movimento de um bloco corrente é decodificado usando a mediana dos vetores de movimento dos três blocos vizinhos previamente decodificados como um vetor predito, mas o número de blocos vizinhos pode ser qualquer outro número e o vetor predito pode ser determinado por quaisquer outros métodos. Por exemplo, os vetores de movimento para o bloco imediatamente à esquerda do bloco corrente podem ser usados para um vetor predito.
[00104] Por exemplo, se os blocos de pixels de 8 x 8 da presente concretização e blocos de quaisquer outros tamanhos forem misturados, os blocos vizinhos decodificados seguintes B, C e D podem ser usados para o bloco corrente A. Especificamente, pode ser determinado que o bloco B é um bloco contendo um pixel à esquerda do pixel esquerdo superior no bloco A, o bloco C é um bloco contendo um pixel exatamente acima do pixel esquerdo superior no bloco A e o bloco D é um bloco contendo um pixel acima e à direita do pixel direito superior no bloco A.
[00105] Na presente concretização, as localizações dos blocos vizinhos previamente decodificados para decodificação de vetor de movimento foram explicadas com referência às Figuras 3A ~ 3D, mas quaisquer outras localizações podem ser aplicadas.
[00106] Na presente concretização, o vetor de movimento é decodificado pela adição do vetor de movimento de um bloco corrente e o vetor predito obtido dos vetores de movimento para os blocos vizinhos, mas pode ser decodificado por outros métodos que não a adição.
[00107] Além disso, na presente concretização, os primeiro, segundo e terceiro métodos de geração do vetor predito para decodificação de vetor de movimento foram explicados, respectivamente, mas esses métodos podem ser usados em combinação.
[00108] Por exemplo, se os primeiro e segundo métodos de geração de vetor predito forem combinados, o vetor predito pode ser gerado de acordo com o fluxo, conforme mostrado na Figura 7. Se o segundo e o terceiro métodos de geração de vetor predito forem combinados, o terceiro método pode ser executado em lugar de S115 ~ S118 na Figura 7.
[00109] Na presente concretização, um vetor predito é gerado para decodificação de vetores de movimento na suposição de que um bloco corrente tem vetores de movimento de referência para frente apenas, mas o vetor predito pode ser gerado da mesma maneira, mesmo se o bloco corrente tiver um vetor de movimento de referência para trás.
[00110] Na presente concretização, o caso onde o número máximo de imagens de referência é 2 foi explicado, mas ele pode ser 3 ou mais.
[00111] Ainda, existem os seguintes métodos para armazenamento e gerenciamento de vetores de movimento na unidade de armazenamento de vetores de movimento 706 da presente concretização: (1) vetores de movimento para blocos vizinhos e a sua ordem (IDs indicando se eles são os primeiros vetores de movimento ou os segundos vetores de movimento) são armazenados de modo a adquirir o primeiro ou o segundo vetor de movimento para cada bloco vizinho da unidade de armazenamento de vetores de movimento 706, usando os IDs; e (2) as localizações para armazenamento do primeiro vetor de movimento e do segundo vetor de movimento para cada bloco vizinho são predeterminadas de modo a adquirir o primeiro ou o segundo vetor de movimento para o bloco vizinho da unidade de armazenamento de vetores de movimento 706 pelo acesso das suas localizações de armazenamento.
[00112] Além disso, se um programa para realizar a estrutura do método de codificação de vetor de movimento, o método de codificação de imagens incluindo o método de codificação de vetor de movimento, o método de decodificação de vetor de movimento ou o método de decodificação de imagem, incluindo o método de decodificação de vetor de movimento, conforme mostrado nas primeira e segunda concretizações, for gravado em um meio de armazenamento, tal como um disco flexível, se torna possível realizar o processamento conforme mostrado nessas concretizações facilmente em um sistema de computador independente.
[00113] As Figuras 10A, 10B e 10C são ilustrações mostrando o caso onde o processamento é realizado em um sistema de computador usando um disco flexível que armazena o programa mencionado acima.
[00114] A Figura 10B mostra um disco flexível e a vista frontal e a vista seccional transversal da aparência do disco flexível e a Figura 10A mostra um exemplo de um formato físico de um disco flexível como o próprio meio de armazenamento. Um disco flexível FD está contido em uma caixa F, uma pluralidade de trilhas Tr são formadas con-centricamente na superfície do disco na direção do raio a partir da periferia e cada trilha é dividida em 16 setores Se na direção angular. Portanto, como para o disco flexível que armazena o programa mencionado acima, o método de codificação de imagens como o programa é gravado em uma área alocada para ele no disco flexível FD.
[00115] A Figura 10C mostra a estrutura para escrita e leitura do programa no e do disco flexível FD. Quando programa é gravado no disco flexível FD, o sistema de computador Cs escreve o método de codificação de imagens ou o método de decodificação de imagens como o programa no disco flexível FD através de um drive de disco flexível. Para construção do método de codificação de imagens no sistema de computador pelo programa gravado no disco flexível, o programa é lido do disco flexível através do drive de disco flexível e transferido para o sistema de computador.
[00116] A explanação acima é feita na suposição de que um meio de armazenamento é um disco flexível, mas o mesmo processamento também pode ser realizado usando um disco óptico. Além disso, o meio de armazenamento não está limitado a um disco flexível e a um disco óptico, mas quaisquer outros meios, tais como um cartão de IC e um cassete ROM podem ser usados, se um programa puder ser gravado nos mesmos.
[00117] As Figuras 11-14 são ilustrações dos aparelhos para realização do processamento de codificação ou decodificação conforme mostrado nas primeira e segunda concretizações e do sistema que usa os mesmos.
[00118] A Figura 11 é um diagrama em blocos mostrando a configuração global de um sistema de fornecimento de conteúdo ex100 para realização de serviço de distribuição de conteúdo. A área para fornecimento de serviço de comunicação é dividida em células de tamanho desejado e estações móveis ex107 - ex110, que são estações sem fio fixas, são colocadas em respectivas células.
[00119] Esse sistema de fornecimento de conteúdo ex100 é conectado aos aparelhos, como um computador ex111, um PDA (Assistente Pessoal Digital) ex112, uma câmera ex113, um telefone móvel ex114 e um telefone móvel equipado com câmera ex115 através da Internet ex101, um provedor de serviços de Internet ex102, uma rede telefônica ex104 e estações móveis ex107 - ex110.
[00120] Contudo, o sistema de fornecimento de conteúdo ex100 não está limitado à configuração conforme mostrado na Figura 11 e pode ser conectado a uma combinação de qualquer uma delas. Também, cada aparelho pode ser conectado diretamente à rede telefônica ex104, não através das estações móveis ex107 ~ ex110.
[00121] A câmera ex113 é um aparelho, tal como uma câmera de vídeo digital capaz de filmar. O telefone móvel pode ser um telefone móvel de um sistema de PDC (Comunicação Pessoal Digital), um sistema de CDMA (Acesso Múltiplo por Divisão de Códigos), um sistema de W-CDMA (Acesso Múltiplo por Divisão de Códigos- Banda Larga) ou um sistema GSM (Sistema Global para Comunicações Móveis), um PHS (Sistema Pessoal de Telefone Portátil) ou semelhante.
[00122] Um servidor de fluxo contínuo ex103 é conectado à câmera ex113 através da rede telefônica ex104 e a estação móvel ex113 que possibilita uma distribuição momentânea ou semelhante, usando a câmera ex113 com base nos dados codificados transmitidos do usuário. A câmera ex113 ou o servidor para transmitir os dados pode codificar os dados filmados pela câmera . Também, os dados de filmes filmados por uma câmera ex116 podem ser transmitidos para o servidor de fluxo contínuo ex103 através do computador ex111. A câmera ex116 é um aparelho, tal como uma câmera digital, capaz de filmar imagens fixas e em movimento. A câmera ex116 ou o computador ex111 pode codificar os dados das imagens em movimento. Um LSI ex117 incluído no computador ex111 ou a câmera ex116 realiza, realmente, o processamento de codificação. O Software para codificação e decodificação de imagens pode ser integrado em qualquer tipo de um meio de armazenamento (tal como um CD-ROM, um disco flexível e um disco rígido), que seja legível pelo computador ex111 ou semelhante. Além disso, o telefone móvel equipado com câmera ex115 pode transmitir os dados de filmagem. Esses dados de filmagem são da- dos codificados pelo LSI incluído no telefone móvel ex115.
[00123] No sistema de fornecimento de conteúdo ex100, conteúdos (como um vídeo de música ao vivo) filmados pelos usuários usando a câmera ex113, a câmera ex116 ou semelhante, são codificados da mesma maneira que a primeira concretização e transmitidos para o servidor de fluxo contínuo ex103, enquanto o servidor de fluxo contínuo ex103 faz a distribuição de fluxo dos dados de conteúdos para os clientes a seu pedido. Os clientes incluem o computador ex111, o PDA ex112, a câmera ex113, o telefone móvel ex114 e assim por diante capazes de decodificação dos dados codificados mencionados acima. No sistema de fornecimento de conteúdo ex100, os clientes podem, assim, receber e reproduzir os dados codificados e ainda podem receber, decodificar e reproduzir os dados em tempo real de modo a realizar difusão pessoal.
[00124] Quando cada aparelho nesse sistema realiza codificação ou decodificação, o aparelho de codificação de filmes ou o aparelho de decodificação de filmes, conforme mostrado na primeira ou na segunda concretização mencionada acima, pode ser usado.
[00125] Um telefone móvel será explicado como um exemplo.
[00126] A Figura 12 é um diagrama mostrando o telefone móvel ex115 realizado usando o método de codificação de filmes e o método de decodificação de filmes explicados nas primeira e segunda concretizações. O telefone móvel ex115 tem uma antena ex201 para enviar e receber ondas de rádio entre a estação móvel ex110, uma unidade de câmera ex203, tal como uma câmera de CCD capaz de filmar imagens móveis e fixas, uma unidade de exibição ex202, tal como uma tela de cristal líquido para exibir os dados obtidos pela decodificação de imagens e semelhantes filmadas pela unidade de câmera ex203 ou recebidas pela antena ex201, um corpo principal incluindo um conjunto de chaves de operação ex204, uma unidade de saída de voz ex208, tal como um alto-falante para saída de vozes, uma unidade de entrada de voz 205, tal como um microfone para entrada de vozes, um meio de armazenamento ex207 para armazenar dados codificados e decodificados, tais como dados de imagens em movimento ou fixas filmadas pela câmera e dados de imagens em movimento ou fixas de e-mails recebidos e uma unidade de abertura ex206 para fixação do meio de armazenamento ex207 no telefone móvel ex115. O meio de armazenamento ex207 inclui um elemento de memória instantânea, uma espécie de EEPROM (Memória de Leitura Somente Eletricamente Apa-gável e Programável), que é uma memória não-volátil eletricamente apagável e regravável, em uma caixa plástica, tal como um cartão de SD.
[00127] A seguir, o telefone móvel ex115 será explicado com referência à Figura 13. No telefone móvel ex115, uma unidade de controle principal ex311 para controle global de cada unidade do corpo principal, incluindo a unidade de exibição ex202 e as chaves de operação ex204, é conectada a uma unidade de circuito de abastecimento de energia ex310, uma unidade de controle de entrada de operação ex304, uma unidade de codificação de imagem ex312, uma unidade de interface de câmera ex303, uma unidade de controle de LCD (Tela de Cristal Líquido) ex302, uma unidade de decodificação de imagem ex309, uma unidade de multiplexação/ demultiplexação ex308, uma unidade leitura/ escrita ex307, uma unidade de circuito de modem ex306 e uma unidade de processamento de voz ex305, uma à outra, através de um barramento síncrono ex313.
[00128] Quando uma chave de final de chamada ou uma chave de energia é LIGADA pela operação de um usuário, a unidade de circuito de abastecimento de energia ex310 alimenta respectivas unidades com energia de uma bateria de reserva de modo a ativar o telefone móvel digital equipado com câmera ex115 para um estado de “pronto”.
[00129] No telefone móvel ex115, a unidade de processamento de voz ex305 converte os sinais de voz recebidos pela unidade de entrada de voz ex205 no modo de conversação em dados de voz digitais sob o controle da unidade de controle principal ex311, incluindo uma CPU, uma ROM e uma RAM, a unidade de circuito de modem ex306 realiza processamento de propagação de espectros dos dados de voz digitais e a unidade de circuito de envio/ recebimento ex301 realiza conversão de digital para analógico e a conversão de freqüência dos dados, de modo a transmiti-los através da antena ex201. Também, no telefone móvel ex115, a unidade de circuito de envio/ recebimento ex301 amplifica os dados recebidos pela antena ex201 no modo de conversão e realiza conversão de freqüência e conversão de analógico para digital dos dados, a unidade de circuito de modem ex306 realiza processamento inverso de propagação de espectros e a unidade de processamento de voz ex305 converte os mesmos em dados analógicos de voz, de modo a fazê-los sair através da unidade de saída de voz ex208.
[00130] Além disso, quando da transmissão de um e-mail no modo de comunicação de voz, os dados de texto do e-mail introduzidos pela operação das chaves de operação ex204 no corpo principal são enviados para a unidade de controle principal ex311 através da unidade de controle de entrada em operação ex304. Na unidade de controle principal ex311, após a unidade de circuito de modem ex306 realizar o processamento de propagação de espectros dos dados de texto e a unidade de circuito de envio/ recebimento ex301 realiza a conversão de digital para analógico e a conversão de freqüência dos mesmos, os dados são transmitidos para a estação móvel ex110 através da antena ex201.
[00131] Quando dados de imagem são transmitidos no modo de comunicação de dados, os dados de imagem filmados pela unidade de câmera ex203 são fornecidos para a unidade de codificação de imagens ex312 através da unidade de interface de câmera ex303. Quando eles não são transmitidos, os dados de imagem filmados pela unidade de câmera ex203 também podem ser exibidos diretamente na unidade de tela 202 através da unidade de interface de câmera ex303 e da unidade de controle de LCD ex302.
[00132] A unidade de codificação de imagens ex312, que inclui o aparelho de codificação de imagens como explicado na presente invenção, codifica os dados de imagem fornecidos da unidade de câmera ex203 pelo método de codificação usado para o aparelho de codificação de imagens, conforme mostrado na primeira concretização mencionada acima, de modo a transformá-los em dados de imagem codificados e os envia para a unidade de multiplexação/ demultiplexa-ção ex308. Nesse momento, o telefone móvel ex115 envia as vozes recebidas pela unidade de entrada de voz ex205 durante a filmagem de imagens pela unidade de câmera ex203 para a unidade de multiplexação/ demultiplexação ex308 como dados de voz digitais através da unidade de processamento de voz ex305.
[00133] A unidade de multiplexação/ demultiplexação ex308 multi-plexa os dados de imagem codificados fornecidos da unidade de codificação de imagens ex312 e os dados de voz fornecidos da unidade de processamento de voz ex305 por um método predeterminado, a unidade de circuito de modem ex306 realiza processamento de propagação de espectros dos dados multiplexados resultantes e a unidade de circuito de envio/ recebimento ex301 realiza a conversão de digital para analógico e a conversão de freqüência dos dados para transmissão através da antena ex201.
[00134] Como para o recebimento de dados de um arquivo de filmes que é ligado a uma página da Web ou semelhante no modo de comunicação de dados, a unidade de circuito de modem ex306 realiza processamento inverso de propagação de espectros dos dados recebidos da estação móvel ex110 através da antena ex201 e envia os dados multiplexados resultantes para a unidade de multiplexação/ demul-tiplexação ex308.
[00135] A fim de decodificar os dados multiplexados recebidos através da antena ex201, a unidade de multiplexação/ demultiplexação ex308 demultiplexa os dados multiplexados em um fluxo de bits de dados de imagem e um fluxo de bits de dados de voz e fornece os dados de imagem codificados para a unidade de decodificação de imagem ex309 e os dados de voz para unidade de processamento de voz ex305, respectivamente, através do barramento síncrono ex313.
[00136] A seguir, a unidade de decodificação de imagem ex309, que inclui o aparelho de decodificação de imagens, conforme explicado na presente invenção, decodifica o fluxo de bits de dados de imagem pelo método de decodificação emparelhado com o método de codificação, conforme mostrado nas concretizações mencionadas acima, de modo a gerar dados de filmes reproduzidos e fornece esses dados para a unidade de exibição ex202 através da unidade de controle de LCD ex302 e, assim, os dados de imagem incluídos em um arquivo de filmes ligado a uma página da Web, por exemplo, são exibidos. Ao mesmo tempo, a unidade de processamento de voz ex305 converte os dados de voz em dados analógicos de voz e fornece esses dados para a unidade de saída de voz ex208, e, assim, os dados de voz incluídos em um arquivo de filmes ligado a uma página da Web, por exemplo, são reproduzidos.
[00137] A presente invenção não está limitada ao sistema mencionado acima e pelo menos o aparelho de codificação de imagens ou o aparelho de decodificação de imagens nas concretizações mencionadas acima pode ser incorporado em um sistema digital de difusão, conforme mostrado na Figura 14. Essa difusão digital baseada em ter- ra ou em satélite tem estado nos noticiários ultimamente. Mais especificamente, um fluxo de bits de informação de imagem é transmitido de uma estação de difusão ex409 para ou comunicado com um satélite de difusão ex410 através de ondas de rádio. Mediante o recebimento do mesmo, o satélite de difusão ex410 transmite ondas de rádio para difusão, uma antena doméstica ex406 com uma função de recepção de difusão por satélite recebe as ondas de rádio e um aparelho, tal como uma televisão (receptor) ex401 ou uma caixa de sinal de fre-qüência (STB) ex407 decodifica o fluxo de bits para reprodução. O aparelho de decodificação de imagens, conforme mostrado na concretização mencionada acima, pode ser implementado no aparelho de reprodução ex403 para leitura do fluxo de bits gravado em um meio de armazenamento ex402, tal como um CD e DVD e decodificação do mesmo. Nesse caso, os sinais de imagem reproduzidos são exibidos em um monitor ex404. Ele também é concebido para implementar o aparelho de decodificação de imagens na caixa de sinal de freqüência ex407 conectado a um cabo ex405 para uma televisão a cabo ou a antena ex406 para difusão por satélite el ou baseada em terra de modo a reproduzir os sinais de imagem em um monitor ex408 da televisão ex401. O aparelho de decodificação de imagens pode ser incorporado na televisão, não na caixa de sinal de freqüência. Ou, um carro ex412, tendo uma antena ex411 pode receber sinais do satélite ex410 ou a estação móvel ex107 para reproduzir filmes em um aparelho de exibição, tal como um aparelho de navegação de carro ex413 no carro ex412.
[00138] Além disso, o aparelho de codificação de imagens, conforme mostrado na concretização mencionada acima, pode codificar sinais de imagem para gravação em um meio de armazenamento. Como um exemplo concreto, há um gravador ex420, tal como um gravador de DVD para gravar sinais de imagem em um disco de DVD ex421 e um gravador de disco para gravá-los em um disco rígido. Eles também podem ser gravados em um cartão de SD (cartão de memória) ex422. Se o gravador ex420 inclui o aparelho de decodificação de imagens, conforme mostrado na concretização mencionada acima, os sinais de imagem gravados no disco de DVD ex421 ou no cartão de SD ex422 podem ser reproduzidos para exibição no monitor ex408.
[00139] Como a estrutura do aparelho de navegação de carro ex413, a estrutura sem a unidade de câmera ex203, a unidade de interface de câmera ex303 e a unidade de codificação de imagens ex312, fora das unidades conforme mostrado na Figura 13, é concebível. O mesmo se aplica ao computador ex111, à televisão (receptor) ex401 e outros.
[00140] Além disso, três tipos de implementações podem ser concebidos para um terminal, tais como o telefone móvel ex114 mencionado acima; um terminal de envio/ recebimento equipado com um codificador e um decodificador, um terminal de envio equipado com um codificador apenas e um terminal de recebimento equipado com um decodificador apenas.
[00141] Conforme descrito acima, é possível aplicar o método de codificação de filmes ou o método de decodificação de filmes nas concretizações mencionadas acima a qualquer um dos aparelhos e sistemas acima e, através da aplicação desse método, os efeitos descritos nas concretizações acima podem ser obtidos.
[00142] Da invenção assim descrita, será óbvio que as concretizações da invenção podem ser variadas de muitas maneiras. Essas variações não devem ser consideradas como um afastamento do espírito e do escopo da invenção e todas essas modificações que serão óbvias para alguém versado na técnica são destinadas à inclusão dentro do escopo das reivindicações a seguir.
Aplicabilidade Industrial [00143] A presente invenção é aplicada a um aparelho de codificação de vetor de movimento e a um aparelho de codificação de filmes para gerar um vetor de movimento para um bloco corrente a ser codificado e um vetor predito para o vetor de movimento, codificação da diferença entre o vetor de movimento e o vetor predito e colocação da diferença codificada em um fluxo de bits representando um filme e um aparelho de decodificação de vetor de movimento e a um aparelho de decodificação de filmes para decodificação do fluxo de bits.
REIVINDICAÇÕES
Claims (31)
1. Método de codificação de vetor de movimento para gerar um vetor de movimento para um bloco corrente a ser codificado e um vetor predito para o vetor de movimento e codificação de uma diferença entre o vetor de movimento e o vetor predito caracterizado pelo fato de que compreende: uma etapa de atribuição (S111-S114) para quando pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem a imagens de referência na mesma direção em uma ordem de exibição, atribuir IDs aos dois vetores de movimento para o respectivo de uma pluralidade de blocos codificados; e uma etapa de geração (S115-S118) para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados.
2. Método de codificação de vetor de movimento, de acordo com a reivindicação 1, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são ainda atribuídos aos vetores de movimento para o bloco corrente; e, na etapa de geração (S115-S118), o vetor predito para cada um dos vetores de movimento para o bloco corrente é gerado com base nos vetores de movimento com o mesmo ID que o ID atribuído ao vetor de movimento para o bloco corrente entre os vetores de movimento para a pluralidade de blocos codificados.
3. Método de codificação de vetor de movimento, de acordo com a reivindicação 2, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados baseado em uma ordem em um fluxo de bits onde cada um dos vetores de movimento é colocado como a diferença codificada.
4. Método de codificação de vetor de movimento, de acordo com a reivindicação 2, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados em uma das ordens descendente e ascendente de distâncias temporais na ordem de exibição de uma imagem, incluindo o bloco corrente para as imagens de referência referidas pelos dois vetores de movimento.
5. Método de codificação de vetor de movimento, de acordo com a reivindicação 2, caracterizado pelo fato de que, na etapa de geração (S115-S118), vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente são selecionados dentre os vetores de movimento com o mesmo ID e o vetor predito é gerado com base nos vetores de movimento selecionados.
6. Método de codificação de vetor de movimento, de acordo com a reivindicação 5, caracterizado pelo fato de que, na etapa de geração, uma mediana dos vetores de movimento selecionados é gerada como o vetor predito.
7. Método de codificação de vetor de movimento, de acordo com a reivindicação 1, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são ainda atribuídos aos vetores de movimento para o bloco corrente; e a etapa de geração (S115-S118) inclui: uma subetapa de geração para gerar um vetor predito candidato por cada ID com base nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados; e uma subetapa de associação para associar o vetor predito candidato com cada ID para o vetor de movimento para o bloco cor- rente.
8. Método de codificação de vetor de movimento, de acordo com a reivindicação 7, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados baseado em uma ordem em um fluxo de bits onde cada um dos vetores de movimento é colocado como a diferença codificada.
9. Método de codificação de vetor de movimento, de acordo com a reivindicação 7, caracterizado pelo fato de que, na etapa de atribuição (S111-S114), os IDs são atribuídos aos dois vetores de movimento para o respectivo da pluralidade de blocos codificados em uma das ordens descendente e ascendente de distâncias temporais na ordem de exibição de uma imagem, incluindo o bloco corrente para as imagens de referência referidas pelos dois vetores de movimento.
10. Método de codificação de vetor de movimento, de acordo com a reivindicação 7, caracterizado pelo fato de que, na etapa de geração (S115-S118), vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente são selecionados dentre os vetores de movimento com o mesmo ID e o vetor predito é gerado com base nos vetores de movimento selecionados.
11. Método de codificação de vetor de movimento, de acordo com a reivindicação 10, caracterizado pelo fato de que, na etapa de geração (S115-S118), uma mediana dos vetores de movimento selecionados pode ser gerada como o vetor predito.
12. Método de decodificação de vetor de movimento para gerar um vetor predito para um bloco corrente a ser decodificado e decodificação de um vetor de movimento codificado usando o vetor predito caracterizado pelo fato de que compreende: uma etapa de atribuição (S111-S114) para, quando pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, atribuir IDs aos vetores de movimento para o respectivo de uma pluralidade de blocos decodificados; e uma etapa de geração (S115-S118) para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos decodificados.
13. Método de decodificação de vetor de movimento, de acordo com a reivindicação 12, caracterizado pelo fato de que, na etapa de geração (S115-S118), o vetor predito é gerado com base nos vetores de movimento para a pluralidade de blocos decodificados com o mesmo ID que o ID atribuído ao vetor de movimento para o bloco corrente.
14. Método de decodificação de vetor de movimento, de acordo com a reivindicação 12, caracterizado pelo fato de que, na etapa de geração (S115-S118), o vetor predito é gerado pela associação de um vetor predito candidato gerado por cada ID para os vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos decodificados com o ID para o vetor de movimento para o bloco corrente.
15. Método de decodificação de vetor de movimento para gerar um vetor predito para um bloco corrente a ser decodificado e decodificação de um vetor de movimento codificado usando o vetor predito caracterizado pelo fato de que compreende: uma etapa de memorização (S111-S114) para, quando pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, memorizar vetores de movimento para o respectivo da pluralidade de blocos decodificados após distinguir os vetores de movimento; e uma etapa de geração (S115-S118) para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento similarmente distinguidos entre os vetores de movimento para a pluralidade de blocos decodificados.
16. Método de decodificação de vetor de movimento, de acordo com a reivindicação 15, caracterizado pelo fato de que, na etapa de geração (S115-S118), o vetor predito é gerado com base nos vetores de movimento para a pluralidade de blocos decodificados distinguidos similarmente ao vetor de movimento para o bloco corrente.
17. Método de decodificação de vetor de movimento, de acordo com a reivindicação 16, caracterizado pelo fato de que, na etapa de memorização (S111-S114), o vetor de movimento para o bloco corrente é distinguido com base em uma ordem de codificação dos vetores de movimento codificados.
18. Método de decodificação de vetor de movimento, de acordo com a reivindicação 16, caracterizado pelo fato de que na etapa de memorização (S111-S114), os vetores de movimento para o bloco decodificado são distinguidos com base em uma das ordens descendente e ascendente de distâncias temporais na ordem de exibição de uma imagem incluindo o bloco corrente para as imagens de referência referidas pelos vetores de movimento.
19. Método de decodificação de vetor de movimento, de acordo com a reivindicação 16, caracterizado pelo fato de que os vetores de movimento para a pluralidade de blocos decodificados similarmente distinguidos para o vetor de movimento para o bloco corrente foram selecionados dentre os vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente.
20. Método de decodificação de vetor de movimento, de acordo com a reivindicação 19, caracterizado pelo fato de que, na etapa de geração (S115-S118), uma mediana dos vetores de movimento selecionados é gerada como o vetor predito.
21. Método de decodificação de vetor de movimento, de acordo com a reivindicação 15, caracterizado pelo fato de que, na etapa de geração (S115-S118), o vetor predito é gerado pela associação de um vetor predito candidato gerado por cada um dos vetores de movimento similarmente distinguidos entre os vetores de movimento para a pluralidade de blocos decodificados com o vetor de movimento para o bloco corrente.
22. Método de decodificação de vetor de movimento, de acordo com a reivindicação 21, caracterizado pelo fato de que, na etapa de memorização (S111-S114), os vetores de movimento para o bloco decodificado são distinguidos pela atribuição dos IDs com base na ordem de codificação dos vetores de movimento.
23. Método de decodificação de vetor de movimento, de acordo com a reivindicação 21, caracterizado pelo fato de que, na etapa de memorização (S111-S114), os vetores de movimento para o bloco decodificado são distinguidos com base em uma das ordens descendente e ascendente de distâncias temporais na ordem de exibição de uma imagem incluindo o bloco corrente para as imagens de referência referidas pelos vetores de movimento.
24. Método de decodificação de vetor de movimento, de acordo com a reivindicação 21, caracterizado pelo fato de que os vetores de movimento para a pluralidade de blocos decodificados distinguidos similarmente ao vetor de movimento para o bloco corrente são selecionados dentre os vetores de movimento que se referem a mesma imagem de referência que o vetor de movimento para o bloco corrente.
25. Método de decodificação de vetor de movimento, de acordo com a reivindicação 24, caracterizado pelo fato de que, na etapa de geração (S115-S118), uma mediana dos vetores de movimento selecionados é gerada como o vetor predito.
26. Método de codificação de filmes compreendendo: uma etapa de determinação para determinar imagens de referência para uma imagem incluindo um bloco corrente a ser codificado; e uma etapa de codificação para codificar uma diferença entre um vetor de movimento para o bloco corrente e o vetor predito para o vetor de movimento para o bloco corrente, caracterizado pelo fato de que a etapa de codificar compreende: uma etapa de atribuição (S111-S114) para, quando as imagens de referência determinadas estiverem localizadas na mesma direção em uma ordem de exibição da imagem incluindo o bloco corrente e pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tiver vetores de movimento que se referem às imagens de referência na mesma direção na ordem de exibição, atribuir IDs para vetores de movimento para o respectivo da pluralidade de blocos codificados; e uma etapa de geração (S115-S118) para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente com base nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados.
27. Método de decodificação de filmes compreendendo: uma etapa de decodificação para decodificar um vetor de movimento codificado para o bloco corrente usando o vetor predito para o vetor de movimento, caracterizado pelo fato de que a etapa de decodificar compreende: uma etapa de memorização (S111-S114) para, quando imagens de referência para uma imagem incluindo um bloco corrente a ser decodificado estiverem localizadas na mesma direção em uma ordem de exibição da imagem incluindo o bloco corrente e pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem às imagens de referência na mesma direção na ordem de exibição, memorizar vetores de movimento para o respectivo da pluralidade de blocos decodificados após distinguir os vetores de movimento; e uma etapa de geração (S115-S118) para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento similarmente distinguidos entre os vetores de movimento para a pluralidade de blocos decodificados.
28. Aparelho de codificação de vetor de movimento compreendendo: uma unidade (108,118,117) operável para gerar um vetor de movimento para um bloco corrente a ser codificado e um vetor predito para o vetor de movimento, para codifica uma diferença entre o vetor de movimento e o vetor predito e para colocar a diferença codificada em um fluxo de bits representando um filme, caracterizado pelo fato de que a unidade (108,116,117) ainda compreende: uma unidade de atribuição operável para, quando pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem a imagens de referência na mesma direção em uma ordem de exibição, atribuir IDs aos dois vetores de movimento para o respectivo de uma pluralidade de blocos codificados; e uma unidade de geração operável para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados.
29. Aparelho de decodificação de vetor de movimento compreendendo: uma unidade (706,711) operável para gerar um vetor predito para um bloco corrente a ser decodificado e para decodificar um vetor de movimento codificado usando o vetor predito, caracterizado pelo fato de que a unidade (706,711) ainda compreende: uma unidade de memorização operável para, quando pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem às imagens de referência na mesma direção em uma ordem de exibição, memorizar vetores de movimento para o respectivo da pluralidade de blocos decodificados após distinguir os vetores de movimento; e uma unidade de geração operável para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento similarmente distinguidos entre os vetores de movimento para a pluralidade de blocos decodificados.
30. Aparelho para codificação de filmes compreendendo: uma unidade de determinação operável para determinar imagens de referência para uma imagem incluindo um bloco corrente a ser codificado; e uma unidade de codificação (117) operável para codificar uma diferença entre o vetor de movimento para o bloco corrente e o vetor predito para o vetor de movimento; caracterizado pelo fato de que a unidade de codificação (117) ainda compreende: uma unidade de atribuição operável para, quando as imagens de referência determinadas estiverem localizadas na mesma direção em uma ordem de exibição da imagem incluindo o bloco corrente e pelo menos um bloco entre uma pluralidade de blocos codificados nas vizinhanças do bloco corrente tiver vetores de movimento que se referem às imagens de referência na mesma direção na ordem de exibição, atribuir IDs para vetores de movimento para o respectivo da pluralidade de blocos codificados; e uma unidade de geração operável para gerar o vetor predito para cada um dos vetores de movimento para o bloco corrente com base nos vetores de movimento com o mesmo ID entre os vetores de movimento para a pluralidade de blocos codificados.
31. Aparelho para decodificação de filmes compreendendo: uma unidade de decodificação (711) operável para decodificar um vetor de movimento codificado para o bloco corrente usando o vetor predito para o vetor de movimento, caracterizado pelo fato de que a unidade de decodificação (711) ainda compreende: uma unidade de memorização operável para, quando imagens de referência para uma imagem incluindo um bloco corrente a ser decodificado estiverem localizadas na mesma direção em uma ordem de exibição da imagem incluindo o bloco corrente e pelo menos um bloco entre uma pluralidade de blocos decodificados nas vizinhanças do bloco corrente tiver dois vetores de movimento que se referem às imagens de referência na mesma direção na ordem de exibição, memorizar vetores de movimento para o respectivo da pluralidade de blocos decodificados após distinguir os vetores de movimento; e uma unidade de geração operável para gerar um vetor predito para cada um dos vetores de movimento para o bloco corrente baseado nos vetores de movimento similarmente distinguidos entre os vetores de movimento para a pluralidade de blocos decodificados.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002121051 | 2002-04-23 | ||
| JP2002-121051 | 2002-04-23 | ||
| JP2002-173865 | 2002-06-14 | ||
| JP2002173865 | 2002-06-14 | ||
| PCT/JP2003/004540 WO2003092299A1 (en) | 2002-04-23 | 2003-04-10 | Motion vector encoding method and motion vector decoding method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| BRPI0304549B1 true BRPI0304549B1 (pt) | 2017-12-19 |
Family
ID=29272326
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BR0304549-8A BR0304549A (pt) | 2002-04-23 | 2003-04-10 | Método de codificação de vetor de movimento e método de decodificação de vetor de movimento |
| BRPI0304549-8A BRPI0304549B1 (pt) | 2002-04-23 | 2003-04-10 | Method of coding vector movement and decoding method of vector motion |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BR0304549-8A BR0304549A (pt) | 2002-04-23 | 2003-04-10 | Método de codificação de vetor de movimento e método de decodificação de vetor de movimento |
Country Status (16)
| Country | Link |
|---|---|
| US (14) | US7394853B2 (pt) |
| EP (6) | EP1773067B1 (pt) |
| JP (4) | JP4130783B2 (pt) |
| KR (4) | KR100947691B1 (pt) |
| CN (5) | CN100542291C (pt) |
| AT (3) | ATE471038T1 (pt) |
| AU (1) | AU2003236034C1 (pt) |
| BR (2) | BR0304549A (pt) |
| CA (1) | CA2443861C (pt) |
| DE (3) | DE60332974D1 (pt) |
| DK (1) | DK2216996T3 (pt) |
| ES (6) | ES2400063T3 (pt) |
| MX (1) | MXPA03009608A (pt) |
| MY (1) | MY136457A (pt) |
| TW (2) | TWI323614B (pt) |
| WO (1) | WO2003092299A1 (pt) |
Families Citing this family (92)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USRE50574E1 (en) | 2002-01-09 | 2025-09-02 | Dolby International Ab | Motion vector coding method and motion vector decoding method |
| JP4114859B2 (ja) * | 2002-01-09 | 2008-07-09 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
| JP2004023458A (ja) * | 2002-06-17 | 2004-01-22 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
| KR100906473B1 (ko) * | 2002-07-18 | 2009-07-08 | 삼성전자주식회사 | 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치 |
| JP4373702B2 (ja) | 2003-05-07 | 2009-11-25 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム |
| ES2343410T3 (es) * | 2003-06-25 | 2010-07-30 | Thomson Licensing | Codificacion intertramas con decision rapida de modo. |
| JP2006020095A (ja) * | 2004-07-01 | 2006-01-19 | Sharp Corp | 動きベクトル検出回路、画像符号化回路、動きベクトル検出方法および画像符号化方法 |
| CN101023674B (zh) * | 2004-09-16 | 2010-08-18 | 汤姆森特许公司 | 用于中间帧的快速模式判定的方法和装置 |
| EP1808025B1 (en) * | 2004-11-04 | 2016-03-09 | Thomson Licensing | Method and apparatus for fast mode decision of b-frames in a video encoder |
| WO2006131891A2 (en) * | 2005-06-10 | 2006-12-14 | Nxp B.V. | Alternating up- and down-ward motion vector |
| US8761259B2 (en) * | 2005-09-22 | 2014-06-24 | Qualcomm Incorporated | Multi-dimensional neighboring block prediction for video encoding |
| JP2007166381A (ja) * | 2005-12-15 | 2007-06-28 | Univ Of Tokyo | 多視点画像の圧縮符号化方法及び復号化方法 |
| US20070274385A1 (en) * | 2006-05-26 | 2007-11-29 | Zhongli He | Method of increasing coding efficiency and reducing power consumption by on-line scene change detection while encoding inter-frame |
| JP5271271B2 (ja) * | 2006-11-03 | 2013-08-21 | サムスン エレクトロニクス カンパニー リミテッド | 動きベクトル・トラッキングを利用した映像の符号化、復号化方法及び装置 |
| KR101356734B1 (ko) * | 2007-01-03 | 2014-02-05 | 삼성전자주식회사 | 움직임 벡터 트랙킹을 이용한 영상의 부호화, 복호화 방법및 장치 |
| JP4898415B2 (ja) * | 2006-12-19 | 2012-03-14 | キヤノン株式会社 | 動画像符号化装置及び動画像符号化方法 |
| KR101356735B1 (ko) | 2007-01-03 | 2014-02-03 | 삼성전자주식회사 | 전역 움직임 벡터를 사용해서 움직임 벡터를 추정하기 위한방법, 장치, 인코더, 디코더 및 복호화 방법 |
| TWI373696B (en) * | 2007-04-04 | 2012-10-01 | Mstar Semiconductor Inc | Methods of calculating a motion estimation value and estimating a motion vector of an image |
| KR100955396B1 (ko) * | 2007-06-15 | 2010-04-29 | 성균관대학교산학협력단 | 양-예측 부호화 방법 및 장치, 양-예측 복호화 방법 및장치 및 기록매체 |
| WO2008153262A1 (en) | 2007-06-15 | 2008-12-18 | Sungkyunkwan University Foundation For Corporate Collaboration | Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording midium |
| CN100583649C (zh) * | 2007-07-23 | 2010-01-20 | 华为技术有限公司 | 矢量编/解码方法、装置及流媒体播放器 |
| WO2009051419A2 (en) | 2007-10-16 | 2009-04-23 | Lg Electronics Inc. | A method and an apparatus for processing a video signal |
| US8817878B2 (en) * | 2007-11-07 | 2014-08-26 | Broadcom Corporation | Method and system for motion estimation around a fixed reference vector using a pivot-pixel approach |
| JP5322956B2 (ja) * | 2008-01-29 | 2013-10-23 | パナソニック株式会社 | 画像符号化装置および画像符号化方法 |
| WO2009115901A2 (en) | 2008-03-19 | 2009-09-24 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
| JP5401071B2 (ja) | 2008-10-09 | 2014-01-29 | 株式会社Nttドコモ | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法 |
| KR101377527B1 (ko) * | 2008-10-14 | 2014-03-25 | 에스케이 텔레콤주식회사 | 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법 |
| US8804516B2 (en) | 2008-12-04 | 2014-08-12 | Cisco Technology, Inc. | Opportunistic transmissions within MoCA |
| KR101590511B1 (ko) * | 2009-01-23 | 2016-02-02 | 에스케이텔레콤 주식회사 | 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법 |
| US8320455B2 (en) * | 2009-03-05 | 2012-11-27 | Qualcomm Incorporated | System and method to process motion vectors of video data |
| ES3058729T3 (en) | 2009-06-18 | 2026-03-12 | Toshiba Kk | Video encoding |
| AU2009348128B2 (en) * | 2009-06-18 | 2014-05-15 | Kabushiki Kaisha Toshiba | Dynamic Image Encoding Device |
| JP2009290889A (ja) * | 2009-08-07 | 2009-12-10 | Ntt Docomo Inc | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム |
| KR20110068793A (ko) * | 2009-12-16 | 2011-06-22 | 한국전자통신연구원 | 영상 부호화 및 복호화를 위한 장치 및 방법 |
| KR101348613B1 (ko) | 2009-12-23 | 2014-01-10 | 한국전자통신연구원 | 영상의 부호화/복호화 장치 및 그 방법 |
| KR101522850B1 (ko) * | 2010-01-14 | 2015-05-26 | 삼성전자주식회사 | 움직임 벡터를 부호화, 복호화하는 방법 및 장치 |
| WO2011093688A2 (ko) * | 2010-02-01 | 2011-08-04 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
| USRE48074E1 (en) * | 2010-02-24 | 2020-06-30 | Velos Media, Llc | Image encoding device and image decoding device |
| KR101456499B1 (ko) * | 2010-07-09 | 2014-11-03 | 삼성전자주식회사 | 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
| US9300970B2 (en) | 2010-07-09 | 2016-03-29 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding motion vector |
| CN103069804B (zh) | 2010-11-24 | 2017-05-03 | 太阳专利托管公司 | 运动矢量计算方法、图像解码方法、运动矢量计算装置及图像解码装置 |
| US20120163457A1 (en) * | 2010-12-28 | 2012-06-28 | Viktor Wahadaniah | Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus |
| KR101820997B1 (ko) * | 2011-01-12 | 2018-01-22 | 선 페이턴트 트러스트 | 동화상 부호화 방법 및 동화상 복호화 방법 |
| JP5342069B2 (ja) | 2011-02-22 | 2013-11-13 | パナソニック株式会社 | フィルタ方法、画像符号化方法、画像処理システム及び画像符号化装置 |
| WO2012114694A1 (ja) | 2011-02-22 | 2012-08-30 | パナソニック株式会社 | 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置 |
| MX2013001051A (es) | 2011-02-22 | 2013-04-03 | Panasonic Corp | Metodo de codificacion de imagen, metodo de decodificacion de imagen, aparato de codificacion de imagen, aparato de decodificacion de imagen y aparato de codificacion/decidificacion de imagen. |
| KR101878008B1 (ko) | 2011-03-03 | 2018-07-13 | 선 페이턴트 트러스트 | 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치 |
| US9288501B2 (en) * | 2011-03-08 | 2016-03-15 | Qualcomm Incorporated | Motion vector predictors (MVPs) for bi-predictive inter mode in video coding |
| JP5853841B2 (ja) * | 2011-04-27 | 2016-02-09 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム |
| JP5853842B2 (ja) * | 2011-04-27 | 2016-02-09 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム |
| TWI526056B (zh) | 2011-04-27 | 2016-03-11 | Jvc Kenwood Corp | A moving picture coding apparatus, a motion picture coding method, a motion picture coding program, a transmission apparatus, a transmission method, a transmission program, a video decoding apparatus, a video decoding method, a video decoding program, a reception device, a reception method, Receiving program |
| WO2012147344A1 (ja) | 2011-04-27 | 2012-11-01 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、及び動画像復号プログラム |
| JP5786478B2 (ja) * | 2011-06-15 | 2015-09-30 | 富士通株式会社 | 動画像復号装置、動画像復号方法、及び動画像復号プログラム |
| KR101566848B1 (ko) | 2011-06-24 | 2015-11-06 | 미디어텍 인크. | 모션 벡터 예측기에서의 중복성을 제거하는 방법 및 장치 |
| CA2840381C (en) | 2011-06-28 | 2019-01-08 | Lg Electronics Inc. | Method for setting motion vector list and apparatus using same |
| US9094689B2 (en) * | 2011-07-01 | 2015-07-28 | Google Technology Holdings LLC | Motion vector prediction design simplification |
| ES2786503T3 (es) | 2011-07-19 | 2020-10-13 | Tagivan Ii Llc | Método de filtrado, método de decodificación de imágenes en movimiento, método de codificación de imágenes en movimiento, aparato de decodificación de imágenes en movimiento, aparato de codificación de imágenes en movimiento y aparato de codificación/decodificación de imágenes en movimiento |
| KR101210892B1 (ko) * | 2011-08-29 | 2012-12-11 | 주식회사 아이벡스피티홀딩스 | Amvp 모드에서의 예측 블록 생성 방법 |
| CA2826787C (en) * | 2011-10-27 | 2019-09-17 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| CA2836243C (en) | 2011-10-28 | 2020-12-01 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, and image decoding apparatus |
| CN104041042B (zh) | 2011-10-28 | 2018-10-23 | 太阳专利托管公司 | 图像编码方法、图像解码方法、图像编码装置及图像解码装置 |
| JP5768662B2 (ja) * | 2011-10-31 | 2015-08-26 | 富士通株式会社 | 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム |
| WO2013067440A1 (en) | 2011-11-04 | 2013-05-10 | General Instrument Corporation | Motion vector scaling for non-uniform motion vector grid |
| CA2883050C (en) | 2011-11-08 | 2015-07-14 | Samsung Electronics Co., Ltd. | Method and apparatus for motion vector determination in video encoding or decoding |
| TWI523497B (zh) * | 2011-11-10 | 2016-02-21 | Sony Corp | Image processing apparatus and method |
| JP5795525B2 (ja) * | 2011-12-13 | 2015-10-14 | 日本電信電話株式会社 | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム |
| TWI559747B (zh) * | 2011-12-28 | 2016-11-21 | Jvc Kenwood Corp | A dynamic image coding apparatus, a motion picture coding method and a motion picture coding program, and a motion picture decoding apparatus, a motion picture decoding method, and a motion picture decoding program |
| TWI466538B (zh) * | 2012-01-20 | 2014-12-21 | Altek Corp | 影像處理方法及其裝置 |
| US20130208795A1 (en) * | 2012-02-09 | 2013-08-15 | Google Inc. | Encoding motion vectors for video compression |
| US8908767B1 (en) | 2012-02-09 | 2014-12-09 | Google Inc. | Temporal motion vector prediction |
| JP2012138947A (ja) * | 2012-03-12 | 2012-07-19 | Ntt Docomo Inc | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム |
| WO2013162273A1 (ko) * | 2012-04-24 | 2013-10-31 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
| US9172970B1 (en) | 2012-05-29 | 2015-10-27 | Google Inc. | Inter frame candidate selection for a video encoder |
| US11317101B2 (en) | 2012-06-12 | 2022-04-26 | Google Inc. | Inter frame candidate selection for a video encoder |
| KR101255230B1 (ko) * | 2012-06-25 | 2013-04-16 | 세종대학교산학협력단 | 다시점 영상에서 적응적 움직임 벡터 예측 장치 및 방법 |
| US9503746B2 (en) | 2012-10-08 | 2016-11-22 | Google Inc. | Determine reference motion vectors |
| US9485515B2 (en) | 2013-08-23 | 2016-11-01 | Google Inc. | Video coding using reference motion vectors |
| JP2014187580A (ja) * | 2013-03-25 | 2014-10-02 | Kddi Corp | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、およびプログラム |
| KR101445835B1 (ko) * | 2013-05-28 | 2014-10-01 | 에스케이텔레콤 주식회사 | 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
| US9313493B1 (en) | 2013-06-27 | 2016-04-12 | Google Inc. | Advanced motion estimation |
| KR102039708B1 (ko) * | 2013-11-13 | 2019-11-01 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 제조 방법 |
| JP5705948B2 (ja) * | 2013-11-15 | 2015-04-22 | 株式会社Nttドコモ | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム |
| EP3085085A4 (en) * | 2014-01-29 | 2017-11-08 | MediaTek Inc. | Method and apparatus for adaptive motion vector precision |
| TWI595450B (zh) | 2014-04-01 | 2017-08-11 | 能晶科技股份有限公司 | 物件偵測系統 |
| CN104202606B (zh) * | 2014-08-18 | 2017-11-03 | 山东大学 | 一种基于hevc运动估计起始点确定方法 |
| CN106303544B (zh) * | 2015-05-26 | 2019-06-11 | 华为技术有限公司 | 一种视频编解码方法、编码器和解码器 |
| KR101782154B1 (ko) * | 2015-06-05 | 2017-09-26 | 인텔렉추얼디스커버리 주식회사 | 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치 |
| US11272207B2 (en) * | 2017-06-12 | 2022-03-08 | Futurewei Technologies, Inc. | Selection and signaling of motion vector (MV) precisions |
| US10880573B2 (en) | 2017-08-15 | 2020-12-29 | Google Llc | Dynamic motion vector referencing for video coding |
| US10284869B2 (en) | 2017-09-28 | 2019-05-07 | Google Llc | Constrained motion field estimation for hardware efficiency |
| EP3780608A4 (en) | 2018-04-02 | 2021-12-01 | SZ DJI Technology Co., Ltd. | IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE |
| WO2025255299A1 (en) * | 2024-06-07 | 2025-12-11 | Google Llc | Directional storage of reference motion field motion vectors |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2699703B2 (ja) | 1991-07-31 | 1998-01-19 | 松下電器産業株式会社 | 動き補償予測方法とそれを用いた画像信号符号化方法 |
| ES2159553T3 (es) * | 1993-03-24 | 2001-10-16 | Sony Corp | Metodo y aparato para codificar/descodificar un vector de movimiento, y metodo y aparato para codificar/descodificar una señal de imagen. |
| JPH0799645A (ja) * | 1993-09-28 | 1995-04-11 | Toshiba Corp | 動きベクトル検出回路 |
| FR2725577B1 (fr) * | 1994-10-10 | 1996-11-29 | Thomson Consumer Electronics | Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede |
| JP3347954B2 (ja) * | 1995-11-02 | 2002-11-20 | 三菱電機株式会社 | 動画像符号化装置及び動画像復号化装置 |
| JPH10224795A (ja) * | 1997-01-31 | 1998-08-21 | Nippon Telegr & Teleph Corp <Ntt> | 動画像符号化方法、復号方法、符号化器および復号器 |
| US5978048A (en) * | 1997-09-25 | 1999-11-02 | Daewoo Electronics Co., Inc. | Method and apparatus for encoding a motion vector based on the number of valid reference motion vectors |
| KR20010031320A (ko) * | 1997-10-23 | 2001-04-16 | 다니구찌 이찌로오, 기타오카 다카시 | 화상 복호화 장치, 화상 부호화 장치, 화상 통신 시스템및 부호화 비트 스트림 변환장치 |
| DE69801209T2 (de) * | 1998-03-20 | 2001-11-08 | Stmicroelectronics S.R.L., Agrate Brianza | Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer |
| JP4142180B2 (ja) * | 1998-10-29 | 2008-08-27 | 富士通株式会社 | 動きベクトル符号化装置および復号装置 |
| EP1172765A1 (en) * | 2000-07-12 | 2002-01-16 | Deutsche Thomson-Brandt Gmbh | Method for processing video pictures and apparatus for processing video pictures |
| KR100887524B1 (ko) * | 2001-02-13 | 2009-03-09 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 모션 정보 코딩 및 디코딩 방법 |
| US7266150B2 (en) * | 2001-07-11 | 2007-09-04 | Dolby Laboratories, Inc. | Interpolation of video compression frames |
| US6816552B2 (en) * | 2001-07-11 | 2004-11-09 | Dolby Laboratories Licensing Corporation | Interpolation of video compression frames |
| US7308029B2 (en) * | 2003-12-23 | 2007-12-11 | International Business Machines Corporation | Method and apparatus for implementing B-picture scene changes |
-
2003
- 2003-04-08 JP JP2003104588A patent/JP4130783B2/ja not_active Expired - Lifetime
- 2003-04-10 EP EP20070100277 patent/EP1773067B1/en not_active Expired - Lifetime
- 2003-04-10 DE DE60332974T patent/DE60332974D1/de not_active Expired - Lifetime
- 2003-04-10 DE DE60324482T patent/DE60324482D1/de not_active Expired - Lifetime
- 2003-04-10 DE DE2003620243 patent/DE60320243T2/de not_active Expired - Lifetime
- 2003-04-10 AU AU2003236034A patent/AU2003236034C1/en not_active Expired
- 2003-04-10 BR BR0304549-8A patent/BR0304549A/pt active IP Right Grant
- 2003-04-10 US US10/473,322 patent/US7394853B2/en not_active Expired - Lifetime
- 2003-04-10 CN CNB2006100958637A patent/CN100542291C/zh not_active Expired - Lifetime
- 2003-04-10 KR KR1020087008333A patent/KR100947691B1/ko not_active Expired - Lifetime
- 2003-04-10 ES ES10160075T patent/ES2400063T3/es not_active Expired - Lifetime
- 2003-04-10 MX MXPA03009608A patent/MXPA03009608A/es active IP Right Grant
- 2003-04-10 EP EP20070109634 patent/EP1821546B1/en not_active Expired - Lifetime
- 2003-04-10 EP EP20100160084 patent/EP2216997B1/en not_active Expired - Lifetime
- 2003-04-10 AT AT07100277T patent/ATE471038T1/de not_active IP Right Cessation
- 2003-04-10 CN CNB038005190A patent/CN1271865C/zh not_active Expired - Lifetime
- 2003-04-10 CN CNB2006100957117A patent/CN100515083C/zh not_active Expired - Lifetime
- 2003-04-10 ES ES10160082T patent/ES2400945T3/es not_active Expired - Lifetime
- 2003-04-10 KR KR1020087008334A patent/KR100947689B1/ko not_active Expired - Lifetime
- 2003-04-10 ES ES07109634T patent/ES2318822T3/es not_active Expired - Lifetime
- 2003-04-10 ES ES03719091T patent/ES2301790T3/es not_active Expired - Lifetime
- 2003-04-10 ES ES10160084T patent/ES2399675T3/es not_active Expired - Lifetime
- 2003-04-10 AT AT03719091T patent/ATE392092T1/de not_active IP Right Cessation
- 2003-04-10 EP EP20100160082 patent/EP2216996B1/en not_active Expired - Lifetime
- 2003-04-10 AT AT07109634T patent/ATE413068T1/de not_active IP Right Cessation
- 2003-04-10 KR KR1020087008335A patent/KR100947690B1/ko not_active Expired - Lifetime
- 2003-04-10 KR KR1020037013519A patent/KR100947692B1/ko not_active Expired - Lifetime
- 2003-04-10 EP EP20030719091 patent/EP1499133B1/en not_active Expired - Lifetime
- 2003-04-10 CA CA 2443861 patent/CA2443861C/en not_active Expired - Lifetime
- 2003-04-10 CN CNB2006100957121A patent/CN100515084C/zh not_active Expired - Lifetime
- 2003-04-10 CN CNB2006100958622A patent/CN100542290C/zh not_active Expired - Lifetime
- 2003-04-10 EP EP20100160075 patent/EP2216995B1/en not_active Expired - Lifetime
- 2003-04-10 DK DK10160082.3T patent/DK2216996T3/da active
- 2003-04-10 BR BRPI0304549-8A patent/BRPI0304549B1/pt unknown
- 2003-04-10 ES ES07100277T patent/ES2343656T3/es not_active Expired - Lifetime
- 2003-04-10 WO PCT/JP2003/004540 patent/WO2003092299A1/ja not_active Ceased
- 2003-04-22 MY MYPI20031514A patent/MY136457A/en unknown
- 2003-04-22 TW TW095115901A patent/TWI323614B/zh not_active IP Right Cessation
- 2003-04-22 TW TW092109396A patent/TWI281353B/zh not_active IP Right Cessation
-
2006
- 2006-04-07 JP JP2006106792A patent/JP4456087B2/ja not_active Expired - Lifetime
-
2007
- 2007-10-31 US US11/980,531 patent/US8179968B2/en active Active
- 2007-10-31 US US11/980,622 patent/US8213510B2/en active Active
- 2007-10-31 US US11/980,606 patent/US8155200B2/en active Active
- 2007-10-31 US US11/980,661 patent/US8160147B2/en active Active
- 2007-10-31 US US11/980,681 patent/US8155201B2/en active Active
- 2007-10-31 US US11/980,550 patent/US8194745B2/en active Active
-
2009
- 2009-12-10 JP JP2009281024A patent/JP5167233B2/ja not_active Expired - Lifetime
- 2009-12-10 JP JP2009281017A patent/JP5167232B2/ja not_active Expired - Lifetime
-
2012
- 2012-05-31 US US13/484,368 patent/US8665961B2/en not_active Expired - Lifetime
-
2013
- 2013-09-30 US US14/041,320 patent/US9020037B2/en not_active Expired - Fee Related
- 2013-09-30 US US14/041,177 patent/US9118930B2/en not_active Expired - Fee Related
- 2013-09-30 US US14/041,195 patent/US9020034B2/en not_active Expired - Fee Related
- 2013-09-30 US US14/041,283 patent/US9020036B2/en not_active Expired - Fee Related
- 2013-09-30 US US14/041,263 patent/US9020035B2/en not_active Expired - Fee Related
- 2013-09-30 US US14/041,302 patent/US9031132B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0304549B1 (pt) | Method of coding vector movement and decoding method of vector motion | |
| CN1516974B (zh) | 图像编码方法和图像解码方法 | |
| JP5355807B2 (ja) | 符号化データ配信方法および配信システム | |
| BRPI0303342B1 (pt) | Método de decodificação de imagem | |
| BRPI0306684B1 (pt) | Método e aparelho de codificação de um sinal de imagem e método e aparelho de decodificação de um sinal de imagem | |
| BRPI0307197B1 (pt) | Método de compensação de movimento, método de codificação de imagem e método de decodificação de imagem | |
| BRPI0307119B1 (pt) | Método e aparelho de decodificação de imagem móvel | |
| JP2006187039A (ja) | 動画像符号化方法および動画像復号化方法 |