BR112013032956B1 - Método de codificação e decodificação de imagens, dispositivo de codificacão e de decodificação, e meios não transitórios legíveis por computador - Google Patents

Método de codificação e decodificação de imagens, dispositivo de codificacão e de decodificação, e meios não transitórios legíveis por computador Download PDF

Info

Publication number
BR112013032956B1
BR112013032956B1 BR112013032956-4A BR112013032956A BR112013032956B1 BR 112013032956 B1 BR112013032956 B1 BR 112013032956B1 BR 112013032956 A BR112013032956 A BR 112013032956A BR 112013032956 B1 BR112013032956 B1 BR 112013032956B1
Authority
BR
Brazil
Prior art keywords
block
blocks
encoding
subset
decoding
Prior art date
Application number
BR112013032956-4A
Other languages
English (en)
Other versions
BR112013032956A2 (pt
BR112013032956A8 (pt
Inventor
Felix Henry
Stéphane Pateux
Gordon Clare
Original Assignee
Dolby International Ab
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=46508090&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BR112013032956(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dolby International Ab filed Critical Dolby International Ab
Publication of BR112013032956A2 publication Critical patent/BR112013032956A2/pt
Publication of BR112013032956A8 publication Critical patent/BR112013032956A8/pt
Publication of BR112013032956B1 publication Critical patent/BR112013032956B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/12Frequency diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PROCESSO DE CODIFICAÇÃO E DECODIFICAÇÃO DE IMAGENS, DISPOSITIVO DE CODIFICACÃO E DE DECODIFICAÇÃO, E PROGRAMAS DE COMPUTADOR CORRESPONDENTES. A presente invenção refere-se a um processo de codificação, compreendendo o recorte (C1) da imagem em uma pluralidade de blocos (MB) aptos a conter símbolos que pertencem a um conjunto predeterminado de símbolos, o agrupamento (C2) de blocos em um número predeterminado (P) de subconjuntos de blocos (SE1, SE2,...Sek,..., SEP), a codificação (C3) por meio de um módulo de codificação entrópica, de cada um desses subconjuntos de blocos, por associação de informações numéricas aos símbolos de cada bloco de um subconjunto considerado, essa etapa de codificação compreendendo, para o primeiro bloco da imagem, uma subetapa (C33) de inicialização de variáveis de estado desse módulo de codificação entrópica, depois a geração de um subfluxo de dados representativo de pelo menos um desses subconjuntos de blocos codificados. No caso em que o bloco corrente é o primeiro bloco a codificar de um subconjunto considerado, determinação de probabilidades de aparecimento de símbolo para esse primeiro bloco corrente, essas probabilidades são aquelas que foram determinadas para um bloco predeterminado codificado e decodificado de pelo menos um outro subconjunto. No caso em que o bloco (...).

Description

Domínio da invenção
[001] A presente invenção refere-se, geralmente, ao domínio do tratamento de imagens, e mais precisamente à codificação e à decodificação de imagens numéricas e de sequências de imagens numéricas.
[002] A invenção pode assim, notadamente, se aplicar à codificação de vídeos utilizada nos codificadores de vídeos atuais (MPEG, H.264, etc.) ou a virem (ITU-T/VCEG (H.265) ou ISO/MPEG (HVC).
Planejamento da invenção
[003] Os codificadores de vídeo atuais (MPEG, H264, ...) utilizam uma representação por blocos da sequência de vídeo. As imagens são recortadas em macroblocos, cada macrobloco é ele próprio recortado em blocos e cada bloco, ou macrobloco é codificado por previsão de intraimagens e inte- rimagens. Assim, determinadas imagens são codificadas por previsão espacial (intraprevisão), enquanto que outras imagens são codificadas por previsão temporal (interprevisão) em relação a uma ou várias imagens de referência codificadas - decodificadas, com o auxílio de uma compensação em movimento conhecida pelo técnico. Além disso, por cada bloco pode ser codificado um bloco residual correspondente ao bloco original diminuído de uma previsão. Os coeficientes desse bloco são quantificados, após uma eventual transformação, depois codificados por um codificador entrópico.
[004] A intraprevisão e a interprevisão necessitando que certos blocos, que foram anteriormente codificados e decodificados, estejam disponíveis, de forma a serem utilizados, tanto no decodificador, quanto no codificador, para predizer o bloco atual. Um exemplo esquemático dessa codificação prevista está representado na figura 1, na qual uma imagem IN é dividida em blocos, um bloco atual MBI dessa imagem sendo submetido a uma codifica- ção prevista em relação a um número predeterminado de três blocos MBr1, MBr2, MBR3 anteriormente codificados e decodificados, tais como designados pelas setas acinzentadas. Os três blocos pré-citados compreendem especificamente o bloco MBr1 situado imediatamente à esquerda do bloco atual MBi, e os dois blocos MBr2 e MBr3 situados respectivamente imediatamente acima e à direita acima do bloco atual MBi.
[005] Interessa-se, no caso, mais particularmente pelo codificador en- trópico. O codificador entrópico codifica as informações segundo sua ordem de chegada. Tipicamente, um percurso linha por linha dos blocos é realizado, de tipo "raster-scan", conforme ilustrado na figura 1 pela referência PRS, partindo do bloco no alto à esquerda da imagem. Para cada bloco, as diferentes informações necessárias à representação do bloco (tipo de bloco, modo de previsão, coeficientes de resíduo, ...) são enviadas sequencialmente ao codificador entrópico.
[006] Conhece-se um codificador aritmético eficaz e de complexidade razoável, denominado "CABAC" ("Context Adaptive Binary Arithmetic Coder", em inglês) introduzido no padrão de compressão AVC (também conhecido pelo nome de ISO-MPEG4 parte 10 e ITU-T H.264).
[007] Esse codificador entrópico utiliza diferentes conceitos: - a codificação aritmética: o codificador, tal como descrito inicialmente no documento J. Rissanen and G. G. Langdon Jr, "Universal modeling and coding", IEEE Trans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981, utiliza, para codificar um símbolo, uma probabilidade de aparecimento desse símbolo; - a adaptação ao contexto: trata-se, no caso, de adaptar a pro-babilidade de aparecimento dos símbolos a serem codificados. Por um lado, uma aprendizagem ao roubo é realizada. Por outro lado, segundo o estado das informações previamente codificadas, um contexto específico é utilizado para a codificação. A cada contexto corresponde uma probabilidade de aparecimento própria do símbolo. Por exemplo, um contexto corresponde a um tipo de símbolo codificado (a representação de um coeficiente de um resíduo, sinalização de modo de codificação, ...) segundo uma configuração determinada ou um estado da vizinhança (por exemplo, o número de modos "intra", selecionados nas proximidades, ...). - a binarização: uma colocação sob a forma de uma sequência de bits dos símbolos a codificar é realizada. Na sequência, esses diferentes bits são enviados sucessivamente ao codificador entrópico binário.
[008] Assim, esse codificador entrópico utiliza, para cada contexto uti-lizado, um sistema de aprendizagem das probabilidades ao roubo em rela-ção aos símbolos anteriormente codificados para o contexto considerado. Essa aprendizagem é baseada na ordem de codificação desses símbolos. Tipicamente, a imagem é percorrida segundo uma ordem de tipo "raster-scan", descrita acima.
[009] Quando da codificação de um símbolo b determinado que pode valer 0 ou 1, a aprendizagem da probabilidade pi de aparecimento desse símbolo é atualizada para um bloco atual MBi da seguinte forma:
Figure img0001
se bit codificado for 0, senão no qual α é um valor predeterminado, por exemplo, 0,95 pi-1 é a probabilidade de aparecimento de símbolo calculada, quando do último apa-recimento desse símbolo.
[010] Um exemplo esquemático dessa codificação entrópica é representado na figura 1, na qual um bloco atual MBi da imagem IN é submetido a uma codificação entrópica. Quando a codificação entrópica do bloco MBi começa, as probabilidades de aparecimento de símbolos utilizadas são aquelas obtidas após codificação de um bloco anteriormente codificado e decodificado, que é aquele que precede imediatamente o bloco atual MBi, de acordo com o percurso linha por linha dos blocos de tipo "raster scan" pré- citado. Essa aprendizagem baseada na dependência bloco a bloco está representada na figura 1 para determinados blocos somente com uma preocu- pação de clareza da figura, pelas setas em traços finos.
[011] Um inconveniente desse tipo de codificação entrópica reside no fato de, quando da codificação de um símbolo que se situa no início de uma linha, as probabilidades utilizadas correspondem principalmente àquelas observadas para os símbolos que se situam em fim da linha precedente, considerando-se o percurso "raster scan" dos blocos. Ora, devido à possível variação espacial das probabilidades dos símbolos (por exemplo, para um símbolo ligado a uma informação de movimento, o movimento situado sobre a parte direita de uma imagem pode ser diferente daquele observado na parte esquerda para as probabilidades locais daí decorrentes), uma falta de adequação local das probabilidades pode ser observada, o que corre o risco de acarretar uma perda em eficácia, quando da codificação.
[012] Para limitar esse fenômeno, proposições de modificações da ordem de percurso dos blocos foram feitas, com a finalidade de assegurar melhor coerência local, mas a codificação e a decodificação permanecem sequenciais.
[013] Está aí um outro inconveniente desse tipo de codificador entró- pico. Com efeito, a codificação e a decodificação de um símbolo sendo dependentes do estado da probabilidade apreendida até lá, a decodificação dos símbolos só pode ser feita na mesma ordem que aquela utilizada, quando da decodificação. Tipicamente, a decodificação só pode então ser sequencial, impedindo assim uma decodificação em paralelo de vários símbolos (por exemplo, para aproveitar as arquiteturas em meio coração).
[014] O documento Thomas Wiegand, Gary. J. Sullivan, Gisle Bjonte- gaard, and Ajay Luthra, "Overview of the H.264/AVC Video Coding Standard", IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, pp. 560-576, July 2003, precisa, por outro lado, que o codificador entrópico CABAC tem por particularidade afetar um número não inteiro de bits a cada símbolo de um alfabeto atual a codificar, o que é vantajoso para as probabilidades de aparecimento de símbolos superior a 0,5. Concre- tamente, o codificador CABAC espera ter lido vários símbolos, depois afeta nesse conjunto de símbolos lidos um número predeterminado de bits que o codificador inscreve no fluxo comprimido a ser transmitido ao decodificador. Essa disposição permite assim "mutualizar" os bits sobre vários símbolos e codificar um símbolo sobre um número fracionário de bits, esse número refletindo uma informação que é mais próxima da informação realmente transportada por um símbolo. Outros bits associados aos símbolos lidos não são transmitidos no fluxo comprimido, mas são conservados na espera de serem afetados em um ou vários novos símbolos lidos pelo codificador CABAC, permitindo de novo mutualizar esses outros bits. De forma conhecida como tal, o codificador entrópico procede, em um instante determinado, a um "esvaziamento" desses bits não transmitidos. Em outros termos, no instante determinado o codificador extrai os bits não ainda transmitidos e os inscreve no fluxo comprimido com destino ao decodificador. Esse esvaziamento se produz, por exemplo, no instante em que o último símbolo a codificar foi lido, de forma a assegurar que o fluxo comprimido contenha bem todos os bits que permitirão decodificar todos os símbolos de alfabeto. De forma mais geral, o instante no qual é efetuado o esvaziamento é determinado, em função dos desempenhos e das funcionalidades próprias a um codificador/deco- dificador determinado.
[015] O documento, que está disponível no endereço INTERNET http://research.microsoft.com/en-us/um/people/jinl/paper 2002;msri.jpeg.htm na data de 15 de abril de 2011, descreve um processo de codificação de imagens fixas, conforme o padrão de compressão JPEG2000. De acordo com esse processo, os dados de imagem fixa sofrem uma transformada em ondas discreta, seguida de uma quantificação, o que permite obter coeficientes de ondas quantificados aos quais são associados respectivamente índices de quantificação. Os índices de quantificação obtidos são quantificados com o auxílio de um codificador entrópico. Os coeficientes quantificados são previamente agrupados em bloco retangulares denominados code-blocs, tipicamente de tamanho 64x64 ou 32x32. Cada code-block é, em seguida, codificado independentemente por codificação entrópica. Assim, o codificador entrópico, quando ele procede à codificação de um code-block atual, não utiliza as probabilidades de aparecimento de símbolos calculadas, quando da codificação de code-blocks precedentes. O codificador entrópico se acha, portanto, em um estado inicializado a cada início de codificação de um codeblock. Esse processo apresenta a vantagem de decodificar os dados codeblock, sem ter de decodificar os code-blocks vizinhos. Assim, por exemplo, um programa cliente pode requerer junto ao programa servidor, o fornecimento dos code-blocks comprimidos, cujo cliente tem unicamente necessidade de decodificar uma subparte identificada de uma imagem. Esse processo apresenta também a vantagem de autorizar a codificação e/ou a de- codificação em paralelo dos code-blocks. Assim, quanto mais os code-blocks forem de tamanho pequeno, mais o nível de paralelismo será elevado. Por exemplo, para um nível de paralelismo fixado em dois, dois code-blocks serão codificados e/ou decodificados em paralelo. Em teoria, o valor do nível de paralelismo é igual ao número de code-blocks a codificar da imagem. Todavia, os desempenhos de compressão obtidos com esse processo não são ótimos, considerando-se o fato de essa codificação não tirar partido das probabilidades oriundas do ambiente imediato do code-block atual.
Objeto e resumo da invenção
[016] Uma das finalidades da invenção é de prevenir os inconvenien-tes do estado da técnica pré-citado.
[017] Para isso, um objeto da presente invenção se refere a um pro-cesso de codificação de pelo menos uma imagem que compreende as eta-pas de : - recorte da imagem em uma pluralidade de blocos aptos a conter símbolos que pertencem a um conjunto predeterminado de símbolos; - agrupamento de blocos em um número predeterminado de subconjuntos de blocos; - codificação por meio de um módulo de codificação entrópica, de cada um dos subconjuntos de blocos, por associação de informações numéricas aos símbolos de cada bloco de um subconjunto considerado, a etapa de codificação compreendendo, para o primeiro bloco da imagem, uma subetapa de inicialização de variáveis de estado do módulo da codificação entrópica; - geração de pelo menos um subfluxo de dados representativo de pelo menos um dos subconjuntos de blocos codificados.
[018] O processo, de acordo com a invenção, é notável pelo fato de : - no caso de o bloco atual ser o primeiro bloco a codificar de um subconjunto considerado, procede-se à determinação de probabilidades de aparecimento de símbolo para o primeiro bloco atual, as probabilidades sendo aquelas que foram determinadas para um bloco predeterminado codificado e decodificado de pelo menos um outro subconjunto; - no caso em que o bloco atual é o último bloco codificado do subconjunto considerado, procede-se à: - escritura, no subfluxo representativo do subconjunto considerado, da totalidade das informações numéricas que foram associados aos símbolos, quando da codificação dos blocos do subconjunto considerado; - utilização da subetapa de inicialização.
[019] A etapa de escritura mencionada acima volta a efetuar, desde que o último bloco de um subconjunto de blocos tenha sido codificado, um esvaziamento das informações numéricas (bits) não ainda transmitidas, conforme foi explicado mais acima na descrição.
[020] O acoplamento da etapa de escritura pré-citada e da etapa de reinicilização do módulo de codificação entrópica permite produzir um fluxo de dados codificado contendo diferentes subfluxos de dados correspondente respectivamente a pelo menos um subconjunto de blocos codificado, esse fluxo sendo adaptado para ser decodificado em paralelo, segundo diferentes níveis de paralelismo, e isto independentemente do tipo de codificação, se- quencial ou paralela, que foi aplicado aos subconjuntos de blocos. Assim, um grande grau de liberdade pode ser obtido para a decodificação sobre a escolha do nível de paralelismo, em função dos desempenhos de codifica- ção/decodificação esperados. O nível de paralelismo à decodificação é variável e pode mesmo ser diferente do nível de paralelismo à codificação, já que, ao acionamento da decodificação de um subconjunto de blocos, o de- codificador está sempre em um estado inicializado.
[021] De acordo com um primeiro exemplo, as variáveis de estado do módulo de codificação entrópica são os dois limites de um intervalo representativo da probabilidade de aparecimento de um símbolo, dentre os símbolos do conjunto predeterminado de símbolos.
[022] De acordo com um segundo exemplo, as variáveis do estado do módulo de codificação entrópica são as cadeias de símbolos contidas na tabela de tradução de um codificador entrópico LZW (Lempel-Ziv-Welch) bem conhecido do técnico, e descrito no endereço internet seguinte à data de 21 de junho de 2011:http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93 Welch.
[023] A utilização das probabilidades de aparecimento de símbolo de-terminadas para o primeiro bloco desse outro subconjunto, quando da codificação entrópica do primeiro bloco atual de um subconjunto de blocos considerado tem principalmente por vantagem economizar a memória tampão do codificador, armazenando nesta unicamente a atualização dessas probabilidades de aparecimento de símbolos, sem considerar as probabilidades de aparecimentos de símbolos apreendidas pelos outros blocos consecutivos a esse outro subconjunto.
[024] A utilização das probabilidades de aparecimento de símbolo de-terminadas para um bloco desse outro subconjunto, diferente do primeiro bloco, por exemplo, o segundo bloco, quando da codificação entrópica do primeiro bloco atual de um subconjunto de blocos considerado tem princi- palmente por vantagem a obtenção de uma aprendizagem mais precisa e, portanto, melhor probabilidades de aparecimento de símbolos, o que acarreta melhores desempenhos de compressão de vídeo.
[025] Em um modo de realização particular, os subconjuntos de blocos são codificados sequencialmente ou em paralelo.
[026] O fato de os subconjuntos de blocos serem codificados sequen-cialmente tem por vantagem tornar o processo de decodificação, de acordo com a invenção, conforme a norma H.264.MPEG-4 AVC.
[027] O fato de os subconjuntos de blocos serem codificados em paralelo tem por vantagem acelerar o tempo de tratamento do codificador e se beneficiar de uma arquitetura multiplataforma para a codificação de uma imagem.
[028] Em um outro modo de realização particular, quando pelo menos dois subconjuntos de blocos são codificados paralelamente a pelo menos um outro subconjunto de blocos, pelo menos os dois subconjuntos de blocos codificados são contidos no mesmo subfluxo de dados.
[029] Essa disposição permite, em particular, economizar sobre a sinalização dos subfluxos de dados. Com efeito, para que uma unidade de decodificação possa decodificar o mais cedo possível um subfluxo, é necessário indicar no arquivo comprimido em que lugar começa o subfluxo em questão. Quando vários subconjuntos de blocos ficam contidos no mesmo fluxo de dados, esse indicador é necessário, o que reduz o tamanho do arquivo comprimido.
[030] Ainda em um outro modo de realização particular, quando os subconjuntos de blocos codificados são destinados a serem decodificados em paralelo, segundo uma ordem predeterminada, os subfluxos de dados liberados, após codificação, respectivamente de cada um dos subconjuntos de blocos são previamente ordenados, conforme a ordem predeterminada, antes de ser transmitido, com vista a sua decodificação.
[031] Essa disposição permite adaptar o fluxo de dados codificado em um tipo de decodificação específico, sem ter necessidade de codificar, de-pois recodificar a imagem.
[032] Correlativamente, a invenção se refere ainda a um dispositivo de codificação de pelo menos uma imagem que compreende: - meios de recorte da imagem em uma pluralidade de blocos aptos a conterem símbolos pertencentes a um conjunto predeterminado de símbolos; - meios de agrupamento dos blocos em um número predeterminado de subconjuntos de blocos; - meios de codificação de cada um dos subconjuntos de blocos, os meios de codificação compreendendo um módulo de codificação entrópi- ca apto a associar informações numéricas aos símbolos de cada bloco de um subconjunto considerado, os meios de codificação compreendendo, para o primeiro bloco da imagem, submeios de inicialização de variáveis de estado do módulo de codificação entrópica; - meios de geração de pelo menos um subfluxo de dados repre-sentativo de pelo menos um dos subconjuntos de blocos codificados.
[033] Esse dispositivo de codificação é notável pelo fato de compreender : - meios de determinação de probabilidades de aparecimento de símbolo para um bloco atual que, no caso em que o bloco atual é o primeiro bloco a codificar de um subconjunto considerado, determinam as probabilidades de aparecimento de símbolo para o primeiro bloco, conforme sendo aquelas que foram determinadas para um bloco predeterminado codificado e decodificado de pelo menos um outro subconjunto; - meios de escritura que, no caso em que o bloco atual é o último bloco codificado do subconjunto considerado, são ativados para escrever, no subfluxo representativo do subconjunto considerado, a totalidade das informações numéricas que foram associadas aos símbolos, quando da co-dificação dos blocos do subconjunto considerado, os submeios de inicialização sendo, além disso, ativados para reinicializar as variáveis de estado do módulo de codificação entrópica.
[034] De forma correspondente, a invenção se refere também a um processo de decodificação de um fluxo representativo de pelo menos uma imagem codificada, compreendendo as etapas de : - identificação no fluxo de um número predeterminado de subflu- xo de dados correspondente respectivamente a pelo menos um subconjunto de blocos a decodificar, os blocos estando aptos a conter símbolos pertencentes a um conjunto predeterminado de símbolos; - decodificação dos subconjuntos de blocos identificados por meio de um módulo de decodificação entrópica, por leitura, em pelo menos um dos subfluxos identificados, de informações numéricas associadas aos símbolos de cada bloco do subconjunto correspondente a pelo menos um subfluxo identificado, a etapa de decodificação compreendendo, para o primeiro bloco a decodificar da imagem, uma subetapa de inicialização de variáveis de estado do módulo de decodificação entrópica.
[035] Esse processo de decodificação é notável pelo fato de : - no caso em que o bloco atual é o primeiro bloco a decodificar de um subconjunto considerado, procede-se à determinação de probabilidades de aparecimento de símbolo para o primeiro bloco do subconjunto considerado, as probabilidades sendo aquelas que foram determinadas para um bloco predeterminado decodificado de pelo menos um outro subconjunto; - no caso em que o bloco atual é o último bloco decodificado do subconjunto considerado, procede-se à utilização da subetapa de inicialização.
[036] Em um modo de realização particular, os subconjuntos de blocos são decodificados sequencialmente ou em paralelo.
[037] Em um outro modo de realização particular, quando pelo menos dois subconjuntos de blocos são decodificados paralelamente a pelo menos um outro subconjunto de blocos, um dos subfluxos de dados identificados é representativo pelo menos dos dois subconjuntos de blocos.
[038] Ainda em um outro modo de realização particular, quando os subconjuntos de blocos codificados são destinados a serem decodificados em paralelo, segundo uma ordem predeterminada, os subfluxos de dados correspondendo respectivamente aos subconjuntos de blocos são ordenados previamente, conforme essa ordem predeterminada nesse fluxo a decodificar.
[039] Correlativamente, a invenção se refere ainda a um dispositivo de decodificação de um fluxo representativo de pelo menos uma imagem codificada, compreendendo: - meios de identificação no fluxo de um número predeterminado de subfluxo de dados correspondente respectivamente a pelo menos um subconjunto de blocos a decodificar, os blocos estando aptos a conterem símbolos pertencentes a um conjunto predeterminado de símbolos; - meios de decodificação dos subconjuntos de blocos identificados, os meios de decodificação compreendendo um módulo de decodifica- ção entrópica apto a ler, em pelo menos um dos subfluxos identificados, informações numéricas associadas aos símbolos de cada bloco do subconjunto correspondente a pelo menos um subfluxo identificado, os meios de de- codificação compreendendo, para o primeiro bloco a decodificar da imagem, submeios de inicialização de variáveis de estado do módulo de decodifica- ção entrópica.
[040] Esse dispositivo de decodificação é notável pelo fato de compreender meios de determinação de probabilidades de aparecimento de símbolo para um bloco atual que, no caso em que o bloco atual é o primeiro bloco a decodificar de um subconjunto considerado, determinam as probabilidades de aparecimento de símbolo para o primeiro bloco, como sendo aquelas que foram determinadas para um bloco predeterminado decodificado de pelo menos um outro subconjunto,e pelo fato de, no caso em que o bloco atual é o último bloco de- codificado do subconjunto considerado, os submeios de inicialização serem ativados para reinicializar as variáveis de estado do módulo de decodificação entrópica.
[041] A invenção visa também um programa de computador, comportando instruções para a execução das etapas do processo de codificação ou de decodificação acima, quando o programa é executado por um computador.
[042] Esse programa pode utilizar qualquer linguagem de programação, e estar sob a forma de código fonte, código objeto, ou código intermediário entre código fonte e código objeto, tal como em uma forma parcialmente compilada, ou em qualquer outra forma desejável.
[043] Ainda, um outro objeto da invenção visa também um suporte de registro legível por um computador, e comportando instruções de programa de computador, tal como mencionado acima.
[044] O suporte de registro pode ser qualquer entidade ou dispositivo capaz de armazenar o programa. Por exemplo, esse suporte pode comportar um meio de armazenagem, tal como uma ROM, por exemplo, uma CDROM ou uma ROM de circuito microeletrônico, ou ainda um meio de registro magnético, por exemplo, um disquete (floppy disc) ou um disco rígido.
[045] Por outro lado, esse suporte de registro pode ser um suporte transmissível, tal como um sinal elétrico ou óptico, que pode ser encaminhado via um cabo elétrico ou óptico, por rádio ou por outros meios. O programa, de acordo com a invenção, pode ser, em particular, telecarregado sobre uma rede de tipo INTERNET.
[046] Alternativamente, esse suporte de registro pode ser um circuito integrado, no qual o programa é incorporado, o circuito sendo adaptado para executar o processo em questão ou para ser utilizado na execução deste.
[047] O dispositivo de codificação, o processo de decodificação, o dispositivo de decodificação e os programas de computador pré-citados apresentam pelo menos as mesmas vantagens que aquelas conferidas pelo pro- cesso de codificação, segundo a presente invenção .
Breve descrição dos desenhos
[048] Outras características e vantagens aparecerão com a leitura de dois modos de realização preferidos descritos com referência às figuras, nas quais: - a figura 1 representa um esquema de codificação de imagem da técnica anterior, - a figura 2A representa as principais etapas do processo de co-dificação, de acordo com a invenção; - a figura 2B representa em detalhes a codificação utilizada no processo de codificação da figura 2A; - a figura 3A representa um primeiro modo de realização de um dispositivo de codificação, de acordo com a invenção; - a figura 3B representa uma unidade de codificação do dispositivo de codificação da figura 3A; - a figura 3C representa um segundo modo de realização de um dispositivo de codificação, de acordo com a invenção; - a figura 4A representa um esquema de codificação / decodifi- cação da imagem, conforme um primeiro modo de realização preferencial; - a figura 4B representa um esquema de codificação / decodifi- cação de imagem, conforme um segundo modo de realização preferencial - a figura 5A representa as principais etapas do processo de de- codificação, de acordo com a invenção; - a figura 5B representa em detalhes a decodificação utilizada no processo de decodificação da figura 5A; - a figura 6A representa um modo de realização de um dispositivo de decodificação, de acordo com a invenção; - a figura 6B representa uma unidade de decodificação do dispositivo de decodificação da figura 6A; - a figura 7A representa um esquema de codificação / decodifi- cação de imagem, utilizando uma codificação de tipo sequencial e uma de- codificação de tipo paralela; - a figura 7B representa um esquema de codificação / decodifi- cação de imagem, utilizando uma codificação / decodificação de tipo paralela, com respectivamente os níveis de paralelismo diferentes.
Descrição detalhada de um primeiro modo de realização da parte de codificação
[049] Um modo de realização da invenção vai a seguir ser descrito, no qual o processo de codificação, de acordo com a invenção, é utilizado para codificar uma sequência de imagens, segundo um fluxo binário próximo daquele que se obtém por uma codificação, segundo a norma H.264/MPEG-4 AVC. Nesse modo de realização, o processo de codificação, de acordo com a invenção, é, por exemplo, implementado à maneira de programa ou material para modificações de um codificador inicialmente conforme a norma H.264/MPEG-4 AVC. O processo de codificação, de acordo com a invenção, está representado sob a forma de um algoritmo que comporta etapas C1 a C5, representadas na figura 2A.
[050] De acordo com o modo de realização da invenção, o processo de codificação, conforme a invenção, é implementado em um dispositivo de codificação CO, cujos dois modos de realização estão representados res-pectivamente nas figuras 3A e 3C.
[051] Com referência à figura 2A, a primeira etapa de codificação C1 é o recorte de uma imagem IE de uma sequência de imagens à codificar em uma pluralidade de blocos ou macroblocos MB, conforme representado na figura 4A ou 4B. Esses macroblocos estão aptos a conter um ou vários símbolos, esses símbolos fazendo parte de um conjunto predeterminado de símbolos. Nos exemplos representados, esses blocos MB têm uma forma quadrada e têm todos o mesmo tamanho. Em função do tamanho da imagem que não é forçosamente um múltiplo tamanho dos blocos, os últimos blocos à esquerda e os últimos blocos em baixo podem não ser quadrados. Em um modo alternativo de realização, os blocos podem ser, por exemplo, de tamanho retangular e/ou não alinhados uns com os outros.
[052] Cada bloco ou macrobloco pode, por outro lado, ser ele próprio dividido em sub-blocos que são eles próprios subdivisíveis.
[053] Esse recorte é feito por um módulo PCO de divisão representado na figura 3A que utiliza, por exemplo, um algoritmo de divisão bem conhecido como tal.
[054] Com referência à figura 2A, a segunda etapa de codificação C2 é o agrupamento dos blocos pré-citados em um número predeterminado P de subconjuntos de blocos consecutivos SE1, SE2, ..., SEk, ..., SEP destinados a serem codificados sequencialmente ou em paralelo. Nos exemplos representados nas figuras 4A e 4B, P = 6, mas só quatro subconjuntos SE1, SE2, SE3, SE4 estão representados com uma preocupação de clareza das figuras. Esses quatro subconjuntos de blocos são, cada um, representados em traços pontilhados e são constituídos pelas quatro primeiras linhas de blocos da imagem IE.
[055] Esse agrupamento é feito por um módulo de cálculo GRCO re-presentado na figura 3A, com o auxílio de um algoritmo bem conhecido em si.
[056] Com referência à figura 2A, a terceira etapa de codificação C3 consiste na codificação de cada um desses subconjuntos de blocos SE1 a SE6, os blocos de um subconjunto considerado sendo codificados, segundo uma ordem de percurso PS predeterminada, que é, por exemplo, de tipo sequencial. Nos exemplos representados nas figuras 4A e 4B, os blocos de um subconjunto SEk atual (1<k<P) são codificados uns após os outros, da esquerda para a direita, conforme indicado pela seta PS.
[057] De acordo com uma primeira variante, essa codificação é de tipo sequencial e é usada por uma única unidade de codificação UC, tal como representada na figura 3A. De forma conhecida como tal, o codificador CO compreende uma memória tampão MT que é adaptada para conter as pro- babilidades de aparecimento de símbolos, tais como progressivamente atua-lizadas, à medida que ocorre a codificação de um bloco atual.
[058] Conforme representado mais detalhadamente na figura 3B, a unidade de codificação UC compreende : • um módulo de codificação prevista de um bloco atual em relação a pelo menos um bloco anteriormente codfiicado e decodificado anotado com MCP; • um módulo de codificação entrópica desse bloco atual por uti-lização de pelo menos uma probabilidade de aparecimento de símbolo calculada para esse bloco anteriormente codificado e decodificado, anotada com MCE.
[059] O módulo de codificação prevista MCP é um módulo de programa que está apto a efetuar uma codificação prevista do bloco atual, segundo as técnicas de previsão clássicas, tais como, por exemplo, em modo Intra e/ou Inter.
[060] O módulo de codificação entrópia MCE é de tipo CABAC, mas modificado, segundo a presente invenção, conforme será descrito depois na descrição.
[061] Como variante, o módulo de codificação entrópica MCE poderia ser um codificador de Huffman conhecido como tal.
[062] Nos exemplos representados nas figuras 4A e 4B, a unidade UC codifica os blocos da primeira linha SE1, da esquerda à direita. Quando ela chega ao último bloco da primeira linha SE1, ela passa ao primeiro bloco da segunda linha SE2. Quando ela chega ao último bloco da segunda linha SE2, ela passa ao primeiro bloco da terceira linha SE3. Quando ela chega ao último bloco da terceira linha SE3, ela passa no primeiro bloco da quarta linha SE4, e assim sucessivamente até que o último bloco da imagem IE seja codificado.
[063] Outros tipos de percurso que aquele que acaba de ser descrito acima são certamente possíveis. Assim, é possível recortar a imagem IE em várias subimagens e aplicar independentemente um recorte desse tipo sobre cada subimagem. É também possível para a unidade de codificação, tratar não uma sucessão de linhas, conforme explicado acima, mas uma sucessão de colunas. É também possível percorrer as linhas ou colunas em um sentido ou no outro.
[064] De acordo com uma segunda variante, essa codificação é de tipo paralela e se distingue da primeira variante de codificação sequencial, unicamente pelo fato de ser utilizada por um número R predeterminado de unidades de codificação UCk (1<k<R), com R = 2 no exemplo representado na figura 3C. Essa codificação paralela é conhecida para gerar uma aceleração substancial do processo de codificação.
[065] Cada uma das unidades de codificação UCk é idêntica à unidade de codificação UC representada na figura 3B. De forma correspondente, uma unidade de codificação UCk compreende um módulo de codificação prevista MCPk e um módulo de codificação entrópica MCEk.
[066] Com referência novamente às figuras 4A e 4B, a primeira unidade UC1 codifica, por exemplo, os blocos de linhas de fileira ímpar, enquanto que a segunda unidade UC2 codifica, por exemplo, os blocos das linhas de fileira par. Mais precisamente, a primeira unidade UC1 codifica os blocos da primeira linha SE1, da esquerda para direita. Quando ela chega ao último bloco da primeira linha SE1, ela passa ao primeiro bloco da (2n+1)eira linha, isto é, a terceiral linha SE3, etc. Paralelamente ao tratamento efetuado pela primeira unidade UC1, a segunda unidade UC2 codifica os blocos da segunda linha SE2, da esquerda à direita. Quando ela chega ao último bloco da segunda linha SE2, ela passa ao primeiro bloco da (2n)eira linha, no caso, a quarta linha SE4, etc. Os dois percursos pré-citados se repetem até que o último bloco da imagem IE seja codificado.
[067] Com referência à figura 2A, a quarta etapa de codificação C4 é a produção de L subfluxo F1, F2, ..., Fm, ..., FL (1<m<L<P) de bits que representam tratados comprimidos pela unidade de codificação UC pré-citada ou cada uma das unidades de codificação UCk pré-citadas, assim como uma versão decodificada dos blocos tratados de cada subconjunto SEk. Os blocos tratados decodificados de um subconjunto considerado, anotados com SED1, SED2, ..., SEDk, ..., SEDP são capazes de serem reutilizados pela unidade de codificação UC representada na figura 3A ou cada uma das unidades UCk representadas na figura 3C, conforme um mecanismo de sincronização que será detalhado depois na descrição.
[068] Com referência à figura 3B, a etapa de produção de L subfluxo é utilizada por um módulo de programa MGSF ou MGSFk de geração de fluxo que é adaptado para produzir fluxo de dados, tais como bits, por exemplo.
[069] Com referência à figura 2A, a quinta etapa de codificação C5 consiste em construir um fluxo global F a partir dos L subfluxos F1, F2, ..., Fm, ..., FL pré-citados. Segundo um modo de realização, os subfluxos F1, F2, ...,. Fm, , FL são simplesmente justapostos, com uma informação adicional destinada a indicar ao decodificador o local de cada subfluxo Fm no fluxo global F. Este último é, em seguida, transmitido por uma rede de comunicação (não representada) a um terminal distante. Este comporta o de- codificador DO representado à figura 5A. De acordo com um outro modo de realização particularmente vantajoso, pois não necessita de uma decodifica- ção, depois uma recodificação da imagem, o codificador CO, antes de transmitir o fluxo F ao decodificador DO, ordena previamente os L subfluxos F1, F2, ..., Fm, FL, segundo uma ordem predeterminada que corresponde à ordem na qual o decodificador DO está apto a decodificar os subfluxos.
[070] Assim, como será descrito em detalhes depois na descrição, o decodificador, de acordo com a invenção, está em condições de isolar os subfluxos F1, F2, ..., Fm, ..., FL no sentido do fluxo global F e afetá-los em uma ou várias unidades de decodificação que compõem o decodificador. Anotar-se-á que essa decomposição dos subfluxos em fluxo global é independente da escolha da utilização de uma única unidade de codificação ou muitas várias unidades de codificação que funcionam em paralelo e que é possível com essa abordagem ter unicamente o codificador ou unicamente o decodificador que comporta unidades que funcionam em paralelo.
[071] Essa construção do fluxo global F é utilizada em um módulo CF de construção de fluxo, tal como representado na figura 3A e na figura 3C.
[072] Vão a seguir ser descritas, com referência à figura 2B, as diferentes subetapas específicas da invenção, tais como utilizadas, quando da etapa C3 de codificação pré-citada, em uma unidade de codificação UC ou UCk.
[073] No decorrer de uma etapa C31, a unidade de codificação UC ou UCk seleciona como bloco atual o primeiro bloco a codificar de uma linha SEk atual representada na figura 4A ou 4B, tal como, por exemplo, a primeira linha SE1.
[074] No decorrer de uma etapa C32, a unidade de codificação UC ou UCk testa se o bloco atual é o primeiro bloco (situado no alto e à esquerda) da imagem IE que foi recortada em blocos na etapa C1 pré-citada
[075] Se esse for o caso, no decorrer de uma etapa C33, o módulo de codificação entrópica MCE ou MCEk procede a uma inicialização de suas variáveis de estado. Conforme o exemplo representado, que utiliza a codificação aritmética descrita anteriormente, trata-se de uma inicialização de um intervalo representativo da probabilidade de aparecimento de um símbolo contido no conjunto predeterminado de símbolos. De forma conhecida como tal, esse intervalo é inicializado com dois limites L e H, respectivamente inferior e superior. O valor do limite inferior L é fixado em 0, enquanto que o valor do limite superior é fixado em 1, o que corresponde à probabilidade do aparecimento de um primeiro símbolo dentre os símbolos do conjunto predeterminado dos símbolos. O tamanho R desse intervalo é, portanto, definido nesse estágio por R = H - L = 1. O intervalo inicializado é, além disso, dividido classicamente em uma pluralidade de subintervalos predeterminados que são representativos respectivamente das probabilidades de aparecimento dos símbolos do conjunto predeterminado de símbolos.
[076] Como variante, se a codificação entrópica utilizada for a codificação LZW, uma tabela de tradução de cadeias de símbolos será inicializa- da, de modo que ela contenha uma e uma única vez todos os símbolos possíveis.
[077] Se, na sequência da etapa C32 pré-citada, o bloco atual não for o primeiro bloco da imagem IE, será procedida, no decorrer de uma etapa C40 que será descrita posteriormente na sequência da descrição, a determinação da disponibilidade dos blocos anteriormente codificados e decodificados necessários.
[078] No decorrer de uma etapa C34, é procedida a codificação do primeiro bloco atual MB1 da primeira linha SE1 representada na figura 4A ou 4B. Essa etapa C34 compreende uma pluralidade de subetapas C341 a C348 que vão ser descritas abaixo.
[079] No decorrer de uma primeira subetapa C341 representada na figura 2B, procede-se à codificação prevista do bloco atual MB1 por técnicas conhecidas de intraprevisão e/ou inter, no decorrer da qual o bloco MB1 é pré-dito em relação a pelo menos um bloco anteriormente codificado e decodificado.
[080] É evidente que outros modos de intraprevisão, tais como propostos na norma H.264 são possíveis.
[081] O bloco atual MB1 pode ser também submetido a uma codificação prevista em modo inter, no decorrer do qual o bloco atual é pré-dito em relação a um bloco oriundo de uma imagem anteriormente codificada e decodificada. Outros tipos de previsão são naturalmente consideráveis. Dentre as previsões possíveis para um bloco atual, a previsão ótima é escolhida segundo um critério fluxo de distorção bem conhecido do técnico.
[082] Essa etapa de codificação prevista permite construir um bloco pré-dito MBp1 que é uma aproximação do bloco atual MB1. As informações relativas a essa codificação prevista serão posteriormente inscritos no fluxo F transmitido ao decodificador DO. Essas informações compreendem nota- damente o tipo de previsão (inter ou intra), e, se for o caso, o modo de intra- previsão, o tipo de divisão de um bloco ou macrobloco, se este for subdividido, o índice de imagem de referência e o vetor de deslocamento utilizados no modo de interprevisão. Essas informações são comprimidas pelo codificador CO.
[083] No decorrer de uma subetapa seguinte C342, é procedida à subtração do bloco pré-dito do bloco atual MBp1 do bloco atual MB1 para produzir um bloco de resíduo MBr1.
[084] No decorrer de uma subetapa seguinte C343, é procedida à transformação do bloco de resíduo MBr1, segundo uma operação clássica de transformação direta, tal como, por exemplo, uma transformação em co-seno discretos de tipo DCT, para produzir um bloco transformado MBt1.
[085] No decorrer de uma subetapa seguinte C344, é procedida à quantificação do bloco transformado MBt1, segundo uma operação clássica de quantificação, tal como, por exemplo, uma quantificação escalar. Um bloco de coeficientes quantificados MBq1 é, então, obtido.
[086] No decorrer de uma subetapa seguinte C345, procede-se à codificação entrópica do bloco de coeficientes quantificados MBq1. No modo preferido de realização, trata-se de uma codificação entrópica CABAC. Essa etapa consiste em: a) ler o ou os símbolos do conjunto predeterminado de símbolos que são associados a esse bloco atual; b) associar informações numéricas, tais como os bits, ao(s) sím- bolo(s) lido(s).
[087] Na variante pré-citada, segundo a qual a codificação utilizada é uma codificação LZW, uma informação numérica correspondente ao código do símbolo na tabela de tradução atual é associada ao símbolo a codificar, e uma atualização da tabela de tradução é efetuada, segundo um método conhecido em si.
[088] No decorrer de uma subetapa seguinte C346, procede-se à des- quantificação do bloco MBq1, segundo uma operação clássica de desquanti- ficação, que é a operação inversa da quantificação feita na etapa C344. Um bloco de coeficientes desquantificados MBDq1 é então obtido.
[089] No decorrer de uma subetapa seguinte C347, procede-se à transformação inversa do bloco de coeficientes desquantificados MBDq1 que é a operação inversa da transformação direta efetuada na etapa C343 acima. Um bloco de resíduo decodificado MBDr1 é, então, obtido.
[090] No decorrer de uma subetapa seguinte C348, procede-se à construção do bloco decodificado MBD1, acrescentando-se ao bloco pré-dito MBp1, o bloco resíduo decodificado MBDr1. Deve ser observado que este último bloco é o mesmo que o bloco decodificado obtido no final do processo de decodificação da imagem IE que será descrito depois na descrição. O bloco decodificado MBD1 é assim tornado disponível para ser utilizado pela unidade de codificação UCk ou qualquer outra unidade de codificação que faz parte do número predeterminado R de unidades de codificação.
[091] No final da etapa de codificação C34 pré-citada, o módulo de codificação entrópica MCE ou MCEk, tal como representado na figura 3B, contém todas as probabilidades, tais como progressivamente atualizadas, à medida que ocorre a codificação do primeiro bloco. Essas probabilidades correspondem aos diferentes elementos de sintaxes possíveis e aos diferentes contextos de codificação associados.
[092] Na sequência da etapa de codificação C34 pré-citada, é testado, no decorrer de uma etapa C35, se o bloco atual for o jésimo bloco dessa mesma linha, a qual j é um valor predeterminado conhecido do codificador CO que é pelo menos igual a 1.
[093] Se esse for o caso, no decorrer de uma etapa C36, representado na figura 2B, o conjunto das probabilidades calculado para o jésimo bloco é armazenado na memória tampão MT do codificador CO, tal como representado na figura 3A ou 3B e nas figuras 4A e 4B, o tamanho da memória sendo adaptado para armazenar o número de probabilidades calculado.
[094] No decorrer de uma etapa C37 representada na figura 2B, a unidade de codificação UC ou UCk testa se o bloco atual da linha SEk que acaba de ser codificado é o último bloco da imagem IE. Essa etapa é também utilizada, se, no decorrer da etapa C35, o bloco atual não for o jésimo bloco da linha SE1.
[095] Se o bloco atual for o último bloco da imagem IE, no decorrer de uma etapa C38, será colocado fim ao processo de codificação.
[096] Se esse não for o caso, procede-se, no decorrer da etapa C39, à seleção do bloco seguinte MBi, a codificar conforme a ordem de percurso representada pela seta PS na figura 4A ou 4B.
[097] No decorrer de uma etapa C40, representada na figura 2B, procede-se à determinação da disponibilidade de blocos anteriormente codificados e decodificados que são necessários para codificar o bloco atual MBi.
[098] Caso se trate da primeira linha SE1, essa etapa consiste em verificar a disponibilidade de pelo menos um bloco situado à esquerda do bloco atual a codificar MBi. Todavia, considerando-se a ordem de percurso PS escolhida no modo de realização representado na figura 4A ou 4B, os blocos são codificados uns após os outros sobre uma linha SEk considerada. Em consequência, o bloco codificado e decodificado da esquerda está sempre disponível (com exceção do primeiro bloco de uma linha). No exemplo re-presentado na figura 4A ou 4B, trata-se do bloco situado imediatamente à esquerda do bloco atual a codificar.
[099] Caso se trate de uma linha SEk diferente da primeira linha, essa etapa de determinação consiste, além disso, em verificar se um número predeterminado N’ de blocos situados na linha precedente SEk-1, por exemplo, os dois blocos situados respectivamente acima e acima à direita do bloco atual, estão disponíveis para a codificação do bloco atual, isto é, se foram codificados, depois decodificados pela unidade de codificação UC ou UCk-1.
[0100] Essa etapa de teste sendo capaz de diminuir a aceleração do processo de codificação, de forma alternativa, de acordo com a invenção, no caso em que a codificação das linhas é de tipo paralelo, um relógio CLK representado na figura 3C é adaptado para sincronizar o avanço da codificação dos blocos, de forma a garantir a disponibilidade dos dois blocos situados respectivamente acima e acima à direita do bloco atual, sem que seja necessário verificar a disponibilidade desses dois blocos. Assim, uma unidade de codificação UCk sempre a codificar o primeiro bloco com uma defasa- gem de um número predeterminado N’ (com, por exemplo, N’=2) de blocos codificados e decodificados da linha precedente SEk-1 que são utilizados para a codificação do bloco atual. De um ponto de vista de programa, a implementação desse relógio permite acelerar notavelmente o tempo de tratamento dos blocos da imagem IE no codificador CO.
[0101] No decorrer de uma etapa C41, representada na figura 2B, é testado se o bloco atual é o primeiro bloco da linha SEk considerada.
[0102] Se esse for o caso, no decorrer de uma etapa C42, procede-se à leitura na memória tampão MT unicamente das probabilidades de aparecimento dos símbolos calculados, quando da codificação do jésimo bloco da linha precedente SEk-1.
[0103] De acordo com uma primeira variante, representada na figura 4A, o jésimo bloco é o primeiro bloco da linha precedente SEk-1 (j = 1). Essa leitura consiste em substituir as probabilidades do codificador CABAC por aquelas presentes na memória tampão MT. Tratando-se dos primeiros blocos respectivos da segunda, da terceira e da quarta linhas SE2, SE3 e SE4, essa etapa de leitura é materializada na figura 4A pelas setas representadas em traços finos.
[0104] De acordo com uma segunda variante da etapa C43 pré-citada que é ilustrada na figura 4A, o jésimo bloco é o segundo bloco da linha precedente SEk-1 (j=2). Essa leitura consiste em substituir as probabilidades do codificador CABAC por aquelas presentes na memória tampão MT. Tratando-se dos primeiros blocos respectivos da segunda, da terceira e da quarta linhas SE2, SE3 e SE4, essa etapa de leitura é materializada na figura 4B pelas setas representadas em traços finos pontilhados.
[0105] Na sequência da etapa C42, o bloco atual é codificado, depois decodificado por iteração das etapas C34 a C38 descritas mais acima.
[0106] Se, na sequência da etapa C41 pré-citada, o bloco atual não for o primeiro bloco da linha SEk considerada, não é vantajosamente procedida a leitura das probabilidades oriundas do bloco anteriormente codificado e decodificado, que se acha na mesma linha SEk, isto é, o bloco codificado e decodificado situado imediatamente à esquerda do bloco atual, no exemplo representado. Com efeito, considerando-se percursos de leitura sequencial PS dos blocos situados na mesma linha, conforme representado na figura 4A ou 4B, as probabilidades de aparecimento de símbolos presentes no codificador CABAC no momento do início da codificação do bloco atual são exatamente aquelas que estão presentes após codificação / decodificação do bloco precedente nessa mesma linha.
[0107] Em consequência, no decorrer de uma etapa C43, representada na figura 2B, procede-se à aprendizagem das probabilidades de aparecimento de símbolo para a codificação entrópica desse bloco atual, as quais correspondem unicamente àquelas que foram calculadas para esse bloco precedente na mesma linha, conforme representado pelas duplas setas em traços cheios na figura 4A ou 4B.
[0108] Na sequência da etapa C43, o bloco atual é codificado, depois decodificado por iteração das etapas C34 a C38 descritas mais acima.
[0109] Em seguida, foi testado, no decorrer da etapa C44, se o bloco atual é o último bloco da linha SEk considerada.
[0110] Se não for o caso, na sequência da etapa C44, a etapa C39 de seleção do bloco seguinte MBi a codificar é de novo utilizada.
[0111] Se o bloco atual for o último bloco da linha SEk considerada, no decorrer de uma etapa C45, o dispositivo de codificação CO da figura 3A ou 3C efetua o esvaziamento conforme evocado mais acima na descrição. Para isso, a unidade de codificação UCk transmite ao módulo de geração de sub- fluxo MGSFk correspondente à totalidade dos bits que foram associados ao(s) símbolo(s) lido(s), quando da codificação de cada bloco dessa linha SEk considerada, de forma que o módulo MGSFk escreva, no subfluxo de dados Fm, contendo um trem binário representativo dos blocos codificados dessa linha SEk considerada, essa totalidade de bits. Esse esvaziamento é simbolizado nas figuras 4A e 4B por um triângulo no fim de cada linha SEk.
[0112] No decorrer de uma etapa C46, representada na figura 2B, a unidade de codificação UC ou UCk efetua uma etapa idêntica à etapa C33 pré-citada, isto é, inicializa de novo o intervalo representativo da probabilidade de aparecimento de um símbolo contido no conjunto predeterminado de símbolos. Essa reinicialização é materializada nas figuras 4A e 4B por um ponto negro no início de cada linha SEk.
[0113] O interesse em efetuar as etapas C45 e C46 nesse nível da codificação é que, quando da codificação do bloco seguinte tratada pela unidade de codificação UC ou uma unidade de codificação UCk, o codificador CO está em um estado inicializado. Assim, conforme será descrito mais adiante na descrição, torna-se possível para uma unidade de decodificação, que trabalha em paralelo, decodificar diretamente o fluxo comprimido F a partir desse ponto, já que lhe basta estar no estado inicializado.
Descrição detalhada de um modo de ressalto da parte de decodificação
[0114] Um modo de realização do processo de decodificação, de acordo com a invenção, vai a seguir ser descrito, no qual o processo de decodifi- cação é implementado à maneira de programa ou material por modificações de um decodificador inicialmente, conforme a norma H.264/MPEG-4 AVC.
[0115] O processo de decodificação, de acordo com a invenção, está representado sob a forma de um algoritmo comportando as etapas D1 a D4 representadas na figura 5A.
[0116] De acordo com o modo de realização da invenção, o processo de decodificação, segundo a invenção, é implementado em um dispositivo de decodificação DO representado na figura 6A.
[0117] Com referência à figura 5A, a primeira etapa de decodificação D1 é a identificação nesse fluxo F dos L subfluxos F1, F2, ..., Fm, ..., FL contendo respectivamente, os P subconjuntos SE1, SE2, ..., SEk, ..., SEP de blocos ou macroblocos codificados anteriormente, conforme representado na figura 4A ou 4B. Para isso, cada subfluxo Fm no fluxo F é associado a um indicador destinado a permitir ao decodificador DO determinar o local de cada subfluxo Fm no fluxo F. Como variante, no final da etapa de codificação C3 pré-citada, o codificador CO ordena os subfluxos F1, F2,..., Fm,..., Fl no fluxo F, segundo a ordem esperada pelo decodificador DO, o que evita a inserção no fluxo dos indicadores de subfluxo. Essa disposição permite assim reduzir o custo em vazão do fluxo de dados F.
[0118] No exemplo representado na figura 4A ou 4B, esses blocos MB têm uma forma quadrada e têm todos o mesmo tamanho. Em função do tamanho da imagem que não é forçosamente um múltiplo do tamanho dos blocos, os últimos blocos à esquerda e os últimos blocos em baixo podem não ser quadrados. Em um modo alternativo de realização, os blocos podem ter, por exemplo, tamanho retangular e/ou não alinhados uns com os outros.
[0119] Cada bloco ou macrobloco pode, por outro lado, ser ele próprio dividido em sub-blocos que são eles próprios subdivisíveis.
[0120] Essa identificação é realizada por um módulo EXDO de extração de fluxo, tal como representado na figura 6A.
[0121] No exemplo representado na figura 4A ou 4B, o número predeterminado P é igual a 6, mas só quatro subconjuntos SE1, SE2, SE3, SE4 estão representados em traço pontilhado, com uma preocupação de clareza das figuras.
[0122] Com referência à figura 5A, a segunda etapa de decodificação D2 é a decodificação de cada um desses subconjuntos dos blocos SE1, SE2, SE3 e SE4, os blocos de um subconjunto considerado sendo codificados segundo uma ordem de percurso sequencial PS predeterminado. No exemplo representado na figura 4A ou 4B, os blocos de um subconjunto SEk atual (1<k<P) são decodificados uns após os outros, da esquerda para a direita, conforme indicado pela seta PS. Ao final da etapa D2, os subconjuntos de blocos decodificados SED1, SED2, SED3, ..., SEDk, ..., SEDP são obtidos.
[0123] Essa decodificação pode ser de tipo sequencial e, por conseguinte, ser efetuada com o auxílio de uma única unidade de decodificação.
[0124] Todavia, a fim de poder se beneficiar de uma arquitetura de de- codificação multiplataforma, a decodificação dos subconjuntos de blocos é de tipo paralelo e é utilizada por um número R de unidades de decodificação UDk (1<k<P), com, por exemplo, R = 4, conforme representado na figura 6A. Essa disposição permite assim uma aceleração substancial do processo de decodificação. De forma conhecida como tal, o decodificador DO compreende uma memória tampão MT que é adaptada para conter as probabilidades de aparecimento de símbolos, tais como progressivamente atualizadas, à medida que ocorre a decodificação de um bloco atual.
[0125] Conforme representado mais em detalhe na figura 6B, cada uma das unidades de decodificação UDk compreende: • um módulo de decodificação entrópica desse bloco atual por aprendizagem de pelo menos uma probabilidade de aparecimento de símbolo calculada para pelo menos um bloco anteriormente decodificado, anotada com MDEk, • um módulo de decodificação prevista de um bloco atual em relação a esse bloco anteriormente decodificado, anotada com MDPk.
[0126] O módulo de decodificação prevista SUDPk está apto a efetuar uma decodificação prevista do bloco atual, segundo as técnicas de previsão clássicas, tais como, por exemplo, em modo Intra e/ou Inter.
[0127] O módulo de decodificação entrópica MDEk é de tipo CABAC, mas modificado, segundo a presente invenção, conforme será descrito depois na descrição.
[0128] Como variante, o módulo de decodificação entrópica MDEk po- deria ser um decodificador de Huffman conhecido como tal.
[0129] No exemplo, representado na figura 4A ou 4B, a primeira unidade UD1 decodifica os blocos da primeira linha SE1, da esquerda para direita. Quando ela chega ao último bloco da primeira linha SE1, ela passa ao primeiro bloco da (n+1)a linha, no caso da 5a linha, etc. A segunda unidade UC2 decodifica os blocos da segunda linha SE2, da esquerda para a direita. Quando ela chega ao último bloco da segunda linha SE2, ela passa ao primeiro bloco da (n+2)a linha, no caso a 6a linha, etc. Esse percurso se repete até a unidade UD4, que decodifica os blocos da quarta linha SE4, da esquerda para a direita. Quando ela chega ao último bloco da primeira linha, ela passa ao primeiro bloco da (n+4)a linha, no caso a 8a linha, e assim sucessivamente até que o último bloco do último subfluxo identificado seja decodificado.
[0130] Outros tipos de percurso, que aquele que acaba de ser descrito acima, são certamente possíveis. Por exemplo, cada unidade de decodifica- ção poderia tratar não das linhas imbricadas, conforme explicado acima, mas colunas imbricadas. É também possível percorrer as linhas ou colunas em um sentido ou no outro.
[0131] Com referência à figura 5A, a terceira etapa de decodificação D3 é a reconstrução de uma imagem decodificada ID a partir de cada subconjunto decodifica SED1, SED2, ..., SEDk, ..., SEDP obtido na etapa de deco- dificação D2. Mais precisamente, os blocos decodificados de cada subconjunto decodificado SED1, SED2, ..., SEDk, ..., SEDP são transmitidos a uma unidade URI de reconstrução de imagem, tal como representada na figura 6A. No decorrer dessa etapa D3, a unidade URI escreve os blocos decodificados em uma imagem decodificada, à medida que esses blocos se tornam disponíveis.
[0132] No decorrer de uma quarta etapa de decodificação D4, representada na figura 5A, uma imagem ID e de inteiramente decodificada é liberada pela unidade URI representada na figura 6A.
[0133] Serão descritos a seguir, com referência à figura 5B, as diferentes subetapas específicas da invenção, tais como utilizadas, quando da etapa D2 de decodificação em paralelo pré-citada, em uma unidade de decodi- ficação UDk.
[0134] No decorrer de uma etapa D21, a unidade de decodificação UDk seleciona como bloco atual o primeiro bloco a decodificar da linha SEk atual representada na figura 4A ou 4B.
[0135] No decorrer de uma etapa D22, a unidade de decodificação UDk testa se o bloco atual é o primeiro bloco da imagem decodificada, na espécie, o primeiro bloco do subfluxo F1.
[0136] Se for o caso, no decorrer da etapa D23, o módulo de decodifi- cação entrópica MDE ou MDEk procede a uma inicialização de suas variáveis de estado. Segundo o exemplo representado, trata-se de uma inicialização de um intervalo representativo da probabilidade de aparecimento de um símbolo contido no conjunto predeterminado de símbolos.
[0137] Como variante, se a decodificação entrópica utilizada for a de- codificação LZW, uma tabela de tradução de cadeias de símbolos é iniciali- zada, de modo que ela contenha uma e uma única vez todos os símbolos possíveis. A etapa D23 sendo idêntica à etapa de codificação C33 pré- citada, não será descrita mais adiante.
[0138] Se, na sequência da etapa D22 pré-citada, o bloco atual não for o primeiro bloco da imagem decodificada ID, procede-se, no decorrer de uma etapa que será descrita posteriormente na sequência da descrição, à determinação da disposição dos blocos anteriormente decodificados necessários.
[0139] No decorrer de uma etapa D24, procede-se à decodificação do primeiro bloco atual MB1 da primeira linha SE1 representada na figura 4A ou 4B. Essa etapa D24 compreende uma pluralidade de subetapas D241 a D246 que vão ser descritas abaixo.
[0140] No decorrer de uma primeira subetapa D24, procede-se à deco- dificação entrópica dos elementos de sintaxe ligados ao bloco atual. Essa etapa consiste principalmente em: a) ler os bits contidos no subfluxo associado a essa primeira linha SE1; b) reconstruir os símbolos a partir dos bits lidos.
[0141] Na variante pré-citada, segundo a qual a decodificação utilizada é uma decodificação LZW, uma informação numérica correspondente ao código do símbolo na tabela de tradução atual é lida, o símbolo é reconstruído a partir do código lido e uma atualização da tabela de tradução é efetuada, segundo um método conhecido em si.
[0142] Mais precisamente, os elementos de sintaxe ligados ao bloco atual são decodificados pelo módulo MDE1 de decodificação entrópica CA- BAC, tal como representada na figura 6B. Este decodifica o subfluxo de bits F1 do arquivo comprimido para produzir os elementos de sintaxe, e, ao mesmo tempo, atualiza suas probabilidades, de forma que, no momento em que este decodifica um símbolo, as probabilidades de aparecimento desse símbolo sejam idênticas àquelas obtidas, quando da codificação desse mesmo símbolo, quando da etapa de codificação entrópica pré-citada C345.
[0143] No decorrer de uma subetapa seguinte D242, procede-se à de- codificação prevista do bloco atual MB1 por técnicas conhecidas de intrapre- visão e/ou inter, no decorrer do qual o bloco MB1 é predito em relação a pelo menos um bloco anteriormente decodificado.
[0144] É evidente que outros modos de intraprevisão, tais como proposto na norma H.264, são possíveis.
[0145] No decorrer dessa etapa, a decodificação prevista é efetuada com o auxílio dos elementos de sintaxe decodificados na etapa precedente e compreendendo notadamente o tipo de previsão (inter ou intra), e, se for o caso, o modo de intraprevisão, o tipo de divisão de um bloco ou macrobloco, se este tiver sido subdividido, o índice de imagem de referência e o vetor de deslocamento utilizados no modo de interprevisão.
[0146] Essa etapa de decodificação prevista pré-citada permite construir um bloco predito MBp1.
[0147] No decorrer de uma subetapa seguinte D243, procede-se à construção de um bloco resíduo quantificado MBq1 com o auxílio dos elementos de sintaxe decodificados anteriormente.
[0148] No decorrer de uma subetapa seguinte D244, procede-se à des- quantificação do bloco resíduo quantificado MBq1, segundo uma operação clássica de desquantificação que é a operação inversa da quantificação efetuada na etapa C344 pré-citada, para produzir um bloco desquantificado decodificado MBDt1.
[0149] No decorrer de uma subetapa seguinte D245, procede-se à transformação inversa do bloco desquantificado MBDt1 que é a operação inversa da transformação direta efetuada na etapa C343 acima. Um bloco resíduo decodificado MBDr1 é então obtido.
[0150] No decorrer de uma subetapa seguinte D246, procede-se à construção do bloco decodificado MBD1, acrescentando-se ao bloco pré-dito MBp1, o bloco resíduo decodificado MBDr1. O bloco decodificado MBD1 é assim tornado disponível para ser utilizado pela unidade de decodificação UD1 ou qualquer outra unidade de decodificação fazendo parte do número predeterminado N de unidades de decodificação.
[0151] No final da etapa de decodificação D246 pré-citada, o módulo de decodificação entrópica MDE1, tal como representado na figura 6B, contém todas as probabilidades, tais como progressivamente atualizadas, e à medida que ocorre a decodificação do primeiro bloco. Essas probabilidades correspondem aos diferentes elementos de sintaxes possíveis e aos diferentes contextos de decodificação associados.
[0152] Na sequência da etapa de decodificação D24 pré-citada, foi testado, no decorrer de uma etapa D25, se o bloco atual é o jésimo bloco dessa mesma linha, na qual j é um valor predeterminado conhecido do decodifica- dor DO que é pelo menos igual a 1.
[0153] Se esse for o caso, no decorrer de uma etapa D26, o conjunto das probabilidades calculada para o jésimo bloco é armazenado na memória tampão MT do decodificador DO, tal como representada na figura 6A e na figura 4A ou 4B, o tamanho dessa memória sendo adaptado para armazenar o número de probabilidades calculado.
[0154] No decorrer de uma etapa D27, a unidade UDk testa se o bloco atual que acaba de ser decodificado é o último bloco do último subfluxo.
[0155] Se esse for o caso, no decorrer de uma etapa D28, é colocado fim ao processo de decodificação.
[0156] Se esse não for o caso, procede-se, no decorrer da etapa D29, à seleção do bloco seguinte MBi a decodificar conforme a ordem de percurso representado pela seta PS na figura 4A ou 4B.
[0157] Se no decorrer da etapa D25 pré-citada, o bloco atual não é o jé- simo bloco da linha SEDk considerado, procede-se à etapa D27 acima.
[0158] No decorrer de uma etapa D30 que faz sequência à etapa D29 pré-citada, procede-se à determinação da disponibilidade de blocos anteriormente decodificados que são necessários para decodificar o bloco atual MBi. Considerando-se o fato de se tratar de uma decodificação em paralelo dos blocos por unidades de decodificação UDk diferentes, pode ocorrer que esses blocos não tenham sido decodificados pela unidade de decodificação afetada na decodificação desses blocos e que não estejam, portanto, ainda disponíveis. Essa etapa de determinação consiste em verificar se um número predeterminado N’ de blocos situados na linha precedente SEk-1, por exemplo, os dois blocos situados respectivamente acima e acima à direita do bloco atual, estão disponíveis para a decodificação do bloco atual, isto é, se foram decodificados pela unidade de decodificação Udk-1 afetada na decodi- ficação destes. Essa etapa de determinação consiste também em verificar a disponibilidade de pelo menos um bloco situado à esquerda do bloco atual a decodificar MBi. Todavia, considerando-se a ordem de percurso PS escolhido no modo de realização representado na figura 4A ou 4B, os blocos são decodificados uns após os outros em uma linha SEk considerada. Em consequência, o bloco decodificado da esquerda está sempre disponível (com exceção do primeiro bloco de uma primeira linha). No exemplo representado na figura 4A ou 4B, trata-se do bloco situado imediatamente à esquerda do bloco atual a decodificar. Para isso, só é testada a disponibilidade dos dois blocos situados respectivamente acima e acima à direita do bloco atual.
[0159] Essa etapa de teste sendo capaz de reduzir a aceleração do processo de decodificação, de forma alternativa, conforme a invenção, um relógio CLK representado na figura 6A é adaptado para sincronizar o avanço da decodificação dos blocos, de forma a garantir a disponibilidade dos dois blocos situados respectivamente acima e acima à direita do bloco atual, sem que seja necessário verificar a disponibilidade desses dois blocos. Assim, conforme representado na figura 4A ou 4B, uma unidade de decodificação UDk começa sempre a decodificar o primeiro bloco com uma defasagem de um número predeterminado N’ (no caso, N’ = 2) de blocos decodificados da linha precedente SEk-1 que são utilizados para a decodificação do bloco atual. De um ponto de vista de programa, a implementação desse relógio permite acelerar notavelmente o tempo de tratamento dos blocos de cada subconjunto SEk no decodificador DO.
[0160] No decorrer de uma etapa D31, foi testado se o bloco atual é o primeiro bloco da linha SEk considerada.
[0161] Se esse for o caso, no decorrer de uma etapa D32, procede-se à leitura na memória tampão MT unicamente das probabilidades de aparecimento de símbolos calculadas, quando da decodificação do jésimo bloco da linha precedente SEk-1.
[0162] De acordo com uma primeira variante, representada na figura 4A, o jésimo bloco é o primeiro bloco da linha precedentes SEk-1 (j = 1). Essa leitura consiste em substituir as probabilidades do decodificador CABAC por aquelas presentes na memória tampão MT. Tratando-se dos primeiros blocos respectivos da segunda, da terceira e da quarta linhas SE2, SE3 e SE4, essa etapa de leitura é materializada na figura 4A pelas setas representadas em traços finos.
[0163] De acordo com uma segunda variante da etapa D32 pré-citada que é ilustrada à figura 4B, o jésimo bloco é o segundo bloco da linha precedente SEk-1(j = 2). Essa leitura consiste em substituir as probabilidades do decodificador CABAC por aquelas presentes na memória tampão MT. Tratando-se dos primeiros blocos respectivos da segunda, da terceira e da quarta linhas SE2, SE3, SE4, essa etapa de leitura é materializada na figura 4B pelas setas representadas em traços finos pontilhados.
[0164] Na sequência da etapa D32, o bloco atual é decodificado pela iteração das etapas D24 a D28 descritos mais acima.
[0165] Se, na sequência da etapa D31 pré-citada, o bloco atual não for o primeiro bloco da linha Sek considerada, não será vantajoso proceder à leitura das probabilidades oriundas do bloco anteriormente decodificado que se acha sobre a mesma linha SEk, isto é, o bloco decodificado situado imediatamente à esquerda do bloco atual, no exemplo representado. Com efeito, considerando-se o percurso de leitura sequencial PS dos blocos situados sobre a mesma linha, conforme representado na figura 4A ou 4B, as probabilidades de aparecimento de símbolos presentes no decodificador CABAC, no momento do começo da decodificação do bloco atual, são exatamente aquelas que estão presentes após decodificação do bloco precedente sobre essa mesma linha.
[0166] Em consequência, no decorrer de uma etapa D33, procede-se à aprendizagem das probabilidades de aparecimento de símbolo para a deco- dificação entrópica desse bloco atual, as quais correspondem unicamente àquelas que foram calculadas para esse bloco precedente sobre a mesma linha, conforme representado pelas duplas setas em traços cheios na figura 4A ou 4B.
[0167] Na sequência da etapa D33, o bloco atual é decodificado por iteração das etapas D24 a D28 descritas mais acima.
[0168] Em seguida foi testado, no decorrer de uma etapa D34, se o bloco decorrente é o último bloco da linha SEk considerada.
[0169] Se esse não for o caso, na sequência da etapa D34, a etapa D29 de seleção do bloco seguinte MB1 a codificar será de novo utilizada.
[0170] Se o bloco atual for o último bloco da linha SEk considerada, no decorrer de uma etapa D35, a unidade de decodificação UDk efetua uma etapa idêntica à etapa D23 pré-citada, isto é, inicializa de novo o intervalo representativo da probabilidade de aparecimento de um símbolo contido no conjunto predeterminado de símbolos. Essa reinicialização é materializada nas figuras 4A e 4B por um ponto negro no início de cada linha SEk.
[0171] Assim, o decodificador DO se acha em um estado inicializado a cada começo de linha, o que permite uma grande flexibilidade do ponto de vista da escolha do nível de paralelismo de decodificação e uma otimização do tempo de tratamento à decodificação.
[0172] No exemplo de esquema de codificação/decodificação representado na figura 7A, o codificador CO compreende uma única unidade de codificação UC, conforme representado na figura 3A, enquanto que o decodifi- cador DO compreende seis unidades de decodificação.
[0173] A unidade de codificação UC codifica sequencialmente as linhas SE1, SE2, SE3, SE4, SE5 e SE6. No exemplo representado, as linhas SE1 a SE4 são inteiramente codificadas, a linha SE5 está em curso de codificação e a linha SE6 não foi ainda codificada. Considerando-se a sequencialidade da codificação, a unidade de codificação UC é adaptada para liberar um fluxo F que contém os subfluxos F1, F2, F3, F4, ordenadas na sequência uns dos outros, na ordem de codificação das linhas SE1, SE2, SE3 e SE4. Para isso, os subfluxos F1, F2, F3 e F4 são simbolizados com as mesmas hachu- ras que aquelas que simbolizam respectivamente as linhas SE1, SE2, SE3, SE4 codificadas. Graças às etapas de esvaziamento em fim de codificação dessas linhas codificadas e à reinicialização do intervalo de probabilidades ao acionamento da codificação ou da decodificação da linha seguinte a codi- ficar / decodificar, o decodificador DO, cada vez que ele lê um subfluxo para decodificá-lo, está em um estado inicializado e pode, portanto, de forma ótima, decodificar em paralelo os quatro subfluxos F1, F2, F3, F4, com unidades de decodificação UD1, UD2, UD3 e UD4 que podem, por exemplo, ser instaladas sobre quatro plataformas diferentes.
[0174] No exemplo de esquema de codificação / decodificação representado na figura 7B, o codificador CO compreende duas unidades de codificação UC1 e UC2, conforme representado na figura 3C, enquanto que o decodificador DO compreende seis unidades de decodificação.
[0175] A unidade de codificação UC1 codifica sequencialmente as linhas de fileira ímpar SE1, SE3 e SE5, enquanto que a unidade de codificação UC2 codifica sequencialmente as linhas de fileira par SE2, SE4 e SE6. Para isso, as linhas SE1, SE3 e SE5 apresentam um fundo branco, enquanto que as linhas SE2, SE4 e SE6 apresentam um fundo em pontilhado. No exemplo representado, as linhas SE1 a SE4 são inteiramente codificadas, a linha SE5 está em curso de codificação e a linha SE6 não foi ainda codificada. Considerando-se o fato de a codificação feita ser de tipo paralelo de nível 2, a unidade de codificação UC1 é adaptada para liberar um subfluxo F2n+1 decomposto em duas partes F1 e F3 obtidas em consequência respectivamente das linhas SE1 e SE3, enquanto que a unidade de codificação UC2 é adaptada para liberar um subfluxo F2n decomposto em duas partes F2 e F4 obtidas em consequência à codificação respectivamente das linhas SE2 e SE4. O codificador CO é, portanto, adaptado para transmitir ao deco- dificador DO um fluxo F que contém a justaposição dos dois subfluxos F2n+1 e F2n e, portanto, uma ordem dos subfluxos F1, F3, F2, F4 que difere daquela representada na figura 7A. Para isso, os subfluxos F1, F2, F3 e F4 são simbolizados com as mesmas hachuras que aquelas que simbolizam respectivamente as linhas SE1, SE2, SE3, SE4 codificadas, os subfluxos F1 e F3 apresentando um fundo branco (codificação das linhas de fileira ímpar) e os subfluxos F2 e F4 apresentando um fundo em pontilhado (codificação das linhas da fileira par).
[0176] Em relação às vantagens mencionadas em relação com a figura 7A, esse esquema de codificação / decodificação apresenta, além disso, a vantagem de poder dispor de um decodificador, cujo nível de paralelismo de decodificação é completamente independente do nível de paralelismo da codificação, o que permite otimizar ainda mais o funcionamento de um codi- ficador/decodificador.

