PT1098529E - Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo - Google Patents

Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo Download PDF

Info

Publication number
PT1098529E
PT1098529E PT204184T PT00204184T PT1098529E PT 1098529 E PT1098529 E PT 1098529E PT 204184 T PT204184 T PT 204184T PT 00204184 T PT00204184 T PT 00204184T PT 1098529 E PT1098529 E PT 1098529E
Authority
PT
Portugal
Prior art keywords
signal
motion vector
macroblock
motion
register
Prior art date
Application number
PT204184T
Other languages
English (en)
Inventor
Motoki Kato
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26406823&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=PT1098529(E) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sony Corp filed Critical Sony Corp
Publication of PT1098529E publication Critical patent/PT1098529E/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • H04N7/54Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal the signals being synchronous
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh

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)

Description

1
DESCRIÇÃO "MÉTODO PARA CODIFICAR E DESCODIFICAR VETORES DE MOVIMENTO E RESPETIVO DISPOSITIVO E MÉTODO PARA CODIFICAR E DESCODIFICAR SINAIS DE IMAGEM E RESPETIVO DISPOSITIVO"
Campo técnico A presente invenção refere-se a um método para a determinação (cálculo) de vetores de movimento diferenciais e a um elemento de determinação (cálculo) de uma diferença de vetores de movimento, para a determinação (cálculo) de uma diferença entre vetores de movimento por meio da previsão de compensação da imagem em movimento, um método para a determinação do vetor de movimento reconstruído a partir da diferença e a um elemento para a determinação do vetor de movimento reconstruído a partir da diferença e a um dispositivo de codificação de uma imagem em movimento e a um dispositivo de descodificação de uma imagem em movimento, destinados a codificar e descodificar um sinal de imagem em movimento, à qual a determinação de diferenças e a determinação de vetores de movimento reconstruídos são respetivamente aplicados. Técnica de base
No caso da digitalização de um sinal de uma imagem em movimento para gravar e transmitir dados digitais assim obtidos, dado que a quantidade dos seus dados se torna demasiadamente grande, é implementada a codificação (compressão) dos dados. Como sistema de codificação representativo existe uma codificação preditiva de compensação do movimento. 0 princípio da previsão de compensação do movimento é mostrado na Fig . 9. Na Fig .9, a codificação preditiva de compensação do movimento é um método, que utiliza a 2 correlação numa direção baseada no momento de um sinal de imagem. Este método prevê uma imagem atualmente entrada (imagem do quadro atual), a partir de um sinal de imagem conhecido, já descodificado e reproduzido (sinal de imagem do quadro passado) para movimentar o sinal de imagem conhecido, descodificado e reproduzido (sinal de imagem do quadro passado), em correspondência com o movimento do sinal, para transmitir apenas informação de movimento (vetor de movimento MV) desse momento e informação de erro preditivo nesse momento, comprimindo assim a quantidade de informação necessária para codificação.
Como representativo dos métodos de codificação e descodificação preditiva de compensação de movimento descritos acima, existe o chamado MPEG 1 (Moving Picture Expert Group 1 Grupo de Peritos de Imagem em Movimento 1) . Este MPEGl é um nome popular do sistema de codificação de imagens em movimento, que tem progredido no WG (Working Group - Grupo de Trabalho) 11 da SC (Sub Committee - Subcomissão) 29 do JTC (Joint Technical Committee - Comissão Técnica Conjunta) 1 da chamada ISO (International Standardization Organization - Organização Internacional de Normalização) e da IEC (International Electrotechnical Commission - Comissão Eletrotécnica Internacional). 0 MPEGl possui processamento de codificação intraquadros e interquadros e a codificação preditiva de compensação de movimento é usada no caso do processamento de codificação interquadros. Um exemplo de previsão de compensação de movimento atual está representado na Fig.10. Na Fig.10, na previsão da compensação de movimento atual, um quadro (imagem) é dividido em pequenos blocos (chamados macroblocos (MB) e cada um deles é constituído por 16 linhas x 16 pixéis), para se executar a codificação 3 preditiva de compensação do movimento em unidades desses pequenos blocos. No exemplo da Fig.10, estão ilustrados, como previsão de compensação de movimento no caso do processamento de codificação interquadros, a previsão avançada entre, por exemplo o quadro passado, presente no passado quanto ao ponto no tempo e o quadro presente, e a previsão retrógrada entre, por exemplo, o atual quadro futuro, no futuro quanto ao ponto no tempo e o quadro presente.
Um exemplo mais prático de compensação do movimento no momento presente é apresentado na Fig.ll. Inicialmente, como processamento de primeira fase, a imagem P (a ser codificada), indicada por P na figura a saltar sobre diversas imagens, é preditivamente codificada por meio da utilização da imagem I, indicada por I na figura, ou qualquer outra imagem P. Tal operação de codificação preditiva é executada ciclicamente. Então, como processamento da segunda fase, imagens B, indicadas por B na figura, colocadas entre as imagens P, as imagens I ou entre sa imagens P e as imagens I, são codificadas preditivamente de forma sequencial, a partir da imagem P ou da imagem I, antes e depois dessas imagens B. Deve notar-se que a imagem I é uma imagem codificada intraquadro, a qual é preparada sem utilização da compensação de movimento. Além disso, as setas (com exceção da seta, que indica direções de tempo t) na Fig. 11, indicam direções de previsões de movimento.
Para a compensação do movimento no MPEG1 existem quatro tipos de modos, descritos abaixo em unidades de macroblocos. Nomeadamente, existem: 4 o modo de previsão a partir de um quadro presente no passado em termos de ponto no tempo, como primeiro modo de compensação de movimento (modo preditivo avançado); o modo de previsão a partir de um quadro presente no futuro em termos de ponto no tempo, como segundo modo de compensação de movimento (modo preditivo retrógrado); o modo de previsão linear, a partir dos quaqdros, tanto passado como futuro, como terceiro modo de compensação de movimento (modo preditivo bidirecional) (isto é, blocos preditivos do quadro passado e blocos preditivos do quadro futuro são submetidos a um cálculo do valor médio de cada pixel); e o modo, que não tem nenhuma compensação de movimento, como quarto modo de compensação de movimento (isto é, modo intraquadro).
Entre estes quatro tipos de modos de compensação de movimento, na imagem P, um código ótimo, de entre os primeiro e quarto modos de compensação do movimento, é escolhido em unidades de macroblocos. Nesse momento, quando o quadro passado, a que se faz referência no momento da previsão de compensação de movimento em relação à imagem do quadro atual, existe um quadro. Além disso, na imagem B, é escolhido um modo ótimo de entre o primeiro e o quarto modos de compensação de movimento em unidades de macrobloco. Nesse momento, quando o quadro passado e o quadro futuro, a que se faz referência no momento da previsão de compensação do movimento em relação ao quadro atual, existe para cada um quadro respetivo.
Na imagem P e na imagem B, como vetor de movimento em unidades do macrobloco, existe em previsão, no primeiro 5 modo de compensação do movimento, um vetor de movimento, que faz referência ao quadro passado. Na previsão do segundo modo de compensação do movimento, existe um vetor de movimento, que faz referência ao quadro futuro.
Na previsão, no terceiro modo de compensação do movimento, existe um vetor de movimento, que faz referência simultânea e respetivamente aos quadros passado e futuro.
No MPEG1, os vetores de movimento fornecidos em unidades desses macroblocos são submetidos à determinação (cálculo) das diferenças, por meio de um elemento de determinação (cálculo) apresentado na Fig. 12, através da utilização do facto de as informações de vetores de movimento, fornecidas em unidades de macroblocos, terem uma correlação espacial elevada e a informação diferencial assim obtida é transmitida.
Num sentido mais prático, nesse elemento de determinação de diferenças, são fornecidos ao terminal 404 sinais de modo de compensação de movimento, dados como quatro tipos de modos de compensação de movimento de entre o primeiro e o quarto e ao terminal 401 é fornecido um sinal de vetor de movimento atualmente a entrar. O sinal de vetor de movimento atualmente a entrar é enviado para o terminal comum do comutador 40 6 e para o terminal de entrada de adição do circuito de entrada circuito diferencial 405, sendo o sinal do modo de compensação de movimento enviado para o comutador 403. O terminal selecionado (comutado) a do comutador 406, é ligado ao terminal de entrada do registo 402a para o vetor de referência de quadro passado do grupo do registo 402 e o terminal selecionado b é ligado ao terminal de entrada do registo 402b para o vetor de referência do quadro futuro do 6 grupo do registo 402. Além disso, o terminal de saida do registo 402a para o vetor de referência do quadro passado do grupo do registo 402, é ligado ao terminal selecionado a do comutador 407 e o terminal de saida do registo 402b para o vetor de referência do quadro futuro é ligado ao terminal selecionado b do comutador 407. Estes comutadores 405 e 407 são de uma estrutura tal, que qualquer um dos terminais selecionados a e b é selecionado de acordo com o sinal de comutação do registo S401 emitido pelo comutador 403, ao qual é fornecido o sinal de modo de compensação de movimento. Uma saida do comutador 407 é enviada para o terminal de entrada de subtração do circuito diferencial 405.
Consequentemente, o circuito diferencial 405 recebe uma diferença entre o sinal de vetor de movimento S402, que foi lida através do comutador 407, vinda do grupo do registo 402, de acordo com o sinal de comutação do registo S401, enviado do comutador 403 e o sinal de vetor de movimento do terminal 401. Uma diferença, determinada pelo circuito diferencial 405, é enviada pelo terminal 408, sob a forma de um vetor de movimento diferencial vindo do circuito de determinação diferencial. O sinal de vetor de movimento entrado no momento é sobreposto aos registos 402a ou 402b designados pelo sinal de comutação do registo S401 através do comutador 406 e é de novo guardado neles.
Conforme referido acima, no elemento de determinação de diferenças, os vetores de movimento, que fazem referência a quadros passados e os vetores de movimento, que fazem referência a quadros futuros, são independentemente 7 submetidos a processamento para determinação das diferenças.
Um exemplo mais prático do funcionamento do elemento de determinação de diferenças acima descrito é apresentado na Fig. 13. Nesta figura, o componente x de (X, Y) do vetor de movimento, indica movimento numa direção horizontal a e o componente y dos mesmos, indica movimento numa direção a vertical. Os valores positivos são atribuídos a movimentos espacialmente dirigidos na direção para a direita e na direção descendente e os valores negativos são atribuídos a movimentos na direção para a esquerda e na direção ascendente. Neste exemplo (0, 0) é atribuído como um valor inicial no momento da determinação da diferença. Além disso, nesta figura, FMV representa o vetor de movimento do quadro passado e BMV representa o vetor de movimento do quadro futuro. Adicionalmente, nesta figura, o modo (1) representa o modo de compensação de movimento de previsão avançada, o modo (2) representa o modo de compensação de movimento de previsão retrógrada e o modo (3) representa o modo de compensação de movimento de previsão bidirecional.
Nomeadamente, na Fig. 13, por exemplo quando o modo de compensação de movimento do bloco pequeno da extremidade esquerda da figura é o modo (3) , o vetor de movimento do quadro passado FMV é (10, 10) e o vetor de movimento do quadro futuro BMV é (8, 8), se o vetor de movimento no bloco pequeno do modo (1) adjacente ao lado direito for (8, 5) , o vetor de movimento diferencial torna-se igual a (-2, -5) de (8, 5) - (10, 10) e se o vetor de movimento no bloco pequeno do modo (1) adjacente ao lado direito for (7, 6), o vetor de movimento diferencial torna-se igual a (-1, 1) de (7, 6) - (8,5) . Além disso, se o vetor de movimento no bloco pequeno de modo (2) adjacente ao lado direito for (9,10), o vetor de movimento diferencial torna-se igual a (1, 2) de (9, 10) - (8, 8) e se os vetores de movimento entrados no bloco pequeno do modo (3) adjacente ao lado direito forem (5, 4) e (8, 9), os respetivos vetores de movimento diferenciais tornam-se iguais a (-2, -2) de (5, 4) - (7, 6) e (-1, -1) de (8, 9) - (9, 10) .
Um elemento de determinação inversa de diferenças, destinado a reconstruir o vetor de movimento a partir do vetor de movimento, que foi representado por um vetor diferencial, o qual é uma configuração complementar do elemento de determinação de diferenças apresentado na Fig. 13, é mostrado na Fig. 14.
Num sentido mais prático, no elemento de determinação inversa de diferenças, são fornecidos ao terminal 414 sinais de modo de compensação de movimento, dados como quatro tipos dos primeiro ao quarto modos de compensação de movimento e ao terminal 408 é fornecido o sinal de vetor de movimento diferencial atualmente introduzido. O sinal de vetor de movimento diferencial é enviado para um terminal de entrada de adição do circuito de adição 409 e o sinal de modo de compensação de movimento é enviado para o comutador 413.
Além disso, o terminal a selecionado do comutador 411 está ligado ao terminal de saida do registo 410a para o vetor de referência de quadro passado do grupo do registo 410 e o terminal b selecionado está ligado ao terminal de saida do registo 410b para o vetor de referência de quadro futuro. Esse comutador 411 tem uma estrutura tal que qualquer um dos terminais selecionados a e b é selecionado de acordo com o sinal de comutação do registo S403, emitido pelo comutador 413 alimentado com o sinal de modo de compensação 9 de movimento. O terminal comum do comutador 411 está ligado ao outro terminal de entrada do circuito de adição 409.
Consequentemente, o circuito de adição 409 recebe um sinal de adição de vetor de movimento S404, que foi lido através do comutador 411 a partir do grupo do registo 410 de acordo com o sinal de comutação do registo S403 emitido pelo comutador 413 e o sinal de vetor de movimento diferencial do terminal 408. Uma saida de adição do circuito de adição 409 é enviada a partir do terminal 415, sob a forma de um sinal de vetor de movimento reconstruído do elemento de determinação diferencial inversa.
Além disso, o sinal de vetor de movimento reconstruído do circuito de adição 409 é também enviado para o terminal comum do comutador 412. Este comutador 412 tem uma estrutura tal que qualquer um dos terminais a e b selecionado é escolhido com base no sinal de comutação do registo S403. 0 terminal a selecionado é ligado ao registo 410a para o vetor de referência de quadro passado do grupo do registo 410 e o terminal b selecionado é ligado ao registo 410b para o vetor de referência de quadro futuro.
Por essa razão, a informação acerca do vetor de movimento reconstruído é sobreposta, através do comutador 412, ao registo 410a ou 410b, designado pelo sinal de comutação do registo S403 e é de novo guardada nele.
No entanto, uma vez que o MPEG1 acima referido é um método de codificação de imagem em movimento adequado para uma imagem não entrelaçada, não se pode dizer que o MPEG1 seja necessariamente adequado para a codificação de sinais entrelaçados, como seja a do chamado sistema NTSC ou 10 sistema PAL, etc., que é um sinal de televisão. Isso constituía um problema.
Por essa razão, em anos recentes, foi proposto um sistema para implementar a eficácia de uma codificação preditiva de compensação do movimento do sinal entrelaçado no MPEG2, como sucessor do MPEG1. Neste sistema, conforme se mostra na Fig. 15, é adotado um método de execução adaptativa de comutação entre a unidade para o tratamento da imagem no quadro e da mesma no campo. Na Fig.15, fr indica um quadro, fi indica um campo, a seta FRP indica previsão com base no quadro e a seta FIP indica previsão com base no campo.
Nesta altura, no MPEG2, no caso em que a estrutura da imagem é um quadro é adotado um método de comutação adaptativa, se a previsão de compensação de movimento for executada por macroblocos com base num quadro ou macroblocos com base num campo.
Além disso, no MPEG2, é adotado um método, no qual cada um dos macroblocos é dividido em áreas de 16 pixéis x 8 linhas, da porção superior e da porção inferior, conforme a ocasião exigir, para executar independentemente a previsão de compensação de movimento nas áreas respetivas.
Neste momento, o número de vetores de movimento, fornecido em unidades de macroblocos, é conforme segue. Nomeadamente na previsão anteriormente descrita do primeiro modo de compensação de movimento, existem um ou mais vetores de movimento, que fazem referência a quadros (ou campos) passados; na previsão do segundo modo de compensação do movimento, existem um ou mais vetores de movimento, que fazem referência a quadros (ou campos) futuros; e na previsão do terceiro modo de compensação de movimento, 11 existem um ou mais vetores de movimento, que fazem referência simultaneamente a respetivos quadros (campos) passados e futuros. 0 número de vetores de movimento, nos respetivos modos de compensação do movimento, é variado em unidades de macroblocos.
Conforme declarado acima, como método de previsão de compensação de movimento no MPEG2, são propostos sistemas mais complexos do que no MPEGl. No seguimento disso, resultam dai tipos aperfeiçoados de vetores de movimento atuais, quando comparados com o MPEGl. Nestas circunstâncias, apresentam-se dois problemas no tratamento desses vetores de movimento. 0 primeiro problema é, nomeadamente, que o método usado no MPEGl não pode ser aplicado na codificação do vetor de movimento. Por essa razão, têm sido apresentadas diversas propostas. Elas estão abertas à inspeção pública, por exemplo, nas P.32, P.44, P.145, P.148 do Modelo de Teste 4 do ISO-IEC/JTC1/SC29/WG11 MPEG93/225b (aberto em Fevereiro de 1993). Não se pode dizer, no entanto, que essas propostas suportem todos os modos de compensação do movimento e por isso têm sido, até agora, insuficientes. Além disso, essas propostas têm a desvantagem de não poderem resolver o segundo problema, descrito abaixo. 0 segundo problema reside no facto de o tratamento de macroblocos ignorados não ser claramente apresentado.
Aqui, os macroblocos ignorados no MPEGl são macroblocos conforme caracterizados abaixo: São nomeadamente, caracterizados por: 12 em primeiro lugar, o macrobloco ignorado na imagem P Não há nenhum sinal de erro de compensação de movimento a ser transmitido (condição a_le), o modo de compensação do movimento é de previsão avançada (condição a_2e) e o valor do vetor de movimento é zero (condição a 3e); em segundo lugar, macrobloco ignorado na imagem B não há nenhum sinal de erro de compensação de movimento a ser transmitido (condição b_le), o modo de compensação do movimento é o mesmo que o do macrobloco transmitido imediatamente antes (condição b_2e) e o valor do vetor de movimento, que é transformado num valor diferencial, obtido pelo elemento de determinação diferencial apresentado na Fig. 12, é zero (condição b 3e).
Além disso, no descodificador do MPEG1, os macroblocos ignorados serão tratados, como segue:
Nomeadamente no MPEG1, os macroblocos ignorados são tratados de tal forma que em primeiro lugar, o processamento dos macroblocos ignorados na imagem P é que o sinal de erro de compensação de movimento, que foi transmitido, seja considerado zero (condição a_ld), o modo de compensação do movimento seja forçado a ser de previsão avançada (condição a_2d) e o valor do vetor de movimento seja colocado em zero (condição a_3d), 13 em segundo lugar, o processamento dos macroblocos ignorados na imagem B seja que o sinal de erro de compensação de movimento, que foi transmitido seja considerado como sendo zero (condição b_ld), o modo de compensação do movimento de um macrobloco recebido imediatamente antes, tenha de ser copiado (condição b_2d) e o vetor de movimento de um macrobloco recebido imediatamente antes tenha de ser copiado (condição b 3d) .
Simplesmente e por outras palavras, no MPEG1, o processamento da codificação do macrobloco ignorado na imagem P é uma cópia de uma imagem passada e o processamento de codificação de macroblocos ignorados na imagem B é uma cópia do macrobloco adjacente, à esquerda, descodificado imediatamente antes dentro do mesmo quadro.
Conforme descrito acima, no MPEG1, no que se refere ao macrobloco que seja um macrobloco ignorado, o codificador não transmite quaisquer dados. Conforme se disse acima, o macrobloco ignorado é importante para a tecnologia de codificação, tendo em vista o aperfeiçoamento da eficácia da codificação. Por exemplo, no caso em que, mesmo que a imagem a ser processada seja uma sequência de imagens em movimento, o seu conteúdo seja uma cena onde sejam sucessivamente apresentadas imagens paradas (imagens com um movimento muito lento), a maioria dos macroblocos pode ser tratada como blocos ignorados. No caso extremo pode ser empregue um procedimento para codificar o primeiro quadro no âmbito da imagem sem compensação de movimento, para transmitir a informação codificada de quadro, permitindo assim aos macroblocos do segundo quadro e dos quadros que se sucedem a ele, que sejam tratados quase como macroblocos 14 ignorados. Neste caso pode ser esperada uma grande melhoria na eficácia da codificação.
Com base nos factos acima descritos, é necessário um método para codificar o vetor de movimento na previsão de compensação de movimento do MPEG2 anteriormente descrito, no qual o tratamento de macroblocos ignorados também seja tomado em consideração. Não obstante, no caso dos métodos de codificação de vetores de movimento convencionalmente propostos para o MPEG2, o tratamento dos macroblocos ignorados não é tomado em consideração. Por essa razão, esses métodos têm a desvantagem de falhar o tratamento dos macroblocos ignorados.
Por exemplo, um exemplo do problema irá ser agora descrito, com base na configuração do elemento de determinação de diferenças da Fig. 16. Este é o método descrito no Modelo de Teste 4 da IS0-IEC/JTC/SC29/WG11 MPEG93/225b do material anteriormente descrito.
Na Fig. 16, é fornecida ao terminal 504 informação de modo de previsão avançada, retrógrada ou bidirecional como sinal de modo de compensação de movimento, informação indicativa de previsão de quadro ou previsão de campo etc., como sinal de tipo de previsão, que irá ser descrita mais adiante, e informação indicativa da estrutura do quadro, da estrutura do campo ou progressiva, como sinal de estrutura de imagem e é-lhe ainda fornecida, além das acima, informação indicativa do primeiro campo (campo 1, isto é, por exemplo campo impar) ou do segundo campo (campo 2, isto é, por exemplo campo par) com o sinal de paridade de campo do vetor de movimento, informação indicativa, de um modo semelhante, do primeiro campo ou do segundo campo como 15 sinal de paridade do campo prevista e informação indicativa da imagem P ou da imagem B, como sinal de tipo de codificação de imagem. Adicionalmente, o terminal 501 recebe um sinal de vetor de movimento atualmente a entrar. O sinal, que foi enviado para o terminal 504, é enviado para o comutador 503. Além disso, o sinal de vetor de movimento entrado no momento é enviado para o terminal comum 506 através do conversor de escala 509, para implementação de uma escala de conversão B, predeterminada para o vetor de movimento entrado no momento, com base no sinal de indicação de escala SCB vindo do comutador 503 e é enviado diretamente para o terminal de entrada de adição do circuito diferencial 506. O comutador 506 selecionou os terminais a a d. Selecionado o terminal a, é ligado ao terminal de entrada da memória do registo PMV1 do grupo de memórias do registo 502, para armazenamento do vetor de movimento, que irá ser escrito mais à frente; selecionado o terminal b, é ligado ao terminal de entrada da memória do registo PMV2 do grupo do registo 502; selecionado o terminal c, é ligado ao terminal de entrada da memória do registo PMV3; e selecionado o terminal d, é ligado ao terminal da memória do registo PMV4. Além disso, o terminal de saida da memória do registo PMV1 do grupo de memórias do registo 502 destinado a guardar o vetor de movimento, é ligado ao terminal a selecionado do comutador 507; o terminal de saida da memória do registo PMV2 é ligado ao terminal b selecionado do comutador 507; o terminal de saida da memória do registo PMV3 é ligado ao terminal selecionado c do comutador 507; e o terminal de saida da memória do registo PMV4 é ligado ao terminal d selecionado do comutador 507. Esses comutadores 506 e 507 têm uma estrutura tal, que qualquer um dos 16 terminais selecionados a a d, pode ser selecionado de acordo com um sinal de comutação do registo, enviado do comutador 503.
Uma saida do comutador 507 é enviada para o terminal de entrada de subtração do circuito diferencial 505, através do conversor de escala 510, para implementação de uma escala de conversão A predetermina, com base no sinal de indicação de escala SCA do comutador 503. O circuito diferencial 505 recebe uma diferença entre a informação vinda do conversor de escala 510 e o vetor de movimento vindo do terminal 503. A diferença obtida por esse circuito diferencial 505 é enviada, a partir do terminal 508, como um sinal de vetor de movimento, diferente do do elemento de determinação de diferenças.
Mais ainda, a informação do vetor de movimento entrado no momento é sobreposta, através do conversor de escala 509 e através do comutador 506, a uma das memórias do registo PMV1 - PMV4, designada pelo sinal de comutação do registo e é de novo guardada ai.
Conforme se disse acima, no elemento de determinação de diferenças entre vetores de movimento apresentado na Fig. 16, o grupo de memórias do registo 502 é constituído por quatro memórias do registo PMV1 - PMV4, desitinadas a guardar o sinal de vetor de movimento a ser preparado. 0 funcionamento do grupo de memórias do registo 502 para guardar o vetor de movimento irá ser agora descrito.
No Modelo de Teste 4 da ISO-IEC/JTC/SC29/WG11 MPEG93/225hr no caso da imagem P, foi proposto utilizarem-se respetivas memórias do registo PMV1 - PMV4 do grupo de memórias do registo 502 da Fig. 16, de uma maneira que é descrita abaixo. 17
Nomeadamente, por exemplo, informação de vetor de movimento avançado, na qual a imagem de referência (imagem que serve como referência da imagem preditiva) é o primeiro campo e o campo previsto em relação a ele (campo que deve ser codificado desse momento em diante) é o primeiro campo, que é guardado na memória do registo PMV1. Além disso, a informação do vetor de movimento avançado, no qual a imagem de referência é o segundo campo e o campo previsto é o primeiro campo, é guardada na memória do registo PMV2. A informação do vetor de movimento avançado, na qual a imagem de referência é o primeiro campo e o campo previsto é o segundo campo, é guardada na memória do registo PMV3. Adicionalmente, a informação de vetor de movimento avançado relativa à imagem é o segundo campo e o campo previsto é o segundo campo a ser guardado na memória do registo PMV4. Nomeadamente, na imagem P, a relação entre sinais de vetor de movimento e respetivas memórias do registo, onde se encontram guardados, foi determinada por meio de combinações de imagens de referência e campos a serem previstos.
Por outro lado, no Modelo de Teste 4 IS0-IEC/JTC1/SC29/WG11 MPEG3/225b, no caso da imagem B, foi proposto usar-se as respetivas memórias do registo PMV1 - PMV4 da Fig.16 de uma maneira, que é descrita abaixo.
Nomeadamente, por exemplo, duas memórias do registo PMV são preparadas para o vetor de movimento avançado. Por exemplo, informação do vetor de movimento avançado, na qual a imagem de referência é o primeiro campo, é guardada na memória do registo PMV1 e a informação do vetor de movimento avançado, na qual a imagem de referência é o segundo campo, é guardada na memória do registo PMV2. Além disso, duas memórias do registo são também preparadas para o vetor de movimento retrógrado: A informação do vetor de movimento 18 retrógrado, na qual a imagem de referência é o primeiro campo é guardada na memória do registo PMV3 e a informação do vetor de movimento retrógrado, em que a imagem de referência é o segundo campo, é guardada na memória do registo PMV4. Nomeadamente, na imagem B, independentemente de se o campo a ser previsto é o primeiro campo ou o segundo campo, os sinais de vetores de movimento, em que as imagens de referência e a direção de previsão são as mesmas, foram guardados nas mesmas memórias do registo.
No elemento de determinação de diferenças apresentado na Fig.16, ao permitir que o vetor de movimento entrado no momento seja um vetor diferencial, é empregue uma abordagem para retirar o valor da memória do registo PMV correspondente a esse vetor de movimento (isto é, a PMV, na qual um vetor de movimento, que possua uma paridade com a imagem de referência e com o campo previsto, que seja a mesma que a do vetor de movimento, se encontra guardado, no caso de esse vetor de movimento ser usado para codificação da imagem P, e a PMV, na qual um vetor de movimento com uma paridade com a imagem de referência e uma direção de previsão, que sejam as mesmas que as do vetor de movimento, se encontra guardado, no caso de esse vetor de movimento ser usado para a codificação da imagem B) para implementar no mesmo uma escala de conversão predeterminada A, por meio do conversor de escala 510, conforme as necessidades da ocasião (de acordo com o sinal de indicação de escala SCA), para depois disso executar o cálculo, entre o valor convertido pela escala A e o vetor de movimento entrado no momento acima referido, por intermédio do circuito diferencial 505. Continuando, a conversão de escala B é implementada para o valor do vetor de movimento entrado no momento pelo conversor de escala 509, conforme as necessidades de ocasião, para depois disso se sobrepor a qualquer uma das memórias do registo PMV selecionada e 19 sujeita a referência no momento da determinação da vetor de movimento diferencial, conforme acima descrito embora não ilustrado, para voltar a ser guardado nela. 0 elemento de determinação de diferenças é construido desta forma. A Fig.17 mostra um elemento de determinação inversa de diferenças, que corresponde ao elemento de determinação de diferenças para o vetor de movimento da Fig.16.
No elemento de determinação inversa de diferenças apresentado na Fig.17, ao terminal 524 é fornecido o sinal de modo de compensação de movimento, o sinal de tipo de previsão, o sinal de estrutura de imagem, o sinal de paridade de campo do vetor de movimento, o sinal de paridade de campo previsto e o sinal de tipo de codificação de imagem. Além disso, é fornecido ao terminal 518 o sinal do vetor de movimento diferencial entrado no momento. A informação, que passa aravés do terminal 524, é enviada para o comutador 523 e o vetor de movimento diferencial é enviado para um terminal de entrada de adição do circuito de adição 519.
Além disso, o terminal selecionado a do comutador 521 é ligado ao terminal de saida da memória do registo PMV1 do grupo de memórias do registo que guarda vetores de movimento 520, para execução de um armazenamento semelhante ao do grupo de memórias do registo que guarda vetores de movimento 502 da Fig.16: o terminal selecionado b é ligado ao terminal de saida da memória do registo PMV2; o terminal selecionado c é ligado ao terminal de saida da memória do registo PMV3; e o terminal d é ligado ao terminal de saida da memória do registo PMV4. Esse comutador 521 tem uma estrutura tal, que qualquer um dos terminais selecionados, 20 a a d é escolhido de acordo com o sinal de comutação do registo, emitido pelo comutador 523. O terminal comum desse comutador 521 está ligado a outro terminal de entrada de adição do circuito de adição 519, através do conversor de escala 529, para implementar uma conversão de escala predeterminada C para um sinal emitido com base no sinal de indicação de escala SCC vindo do comutador 123.
Consequentemente, o circuito de adição 519 recebe uma adição do sinal de vetor de movimento, passado através do comutador 521, vindo do grupo de memórias do registo 520 de acordo com o sinal de comutação do registo enviado pelo comutador 523 e depois através do conversor de escala 529 e do sinal de vetor de movimento diferencial vindo do terminal 518. Uma sarda de adição do circuito de adição 519 é enviada do terminal 525 como vetor de movimento reconstruído do elemento de determinação inversa de diferenças.
Continuando, o sinal de vetor de movimento reconstruído vindo do circuito de adição 519 é enviado também para o terminal comum do comutador 522, através do conversor de escala 530, para implementação de uma escala de conversão predeterminada D para um sinal emitido com base no sinal indicador de escala SCD, do comutador 523. Esse comutador 522 tem uma estrutura tal, que qualquer um dos terminais selecionados a - d é selecionado com base no sinal de comutação do registo. Neste comutador 522, o terminal selecionado a é ligado ao terminal de entrada da memória do registo PMV1 do grupo de memórias do registo 520, o terminal selecionado b é ligado ao terminal de entrada da memória do registo PMV2, o terminal selecionado c é ligado ao terminal de entrada da memória do registo PMV3 e o 21 terminal selecionado d é ligado ao terminal de entrada da memória do registo PMV4.
Portanto, a informação do vetor de movimento reconstruído é sobreposta e é de novo guardada em qualquer uma das memórias do registo PMV1 - PMV4 designada pelo sinal de comutação de registo, através do comutador 522.
Nomeadamente, no elemento de determinação inversa de diferenças da Fig.17, o valor guardado na memória do registo PMV correspondente ao vetor de movimento diferencial entrado (isto é, a PMV em que são guardados os vetores de movimento reconstruídos, que tenham valores de paridade da imagem de referência e campo previsto, que sejam os mesmos que os do vetor de movimento diferencial, no caso do vetor de movimento diferencial ser usado para a descodificação da imagem P, ou a PMV em que o vetor de movimento reconstruído, que tenha a paridade da imagem de referência e a direção de previsão, que sejam as mesmas que as do vetor de movimento diferencial, é guardada, no caso do vetor de movimento diferencial ser usado para a descodificação da imagem B) , que corresponde ao vetor de movimento diferencial entrado, é extraído para implementar a conversão de escala C para esse valor, por meio da utilização do conversor de escala 529, conforme as necessidades da ocasião posterior, para execução de um cálculo de adição do valor de escala convertido e do vetor de movimento diferencial entrado, através da utilização do circuito de adição 519, reconstruindo assim vetores de movimento correspondentes ao vetor de movimento original. 0 vetor de movimento reconstruído é submetido à conversão de escala D pelo conversor de escala 530 conforme as necessidades de ocasião posteriores, para sobrescrever e guardar de novo o valor convertido da escala numa das memórias do registo PMV1 - PMV4 selecionada e sujeita a 22 referência no momento da reconstrução do vetor de movimento. 0 elemento de determinação inversa de diferenças é construído desta forma.
Um exemplo de funcionamento do elemento de determinação de diferenças da Fig.16, na imagem B, será agora descrito com referência à Fig.18.
Na Fig.18, no que se refere ao macrobloco (bloco pequeno) MB1, assume-se que não existe nenhum sinal de erro de previsão a ser transmitido (está satisfeita a condição b_le acima referida) . Além disso, os macroblocos MBO e MB1 são assumidos como tendo o mesmo modo de previsão avançada (está satisfeita a condição b_2e acima referida).
Nesta altura, assume-se que, como primeiro exemplo, a estrutura da imagem é a estrutura de campo e a paridade de campo prevista é o primeiro campo (o campo previsto é o primeiro campo) . 0 tipo de previsão é baseado no Campo de 16x8, no caso de respetivamente se executar a previsão independentemente, relativamente à área de 16 pixéis x 8 linhas da porção superior e à área de 16 pixéis x 8 linhas da porção inferior. No exemplo da Fig.18, por exemplo, o vetor de movimento da porção superior do macrobloco MBO é (5, 1) d», o vetor de movimento da porção inferior do macrobloco MBO é (5, 5)(2), o vetor de movimento da porção superior do macrobloco MB1 é (5, 5) o>, o vetor de movimento da porção inferior do macrobloco MB1 é (5, 5) (4), o vetor de movimento da porção superior do macrobloco MB2 é (5, 5) <5) e o vetor de movimento da porção inferior do macrobloco MB2 é (5, 5) (6) .
Além disso, assume-se que todos os vetores de movimento dos macroblocos MBO a MB1 fazem referência ao mesmo primeiro campo. Neste caso, uma vez que a paridade da imagem de 23 referência e a direção da previsão são as mesmas relativamente a todos os vetores de movimento, as diferenças entre os vetores de movimento guardados na memória do registo PMV1 da Fig.16 são extraídas para transmitir o vetor de movimento diferencial. Assume-se que (0, 0) se encontra guardado como valor inicial na memória do registo PMV1 da Fig.16.
Nomeadamente, no caso do exemplo da Fig.18, no macrobloco MBO, obtém-se (5, l)(i> - PMV1 = (5, 1), que é a diferença entre o vetor de movimento (5, 1) (i> da porção superior e o valor inicial (0, 0) da memória do registo PMV1. O valor assim obtido é enviado como vetor de movimento diferencial da porção superior do MBO. O vetor de movimento (5, 1) (ι> é guardado na memória do registo PMV1. Continuando, obtém-se (5, 5) (2) - PMV1 = (0, 4), que é uma diferença entre o vetor de movimento (5, 5) (2> da porção inferior e o valor (5, 1) da memória do registo PMVl. O valor assim obtido é enviado como vetor de movimento diferencial da porção inferior. O vetor de movimento (5, 5) (2> é guardado na memória do registo PMVl. Então, por meio da extração de modo semelhante de uma diferença também em relação ao macrobloco MB1, todas as vetores de movimento diferenciais se tornam iguais a zero (0, 0) no macrobloco MB1. (É satisfeita a condição b_3e acima referida).
Continuando, como segundo exemplo, quando a condição b_le e a condição b_2e estejam satisfeitas, conforme anteriormente descrito, a estrutura da imagem é assumida como sendo uma estrutura de quadro. O tipo de previsão é assumido como sendo uma previsão baseada num Campo para, respetivamente se prever, independentemente, o primeiro campo e o segundo campo do macrobloco MB (o campo previsto é assumido como sendo o primeiro campo e o segundo campo). Ainda mais, é assumido que o primeiro campo do macrobloco MBO é (5, 1) <ι>, o vetor de movimento do segundo campo é (5, 5) p>, o vetor de movimento do segundo campo do macrobloco MB1 é (5, 5) p>, o vetor de movimento do segundo campo é (5, 5)p), o vetor de movimento do segundo campo do macrobloco MB2 é (5, 5) p> e o vetor de movimento do segundo campo é (5, 5) p> .
Adicionalmente, todos os vetores de movimento do macrobloco MBO e do macrobloco MB1 são assumidos como fazendo referência ao mesmo primeiro campo. Também neste caso, uma vez que a paridade da imagem de referência e a direção da previsão são as mesmas relativamente a todos os vetores de movimento, as diferenças entre os vetores de movimento guardados na memória do registo PMVl da Fig.16 são extraidos para transmitir o vetor de movimento diferencial. Assim, também neste exemplo o método de extração das diferenças é o mesmo que o da Fig.18. No macrobloco MB1 os vetores de movimento diferenciais tornam-se todos iguais a zero (0, 0) (é satisfeita a condição b_3e).
Dos factos conforme acima descritos, nos dois exemplos acima, de acordo com a regra do MPEG1, as condições b_le, b_2e e b_3e acima referidas são satisfeitas no macrobloco MB1. Consequentemente, assume-se agora que o codificador processou esse macrobloco MB1 como um macrobloco ignorado.
No entanto, nesse caso, essa é uma seleção errónea. Isso deve-se a que, do lado do descodificador, o processamento das condições b_ld e b_2d, acima referidas, é corretamente executado, mas é executada uma cópia, embora os vetores de movimento macroblocos MBO e MB1 sejam de facto diferentes. Nomeadamente, se o macrobloco MB1 for considerado como um macrobloco ignorado, no caso do exemplo anterior, muito embora o vetor de movimento (5, 1) (u da porção superior do macrobloco MBO e o vetor de movimento (5, 5) p> da porção 25 superior do macrobloco MB1 sejam diferentes, (5, 1) (u ^ (5, 5)o), é executada uma cópia do vetor de movimento do macrobloco MBO para o macrobloco MB1. Em resultado disso, a descodificação não é corretamente executada. Ainda mais, também neste caso do último exemplo, muito embora o vetor de movimento (5, 1) d) do primeiro campo do macrobloco MBO e o vetor de movimento (5, 5) (3) do primeiro campo do macrobloco MB1 sejam de facto diferentes, é executada uma cópia errónea.
Esse problema resulta do facto de, na técnica anterior, na imagem B, ao permitir-se que vetores de movimento no âmbito do mesmo macrobloco sejam transmitidos como vetores de movimento diferentes, a mesma memória do registo (PMV) ser utilizada duas ou mais vezes para atualizar o respetivo conteúdo.
Continuando, o facto de a mesma memória do registo (PMV) ser usada duas ou mais vezes em relação ao vetor de movimento, no âmbito do mesmo macrobloco, aumenta ainda mais o risco de problemas no lado do descodificador, conforme descrito abaixo. A Fig.19 mostra o funcionamento da reconstrução do vetor de movimento a partir dos vetores de movimento diferenciais, transmitidos relativamente à imagem B. Deve notar-se, neste exemplo, que a estrutura da imagem é estrutura de campo e os macroblocos MBO, MBl, MB2 são respetivamente codificados segundo o modo preditivo avançado, independentemente, na área dos 16 pixéis x 8 linhas da porção superior e na área dos 16 pixéis x 8 linhas da porção inferior. Adicionalmente, assume-se que a área de 16 pixéis x 8 linhas da porção superior e a área de 16 pixéis x 8 linhas 26 da porção inferior constituem ambas um único primeiro campo.
No exemplo da Fig.19, uma vez que a área da porção superior e a área da porção inferior têm a mesma paridade que a imagem de referência e a mesma direção de previsão, apenas é usada, por exemplo, a memória do registo PMV1, para que o conteúdo dessa memória do registo PMV1 varie dentro do mesmo macrobloco. Por essa razão, a fim de manter o vetor de movimento do macrobloco processado imediatamente antes, é necessário ter quatro memórias do registo adicionais (respetivamente, duas memórias do registo para cada um dos vetores avançados e retrógrados) exceto quanto às memórias do registo PMV. Deve notar-se que o método de manter o vetor de movimento do macrobloco imediatamente anterior, é também frequentemente executado tendo em vista a execução de correção de erros, etc. no lado do de scodificador.
Nomeadamente, na Fig.19, é assumido que, como vetores de movimento diferenciais, são obtidos, a partir da configuração da Fig.18, (5, 1)<η de vetor de movimento diferencial da porção superior do macrobloco MBO, (0, 4) (2> de vetor de movimento diferencial da porção inferior do macrobloco MBO, (0, 0) <3> de vetor de movimento diferencial da porção superior do macrobloco MB1, (0, 0) (4> de vetor de movimento diferencial da porção inferior do macrobloco MB1, (0, 0) (5) de vetor de movimento diferencial da porção superior do MB 2 e (0, 0) (5) de vetor de movimento diferencial da porção inferior do MB2. Além disso, é assumido que (0, 0) é guardado como valor inicial na memória do registo PMV1.
No caso do exemplo da Fig.19, no macrobloco MBO, é obtido (5, 1) (i) + PMV1 = (5, 1)A por meio da adição do vetor de 27 movimento diferencial (5, l)<i) da porção superior e do valor inicial (0, 0) da memória do registo PMV1, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1. Depois, na porção inferior do macrobloco MBO, é obtido (0, 4)(2) + PMV1 = (5, 5)b, por adição do vetor de movimento diferencial (0, 4) (2> da porção inferior e do vetor reconstruído no interior da memória do registo PMV1, como valor do vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1. De modo semelhante, no : macro bloco MB1, é obtido (0, 0) (3) + PMV1 = (5, 5)c , por meio de adição do vetor de movimento diferencial (0, 0) O) da porção superior e do vetor de movimento reconstruído (5, 5)B contido na memória do registo PMV1, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1. Ainda mais, na porção inferior deste macrobloco MB1, é obtido (0, 0) (4) + PMV1 = (5, 5) D , por meio de adição do vetor de movimento diferencial (0, 0) <4> da porção inferior e do vetor de movimento reconstruído (5, 5)c contido na memória do registo PMV1, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1.
Conforme se disse acima, uma vez que os vetores de movimento reconstruídos assim obtidos são sobrescritos sequencialmente na memória PMV1, o vetor de movimento reconstruído do macrobloco imediatamente anterior desaparece.
Conforme se disse acima, do lado do descodificador, para se manter o valor do vetor de movimento reconstruído no macrobloco MB imediatamente anterior, é adicionalmente necessário ter duas memórias do registo PMV em relação a uma direção de previsão e por exemplo, guardar os valores dos vetores de movimento (5, 1)A e (5, 5)B no macrobloco 28 MB0 e os valores dos vetores de movimento (5, 5)c e (5, 5)D no macrobloco MB1.
Conforme descrito acima, no método convencional de codificação de vetores de movimento para o MPEG2, não é tomado em consideração o tratamento do macrobloco ignorado. Por essa razão, esse método de codificação apresenta o problema de ser incapaz de tratar o macrobloco ignorado.
Além disso, no lado do descodif icador, para se manter o vetor de movimento do macrobloco imediatamente anterior, é necessário ter memórias do registo, para além das memórias PMV, possibilitando assim que seja complicada a configuração do elemento de determinação inversa de diferenças para os vetores (vetores de movimento diferenciais).
Adicionalmente, na técnica anterior, o controlo para a comutação entre memórias do registo PMV no elemento de determinação de vetores diferenciais e/ou no elemento de determinação inversa de vetores diferenciais é complicada, tendo como resultado o problema de a escala de hardware do comutador de memórias do registo PMV ser grande.
Descrição da invenção
Assim, volta-se a atenção para as desvantagens descritas acima onde a invenção é exposta no método de descodificação da reivindicação 1 e no dispositivo de descodificação correspondente da reivindicação 2. 29
Breve descrição dos desenhos A Fig.l é um diagrama de circuito, que mostra, em forma de blocos, a estrutura de tópicos da configuração de um codificador, utilizado no dispositivo de codificação de um sinal de imagem de acordo com a presente invenção. A Fig.2 é um diagrama de circuito, que mostra, em forma de blocos, a estrutura de tópicos do elemento de determinação de diferenças para o vetor de movimento, utilizado no dispositivo de codificação do sinal de imagem de acordo com a presente invenção. A Fig.3 é uma vista, que mostra memórias do registo, para explicar o elemento de determinação de diferenças e o elemento de determinação inversa de diferenças para o vetor de movimento, usados no dispositivo de codificação do sinal de imagem da presente invenção. A Fig.4 é um diagrama de circuito, que mostra, sob a forma de blocos, um elemento de avaliação de um macrobloco ignorado do codificador utilizado no dispositivo de codificação do sinal de imagem da presente invenção. A Fig.5 é um diagrama de circuito, que mostra, sob a forma de blocos, um descodificador utilizado no dispositivo de descodificação do sinal de imagem da presente invenção. A Fig.6 é um diagrama de circuito, que mostra, sob a forma de blocos, a estrutura de tópicos da configuração do elemento de determinação inversa de diferenças para os vetores de movimento utilizado no dispositivo de descodificação do sinal de imagem da presente invenção. 30 A Fig.7 é uma vista, destinada a explicar uma configuração mais prática da diferença de vetores no dispositivo de descodificação do sinal de imagem da presente invenção. A Fig.8 é uma vista destinada a explicar um exemplo atual para a reconstrução do vetor de movimento, a partir do vetor de movimento diferencial, no dispositivo de descodificação do sinal de imagem da presente invenção. A Fig.9 é uma vista destinada a explicar o principio da previsão de compensação do movimento. A Fig.10 é uma vista, destinada a explicar a previsão de compensação de movimento em unidades de macroblocos. A Fig.ll é uma vista para explicar a previsão da compensação de movimento entre imagens. A Fig.12 é um diagrama de circuito, que mostra, em forma de blocos, um elemento de determinação de diferenças para o vetor de movimento no MPEG1. A Fig.13 é uma vista para explicar um exemplo de funcionamento do elemento para determinação de diferenças, para o vetor de movimento no MPEG1 A Fig.14 é um diagrama de circuito, que mostra, em forma de blocos, a estrutura de tópicos da configuração do elemento de determinação inversa de diferenças para o vetor de movimento no MPEG1. A Fig.15 é uma vista para explicar a previsão adaptativa quadro/campo. 31 A Fig.16 é um diagrama de circuito, que mostra, em forma de blocos, um exemplo convencional de elemento de determinação de diferenças para o vetor de movimento. A Fig.17 é um diagrama de circuito, que mostra, em forma de blocos, um exemplo convencional de elemento de determinação inversa de diferenças para o vetor de movimento. A Fig.18 é uma vista para explicar o problema do elemento convencional de determinação de diferenças para o vetor de movimento. A Fig.19 é uma vista para explicar um exemplo atual para a reconstrução do vetor de movimento a partir do vetor de movimento diferencial.
Melhor forma de realização da invenção
Um dispositivo de codificação de imagens em movimento (codificador) de acordo com a presente invenção será primeiramente descrito com referência à Fig.l. A informação para controlar o funcionamento básico do codificador de acordo com a presente invenção, é fornecida a partir de uma secção de entrada de informação de controlo da codificação de imagem 30 e é guardada na memória de armazenamento de informação de controlo de codificação da imagem 29. Essa informação é constituída por, tamanho do quadro da imagem, velocidade de saida de bits da informação de codificação e semelhantes. Essa informação é feita sair da memória 29 como sinal de controlo de codificação de imagem S25. Depois, o sinal de estrutura da imagem S26 (sinal descriminador de se a estrutura da imagem é estrutura de quadros, estrutura de campos ou progressiva) é feito sair, através da memória 29, da secção de entrada de informação de codificação de imagem 30 e o sinal de tipo de 32 codificação da imagem S27 (sinal para descriminar se o tipo da imagem é imagem I, imagem P ou imagem B) é também feito sair dai.
Além disso, um sinal de imagem, entrado a partir do terminal de entrada de imagem 10, é enviado para um grupo de memórias de campo 11. Depois, um sinal de sincronização de imagem (sinc.) Sll, que é um sinal de sincronização de entrada de imagem, é enviado pelo terminal de entrada 26 e depois reenviado para um elemento de controlo da imagem de referência 23. Para o elemento de controlo da imagem de referência 23 são também enviados, pelo terminal 1, o sinal de controlo de codificação S25, sinal de estrutura da imagem S26 e o sinal de tipo de codificação da imagem S27. Quando aquele elemento de controlo da imagem de referência 23 recebe o sinal de sincronização vertical Sll, emite o sinal de indicação de imagem de referência S10, o qual será descrito mais tarde e entrega-o ao grupo de memórias de campo 11.
Uma imagem, de um sinal de imagem que foi entregue ao grupo de memórias de campo 11, é uma imagem a ser codificada nesse momento. Em sincronia com a primeira porção da imagem, que é lida a partir do grupo de memórias de campo 11, o grupo de memórias de campo 11 estabelece ou apresenta a bandeira de inicio da imagem S22, que será descrita mais à frente, para a enviar ao elemento de controlo da imagem de referência 24, através dos terminais 2 e 9. O elemento de controlo de imagem de referência 24 emite sinais de indicação de imagem de referência S12, S13, os quais serão descritos mais à frente, quando a bandeira de inicio de imagem S22 é estabelecida, para os enviar para o grupo de memórias de campo 17. A seguir, a bandeira de inicio de imagem S22, que é feita passar através do terminal 9, é também enviada para um elemento de controlo de saida de 33 imagem 25. 0 elemento de controlo de saída de imagem 25, envia o sinal de indicação de saída de imagem S14, o qual será descrito mais tarde, quando a bandeira de início de imagem S22 é estabelecida, para ser entregue no grupo de memórias de campo 17. Nesta forma de realização, o sinal de controlo de codificação de imagem S25, o sinal de estrutura de imagem S26 e o sinal de tipo de codificação de imagem S27, são enviados para o elemento de controlo da imagem de referência 25, através do terminal 30.
Além disso, um sinal de imagem, que tenha sido enviado para o grupo de memórias de campo 11, é enviado para um circuito de previsão de movimento 12 e o sinal de controlo de codificação da imagem S25, o sinal de estrutura da imagem S26 e o sinal de tipo de codificação da imagem S27 vindos do terminal 1, são enviados para o circuito de previsão de movimento 12. Este circuito de previsão de movimento 12, implementa a previsão de movimento de pixéis numa imagem a ser codificada no momento para um sinal de imagem, que foi enviado para o grupo de memórias de campo 11, por meio de referência feita à imagem passada e à imagem futura. A previsão de movimento acima referida corresponde aos blocos de um sinal de um bloco de pixéis de uma imagem que está a ser codificada no momento e da imagem passada ou da imagem futura, a que se faz referência e ao tamanho do bloco, por exemplo, 16x16 pixéis, 16x8 pixéis ou 8x8 pixéis.
As imagens de referência, passadas e futuras são, nesta altura, designadas a partir do grupo de memórias de campo 11, de acordo com o sinal de indicação da imagem de referência S10 de previsão de movimento, enviado do elemento de controlo de imagem de referência 23. O circuito de previsão de movimento 12 deteta a posição de cada bloco da imagem de referência, em que o erro de previsão na comparação de blocos se torna mínimo relativamente aos 34 respetivos modos selecionáveis de compensação de movimento, para enviar o vetor de movimento correspondente para essa posição, como sinal de vetor de movimento 51, para o circuito de compensação do movimento 18. Deve notar-se que o modo de compensação, que pode ser selecionado, é determinado pelo sinal de estrutura de imagem S26 e pelo sinal de tipo de codificação da imagem S27. A seguir, o circuito de previsão de imagem 12 envia também, para o circuito de compensação de movimento 18, o sinal de previsão do tipo S30, o sinal de paridade de referência de campo do vetor de movimento S31, o sinal do vetor de sub-movimento S32 e o sinal de paridade de campo previsto S33, como informação adicional do sinal de vetor de movimento S7.
Nesta circunstância, o sinal de tipo de previsão S30 é informação indicando, por exemplo, se a previsão do movimento é levada a efeito com base em quadros ou com base em campos, se a comparação entre blocos é executada segundo 16x16 pixéis, 16x8 pixéis ou 8x8 pixéis, se a previsão do movimento é DUAL-PRIME ou não. Deve notar-se que, uma vez que os pormenores da previsão de blocos de 8x8 pixéis e de DUAL-PRIME se encontram descritos no material anteriormente referido do Modelo de Teste 4 ISO-IEC/JTC1/SC29/WG11 MPEG93/225b, a sua explicação é aqui omitida.
Além do mais, o sinal de paridade de referência de campo do vetor de movimento S31 é um sinal, que indica se um campo, que faz referência a um vetor, é o primeiro campo (campo 1) ou o segundo campo (campo 2) , no caso da previsão de movimento ser executada com base nos campos. 35 0 sinal de vetor de sub-movimento S32, por exemplo, um sinal ligado a um vetor de previsão DUAL-PRIME e de blocos de 8x8 pixéis. 0 sinal de paridade de campo previsto S33 é um sinal, que indica se o campo de destino da previsão (campo previsto) do vetor de movimento, é o primeiro campo ou o segundo campo, no caso de a previsão do movimento ser executada com base em campos. 0 circuito de compensação de movimento 18 instrui a saída do sinal de bloco de imagem S3, posicionado num endereço designado pelo sinal de vetor de movimento S7, do sinal de tipo de previsão S30, do sinal de paridade de referência de campo de vetor de movimento S31, do sinal de vetor de sub-movimento S32 e do sinal de paridade de campo prevista S33, vindos do grupo de memórias de campo 17, onde imagens já descodificadas e reproduzidas (que serão descritas mais tarde) se encontram guardadas. Δ imagem de referência, nesta altura, é designada a partir do grupo de memórias de campo 17, de acordo com o sinal de indicação de compensação do movimento da imagem de referência S12 emitido pelo elemento de controlo da imagem de referência 24.
Uma saída do sinal de bloco de imagem S3, a partir do circuito de compensação de movimento 18, é transformada numa operação adaptativa, tornando assim possível executar a comutação para um modo de compensação de movimento ótimo, de entre quatro tipos de operações descritas abaixo em unidades de macroblocos.
Nomeadamente, os quatro tipos de operações são quatro tipos de modos: 36 em primeiro lugar, modo de compensação de movimento de imagens reproduzidas passadas (modo preditivo avançado), em segundo lugar, modo de compensação de movimento de imagens reproduzidas futuras (modo preditivo retrógrado), em terceiro lugar, modo de compensação simultaneamente para imagens reproduzidas passadas e futuras (o bloco de referência de imagem reproduzida passada e o bloco de referência de imagem reproduzida futura, são submetidos a uma operação linear (por exemplo, cálculo de valor médio) a cada pixel) (modo preditivo bidirecional), em quarto lugar, modo de ausência de compensação de movimento (isto é, modo intracodifiçado. Neste caso, a saida do sinal de bloco de imagem S3 é igual a zero) . Entre estes casos, a comutação para o ótimo é executada a partir de qualquer modo selecionável.
Ao comutar o método de compensação de movimento é selecionado, por exemplo, um modo em que a soma total dos valores absolutos dos valores diferenciais de cada pixel, entre respetivos sinais de imagem S3 emitidos nos quatro tipos de modos e em que o sinal de blocos de pixéis SI a ser codificado no momento é minimo. 0 modo assim selecionado é enviado para os componentes respetivos, através do terminal 3, como sinal de modo de compensação de movimento S9, sinal de vetor de movimento nesse momento S8, sinal preditivo do tipo S40, sinal de paridade de campo de vetor de movimento S41, sinal de vetor 37 de sub-movimento S42 e sinal de paridade de campo prevista S43.
Continuando, o sinal de pixéis do macrobloco SI a ser codificado no momento, é enviado do grupo de memórias de campo 11 e a bandeira de inicio de MB S300 é enviada, em sincronia com a sarda desse sinal de pixéis de macrobloco Sl. 0 contador de MB 49 conta o seu número, em sincronia com a bandeira de inicio de MB S300. Além disso, o contador de MB 4 9 é reposto, quando a bandeira de inicio de imagem S22, apresentada através do terminal 48, é estabelecida. Deve notar-se que o sinal de controlo da codificação da imagem S25 é também enviado através do terminal 46 para o contador de MB 49. A bandeira de inicio de secção S301, apresentada através do terminal 43 do contador de MB 49, é estabelecida quando o valor de contagem de MB se torna igual a um múltiplo de um comprimento predeterminado de secção (o número de macroblocos que compõem a secção). Aqui, secção é uma unidade constituída por um único ou múltiplos macroblocos sucessivos, na ordem de escaneio das imagens. A análise é feita de tal modo que o primeiro macrobloco transmita dados indicativos da posição na imagem na porção dianteira da secção, de modo a que os dados recebidos possam ser restaurados para o estado normal, mesmo no caso de algum erro ter lugar no lado recetor. 0 comprimento da secção é tornado variável na dependência do estado de erro do percurso de transmissão da corrente de bits. Em geral, de acordo com a crescente probabilidade de erro do percurso de transmissão, o comprimento da secção torna-se menor. 0 comprimento da secção designado nesse momento é guardado na memória 29. 38 0 sinal de pixéis do macrobloco SI e o sinal de pixéis de bloco S3, apresentado pelo circuito de compensação de movimento 18, são submetidos a um cálculo do valor da diferença de cada pixel num subtrator 13. Em resultado disso, é obtido um sinal de diferença de bloco S2. 0 sinal de diferença de bloco S2 é apresentado a uma secção de codificação de sinal de bloco 14, a partir da qual é obtido um sinal codificado S4. 0 sinal codificado S4 é apresentado a uma secção de descodificação de sinal de bloco 15, onde é descodificado. Assim é obtido um sinal de diferença de reprodução de bloco S5.
Nesta forma de realização, o sinal de controlo de codificação S25, feito passar através do terminal 7 e o sinal de tabela de quantificação S15, feito passar através dos terminais 31 e 8, são também apresentados à secção de codificação do sinal de blocos 14. Como da secção de codificação do sinal de bloco 14, pode ser aplicada aqui a configuração composta por um elemento de DCT (Discrete Cosine Transform - Transformação de Cosseno Discreta) e por um quantificador para apresentação de coeficientes de quantificação pelo sinal de tabela de quantificação S15, designado a partir da memória intermédia 21. Neste caso, o sinal de controlo de codificação da imagem S25 e o sinal da tabela de quantificação S15 são apresentados à secção de descodificação de sinais de blocos 15. Como configuração da secção de descodificação de sinais de blocos 15, pode ser aplicada a configuração composta por, um quantificador invertido, para coeficientes de quantificação invertidos pelo sinal da tabela de quantificação S15 e um elemento de DCT invertido, para implementar uma DCT inversa para enviar coeficientes a partir dela. 0 sinal de diferença de reprodução de blocos S5 é adicionado a cada pixel do sinal de blocos de imagem S3 39 apresentado a partir do circuito de compensação de movimento 18 no adicionador 16. Em resultado disso, é obtido um sinal de reprodução de bloco S6. Este sinal de reprodução de bloco S6 é guardado na memória de campo designada pelo sinal de indicação de imagem atual S13, vindo do grupo de memórias de campo 17. A reprodução da imagem guardada no grupo de memórias de campo 17 é apresentada, a partir do terminal 129, como um sinal designado de reprodução de imagem, de acordo com o sinal de indicação de saida de imagem S14 anteriormente descrito.
Por outro lado, o sinal de bloco codificado S4 é também enviado para uma secção geradora de sinal unidimensional 19, alimentada pelo sinal de controlo de codificação de imagem S25, através do terminal 6, na qual é guardado numa disposição unidimensional. É assim obtido um sinal codificado unidimensional S16. A configuração da secção geradora de sinal unidimensional 19 é constituída por um conversor de escaneio, para uma quantificação do bloco por rastreio em ziguezague de coeficientes DCT, a fim de mudar de baixa frequência para alta frequência. 0 sinal codificado unidimensional S16 é transformado num código de extensão variável, como seja um código de Huffman, no VLC (Variable Length Coder - Codificador de Extensão Variável) 20.
Além disso, o sinal de vetor de movimento S8 é enviado para o elemento de determinação de diferenças de vetor (denominado elemento diferenciador na figura) 27, no qual é obtida uma diferença entre o vetor de movimento S8 e o vetor de movimento S8 subsequentemente apresentado, de modo que disso resulte um sinal de vetor de movimento diferencial S50. Este sinal de vetor de movimento diferencial S50 é tornado num código de extensão variável, como seja um código de Huffman, etc., no elemento VLC 20. 40
Nesta forma de realização, a bandeira de início de MB, a bandeira de início de secção S301, o sinal de modo de compensação de movimento S9, o sinal de estrutura da imagem S28 e o sinal de tipo de previsão S40, são também apresentados ao terminal 4. O pormenor do elemento de determinação de diferença de vetor 27 será descrito com referência à Fig.2. Na Fig.2, a bandeira de início de secção S301 é enviada para o terminal 77 do elemento de determinação de diferenças de vetor 27, a bandeira S300 é feita passar através dos terminais 47 e 4 da Fig.l para entrar no terminal 71, o sinal de vetor de movimento S8 é feito passar através dos terminais 3 e 4 da
Fig.l, para entrar no terminal 70, o sinal de modo de compensação de movimento S9 é feito passar através dos terminais 3 e 4 da Fig.l, para entrar no terminal 72, o sinal de tipo de previsão S40, é feito passar através dos terminais 3 e 4 da Fig.l, para entrar no terminal 73 e o sinal de estrutura da imagem S26 é feito passar através do terminal 4, para entrar no terminal 74.
Neste caso, o número de transmissão dos vetores de movimento avançados ou dos vetores de movimento retrógrados a ser transmitidos no âmbito do macrobloco, é reconhecido pelo sinal de estrutura de imagem S26 e pelo sinal de tipo de previsão S40. Eles são determinados pelas Tabelas 1, 2 e 3, apresentadas abaixo. Nesta forma de realização, o número máximo respetivos de transmissão de vetores de movimento avançados ou vetores de movimento retrógrados a serem transmitidos é de 2. Consequentemente, são transmitidos, no máximo, quatro vetores de movimento no âmbito de um macrobloco. Deve notar-se que, neste caso, em que o número de transmissões de vetores de movimento avançados ou vetores de movimento retrógrados no âmbito do macrobloco é de 2, a ordem de transmissão desses dois vetores de 41 movimento é determinada antecipadamente. Por exemplo, no caso da Tabela 1, baseada na previsão de Campo, o vetor de movimento, no qual o campo previsto seja o primeiro campo, é transmitido mais cedo e o vetor de movimento, em que o campo previsto seja o segundo campo, é transmitido mais tarde. Além disso, no caso da Tabela 2 baseada num Campo de 16x8, o vetor de movimento da porção superior é transmitido mais cedo e o vetor de movimento da porção inferior é transmitido mais tarde. Adicionalmente, o circuito de compensação de movimento 18 desta forma de realização, emite o vetor de movimento S8 pela mesma ordem que essa ordem de transmissão.
Tabela 1
Caso em que a estrutura da imagem é o quadro (entrelaçado) da imagem
Tipo de previsão Contagem de vetores de movimento Formato de vetor de movimento Previsão baseada em campo 2 Campo Previsão baseada em quadro 1 Quadro DUAL-PRIME 1 Campo 42
Tabela 2
Caso em que a estrutura da imagem é imagem de campo
Tipo de previsão Contagem de vetores de movimento Formato de vetor de movimento Previsão baseada em campo de 16x16 1 Campo Previsão baseada em quadro de 16x8 2 Campo DUAL-PRIME 1 Campo
Tabela 3
Caso em que a estrutura da imagem é imagem progressiva
Tipo de previsão Contagem vetores movimento de de Formato de vetor de movimento Previsão baseada em campo de 16x16 1 Quadro Previsão baseada em campo de 16x8 2 Quadro Previsão baseada em campo de 8x8 1 Quadro
Nesta forma de realização, o grupo do registo 81, no elemento de determinação de diferenças de vetor 27 da Fig.2, está construído conforme se mostra, por exemplo, na Fig.3. Na Fig.3, quatro memórias do registo PMV1 - PMV4, destinadas a guardar vetores de movimento, estão preparadas, como grupo de registo 81. 43
Para mais, vetores de movimento avançados e vetores de movimento retrógrados são respetivamente obrigados a ter uma correspondência de um para um, em relação às memórias do registo PMV1 - PMV4, de acordo com a ordem de transmissão dentro do macrobloco. Num sentido mais prático, o primeiro vetor de movimento avançado transmitido no âmbito do macrobloco é guardado na memória do registo PMV1. 0 vetor de movimento avançado transmitido em segundo lugar no âmbito do macrobloco, é guardado na memória do registo PMV2. Além disso, o vetor de movimento retrógrado transmitido em primeiro lugar no âmbito do macrobloco é guardado na memória do registo PMV3. 0 vetor de movimento retrógrado transmitido em segundo lugar no âmbito do macrobloco é guardado na memória do registo PMV4. Conforme se disse acima, nesta forma de realização, a ordem de transmissão dentro de um macrobloco de respetivos vetores de movimento, fornece indices indicativos da relação entre respetivos vetores de movimento e registos no âmbito das memórias do registo PMV1 - PMV4, nas quais esses vetores de movimento se encontram guardados.
Por outras palavras, nesta forma de realização, os indices "1" - "2" são fornecidos pela ordem de transmissão dos vetores de movimento avançado dentro do macrobloco e os indices "3" - "4" são fornecidos pela ordem de transmissão dos vetores de movimento retrógrados dentro dele, permitindo assim que os vetores de movimento tenham indices respetivos e as memórias do registo PMV1 - PMV4 tenham com eles uma relação de correspondência de um para um. Deve notar-se que os respetivos terminais de entrada a - d das memórias do registo PMV1 - PMV4 da Fig.3 estão ligadas a correspondentes terminais selecionados do comutador 80 da Fig.2 e os terminais de saida e - h estão ligados a correspondentes terminais selecionados do comutador 82 da Fig.2. 44 A sintaxe da corrente de bits, no momento da transmissão do vetor de movimento é apresentada na Tabela 4.
Tabela 4 001 vetor_movimento () (fcorrente bits“sintaxe vetor de movimento #/ 002 código_movimento_horizontal:/# componente horizontal X do vetor de movimento #/ 003 codigo_movimento_vertical:/# componente vertical Y do vetor de movimento #/ 004 } 005 006 vetor_movimento_avançado_memorizado(){ 007 seleciona_campo_movimento_vertical:/# vetor paridade'referência movimento campo #/ 008 vetor_movimento (): 009 } 010 011 vetor_movimento_campo_retrógrado (){ 012 movimento_vertical_campo_seleciona:/# vetor paridade referência" movimento_campo #/ 013 vetor_movimento (): 014 } 015 016 vetor_movimento_avançado()/# corrente de bits“sintaxe relativamente vetor avançado#/ 017 se (contagem_vetor_movimento==l)(#/quando n° de vetores de movimento é 1#/ 018 se (formato_mv==quadro)(/#caso em que formato_mv é quadro #/ 019 vetor_movimento():/# indice_l(+PMV1).PMV2=PMV1#/ 020 } de outro modo {/#caso em que mv_formato é campo #/ 021 vetor_movimento_campo_avançado();#índice_l(1PMV1). PMV2=PMV1#/ 022 se (dmv==l) {#/caso de Dual_prime#/ 023 dmv_horizontal:#vetor sub_movimento #/ 024 dmv_vertical:/# vetor sub-movimento #/ 025 } 026 } 027 } de outro modo {/#contagem_: quando n° de vetores movimento é 2#/ 028 vetor_movimento_campo_avançado():/#indice_l(+PMV1)#/ 029 vetor_movimento_campo_avançado ):/#indice_2(+PMV2#/ 030 } 45 031 } 032 033 vetor_movimento_retrógrado()1/# corrente bits'sintaxe relativamente ao vetor retrógrado#/ 034 se(contagem_vetor_movimento==l {/quando n° vetores movimento é 1#/ 035 se(formato_mv==quadro) (/#caso onde formato_mv é quadro#/ 036 vetor_movimento():/#indice_3(+PMV3).PMV4=PMV3#/ 037 } de outro modo{/#caso onde formato_mv é campo #/ 038 vetor_movimento_campo_retrógrado():#índice_3(+PMV3.PMV4=PMV3#/ 039 se(dmv==l) {#/ caso de Dual_prime#/ 040 dmv_horizontal:/#vetor sub-movimento#/ 041 dmv_vertical:/#vetor sub-movimento#/ 042 } 043 } 044 } de outro modo {/contagem_vetor_movimento==2: quando n° vetores movimento é 2#/ 045 vetor_movimento_campo_retrógrado():#indice_3(+PMV3)#/ 046 vetor_movimento_campo_retrógrado():#/índice_4(+PMV4)#/ 047 } 048 }
Nesta Tabela 4, a função "vetor_movimento_avançado ()" é uma função ligada ao vetor de movimento avançado e a função "vetor_movimento_retrógrado()" é uma função ligada ao vetor de movimento retrógrado. Além disso, a declaração abrangida por "/#" e "*/" é um comentário. Conforme se mostra nesta Tabela, os vetores de movimento a ser transmitidos e as memórias do registo PMV são feitos corresponder uns aos outros. Neste caso, são usados os parâmetros de "formato_mv", "contagem_vetor_movimento" e estes parâmetros são fornecidos com base nas Tabelas 1 - 3. Como "formato_mv", conforme mostrado na Tabela 1, 2, existem o tipo "quadro" e o tipo "campo". A paridade de referência do vetor de movimento de campo é basicamente adicionada ao vetor do tipo "campo". Além disso, "contagem_vetor__movimento" indica o número de transmissão avançada ou retrógrada de vetores, a serem transmitidos no âmbito de um macrobloco, conforme se mostra nas Tabelas 1 -3.
Aqui, "vetor_movimento_avançado ()" irá agora ser descrito abaixo. Inicialmente, no caso em que existe uma "contagem_vetor_movimento" (linha 017), a informação do vetor de movimento é guardada na memória do registo PMVl. Além disso, no caso em que haja duas "contagem_vetor_movimento", a informação do vetor de movimento transmitida em primeiro lugar (linha 028) é guardada na memória do registo PMVl e a informação do vetor de movimento transmitida em segundo lugar (linha 029) é guardada na memória do registo PMV2. Mais pormenorizadamente, no caso de haver uma informação de vetor de movimento a ser transmitida (linha 017) , a decisão do percurso é ramificada em dois casos: o caso em que "formato mv" é "quadro" (linha 018) e o caso em que "formato mv" é "campo" (linha 020). No caso em que "formato mv" é "campo", e ainda no caso em que "dmv= ==1" (linha 022), o "tipo de previsão" é "Dual_prime". Consequentemente, são transmitidas "dmv_horizontal" e "dmv_vertical". Elas são vetor de sub-movimento quando o tipo de previsão é "Dual_prime". Isso aplica-se, de modo semelhante, a "vetor_movimento_retrógrado ()".
Num macrobloco em que haja um vetor de movimento avançado a ser transmitido, na atualização da memória do registo PMVl, é atualizada a memória PMV2 pelo mesmo valor. Mais, no macrobloco em que haja um vetor de movimento retrógrado a ser transmitido, na atualização da memória do registo PMV3, é atualizada a memória do registo PMV4 pelo mesmo valor. O funcionamento da sintaxe da corrente de bits, que foi explicada na Tabela 4 acima referida, será agora descrita por meio da utilização da configuração da Fig.2. 47
Na Fig.2, em resposta ao sinal de vetor de movimento S8, entrado através do terminal 70, o gerador de bandeira do sinal de vetor de movimento 87 emite uma bandeira de sinal de vetor de movimento S86. Tais bandeiras de sinal de vetor de movimento S86 são contadas pelo contador de vetores de movimento 88. Deve notar-se que o contador de vetores de movimento 88 é reiniciado, quando a bandeira de partida do MB S300, passada pelo terminal 71, é estabelecida. O sinal de número de contagem de vetores de movimento S87, do contador de vetores de movimento 88, é apresentado ao gerador de sinal de designação de indice do registo 89. O sinal de modo de compensação de movimento S9, o sinal de tipo de previsão S40 e o sinal de estrutura de imagem S26, que são feitos passar através dos terminais 72, 73, 74, são apresentados ao gerador de sinal de designação de indice do registo 89.
No caso desta forma de realização, o número de transmissão dos vetores de movimento avançados ou dos vetores de movimento retrógrados a serem transmitidos (contagem vetor_movimento) no âmbito do macrobloco, é reconhecido pelo sinal de estrutura da imagem S2 6 e pelo sinal de tipo de previsão S40 e o número de todos os vetores de movimento a serem transmitidos no âmbito do macrobloco é reconhecido pelo sinal de modo de compensação de movimento S9. Por exemplo, no caso em que "contagem_vetor_movimento" seja 2 e o sinal de modo de compensação de movimento S9 seja o modo preditivo bidirecional, uma vez que os vetores de movimento a ser transmitidos no âmbito do macrobloco são transmitidos pela ordem de dois vetores de movimento avançados e dois vetores de movimento retrógrados, o número de todos os vetores de movimento transmitidos no âmbito do macrobloco é 4. 48
Com base nessa informação, o gerador de sinal de designação de indice do registo S89 gera o sinal de designação de índice do registo S88, a partir do sinal de número de contagem de vetores de movimento S87, para o emitir. Por exemplo, no exemplo da Fig.3 acima referido, quando o sinal de número de contagem de vetores de movimento S87 toma o valor 1, é designada a memória do registo PMV1 do grupo do registo 81; quando esse sinal toma o valor 2, é designada a memória do registo PMV2 do grupo do registo 81; quando esse sinal toma o valor 3, é designada a memória do registo PMV3 no grupo do registo 81; e quando esse sinal toma o valor 4, é designada a memória do registo PMV4, do grupo do registo 81.
Como outro exemplo, no caso de haver uma "contagem vetor movimento" e o sinal de modo de compensação de movimento S8 ser o modo de previsão retrógrado, uma vez que existe um vetor retrógrado, como número de todos os vetores de movimento a serem transmitidos no âmbito do macrobloco, é designada a memória do registo PMV3 do grupo do registo 81, quando o sinal de número de contagem de vetores de movimento S87 toma o valor 1.
Em resposta ao sinal de designação do índice do registo S88, o grupo do registo 81 envia o sinal de vetor de movimento S82 guardado no registo designado, através do comutador 82.
Este sinal de vetor de movimento S82, saido do registo, é convertido à escala pelo sinal de indicação da escala S85 (sinal de indicação de escala A) saído do circuito de comutação 85, com base no sinal de tipo de previsão S40 vindo do terminal 75, no conversor de escala 84 da conversão de escala A, conforme exigido pela ocasião e é depois enviado para o circuito diferencial 86. Neste 49 circuito, é calculada uma diferença de valores entre o vetor de movimento convertido na escala e o sinal de vetor de movimento a entrar no momento S8. Obtém-se assim um sinal de vetor de movimento diferencial S50. Este sinal sai pelo terminal 76.
Por outro lado, o sinal de vetor de movimento entrado S8 é convertido à escala (sinal de vetor de movimento convertido à escala S80) pelo sinal de indicação de escala S83 (sinal de indicação de escala B) apresentado pelo circuito de comutação 85 no conversor de escala 83 da conversão de escala B, conforme a ocasião exija e é depois sobrescrito e novamente guardado no registo designado pelo sinal de designação de indice do registo S88, através do comutador 80. Deve notar-se que o conversor de escala 84 e o conversor de escala 83, conforme referido acima, podem ser usados para ajustamento espacial da escala, no momento do cálculo dos vetores de movimento diferenciais, entre vetores de movimento, que fazem referência ao quadro e vetores de movimento, que fazem referência ao campo e/ou em ajustamentos de escala baseados no ponto no tempo, com base no momento do cálculo de vetores diferenciais, entre vetores de movimento, em que as diferenças no ponto do tempo até ao campo de referência sejam diferentes. A reposição da memória do registo PMV do elemento de determinação da diferença de vetor 27, é executada no macrobloco em que o sinal do modo de compensação do movimento S9, feito passar através do terminal 77, é um modo intracodifiçado e está determinado o macrobloco, no qual é estabelecida a bandeira de inicio de secção S301 a partir do terminal 77. Nesse momento, todos os registos do grupo de registos 81 são repostos em zero. A instrução de reposição desse registo é executada pelo elemento de reposição de instruções do registo 78. 50
Nesta forma de realização, o elemento de determinação de diferenças 27 para os vetores de movimento é construido conforme acima. Deve notar-se que, enquanto na forma de realização acima descrita a ordem da sarda dos vetores de movimento S8 do circuito de compensação de movimento 18, é a mesma que a ordem de transmissão dos vetores de movimento antecipadamente determinada, a primeira pode ser diferente da última. Não obstante, também neste caso, uma vez que a ordem de entrada de vetores de movimento diferenciais S50 no elemento VLC 20 é necessário que, no fim, seja a mesma que a da ordem de transmissão, é preciso, para a configuração extra ou adicional destinada à emissão do sinal de paridade de campo prevista para o gerador de sinal de designação do indice do registo S9, transpor ou intercambiar a ordem de saida dos vetores de movimento diferenciais S50 ou semelhantes. A configuração do elemento de avaliação do macrobloco ignorado 28 da Fig.l será agora descrita com referência à Fig.4.
Na Fig.4, o sinal de erro preditivo de compensação de movimento SI6 é apresentado ao terminal 96 do elemento de avaliação do macrobloco ignorado 28. Além disso, o sinal de vetor de movimento diferencial S50, o sinal de vetor de movimento S8 do terminal 4 da Fig.l, o sinal de modo de compensação do movimento S9, o sinal de estrutura de imagem S26, o sinal de tipo de previsão S40, o sinal de paridade de referência de campo do vetor de movimento S41 do terminal 5 da Fig.l, o sinal de vetor de sub-movimento S42, o sinal de paridade de campo prevista S43 e o sinal de tipo de codificação de imagem S27, são enviados para o elemento de avaliação do macrobloco ignorado 28, adicionalmente ao sinal de erro preditivo de compensação de movimento SI 6. Nomeadamente, o sinal de modo de compensação do movimento 51 S9, o sinal de tipo de previsão S40, o sinal de paridade de referência de campo do vetor de movimento S41, o sinal de vetor de sub-movimento S42, o sinal de paridade de campo prevista S43, o sinal de tipo de codificação de imagem S27 e o sinal de estrutura de imagem 2 6 são enviados para o terminal 95 da Fig.4. Estes sinais são guardados na memória 91, para armazenamento dos parâmetros do macrobloco atual. 0 sinal de erro preditivo de compensação de movimento S16 é sujeito a avaliação no elemento de avaliação de coeficientes não zero 94, para determinação de se o sinal a ser transmitido existe. Quando o sinal a ser transmitido existe, o elemento de avaliação 94 informa desse facto o elemento de avaliação 94. Em resposta a isso, o elemento de avaliação 93 estabelece a bandeira do macrobloco S90 para "Falso" a fim de a enviar.
Por outro lado, no caso de não existir qualquer sinal de erro preditivo a ser transmitido (isto é, os coeficientes de S16 serem todos zero), o elemento de avaliação 94 notifica o sinal de "Verdadeiro" para o elemento de avaliação 93. Neste caso, o elemento de avaliação 93 executa ainda uma avaliação comparativa do conteúdo da memória 91 e do conteúdo da memória 92 para armazenamento dos parâmetros do macrobloco passado.
Aqui, no elemento de avaliação 93, no caso em que o sinal de tipo de codificação de imagem S27 seja imagem P, é levada a efeito uma avaliação comparativa das condições, na qual em primeiro lugar, o sinal de vetor de movimento S8 é zero; 52 em segundo lugar, o sinal de modo de compensação de movimento S9 é previsão avançada; em terceiro lugar, o sinal de paridade de referência de campo do vetor de movimento S41 é o mesmo que a paridade do campo prevista, no caso em que o sinal de tipo de previsão S40 seja a previsão de campo; e em quarto lugar, o sinal de vetor de sub-movimento S42 seja zero.
Quando essas condições estejam satisfeitas, o elemento de avaliação 93 estabelece a bandeira do macrobloco ignorado S90 para "Verdadeiro" a fim de a enviar. De outro modo, a bandeira do macrobloco ignorado S90 é "Falso". Esta bandeira do macrobloco S90 sai através do terminal 97 e é enviada para o elemento VLC da Fig.l.
Além disso, o elemento de avaliação 93, no caso em que o sinal de tipo de codificação de imagem S27 seja imagem B, é executada uma avaliação comparativa das condições, em que em primeiro lugar, o sinal de vetor de movimento diferencial S50 é zero; e em segundo lugar, o sinal de modo de compensação de movimento S9, o sinal de tipo de previsão S40, o sinal de paridade de referência do campo do vetor de mobilidade S41, o sinal de vetor de sub-movimento S42 e o sinal de paridade de campo prevista S43, são respetivamente os mesmos em relação ao conteúdo das memórias 91 e 92. 53
Quando essas condições estejam satisfeitas, o elemento de avaliação 93 estabelece a bandeira de macrobloco ignorado S90 para "Verdadeiro" para a enviar. De outro modo, a bandeira do macrobloco ignorado S90 é "Falso".
Deve notar-se que, no macrobloco da primeira e última secções, o macrobloco ignorado é inibido, mesmo no caso de as condições acima serem satisfeitas.
No caso de a bandeira do macrobloco ignorado S90 ser "Falso", o conteúdo da memória 91 é copiado para a memória 92. Além disso, no que se refere ao macrobloco, em que a bandeira do macrobloco ignorado S90 seja "Verdadeiro", o elemento VLC 20 não trata quaisquer dados. O elemento de avaliação do macrobloco ignorado 28 é construído conforme acima.
Ainda no que se refere à avaliação do macrobloco ignorado, será agora descrita outra forma de realização. Numa outra forma de realização, a condição para permitir o macrobloco ignorado da imagem P e da imagem B, a fim de manter a forma de realização acima descrita, é ainda limitada conforme segue. Nomeadamente, no caso em que a estrutura da imagem é a estrutura de quadro, o tipo de previsão apenas está limitado ao caso da previsão baseada no Quadro. Além disso, no caso em que a estrutura da imagem seja uma estrutura de campo, o tipo de previsão apenas se limita ao caso da previsão baseada no Campo de 16x16. Nomeadamente, o tipo de previsão da imagem B também se torna irrelevante para o tipo de previsão do macrobloco anterior. O resumo das condições que permitem que se mantenha o macrobloco ignorado é, neste caso, como segue. No caso em que o elemento de avaliação não zero 94 avalia os 54 respetivos macroblocos entrados como sendo macroblocos em que não existe nenhum sinal para ser transmitido, o elemento de avaliação 93 avalia ainda se sim ou não os respetivos macroblocos satisfazem essa condição, necessária para permitir aos macroblocos ignorados que se mantenham. Inicialmente, no caso em que o sinal de tipo de codificação S27 é de imagem P e o sinal de estrutura de imagem S26 é estrutura de campo, a condição para permitir que o macrobloco se mantenha é: em primeiro lugar, o sinal de vetor de movimento S8 ser zero; em segundo lugar, o sinal de modo de compensação de movimento S9 ser previsão avançada; em terceiro lugar, o sinal de tipo de previsão S40 ser previsão de campo de 16x16; e em quarto lugar, o sinal de paridade de referência de campo de vetor de movimento S41 ser igual à paridade do sinal da paridade de campo prevista S43.
Ainda, no caso de o sinal do tipo de codificação da imagem S27 ser imagem P e o sinal de estrutura de imagem da imagem P S26 ser estrutura de quadro, a condição para permitir que o macrobloco ignorado se mantenha é: em primeiro lugar, o sinal de vetor de movimento S8 ser zero; 55 em segundo lugar, o sinal de modo de compensação de movimento S9 ser a previsão avançada; e em terceiro lugar, o sinal de tipo de previsão S40 ser previsão de quadro.
Além disso, no caso de o sinal de tipo de codificação de imagem S27 ser imagem B e o sinal de estrutura de imagem S26 ser estrutura de campo, A condição para permitir que o macrobloco ignorado se mantenha é: em primeiro lugar, o sinal de vetor de movimento diferencial S50 ser zero; em segundo lugar, o sinal de modo de compensação do movimento S9 ser o mesmo que o do macrobloco anterior; em terceiro lugar, o sinal de tipo de previsão S40 ser previsão de campo de 16x16; em quarto lugar, o sinal de paridade de referência do campo do vetor de movimento S41 ser o mesmo que o do macrobloco anterior; e em quinto lugar, o sinal de paridade de campo previsto S43 ser o mesmo que o do macrobloco anterior.
Adicionalmente, no caso de o sinal de tipo de codificação de imagem S27 ser imagem B e o sinal de estrutura de imagem S2 6 ser quadro, no caso em que o sinal de tipo de codificação de imagem S27 é imagem B e o sinal de estrutura de imagem S26 é quadro, 56 a condição para permitir que o macrobloco ignorado se mantenha é: em primeiro lugar, que o sinal de vetor de movimento diferencial S50 seja zero; em segundo lugar, que o sinal de modo de compensação de movimento S9 seja o mesmo que o do marcrobloco anterior; e em terceiro lugar, que o sinal de tipo de previsão S40 seja a previsão de quadro.
Voltando à Fig.l, depois de uma saida do elemento VLC 20 ser guardada na memória intermédia 21, a corrente de bits é enviada, a uma velocidade de transmisssão constante, a partir do terminal de saida 22. 0 dispositivo de codificação de imagens em movimento é construído, de uma maneira descrita acima, para executar a codificação de imagens em movimento, emitir uma corrente de bits e enviar as imagens codificadas.
Um dispositivo de descodificação de imagens em movimento (descodificador), que tem um elemento de determinação inversa de diferenças para os vetores de movimento será agora descrito com referência à Fig.5.
Na Fig.5, o sinal de corrente de bits, que entra através do terminal de entrada 50 é guardado na memória intermédia 51 e é depois enviado para o elemento de VLC inversa 52.
Quando o elemento de VLC inversa 52 deteta a porção dianteira da imagem a ser descodificada, estabelece uma bandeira de inicio de imagem S102 para a entregar ao 57 elemento de controlo de imagem de referência 58. Nesta forma de realização, essa bandeira de inicio de imagem S102 é enviada para o elemento de controlo de imagem de referência 58 através dos terminais 67 e 61. Quando a bandeira de inicio de imagem S102 é estabelecida, o elemento de controlo de imagem de referência 58 envia sinais de indicação de imagem de referência, os quais serão descritos mais tarde, para os fornecer ao grupo de memórias de campo 57.
Além disso, quando o elemento de VLC inversa 52 deteta a porção dianteira da secção a ser descodificada, estabelece uma bandeira de inicio de secção S211.
De modo semelhante, a bandeira de inicio de imagem S102, é também apresentada ao elemento de controlo de saida de imagem 59. Quando a bandeira de inicio de imagem S102 está estabelecida, o elemento de controlo de saida de imagem 59 envia o sinal de indicação de saída de imagem S60, que será descrito mais tarde, para o fornecer ao grupo de memórias de campo 57.
Informação de controlo, para controlar o dispositivo de codificação de imagens em movimento da presente invenção, obtida a partir do elemento de VLC inversa 52, é guardada na memória 201. Esta informação de controlo sai sob a forma de sinal de controlo S104. Depois, o sinal de estrutura de imagem S201 e o sinal de tipo de codificação de imagem 202 saem da memória 201. São apresentados ao elemento de VLC inversa 52. O sinal codificado de macrobloco S50, que foi recebido do elemento de VLC inversa 52 é enviado para a secção geradora de sinais bidimensionais 53. Adicionalmente, a bandeira de inicio de MB S210 é enviada em sincronia com uma saida do 58 sinal codificado de macrobloco S50, a partir do elemento de VLC inversa 52. 0 sinal codificado de macrobloco S50 é transformado no sinal de bloco bidimensional S51 na secção geradora de sinais bidimensionais 53. Esse sinal de bloco bidimensional S51 é fornecido à secção descodificadora de sinais de bloco 54, na qual é descodificado. É assim obtido o sinal de diferença de reprodução do bloco S52.
Como configuração da secção de descodificação do sinal de bloco 54, pode ser aplicada a configuração composta pelo quantificador inverso, para coeficientes de quantificação inversos, por meio do sinal tabela de quantificação S57, obtido do elemento de VLC inversa 52 e do elemento DCT inverso, para implementação de DCT inversa (Transformação de Cosseno Discreta), para que os coeficientes dali saiam.
Ainda, como configuração da secção geradora de sinais bidimensionais 53, pode ser aplicada a configuração constituída por um conversor de escaneio inverso, para o escaneio inverso em ziguezague do sinal codificado de bloco S50, a fim de transformar coeficientes de baixa frequência em alta frequência.
Por outro lado, o sinal de vetores de movimento diferenciais S90 ligado ao macrobloco a ser descodificado no momento, que foi obtido do elemento de VLC inversa 52, é reconstruído no elemento de determinação inversa de diferenças (rotulado como elemento inverso de diferenças MV na figura) 202. O sinal de vetor de movimento reconstruído S55 do elemento de determinação inversa de diferenças 202 e o sinal de modo de compensação de movimento S56, o sinal de tipo de previsão S91, o sinal de paridade de referência do campo do vetor de movimento S92, sinal de vetor de sub- 59 movimento S93 e sinal de paridade de campo prevista S94, são enviados para o compensador de movimento 56, saidos do elemento de VLC inversa 52 e feitos passar através da memória 204. Em resposta a esses sinais, este compensador de movimento 56 instrui a saída do sinal de bloco de imagem do grupo de memórias de campo 57, onde imagens já descodificadas e reproduzidas se encontram guardadas.
Num sentido mais prático, o compensador de movimento 56 reconhece a reprodução da imagem designada pelo grupo de memórias de campo 57, pelo sinal indicativo de imagem de referência S58 anteriormente descrito, como imagem de referência apara instruir a saída do sinal de bloco de imagem posicionado num endereço, no âmbito da imagem de referência designada pelo sinal de modo de compensação de movimento S56, pelo sinal de vetor de movimento S55, pelo sinal de tipo de previsão S91, pelo sinal de paridade de referência do vetor de movimento de campo S92, pelo sinal de vetor de sub-movimento S93 e pelo sinal de paridade de campo prevista S94. 0 compensador de movimento 56 está adaptado a executar uma operação adaptativa correspondente ao sinal de modo de compensação de movimento S56, isto é, a executar guatro tipos de operações, abaixo descritas, em unidades de macroblocos. Deve notar-se gue o tamanho dos blocos é, por exemplo, de 16x16 pixéis, 16x8 pixéis ou 8x8 pixéis.
Nomeadamente, como modos de guatro tipos de operações, há, neste caso em primeiro lugar, modo de compensação de movimento a partir da reprodução de uma imagem passada, 60 em segundo lugar, modo de compensação de movimento, a partir da reprodução de uma imagem futura, em terceiro lugar, compensação de movimento a partir de ambas as reproduções de imagens, passada ou futura (implementa, numa operação linear (por exemplo, cálculo do valor médio), cada pixel do bloco de referência de reprodução de imagem passada e cada pixel do bloco de referência de reprodução de imagem futura) e em quarto lugar, modo de compensação de ausência de movimento (isto é, modo intracodifiçado. Neste caso, a saida do sinal de bloco de imagem S54 é igual a zero). O compensador de movimento 56 seleciona um de quatro tipos de modos de operação, de acordo com o sinal de modo de compensação de movimento S56. O sinal de diferenças de reprodução do bloco S52 da secção de descodificação do sinal de bloco 54 é adicionado a cada pixel do sinal de bloco de imagem S54 saido do compensador de movimento 56 no adicionador 55. Em resultado disso obtém-se um sinal de reprodução de bloco S53. Este sinal de reprodução de bloco S53 é guardado na memória de campo designada pelo sinal de indicação de imagem atual S59, vindo do grupo de memórias de campo 57. A imagem em movimento é reconstruída a partir da corrente de dados, da forma acima referida. A reprodução da imagem designada de acordo com o sinal indicativo de saida de imagem S60 anteriormente descrito, das reproduções de imagens guardadas no grupo de memórias de campo 57, é feita sair através do terminal 60. 61
Deve notar-se que o sinal de controlo S104, o sinal de estrutura da imagem S201 e o sinal de tipo de codificação de imagem S202 são fornecidos através do terminal 62 ao compensador de movimento 56, do elemento de controlo da imagem de referência 58 e do elemento de saida de controlo de imagem 59. 0 elemento de determinação inversa de diferenças 202 para o vetor de movimento, anteriormente descrito, será agora descrito com referência à Fig.6.
Na Fig.6, o sinal de vetor de movimento diferencial S90 fornecido através do terminal 311, é reconstruído no elemento de determinação inversa de diferenças 202 da Fig.6 Para o elemento de determinação inversa de diferenças 202 são enviados, a bandeira de início de secção S211, bandeira de início de MB S210, sinal de vetor de movimento diferencial S90, sinal de modo de compensação de movimento S56, sinal de tipo de previsão S91 e sinal de estrutura de imagem S201. Nomeadamente, a bandeira de início do MB S210 é enviada para o terminal 312, o sinal de modo de compensação do movimento S56 é enviado para o terminal 313, o sinal de tipo de previsão S91 é enviado para os terminais 314 e 316 e o sinal de estrutura da imagem S201 é enviado para o terminal 315.
Neste caso, o número de receção dos vetores de movimento diferenciais avançados ou dos vetores de movimento diferenciais retrógrados a ser recebidos no âmbito do macrobloco, é reconhecido pelo sinal de estrutura de imagem S201 e pelo sinal de tipo de previsão S91. Tal número de receção é determinado conforme indicado pelas Tabelas 1-3 acima referidas. Nesta forma de realização, o número máximo respetivo de receções de vetores de movimento diferenciais avançados ou de vetores de movimento diferenciais 62 retrógrados é 2. Consequentemente, são recebidos, no máximo, quatro vetores de movimento diferenciais no âmbito do macrobloco.
Por esta razão, nesta forma de realização, o grupo do registo 305 no elemento de determinação inversa de diferenças 202 da Fig.6, é construído conforme mostrado na Fig.3, como acima referido. Neste caso são preparadas quatro memórias do registo PMV1 - PMV4, para armazenar vetores de movimento, de uma maneira semelhante à referida acima.
Os vetores de movimento diferenciais avançados e os vetores de movimento diferenciais retrógradas são obrigados a ter, respetivamente, uma relação de correspondência de um para um em relação às memórias do registo PMV1 - PMV4, de acordo com a ordem de receção no âmbito do macrobloco. Num sentido mais prático, a vetor de movimento diferencial avançado recebido em primeiro lugar é adicionado ao vetor de movimento reconstruído guardado na memória do registo PMV1. Além disso, o vetor de movimento diferencial avançado recebido em segundo lugar, no âmbito do macrobloco, é adicionado ao vetor de movimento reconstruído guardado na memória do registo PMV2. Ainda, o vetor de movimento diferencial retrógrado recebido em primeiro lugar no âmbito do macrobloco, é adicionado ao vetor de movimento reconstruído guardado na memória do registo PMV3. Adicionalmente, o vetor de movimento diferencial retrógrado recebido em segundo lugar no âmbito do macrobloco, é adicionado ao vetor de movimento reconstruído guardado na memória do registo PMV4. Nesta forma de realização, a ordem de receção dentro do macrobloco dos respetivos vetores de movimento, fornece os índices indicativos de qual o registo das memórias do registo PMV1 - PMV4, que guarda nele o 63 vetor de movimento reconstruído a ser adicionado aos respetivos vetores de movimento diferenciais.
Por outras palavras, nesta forma de realização, os índices "1" - "2" são fornecidos segundo a ordem da receção dos vetores de movimento diferenciais avançados dentro do macrobloco e os índices "3" - "4", são fornecidos segundo a ordem de receção dos vetores de movimento diferenciais retrógrados no âmbito daquele. Portanto, vetores de movimento que possuam os respetivos índices e as memórias do registo PMV são feitos ter uma relação de correspondência de um para um.
Adicionalmente, a sintaxe da corrente de bits do vetor de movimento é conforme já foi mostrado na Tabela 4 acima referida. Também neste caso, conforme indicado pela Tabela, os vetores de movimento a serem transmitidos e os registos PMV são feitos corresponder uns com os outros. A explicação da Tabela 4 é a mesma que aquela que foi executada do lado codificador.
Deve notar-se que, ao atualizar-se a memória do registo PMV1, o macrobloco, no qual o número de receção dos vetores de movimento diferenciais avançados é 1, atualiza a memória do registo PMV2 pelo mesmo valor. Mais, na atualização da memória do registo PMV3, o macrobloco, no qual o número de receção dos vetores de movimento diferenciais retrógrados é 1, atualiza a memória PMV4 pelo mesmo valor. A operação de comutação das memórias do registo PMV irá agora ser descrita com referência à Fig.6.
Na Fig.6, em resposta ao sinal de vetor de movimento diferencial S90 introduzido através do terminal 311, o gerador de bandeira de sinalização de vetores de movimento 64 diferenciais 308 emite uma bandeira de sinalização de vetor de movimento diferencial S306. Tais bandeiras de sinalização de vetor de movimento diferencial S306 são contadas pelo contador de vetores de movimento diferenciais 309. Deve notar-se que, quando a bandeira de inicio do MB S210 é estabelecida, o contador de vetores de movimento diferenciais 309 é reposto. O sinal de contagem de vetores de movimento S307 do contador de vetores de movimento 309 é introduzido no gerador de sinal de designação do indice do registo 310. Para este gerador são enviados, o sinal de modo de compensação de movimento S56, o sinal de tipo de previsão S91 e o sinal de estrutura de imagem S201.
Neste caso, o número de transmissão dos vetores de movimento diferenciais avançados ou dos vetores de movimento diferenciais retrógrados (contagem_vetor_movimento) a ser transmitidos no âmbito do macrobloco, é reconhecido pelo sinal de estrutura de imagem S201 e pelo sinal de tipo de previsão S91 e o número de transmissão de todo os vetores de movimento a serem transmitidos no âmbito do macrobloco, é reconhecido pelo sinal de modo de compensação de movimento S56. Por exemplo, no caso em que "contagem_vetor_movimento" seja 2 e o sinal de modo de compensação de movimento S5 6 indique o modo preditivo bidirecional, uma vez recebidos os vetores de movimento a ser recebidos no âmbito do macrobloco, pela ordem de dois vetores de movimento diferenciais avançados e dois vetores de movimento diferenciais retrógrados, o número de transmissão de todos os vetores de movimento diferenciais é 4.
Com base nesta informação, o gerador de sinal de indicativo do indice do registo 310 gera o sinal de designação do indice do registo S308 a partir do sinal de número de contagem de vetores de movimento S307 e emite-o. De acordo 65 com este sinal de designação de indice do registo S308, no exemplo acima descrito, por exemplo, quando o sinal de número de contagem de vetores de movimento s307 toma o valor 1, é designada a memória do registo PMV1 no grupo de memórias do registo 305; quando esse sinal toma o valor 2, é designada a memória do registo PMV2 do grupo de memórias do registo 305; quando esse sinal toma o valor 3, é designada a memória do registo PMV3 do grupo de memórias do registo 305; e quando esse sinal toma o valor 4, é designada a memória do registo PMV4, do grupo de memórias do registo 305.
Como outro exemplo, no caso em que haja uma "contagem_vetor_movimento" e o sinal de modo de compensação de movimento S56 indique o modo preditivo retrógrado, uma vez que apenas um vetor de movimento diferencial retrógrado é transmitido, como número de transmissão de todas as vetores de movimento diferenciais transmitidos no âmbito do macrobloco, quando o sinal de número de contagem de vetores de movimento S307 toma o valor 1, é designada a memória do registo PMV3, do grupo de memórias do registo 305. O grupo do registo 305 responde ao sinal de designação do indice do registo S308 para enviar o sinal de vetor de movimento S302, guardado no registo designado, através do comutador 303.
Essa saida do sinal de vetor de movimento S302 é convertido à escala (sinal de saida de vetor de movimento convertido à escala S302), no conversor de escala 302 da conversão de escala C, conforme a ocasião exija, por meio do sinal de indicação de escala CONVERSÃO (sinal de indicação de escala C) , enviado do circuito comutador 307, fornecido pelo sinal de tipo de previsão S91 e é então introduzido no circuito adicionador 301, no qual é adicionado ao sinal de de 66 vetores de movimento diferenciais S90 a entrar no momento. Assim, o sinal de vetor de movimento S55 é reconstruído. Este sinal de vetor de movimento S55 é enviado a partir do terminal 317 como vetor de movimento reconstruído.
Por outro lado, o sinal de vetor de movimento atualmente reconstruído S55 é convertido à escala, pelo sinal de indicação de escala S305 (sinal de indicação de escala D) no conversor de escala 306 da conversão de escala D, conforme as necessidades da ocasião e depois é sobrescrito à memória do registo PMV do grupo registo 305, designada pelo sinal de designação do índice do registo S308 e é novamente guardado nela.
Deve notar-se que o conversor de escala 302 e o conversor de escala 306 podem ser usados para o ajustamento espacial no momento do cálculo de vetores de movimento diferenciais, entre vetores de movimento, que fazem referência a quadro e vetores de movimento, que fazem referência a campos e/ou no ajustamento da escala, com base na causa, no ponto do tempo, com base no momento do cálculo de vetores de movimento diferenciais entre vetores de movimento, que possuem distâncias diferentes de ponto no tempo até ao campo de referência.
Mais ainda, a reposição da memória do registo PMV do elemento de determinação inversa de diferenças 202 da Fig.6, é executada no macrobloco, em que o sinal de modo de compensação de movimento S56 indique o modo intracodifiçado e no macrobloco onde esteja estabelecida a bandeira de início da secção S211. Nesta altura, todos os registos do grupo do registo 305 são repostos em zero. A instrução de reposição deste grupo do registo 305 é executada pelo elemento de instrução de reposição do registo 318. Nesta forma de realização, este elemento de instrução de 67 reposição do registo 318 é alimentado com a bandeira de inicio de secção S211, por intermédio do terminal 68 da Fig.5 e através do terminal 319 da Fig.6 e com o sinal de modo de compensação do movimento S56, e o sinal de tipo de codificação da imagem S202, através do terminal 64 da Fig.5 e do terminal 319 da Fig.6 e com a bandeira de macrobloco ignorado S95, através do terminal 63 da Fig.5 e do terminal 319 da Fig.6. 0 elemento de determinação inversa de diferenças 202 para os vetores de movimento é construído de uma maneira referida acima.
Voltando à Fig.5, será agora descrito o tratamento do macrobloco ignorado, do lado do descodificador.
Na Fig.5, depois do macrobloco ter sido recebido, é obtido o endereço na imagem, desse macrobloco, a partir da informação de cabeçalho do macrobloco. Nomeadamente, o sinal de endereço do macrobloco S94 obtido no elemento de VLC inversa 52 é introduzido no comparador de endereços de macroblocos 203.
Neste comparador de endereços de macroblocos 203, está guardado o endereço do macrobloco imediatamente anterior em um. É feita a comparação entre esse valor e o sinal de endereço de macrobloco S94. Em resultado disso, quando os endereços dos macroblocos são descontínuos, isto é, a diferença é de 2 ou mais, reconhece-se que existe um macrobloco ignorado. O número, que seja menor do que esse valor de diferença de 1, é o número de macroblocos ignorados. Então, o comparador de endereços de macroblocos 203 estabelece a bandeira de macrobloco ignorado S95. 68
Quando a bandeira de macrobloco ignorado S95 é estabelecida, o descodificador desta forma de realização introduz o processamento do macrobloco ignorado. Inicialmente, o VLC inverso 52 emite zero como o sinal de bloco codificado S50, quando o macrobloco ignorado S95 é estabelecido. Consequentemente, nessa altura, o sinal de diferença de reprodução do bloco S52 torna-se também igual a zero.
Além disso, no caso em que, por exemplo, o sinal de tipo de codificação da imagem S202 seja imagem P, em primeiro lugar, o elemento de instrução de reposição do registo 318 repõe todos os registos PMV, no elemento de determinação inversa de diferenças 202 para vetores de movimento, em zero, em segundo lugar, o elemento de determinação inversa de diferenças 202 emite zero como sinal de vetor de movimento S55, em terceiro lugar o elemento de VLC inversa 52 emite o sinal de modo de compensação do movimento S56 como previsão avançada, em quarto lugar, o elemento de VLC inversa 52 permite que o sinal de tipo de previsão S91 seja uma "previsão baseada em quadro", quando o sinal de estrutura de imagem S201 seja uma estrutura de quadro, permite-lhe que seja uma "previsão baseada num campo de 16x16", quando o sinal de estrutura da imagem S201 seja uma estrutura de campo e permite-lhe que seja uma "previsão baseada num quadro de 16x16", quando o sinal de estrutura da imagem S201 seja progressivo, 69 em quinto lugar, o elemento de VLC inversa 52 permite que o sinal de paridade de referência do campo do vetor de movimento S92 seja igual ao sinal de paridade do campo prevista S94 e em sexto lugar, emite zero como sinal de vetor de sub-movimento S93.
Ainda mais, no caso de, por exemplo, o sinal de tipo de codificação da imagem S202, ser imagem B, em primeiro lugar , o elemento de determinação inversa de diferenças 202 envia o valor guardado na memória do registo PMV como sinal de vetor de movimento S55, e em segundo lugar, a memória 204 emite o sinal de modo de compensação de movimento S56, o sinal de tipo de previsão S91, o sinal de paridade de referência do campo do vetor de movimento S92, o sinal de vetor de sub-movimento S93 e o sinal de paridade de campo prevista S94 do macrobloco descodificado imediatamente antes, que se encontram guardados.
Adicionalmente, o processamento do descodificador, no caso de o macrobloco ignorado ser avaliado por outra forma de realização do lado do codificador, é apresentado coletivamente abaixo. Inicialmente, no caso da bandeira do macrobloco ignorado S95 ser estabelecida na imagem, em que o sinal de tipo de codificação de imagem S202 seja imagem P e o sinal de estrutura da imagem S201 seja estrutura de campo, em primeiro lugar, o elemento de instrução de reposição do registo 78 repõe todos os registos PMV, 70 do elemento de determinação inversa de diferenças 202 para o vetor de movimento, em zero, em segundo lugar, o elemento de determinação inversa de diferenças 202 emite zero como sinal de vetor de movimento S55 para o compensador de movimento 56, em terceiro lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56, para executar previsão avançada como modo de compensação de movimento S56, em quarto lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56 para executar previsão de campo de 16x16, como sinal de tipo de previsão S91 e em quinto lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56 para emitir a mesma paridade que a do sinal de paridade de campo prevista S94, como sinal de paridade de referência de campo de vetor de movimento S92.
No caso de a bandeira do macrobloco ignorado S95 ser estabelecida na imagem onde o sinal de tipo de codificação de imagem S202 seja imagem P e o sinal de estrutura de imagem S201 seja estrutura de quadro, em primeiro lugar, o elemento de instrução de reposição de registo 78 repõe em zero todos os registos PMV do elemento de determinação inversa de diferenças 202, para o vetor de movimento, 71 em segundo lugar, o elemento de determinação inversa de diferenças 202 emite zero como sinal de vetor de movimento S55 para o compensador de movimento 56. em terceiro lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56 para executar previsão avançada como modo de compensação de movimento S56 e em quarto lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56 para executar previsão de quadro como sinal de tipo de previsão S91.
No caso de a bandeira de macrobloco ignorado S95 ter sido estabelecida na imagem onde o sinal de tipo de codificação da imagem S202 seja imagem B e o sinal de estrutura da imagem S201 seja estrutura de campo, em primeiro lugar, o elemento de determinação inversa de diferenças 202 emite um valor guardado nas memórias de registo PMV, como sinal de vetor de movimento S55, para o compensador de movimento 56, em segundo lugar, a memória 204 envia, para o compensador de movimento 56, o sinal de modo de compensação de movimento S56, o sinal de paridade de referência do campo do vetor de movimento S92 e o sinal de paridade de campo prevista S94 do macrobloco descodificado imediatamente antes, que se encontravam guardados e em terceiro lugar, o elemento de VLC inversa 52 instrui o compensador de movimento 56 para executar previsão de campo de 16x16 como sinal de tipo de previsão S91. 72
No caso de a bandeira de macrobloco ignorado S95 ter sido estabelecida na imagem, em cuja imagem o sinal de tipo de codificação de imagem S202 seja imagem B e o sinal de estrutura da imagem S201 seja quadro, em primeiro lugar, o elemento de determinação inversa de diferenças 202 faz sair, para o compensador de movimento 56, o valor guardado nas memórias do registo PMV como sinal de vetor de movimento S55. em segundo lugar, a memória 204 faz sair, para o compensador de movimento 56, o sinal de modo de compensação de movimento S56 do macrobloco descodificado imediatamente antes, que se encontra guardado e em terceiro lugar, o elemento de VLC inversa 52 instrui o compensador de movimento para executar previsão de quadro como sinal de tipo de previsão S91. O processamento do macrobloco ignorado é executado desta maneira. Este processamento é repetido para todos os macroblocos ignorados. O descodificador executa a descodificação de maneira semelhante à dos macroblocos vulgares, com base no sinal assim obtido.
Quando é obtido um macrobloco, que não é um macrobloco ignorado, isto é a bandeira de macrobloco ignorado S95 apresentada através do terminal 66 é "FALSO", o conteúdo da memória 204 é atualizado pelo sinal de modo de compensação de movimento S56, pelo sinal de tipo de previsão S91, pelo sinal de paridade de referência do campo do vetor de movimento S92, pelo sinal de vetor de sub-movimento S93 e pelo sinal de paridade de campo prevista S94, desse macrobloco. Nesta forma de realização, o sinal de estrutura 73 de imagem S201 e o sinal de tipo de codificação da imagem S202 são também fornecidos através do terminal 65 à memória 204. O dispositivo de descodificação da imagem em movimento é construído de uma maneira conforme descrita acima, para assim reproduzir a imagem a partir da corrente de bits.
Finalmente, será agora descrita uma operação mais prática desta forma de realização. A Fig.7 mostra o funcionamento no caso de o primeiro exemplo (Fig.18) de determinação da diferença entre vetores de movimento, no lado codificador convencional apresentado, ser executado nesta forma de realização.
Por exemplo, na Fig.7, o vetor de movimento da porção superior do macrobloco MBO é (5, 1)(d, o vetor de movimento da porção inferior do macrobloco MBO é (5, 5) <2), o vetor de movimento da porção superior do macrobloco MB1 é o vetor (5, 5)o), o vetor de movimento da porção inferior do macrobloco MB1 é (5, 5) (4) o vetor de movimento da porção superior do macrobloco MB2 é (5, 5) (5> e o vetor de movimento da porção inferior do macrobloco MB2 é (5, 5) <6> . Adicionalmente, (0, 0) encontra-se guardado nas memórias do registo PMV1 e PMV2 da Fig.2 acima referida (isto é Fig.3) como um valor inicial.
No caso do exemplo da Fig.7, no macrobloco MBO, obtém-se (5, 1) d) - PMV1 = (5, 1) d), que é a diferença entre o vetor de movimento (5, 1) da porção superior e o valor inicia (0, 0) da memória do registo PMV1. Este valor é enviado, como diferença do vetor de movimento da porção superior do MBO. O vetor de movimento (5, 1) (i> é guardado na memória do PMV1 registo PMV1. Além disso, obtém-se (5, 5) (2> - PMV1 = (5, 74 5), que é a diferença entre o vetor de movimento (5, 5) (2) da porção inferior e o valor inicial (0, 0) da memória do registo PMV2. Este valor é enviado como vetor de movimento diferencial da porção inferior do MBO. O vetor de movimento (5, 5) (2) da porção inferior é guardado na memória do registo PMV2. Além disso, no macrobloco MB1, obtém-se (5, 5) o) - PMV1 = (0, 4), que é a diferença entre o vetor de movimento (5, 5) <3> da porção superior e o valor (5, 1) da memória do registo PMV1. Este valor é enviado como vetor de movimento diferencial da porção superior do MB1. O vetor de movimento (5, 5) da porção superior é guardado na memória do registo PMV1. É ainda obtido (5, 5) (4) - PMV2 = (0, 0) , que é a diferença entre o vetor de movimento (5, 5) (4) da porção inferior do macrobloco MB1 e o valor (5, 5) (2> da memória do registo PMV2. Este valor é enviado, como vetor de movimento diferencial da porção inferior do MB1. O vetor de movimento (5, 5) (4> da porção inferior é guardado na memória do registo PMV2. De forma semelhante, no macrobloco MB2 obtém-se, (5, 5) <5> - PMV1 = (0, 0), que é a diferença entre o vetor de movimento (5, 5) (5) da porção superior e o valor (5, 5) ρ> da memória do registo PMV1. Este valor é enviado como vetor de movimento diferencial da porção superior do MB2. O vetor de movimento (5, 5) (5) da porção superior é guardado na memória do registo PMV1. Adicionalmente, obtém-se (5, 5) <6> - PMV2 = (0, 0), que é a diferença entre o vetor de movimento (5, 5) (6> da porção inferior do macrobloco MB2 e o valor (5, 5) (4) da memória do registo PMV2. Este valor é enviado como vetor de movimento diferencial da porção inferior do MB2. O vetor de movimento (5, 5) (6) da porção inferior é guardado na memória do registo PMV2.
Conforme se disse acima, o macrobloco MB2 não tem nenhum sinal previsivo de erro a ser transmitido e o modo de compensação do movimento, etc., são os mesmos que os do 75 macrobloco imediatamente anterior. Neste caso, o macrobloco MB2 é um macrobloco ignorado. Nomeadamente, no caso de o macrobloco MB2 ser um macrobloco ignorado, o vetor de movimento é copiado do macrobloco MB1 imediatamente anterior no lado do descodificador. A Fig.8 mostra a operação do lado do descodificador.
Nomeadamente, na Fig.8 é agora assumido que são obtidos (5, 1) d) de vetor de movimento diferencial da porção superior do macrobloco MBO, (5, 5) (2) de vetor de movimento diferencial da porção inferior do macrobloco MBO, (0, 4)(3) de vetor de movimento diferencial da porção superior do macrobloco MB1 e (0, 0)(4> de vetor de movimento diferencial da porção inferior do macrobloco MBl, como vetores de movimento diferenciais no exemplo da Fig.7, acima referido e que o macrobloco MB2 é um macrobloco ignorado. Mais ainda, (0, 0) está guardado como valor inicial, nas memórias do registo PMV1 e PMV2 da Fig.6 (isto é, Fig.3) acima referidas.
No caso do exemplo da Fig.8, no macrobloco MBO é obtido (5, 1) d) + PMV1 = (5, 1) por adição do vetor de movimento diferencial (5, 1) (ι> da porção superior e do valor inicial (0, 0) da memória do registo PMV1, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1. No macrobloco MBO é ainda obtido (5, 5) (2> + PMV2 = (5, 5) , por adição do vetor de movimento diferencial (5, 5) (2> da porção inferior e do valor inicial (0, 0) da memória do registo PMV2, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV2. De modo semelhante é obtido, no macrobloco MBl (0,4) (3) + PMV1 = (5, 5) por adição da diferença do vetor de movimento (0, 4) (3) da porção superior e do vetor de movimento 76 reconstruído (5, 1) da memória do registo PMV1, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV1. Mais ainda, no macrobloco MB1 é obtido (0, 0) <4> + PMV2 = (5, 5), por adição do vetor de movimento diferencial (0, 0)(4) da porção inferior e do vetor de movimento reconstruído (0, 0) (4) da porção inferior e do vetor de movimento reconstruído (5, 5) da memória do registo PMV2, como vetor de movimento reconstruído. Este vetor de movimento reconstruído é enviado para a memória do registo PMV2. Adicionalmente, no macrobloco MB2, uma vez que este macrobloco é um macrobloco ignorado, (5, 5) (5> é copiado na porção superior e (5, 5) (6) é copiado na porção inferior como vetores de movimento reconstruídos.
Nomeadamente, no exemplo da Fig.8, uma vez que o macrobloco MB2 é um macrobloco ignorado, o vetor é copiado da memória do registo PMV e o modo de compensação do movimento é também copiado do macrobloco MB1 imediatamente anterior. Conforme se disse acima, de acordo com esta forma de realização, é possível proporcionar também um vetor de movimento reconstruído correto em relação ao macrobloco ignorado. São construídos dispositivos de codificação e descodificação de imagens em movimento assim caracterizados.
Aplicabilidade Industrial
De acordo com a presente invenção, em dispositivos destinados a executar a codificação e descodificação preditiva de compensação de movimento da imagem em movimento, no caso de, relativamente aos vetores de movimento fornecidos em unidades de macroblocos, existirem um ou mais macroblocos, que façam referência ao quadro 77 (campo) passado na previsão avançada, existirem um ou mais macroblocos, que façam referência ao quadro (campo) futuro, na previsão retrógrada e existirem respetivamente um ou mais macroblocos, que façam referência aos quadros (campos) passado e futuro e no caso de o número de vetores de movimento, nos respetivos modos de compensação de movimento, variar em unidades de macroblocos, pode ser construído, do lado codificador, um elemento de determinação de diferenças de vetor de movimento e o macrobloco ignorado pode ser avaliado.
Do lado descodificador pode ser construído um elemento de determinação inversa de diferenças, para reconstrução do vetor de movimento a partir de vetores de movimento diferenciais recebidos. Este elemento de determinação inversa de diferenças caracteriza-se por não haver necessidade de proporcionar memórias do registo, exceto quanto às memórias do registo PMV destinadas a conter os vetores de movimento do macrobloco processado imediatamente antes. Além disso torna-se possivel tratar o macrobloco ignorado, no lado descodificador.
No caso acima descrito, torna-se vantajosamente possivel tratar, por meio desta técnica, de macroblocos ignorados, que não podiam ser tratados na técnica anterior. Em relação ao macrobloco, que seja um macrobloco ignorado, o codificador não transmite quaisquer dados. 0 macrobloco ignorado é tecnologia de codificação importante, tendo em vista a melhoria da eficiência da codificação.
Por exemplo, no caso em que, mesmo que uma imagem a ser processada seja uma sequência de imagens em movimento, o seu conteúdo seja uma cena onde imagens paradas (ou imagens com um movimento muito reduzido) se sucedam, a maior parte dos macroblocos pode ser tratada como macroblocos 78 ignorados. Num caso extremo, o primeiro quadro pode ser codificado dentro da imagem, sem compensação de movimento para a transmitir, para tratar esse macrobloco quase como um macrobloco ignorado a partir do segundo quadro e de quadros que se sucedam a esse. Neste caso pode esperar-se uma grande melhoria de eficiência da codificação.
Lisboa, 18 de Novembro de 2013

Claims (2)

1 REIVINDICAÇÕES 1. Um método de descodificação de um sinal de figura da descodificação de um sinal de figura codificado, que inclui grupos de figuras que representam uma imagem de video codificada de compressão, incluindo os grupos de figuras pelo menos um tipo de codificação de figura P e codificados para representar uma sequência de macroblocos, tendo cada macrobloco pelo menos um vetor de movimento codificado como um vetor de movimento diferencial, o método de descodificação compreendendo os passos de: descodificação de um macrobloco atual do sinal de imagem codificado por meio da utilização de um novo vetor de movimento reconstruído através da deteção de uma ordem de receção de vetores de movimento diferenciais numa direção predeterminada, no âmbito do macrobloco presente, seleção de uma de quatro memórias (PMV1 - PMV4) para vetores de movimento numa direção predeterminada, com base na ordem de deteção da receção, para leitura de um vetor de movimento reconstruído na direção predeterminada e adição do vetor de movimento diferencial do macrobloco atual, na direção predeterminada e do vetor de movimento reconstruído, lido a partir da memória selecionada na direção predeterminada, para formar um novo vetor de movimento reconstruído, incluindo a descodificação 2 detetar um macrobloco em falta do macrobloco atual do sinal de figura codificado se a diferença entre endereços do macrobloco atual e um anterior, de dois macroblocos sucessivos, for maior que um, e detetar quando um tipo de codificação de figura de um macrobloco em falta for uma figura P e uma estrutura de figura é assim uma estrutura de campo, e em resposta à deteção de que o macrobloco em falta é uma figura de tipo P e é uma estrutura de campo, descodificar o macrobloco atual como macrobloco em falta utilizando o novo vetor de movimento reconstruído ao copiar um macrobloco de uma figura anterior sob as condições de que o sinal de erro preditivo do macrobloco atual do sinal de figura codificado ser zero, o vetor de movimento diferencial ser zero, o modo de compensação de movimento ser previsão avançada, um tipo de previsão ser de previsão de campo de 16x16, uma paridade de referência do campo de vetor de movimento ser a mesma que o campo de paridade previsto, e redefinir os valores das quatro memórias (PMV1-PMV4) a zero.
2. Um dispositivo de descodificação de sinal de figura para a descodificação de um sinal de figura codificado, que inclui grupos de figuras que representam uma imagem de video codificada de compressão, os grupos de figuras incluindo pelo menos um tipo de codificação de figura P, e codificados para representar uma sequência de macroblocos, cada macrobloco tendo pelo menos um vetor de movimento codificado com um vetor de movimento diferencial, o dispositivo de descodificação de sinal de figura compreendendo: 3 meios para descodificar um macrobloco atual do sinal de imagem codificado, por meio da utilização de um novo vetor de movimento reconstruído através da deteção de uma ordem de receção dos vetores de movimento diferenciais numa direção predeterminada no âmbito do macrobloco atual, selecionar uma de quatro memórias (PMV1 - PMV4) para os vetores de movimento numa direção predeterminada, com base na ordem detetada de receção, para leitura de um vetor de movimento reconstruído na direção predeterminada e adicionar os vetores de movimento diferenciais do macrobloco atual na direção predeterminada e leitura do vetor de movimento reconstruído, a partir da memória selecionada na direção predeterminada, para formar o novo vetor de movimento reconstruído, incluindo os meios de codificação meios para detetar um macrobloco em falta do macrobloco atual do sinal de figura codificado se a diferença entre endereços do macrobloco atual e um anterior, de dois macroblocos sucessivos, for maior que um, meios para detetar quando um tipo de codificação de figura de um macrobloco em falta é uma figura P, e uma estrutura de figura é uma estrutura de campo, em resposta à deteção de que o macrobloco em falta é uma figura de tipo P e é uma estrutura de campo, meios para detetar o macrobloco atual como o macrobloco em falta utilizando o novo vetor de movimento reconstruído copiando um macrobloco da figura passada sob as condições de que o sinal de erro preditivo do macrobloco atual do sinal de figura codificado ser zero, o vetor de movimento diferencial 4 ser zero, o modo de compensação de movimento ser previsão avançada, um tipo de previsão ser de previsão de campo de 16x16, uma paridade de referência do campo de vetor de movimento ser a mesma que o campo de paridade previsto, e meios para redefinir os valores das quatro memórias (PMV1-PMV4) a zero. Lisboa, 18 de Novembro de 2013
PT204184T 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo PT1098529E (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6568993 1993-03-24
JP12468693 1993-04-30

Publications (1)

Publication Number Publication Date
PT1098529E true PT1098529E (pt) 2013-11-25

Family

ID=26406823

Family Applications (4)

Application Number Title Priority Date Filing Date
PT10012181T PT2375753E (pt) 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
PT94910528T PT651574E (pt) 1993-03-24 1994-03-24 Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem
PT204184T PT1098529E (pt) 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
PT100121805T PT2334083E (pt) 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo

Family Applications Before (2)

Application Number Title Priority Date Filing Date
PT10012181T PT2375753E (pt) 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
PT94910528T PT651574E (pt) 1993-03-24 1994-03-24 Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem

Family Applications After (1)

Application Number Title Priority Date Filing Date
PT100121805T PT2334083E (pt) 1993-03-24 1994-03-24 Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo

Country Status (13)

Country Link
US (3) US5701164A (pt)
EP (4) EP1098529B1 (pt)
JP (4) JP3393234B2 (pt)
KR (1) KR100308099B1 (pt)
CN (2) CN1075323C (pt)
AT (1) ATE204691T1 (pt)
AU (2) AU673250B2 (pt)
CA (1) CA2118118C (pt)
DE (1) DE69428019T2 (pt)
DK (1) DK0651574T3 (pt)
ES (4) ES2431289T3 (pt)
PT (4) PT2375753E (pt)
WO (1) WO1994022269A1 (pt)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19509418A1 (de) * 1995-03-16 1996-09-19 Thomson Brandt Gmbh Verfahren und Schaltungsanordnung zur Unterabtastung bei Bewegungsschätzung
JPH09182083A (ja) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
DE19603808C1 (de) * 1996-02-02 1997-04-17 Siemens Ag Anordnung und Verfahren zur Codierung und Decodierung von mit einem blockbasierten Codierungsverfahren codierten Bildern
TW312770B (en) * 1996-10-15 1997-08-11 Japen Ibm Kk The hiding and taking out method of data
DE69735437T2 (de) * 1996-12-12 2006-08-10 Matsushita Electric Industrial Co., Ltd., Kadoma Bildkodierer und bilddekodierer
US5870146A (en) * 1997-01-21 1999-02-09 Multilink, Incorporated Device and method for digital video transcoding
US6185340B1 (en) * 1997-02-18 2001-02-06 Thomson Licensing S.A Adaptive motion vector control
GB9703470D0 (en) 1997-02-19 1997-04-09 Thomson Consumer Electronics Trick play reproduction of MPEG encoded signals
US6018368A (en) * 1997-07-11 2000-01-25 Samsung Electro-Mechanics Co., Ltd. Scalable encoding apparatus and method with improved function of scaling motion vector
JPH11275587A (ja) * 1998-03-20 1999-10-08 Pioneer Electron Corp 動きベクトル生成装置、画像符号化装置、動きベクトル生成方法及び画像符号化方法
US6501799B1 (en) * 1998-08-04 2002-12-31 Lsi Logic Corporation Dual-prime motion estimation engine
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6983018B1 (en) * 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
FR2813001B1 (fr) 2000-08-11 2002-12-20 Thomson Multimedia Sa Procede de conversion de format couleur d'une sequence d'images
US6700934B2 (en) 2001-03-14 2004-03-02 Redrock Semiconductor, Ltd. Error detection using a maximum distance among four block-motion-vectors in a macroblock in a corrupted MPEG-4 bitstream
US7602847B1 (en) * 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
KR100378795B1 (ko) * 2001-04-02 2003-04-03 엘지전자 주식회사 동영상에서 b픽쳐의 신축적인 다이렉트 모드 코딩 방법
GB2374479B (en) * 2001-04-12 2005-05-04 Snell & Wilcox Ltd Video signal processing
FR2824988B1 (fr) * 2001-05-21 2003-08-01 Thomson Licensing Sa Procede et dispositif de codage video utilisant la norme mpeg4
WO2002099582A2 (en) * 2001-06-02 2002-12-12 Polycom, Inc. System and method for point to point integration of personal computers with videoconferencing systems
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US20030039226A1 (en) * 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
BR0206305A (pt) * 2001-11-06 2004-07-13 Matsushita Electric Ind Co Ltd Método de codificação de imagem em movimento e método de decodificação de imagem em movimento
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
KR101033398B1 (ko) * 2001-11-21 2011-05-09 제너럴 인스트루먼트 코포레이션 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
JP4610195B2 (ja) 2001-12-17 2011-01-12 マイクロソフト コーポレーション スキップマクロブロックコード化
JP4150742B2 (ja) * 2002-01-09 2008-09-17 松下電器産業株式会社 動きベクトル復号化方法
CN101031082B (zh) * 2002-01-09 2011-08-17 松下电器产业株式会社 移动向量解码方法和移动向量解码装置
JP4114859B2 (ja) 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US6690307B2 (en) * 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
HUE026930T2 (en) * 2002-03-15 2016-08-29 Nokia Technologies Oy Procedure for encoding motion in a series of images
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) * 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
US7072402B2 (en) * 2002-05-13 2006-07-04 General Instrument Corporation Methods and apparatus for dynamically adjusting f-codes for a digital picture header
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
KR100956910B1 (ko) 2002-07-02 2010-05-11 파나소닉 주식회사 움직임 벡터 도출 방법, 동화상 부호화 방법, 및 동화상복호화 방법
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
KR100865034B1 (ko) 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
JP4007594B2 (ja) * 2002-09-26 2007-11-14 株式会社東芝 動画像符号化装置及び方法、動画像符号化方式変換装置及び方法
KR100522595B1 (ko) * 2002-11-29 2005-10-19 삼성전자주식회사 엠펙 비디오 복호화방법 및 엠펙 비디오 복호화기
JP4003128B2 (ja) * 2002-12-24 2007-11-07 ソニー株式会社 画像データ処理装置および方法、記録媒体、並びにプログラム
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
US7739105B2 (en) * 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7499493B2 (en) * 2003-06-20 2009-03-03 Lsi Corporation Dual block motion vector storage in compressed form
US20050013496A1 (en) * 2003-07-16 2005-01-20 Bruls Wilhelmus Hendrikus Alfonsus Video decoder locally uses motion-compensated interpolation to reconstruct macro-block skipped by encoder
US7426308B2 (en) 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7499495B2 (en) 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7577200B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7606308B2 (en) 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
US20050117639A1 (en) * 2003-10-24 2005-06-02 Turaga Deepak S. Optimal spatio-temporal transformations for reduction of quantization noise propagation effects
US7346111B2 (en) * 2003-12-10 2008-03-18 Lsi Logic Corporation Co-located motion vector storage
US20050169376A1 (en) * 2004-01-30 2005-08-04 Pai Ramadas L. Motion vector address computer error detection
US7406598B2 (en) * 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
TWI268715B (en) * 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
US8861601B2 (en) 2004-08-18 2014-10-14 Qualcomm Incorporated Encoder-assisted adaptive video frame interpolation
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US7421048B2 (en) * 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
US7609766B2 (en) * 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) * 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US20070064809A1 (en) * 2005-09-14 2007-03-22 Tsuyoshi Watanabe Coding method for coding moving images
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
CN101543053B (zh) * 2007-02-07 2011-07-06 索尼株式会社 图像处理设备,成像设备,图像处理方法
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
JP4325708B2 (ja) * 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
US8184715B1 (en) * 2007-08-09 2012-05-22 Elemental Technologies, Inc. Method for efficiently executing video encoding operations on stream processor architectures
US8121197B2 (en) 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
US7949775B2 (en) 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
KR101377660B1 (ko) * 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20100232511A1 (en) * 2009-03-12 2010-09-16 Himax Media Soltuions, Inc. Motion compensator, motion compensating method, and motion-compensated video decoder implementing the same
US9100656B2 (en) * 2009-05-21 2015-08-04 Ecole De Technologie Superieure Method and system for efficient video transcoding using coding modes, motion vectors and residual information
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
US8600179B2 (en) * 2009-09-17 2013-12-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
KR101872178B1 (ko) 2010-11-25 2018-06-27 엘지전자 주식회사 영상 정보의 시그널링 방법 및 이를 이용한 영상 정보의 복호화 방법
US11284081B2 (en) 2010-11-25 2022-03-22 Lg Electronics Inc. Method for signaling image information, and method for decoding image information using same
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
JP5748225B2 (ja) * 2012-01-26 2015-07-15 日本電信電話株式会社 動画像符号化方法,動画像符号化装置および動画像符号化プログラム
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
CN111095926A (zh) 2017-09-12 2020-05-01 三星电子株式会社 用于对运动信息进行编码和解码的方法以及用于对运动信息进行编码和解码的装置
KR102631361B1 (ko) 2018-10-11 2024-01-31 엘지전자 주식회사 변환 계수 코딩 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910009092B1 (ko) * 1988-02-29 1991-10-28 미쯔비시덴끼 가부시끼가이샤 프레임간의 벡터 양자화 부호화 및 복호화 장치
US5194950A (en) * 1988-02-29 1993-03-16 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
JPH0666948B2 (ja) * 1988-02-29 1994-08-24 三菱電機株式会社 フレーム間ベクトル量子化符号化復号化装置
EP0715469B1 (en) * 1989-10-14 2001-09-12 Sony Corporation Video signal coding/decoding method and apparatus
KR950011200B1 (ko) * 1990-10-31 1995-09-29 니뽕 빅터 가부시끼가이샤 인터레이스 동화상 신호의 압축 장치
US5455629A (en) * 1991-02-27 1995-10-03 Rca Thomson Licensing Corporation Apparatus for concealing errors in a digital video processing system
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5210605A (en) * 1991-06-11 1993-05-11 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
TW245871B (en) * 1994-08-15 1995-04-21 Gen Instrument Corp Method and apparatus for efficient addressing of dram in a video decompression processor

Also Published As

Publication number Publication date
JP3393234B2 (ja) 2003-04-07
EP0651574A1 (en) 1995-05-03
EP2334083A1 (en) 2011-06-15
JP3381169B2 (ja) 2003-02-24
AU700535B2 (en) 1999-01-07
CA2118118C (en) 2004-02-24
AU673250B2 (en) 1996-10-31
US5946042A (en) 1999-08-31
PT651574E (pt) 2002-02-28
CN1349354A (zh) 2002-05-15
PT2334083E (pt) 2013-09-30
CN1106199A (zh) 1995-08-02
EP1098529B1 (en) 2013-10-16
AU6291294A (en) 1994-10-11
ES2431289T3 (es) 2013-11-25
JP3614160B2 (ja) 2005-01-26
ES2159553T3 (es) 2001-10-16
EP0651574B1 (en) 2001-08-22
EP2334083B1 (en) 2013-08-28
JP2001204033A (ja) 2001-07-27
AU6558496A (en) 1996-11-07
US6040863A (en) 2000-03-21
ES2430060T3 (es) 2013-11-18
ES2438184T3 (es) 2014-01-16
EP1098529A3 (en) 2008-10-29
JP3614159B2 (ja) 2005-01-26
US5701164A (en) 1997-12-23
WO1994022269A1 (en) 1994-09-29
KR950701487A (ko) 1995-03-23
JP2003179934A (ja) 2003-06-27
DK0651574T3 (da) 2001-10-08
DE69428019T2 (de) 2002-05-29
CN1075323C (zh) 2001-11-21
ATE204691T1 (de) 2001-09-15
EP1098529A2 (en) 2001-05-09
EP2375753B1 (en) 2013-09-11
JP2003179935A (ja) 2003-06-27
KR100308099B1 (ko) 2001-12-01
EP0651574A4 (en) 1998-06-17
EP2375753A1 (en) 2011-10-12
DE69428019D1 (de) 2001-09-27
PT2375753E (pt) 2013-10-21
CA2118118A1 (en) 1994-09-25
CN1251513C (zh) 2006-04-12

Similar Documents

Publication Publication Date Title
PT1098529E (pt) Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
ES2216028T3 (es) Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento.
JP3863510B2 (ja) 動きベクトル符号化/復号化方法及びその装置
KR100592651B1 (ko) 트랜스코딩 방법 및 장치
JP3778721B2 (ja) 動画像符号化方法および装置
JPH05137130A (ja) 動画像符号化装置及びその復号装置
JPH1023423A (ja) 画像符号化装置および画像復号化装置
JP2004023444A (ja) 動画符号化装置、及び動画記録再生装置
JP2004032355A (ja) 動画像符号化方法,動画像復号方法,動画像符号化装置および動画像復号装置
CN101822058A (zh) 使用像素抽取的视频编码
JP4130197B2 (ja) 動画像符号化方法および装置
JP4441182B2 (ja) 画像符号化装置および画像復号化装置
JP2624013B2 (ja) 画像符号化方法及び装置
KR100240620B1 (ko) 양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치
JP3188081B2 (ja) 画像符号化方法および画像符号化装置
JP2925046B2 (ja) 動画像の動き補償予測方法
JPH09271028A (ja) 動きベクトル検出回路
JPH09154136A (ja) 画像信号符号化方法及び装置、信号記録媒体、並びに画像信号復号方法及び装置
JP2008061270A (ja) 動画符号化装置、及び動画記録再生装置
JP2007243974A (ja) 画像符号化装置および画像復号化装置
JPH07236141A (ja) 動画像圧縮装置