PT651574E - Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem - Google Patents

Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem Download PDF

Info

Publication number
PT651574E
PT651574E PT94910528T PT94910528T PT651574E PT 651574 E PT651574 E PT 651574E PT 94910528 T PT94910528 T PT 94910528T PT 94910528 T PT94910528 T PT 94910528T PT 651574 E PT651574 E PT 651574E
Authority
PT
Portugal
Prior art keywords
motion vector
motion
signal
macroblock
predetermined direction
Prior art date
Application number
PT94910528T
Other languages
English (en)
Inventor
Matoki 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=PT651574(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 PT651574E publication Critical patent/PT651574E/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

Γ L~ij
DESCRIÇÃO "PROCESSO E APARELHO PARA CODIFICAR/DESCODIFICAR UM VECTOR DE MOVIMENTO E PROCESSO E APARELHO PARA CODIFICAÇÃO/DESCODIFICAÇÃO DE UM SINAL DE IMAGEM"
Campo técnico A presente invenção refere-se a um processo para determinação (cálculo) da diferença de vectores de movimento e a um elemento para determinação (cálculo) da diferença de vectores de movimento, mediante predição compensadora de movimento de uma imagem animada (película), um processo para determinação do vector de movimento reconstruído, a partir da diferença, e um elemento para a determinação do vector de movimento reconstruído, a partir da diferença, e um aparelho codificador de imagem animada e um aparelho descodificador de imagem animada, para codificar e descodificar um sinal de imagem animada aos quais se aplicam, respectivamente, a determinação da diferença e a determinação do vector de movimento reconstruído a partir da diferença. Técnica antecedente
No caso de se digitalizar um sinal de uma imagem animada (película), para gravar e transmitir os dados digitais assim obtidos, como a sua quantidade de dados resulta muito grande, realiza-se a codificação (compressão) dos dados. Como um 1
u
sistema de codificação representativo, há uma codificação preditiva compensadora de movimento. 0 principio da predição compensadora de movimento está representado na fig. 9. Na fig. 9, a codificação preditiva, compensadora de movimento, é um processo que utiliza a correlação numa direcção de base de tempo de um sinal de imagem. Este processo prediz uma imagem introduzida actualmente (imagem de quadro actual), a partir de um sinal de imagem conhecido, já descodificado e reproduzido (sinal de imagem de quadro anterior) para mover o sinal de imagem conhecido descodificado e reproduzido (sinal de imagem de quadro anterior), em correspondência com o movimento do sinal para transmitir apenas a informação de movimento (vector de movimento MV) nesse instante e a informação de erro preditivo nesse instante, para comprimir assim a quantidade de informação requerida para codificação.
Como um processo representativo dos processos de codificação e descodificação preditivas compensadoras de movimento, como os descritos atrás, refere-se o denominado MPEG (Moving Picture Expert Group) (1) . Este MPEG1 é a designação popular do sistema de codificação de imagens animadas que se desenvolveu no Grupo de Trabalho WG (Working Group) (11) do Subcomité SC 29 do Comité Técnico Conjunto JTC (Joint Technical Committee) 1 da denominada ISSO (International Standardization Organization e da IEC (International Standardization Organization e da IEC (International Electrotechnical Commission) . 0 MPEG1 interquadros tem processamento de codificação intraquadro e e a codificação preditiva compensadora de 2 t Γ movimento é usada no caso do processamento de codificação interquadros. Um exemplo de predição compensadora de movimento, neste instante, está representado na fig. 10. Na fig. 10, na predição compensadora de movimento, neste instante, um quadro (imagem) é dividido em blocos pequenos (denominados macroblocos MB) e cada um é constituído por 16 linhas x 16 elementos de imagem (pixels), para realizar a codificação preditiva compensadora de movimento em unidades desses blocos pequenos. No exemplo da fig. 10, como predição compensadora de movimento, no caso de processamento de codificação interquadros, estão ilustradas a predição para a frente, entre, por exemplo, o quadro anterior presente, no passado, no instante de tempo e o quadro actual, e a predição para trás entre, por exemplo, o quadro futuro presente, no futuro, no instante de tempo e o quadro actual.
Um exemplo mais prático de compensação de movimento, neste instante, está representado na fig. 11. Inicialmente, como processamento da primeira etapa, a imagem (P) (que deve ser codificada) indicada por (P) na figura, saltando sobre várias imagens, é codificada de modo preditivo, usando a imagem I, indicada por (I) na figura, ou qualquer outra imagem P. Essa operação de codificação preditiva é executada ciclicamente. Então, como processamento da Segunda etapa, as imagens B, indicadas por (B) na figura, situadas entre imagens P, imagens I ou entre uma imagem P e uma imagem I, são codificadas sequencialmente, de modo preditivo, 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, que se prepara sem a utilização de compensação de movimento. Além disso, as setas (excepto a seta que indica o decurso do tempo t) na fig. II indica sentidos de predições de movimento. 3
Para a compensação de movimento no MPEG1, existem quatro classes de modos, descritos a seguir, em unidades de macroblocos. Isto é, existem: modo de predição a partir de um quadro presente no passado, no instante de tempo, como primeiro modo de compensação de movimento (modo preditivo para a frente); modo de predição a partir de um quadro presente no futuro, no instante de tempo, como segundo modo de compensação de movimento (modo preditivo para trás); modo de predição linear, a partir dos dois quadros anterior e futuro, como terceiro modo de compensação de movimento (modo bireccionalmente preditivo) (ou seja, faz-se com que os blocos preditivos relativamente ao quadro anterior e os blocos preditivos relativamente ao quadro futuro se sujeitem ao cálculo de valor médio em cada elemento de imagem; e modo que não tem compensação de movimento, como quarto modo de compensação de movimento (ou seja, modo intracodificado).
Entre estas quatro classes de modos de compensação de movimento, na imagem P, selecciona-se um, óptimo, dos modos, primeiro e quarto, de compensação de movimento, em unidades de macroblocos. Neste instante, existe um quadro como quadro anterior aquele a que se faz referência no instante de predição compensadora de movimento relativamente à imagem do quadro actual. Além disso, na imagem B, selecciona-se um, óptimo, dos primeiro e quarto modos de compensação de movimento, em unidades de macroblocos. Neste instante, existem quadros, respectivamente como quadro anterior e quadro futuro em relação àqueles a que se faz referência, no instante de predição compensadora de movimento, relativamente à imagem do quadro actual. 4 f U,
Na imagem P e na imagem B, como vector de movimento em unidades de macrobloco, existe um vector de movimento que faz referência ao quadro anterior, na predição no primeiro modo compensador de movimento. Na predição no segundo modo compensador de movimento, existe um vector de movimento que faz referência ao quadro futuro. Na predição no terceiro modo compensador de movimento, existem vectores de movimento que fazem referência a ambos os quadros, anterior e futuro, respectivamente.
No MPEG1, faz-se com que os vectores de movimento fornecidos em unidades destes macroblocos sejam sujeitos à determinação (cálculo) por meio do elemento de determinação (cálculo) da diferença representado na fig. 12, utilizando o facto de a informação de vector de movimento, dada em unidades de macroblocos, ter uma grande correlação espacial, e transmitir-se a informação de diferença assim obtida.
Num sentido mais prático, neste elemento de determinação da diferença, o terminal (404) é alimentado com os sinais de modos de compensação de movimento, fornecidos como quatro classes, do primeiro ao quarto modos de compensação de movimento, e o terminal (401) é alimentado com um sinal de vector de movimento introduzido actualmente. O sinal de vector de movimento introduzido actualmente é enviado ao terminal comum do comutador (406) e ao terminal de entrada aditiva do circuito (405) de diferença e o sinal de modo de compensação de movimento é enviado ao circuito comutador (403). O terminal (a) seleccionado (comutado) do comutador (406) está ligado ao terminal de entrada do registo (402a) para o vector de referência de quadro anterior do grupo (402) de 5 Γ
U registos, e o terminal (b) seleccionado está ligado ao terminal de entrada do registo (402b) para o vector de referência de quadro futuro do grupo de registos (402) . Além disso, o terminal de saída do registo (402a) para o vector de referência do quadro anterior do grupo de registos (402) está ligado ao terminal (a) seleccionado do comutador (407), e o terminal de saída do registo (402b) para o vector de referência de quadro, futuro, está ligado ao terminal (b) seleccionado do comutador (407). Estes comutadores (406) e (407) têm uma estrutura tal que se selecciona um qualquer dos terminais seleccionados (a) e (b), de acordo com o sinal (S 401) de comutação de registos extraído do circuito comutador (403) alimentado com o sinal de modo de compensação de movimento. Uma saída do comutador (407) é enviada para o terminal de entrada de subtracção do circuito de diferença (405).
Por conseguinte, o circuito de subtracção (405) determina uma diferença entre o sinal (S402) de vector de movimento, que foi lido na saída, através do comutador (407) do grupo de registos (402), de acordo com o sinal (S401) de comutação de registos extraído do circuito comutador (403) , e o sinal de vector de movimento, proveniente do terminal (401). Retira-se uma diferença, calculada pelo circuito de subtracção (405), do terminal (408), como um vector de movimento de diferença, proveniente do circuito de determinação de diferença. O sinal de vector de movimento introduzido actualmente é escrito no registo (402a) ou (402b), designado pelo sinal comutador (S401) de registos através do comutador (406) e armazena-se no seu interior. 6 \i
Como atrás se mencionou, faz-se, no elemento de determinação de diferença, com que os vectores de movimento que se referem ao quadro anterior e os vectores de movimento que se referem ao quadro futuro, se sujeitem, independentemente, ao processamento para a determinação da diferença.
Um exemplo mais prático do funcionamento do elemento de determinação da diferença atrás descrito, com referência à fig. 13. Nesta figura, a componente X, das componentes (X,Y) do vector de movimento, indica o movimento, numa direcção horizontal, e a componente Y indica o movimento na direcção vertical. Os valores positivos correspondem aos movimentos espacialmente no sentido para a direita e no sentido para baixo, e os valores negativos correspondem aos movimentos no sentido para a esquerda e no sentido para cima. Neste exemplo, (0,0) representa um valor inicial, no instante da determinação da diferença. Além disso, nesta figura, (FMV) representa o vector de movimento de referência do quadro anterior e (BMV) representa o vector de movimento de referência do quadro futuro. Adicionalmente, nesta figura, o modo (1) representa o modo de compensação de movimento de predição para diante, o modo (2) representa o modo de compensação de movimento de predição para trás e o modo (3) representa o modo de compensação de movimento de predição bidireccional.
Isto é, na fig. 13, por exemplo, quando o modo de compensação de movimento do bloco pequeno, na extremidade da esquerda da figura, for o modo (3), o vector FMV de movimento de referência do quadro anterior for (10,10) e o vector (BMV) de movimento de referência do quadro futuro for (8,8), se o vector de movimento no bloco pequeno de modo (1), adjacente no lado direito, for (8,5), o vector e movimento de diferença será 7 igual a (-2,-5), de (8,5)-(10,10) e, se o vector de movimento no bloco pequeno de modo (1), adjacente do lado direito, for (7,6), o vector de movimento de diferença faz-se igual a (-1,1), de (7,6)-(8,5). Além disso, se o vector de movimento no bloco pequeno de modo (2), adjacente do lado direito, for (9,10), o vector de movimento de diferença é feito igual a (1,2), de (9,10)-(8,8) e se os vectores de movimento de entrada no bloco pequeno do modo (3), adjacentes do lado direito, forem (5,4) e (8,9), os seus vectores de movimento de diferença fazem-se iguais a (-2,-2), de (5,4)-(7,6), e a (-1,-1), de (8, 8)-(9,10) .
Na fig. 14, representa-se um elemento de determinação de diferença inversa, para reconstruir o vector de movimento, a partir do vector de movimento que se representa pelo vector de diferença, que é uma configuração complementar do elemento de determinação de diferença representado na fig. 13.
Num sentido mais prático, no elemento de determinação de diferença inversa, o terminal (414) é alimentado com os sinais de modos de compensação de movimento, indicados como quatro classes dos modos primeiro a quarto, de compensação de movimento, e o terminal (408) é alimentado com o sinal do vector de movimento de diferença introduzido actualmente. O sinal do vector de movimento de diferença é enviado a um terminal de entrada de soma do circuito somador (409) e o sinal de modo de compensação de movimento é enviado ao circuito comutador (413).
Além disso, o terminal (a) seleccionado, do comutador (411), está ligado ao terminal de salda do registo (410a) para o vector de referência do quadro anterior do grupo de registos Γ u (410), e o terminal (b) seleccionado está ligado ao terminal de saida do registo (410b) para o vector de referência do quadro futuro. Este comutador (411) tem uma estrutura tal que se selecciona um qualquer dos terminais seleccionados (a) e (b), de acordo com o sinal (S403) comutador de registos, extraído do circuito comutador (413), alimentado com o sinal do modo de compensação de movimento. O terminal comum do comutador (411) está ligado ao outro terminal de entrada de adição do circuito somador (409).
Por conseguinte, o circuito de adição (409) faz uma adição do sinal (S404) de vector de movimento, que foi lido na saída através do comutador (411) do grupo de registadores (410), de acordo com o sinal (S403) comutador de registos, extraído do circuito comutador (413) e o sinal de vector de movimento de diferença, proveniente do terminal (408) . Uma saída de adição do circuito de adição (409), extrai-se do terminal (415), como sinal do vector de movimento reconstruído, proveniente do elemento de determinação de diferença inverso.
Além disso, o sinal do vector de movimento reconstruído, proveniente do circuito de adição (409), é também enviado para o terminal comum do comutador (412). Este comutador (412) tem uma estrutura tal que se selecciona um qualquer dos terminais seleccionados (a) e (b) , na base do sinal (S403) comutador de registos. O terminal (a) seleccionado está ligado ao registo (410a) para o vector de referência do quadro anterior do grupo (410) de registos e o terminal (b) seleccionado está ligado ao registo (410b) para o vector de referência do quadro futuro.
Por esta razão, a informação do vector de movimento reconstruído é registado, através do comutador (412), no 9
r registo (410a) ou (410b) , designado pelo sinal comutador de registos (S403) e é armazenado de novo no mesmo.
Entretanto, como ο MPE1 atrás referido é um processo de codificação de imagem animada, apropriado para imagem não entrelaçada, não pode dizer-se que o MPEG1 seja necessariamente apropriado para a codificação de sinal entrelaçado, tal como o denominado sistema NTSC, ou o sistema PAL, etc., que é um sinal de televisão. Isto cria um problema.
Por esta razão, foi proposto, em anos recentes, um sistema ara realizar a codificação eficiente preditiva compensadora de movimento no sinal entrelaçado, no MPEG2, como sucessor do MPEG1. Neste sistema, como se mostra na fig. 15, é adoptado um processo para realizar, de maneira adaptada, a comutação entre a unidade para tratar a imagem por quadros e a unidade para tratar a imagem em campos. Na fig. 15, (fr) significa quadro e (fi) indica campo, a seta (FRP) indica a predição à base de quadros e a seta (FIP) indica a predição à base de campos.
Actualmente, no MPEG2, no caso em que a estrutura de imagem é o quadro, adoptou-se um processo para comutar, de maneira adaptada, tanto quanto a predição compensadora de movimento for realizada por macrobloco à base de quadros, como por macrobloco à base de campos.
Além disso, no MPEG2, adoptou-se um processo no qual o macrobloco é dividido em áreas de 16 elementos de imagem, por 8 linhas da porção superior e da porção inferior, como o exija a ocasião, para realizar independentemente a predição compensadora de movimento nas áreas respectivas. 10 ç— Lr.
Neste momento, o número de vectores de movimento, expresso em unidades de macroblocos é o seguinte. Quer dizer, na predição descrita anteriormente, do primeiro modo compensador e movimento, há um ou mais vectores de movimento que se referem ao quadro campo) anterior; na predição do segundo modo compensador de movimento, há um ou mais vectores de movimento que se referem ao quadro (campo) futuro; e na posição do terceiro modo compensador de movimento, há um ou mais vectores de movimento que se referem aos dois quadros (ou campos) do passado e do futuro, respectivamente. Os números de vectores de movimento nos modos compensadores de movimento respectivos, variam em unidades de macroblocos.
Como atrás se disse, como o processo de predição de compensação de movimento no MPEG2, propõem-se sistemas mais complexos que o MPEG1. Como consequência, resultam classes incrementadas de vectores de movimento, nesse instante, em comparação com o MPEG1. Nessas circunstâncias, há dois problemas no tratamento destes vectores de movimento.
Isto é, o primeiro problema é que o processo usado no MPEG1 não pode aplicar-se para codificar o vector de movimento. Por isso, foram feitas diversas propostas. Elas podem ser inspeccionadas pelo público, por exemplo na página 32, na página 44, na página 145 e na página 148 e ISSO-IEC/JTC1/SC29/WG11 MPEG93 (225b) Modelo 4 de ensaio (aberto para consulta pública em Fevereiro de 1993).
No entanto, não pode dizer-se que estas propostas suportem todos os modos compensadores de movimento e, portanto, são insuficientes até agora. Além disso, estas propostas têm o 11 segundo problema inconveniente de não poderem resolver o descrito a seguir. 0 segundo problema consiste em que o tratamento de macrobloco não considerado não se mostra claramente.
Aqui, os macroblocos não considerados no MPEG1 são macroblocos como se apresenta a seguir. Isto é, são caracterizados por: primeiro, macrobloco não considerado em imagem P não há sinal de erro de compensação de movimento a transmitir (condição ale) , o modo de compensação de movimento é a predição para diante (condição a2e) e o valor do vector de movimento é zero (condição a3e); segundo, macrobloco não considerado na imagem B não há sinal de erro de compensação de movimento a transmitir (condição Ble) o modo de compensação de movimento é igual ao macrobloco transmitido imediatamente antes (condição b2e), e o valor do vector de movimento que se faz ser o vector de diferença, obtido pelo elemento de determinação de diferença representado na fig. 12, é zero (condição b3e).
Além disso, no descodificador, os macroblocos não considerados serão tratados no MPEG1, como segue: isto é, no MEPG1, os macroblocos não considerados (saltados) são tratados de modo que: primeiro, o processamento dos macroblocos não considerados em imagem P é que: se considera que é zero o sinal de erro de compensação de movimento que se transmitiu (condição ald) ,
- U se faz com que o modo de compensação de movimento seja a predição para a frene (condição a2d), e o valor do vector de movimento se dispõe em zero (condição a3d) , segundo, o processamento dos macroblocos não considerados em imagem B é que: se considera que é zero o sinal de erro de compensação de movimento que se transmitiu (condição bld), é necessário copiar o modo de compensação de movimento de um macrobloco recebido imediatamente antes (condição b2d), e é necessário copiar o vector de movimento de um macrobloco recebido imediatamente antes (condição b3d)·
Por outras palavras, simplesmente, no MEPG1, o processamento de descodificação de macrobloco não considerado em imagem P é uma cópia da imagem anterior e o processamento de descodificação dos macroblocos não considerados em imagem B é a cópia do macrobloco adjacente, no lado esquerdo descodificado imediatamente antes, dentro do mesmo quadro.
Como se descreveu atrás, no MEPG1, relativamente ao macrobloco que é o macrobloco não considerado, o codificador não transmite dados. Como atrás se expôs, o macrobloco não considerado é uma tecnologia de codificação importante, com vista a melhorar a eficiência de codificação. Por exemplo, no caso em que também uma imagem que deve processar-se é uma sequência de imagens animadas, os seus conteúdos são uma cena onde as imagens fixas (imagens que têm um movimento muito suave) são sucessivas, a maioria dos macroblocos podem tratar-se como macroblocos não considerados. Num caso extremo, pode utilizar-se um procedimento para codificar o primeiro quadro no interior da imagem, sem compensação de movimento, para 13 L-Ij . . ^ transmitir informação codificada de quadro, permitindo assim que os macroblocos provenientes dos segundos quadros, e dos quadros seguintes aos mesmos, sejam tratados quase como macroblocos não considerados. Neste caso, pode esperar-se uma grande melhoria na eficiência da codificação. A partir dos factos atrás descritos, é necessário que o processo para codificar o vector de movimento, na predição compensadora de movimento do MPEG2 atrás descrito, seja um processo no qual se leve também em conta o tratamento do macrobloco não considerado.
No entanto, no caso dos processos para codificar o vector de movimento, propostos convencionalmente ao MPEG2, o tratamento de macrobloco não considerado não é tido em conta. Por esta razão, esses processos falham, desvantajosamente, ao tratar os macroblocos não considerados.
Por exemplo, descreve-se agora, com base na configuração do elemento de determinação da diferença da fig. 16, um exemplo desse problema. Este é o processo descrito em ISSO-IEC/JTC1/SC29/WG11 MOEG93/225b Modelo 4 de ensaio do material, descrito anteriormente.
Na fig. 16, o terminal (504) é alimentado com informação de modo de predição para a frente, para trás ou bidireccional, como sinal de modo de compensação de movimento, informação que indica a predição de quadro, ou a predição de campo, etc., como sinal de tipo de predição, que se descreverá mais adiante, e informação que indica a estrutura do quadro, a estrutura de campo ou a estrutura progressiva, como sinal de estrutura de imagem, sendo além disso alimentado com informação que indica o 14 Γ primeiro campo (campo 1, ou seja, por exemplo o campo ímpar) ou o segundo campo (campo 2, ou seja, por exemplo o campo par) , como sinal de paridade do vector, por exemplo de movimento de campo, informação que indica, analogamente, o primeiro campo ou o segundo campo, como sinal predito de paridade de campo, e informação que indica imagem P ou imagem B, como sinal de tipo de codificação de imagem. Adicionalmente, o terminal (501) é alimentado com um sinal de vector de movimento introduzido actualmente. O sinal que se forneceu ao terminal (504), ê enviado ao circuito comutador (503). Além disso, o sinal de vector de movimento introduzido actualmente é enviado ao terminal comum do comutador (506), através do conversor de escala (509), para realizar uma conversão B de escala pré-determinada no vector de movimento introduzido actualmente, com base no sinal SCB de indicação de escala, proveniente do circuito comutador (503), e envia-se directamente ao terminal de entrada aditivo do circuito de subtracção (505). 0 comutador (506) tem os terminais seleccionados (a) a (d). 0 terminal seleccionado (a) está ligado ao terminal de entrada da memória de registo PMV1 do grupo de memórias de registos (502) para armazenar o vector de movimento, que se descreverá mais adiante; o terminal seleccionado (b) está ligado ao terminal de entrada da memória de registo PMV2 do grupo de registos (502) ; o terminal (c) seleccionado está ligado ao terminal de entrada da memória de registo PMV3 e o terminal seleccionado (d) está ligado ao terminal de entrada da memória de registo (PMV4). Além disso, o terminal de saída da memória de registo (PMVl) do grupo (502) de memórias de registos, para armazenar o vector de movimento está ligado ao 15
L^sj terminal seleccionado (a) do comutador (507) ; o terminal de saida da memória de registo (PMV2) está ligado ao terminal seleccionado (b) do comutador (507) ; o terminal de saída da memória de registo (PMV3) está ligado ao terminal seleccionado (c) do comutador 507) e o terminal de saída da memória de registo (PMV4) está ligado ao terminal seleccionado (d) do comutador (507). Estes comutadores 506) e (507) têm uma estrutura tal que um qualquer dos terminais seleccionados (a) a (d) , e seleccionado de acordo com o sinal de comutação de registos retirado do circuito comutador (503).
Uma saída do comutador 507) é enviada para o terminal de entrada subtractivo do circuito de diferença (505), através do conversor de escala (510), para realizar uma conversão e escala. A, pré-determinada, com base no sinal de indicação de escala (SCA), proveniente do circuito comutador (503). O circuito de diferença 505) determina a diferença entre a informação proveniente do conversor de escala (510) e o sinal de vector de movimento proveniente do terminal (5°1) . A diferença obtida por este circuito de diferença (505) é retirado no terminal (508), como sinal de movimento de diferença do elemento de determinação de diferença.
Além disso, a informação do vector de movimento introduzido actualmente, é registada, através do conversor de escala (509) e através do comutador (506), numa qualquer das memórias de registos (PMV1-PMV4), designada pelo sinal de comutação de registos e armazenada de novo na mesma.
Como atrás se mencionou, no elemento de determinação de diferença, para determinar a diferença entre os vectores de movimento, representado na fig. 16, está preparado o grupo de 16
II >»^l , constituído por quatro memórias de armazenar o sinal de vector de memórias de registos (502)/ registos (PMV1-PMV4) para movimento.
Seguidamente vai-se descrever o funcionamento do grupo (502) de memórias de registos para armazenar o vector de movimento.
Em ISSO-IEC/JTC1/SC29/WG11 MPEG93/225b Modelo 4 de ensaio, no caso de imagem P, foi proposto utilizar as memórias de registos PMV1-PMV4, respectivas, do grupo (502) de memórias de registos da fig. 16, de uma maneira que se descreve a seguir.
Quer dizer, por exemplo, a informação do vector de movimento para diante, na qual a imagem de referência (a imagem que serve como referência de imagem preditiva) é o primeiro campo e o campo predito, relativamente à mesma (o campo que tem de codificar-se a partir de agora) é o primeiro campo, armazena-se na memória de registo (PMV1). Além disso, a informação do vector de movimento para diante, na qual a imagem de referência é o segundo campo e o campo predito é o primeiro campo, armazena-se na memória de registo (PMV2). A informação do vector de movimento para diante, na qual a imagem de referência é o primeiro campo e o campo predito é o segundo campo, armazena-se na memória de registo (PMV3). Adicionalmente, a informação de movimento para diante, na qual a imagem de referência é o segundo campo e o campo predito é o segundo campo, armazena-se na memória de registo (PMV4). Isto é, na imagem P, a relação entre os sinais de vectores de movimento e as memórias de registo respectivas nas quais são armazenados, foi determinada por combinações das imagens de referência e os campos que devem prever-se. 17 L·, ^
Por outro lado, em ISSO-IEC/JTC1/SC29/WG11 MPEG93/225b Modelo de ensaio 4, no caso de imagem B, foi proposto usar as memórias de registos PMV1-PMV4 respectivas, da fig. 16, de uma maneira descrita a seguir.
Isto é, por exemplo, estão preparadas duas memórias de registos PMV para o vector de movimento para diante. Por exemplo, a informação do vector de movimento para diante, na qual a imagem de referência é o primeiro campo, armazena-se na memória de registo (PMV1), e a informação do vector de movimento para diante, na qual a imagem de referência é o segundo campo, armazena-se na memória de registo (PMV2). Além disso, preparam-se duas memórias de registos (PMV), também para o vector de movimento para trás. A informação do vector de movimento para trás, na qual a imagem de referência é o primeiro campo, armazena-se na memória de registo (PMV3) e a informação do vector de movimento para trás, na qual a imagem de referência é o segundo campo, armazena-se na memória de registo (PMV4) . Isto é, na imagem B, independentemente de um campo a predizer ser o primeiro campo ou o segundo campo, os sinais de vectores de movimento nos quais a imagem de referência e o sentido de predição são iguais, armazenar-se-ão na mesma memória de registo.
No elemento de determinação de diferença representado na fig. 16, quando se permitir que o vector de movimento introduzido actualmente seja o vector de diferença, utiliza-se um processo para extrair o valor da memória de registo (PMV) correspondente a esse vector de movimento (ou seja, a memória de registo PMV, na qual um vector de movimento que tem a paridade de imagem de referência e campo predito, que são iguais ao vector de movimento, armazenam-se no caso de esse 18 L—w vector de movimento ser usado para codificação de imagem P; e a memória de registo (PMV) na qual um vector de movimento, que tem paridade de imagem de referência e o mesmo sentido de predição, que são iguais ao vector de movimento, armazena-se no caso de esse vector de movimento ser usado para codificação de imagem B), para realizar na mesma uma conversão de escala A pré-determinada, por meio do conversor de indicação de escala (510), como for exigido na ocasião (de acordo com o sinal de indicação de escala (SCA) ) para efectuar depois o cálculo entre o valor A, convertido à escala, e o vector de movimento introduzido actualmente, atrás referido, por meio do circuito de diferença (505) . Além disso, a conversão de escala B é realizada, no valor do vector de movimento introduzido actualmente, pelo conversor de escala (509), como for exigido na ocasião, para o registar depois numa qualquer das memórias de registos (PMV) seleccionada e submetida a referência no momento de diferença, como atrás se descreveu, embora não esteja ilustrado, para o armazenar novamente na mesma. O elemento de determinação da diferença é construído desta maneira. A fig. 17 representa um elemento de determinação da diferença inversa, correspondente ao elemento de determinação de diferença ara vector de movimento da fig. 16.
No elemento de determinação de diferença inversa representado na fig. 17, o terminal (524) é alimentado com o sinal de modo de compensação de movimento, o sinal de tipo de predição, o sinal de estrutura de imagem, o sinal de paridade do vector de movimento de campo, o sinal de paridade de campo predito e o sinal de tipo de codificação de imagem. 19
U
Adicionalmente, o terminal (518) é alimentado com o sinal de vector de movimento de diferença introduzido actualmente. A informação através do terminal (524) é enviada ao circuito comutador (523) e o vector de movimento de diferença é enviado a um terminal de entrada aditivo, do circuito adicionador (519).
Além disso, o terminal seleccionado (a) do comutador (521) está ligado ao terminal de saida da memória de registo (PMV1) do grupo (520) de memórias de registo de armazenamento de vectores de movimento, para realizar o armazenamento semelhante ao do grupo (502) de memórias de registos de armazenamento de vectores de movimento da fig. 16; o terminal seleccionado (b) está ligado ao terminal de saída da memória de registos (PMV2); o terminal seleccionado (c) está ligado ao terminal de saída da memória de registo (PMV3) e o terminal seleccionado (d) e está ligado ao terminal de saída da memória de registo (PMV4). Este comutador (521) tem uma estrutura tal que, um qualquer dos terminais seleccionados (a-d) é seleccionado de acordo com o sinal de comutação de registos proveniente do circuito comutador (523). O terminal comum deste comutador (521) está ligado ao outro terminal de entrada aditiva do circuito adicionador (519), através do conversor de escala (529), para realizar uma conversão de escala C, pré-determinada, num sinal fornecido com base no sinal (SCC) de indicação de escala, proveniente do circuito comutador.
Por conseguinte, o circuito adicionador (519) calcula a soma do sinal de vector de movimento, que passa através do comutador (521), a partir do grupo de memórias de registos (520), de acordo com o sinal de comutação de registos, retirado 20
do circuito comutador (523) e, além disso, através do conversor de escala (529) e do sinal de vector de movimento de diferença proveniente do terminal (518). Do terminal (525), é retirada uma saída de adição do circuito adicionador (519), como vector de movimento reconstruído, proveniente do elemento de determinação de diferença inversa.
Além disso, o sinal de vector de movimento reconstruído, proveniente do circuito adicionador (519), é também enviado para o terminal comum do comutador (522), através do conversor de escala (530) , para realizar uma conversão de escala D, pré-determinada, num sinal fornecido com base no sinal SCD de indicação de escala, proveniente do circuito comutador (523). Este comutador (522) tem uma estrutura tal que qualquer dos terminais seleccionados (a-d) é seleccionado com base no sinal de comutação de registos. Neste comutador (522), o terminal seleccionado (a) está ligado ao terminal de entrada da memória de registo PMV1 do grupo (520) das memórias de registos, o terminal seleccionado (b) está ligado ao terminal de entrada da memória de registo (PMV2), o terminal seleccionado (c) está ligado ao terminal de entrada da memória de registo (PMV3) e o terminal seleccionado (d) está ligado ao terminal de entrada da memória de registo (PMV4).
Assim, a informação do vector de movimento reconstruído é escrito e armazenado, novamente, numa qualquer das memórias de registos (PMV1-PMV4), designada pelo sinal de comutação de registos, através do comutador (522).
Isto é, no elemento de determinação de diferença inversa da fig. 17, o valor armazenado na memória de registo (PMV) correspondente ao vector de movimento de diferença introduzido 21 i~Zj jfes*- (ou seja, a memória de registo (PMVj na qual o vector de movimento reconstruído que tem valores de paridade de imagem de referência e de campo predito iguais ao vector de movimento de diferença, armazena-se no caso de se usar o vector de movimento de diferença para descodificação de imagem P, ou a memória de registo (PMVj na qual o vector de movimento reconstruído que tem paridade de imagem de referência e sentido de predição, se armazena no caso de o vector de movimento de diferença se usar para a descodificação de imagem B), correspondente ao vector de movimento diferencial introduzido, e extraído para realizar a conversão de escala C, nesse valor, utilizando o conversor de escala (529) como o exigirem as condições, para realizar depois um cálculo de adição de valor convertido à escala e do vector de movimento de diferença introduzido actualmente, utilizando o circuito adicionador (519) para reconstruir assim os vectores de movimento correspondentes ao vector de movimento original. Faz-se com que o vector de movimento reconstruído sofra a conversão de escala D, por meio do conversor de escala (530), como exigir a ocasião, para inscrever e armazenar novamente depois o valor convertido à escala, numa qualquer das memórias de registos (PMV1-PMV4) seleccionada e submetida à referência no instante de reconstrução do vector de movimento. O elemento de determinação de diferença inversa é construído deste modo. Descreve-se a seguir um exemplo de operação no elemento de determinação de diferença da fig. 16 em imagem B, com referência à fig. 18.
Na fig. 18, relativamente ao macrobloco (bloco pequeno) MB1, admite-se que não há sinal de erro preditivo para ser transmitido (é satisfeita a condição ble atrás mencionada). Além disso, admite-se que os macroblocos (MBO) e (MBOl) têm o 22 |·— L-Cj 1 mesmo modo de predição para a frente (é satisfeita a condição b2e atrás mencionada).
Nesta altura, admite-se como primeiro exemplo, que a estrutura de imagem é uma estrutura de campo e a paridade de campo predito é o primeiro campo (o campo predito é o primeiro campo). O tipo de predição é a predição baseada no campo de 16 x 8, no caso de se realizar a predição e modo respectivamente independente relativamente à área de 16 elementos de imagem x 8 linhas da porção superior e à área de 16 elementos de imagem x 8 linhas, da porção inferior. No exemplo da fig. 18, por exemplo, o vector de movimento da porção superior do macrobloco MBO é (5,l)(i), o vector de movimento da porção superior do macrobloco MBO é (5,5) (2), o vector de movimento da porção superior do macrobloco (MB1) é 5,5) (3), o vector de movimento da porção inferior do macrobloco (ΜΒχ) é (5,5) (4), o vector de movimento da porção superior do macrobloco (MB2) é (5,5)(5) e o vector de movimento da porção inferior do macrobloco (MB2) é (5,5) (6).
Além disso, admite-se que todos os vectores de movimento dos macroblocos (MBO) e (MBl) se referem ao mesmo primeiro campo. Neste caso, como a paridade da imagem de referência e o sentido de predição são iguais, relativamente a todos os vectores de movimento, as diferenças entre os vectores de movimento armazenados na memória de registo (PMV1) da fig. 16 são calculados para transmitir o vector de movimento de diferença. Admite-se que (0,0) é armazenado como um valor inicial na memória de registo (PMV1), na fig. 16.
Isto é, no caso do exemplo da fig. 18, no macrobloco (MBO), obtém-se (5,1) (1)-PMV1 = (5,1), que é uma diferença entre 23 r\i L-C, t o vector de movimento (5,1) (1 j da porção superior e o valor inicial (0,0) da memória de registo (MPV1). 0 valor assim obtido é retirado, como vector de movimento de diferença, da porção superior de (MBO) . 0 vector de movimento (5, l)(u é armazenado na memória de registo (PMV1). Além disso, obtém-se (5,5) (2J-PMV1 = (0,4), que é uma diferença entre o vector de movimento (5,5)(2) da porção inferior e o valor (5,1) da memória de registo (PMV1). 0 valor assim obtido é retirado como vector de movimento de diferença da porção inferior. 0 vector de movimento (5,5) (2) é armazenado na memória de registo PMV1. Então, calculando de maneira análoga uma diferença, também relativamente ao macrobloco (MB1), todos os vectores de movimento de diferença se tornam iguais a zero (0,0) no macrobloco (MB1) (é satisfeita a condição b3e atrás mencionada).
Além disso, como segundo exemplo, se forem satisfeitas as condições ble e b2e, como atrás se descreveu, admite-se que a estrutura de imagem é uma estrutura de quadro. Admite-se que o tipo de predição é a predição baseada em campo, para predizer, de maneira respectivamente independente, o primeiro campo e o segundo campo do macrobloco MB (admite-se que o campo predito é o primeiro campo e o segundo campo). Além disso, admite-se que o primeiro campo do macrobloco MBO é (5,1) (1), o vector de movimento do segundo campo é (5,5) (2), o vector de movimento do segundo campo o monobloco MBi é (5,5)(3), o vector de movimento do segundo campo é (5,5) (4), o vector de movimento do segundo campo do monobloco MB2 é (5,5) (5) e o vector de movimento do segundo campo é (5, 5) (6) -
Além disso, admite-se que todos os vectores de movimento do macrobloco MBO e do macrobloco MBi se referem ao mesmo 24 primeiro campo. Também neste caso, como a paridade da imagem de referência e o sentido da predição são iguais, relativamente a todos os vectores de movimento, calculam-se as diferenças entre os vectores de movimento armazenados na memória de registo PMV1 da fig. 16, para transmitir o vector de movimento de diferença. Assim, também neste exemplo, o processo para obter a diferença é igual ao da fig. 18. No macrobloco MB1, todos os vectores de movimento de diferença se tornam iguais a zero (0,0) (é satisfeita a condição b3e). A partir dos factos atrás descritos nos dois exemplos atrás descritos, de acordo com a regra no MPEG1, as condições ble, b2e, b3e atrás referidas são satisfeitas no macrobloco MBi. Por conseguinte, admite-se agora que o codificador processou este macrobloco MBi, como macro bloco não considerado (saltado).
No entanto, neste caso essa é uma selecçâo errónea. Isso porque, no lado do descodificador, o processamento das condições bld e b2d atrás mencionadas é realizado correctamente, mas o mesmo se realiza mesmo que os vectores de movimento dos macroblocos MBO e MB1 sejam realmente diferentes. Quer dizer, se se admite que o macrobloco MBi é um macrobloco não considerado, no caso do exemplo anterior, mesmo que o vector de movimento (5,1) (u da porção superior do macrobloco MBO e o vector de movimento (5,5)(3) da porção superior do macrobloco MB1 sejam diferentes, (5,1){1) Φ (5,5) (3), realiza-se a cópia do vector de movimento a partir do macrobloco MBO para o macrobloco MBl. Como resultado, a descodificação não se realiza correctamente. Além disso, também no caso do último exemplo, mesmo que o vector de movimento (5,l)(u do primeiro campo do macrobloco MBO e o vector de movimento (5,5) (3, do 25 pv ^...... primeiro campo do macrobloco MB1 sejam realmente diferentes, realiza-se uma cópia errónea.
Este problema resulta do facto de, na técnica anterior, em imagem B, ao permitir que os vectores de movimento dentro do mesmo macrobloco sejam o vector de movimento de diferença para o transmitir, utiliza-se a mesma memória de registo (PMVj duas ou mais vezes para actualízar o seu conteúdo.
Além disso, o facto de a mesma memória de registo (PMV) ser usada duas vezes, ou mais, relativamente ao vector de movimento dentro do mesmo monobloco, cria além disso problemas, como se descreve mais adiante, no lado do descodificador. A fig. 19 representa a operação para reconstruir o vector de movimento a partir do vector de movimento de diferença transmitido relativamente à imagem B. Neste exemplo, deve observar-se que a estrutura de imagem é estrutura de campos e os macroblocos MB Ο, MB1, MB2 são codificados no modo preditivo para diante, de maneira respectivamente independente na área de 16 elementos de imagem x 8 linhas, da porção superior, e a área de 16 elementos de imagem x 8 linhas, da porção inferior. Além disso, admite-se que se faz com que a área de 16 elementos de imagem x 8 linhas, da porção superior e a área de 16 elementos de imagem x 8 linhas, da porção inferior são ambas o primeiro campo único.
No exemplo da fig. 19, como a área a porção superior e a área da porção inferior têm a mesma paridade da imagem de referência e o mesmo sentido de predição, por exemplo, apenas se usa a memória de registo PMV1, variando assim o conteúdo dessa memória de registo PMV1 dentro do mesmo macrobloco. Por 26
-t isso, para conter o vector de movimento do macrobloco processado imediatamente antes, é necessário ter quatro memórias de registos adicionais (duas memórias de registos respectivas para os vectores para diante e para trás), excepto as memórias de registos PMV. Ver-se-á que o processo para conter o vector de movimento do macrobloco imediatamente anterior também se realiza frequentemente com vista a realizar a correcção de erro, etc., no lado do descodificador.
Isto é, na fig. 19 admite-se que, como vector de movimento de diferença obtido da configuração da fig. 18, se obtém (5.1) (1) de vector de movimento de diferença da porção superior do macrobloco MFO, (0,4) (2) de vector de movimento MBO, (0,4) (2) de vector de movimento de diferença da porção inferior do macrobloco MBO, (0,0) (3) de vector de movimento de diferença da porção superior do macrobloco MB1, (0,0) (4) de vector de movimento de diferença da porção inferior do macrobloco MBX (0,0)(5) de vector de movimento de diferença da porção superior do macrobloco MB2, e (0,0) (6) de vector de movimento de diferença da porção inferior do macrobloco MB2. Além disso, admite-se que (0,0) é armazenado como um valor inicial, na memória de registo PMV1.
No caso do exemplo da fig. 19, no macrobloco MBO, (5,1) (1, + PMV1 = (5,1) A por adição do vector de movimento de diferença (5.1) (1) da porção superior e do valor inicial (0,0) da memória de registo PMV1, obtém-se, como vector de movimento reconstruído. Este vector de movimento reconstruído é enviado para a memória de registo PMV1. Além disso, na porção inferior do macrobloco MBO, (0,4) (2)+PMVl = (5,5)e, por adição do vector de movimento de diferença (0,4)(2) da porção inferior e do vector de movimento reconstruído na memória de registo PMV1, 27
L·, -.....^ obtém-se como vector de movimento reconstruído. Este vector de movimento reconstruído e enviado para a memória de registo PMV1. De maneira análoga, no macrobloco MB1, (0,0) (3)+PMVl = (5,5)c por adição do vector de movimento e diferença (0,0)(3) da porção superior e do vector de movimento reconstruído (5,5)B, na memória de registo PMV1, obtém-se como vector de movimento reconstruído. Este vector de movimento reconstruído é enviado para a memória de registo PMV1. Além disso, na porção inferior deste macrobloco MB1, (0, 0) (4)+PMVl = (5,5) D, por adição do vector de movimento de diferença (0,0) (4) da porção inferior e do vector de movimento reconstruído (5,5)c na memória de registo PMV1, obtém-se como vector de movimento reconstruído.
Este vector de movimento reconstruído é enviado para a memória de registo PMVl. Como atrás se mencionou, como os vectores de movimento reconstruídos assim obtidos são inscritos sequencialmente na memória de registo PMVl, desaparece o vector de movimento reconstruído do macrobloco imediatamente anterior.
Como atrás se mencionou, no lado do descodificador, para conter o valor do vector de movimento reconstruído no macrobloco MB imediatamente anterior, é necessário ter, adicionalmente, duas memórias de registos PMV, relativamente a um sentido de predição, e armazenar, por exemplo os valores dos vectores de movimento (5,1)A e (5,5)b, no macrobloco MBO e os valores os vectores de movimento (5,5)c e (5,5)D no macrobloco MB1.
Como se descreveu atrás, no processo convencional para codificar o vector de movimento proposto em MPEG2, não se faz qualquer consideração em relação ao tratamento de macrobloco não considerado. Por esta razão, este processo de codificação 28 apresenta o problema de ser incapaz de tratar o macrobloco não considerado.
Além disso, no lado do descodificador, para conter o vector de movimento do macrobloco processado imediatamente antes, é necessário ter memórias de registos, além das memórias de registo PMV, que permitam assim que se complique a configuração do elemento de determinação de diferença inversa para o vector (vector de movimento de diferença).
Adicionalmente, na técnica anterior é complicado o controlo para comutar entre as memórias de registos PMV no elemento de determinação de diferença de vectores e/ou o elemento de determinação de diferença inversa, criando-se o problema de ser grande a escala de equipamento físico do circuito comutador de memórias de registos PMV.
Descrição da invenção
Assim, chama-se a atenção para os inconvenientes descritos anteriormente nesta invenção e, no lado do codificador, um objecto da presente invenção consiste em proporcionar um elemento de determinação de diferença, para determinar a diferença entre vectores de diferença por meio de uma configuração mais simples que a da técnica anterior, sendo outro objecto proporcionar um processo para avaliar o macrobloco não considerado no caso de, relativamente aos vectores de movimento dados em unidades de macroblocos, em aparelhos de codificação e descodificação preditivas compensadoras de movimento para uma imagem animada, existem um ou mais vectores de movimento que se referem ao quadro (campo) 29 anterior, na predição para a frente, existem um ou mais vectores de movimento que se referem ao quadro (ou campo) futuro, na predição para trás, e existem um ou mais vectores de movimento que se referem a ambos os quadros (ou os campos) anterior e futuro, na predição bidireccional e no caso em que os números de vectores de movimento em modos respectivos de compensação de movimento variam em unidades de macroblocos.
Além disso, no lado do descodif icador, um objecto da presente invenção consiste em proporcionar um elemento de determinação de diferença inversa, que reconstrói o vector de movimento a partir do vector de movimento de diferença recebido por meio de uma configuração mais simples que a do elemento de determinação de diferença inversa de técnica anterior, caracterizado por não ter necessidade de ter memória de registo excepto as memórias de registos PMV, para conter o vector de movimento do macrobloco processado imediatamente antes, e outro objecto consiste em proporcionar um processo para tratar o monobloco não considerado, no lado do descodificador. A presente invenção refere-se a um processo e a um aparelho para codificar o vector de movimento de macrobloco codificado, no modo preditivo para diante, no modo preditivo para trás ou no modo preditivo bidireccional. De acordo com o processo e o aparelho, para codificar o vector de movimento, utiliza-se um esquema para detectar a ordem de transmissão dos vectores de movimento actuais num sentido pré-determinado, entro de um macrobloco, para seleccionar, com base na ordem de transmissão detectada, uma das L memórias para vector de movimento, num sentido pré-determinado, para ler o vector de movimento anterior, no sentido pré-determinado, para subtrair o vector de movimento anterior, no sentido pré-determinado do 30 vector de movimento actual determinado. de diferença,
Além disso, a presente invenção dirige-se a um processo e a um aparelho para reconstruir o vector de movimento de macrobloco codificado no modo preditivo para a frente, no modo preditivo para trás ou no modo preditivo bidireccional. No processo e no aparelho para reconstruir o vector de movimento, a ordem de recepção dentro do macrobloco de vectores de movimento de diferença, recebidos num sentido pré-determinado, detecta-se, para seleccionar uma do número L de memórias para vector de movimento no sentido pré-determinado, com base na ordem de recepção detectada, para ler o vector de movimento reconstruído, no sentido pré-determinado, já reconstruída, para somar o vector de movimento de diferença no sentido pré-determinado e o vector de movimento reconstruído no sentido pré-determinado, já reconstruído, para gerar um novo vector de movimento reconstruído, em sentido pré-determinado.
Adicionalmente, explica-se um processo alternativo e um aparelho para codificar o sinal de imagem. No processo e no aparelho para codificar o sinal de imagem, codifica-se o sinal de imagem de entrada, em cada macrobloco, na base de uma pluralidade de modos, por meio do qual, quando o tipo de codificação de imagem, na pluralidade de modos, for a imagem P e a estrutura de imagem na pluralidade de modos for a estrutura de campos, verifica-se em cada macrobloco codificado se ou não se satisfazem as condições em que o sinal de erro preditivo é zero, o vector de movimento é zero, o modo de compensação de movimento na pluralidade de modos é a predição para diante, o tipo de predição na pluralidade de modos é a predição de campo de 16 x 16 e a paridade de referência do vector de movimento de 31 campo do macrobloco é igual à paridade do campo predito, para processar assim o bloco codificado como macrobloco não considerado, quando se satisfazem as condições.
No caso de o tipo de codificação de imagem, na pluralidade de modos, ser a imagem P e a estrutura de quadro, em cada macrobloco codificado for a estrutura de quadro, verifica-se, em cada macrobloco codificado, se se satisfizeram ou não as condições em que o sinal de erro preditivo é zero, o vector de movimento é zero, o modo e compensação de movimento na pluralidade de modos é a predição para a frente e o tipo de predição na pluralidade de modos é a predição de quadro, para processar assim o macrobloco codificado como macrobloco não considerado, quando se satisfazem as condições.
Além disso, no caso em que o tipo de codificação de imagem na pluralidade de modos é a imagem B e a estrutura de imagem na pluralidade de modos é a estrutura de campos, em cada macrobloco codificado é verificado se pelo menos se satisfizeram ou não as condições em que o sinal de erro preditivo é zero, o vector de movimento de diferença é zero, o modo de compensação de movimento na pluralidade de modos é igual ao do macrobloco anterior e o tipo de predição na pluralidade de modos é a predição de campo de 16 x 16, para processar assim o macrobloco codificado como macrobloco não considerado, quando se satisfazem as condições.
Adicionalmente, no caso de o tipo de codificação de imagem, na pluralidade de modos, ser a imagem B e a estrutura de imagem, na pluralidade de modos, ser a estrutura de quadro, verifica-se em cada macrobloco codificado se se satisfizeram ou não as condições em que o sinal de erro preditivo é zero, o 32 p Li vector de movimento de diferença é zero, o modo de compensação do movimento, na pluralidade de modos, é igual ao do macrobloco anterior e o tipo de predição, na pluralidade de modos, é a predição de quadro, para assim processar o macrobloco codificado como macrobloco não considerado quando se satisfizerem as condições.
Como antecedentes, também se explica um processo e um aparelho para descodificar o sinal de imagem. No processo e no aparelho para descodificar o sinal de imagem, o macrobloco não considerado é detectado, a partir do sinal de imagem codificado, por meio do qual, quando o tipo de codificação de imagem do macrobloco não considerado for imagem P e a estrutura de imagem for estrutura de campos, são repostas em zero todas as memórias, num elemento para determinação do vector de movimento reconstruído a partir da diferença, para realizar assim a descodificação nas condições em que o sinal de bloco codificado for zero, o vector de movimento for zero, o modo de compensação de movimento for a predição para a frente, o tipo de predição for a predição de campo del6xl6ea paridade de referência do vector de movimento de campo for a mesma paridade que a do campo predito.
No caso de o tipo de codificação de imagem do macrobloco não considerado ser imagem P e a estrutura de imagem ser a estrutura de quadro, repõem-se em zero toas as memórias no elemento para a determinação do vector de movimento reconstruído a partir da diferença, para assim realizar a descodificação nas condições em que o sinal de bloco codificado é zero, o vector de movimento é zero, o modo de compensação de movimento é a predição para diante e o tipo de predição é a predição de quadro. 33 1- ^^
Além disso, no caso de o tipo de codificação de imagem do bloco não considerado ser imagem B e a estrutura de imagem ser a estrutura de campos, pode utilizar-se um esquema para realizar a descodificação, pelo menos nas condições em que o sinal de bloco codificado é zero, o vector de movimento toma o valor armazenado na memória do elemento para determinação do vector de movimento reconstruído a partir da diferença, o modo de compensação de movimento é o modo de compensação de movimento do macrobloco descodificado imediatamente anterior e o tipo de predição é a predição de campo 16 x 16.
Adicionalmente, no caso de o tipo de codificação de imagem do macrobloco não considerado ser imagem B e a estrutura de imagem ser a estrutura de quadro, pode utilizar-se um esquema para realizar a descodificação nas condições em que o sinal de bloco codificado é zero, o vector de movimento toma o valor armazenado na memória do elemento para determinação do vector de movimento reconstruído a partir da diferença, o modo de compensação de movimento é o modo de compensação de movimento do macrobloco descodificado imediatamente anterior e o tipo de predição é a predição de quadro.
De acordo com a presente invenção, na configuração do elemento de determinação de diferença para vector de movimento, preparam-se as memórias de registos para armazenar vectores de movimento, de modo que o seu número é igual à soma (N+M) do número máximo N de transmissão de vectores de movimento para diante e o número máximo M de transmissão de vectores de movimento para trás, dentro do macrobloco, para proporcionar os índices 1~N, pela ordem de transmissão dos vectores de movimento para diante, dentro do macrobloco, e proporcionar os índices de N+1)~(N+M), pela ordem de transmissão dos vectores 34 de movimento para trás dentro do macrobloco, para permitir que os vectores que têm índices respectivos e as memórias de registos tenham uma relação de correspondência bionívoca, de modo que, permitindo que vectores de movimento dentro do mesmo macrobloco sejam o vector de movimento de diferença para o transmitir, não há a possibilidade de que a mesma memória de registo (PMVj se utilize duas ou mais vezes.
Além disso, na configuração do elemento de determinação de diferença inversa, para reconstruir o vector de movimento a partir do vector de movimento de diferença, preparam-se as memórias de registos para armazenar o vector de movimento reconstruído de modo que o seu número seja igual ao número igual à soma (M+N) do número máximo N de recepção dos vectores de movimento de diferença para diante e o número máximo M de recepção dos vectores de movimento de diferença para trás, dentro do macrobloco, para proporcionar os índices 1~N, pela ordem de recepção dos vectores de movimento de diferença para diante e proporcionar os índices de (N+l)~(N+M), pela ordem de recepção dos vectores de movimento de diferença para trás dentro do macrobloco, para permitir que os vectores de movimento de diferença que têm índices respectivos e as memórias de registos tenham uma relação de correspondência biunívoca, fazendo assim com que seja desnecessário qualquer registo, excepto as memórias de registos (PMVj.
Descrição breve dos desenhos
As figuras dos desenhos representam: A fig. 1, um esquema de circuito, que mostra, numa forma de blocos, o diagrama da configuração de um codificador usado 35 num aparelho codificador de sinal de imagem da presente invenção; A fig. 2, um esquema de circuito que mostra, na forma de blocos, o diagrama do elemento de determinação de diferença para vector de movimento usado no aparelho codificador de sinal de imagem da presente invenção; A fig. 3, uma vista que mostra a memória de registos, para explicar o elemento de determinação de diferença e o elemento de determinação de diferença inversa para vector de movimento, usados no aparelho codificador de sinal de imagem da presente invenção; A fig. 4, um esquema de circuito que mostra, numa forma de blocos, um elemento de avaliação de macrobloco não considerado, do codificador usado no aparelho codificador de sinal de imagem da presente invenção; A fig. 5, um esquema de circuito que mostra, numa forma de blocos, um descodificador usado num aparelho descodificador de sinal de imagens; A fig. 6, um esquema de circuito que mostra, numa forma de blocos, o diagrama da configuração do elemento de determinação de diferença inversa para vector de movimento usado no aparelho descodificador de sinal de imagem; A fig. 7, uma vista para explicar a configuração mais prática do vector de diferença no aparelho descodificador de sinal de imagem; A fig. 8, uma vista para explicar um exemplo real para reconstruir o vector de movimento a partir do vector de movimento de diferença no aparelho descodificador de sinal de imagem; A fig. 9, uma vista para explicar o princípio da predição compensadora de movimento; 36 A fig. 10, uma vista para explicar a predição compensadora de movimento em unidades de macroblocos; A fig. 11, uma vista para explicar a predição compensadora de movimento entre imagens; A fig. 12, um esquema de circuito que mostra, numa forma de blocos, o elemento de determinação de diferença para vector de movimento em MPEGl; A fig. 13, uma vista para explicar um exemplo de operação do elemento de determinação de diferença para vector de movimento MPEGl; A fig. 14, um esquema de circuito, que mostra, numa forma de blocos, o diagrama da configuração do elemento de determinação de diferença inversa para vector de movimento em MPEGl; A fig. 15, uma vista para explicar a predição adaptável de quadro/campo; A fig. 16, um esquema de circuito que mostra, numa forma de blocos, um exemplo convencional do elemento de determinação de diferença para vector de movimento; A fig. 17, um esquema de circuito que mostra, numa forma de blocos, um exemplo convencional do elemento de determinação de diferença inversa para vector de movimento; A fig. 18, uma vista para explicar o problema do elemento convencional de determinação de diferença para vector de movimento; A fig. 19, uma vista para explicar um exemplo real para reconstruir o vector de movimento a partir do vector de movimento de diferença. 37 1
Modo óptimo para realizar a invenção
Descreve-se, em primeiro lugar, com referência à fig. 1 um aparelho de codificação (codificador) de imagem animada (película) de acordo com a presente invenção. A informação para controlar o funcionamento básico do codificador de acordo com a presente invenção é proporcionada a partir de uma secção de entrada de informação (30), de controlo de codificação de imagem, e é armazenada na memória (29) de armazenamento de informação de controlo de codificação de imagem. Estas informações são as dimensões do quadro de imagem, a frequência de bits de saída da informação de codificação, etc.. Estas informações são extraídas da memória (29), como sinal (S25) de controlo de codificação de imagem. Além disso, o sinal (S26) de estrutura de imagem (o sinal para discriminar se a estrutura de imagem é estrutura de quadro, estrutura de campo ou progressiva) é extraído, através da memória (29) , da secção (30) de entrada de informação de codificação de imagem, e o sinal (S27) de tipo de codificação de imagem (o sinal para discriminar se o tipo de imagem é imagem I, imagem P ou imagem B), é também extraído da mesma.
Além disso, fornece-se iam sinal de imagem, introduzido a partir do terminal (10) de entrada de imagem, a um grupo (11) de memórias de campos. Além disso, fornece-se um sinal (SI1) de sincronização vertical, que é um sinal de sincronização de imagem de entrada, a partir do terminal de entrada (26) e depois fornece-se a um elemento (23) de controlo de imagem de referência. 0 sinal (S25) de controlo de codificação de imagem, o sinal (S26) de estrutura da imagem e o sinal (S27) são também fornecidos ao elemento (23) de controlo de imagem de 38 r— 1—1/ li ν referência, pelo terminal (1) . Quando este elemento (23) de controlo de imagem de referência recebe o sinal (Sll) de sincronização vertical, extrai o sinal (S10) de indicação de imagem de referência, que se descreverá mais adiante, e fornece-se ao grupo (11) de memórias de campos.
Uma imagem de um sinal de imagem, que se forneceu ao grupo (11) de memórias de campos, é uma imagem que deve codificar-se actualmente. Em sincronismo com a porção anterior de imagem, ainda a partir do grupo (11) de memórias de campos, o grupo (11) de memórias de campos dispõe ou levanta o indicador (S22) de começo de imagem, que se descreverá mais adiante, para o fornecer ao elemento (24) de controlo de imagens de referência, pelos terminais (2) e (9) . 0 elemento (24) de controlo de imagem de referência extrai os sinais (S12,S13) de indicação de imagem de referência, que se descreverão mais adiante, quando se dispõe o indicador (S22) de começo de imagem para as fornecer ao grupo (17) de memórias de campos. Além disso, o indicador (S22) de início de imagem, que se faz passar pelo terminal (9), é fornecido também a um elemento (25) de controlo de imagem de saída. 0 elemento (25) de controlo de imagem de saída extrai o sinal (S14) de indicação de imagem de saída, que se descreverá mais adiante, quando se dispõe o indicador (S22) de início de imagem para o fornecer ao grupo (17) de memórias de campos. Nesta forma de realização, o sinal (S25) de controlo de codificação de imagem, o sinal (S26) de estrutura de imagem e o sinal (S27) de tipo de codificação de imagem, são fornecidos ao elemento (24) de controlo de imagem de referência e ao elemento (25) de controlo de imagem de saída, pelo terminal (30). 39
U
Além disso, envia-se um sinal de imagem, que se forneceu ao grupo de memórias de campo (11), a um circuito de predição de movimento (12), e o sinal (S25) de controlo de codificação de imagem, o sinal (S26) de estrutura de imagem e o sinal (S27) de tipo de codificação de imagem provenientes do terminal (1) são fornecidos ao circuito (12) de predição de movimento. Este circuito (12) de predição de movimento realiza a predição de movimento de elementos de imagem, numa imagem que deve codificar-se actualmente num sinal de imagem, fornecido ao grupo (11) de memórias de campos, fazendo referência à imagem anterior e à imagem futura. A predição de movimento, atrás mencionada, é a coincidência de blocos de um sinal de elementos de imagem em blocos, numa imagem que deve codificar-se actualmente e a imagem anterior ou a imagem futura à qual se faz referência, e a dimensão do bloco é, por exemplo, 16 x 16 elementos de imagem ou 16 x 8 elementos de imagem ou 8 x 8 elementos de imagem.
As imagens de referência anterior e futura, neste momento, são designadas a partir do grupo (11) de memórias de campo, de acordo com o sinal (S10) de indicação de imagem de referência de predição de movimento extraído do elemento (23) de controlo de imagem de referência. 0 circuito (12) de predição de movimento detecta cada posição e bloco na imagem de referência na qual o erro preditivo, na coincidência de blocos se torna mínimo, relativamente aos modos de compensação de movimento seleccionáveis respectivos, para fornecer o vector de movimento correspondente a essa posição, como sinal (S7) de vector de movimento, ao circuito (18) compensador de movimento. Deve notar-se que o modo compensador de movimento que pode seleccionar-se é determinado pelo sinal (S26) de estrutura de imagem e o sinal (S27) de tipo de codificação de imagem. 40 J- ^t \i
Além disso, o circuito (12) de predição de movimento fornece ao circuito (18) compensador de movimento o sinal (S30) de tipo de predição, o sinal (S31) de paridade de referência do vector de movimento de campo, o sinal (S32) de vector de submovimento e o sinal (S33) de paridade de campo predito, como informação adicional do sinal (S7) de vector de movimento, também.
Neste caso, o sinal (S30) de tipo de predição é informação, por exemplo, que indica se a predição de movimento é realizada a base de quadro ou à base de campo, a coincidência de blocos é feita por 16 x 16 elementos de imagem, 16 x 8 elementos de imagem ou 8 x 8 elementos de imagem, a predição de movimento é DUAL-PRIME ou não. Deve notar-se que, como os pormenores da predição de bloco de 8 x 8 elementos de imagem e a predição DUAL-PRIME se descrevem no material, descrito anteriormente, ISISSOEC/JTC1/SC29/WG11 MPEG93/225b Modelo 4 de ensaio, omite-se aqui a sua explicação.
Além disso, o sinal (S31) de paridade de referência do vector de movimento de campo é um sinal que indica se um campo que faz referência ao vector é o primeiro campo (campo 1) ou o segundo campo (campo 2), no caso em que a predição de movimento é realizada tendo por base o campo. 0 sinal (S32) de vector de submovimento é, por exemplo, um sinal unido ao vector de predição DUAL-PRIME e predição de bloco de 8 x 8 elementos de imagem. 0 sinal (S33) de paridade de campo predito é um sinal que indica se o campo de destino da predição (campo predito) do vector de movimento é o primeiro campo ou o segundo campo, no 41 t u κ caso de a predição de movimento ser realizada com base no campo. O circuito compensador de movimento (18) ordena a saida do sinal (S3) de imagem em bloco, situada num sentido designado pelo sinal (S7) de vector de movimento, do sinal (S30) de tipo de predição, do sinal (S31) de paridade de referência do vector de movimento de campo, do sinal (S32) de vector de submovimento e do sinal (S33) de paridade de campo predito, a partir do grupo (17) de memórias de campo, nas quais estão armazenadas as imagens já descodificadas e reproduzidas (o que será descrito mais adiante). A imagem de referência neste momento é designada a partir do grupo (17) de memórias de campo, de acordo com o sinal (S12) de indicação de imagem de referência de compensação de movimento extraída do elemento de controlo de imagem de referência (24).
Faz-se com que uma saída do sinal (S3) de imagem em bloco a partir do circuito compensador de movimento (18) seja uma operação adaptável, tornando assim possível realizar a comutação para um dos modos, óptimo, seleccionáveis compensadores de movimento, de quatro classes de operações, descritas a seguir em unidade de macrobloco.
Isto é, quatro classes de operações são quatro classes de modos: primeiro, modo de compensação de movimento a partir da imagem reproduzida anterior (modo preditivo para diante), segundo, modo de compensação de movimento a partir da imagem reproduzida futura (modo preditivo para trás), terceiro, modo de compensação de movimento a partir de ambas as imagens reproduzidas, anterior e futura (faz-se com 42 t r que o bloco de referência da imagem reproduzida futura sofra nma operação linear (por exemplo, cálculo de valor médio) em cada elemento de imagem) (modo bidireccionalmente preditivo), quarto, modo sem compensação de movimento (ou seja, modo intracodifiçado. Neste caso, a saída de sinal (S3) de imagem em bloco é igual a zero). Entre estes modos, a comutação para o óptimo é realizada a partir de qualquer modo seleccionável.
Na comutação do modo de compensação de movimento, por exemplo, selecciona-se um modo no qual é mínima a soma total dos valores absolutos dos valores de diferenças, em cada elemento de imagem, entre os sinais (S3) de imagem respectivos extraídos, nas quatro classes de modos, e o sinal (Sl) de elementos de imagem de bloco que deve codificar-se actualmente. 0 modo assim seleccionado é enviado para os componentes respectivos, através do terminal (3), como sinal (S9) de modo de compensação de movimento, sinal (S8) de vector de movimento nesse instante, sinal (S40) de tipo de predição, sinal (S41) de paridade de referência de vector de movimento de campo, sinal (S42) de vector de submovimento e sinal (S43) de paridade de campo predito.
Além disso, o sinal (Sl) de elementos de imagem de macrobloco a codificar actualmente é extraído do grupo de memórias de campos 11), e o indicador (S300) de início de macrobloco é extraído em sincronismo com a saída deste sinal (Sl), de elementos de imagem de macrobloco. 0 contador de macroblocos (49) conta o seu número, em sincronismo com o indicador de começo de macrobloco (S300). Além disso, o contador (49) de macroblocos é reposto quando se dispõe o indicador de começo de imagem (S22) fornecido pelo terminal 43 (48) . Deve notar-se que o sinal de controlo de codificação de imagem (S25) é também fornecido pelo terminal (46) para o contador de macroblocos (49). 0 indicador de início de fatia (S 3 01), extraído pelo terminal (45) do contador de macroblocos (49), é disposto quando o valor de contagem de macroblocos for igual a um múltiplo de um comprimento pré-determinado de fatia (número de macroblocos que constituem a fatia). Aqui, a fatia é uma unidade composta por apenas um ou por vários macroblocos sucessivos, por ordem de exploração de imagens. Estabelece-se a consideração tal que o primeiro macrobloco transmite os dados que indicam a posição, no interior da imagem, na porção anterior da fatia, de modo que os dados recebidos podem ser repostos no estado normal, incluindo o caso em que há qualquer erro no lado receptor. Faz-se com que o comprimento de fatia seja modificável de acordo com o estado de erro do trajecto de transmissão do fluxo de bits. Em geral, à medida que aumenta a probabilidade de erro do trajecto de transmissão, torna-se menor o comprimento da fatia. 0 comprimento da fatia designada neste momento é armazenado na memória (29).
Faz-se com que o sinal (Sl) de elementos de imagem em macro bloco e o sinal (S3) de imagem em bloco fornecido a partir do circuito compensador de movimento (18) sejam submetidos ao cálculo de valor de diferença, em cada elemento de imagem, num elemento de subtracção (13). Como resultado, obtém-se um sinal (S2) de diferença de blocos. 0 sinal (S2) de diferença de blocos é fornecido a uma secção codificadora de sinal em blocos (14), a partir da qual se obtém o sinal codificado (S 4). 0 sinal codificado (S4) é fornecido a uma secção descodificadora de sinal de blocos (15), na qual se 44 Γ descodifica. Assim, obtém-se um sinal (s5) de diferença de reprodução de blocos.
Nesta forma de realização, fornecem-se à secção codificadora de sinal em blocos (14), o sinal (S25) de controlo de codificação de imagem, que se faz passar pelo terminal (7), e o sinal (S15) da tabela de quantificação, que se faz passar pelos terminais (31) e (8) , são também fornecidos à secção codificadora de sinal em blocos (14) . Como configuração da secção codificadora de sinal em blocos (14), pode aplicar-se a configuração composta por um elemento de transformada cosinusoidal discreta e um quantificador, para quantificar os coeficientes de saida, por meio do sinal (S15) da tabela de quantificação designada a partir da memória intermédia (21) . Neste caso, o sinal (S25) de controlo de codificação de imagem e o sinal (S15) da tabela de quantificação são fornecidos também à secção (15) descodificadora de sinal em blocos (15) . Como configuração da secção descodificadora de sinal em blocos (15) , pode aplicar-se a configuração formada por um quantificador inverso para quantificar inversamente os coeficientes por meio do sinal (S15) da tabela de quantificação e um elemento de transformada cosinusoidal discreta inversa, nos coeficientes de saida provenientes do mesmo. 0 sinal (S5) de diferença de reprodução de blocos é somado ao sinal (S3) de imagem em bloco extraída do circuito compensador de movimento (18), em cada elemento de imagem, no adicionador (16). Como resultado, obtém-se um sinal de reprodução de bloco (S6) . Este sinal de reprodução de bloco (S6) é armazenado na memória de campo designada pelo sinal de indicação de imagem actual anterior (S13), proveniente do grupo (17) de memórias de campo. A imagem de reprodução armazenada no 45 |·— Ul ^ grupo (17) de memórias de campos é extraída do terminal (129), como um sinal de imagem de reprodução, designada de acordo com o sinal (S14) de indicação de imagem de saída atrás descrito.
Por outro lado, o sinal codificado em bloco (S4) é também enviado a uma secção (19) geradora de sinal monodimensional, alimentada com o sinal de controlo de codificação de imagem (S25), pelo terminal (6), na qual se armazena, na matriz unidimensional (SI6). A configuração da secção gerador de sinal monodimensional (19), para explorar em ziguezague os coeficientes de transformada cosinusoidal discreta de quantificação de blocos, por ordem, a partir da baixa para a alta frequência. Faz-se com que o sinal codificado monodimensional (SI6) seja um código de comprimento variável, tal como o código de Huffman, no codificador de comprimento variável (20).
Além disso, o sinal de vector de movimento (S8) é enviado ao elemento de determinação de diferença de vectores (27) (designado na figura por elemento de diferença), no qual se obtém uma diferença entre o vector de movimento (S8) e o vector de movimento (S8) fornecido ulteriormente, de modo que resulta o sinal de vector (S50) de movimento de diferença. Faz-se com que este sinal (S50) de vector de movimento de diferença seja um código de comprimento variável, tal como o código de Huffman, etc., no elemento de codificação de comprimento variável (20). Nesta forma de realização, o indicador de início de macrobloco (S300), o indicador de início de fatia (301), o sinal de modo de compensação de movimento (S9), o sinal de estrutura de imagem (S26) e o sinal de tipo de predição (S40) também são fornecidos ao terminal (4). 46 L·, ...........
V Γ 0 pormenor do elemento (27) de determinação de diferença de vectores será descrito com referência à fig. 2. Na fig. 2, o indicador (S301) de inicio de fatia é introduzido no terminal (77) do elemento (27) de determinação de diferença de vectores, o indicador de inicio de macrobloco (S300), que se faz passar pelos terminais (47) e (4) da fig. 1, é introduzido no terminal (71), o sinal (S8) de vector de movimento, que se faz passar pelos terminais (3) e (4) da fig. 1, é introduzido no terminal (70), o sinal (S9) de modo de compensação de movimento, que se faz passar pelos terminais (3) e (4) da fig. 1, é introduzido no terminal (72), o sinal (S40) de tipo de predição, que se faz passar pelos terminais (3) e (4) da fig. 1, é introduzido no terminal (73) e o sinal (S26) de estrutura da imagem, que se faz passar pelo terminal (4) da fig. 1, é introduzido no terminal (74).
Neste caso, o número de transmissão de vectores de movimento para a frente, ou vectores de movimento para trás que devem transmitir-se no interior do macrobloco é reconhecido pelo sinal (S26) de estrutura de imagem e o sinal (S40) de tipo de predição. Determinam-se como está indicado nas tabelas 1, 2 e 3, apresentadas mais adiante. Nesta forma de realização, os números máximos respectivos de transmissão de vectores de movimento para a frente e de vectores de movimento para trás que devem transmitir-se são 2. Por conseguinte, transmitem-se, como máximo, quatro vectores de movimento no interior do macrobloco. Deve notar-se que, no caso de o número de transmissão de vectores de movimento para a frente ou para trás, que devem transmitir-se no interior do macrobloco, ser 2, é previamente determinada a ordem de transmissão destes dois vectores de movimento. Por exemplo, no caso da predição baseada em campo, da tabela 1, o vector de movimento no qual o campo 47
L-Cj ^ predito é o primeiro campo, transmite-se antes, e o vector de movimento no qual o campo predito é o segundo campo, transmite-se depois. Além disso, no caso da predição baseada em campo de 16 x 8, da tabela 2, o vector de movimento da porção superior transmite-se antes e o vector de movimento da porção inferior transmite-se depois. Adicionalmente, o circuito de compensação de movimento (18), nesta forma de realização, extrai o vector de movimento (S8) pela mesma ordem que esta ordem de transmissão.
Tabela 1
Caso em que a estrutura de imagem é de quadro (entrelaçado)
Tipo de predição Contagem de vectores De movimento Formato de vector De movimento Predição baseada em campo 2 Campo Predição baseada em quadro 1 Quadro "Dual-prime" 1 Campo
Tabela 2
Caso em que a estrutura de imagem é imagem de campo
Tipo de predição Contagem de vectores De movimento Formato de vector De movimento Predição baseada em campo 16x16 1 Campo Predição baseada em campo 16x8 2 Campo 1 ”Dual-prime" 1 Campo 48
V
Li
Tabela 3
Caso em que a estrutura de imagem é imagem progressiva
Tipo de predição Contagem de vectores De movimento Formato do vector De movimento Predição baseada em campo 16x16 1 Quadro Predição baseada em campo 16x8 2 Quadro "Dual-prime" 1 Quadro
Nesta forma de realização, o grupo de registos (81), no elemento (27) de determinação de diferença de vectores da fig. 2 é construído como se mostra na fig. 3, por exemplo. Na fig. 3, estão preparadas como grupo de registos (81) quatro memórias de registo (PMV1~PM4) para armazenar vectores de movimento.
Além disso, faz-se com que os vectores de movimento para a frente e os vectores de movimento para trás tenham, respectivamente, uma relação de correspondência biunívoca com respeito às memórias de registos (PMV1-PMV4) , de acordo com a ordem de transmissão no interior do macrobloco. Num sentido mais prático, o vector de movimento para a frente, transmitido primeiro no interior do monobloco, é armazenado na memória de registo (PMV1). O vector de movimento para diante transmitido em segundo lugar, no interior do macrobloco, é armazenado na memória de registos (PMV2). Além disso, o vector de movimento para trás transmitido primeiro no interior do macrobloco é armazenado na memória de registo (PMV3). o vector de movimento para trás transmitido em segundo lugar no interior do macrobloco é armazenado na memória de registo (PMV4). Como atrás se mencionou, nesta forma de realização, a ordem de transmissão no inLeriur du macrobloco dos vectores de movimento 49 respectivos, proporciona índices que indicam a relação entre vectores de movimento respectivos e os registos no interior das memórias de registos (PMV1~PMV4), nos quais se armazenam esses vectores de movimento.
Por outras palavras, nesta forma de realização, os índices "1"~"2" são proporcionados pela ordem de transmissão dos vectores de movimento para a frente, no interior do macrobloco e, os índices "3"-"4" são proporcionados pela ordem de transmissão dos vectores de movimento para trás, no interior do mesmo, permitindo assim que os vectores de movimento que têm índices respectivos e as memórias de registos (PMV1-PMV4), tenham uma relação de correspondência biunívoca. Deve notar-se que os terminais de entrada respectivos (a-d) das memórias de registos (PMV1-PMV4) da fig. 3 estão ligados aos terminais seleccíonados correspondentes do comutador (80) da fig. 2, e os terminais de saída (e-h) estão ligados aos terminais seleccíonados correspondentes do comutador (82) da fig. 2. A sintaxe do fluxo de bits no instante de transmissão do vector de movimento está indicada na tabela 4. 50 f Í^N.1
Tabela 4 01 motion_vector() [/* fluxo de bits.sintaxe de vector de movimento*/ 02 motion_horizontal_code;/*componente horizontal X do vector de movimento*/ 03 motion_vertical_code;/*componente vertical Y do vector de movimento */ 04 } 05 06 forward_field_motion_vector(){ 07 motion_vertical_field_select;/*referência de vector de movimento de campo.paridade*/ 08 motion_vector() ; 09 } 10 11 backward_field motion__vector () { 12 motion_vertical_field_select;/*referência de vector de movimento de campo.paridade*/ 13 motion_vector(); 14 } 15 16 forward_motion_vector(){/*fluxo de bits.sintaxe relativamente ao vector para diante*/ 17 if(motion_vector_count == 1){/* quando o número de vectores de movimento é 1*/ 18 if(mv_format == frame){/*caso em que mv_format é quadro*/ 19 motion_vector O ;/*índice 1 (~>PMV1) , PMV2=PMV1*) 20 } else/*caso em que mv_format é campo*/ 21 forward_f ield_motion_vector () ;/*índice_l (-»PMV1), PMV2=PMV1*/ 22 if (dmv==l){/*caso de Dual_prime*/ 51
L~3 dmv_horizontal;/*vector de submovimento*/ dmv_vertical;/*vector de submovimento*/ } } } else{/*motion_vector_count==2; quando o número de vectores de movimento é 2*/ forward_field_motion_vector();/* índice_l (~>PMV1)*/ forward_field_motion_vector();/*índice_2 (—>PMV2)*/ } } backward_motion_vector(){/*fluxo de bits.sintaxe relativamente ao vector para trás*/ if(motion_vector_count==l){/*quando o número de vectores de movimento é 1*/ if(mv_format==frame){/*caso em que mv_format é quadro*/ motion_vector () ; /*índice_3 (-»PMV3, PMV4=PMV3*/ }else{/*caso em que mv_format é campo*/ backward_field_motion_vector();/*índice_3 (-»PMV3).PMV4=PMV 3*/ if(dmv==l){/*caso de Dual_prime*/ dmv_horizontal;/*vector de submovimento*/ dmv_vertical;/*vector de submovimento*/ } } }else{/*motion_vector_count==2;quando o número de vectores de movimento é 2*/ backward_field_motion_vector();/*lndice_3 (->PMV3)*/ backward_field_motion_vector();/*índice_4 (—»PMV4)*/ } } 52
Nesta tabela 4, a função "forward_motion_vector()" é a função relacionada com o vector de movimento para diante, e a função "forward_motion_vector()" é a função relacionada com o vector de movimento para diante e a função "backward_motion_vector()" é a função relacionada com o vector movimento para trás. Além disso, a declaração compreendida por "/*" é um comentário. Como se mostra nesta tabela, faz-se com que os vectores de movimento que devem transmitir-se e as memórias de registos PMV se correspondam entre si, respectivamente. Neste caso, utilizam-se os parâmetros de "mv_format", "motion_vector_count proporcionando-se estes parâmetros com base nas tabelas 1-3. Como se mostra nas tabelas 1, 2, como "mv_format" há o tipo de "quadro" e o tipo de "campo". A pariade de referência do vector de movimento de campo soma-se basicamente ao vector de tipo de "campo". Além disso, "motion_vector_count" indica o número de transmissão dos vectores para diante ou para trás que devem transmitir-se no interior de um macrobloco, como se mostra nas tabelas 1-3.
Aqui, "forward_jmotion_vector () " vai descrever-se a seguir. Inicialmente, no caso de haver um "motion_vector_count" (linha 17) , a informação de vector de movimento é armazenada na memória de registo (PMV1) . Além disso, no caso de haver dois "motion_vector_count", a informação de vector de movimento transmitida primeiro (linha 28) é armazenada na memória de registo (PMV1) e a informação de vector de movimento transmitida em segundo lugar (linha 29) é armazenada na memória de registo (PMV2) . Com mais pormenor, no caso de haver uma informação de vector de movimento que deve ser transmitida (linha 17), o trajecto de decisão bifurca-se em dois casos, do caso onde "mv_format" é quadro" (linha 18) e o caso onde "mv_format" é "campo" (linha 20), no caso em que "mv_format" é 53 Γ "campo" e além disso no caso em que "dmv==l" (linha 22), "prediction_type" é "Dual_prime". Por conseguinte, transmitem-se "dmv_horizontal" e "dmv_vertical". Estas são vector de submovimento, quando o tipo de predição é "Dual_prime". Isto aplica-se de modo semelhante a "backward_motion_vector()
No macrobloco em que há um vector de movimento para diante que deve transmitir-se, ao actualizar a memória de registo PMV1, a memória de registo PMV2 é actualizada no mesmo valor. Além disso, no macrobloco no qual há um vector de movimento para trás, que deve ser transmitido, ao actualizar a memória de registo (PMV3), actualiza-se a memória de registo (PMV4), para o mesmo valor. 0 funcionamento da sintaxe do fluxo de bits que se explicou na tabela 4, atrás mencionada vai agora descrever-se, utilizando a configuração da fig. 2.
Na fig. 2, em resposta ao sinal (S8) de vector de movimento, introduzido pelo terminal (70), o gerador (87) de indicadores de sinais de vectores de movimento extrai o indicador (S86) de saída de vector de movimento. Tais indicadores (S86) de sinais de vectores de movimento são contados pelo contador de vectores de movimento (88). Deve notar-se que o contador de vectores de movimento (88) é reposto quando se dispõe o indicador (S300) de início de macrobloco, que se faz passar pelo terminal (71). O sinal (S87), de número de contagem de vectores de movimento, proveniente do contador (88) de vectores de movimento, introduz-se no gerador de sinais de designação de índices de registo (89). O sinal (S9), de modo de compensação de movimento, o sinal (S40) de tipo de predição e o sinal (S26) de estrutura de imagem, que se fazem passar 54
L· t pelos terminais (72,73,74), introduzem-se no gerador de sinais (89) de designação de indices de registos.
No caso desta forma de realização, o número de transmissão de vectores de movimento para a frente ou vectores de movimento para trás que devem transmitir-se ("motion_vector_count") no interior do macrobloco reconhecido pelo sinal (S26) de estrutura de imagem e o sinal (S40) de tipo de predição e o número de todos os vectores de movimento que devem transmitir-se no interior do macrobloco, é reconhecido pelo sinal (S9) de modo de compensação de movimento. Por exemplo, no caso de "motion_vector_count" ser 2 e o sinal (S9) de modo de compensação de movimento ser um modo bidireccionalmente preditivo, como os vectores de movimento que devem transmitir-se no interior do macrobloco se transmitem pela ordem de dois vectores de movimento para a frente e dois vectores de movimento para trás, o número de todos os vectores de movimento transmitidos no interior do macrobloco é 4.
Com base nesta informação, o gerador de sinais (89), de designação de indices de registo, gera o sinal (S88) do número de contagem de vectores de movimento, para o extrair. Por exemplo, no exemplo da fig. 3 atrás mencionado, quando o sinal (S87) de número de contagem de vectores de movimento toma o valor 1, designa-se a memória de registo (PMV1) no grupo de registos (81); quando esse sinal toma o valor 2, designa-se a memória de registo (PMV2) no grupo de registos (81); quando esse sinal toma o valor 3, designa-se a memória de registo (PMV3) no grupo de registos (81) e quando esse sinal toma o valor 4, designa-se a memória e registo (PMV4) no grupo de registos (81). 55 L-^ 5-^—
Como outro exemplo, no caso em que há "motion_vector__count", o sinal (S9) de modo de compensação de movimento é o modo preditivo para trás, como há um vector para trás como o número de todos os vectores de movimento que devem transmitir-se no interior do macrobloco, a memória de registo (PMV3) é designada no grupo (81) de registos, quando o sinal (S87) de número de contagem de vectores de movimento toma o valor 1.
Em resposta ao sinal (S88) de designação de índice de registo, o grupo de registos (81) extrai o sinal (S82) de vector de movimento, armazenado no registo designado, pelo comutador (82).
Este sinal (S82) de vector de movimento extraído do registo é convertido à escala pelo sinal (S85) de indicação de escala (sinal (A) de indicação de escala) extraído do circuito comutador (85) à base do sinal (S40) de tipo de predição, proveniente do terminal (75) no conversor de escala (84) de conversão de escala (A), conforme seja necessário, introduzindo-se então no circuito de diferença (86). Neste circuito, calcula-se um valor de diferença entre o vector de movimento convertido à escala e o sinal (S8) de vector de movimento introduzido actualmente. Assim, obtém-se o sinal (S50) de vector de movimento de diferença. Este sinal extrai-se do terminal (76).
Por outro lado, o sinal (S8), do vector de movimento introduzido actualmente, é convertido à escala (sinal (S80) de vector de movimento convertido à escala) pelo sinal (S83) de indicação de escala) extraído do circuito comutador (85), no conversor de escala de conversão B (83), como for necessário, 56 U ^-IÇ. Γ insc.revendo-se depois e armazenando-se novamente, no registo designado pelo sinal (S88) de designação de índice de registo, através do comutador (80). Deve notar-se que o conversor de escala (84) e o conversor de escala (83), como atrás se mencionou, podem usar-se para o ajustamento espacial de escala no instante em que se calcula o vector de movimento de diferença entre o vector de movimento que faz referência a quadro e o vector de escala que faz referência a campo e/ou o ajuste de escala, baseado neste caso no instante da base de tempo no instante em que se calcula o vector de diferença entre os vectores de movimento nos quais são diferentes as diferenças no instante de tempo até ao campo de referência. A reposição da memória de registo (PMVj do elemento (27) de determinação de diferença de vectores é realizada no macrobloco, no qual o sinal (S9) de modo de compensação de movimento, no macrobloco no qual o sinal de modo de compensação de movimento (S9) , que se faz passar pelo terminal (77), é um modo intracodificado e no qual o macrobloco no qual se dispõe o indicador (S301) de início de fatia, proveniente do terminal (77) . Neste instante todos os registos do grupo de registos (81) são repostos no zero. A instrução de reposição deste registo é realizada pelo elemento de instruções (78) de reposição de registos.
Nesta forma de realização, o elemento (27) de determinação de diferença para vector de movimento é construído como anteriormente. Deve notar-se que, também na forma de realização antes descrita, a ordem de saída dos vectores de movimento (S8) do circuito (18) compensador de movimento é igual à ordem de transmissão de vectores de movimento previamente determinada, podendo a primeira ser diferente da última. No entanto, também 57 rr u neste caso, como a ordem de entrada dos vectores de movimento de diferença (S50) para no elemento de codificação (20) de comprimento variável, é necessário que seja finalmente igual à ordem de transmissão, é necessário para a configuração extra ou adicional para fornecer o sinal de paridade de campo predito, ao gerador de sinais de designação de índices de registo (89), transpor ou intermudar a ordem de saida dos vectores de movimento de diferença (S50) ou similar. A configuração do elemento (28) de determinação de macroblocos não considerados, da fig. 1, vai agora descrever-se com referência à fig. 4.
Na fig. 4, o sinal de erro preditivo de compensação de movimento (SI6) é fornecido ao terminal (96) do elemento (28) de avaliação de macroblocos não considerados. Além disso, o sinal de vector de movimento de diferença (S50), o sinal de vector de movimento (S8), proveniente do terminal (4) da fig. 1, o sinal de modo de compensação de movimento (S9), o sinal de estrutura de imagem (S26), o sinal de tipo de predição (S40), o sinal de paridade de referência do vector de movimento de campo (S41) , proveniente do terminal (5) da fig. 1, o sinal de vector de submovimento (S42), o sinal de paridade de campo predito (S43) e o sinal de tipo de codificação de imagem (S27) são fornecidos ao elemento de avaliação (28) de macroblocos não considerados, além do sinal de erro preditivo (S16) de compensação de movimento. Isto é, o sinal de vector de movimento (S8), o sinal de vector de movimento de diferença (S50), o sinal de modo de compensação de movimento (S9), o sinal de tipo de predição (S40), o sinal de paridade de referência de vector de submovimento (S41), o sinal de paridade de campo predito (43), o sinal de tipo de codificação de imagem 58 u, ^ (S27) e o sinal de estrutura de imagem (S26) são introduzidos no terminal (95) da fig. 4. Estes sinais são armazenados na memória (91) para armazenamento de parâmetros de macroblocos actuais.
Faz-se com que o sinal (16) de erro preditivo de compensação de movimento de macrobloco seja avaliado, no elemento de avaliação de coeficientes não nulos (94), relativamente a saber se existe o sinal que deve transmitir-se. Quando existir esse sinal que deve transmitir-se, o elemento de avaliação (94) informa o elemento de avaliação (93) desse facto. Em resposta a isso, o elemento de avaliação (93) dispõe o indicador de macrobloco em "FALSO" para o extrair.
Por outro lado, no caso de não existir sinal de erro preditivo a transmitir (ou seja, todos os coeficientes de (S16) são nulos), o elemento (94) de avaliação notifica o sinal de "VERDADEIRO" ao elemento de avaliação (93). Neste caso, o elemento de avaliação (93) faz, além disso, a avaliação comparativa do conteúdo da memória (91) e o conteúdo da memória (92) de armazenamento de parâmetros de blocos anteriores.
Aqui, no elemento de avaliação (93), no caso de o sinal (S27) de tipo de codificação de imagem ser imagem P, faz-se a avaliação comparativa das condições em que: primeiro, o sinal de vector de movimento (S8) é zero; segundo, o sinal de modo de compensação de movimento (S9) é a predição para diante; terceiro, o sinal de paridade de referência (S41) do vector de movimento de campo e igual à paridade de campo predito, no caso de o sinal de tipo de predição (S40) é a predição de campo; e 59 quarto, o sinal de vector de submovimento (S42) é zero.
Quando estas condições são satisfeitas, o elemento de avaliação (93) dispõe o indicador (S90) de macrobloco não considerado (saltado) em "VERDADEIRO", para o extrair. Caso contrário, o indicador de macrobloco (S90) saltado é "FALSO". Este indicador (S90) de macrobloco é extraído pelo terminal (97) e enviado para o elemento de codificação de comprimento variável (20) da fig. 1.
Além disso, no elemento de avaliação (93) , no caso de o sinal de tipo de codificação de imagem (S27) ser imagem B, executa-se a avaliação comparativa das condições em que: primeiro, o sinal de vector de movimento de diferença (S50) é zero; e segundo, o sinal de modo de compensação de movimento (S9), o sinal de tipo de predição (S40), o sinal de paridade de referência (S41) do vector de movimento de campo, o sinal de vector de submovimento (S42) e o sinal de paridade de campo predito (S43) são iguais, respectivamente aos conteúdos das memórias (91) e (92).
Quando se satisfazem estas condições, o elemento de avaliação (93) dispõe o indicador (S90) de macrobloco não considerado em "VERDADEIRO", para o extrair. Caso contrário, o indicador de macrobloco (S90) não considerado é "FALSO".
Deve notar-se que, em macroblocos do início e do fim da fatia, o macrobloco não considerado é inibido, inclusivamente no caso de se satisfazerem as condições anteriormente descritas. 60
No caso de o indicador (S90) de macrobloco não considerado ser "FALSO", copia-se o conteúdo da memória (91) para a memória (92). Além disso, relativamente ao macrobloco no qual o indicador de macrobloco não considerado (S90) é "VERDADEIRO", o elemento de codificação de comprimento variável (20) não faz qualquer dado. O elemento de avaliação de blocos não considerados (28) é constituído como anteriormente.
Além disso, relativamente à avaliação de macrobloco não considerado, vai agora descrever-se um outro processo. Nesse outro processo, limita-se a condição para permitir que o macrobloco não considerado de imagem P e imagem B se contenha na forma de realização atrás descrita, da seguinte maneira. Isto é, no caso de a estrutura de imagem ser a estrutura de quadro, o tipo de predição é limitado apenas ao caso de predição baseada no quadro. Além disso, no caso de a estrutura de imagem ser a estrutura de campo, limita-se o tipo de predição apenas ao caso de predição com base no campo de 16 x 16. Isto é, o tipo de predição de imagem B será também irrelevante para o tipo de predição do macrobloco anterior. O resumo da condição para permitir que o macrobloco não considerado se inclua neste caso é o seguinte. No caso em que o elemento (94) de avaliação de coeficientes não nulos determina que os macroblocos respectivos introduzidos são um macrobloco em que não existe o sinal que deve transmitir-se, o elemento de avaliação (93), determina, além disso, se os macroblocos respectivos satisfazem ou não esta condição, exigida para permitir que se inclua o macrobloco não considerado. Inicialmente, no caso de o sinal de tipo de codificação de imagem (S27) ser imagem P e o sinal de estrutura de imagem (S26) ser estrutura de campo, a condição para permitir que se inclua o macrobloco não considerado é: primeiro, o sinal de vector de movimento (S8) é zero; segundo, o sinal de modo de compensação de movimento (S9) é predição para a frente; terceiro, o sinal de tipo de predição (S40) é predição de campo 16 x 16; e quarto, o sinal de paridade de referência do vector de movimento de campo (S41) é igual à paridade do sinal de paridade de campo predito (S43).
Além disso, no caso de o sinal de tipo de codificação de imagem (S27) ser imagem P e o sinal de estrutura de imagem (S26) ser estrutura de quadro, a condição para permitir que se mantenha o macrobloco não considerado é: primeiro, o sinal de vector de movimento (S8) é zero; segundo, o sinal de modo de compensação de movimento (S9) é a predição para a frente; e terceiro, o sinal de tipo de predição (S40) é a prediçã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 se contenha o macrobloco não considerado é: primeiro, o sinal de vector de movimento de diferença (S50) é zero; segundo, o sinal de modo de compensação de movimento (S9) é igual ao do macrobloco anterior; 62
J terceiro, o sinal de tipo de predição (S40) é predição de campo 16 x 16; quarto, o sinal de paridade de referência (S41) do vector de movimento de campo é igual ao do macrobloco anterior; e quinto, o sinal de paridade de campo predito (S43) e igual ao 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 (S26) ser estrutura de imagem de quadro, A condição para permitir que se contenha o macrobloco não considerado é: primeiro, o sinal de vector de movimento (S50) é zero; segundo, o sinal de modo de compensação de movimento (S9) é igual ao do macrobloco anterior; e terceiro, o sinal de tipo de predição (S40) é a predição de quadro.
Voltando à fig. 1, depois de se armazenar, na memória intermédia (21), uma saída do elemento de codificação de comprimento variável (20), envia-se o fluxo de bits, com uma frequência de transmissão fixa, a partir do terminal de saída (22) . 0 aparelho de codificação de imagem animada é construído, da maneira atrás referida, para realizar a codificação de imagem animada, a saída do fluxo de bits e a saída da imagem codificada.
Na fig. 5, o sinal de fluxo de bits, introduzido a partir do terminal de entrada (50) é armazenado na memória intermédia 63 ι—' L· \ (51) e fornece-se depois ao elemento de codificação inversa de comprimento variável (52) .
Quando o elemento de codificação inversa de comprimento variável (52) detecta a porção anterior da imagem a descodificar, dispõe o indicador (S102) de inicio de imagem para o fornecer ao elemento de controlo de imagem de referência (58). Neste aparelho, este indicador de inicio de imagem (S102) é enviado para o elemento de controlo de imagem de referência (58) , pelos terminais (67) e (61). Quando se dispõe o indicador de inicio de imagem (S102), o elemento de controlo de imagem de referência (58) extrai os sinais de indicação de imagem de referência, que serão descritos ulteriormente, para os fornecer ao grupo de memória de campo (57).
Além disso, quando o elemento de codificação inversa de comprimento variável (52) detecta a porção anterior da fatia a codificar, dispõe o indicador de inicio de fatia (S211).
De maneira análoga, o indicador de inicio de imagem (S102) é também fornecido ao elemento de controlo de imagem de saida (59) . Quando se dispõe o indicador de inicio de imagem (S102), o elemento de controlo de imagem de saida (59) extrai o sinal de indicação de imagem de saida (S60), que será descrito mais adiante, para o fornecer ao grupo de memórias de campos (57). A informação de controlo para controlar o aparelho controlador de imagem animada da presente invenção, obtida do elemento de codificação inversa de comprimento variável (52), é armazenada na memória (201). Esta informação de controlo é extraída como sinal de controlo (S104) . Além disso, o sinal de estrutura de imagem (S201) e o sinal de tipo de codificação 64 Γ (S20) são extraídos da memória (201). São fornecidos ao elemento (52) de codificação inversa de comprimento variável. O sinal de macrobloco codificado (S50) que se extraiu do elemento de codificação inversa de comprimento variável (52), é fornecido à secção geradora de sinal bidimensional (53). Adicionalmente, o indicador de início de macrobloco (S210) é extraído, em sincronismo com uma saída do sinal (S50) de macrobloco codificado, a partir do elemento de codificação inversa de comprimento variável (52).
Faz-se com que o sinal de macrobloco codificado (S50) seja o sinal de bloco bidimensional (S51), na secção geradora de sinal bidimensional (53). Este sinal de bloco bidimensional (S51) é fornecido à secção descodificadora de sinal em blocos (54) , na qual se descodifica. Obtém-se assim o sinal de diferença de reprodução de blocos (S52).
Como configuração da secção descodificadora de sinal em blocos (54), pode aplicar-se a configuração constituída pelo quantificador inverso, para quantificar inversamente os coeficientes, por meio do sinal (S57) da tabela de quantificação extraída do elemento de codificação inversa de comprimento variável (52) e o elemento de transformada cosinusoidal discreta inversa, para realizar a transformada cosinusoidal discreta inversa, para extrair da mesma os coeficientes.
Além disso, como configuração da secção geradora de sinal bidimensional (53), pode aplicar-se a configuração constituída pelo conversor de exploração inversa, para explorar em ziguezague inverso o sinal de bloco codificado (S50), pela 65 p L·, ^^ ordem dos coeficientes, a partir da frequência baixa para a frequência alta.
Pr outro lado, o sinal de vector de movimento de diferença (590) unido ao macrobloco a descodificar actualmente, que se extraiu do elemento de codificação inversa de comprimento variável (52), é reconstruído no elemento de determinação de diferença inversa (202) (designado por elemento de diferença inversa de vectores de movimento, na figura). 0 sinal de vector de movimento reconstruído (S55), proveniente do elemento de determinação de diferença inversa (202), e o sinal de modo de compensação de movimento (S56), o sinal de tipo de predição (591) , o sinal (S92) de paridade de referência do vector de movimento de campo, o sinal de vector de submovimento (S93) e o sinal (S94) de paridade de campo predito enviam-se ao elemento (56) compensador de movimento, os quais são extraídos do elemento de codificação inversa de comprimento variável (52) e são passados pela memória (204) . Em resposta a estes sinais, este elemento compensador de movimento (56) ordena a saída do sinal de imagem em blocos, a partir do grupo de memórias de campos (57), nos quais se armazenam as imagens já descodificadas e reproduzidas.
Num sentido mais prático, o elemento compensador de movimento (56) reconhece a imagem de reprodução designada a partir do grupo de memórias (57), pelo sinal de indicação de imagem de referência (S58) atrás descrito, como a imagem de referência, para ordenar a saída do sinal de imagem em blocos situada num sentido, dentro da imagem de referência designados pelo sinal de modo de compensação de movimento (S56), o sinal de vector de movimento (S55) , o sinal de tipo de predição (S91), o sinal de paridade de referência do vector de movimento 66 L u t de campo (S92), o sinal de vector de submovimento (S93) e o sinal de paridade de campo predito (S94). 0 elemento compensador de movimento (56) está adaptado para realizar uma operação adaptável correspondente ao sinal de modo de compensação de movimento (S56), ou seja, para realizar quatro tipo de operações, descritas mais adiante, em unidades de macroblocos. Deve notar-se que as dimensões do bloco são, por exemplo, 16 x 16 elementos de imagem, 16 x 8 elementos de imagem ou 8 x 8 elementos de imagem.
Isto é, neste caso, como os quatro modos de operações temos: primeiro, modo de compensação de movimento a partir da imagem de reprodução anterior, segundo, modo de compensação de movimento a partir da imagem de reprodução futura, terceiro, modo de compensação de movimento a partir das duas imagens de reprodução anterior e futura (realiza a operação linear, por exemplo, o cálculo de valor médio, em cada elemento de imagem no bloco de referência, a partir da imagem de reprodução anterior e no bloco de referência a partir da imagem de reprodução futura) 3, e quarto, modo sem compensação de movimento, ou seja, modo intracodifiçado. Neste caso, a saida do sinal de imagem em bloco (S54) é igual a zero. 0 elemento compensador de movimento (56) selecciona um de quatro tipos de modos de operação, de acordo com o sinal (S56) de modo de compensação de movimento. 0 sinal de diferença de reprodução de blocos (S52), proveniente da secção descodificadora de sinal em blocos (54), soma-se, no adicionador (55), ao sinal (S54) de imagem em bloco 67 p U, ^^ extraída do elemento compensador de movimento (56), em cada elemento de imagem. Daí resulta que se obtém o sinal de reprodução de bloco (S53). Este sinal de reprodução de bloco (S53) é armazenado numa memória de campo, designada pelo sinal de indicação de imagem actual (S59), proveniente do grupo de memórias de campos (57). A imagem animada é reconstruída a partir do fluxo de bits, de uma maneira indicada anteriormente. A imagem de reprodução, designada de acordo com o sinal de indicação de imagem de saída (S60), atrás descrito, das imagens de reprodução armazenadas no grupo de memórias de campo (57), é extraída do terminal (60).
Deve notar-se que o sinal de controlo (S104), o sinal de estrutura de imagem (S202) e o sinal de tipo de codificação de imagem (S202) são fornecidos, pelo terminal (62), ao elemento compensador de movimento (56), ao elemento de controlo de imagem de referência (58) e ao elemento de controlo de imagem de saída (59). O elemento de determinação de diferença inversa (202), atrás descrito para o vector de movimento, é agora descrito com referência à fig. 6.
Na fig. 6, o sinal de vector de movimento de diferença (S9D), fornecido pelo terminal (311), é reconstruído no elemento de determinação de diferença inversa (202) da fig. 6. No elemento (202) de determinação de diferença inversa de vectores, são introduzidos o indicador de início de fatia (S211), o indicador de início de macrobloco (S210), o sinal de 68
vector de movimento de diferença (S90), o sinal de modo de compensação de movimento (S56), o sinal de tipo de predição (S91) e o sinal de estrutura de imagem (S201) . Isto é, o indicador de inicio de macrobloco (S210), é fornecido ao terminal (312), o sinal de modo de compensação de movimento (S56) é fornecido ao terminal (313), o sinal de tipo de predição (S91) é fornecido aos terminais (314) e (316) e o sinal de estrutura de imagem (S201) é fornecido ao terminal (315).
Neste caso, o número de recepção de vectores de movimento de diferença para a frente, ou vectores de movimento de diferença para trás, que devem receber-se no interior do macrobloco, é reconhecido pelo sinal de estrutura de imagem (S201) e pelo sinal de tipo de predição (S91) . Esse número de recepção é determinado como se indica nas tabelas 1-3 atrás referidas. Neste aparelho, os números máximos respectivos de recepções de vectores de movimento de diferença para diante e de vectores de movimento de diferença para trás são 2. Por conseguinte, recebem-se quatro vectores de movimento de diferença, como máximo, no interior do macrobloco.
Por esta razão, neste aparelho, o grupo de registos (305), no elemento de determinação de diferença inversa de vectores (202) da fig. 6, é construído como se mostra na fig. 3 atrás referida. Neste caso, estão preparadas quatro memórias de registos (PMV1-PMV4), para armazenar vectores de movimento, de maneira análoga às anteriores.
Faz-se com que os vectores de movimento de diferença para diante e os vectores de movimento de diferença para trás tenham, respectivamente, uma relação de correspondência 69
V r buinívoca relativamente às memórias de registos (PMV1-PMV4), de acordo com a ordem de recepção dentro do macrobloco. Num sentido mais prático, o vector de movimento de diferença para diante, recebido primeiramente no interior do macrobloco, é somado ao vector de movimento reconstruído, armazenado na memória de registo (PMV1). Além disso, o vector de movimento de diferença para diante, recebido em segundo lugar no interior do macrobloco é somado ao vector de movimento reconstruído, armazenado na memória de registo (PMV2). Além disso, o vector de movimento de diferença para trás, recebido primeiro no interior do macrobloco, é somado ao vector de movimento reconstruído armazenado na memória e registo (PMV3).
Adicionalmente, o vector de movimento de diferença para trás, recebido em segundo lugar no interior do macrobloco, é somado ao vector de movimento reconstruído armazenado na memória de registo (PMV4). Neste aparelho, a ordem de recepção no interior do macrobloco dos vectores de movimento respectivos proporciona índices que indicam qual o registo das memórias de registos (PV1-PMV4) que armazena em si o vector de movimento reconstruído que deve somar-se aos vectores de movimento de referência respectivos.
Por outras palavras, neste aparelho os índices "1" - "2" são dados pela ordem de recepção dos vectores de movimento de referência para diante no interior do macrobloco e os índices "3" - "4" são dados pela ordem das recepções dos vectores de movimento de diferença para trás, dentro do mesmo. Assim, faz-se com que os vectores de movimento que têm índices correspondentes e as memórias de registos (PMV) tenham uma relação de correspondência biunívoca. 70
Adicionalmente, a sintaxe do fluxo de bits de vector de movimento é como se mostra na tabela 4 atrás mencionada. Também neste caso, como se indica na tabela, faz-se com que os vectores de movimento a transmitir e os registos (PMV) se correspondam mutuamente. A explicação da tabela 4 é igual à feita no lado do codificador.
Deve notar-se que, ao actualizar-se a memória de registo (PMV1), o macrobloco no qual o número de recepção de vectores de movimento de diferença para diante é 1, actualiza a memória de registo (PMV3) , o macrobloco no qual o número de recepção de vectores de movimento de diferença para trás é 1, actualiza a memória de registo (PMV4) no mesmo valor. A operação de comutação das memórias de registos (PMV) é a seguir descrita com referência à fig. 6.
Na fig. 6, em resposta ao sinal de vector de movimento de diferença (S90), introduzido pelo terminal (311), o gerador de indicadores de sinais de vectores de movimentos de diferença (308) extrai o indicador (S306) de sinal de vector de movimento de diferença. Tais indicadores de vectores de movimento de diferença (S306) são contados pelo contador (309) de vectores de movimento de diferença. Deve notar-se que, quando se dispõe o indicador de inicio de macrobloco (S210), é reposto o contador de vectores de movimento de diferença (309). O sinal (307) de número de contagem de vectores de movimento proveniente do contador 309 de vectores de movimento é introduzido no gerador de sinais de designação de índice de registos (310). No gerador introduzem-se o sinal de modo de compensação de movimento (S56), o sinal de tipo de predição ÍS91) e o sinal de estrutura de imagem (S201). 71
Lc,
Neste caso , o número de transmissão de vectores de movimento de diferença para diante, ou vectores de movimento de diferença para trás ("motion_vector_count"), que devem ser transmitidos no interior do macrobloco, é reconhecido pelo sinal de estrutura de imagem (S201) e pelo sinal de tipo de predição (S91), e o número de transmissão de todos os vectores de movimento, a transmitir no interior do macrobloco, é reconhecido pelo sinal de modo de compensação de movimento (S56). Por exemplo, no caso de "motion_vector_count" ser 2 e o sinal de modo de compensação de movimento (S56) indicar o modo bidireccionalmente preditivo, como os vectores de movimento, que devem ser recebidos dentro do macrobloco, se recebem pela ordem de dois vectores de movimento de diferença para diante e dois vectores de movimento de diferença para trás, o número de transmissão de todos os vectores de movimento de diferença é 4.
Com base nesta informação, o gerador de sinais de designação de índices de registos (310) gera o sinal de designação de índice de registo (S308), a partir do sinal de número de contagem de vectores de movimento (S307) e extraí o mesmo. De acordo com este sinal de designação de índice de registo (S308), no exemplo descrito anteriormente, por exemplo quando o sinal de número e contagem de vectores de movimento (S307) toma o valor 1, é designada a memória de registo (PMV1) no grupo de registos (305); quando esse sinal toma o valor 2, a memória de registo (PMV2) é designada no grupo de registos (305) ; quando esse sinal toma o valor 3, é designada no grupo (305) de registos a memória de registo (PMV3) ; e quando esse sinal toma o valor 4, é designada a memória (PMV4) no grupo de registos (305) . 72 u Γ
Como outro exemplo, no caso em que há uma função "motion_vector_count" e o sinal de modo de compensação de movimento (S56) indica modo preditivo para trás, como só um vector de movimento de diferença para trás se transmite como número de transmissão de todos os vectores de movimento de diferença transmitidos no interior do macrobloco, quando o sinal de número de contagem de vectores de movimento (S307) toma o valor 1, designa-se a memória de registo (PMV3) no grupo de registos (305). O grupo de registos (305) responde ao sinal de designação de índice de registo (S308) para extrair o sinal de vector de movimento (S302), armazenado no registo designado, através do comutador (303).
Este sinal de vector de movimento de saída (S302) é convertido à escala (sinal de vector de movimento de saída reduzido à escala (S302)) no conversor (302) de escala de conversão C, de acordo com a necessidade, pelo sinal CONVERSÃO de indicação de escala (Sinal C de indicação de escala) extraído do circuito comutador (307), alimentado com o sinal de tipo de predição (S91), introduzindo-se depois no circuito adicionador (301) , no qual se soma ao sinal de vector de movimento de diferença (S90) introduzido actualmente. Reconstroi-se assim o sinal de vector de movimento (S55). Este sinal de vector de movimento (S55) é extraído do terminal (317), como vector de movimento reconstruído.
Por outro lado, o sinal de vector de movimento (S55) reconstruído actualmente é convertido à escala, pelo sinal de indicação de escala (S305) (sinal D de indicação de escala), no conversor (306) de escala de conversão P, de acordo com o 73 r L·, necessário, inscrevendo-se depois na memória de registo (PMV) do grupo de registos (305) designada pelo sinal de designação de índice de registo, e armazena-se de novo na mesma.
Deve notar-se que o conversor de escala (302) e o conversor de escala (306) podem usar-se para o ajuste espacial de escala, no momento de calcular o vector de movimento de diferença entre o vector de movimento que se refere a quadro e o vector de movimento que se refere a campo, e/ou o ajuste de escala baseado, na causa, no instante da base de tempo e no momento de calcular o vector de diferença entre os vectores de movimento que têm distâncias diferentes, no instante até o campo de referência.
Além disso, a reposição da memória de registo (PMV) do elemento de determinação de diferença inversa da fig. 6 (202), realiza-se no macrobloco em que o sinal de modo de compensação de movimento (S56) indica o modo intracodifiçado e no macrobloco em que se dispõe o indicador de início de fatia (S211). Neste momento, todos os registos no grupo de registos (305) são repostos em zero. A instrução de reposição deste grupo de registos (305) é realizada pelo elemento de instruções de reposição de registos (318). Neste aparelho, este elemento de instruções de reposição de registos (318) é alimentado com o indicador de início de fatia (S211) pelo terminal (68) da fig. 5 e pelo terminal (319) da fig. 6, o sinal de modo de compensação de movimento (S56), o sinal de tipo de codificação de imagem (S202) pelo terminal (64) da fig. 5, e o terminal (319) da fig. 6, e o indicador (S95) de macrobloco não considerado (saltado), pelo terminal (63) da fig. 5 e o terminal (319) da fig. 6. 74
V
U t 0 elemento de determinação de diferença inversa para vector de movimento (202) é constituído da maneira indicada anteriormente.
Voltando à fig. 5, vai agora descrever-se o tratamento do macrobloco não considerado, no lado do descodificador.
Na fig. 5, depois de se receber o macrobloco, a direcção em imagem desse macrobloco é obtida a partir da informação de cabeçalho do macrobloco. Isto é, o sinal de direcção de macrobloco (S94) obtida no elemento de codificação inversa de comprimento variável (52) é introduzido no comparador de direcções de macroblocos (203).
Neste comparador de direcções de macroblocos (203), armazena-se a direcção do macrobloco recebido anteriormente em um. Faz-se a comparação entre esse valor e o sinal de direcção de macrobloco (S94) . Como resultado, quando as direcções de macroblocos são descontínuas, ou seja, a diferença é 2 ou mais, reconhece-se que há um monobloco não considerado. O número, menor, em 1 que esse valor de diferença, é o número de macroblocos não considerados. Então, o comparador de direcções de macroblocos (203) dispõe o indicador (S95) de monobloco não considerado.
Quando se dispõe o indicador de macrobloco não considerado (S95), o descodificador entra no processamento de macrobloco não considerado. Inicialmente, o elemento de codificação inversa de comprimento variável (52) extrai zero, como sinal de bloco codificado (S50), quando se dispõe o indicador de macrobloco (S95). Por conseguinte, neste momento, o sinal de 75 IJ L·, ^^ diferença de reprodução de blocos (S52) é também feito igual a zero.
Além disso, no caso de, por exemplo, o sinal de tipo de codificação de imagem (S202) ser imagem P: primeiro, o elemento de instruções de reposição de registos (318) repõe em zero todos os registos (PMV), no elemento de determinação de diferença inversa para vector de movimento, segundo, o elemento de determinação de diferença inversa (202) extrai zero, como sinal de vector de movimento (S55), terceiro, o elemento de codificação inversa de comprimento variável (52) extrai o sinal e modo de compensação de movimento (S56), como predição para diante, quarto, o elemento de codificação inversa de comprimento variável (52) permite que o sinal de tipo de predição (S91) seja "predição baseada em quadros", quando o sinal de estrutura de imagem (S201) for estrutura de quadro, permite que seja "predição baseada em campo de 16 x 16, quando o sinal de estrutura de imagem (S201) for estrutura de campo, e permite que seja "predição baseada em quadros de 16 x 16 quando o sinal de estrutura de imagem (S201) for progressiva, quinto, o elemento de codificação inversa de comprimento variável (52) permite que o sinal de paridade de referência do vector de movimento de campo (S92) seja igual ao sinal de paridade de campo predito (S94), e sexto, extrai zero, como sinal de vector de submovimento (S93).
Além disso, no caso de, por exemplo, o sinal de tipo de codificação de imagem (S202) ser imagem B 76 t primeiro, o elemento de determinação de diferença inversa (202) extrai o valor armazenado na memória de registo (PMV), como sinal de vector de movimento (S55), e segundo, a memória (204) extrai o sinal de modo de compensação de movimento (S56), o sinal de tipo de predição (S91), o sinal de paridade de referência do vector de movimento de campo (S92), o sinal de vector de movimento do submovimento (S93) e o sinal de paridade de campo predito (S94) do macrobloco descodificado imediatamente antes de ser armazenado.
Adicionalmente, mostra-se a seguir, colectivamente, o processamento do descodificador, no caso em que o macrobloco não considerado é avaliado por outra disposição no lado de codificador. Inicialmente, no caso de o indicador de macrobloco não considerado (S95) ser disposto em imagem, na qual o sinal de tipo de codificação de imagem (202) é imagem P e o sinal de estrutura de imagem (S201) é estrutura de campo, primeiro, o elemento de instruções de reposição de registos (78) repõe em zero todos os registos (PMV) no elemento de determinação de diferença inversa para vector de movimento (202), segundo, o elemento de determinação de diferença inversa (202) extrai zero, como sinal de vector de movimento (S55) ao elemento compensador de movimento (56) , terceiro, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que realize a predição para a frente, como modo (S56) de compensação de movimento, quarto, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que realize a predição de campo de 16 x 16, como sinal de tipo de predição (S91), e 77 - u quinto, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que extraia a mesma paridade que a do sinal de paridade de campo predito (S94), como sinal de paridade de referência (S92) do vector de movimento de campo.
No caso de o indicador de macrobloco não considerado (S95) ser disposto na imagem em que o sinal de tipo de codificação de imagem (S2 02) é imagem P, e o sinal de estrutura de imagem (S201) é estrutura de quadro, primeiro, o elemento de instruções de reposição de registos (78) repõe em zero os registos (PMV) , no elemento de determinação de diferença inversa para vector de movimento (202), segundo, o elemento de determinação de diferença inversa (202) extrai zero, como sinal de vector de movimento (S56) ao elemento compensador de movimento (56) , terceiro, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento de compensação inversa de comprimento variável (56), a realização da predição para diante, como modo de compensação de movimento (S56), e quarto, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que realize a predição de quadro, como sinal de tipo de predição (S91).
No caso de o indicador de macrobloco não considerado (S95) se dispor na imagem em que o sinal de tipo de codificação de imagem (S202) é imagem B, e o sinal de estrutura de imagem (S201) é estrutura de campo, primeiro, o elemento de determinação de diferença inversa (202) extrai o valor armazenado na memória de registo (PMV), 78
como ο sinal de vector de movimento (S55) ao elemento compensador de movimento (56) , segundo, a memória (204) extrai, ao elemento compensador de movimento (56), o sinal de modo de compensação de movimento (S56), o sinal de paridade de referência do vector de movimento de campo (S92) e o sinal de paridade de campo predito do macrobloco descodificado (S94) imediatamente antes de ser armazenado, e terceiro, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que realize a predição de campo 16 x 16, como sinal de tipo de predição (S91).
No caso de o indicador de macrobloco não considerado (S95) ser disposto na imagem em que o sinal de tipo de codificação de imagem (S202) é imagem B e o sinal de estrutura de imagem (S201) é estrutura de quadro, primeiro, o elemento de determinação de diferença inversa (202) extrai ao elemento compensador de movimento (56) o valor armazenado na memória de registo (PMV), como sinal de vector de movimento (S55), segundo, a memória (204) extrai ao elemento compensador de movimento (56) o sinal de modo de compensação de movimento (S56) do macrobloco descodificado, imediatamente antes de ser armazenado, e terceiro, o elemento de codificação inversa de comprimento variável (52) ordena ao elemento compensador de movimento (56) que realiza a predição de quadro, como sinal de tipo de predição (S91). O processamento de macrobloco não considerado é realizado deste modo. Este procedimento é repetido no número de 79 Γ u macroblocos não considerados. 0 descodificador realiza a descodificação de maneira análoga à do macrobloco normal, na base do sinal assim obtido.
Quando se obtém um macrobloco, que não é um macrobloco não considerado, isto é, o indicador de macrobloco não considerado (S95), fornecido pelo terminal (66), é "FALSO", actualiza-se o conteúdo da memória (204), pelo sinal de modo de compensação de movimento (S56) , o sinal de tipo de predição (S91), o sinal de paridade de referência do vector de movimento de campo (S92), o sinal de vector e submovimento (S93) e o sinal de paridade de campo predito (S94) desse macrobloco. Nesta forma de realização, fornecem-se também o sinal (S201) de estrutura de imagem e o sinal (S202) de tipo de codificação de imagem, pelo terminal (65), à memória (204). O aparelho descodificador de imagem animada é construído, de uma maneira mencionada anteríormente para reproduzir assim a imagem a partir do fluxo de bits.
Finalmente, descreve-se agora uma operação mais prática da presente forma de realização. A fig. 7 mostra o funcionamento, no caso de o primeiro exemplo (fig. 18) de determinação de diferença entre vectores de movimento, no lado de codificador convencional, representado anteríormente, se efectuar nesta forma de realização.
Na fig. 7, por exemplo, o vector de movimento da porção superior do macrobloco (MBO) é (5,1) (1), o vector de movimento da porção inferior do macrobloco (MBO) é o vector (5,5)(2), o vector de movimento da porção superior do macrobloco (MB1) é 80 1— Γ (5/5)(3)/ ο vector de movimento da porção inferior do macrobloco (MB1) é (5,5)(4), e o vector de movimento da porção superior do macrobloco (MB2) é (5,5) C5) e o vector de movimento da porção inferior do macrobloco (MB2) é (5,5) (6) - Adicionalmente, armazena-se (0,0) nas memórias de registos (PMV1) e (PMV2) da fig. 2 atrás referida (ou seja, a fig. 3) como um valor inicial.
No caso do exemplo da fig. 7, no macrobloco (MBO) , obtém-se (5,1)(1) - PMV1 = (5,2(1), que é a diferença entre o vector de movimento (5,1) da porção superior e o valor inicial (0,0) da memória de registo (PMV1). Este valor é extraído como vector de movimento de diferença da porção superior de (MBO). O vector de movimento (5,1) (1) é armazenado na memória de registo (PMV1). Além disso, obtém-se (5,5) (2> - PMV2 = (5,5) (Z), da porção inferior, e o valor inicial (0,0) da memória de registo (PMV2). Este valor é extraído, como vector de movimento de diferença, da porção inferior de MBO. 0 vector de movimento (5,5(2) da porção inferior é armazenado na memória de registo (PMV2). Além disso, no macrobloco MB1 obtém-se (5,5) (3) - PMV1 = (0,4), que é a diferença entre o vector de movimento (5,5(3 > da porção superior e o valor (5,1) da memória de registo (PMV1). Este valor é extraído, como vector de movimento de diferença, da porção superior de MB1. O vector de movimento (5,5) p) da porção superior e armazenado na memória de registo (PMV1). Além disso, obtém-se (5,5)(4) - PMV2 = (0,0), que é a diferença entre o vector de movimento (5,5)(4) da porção inferior do macrobloco MB1 e o valor (5,5) (2) da memória de registo (PMV2). Este valor é extraído, como vector de movimento de diferença, da porção inferior de MB1. O vector de movimento (5,5)(4) da porção inferior é armazenado na memória de registo (PMV2). De modo análogo, no macrobloco MB2, obtém-se (5,5) c5) - PMVl = (0,0), 81 que é a diferença entre o vector (5,5(3) da memória de registo (PMV1). Este valor é extraído, como vector de movimento de diferença, da porção superior de MB2. O vector de movimento (5.5) (5) da porção superior à armazenado na memória de registo (PMV1) . Adicionalmente, obtém-se (5,5) (6) - PMV2 = (0,0), que é a diferença entre o vector de movimento (5,5) (6) da porção inferior do macrobloco MB2 e o valor (5,5) (4) da memória de registo PMV2. Este valor é extraído, como vector de movimento de diferença, da porção inferior de MB2. O vector de movimento (5.5) (6) da porção inferior é armazenado na memória de registo (PMV2).
Como atrás se disse, o macrobloco (MB2) não tem sinal de erro preditivo que deve ser transmitido e o modo de compensação de movimento, etc. é igual ao do macrobloco imediatamente anterior. Neste caso, o macrobloco MB2 é um macrobloco não considerado. Isto é, no caso de o monobloco MB2 ser um monobloco não considerado, o vector de movimento é copiado do bloco MB1 imediatamente anterior, no lado do descodificador. A fig. 8 mostra a operação no lado do descodificador. Isto é, na fig. 8, admite-se agora que (5,1)(d de vector de movimento de diferença da porção superior do macrobloco MBO, (5.5) (2) de vector de movimento da diferença inferior do macrobloco MBO = (0,4)(3) de vector de movimento da diferença da porção superior do macrobloco MB1 e (0,)<4) de vector de movimento de diferença da porção inferior do macrobloco MB1, se obtém como vectores de movimento de diferença, no exemplo atrás mencionado da fig. 7, e que o macrobloco (MB2) é um macrobloco não considerado. Além disso, (0,0) é armazenado, como um valor inicial, nas memórias de registos (PMV1) e (PMV2) da fig. 6 (isto é, a fig. 3) antes mencionada. 82 r
No caso do exemplo da fig. 8, no macrobloco MB O, como vector de movimento reconstruído obtém-se (5,l)(u + PMV1 = (5,1), por adição do vector de movimento de diferença (5,l)(u da porção superior e o valor inicial (0,0) da memória de registo PMV1. Este vector de movimento reconstruído é enviado à memória de registo PMV1. Além disso, no macrobloco MBO, como vector de movimento reconstruído, obtém-se (5,5) (2> + PMV2 = (5.5) , por adição do vector de movimento de diferença (5,5) (2) da porção inferior e o valor inicial (0,0) da memória de registo PMV2. Este vector de movimento reconstruído é enviado à memória de registo PMV2. De maneira análoga, no macrobloco MB1, como vector de movimento reconstruído obtém-se (0,4) oj + PMV1 = (5.5) por adição do vector de movimento de diferença (0,4)(3) da porção superior e o vector de movimento reconstruído (5,1) da memória de registo PMV1. Este vector de movimento reconstruído é enviado à memória de registo PMV1. Além disso, no macrobloco MBl, como vector de movimento reconstruído obtém-se (0,0) (4, + PMV2 = (5,5), por adição do vector de movimento de diferença (0,0) [4) da porção inferior e o vector de movimento reconstruído (5.5) da memória de registo PMV2. Este vector de movimento reconstruído é enviado à memória de registo PMV2. Adicionalmente, no macrobloco MB2, como este macrobloco é um macrobloco não considerado, (5,5) é copiado na porção superior e (5,5)(6) é copiado na porção inferior, como vectores de movimento reconstruídos.
Isto é, no exemplo da fig. 8, como o macrobloco MB2 é um macrobloco não considerado, o vector é copiado da memória PMV e o modo de compensação de movimento é também copiado do macrobloco MBl imediatamente anterior. Como atrás se disse, de acordo com esta forma de realização, é possível proporcionar o 83 vector de movimento reconstruído correcto, também relativamente ao macrobloco não considerado.
Construem-se aparelhos de codificação e descodificação de imagens animadas assim apresentados.
Aplicabilidade industrial
De acordo com a presente invenção, nos aparelhos para realizar a codificação e a descodificação preditivas compensadoras de movimento de imagem animada, no caso de, relativamente aos vectores de movimento dados em unidades de macroblocos, existirem um ou mais vectores de movimento que fazem referência ao quadro (campo) anterior, na predição para diante, existem um ou mais vectores de movimento que fazem referência ao quadro (campo) futuro, na predição para trás e existem, respectivamente, um ou mais vectores de movimento que fazem referência aos dois quadros (campos) anterior e futuro e, no caso de os números de vectores de movimento em modos de compensação de movimento respectivos variarem em unidades de macrobloco, o elemento de determinação de diferença para permitir que os vectores de movimento sejam vector de movimento de diferença, pode construir-se no lado do codificador e pode avaliar-se o macrobloco não considerado.
No lado do descodificador, pode construir-se o elemento de determinação de diferença inversa para reconstruir o vector de movimento, a partir do vector de movimento de diferença recebido. Este elemento de determinação de diferença inversa é caracterizado por não ser necessário proporcionar memória de registo, excepto a memória de registo PMV para conter o vector de movimento do macrobloco, processado imediatamente antes. 84
Adicionalmente, no lado do descodif icador é possível tratar o macrobloco não considerado.
No caso descrito anteriormente, torna-se possível, vantajosamente, tratar, por meio desta técnica, o macrobloco não considerado, que não podia ser tratado na técnica anterior. Relativamente ao macrobloco que é um bloco não considerado, o codificador não transmite nenhum dado. O macrobloco não considerado é uma tecnologia importante de codificação com vista a melhorar a eficiência da codificação.
Por exemplo, no caso de também uma imagem a processar ser uma sequência de imagens animadas, o seu conteúdo é uma cena onde as imagens fixas (ou as imagens que têm movimento muito suave) são sucessivas, a maioria dos macroblocos pode tratar-se como macrobloco não considerados. Num aso extremo, o primeiro quadro pode codificar-se no interior da imagem sem compensação de movimento para o transmitir, para tratar esse macrobloco como quase macrobloco não considerado, a partir do segundo quadro e dos quadros a seguir ao mesmo. Neste caso, pode esperar-se uma grande melhora da eficiência de codificação.
Lisboa, 16 de Novembro de 2001. 0 AGENTE OFICIAL DA PROPRIEDADE INDUSTRIAI.
85

Claims (12)

  1. REIVINDICAÇÕES 1. Processo para codificar o vector de movimento de macrobloco codificado no modo de predição para a frente, no modo de predição para trás ou no modo de predição bidireccional, compreendendo o processo os passos de: detecção da ordem de transmissão dos vectores de movimento actuais, numa direcção pré-determinada, dentro de um macrobloco, selecçâo de uma das L memórias para vectores de movimento, no sentido pré-determinado, com base na ordem detectada de transmissão para leitura de saída de um vector de movimento anterior, no sentido pré-determinado, e subtracção do vector de movimento anterior no sentido pré-determinado dos vectores de movimento actuais no sentido pré-determinado, para gerar assim, sequencialmente, os vectores actuais de movimento de diferença no sentido pré-determinado .
  2. 2. Processo de codificação de vector de movimento de acordo com a reivindicação 1, no qual as memórias seleccionadas com base na ordem de transmissão são actualizadas, sequencialmente, pelos vectores de movimento actuais, no sentido pré-determinado.
  3. 3. Processo de codificação de vector de movimento de acordo com a reivindicação 2, no qual, no caso de o número de transmissão dos vectores de movimento actuais no sentido pré-determinado relativamente a um macrobloco ser menor que L, as memórias restantes para vector de movimento no 1 Γ~" \1 L·, sentido pré-determinado, são actualizadas sequencialmente pelos vectores de movimento actuais, no sentido pré-determinado .
  4. 4. Processo para reconstruir os vectores de movimento de macroblocos codificados no modo de predição para a frente, no modo de predição para trás ou no modo de predição bidireccional, compreendendo o processo os passos de: detecção da ordem de recepção no interior do macrobloco dos vectores de movimento de diferença recebidos num sentido pré-determinado; selecção de uma das L memórias para vectores de movimento no sentido pré-determinado, com base na ordem detectada de recepção para leitura de saída de um vector de movimento reconstruído, no sentido pré-determinado já reconstruído, adição dos vectores de movimento de diferença, no sentido pré-determinado e do vector de movimento reconstruído, no sentido pré-determinado já reconstruído, para gerar assim, sequencialmente, vectores de movimento reconstruídos, novos, no sentido pré-determinado.
  5. 5. Processo para reconstruir os vectores de movimento de acordo com a reivindicação 4, no qual as memórias seleccionadas com base na ordem de recepção são actualizadas, sequencialmente, pelos vectores de movimento reconstruídos, novos, no sentido pré-determinado.
  6. 6. Processo para reconstruir os vectores de movimento de acordo com a reivindicação 5, no qual, quando o número de recepção dos vectores de movimento de diferença no sentido pré-determinado, relativamente a um bloco, for menor que 2 1- L, as memórias restantes para vector de movimento no sentido pré-determinado são actualizadas, sequencialmente, pelos vectores de movimento reconstruídos, novos, no sentido pré-determinado.
  7. 7. Aparelho para codificar o vector de movimento de macrobloco codificado no modo de predição para a frente, no modo de predição para trás e no modo de predição bidireccional, que compreende: um número L de memórias para vector de movimento, num sentido pré-determinado, para armazenar os vectores de movimento no sentido pré-determinado meios para detectar a ordem de transmissão dos vectores de movimento actuais no sentido pré-determinado dentro dum macrobloco meios para seleccionar uma das L memórias para vector de movimento, no sentido pré-determinado, com base na ordem detectada de transmissão, para assim ler a saída de um vector de movimento anterior no sentido pré-determinado, e meios para subtrair o vector de movimento anterior no sentido pré-determinado dos vectores de movimento actuais, no sentido pré-determinado, para gerar assim, sequencialmente, os vectores actuais de movimento de diferença no sentido pré-determinado.
  8. 8. Aparelho codificador de vector de movimento de acordo com a reivindicação 7, no qual as memórias seleccionadas na base da ordem detectada de transmissão são actualizadas sequencialmente pelos vectores de movimento actuais no sentido pré-determinado. 3
  9. 9. Aparelho codificador de vector de movimento de acordo com a reivindicação 8, no qual, no caso de o número de transmissão dos vectores de movimento actuais, no sentido pré-determinado, relativamente a um macrobloco, ser menor que L, as memórias restantes para vector de movimento no sentido pré-determinado serem actualizadas, sequencialmente, pelos vectores de movimento actuais, no sentido pré-determinado.
  10. 10. Aparelho para reconstruir os vectores de movimento de macrobloco codificados no modo de predição para a frente, no modo de predição para trás ou no modo de predição bidireccional, que compreende: um número L de memórias para vector de movimento, num sentido pré-determinado, para armazenar os vectores de movimento no sentido pré-determinado, meios para detectar a ordem de recepção, no interior do macrobloco, dos vectores de movimento recebidos no sentido pré-determinado, meios para seleccionar uma das L memórias para vector de movimento, no sentido pré-determinado, com base na ordem detectada de recepção para a leitura de saida de um vector de movimento reconstruído no sentido pré-determinado já reconstruído, e meios para somar o vector de movimento de diferença no sentido pré-determinado e o vector de movimento reconstruído no sentido pré-determinado já reconstruído, para gerar assim, sequencialmente, vectores e movimento reconstruídos, novos, no sentido pré-determinado.
  11. 11. Aparelho para reconstruir vectores de movimento de acordo com a reivindicação 10, no qual as memórias seleccionadas, 4 na base da ordem de recepção, são actualizadas sequencialmente pelos vectores de movimento reconstruídos, novos, no sentido pré-determinado.
  12. 12. Aparelho para reconstruir vectores de movimento de acordo com a reivindicação 11, no qual, no caso de o número de recepção de vectores de movimento no sentido pré-determinado, relativamente a um macrobloco, ser menor que L, as memórias restantes para vector de movimento no sentido pré-determinado serem actualizadas sequencialmente. Lisboa, 16 de Novembro de 2001. O AGENTE OFICIAL DA PROPRIEDADE INDUSTRIAL
    í\ 5
PT94910528T 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 PT651574E (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
PT651574E true PT651574E (pt) 2002-02-28

Family

ID=26406823

Family Applications (4)

Application Number Title Priority Date Filing Date
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
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
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
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

Family Applications After (3)

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
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
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

Country Status (13)

Country Link
US (3) US5701164A (pt)
EP (4) EP2334083B1 (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) ES2438184T3 (pt)
PT (4) PT651574E (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
US6263024B1 (en) * 1996-12-12 2001-07-17 Matsushita Electric Industrial Co., Ltd. Picture encoder and picture decoder
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
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
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
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
US6941343B2 (en) * 2001-06-02 2005-09-06 Polycom, Inc. System and method for point to point integration of personal computers with videoconferencing systems
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
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
ES2721514T3 (es) * 2001-11-06 2019-08-01 Panasonic Ip Corp America Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
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
KR101033398B1 (ko) * 2001-11-21 2011-05-09 제너럴 인스트루먼트 코포레이션 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩
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 マイクロソフト コーポレーション スキップマクロブロックコード化
JP4114859B2 (ja) 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP4150742B2 (ja) * 2002-01-09 2008-09-17 松下電器産業株式会社 動きベクトル復号化方法
CN100581259C (zh) * 2002-01-09 2010-01-13 松下电器产业株式会社 移动向量编码方法和移动向量编码装置
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
BRPI0304565B1 (pt) * 2002-03-15 2018-07-24 Nokia Technologies Oy Método de predição de movimento compensado para uso na codificação da sequência de vídeo digital, codificador e decodificador de vídeo para codificar/decodificar uma sequência de vídeo digital usando predição de movimento compensado, terminal de miltimídia, e, codec de vídeo
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
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
US7327788B2 (en) 2002-07-02 2008-02-05 Matsushita Electric Industrial.Co., Ltd. Motion vector derivation method, dynamic image encoding method, and dynamic image decoding method
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 ソニー株式会社 画像データ処理装置および方法、記録媒体、並びにプログラム
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) * 2003-02-24 2008-02-05 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
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
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7426308B2 (en) 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7577200B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
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
US7606308B2 (en) 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
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
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
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
US8063939B2 (en) * 2007-02-07 2011-11-22 Sony Corporation Image processing device, image picking-up device, image processing method, and program
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
US8370887B2 (en) 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
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 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
US8861879B2 (en) 2009-09-17 2014-10-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
PL4156684T3 (pl) 2010-11-25 2024-06-10 Lg Electronics Inc. Sposób dekodowania video, sposób enkodowania video, nośnik danych
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 日本電信電話株式会社 動画像符号化方法,動画像符号化装置および動画像符号化プログラム
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
BR122022003217B1 (pt) 2017-09-12 2023-12-05 Samsung Electronics Co., Ltd. Método para decodificar informações de movimento, método para codificar informações de movimento, e meio legível por computador não transitório para registrar um fluxo de bits
CN113170131A (zh) * 2018-10-11 2021-07-23 Lg电子株式会社 变换系数编码方法及其装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5194950A (en) * 1988-02-29 1993-03-16 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
JPH0666948B2 (ja) * 1988-02-29 1994-08-24 三菱電機株式会社 フレーム間ベクトル量子化符号化復号化装置
KR910009092B1 (ko) * 1988-02-29 1991-10-28 미쯔비시덴끼 가부시끼가이샤 프레임간의 벡터 양자화 부호화 및 복호화 장치
DE69033782T2 (de) * 1989-10-14 2002-06-20 Sony Corp Verfahren und Anordnung zum Kodieren/Dekodieren eines Videosignales
EP0484140B1 (en) * 1990-10-31 1996-12-18 Victor Company Of Japan, Ltd. Compression method of interlace moving image signals
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
EP2334083B1 (en) 2013-08-28
US5946042A (en) 1999-08-31
ES2430060T3 (es) 2013-11-18
PT2334083E (pt) 2013-09-30
KR100308099B1 (ko) 2001-12-01
AU6558496A (en) 1996-11-07
CN1251513C (zh) 2006-04-12
JP2003179934A (ja) 2003-06-27
DK0651574T3 (da) 2001-10-08
CN1349354A (zh) 2002-05-15
JP2001204033A (ja) 2001-07-27
DE69428019T2 (de) 2002-05-29
ATE204691T1 (de) 2001-09-15
JP2003179935A (ja) 2003-06-27
WO1994022269A1 (en) 1994-09-29
PT1098529E (pt) 2013-11-25
JP3614159B2 (ja) 2005-01-26
US5701164A (en) 1997-12-23
ES2438184T3 (es) 2014-01-16
EP0651574A1 (en) 1995-05-03
AU700535B2 (en) 1999-01-07
JP3614160B2 (ja) 2005-01-26
CN1075323C (zh) 2001-11-21
EP2375753A1 (en) 2011-10-12
EP1098529B1 (en) 2013-10-16
EP1098529A3 (en) 2008-10-29
EP0651574A4 (en) 1998-06-17
AU673250B2 (en) 1996-10-31
EP2334083A1 (en) 2011-06-15
CA2118118A1 (en) 1994-09-25
AU6291294A (en) 1994-10-11
EP0651574B1 (en) 2001-08-22
CN1106199A (zh) 1995-08-02
KR950701487A (ko) 1995-03-23
PT2375753E (pt) 2013-10-21
CA2118118C (en) 2004-02-24
EP2375753B1 (en) 2013-09-11
US6040863A (en) 2000-03-21
ES2159553T3 (es) 2001-10-16
DE69428019D1 (de) 2001-09-27
JP3393234B2 (ja) 2003-04-07
ES2431289T3 (es) 2013-11-25
JP3381169B2 (ja) 2003-02-24
EP1098529A2 (en) 2001-05-09

Similar Documents

Publication Publication Date Title
PT651574E (pt) Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem
EP1096800B1 (en) Image coding apparatus and image decoding apparatus
ES2216028T3 (es) Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento.
US20070064799A1 (en) Apparatus and method for encoding and decoding multi-view video
KR20040002582A (ko) 비디오 부호화/복호화 방법 및 장치
KR20080064078A (ko) 전역 차이 벡터를 이용한 다시점 영상의 부호화, 복호화방법 및 장치
GB2487253A (en) Motion compensated image coding using diverse set of a target number of motion predictors
BR112014010751B1 (pt) Dispositivo e método de codificação preditiva de vídeo e dispositivo e método de decodificação preditiva de vídeo
JP2001028756A (ja) コンテクストベースでフレーム内コーディングモードとフレーム間コーディングモードとの間の選択を行なうための方法および装置
JP2007259149A (ja) 符号化方法
CN112219401A (zh) 用于视频编解码***的仿射模型运动向量预测导出方法及装置
PT589504E (pt) Sistema compreendendo pelo menos um codificador para codificar um sinal digital e pelo menos um descodificador para descodificar um sinal digital
JP4441182B2 (ja) 画像符号化装置および画像復号化装置
KR100774297B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
JP3188081B2 (ja) 画像符号化方法および画像符号化装置
KR100774298B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
KR100774299B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
KR100774300B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
JP2007243974A (ja) 画像符号化装置および画像復号化装置
JPH07236141A (ja) 動画像圧縮装置