Claims (12)

1. Método de codificação de pelo menos uma imagem, caracterizado pelo fato de compreender as etapas de: recorte (C1) da imagem em uma pluralidade de blocos (MB); agrupamento (C2) dos blocos em um número predeterminado (P) de subconjuntos de blocos (SE1, SE2,...Sek,..., SEP); codificação (C3), por meio de um módulo de codificação entrópi- ca, de um bloco atual desses subconjuntos de blocos, em que a codificação compreende: quando o bloco atual é um primeiro bloco em uma ordem de codificação de um subconjunto que não é o primeiro subconjunto da imagem na ordem de codificação: determinação (C42) de probabilidades de aparecimento de símbolo para o bloco atual, as probabilidades sendo aquelas que foram determinadas para um bloco predeterminado codificado de pelo menos um outro subconjunto, em que o bloco predeterminado é o segundo bloco na ordem de codificação no outro subconjunto; inicializar variáveis de estado do módulo de codificação entrópi- ca, e codificar o bloco atual; e geração (C4) de pelo menos um subfluxo de dados (F1) para a pelo menos uma imagem.
2. Método de codificação, de acordo com a reivindicação 1, ca-racterizado pelo fato de que os subconjuntos de blocos (SE1, SE2,..., SEk, ... SEP) são codificados sequencialmente ou em paralelo.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que quando pelo menos dois subconjuntos de blocos (SE1, SE3) são codificados paralelamente com pelo menos um outro subconjunto de blocos (SE2), pelo menos esses dois subconjuntos de blocos codificados são contidos no mesmo subfluxo de dados (F2N+1).
4. Método de codificação, de acordo com a reivindicação 1, caracterizado pelo fato de que quando os subconjuntos de blocos codificados são destinados a serem decodificados em paralelo, em uma ordem predeterminada, os subfluxos de dados são previamente ordenados de acordo com a ordem predeterminada, antes de serem transmitidos para um decodi- ficador.
5. Dispositivo de codificação (CO) de pelo menos uma imagem, caracterizado pelo fato de compreender: um módulo de divisão configurado para recortar a imagem em uma pluralidade de blocos, um módulo de cálculo configurado para agrupar os blocos em um número predeterminado de subconjuntos de blocos, uma unidade de codificação configurada para codificar, usando um módulo de codificação entrópica, um bloco atual dos subconjuntos de blocos, em que a codificação compreende: quando o bloco atual é um primeiro bloco em uma ordem de codificação de um subconjunto que não é o primeiro subconjunto da imagem na ordem de codificação: determinação de probabilidades de aparecimento de símbolo para o bloco atual, as probabilidades sendo aquelas que foram determinadas através da codificação um bloco predeterminado de pelo menos um outro subconjunto, em que o bloco predeterminado é o segundo bloco na ordem de codificação no outro subconjunto; inicializar variáveis de estado do módulo de codificação entrópi- ca, e codificação do bloco atual; e módulo de geração (C4) de fluxo configurado para gerar pelo menos um subfluxo de dados (F1) para a pelo menos uma imagem.
6. Meio não transitório legível por computador, caracterizado pelo fato de armazenar um programa de computador compreendendo instru ções que, quando executadas por um ou mais processadores, fazem o um ou mais processadores executar as operações compreendendo: recorte (C1) da imagem em uma pluralidade de blocos (MB); agrupamento (C2) dos blocos em um número predeterminado (P) de subconjuntos de blocos (SE1, SE2,...Sek,..., SEP); codificação (C3) por meio de um módulo de codificação entrópi- ca, um bloco atual dos subconjuntos de blocos, em que a codificação compreende: quando o bloco atual é um primeiro bloco em uma ordem de codificação de um subconjunto que não é o primeiro subconjunto da imagem na ordem de codificação: determinação (C42) de probabilidades de aparecimento de símbolo para o bloco atual, as probabilidades sendo aquelas que foram determinadas através da codificação de um bloco predeterminado de pelo menos um outro subconjunto, em que o bloco predeterminado é o segundo bloco na ordem de codificação no outro subconjunto; inicializar variáveis de estado do módulo de codificação entrópi- ca, e codificação do bloco atual; e geração (C4) de pelo menos um subfluxo de dados (F1) para a pelo menos uma imagem.
7. Método de decodificação de um fluxo (F) representativo de pelo menos uma imagem codificada, o método caracterizado pelo fato de compreender: identificação (D1) nesse fluxo de um número predeterminado de subfluxo de dados (F1, F2, ..., Fm, ...FL) correspondente respectivamente a pelo menos um subconjunto de blocos a serem decodificados; decodificar um bloco atual nos subconjuntos de blocos correspondentes ao número predeterminado de subfluxos de dados usando um módulo de decodificação entrópica, em que a decodificação compreende: quando o bloco atual é um primeiro bloco a ser decodificado de um subconjunto que não é o primeiro subconjunto da imagem codificada em uma ordem de decodificação: ler probabilidades de ocorrência de símbolos para o bloco atual, as probabilidades sendo aquelas que foram determinadas pela decodifica- ção de um bloco predeterminado de pelo menos um outro subconjunto, em que o bloco predeterminado é o segundo bloco a ser decodificado no outro subconjunto na ordem de decodificação, inicializar variáveis de estado do módulo de codificação entrópi- ca, e decodificar o bloco atual.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que os subconjuntos de blocos são decodificados sequencialmente ou em paralelo.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que, quando pelo menos dois subconjuntos de blocos são decodificados paralelamente com pelo menos um outro subconjunto de blocos, um dos subfluxos de dados identificados é representativo dos pelo menos dois subconjuntos de blocos.
10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que quando os subconjuntos de blocos são decodificados em paralelo, em uma ordem predeterminada, os subfluxos de dados correspondentes a esses subconjuntos de blocos codificados são ordenados de acordo com a ordem predeterminada nesse fluxo a decodificar.
11. Dispositivo (DO) de decodificação de um fluxo (F) representativo de pelo menos uma imagem codificada, caracterizado pelo fato de que compreende: um módulo de extração de fluxo configurado para identificar no fluxo um número predeterminado de subfluxos de dados correspondentes, respectivamente, a pelo menos um subconjunto de blocos a serem decodifi- cados, uma unidade de decodificação configurada para decodificar um bloco atual nos subconjuntos de blocos correspondentes aos subfluxos de dados identificados usando um módulo de decodificação de entropia, em que a decodificação compreende: quando o bloco atual é um primeiro bloco a ser decodificado de um subconjunto que não é um primeiro subconjunto da imagem codificada em uma ordem de decodificação: ler probabilidades de aparecimento de símbolo para o bloco atual, as probabilidades sendo aquelas que foram determinadas através da de- codificação de um bloco predeterminado de pelo menos um outro subconjunto na ordem de decodificação, em que o bloco predeterminado é o segundo bloco a ser decodificado no outro subconjunto na ordem de decodificação, inicializar variáveis de estado do módulo de codificação entrópi- ca, e decodificar o bloco atual.
12. Meio não transitório legível por computador, caracterizado pelo fato de armazenar um programa de computador compreendendo instruções que, quando executadas por um ou mais processadores, fazem o um ou mais processadores executar as operações compreendendo: identificação (D1) nesse fluxo de um número predeterminado de subfluxo de dados (F1, F2, ..., Fm, ...FL) correspondente respectivamente a pelo menos um subconjunto de blocos a serem decodificados; decodificar um bloco atual nos subconjuntos de blocos correspondentes aos subfluxos de dados identificados usando um módulo de de- codificação entrópica, em que a decodificação compreende: quando o bloco atual é um primeiro bloco a ser decodificado de um subconjunto que não é um primeiro subconjunto da imagem codificada em uma ordem de decodificação: ler probabilidades de ocorrência de símbolos para o bloco atual, as probabilidades sendo aquelas que foram determinadas pela decodifica- ção de um bloco predeterminado de pelo menos um outro subconjunto, em que o bloco predeterminado é o segundo bloco a ser decodificado no outro subconjunto na ordem de decodificação, inicializar variáveis de estado do módulo de codificação entrópi- ca, e decodificar o bloco atual.
BR112013032956-4A 2011-06-24 2012-06-20 Método de codificação e decodificação de imagens, dispositivo de codificacão e de decodificação, e meios não transitórios legíveis por computador BR112013032956B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1155606 2011-06-24
FR1155606A FR2977111A1 (fr) 2011-06-24 2011-06-24 Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
PCT/FR2012/051391 WO2012175870A1 (fr) 2011-06-24 2012-06-20 Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants

Publications (3)

Publication Number Publication Date
BR112013032956A2 BR112013032956A2 (pt) 2017-01-24
BR112013032956A8 BR112013032956A8 (pt) 2017-07-11
BR112013032956B1 true BR112013032956B1 (pt) 2022-05-03

Family

ID=46508090

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013032956-4A BR112013032956B1 (pt) 2011-06-24 2012-06-20 Método de codificação e decodificação de imagens, dispositivo de codificacão e de decodificação, e meios não transitórios legíveis por computador

Country Status (10)

Country Link
US (12) US9319692B2 (pt)
EP (2) EP3700207A1 (pt)
JP (5) JP2014520470A (pt)
KR (14) KR102095329B1 (pt)
CN (8) CN107094253B (pt)
BR (1) BR112013032956B1 (pt)
FR (1) FR2977111A1 (pt)
HK (6) HK1216058A1 (pt)
RU (5) RU2613740C2 (pt)
WO (1) WO2012175870A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US8879858B1 (en) * 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
US10212441B2 (en) * 2014-02-12 2019-02-19 Chips & Media, Inc. Method and apparatus for processing video
FR3029333A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US11233998B2 (en) 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
US10230948B2 (en) * 2016-02-03 2019-03-12 Mediatek Inc. Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system
EP3244610A1 (en) * 2016-05-12 2017-11-15 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to video data
CN108664958A (zh) * 2017-04-02 2018-10-16 田雪松 数据解码方法和数据解码装置
FR3068557A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3721624A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10848775B2 (en) 2018-11-02 2020-11-24 Fungible, Inc. Memory layout for JPEG accelerator
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10827191B2 (en) * 2018-11-02 2020-11-03 Fungible, Inc. Parallel coding of syntax elements for JPEG accelerator
US10827192B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
FR3092719A1 (fr) * 2019-02-07 2020-08-14 Orange Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
KR102595278B1 (ko) 2020-12-29 2023-10-27 부산대학교 산학협력단 표면결함검출 스캐너를 위한 이미지 데이터 저장 장치 및 방법

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1038278A (en) 1907-03-21 1912-09-10 Union Switch & Signal Co Semaphore-signal.
US1036231A (en) 1911-05-15 1912-08-20 William S Hazelton Wire-fence builder.
US1003399A (en) 1911-05-17 1911-09-12 Jerry C Burns Tie-remover.
JP3871348B2 (ja) 1993-03-05 2007-01-24 ソニー株式会社 画像信号復号化装置及び画像信号復号化方法
JPH08116534A (ja) 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
JP3225793B2 (ja) 1995-06-16 2001-11-05 東洋インキ製造株式会社 高親水性塗料
DE69939055D1 (de) * 1998-03-05 2008-08-21 Matsushita Electric Ind Co Ltd Verfahren zur bildkodierung, verfahren zur bildkodierung/-dekodierung, bildkodierer, oder vorrichtung zur bildaufzeichnung/-wiedergabe
JP3391251B2 (ja) 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
US6570926B1 (en) * 1999-02-25 2003-05-27 Telcordia Technologies, Inc. Active techniques for video transmission and playback
GB2348064A (en) 1999-03-16 2000-09-20 Mitsubishi Electric Inf Tech Motion vector field encoding
US7221483B2 (en) 2000-09-05 2007-05-22 Ricoh Company, Ltd. Image encoding method and apparatus, image decoding method and apparatus, image processing apparatus, image formation apparatus, and computer-executable programs
US7336711B2 (en) * 2001-11-16 2008-02-26 Ntt Docomo, Inc. Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
US7813431B2 (en) * 2002-05-20 2010-10-12 Broadcom Corporation System, method, and apparatus for decoding flexibility ordered macroblocks
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
WO2004075556A1 (ja) 2003-02-19 2004-09-02 Ishikawajima-Harima Heavy Industries Co., Ltd. 画像圧縮装置、画像圧縮方法、画像圧縮プログラム、及び圧縮符号化方法、圧縮符号化装置、圧縮符号化プログラム、並びに復合化方法、復合化装置、復合化プログラム
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
JP2005033336A (ja) 2003-07-08 2005-02-03 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
CN1214649C (zh) 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
US7463781B2 (en) 2004-04-14 2008-12-09 Lsi Corporation Low overhead context intializations for arithmetic video codecs
ATE407494T1 (de) 2004-07-06 2008-09-15 Proton World Int Nv Stromverschlüsselung des inhalts eines speichers, welcher ausserhalb eines prozessors angeordnet ist
US20060048038A1 (en) * 2004-08-27 2006-03-02 Yedidia Jonathan S Compressing signals using serially-concatenated accumulate codes
JP2006101406A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置および同装置で用いられるプログラム
US7929776B2 (en) * 2005-03-10 2011-04-19 Qualcomm, Incorporated Method and apparatus for error recovery using intra-slice resynchronization points
JP2006279574A (ja) * 2005-03-29 2006-10-12 Sanyo Electric Co Ltd 復号装置と方法
CN1703089A (zh) * 2005-06-09 2005-11-30 清华大学 一种数字信号的二值算术编码方法
US8750908B2 (en) 2005-06-16 2014-06-10 Qualcomm Incorporated Quick paging channel with reduced probability of missed page
RU2371881C1 (ru) 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
US7869660B2 (en) * 2005-10-31 2011-01-11 Intel Corporation Parallel entropy encoding of dependent image blocks
JP2006141037A (ja) * 2005-11-14 2006-06-01 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2007142637A (ja) * 2005-11-16 2007-06-07 Matsushita Electric Ind Co Ltd 画像情報符号化装置
JP2007166192A (ja) 2005-12-13 2007-06-28 Toshiba Corp 情報処理装置、制御方法およびプログラム
US7924925B2 (en) * 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
JP2007300455A (ja) 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
US7949054B2 (en) 2006-06-01 2011-05-24 Microsoft Corporation Flexible data organization for images
CN101491097B (zh) 2006-07-13 2011-12-14 高通股份有限公司 使用经循环对准的片段的具有细粒度可缩放性的视频编码
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
US7912302B2 (en) 2006-09-21 2011-03-22 Analog Devices, Inc. Multiprocessor decoder system and method
CN101198051B (zh) 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
JP5045950B2 (ja) * 2006-12-14 2012-10-10 日本電気株式会社 映像符号化方法、映像符号化装置および映像符号化プログラム
US20080225947A1 (en) 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
JP5162939B2 (ja) * 2007-03-30 2013-03-13 ソニー株式会社 情報処理装置および方法、並びにプログラム
TWI341657B (en) * 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
US8205140B2 (en) 2007-05-10 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for the use of network coding in a wireless communication network
CN100493198C (zh) * 2007-05-31 2009-05-27 北京中星微电子有限公司 算术编码中的概率模型存储方法
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8488668B2 (en) 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP2009027306A (ja) 2007-07-18 2009-02-05 Epson Toyocom Corp 弾性表面波デバイス
JP5100311B2 (ja) * 2007-10-29 2012-12-19 キヤノン株式会社 動画像データ送信方法、通信装置、及びプログラム
US8542727B2 (en) 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
US9008171B2 (en) 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
US7551341B1 (en) 2008-01-28 2009-06-23 Dolby Laboratories Licensing Corporation Serial modulation display having binary light modulation stage
JP4902892B2 (ja) * 2008-02-22 2012-03-21 パナソニック株式会社 撮像装置
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP4875024B2 (ja) 2008-05-09 2012-02-15 株式会社東芝 画像情報伝送装置
CN101779466B (zh) * 2008-06-10 2015-02-11 松下电器产业株式会社 图像解码装置及图像编码装置
KR101456495B1 (ko) 2008-08-28 2014-10-31 삼성전자주식회사 무손실 부호화/복호화 장치 및 방법
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US9467699B2 (en) 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
WO2010063184A1 (en) * 2008-12-03 2010-06-10 Mediatek Inc. Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus
CN101939994B (zh) * 2008-12-08 2013-07-17 松下电器产业株式会社 图像解码装置及图像解码方法
JP2010278519A (ja) * 2009-05-26 2010-12-09 Panasonic Corp 動きベクトル検出装置
JP5385736B2 (ja) * 2009-09-17 2014-01-08 Nttエレクトロニクス株式会社 ストリーム制御装置、ストリーム制御方法及びストリーム制御プログラム
WO2011042645A1 (fr) * 2009-10-05 2011-04-14 France Telecom Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
KR100954141B1 (ko) 2009-10-12 2010-04-20 주식회사 이알에이와이어리스 궤환간섭신호를 제거하는 일체형 중계기 및 그것을 이용한 다단 중계시스템
EP2312854A1 (de) * 2009-10-15 2011-04-20 Siemens Aktiengesellschaft Verfahren zur Codierung von Symbolen aus einer Folge digitalisierter Bilder
FR2951896A1 (fr) 2009-10-23 2011-04-29 France Telecom Procede d'encapsulation de sous-flux de donnees, procede de desencapsulation et programmes d'ordinateur correspondants
WO2011052142A1 (ja) 2009-10-29 2011-05-05 パナソニック株式会社 画像符号化方法および画像復号方法
JP5108857B2 (ja) 2009-11-05 2012-12-26 株式会社エヌ・ティ・ティ・ドコモ 表示制御装置及びプログラム
US9369736B2 (en) 2010-04-05 2016-06-14 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US8319672B2 (en) 2010-04-09 2012-11-27 Korea Electronics Technology Institute Decoding device for context-based adaptive binary arithmetic coding (CABAC) technique
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
WO2012012446A2 (en) 2010-07-22 2012-01-26 Dolby Laboratories Licensing Corporation System, apparatus and methods for mapping between video ranges of image data and display
US8520740B2 (en) 2010-09-02 2013-08-27 International Business Machines Corporation Arithmetic decoding acceleration
EP2614592B1 (en) 2010-09-09 2018-06-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy encoding and decoding scheme
US10349070B2 (en) * 2010-09-30 2019-07-09 Texas Instruments Incorporated Simplified binary arithmetic coding engine
US20120163448A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Coding the position of a last significant coefficient of a video block in video coding
US9300976B2 (en) 2011-01-14 2016-03-29 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
TWI487295B (zh) 2011-05-17 2015-06-01 Univ Nat Cheng Kung 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US8891863B2 (en) 2011-06-13 2014-11-18 Dolby Laboratories Licensing Corporation High dynamic range, backwards-compatible, digital cinema
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
UA114670C2 (uk) * 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Кодування масиву зразків з малою затримкою
US20130021350A1 (en) * 2011-07-19 2013-01-24 Advanced Micro Devices, Inc. Apparatus and method for decoding using coefficient compression
KR101862329B1 (ko) * 2012-01-20 2018-05-29 지이 비디오 컴프레션, 엘엘씨 병렬 처리, 전송 디멀티플렉서 및 비디오 비트스트림을 허용하는 코딩 개념
DK3793200T3 (da) 2012-04-13 2023-02-13 Ge Video Compression Llc Billedkodning med lav forsinkelse
US9191671B2 (en) * 2012-04-19 2015-11-17 Vid Scale, Inc. System and method for error-resilient video coding

Also Published As

Publication number Publication date
US20150195537A1 (en) 2015-07-09
RU2018103979A3 (pt) 2020-05-28
KR20220122797A (ko) 2022-09-02
US20160150250A1 (en) 2016-05-26
US9848196B2 (en) 2017-12-19
US20160234512A1 (en) 2016-08-11
JP2021044831A (ja) 2021-03-18
BR112013032956A2 (pt) 2017-01-24
CN107094255B (zh) 2020-01-31
KR102095329B1 (ko) 2020-03-31
CN107094253B (zh) 2020-11-10
KR102240333B1 (ko) 2021-04-13
RU2018103979A (ru) 2019-08-02
CN107094253A (zh) 2017-08-25
US20170223353A1 (en) 2017-08-03
US9380308B2 (en) 2016-06-28
CN105120277A (zh) 2015-12-02
HK1244375A1 (zh) 2018-08-03
CN107094252B (zh) 2020-03-13
RU2757543C1 (ru) 2021-10-18
HK1216058A1 (zh) 2016-10-07
KR20160086984A (ko) 2016-07-20
JP2014520470A (ja) 2014-08-21
CN107071446B (zh) 2020-08-11
RU2727171C2 (ru) 2020-07-21
KR20230067712A (ko) 2023-05-16
KR20220000420A (ko) 2022-01-03
US9319693B2 (en) 2016-04-19
US9661335B2 (en) 2017-05-23
US20150195538A1 (en) 2015-07-09
KR20160086986A (ko) 2016-07-20
KR101708982B1 (ko) 2017-02-21
KR20180004318A (ko) 2018-01-10
CN107094256B (zh) 2020-02-07
CN103959787A (zh) 2014-07-30
RU2739497C1 (ru) 2020-12-24
KR102185377B1 (ko) 2020-12-01
KR20160086987A (ko) 2016-07-20
CN107094254B (zh) 2019-12-13
JP2018201220A (ja) 2018-12-20
KR20200135580A (ko) 2020-12-02
US9319694B2 (en) 2016-04-19
US10362311B2 (en) 2019-07-23
US10694186B2 (en) 2020-06-23
KR20140056229A (ko) 2014-05-09
HK1244374A1 (zh) 2018-08-03
US9654783B2 (en) 2017-05-16
KR20150046352A (ko) 2015-04-29
HK1244377A1 (zh) 2018-08-03
US20150016524A1 (en) 2015-01-15
EP3700207A1 (fr) 2020-08-26
HK1244373A1 (zh) 2018-08-03
RU2646345C1 (ru) 2018-03-02
CN107071446A (zh) 2017-08-18
KR20200035182A (ko) 2020-04-01
CN103959787B (zh) 2017-06-20
JP2023100970A (ja) 2023-07-19
KR20210041123A (ko) 2021-04-14
US20190297323A1 (en) 2019-09-26
US20200322609A1 (en) 2020-10-08
KR20180113634A (ko) 2018-10-16
JP2017073806A (ja) 2017-04-13
JP6875333B2 (ja) 2021-05-19
KR101851477B1 (ko) 2018-04-23
EP2724536A1 (fr) 2014-04-30
KR102003549B1 (ko) 2019-07-25
JP7280233B2 (ja) 2023-05-23
CN107094255A (zh) 2017-08-25
US20230353740A1 (en) 2023-11-02
US20140254665A1 (en) 2014-09-11
CN107094254A (zh) 2017-08-25
US20160142720A1 (en) 2016-05-19
BR112013032956A8 (pt) 2017-07-11
HK1244376A1 (zh) 2018-08-03
CN107094256A (zh) 2017-08-25
KR20190087671A (ko) 2019-07-24
WO2012175870A1 (fr) 2012-12-27
FR2977111A1 (fr) 2012-12-28
RU2014102226A (ru) 2015-08-10
KR102437249B1 (ko) 2022-08-26
US10033999B2 (en) 2018-07-24
US20180302632A1 (en) 2018-10-18
US9319692B2 (en) 2016-04-19
KR101907043B1 (ko) 2018-10-11
KR102344519B1 (ko) 2021-12-29
CN107094252A (zh) 2017-08-25
RU2613740C2 (ru) 2017-03-21

Similar Documents

Publication Publication Date Title
BR112013032956B1 (pt) Método de codificação e decodificação de imagens, dispositivo de codificacão e de decodificação, e meios não transitórios legíveis por computador
CN106488232B (zh) 编码和解码图像的方法、编码和解码设备

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: DOLBY INTERNATIONAL AB (NL)

B15K Others concerning applications: alteration of classification

Ipc: H04N 19/176 (2014.01), H04N 19/119 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 20/06/2012, OBSERVADAS AS CONDICOES LEGAIS.

B25G Requested change of headquarter approved

Owner name: DOLBY INTERNATIONAL AB (IE)