BR122019025406B1 - Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento - Google Patents
Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento Download PDFInfo
- Publication number
- BR122019025406B1 BR122019025406B1 BR122019025406-0A BR122019025406A BR122019025406B1 BR 122019025406 B1 BR122019025406 B1 BR 122019025406B1 BR 122019025406 A BR122019025406 A BR 122019025406A BR 122019025406 B1 BR122019025406 B1 BR 122019025406B1
- Authority
- BR
- Brazil
- Prior art keywords
- block
- cpu
- image quality
- decoding
- blocks
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 238000013139 quantization Methods 0.000 claims description 71
- 238000012545 processing Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 7
- 238000003908 quality control method Methods 0.000 description 166
- 238000010586 diagram Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N11/00—Colour television systems
- H04N11/02—Colour television systems with bandwidth reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/196—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Trata-se de um método de codificação de imagem para um aparelho de codificação de imagem ajustado para dividir uma imagem em blocos divisionais de uma pluralidade de tamanhos e realizar a codificação na imagem enquanto controla a qualidade de imagem de acordo com um valor de parâmetro em unidades de blocos divisionais que inclui obter um tamanho de bloco de um bloco-alvo a ser codificado, obter um tamanho de bloco mínimo usado para controlar o valor de parâmetro, obter um estado de divisão do bloco-alvo, obter o valor de parâmetro, determinar se o bloco-alvo está ou não dividido de acordo com o estado de divisão do bloco-alvo, determinar se o tamanho de bloco do bloco- alvo é maior ou igual ao tamanho de bloco mínimo; determinar se o tamanho de bloco do bloco-alvo é igual ao tamanho de bloco mínimo, e codificar o valor de parâmetro obtido.
Description
[0001] A presente invenção refere-se a um aparelho de codificação de imagem, método de codificação de imagem e programa, e um aparelho de decodificação de imagem, método de decodificação de imagem, e programa. Em particular, a presente invenção refere-se a um método de codificação de parâmetro de qualidade de imagem e método de decodificação referente ao cálculo de um parâmetro de qualidade de imagem e inserção de código em codificação de imagem.
[0002] H.264/Codificação de Vídeo Avançada (AVC) do Moving Picture Experts Group (MPEG)-4, doravante chamado de H.264, é conhecido como um método para a gravação por compressão de uma imagem em movimento. H.264 é amplamente usado em difusão terrestre digital de um segmento e outras aplicações. H.264 é caracterizado pelo fornecimento de uma a pluralidade de capacidades de previsões internas, com o uso de transformadas inteiras em unidades de 4 x 4 pixels além de esquemas de codificação convencionais (consulte ISO/IEC 14496-10: 2004 Information technology -- Coding of audiovisual objects -- Part 10: Advanced Video Coding, ITU-T H.264 Advanced video coding for generic audiovisual services).
[0003] Esquemas de codificação que usam uma quantização e transformada ortogonal, tipificada por MPEG-2 e H.264, realizam uma quantização e transformada ortogonal em imagens de bloco predeterminadas para gerar dados de coeficiente. Para o controle de qualidade de imagem, a quantização é realizada com o uso de um parâmetro de controle de qualidade chamado parâmetro de quantização. Especificamente, a quantização com o uso de um valor parâmetro de quantização pequeno produz qualidade de imagem melhorada, mas com uma grande quantidade de código. A quantização com um valor de parâmetro de quantização grande produz baixa qualidade de imagem com uma quantidade reduzida de código. Os valores de parâmetro de quantização ótimos são selecionados para a codificação de acordo com uma grande quantidade de código. Tal controle é chamado de controle de taxa. Vários métodos de controle de taxa foram discutidos, incluindo TM5. Após a quantização, os dados de coeficiente de quantização são submetidos a uma codificação de comprimento variável para gerar dados de coeficiente codificados.
[0004] Parâmetros de quantização também são codificados para gerar código de parâmetro de quantização. Por exemplo, H.264 usa um valor de diferença entre um parâmetro de quantização que é usado para quantizar um bloco que precede um bloco-alvo e um parâmetro de quantização que é usado para quantizar o bloco-alvo. O valor de diferença é chamado de parâmetro de quantização delta (QP_DELTA). O QP_DELTA calculado é codificado em código de QP_DELTA por codificação de Golomb ou codificação aritmética. Por exemplo, o codec de código de QP_DELTA por codificação de Golomb produz um bit de código mesmo se o valor de diferença for 0. Os dados de coeficiente codificados e o código de parâmetro de quantização assim gerado são transmitidos para um decodificador. O decodificador decodifica os dados de coeficiente codificados e o código de parâmetro de quantização para gerar dados de coeficiente de quantização e parâmetros de quantização. O decodificador realiza, então, a quantização inversa e uma transformada ortogonal inversa nos dados de coeficiente de quantização ao usar os parâmetros de quantização, gerando, assim, uma imagem decodificada.
[0005] Uma unidade única de processamento em MPEG-2 e H.264 é chamada de macrobloco. Macroblocos são blocos de treliça de 16 x 16 pixels nos quais uma imagem é dividida em um padrão de treliça. Em termos de pixels, os blocos a serem ortogonalmente transformados em MPEG-2 têm um tamanho de 8 x 8 pixels, e H.264 um tamanho de 8 x 8 pixels ou 4 x 4 pixels. Ou seja, um macrobloco único inclui uma pluralidade de blocos de transformada ortogonal. MPEG-2 e H.264 podem controlar (controle de taxa) parâmetros de quantização em unidades de macroblocos. Os blocos de transformada ortogonal incluídos no mesmo macrobloco são quantizados com o mesmo parâmetro de quantização. De acordo com uma tecnologia melhorada de H.264, uma imagem é dividida em um padrão de treliça em blocos de treliça chamados de maiores blocos de árvores de codificação (LCTBs). Um LCTB tem um tamanho de 64 x 64 pixels. LCTBs são divididos em blocos de tamanhos menores chamados blocos de árvore de codificação (CTBs) com o uso de uma estrutura de quadtree de região. Para buscar ou inserir/emitir dados estruturados em árvore, a ordem de varredura precisa ser especificada. Um CTB inclui blocos de transformada ortogonal chamados de unidades de transformada (TUs). TUs também podem ser divididas em tamanhos menores ao usar uma estrutura de quadtree de região. Cada unidade tem um sinalizador de divisão. Um bloco que tem um sinalizador de divisão verdadeiro é estruturado para incluir quatro blocos divisionais que tem uma dimensão de 1/2 de altura e largura. Um bloco que tem um sinalizador de divisão falso inclui no bloco divisional e contém, no lugar, dados reais no bloco. Em outras palavras, apenas TUs não divididos contém dados de coeficiente em blocos de imagem. Um LCTB (bloco de treliça) inclui uma pluralidade de blocos estruturados hierarquicamente de tamanhos de transformada ortogonal diferentes. Dividir ou não um bloco pode ser determinado por vários métodos. Um dos métodos de determinação é discutido no Pedido de Patente Japonês aberto à inspeção pública n° 2005-191706, que inclui o uso de multiplicadores de Lagrange para calcular os custos do bloco e selecionar um método de divisão de bloco de custo inferior.
[0006] Suponha que um método de codificação de imagem inclua a codificação de uma imagem em unidades de blocos de treliça nos quais a imagem é dividida em um padrão de treliça. Se os blocos de treliça forem grandes em tamanho e o controle de qualidade de imagem for realizado em unidades de blocos de treliça, os limites entre os blocos de qualidades de imagem diferentes podem ser tornar perceptíveis.
[0007] Parâmetros de qualidade de imagem são codificados e transmitidos independentemente de se o parâmetro de qualidade de imagem mudar. Se os blocos de treliça forem subdivididos em unidades menores para o controle de qualidade de imagem, há um problema de sobrecarga causado pelo código de parâmetro de qualidade de imagem.
[0008] A presente invenção é direcionada a um aparelho de codificação de imagem que permite o controle de qualidade de imagem em unidades de blocos apropriados e pode produzir limites de bloco menores para gerar uma imagem em que os limites são menos perceptíveis.
[0009] De acordo com um aspecto da presente invenção, um aparelho de codificação de imagem ajustado para dividir uma imagem em blocos divisionais de uma pluralidade de tamanhos e realizar codificação na imagem enquanto controla a qualidade de imagem de acordo com um valor de parâmetro em unidades de blocos divisionais inclui uma unidade ajustada para obter um tamanho de bloco de um bloco-alvo a ser codificado, uma unidade ajustada para obter um tamanho de bloco mínimo usado para controlar o valor de parâmetro, uma unidade ajustada para obter um estado de divisão do bloco-alvo, uma unidade ajustada para obter o valor de parâmetro, uma unidade ajustada para determinar se o bloco-alvo é dividido de acordo com o estado de divisão do bloco-alvo, uma unidade ajustada para determinar se o tamanho de bloco do bloco-alvo é maior ou igual ao tamanho de bloco mínimo, uma unidade ajustada para determinar se o tamanho de bloco do bloco- alvo é igual ao tamanho de bloco mínimo e uma unidade ajustada para codificar o valor de parâmetro obtido.
[0010] De acordo com uma modalidade exemplificadora da presente invenção, é possível controlar qualidade de imagem em unidades de blocos apropriados e tornar os limites de bloco menores para gerar uma imagem em que os limites são menos perceptíveis. Já que o código de parâmetro de controle de qualidade de imagem não precisa ser inserido em todos os blocos transformados ortogonalmente, a quantidade de código de parâmetro de quantização não aumentará mais do que o necessário.
[0011] Características e aspectos adicionais da presente invenção se tornarão aparentes a partir da seguinte descrição detalhada de modalidades exemplificadoras com referência aos desenhos anexos.
[0012] Os desenhos acompanhantes, que estão incorporados e constituem parte do relatório descritivo, ilustram modalidades exemplificadoras, característica e aspectos da invenção e, junto com a descrição, servem para explicar os princípios da invenção.
[0013] A Figura 1 é um fluxograma que ilustram um método de codificação de um parâmetro de qualidade de imagem de acordo com uma primeira modalidade da presente invenção.
[0014] A Figura 2 é um fluxograma que ilustra um método de decodificação de um parâmetro de qualidade de imagem de acordo com uma segunda modalidade exemplificadora da presente invenção.
[0015] A Figura 3 é um fluxograma que ilustra um método de codificação de um parâmetro de qualidade de imagem de acordo com uma terceira modalidade exemplificadora da presente invenção.
[0016] A qualidade de imagem de acordo com uma quarta modalidade exemplificadora da presente invenção.
[0017] A Figura 5 é um fluxograma que ilustra um método de codificação de um parâmetro de qualidade de imagem de acordo com uma quinta modalidade exemplificadora da presente invenção.
[0018] A Figura 6 é um fluxograma que ilustra um método para decodificar um parâmetro de qualidade de imagem de acordo com uma sexta modalidade exemplificadora da presente invenção.
[0019] A Figura 7 é um diagrama que ilustra um exemplo de um bloco de treliça dividido.
[0020] A Figura 8A é um diagrama que ilustra um exemplo de divisão de um bloco de treliça e um sinalizador de divisão.
[0021] A Figura 8B é um diagrama que ilustra um exemplo de divisão de um bloco de treliça e sinalizadores de divisão.
[0022] A Figura 8C é um diagrama que ilustra um exemplo de divisão de um bloco de treliça e sinalizadores de divisão.
[0023] A Figura 8D é um diagrama que ilustra um exemplo de divisão de um bloco de treliça e sinalizadores de divisão.
[0024] A Figura 9 é um diagrama que ilustra um exemplo de uma configuração de hardware para realizar um método de codificação e um método de decodificação, de acordo com uma modalidade exemplificadora da presente invenção.
[0025] A Figura 10 é um diagrama que ilustra um exemplo de uma configuração de hardware para realizar um método de codificação de acordo com uma modalidade exemplificadora da presente invenção.
[0026] A Figura 11 é um diagrama que ilustra um exemplo de uma configuração de hardware para realizar um método de decodificação, de acordo com uma modalidade exemplificadora da presente invenção.
[0027] A Figura 12A é um diagrama que ilustra um exemplo de controle de qualidade de imagem em blocos divisionais.
[0028] A Figura 12B é um diagrama que ilustra um exemplo de controle de qualidade de imagem em blocos divisionais.
[0029] A Figura 12C é um diagrama que ilustra um exemplo de controle de qualidade de imagem em blocos divisionais.
[0030] A Figura 13 é um fluxograma que ilustra um método para codificara processamento em um quadro.
[0031] A Figura 14 é um fluxograma que ilustra um método para decodificar o processamento em um quadro.
[0032] A Figura 15 é um diagrama que ilustra a estrutura de dados de um quadro codificado.
[0033] A Figura 16 é um diagrama que ilustra a estrutura de dados de dados codificados em um bloco de treliça.
[0034] A Figura 17 é um fluxograma que ilustra detalhes de um método de codificação de blocos divisionais.
[0035] A Figura 18 é um fluxograma que ilustra detalhes de um método de decodificação de blocos divisionais.
[0036] A Figura 19 é um fluxograma que ilustra um método de cálculo de um parâmetro de qualidade de imagem de acordo com a primeira modalidade exemplificadora.
[0037] A Figura 20 é um diagrama que ilustra blocos divisionais para ser acompanhado pelos parâmetros de quantização.
[0038] A Figura 21A é um diagrama que ilustra uma relação dentre um perfil, um nível e um tamanho de bloco mínimo de controle de qualidade de imagem.
[0039] A Figura 21B é um diagrama que ilustra uma relação dentre um perfil, um nível e um tamanho de bloco mínimo de controle de qualidade de imagem.
[0040] A Figura 22 é um fluxograma que ilustra um procedimento para o cálculo e o tamanho de bloco mínimo de controle de qualidade de imagem.
[0041] A Figura 23A é um diagrama que ilustra uma estrutura de dados codificados de uma sequência.
[0042] A Figura 23B é um diagrama que ilustra uma estrutura de dados codificados de uma sequência.
[0043] A Figura 24 é um fluxograma que ilustra um método de codificação de imagem, de acordo com uma sétima modalidade exemplificadora da presente invenção.
[0044] A Figura 25 é um fluxograma que ilustra um método de decodificação de imagem, de acordo com uma oitava modalidade exemplificadora da presente invenção.
[0045] Várias modalidades exemplificadoras, características e aspectos da invenção serão descritos com detalhes abaixo com referência aos desenhos.
[0046] Um método para codificar blocos divisionais, de acordo com uma primeira modalidade exemplificadora da presente invenção, será descrito com referência às Figuras 1, 9, 13, 17 e 19.
[0047] A Figura 9 ilustra uma configuração para executar um programa de codificação que inclui o método de codificação de acordo com a presente modalidade exemplificadora. O programa de codificação é gravado em um dispositivo de disco rígido (daqui em diante, abreviado como HDD) 903. O programa de codificação é carregado em uma memória de acesso aleatório (RAM) 902 mediante a ativação. Uma unidade de processamento central (CPU) 901 realiza as etapas a serem descritas abaixo para realizar o processamento de codificação de imagem. Na presente modalidade exemplificadora, dados de imagem de entrada são armazenados em e lidos a partir do HDD 903. Dados de saída são gravados no HDD 903.
[0048] Uma operação de codificação da configuração anterior será descrita. A Figura 13 é um fluxograma que ilustra um procedimento para codificar todo um quadro. A presente modalidade exemplificadora lida com um caso em que telas são, cada uma, divididas e um padrão de treliça em blocos de treliça de 64 x 64 pixels e sequencialmente processadas em unidades de blocos de treliça. Blocos de treliça em uma tela são processados em uma ordem de leitura de varredura. Deve-se notar que o tamanho do bloco de treliça não se limita a 64.
[0049] Na etapa S1301, a CPU 901 configura um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1302, a CPU 901 codifica o tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1303, a CPU 901 codifica informações de cabeçalho de quadro. Na etapa S1304, a CPU 901 configura um primeiro bloco de treliça no canto esquerdo superior da tela como um bloco de treliça-alvo. Na etapa S1305, a CPU 901 realiza o processamento de previsão no bloco de treliça-alvo para gerar dados residuais. Na etapa S1306, a CPU 901 realiza um procedimento para codificar dados residuais no bloco de treliça-alvo. Na etapa S1307, a CPU 901 determina se todos os blocos de treliça no quadro são processados. Na etapa S1308, a CPU 901 configura o próximo bloco de treliça como um bloco de treliça-alvo.
[0050] O procedimento das etapas será descrito abaixo. Na etapa S1301, a CPU 901 configura um parâmetro chamado de tamanho de bloco mínimo de controle de qualidade de imagem. A presente modalidade exemplificadora será descrita com base na presunção de que a qualidade de imagem é controlada por um parâmetro de quantização que é usado para quantizar coeficientes de transformada ortogonal. O tamanho de bloco mínimo de controle de qualidade de imagem é 16 x 16 pixels, de modo que as informações de tamanho de bloco mínimo de controle de qualidade de imagem tenha um valor de 16. Entretanto, o valor não é limitado a 16. O desenvolvedor do programa pode embutir um valor fixado no programa. O usuário pode especificar um valor através de uma interface de usuário do programa. O programa em si pode calcular e configurar um valor ótimo. O programa pode calcular valores ótimos dependendo das imagens de entrada. Por exemplo, se uma imagem de entrada for maior que 640 x 480 pixels, o programa pode configurar o tamanho de bloco mínimo de controle de qualidade de imagem para um valor tão alto quando 16. Se a resolução for menor ou igual a 640 x 480 pixels, o programa pode configurar o tamanho de bloco mínimo de controle de qualidade de imagem para um valor tão baixo quanto 8.
[0051] Na etapa S1302, a CPU 901 codifica o tamanho de bloco mínimo de controle de qualidade de imagem configurado na etapa S1301 para gerar código de tamanho de bloco mínimo de controle de qualidade de imagem. Por exemplo, a CPU 901 pode fornecer um índice que expressa informações de tamanho de bloco mínimo de controle de qualidade de imagem de 64 como "0", e, similarmente, 32, 16 e 8 como "1", "2", e "3", respectivamente. Então, uma CPU 901 pode gerar um código de comprimento fixo que representa o índice.
[0052] Na etapa S1303, a CPU 901 gera e codifica informações de cabeçalho de quadro. A CPU 901 inclui o código de tamanho de bloco mínimo de controle de qualidade de imagem gerado na etapa S1302 como parte das informações de cabeçalho de quadro. Note que, embora a presente modalidade exemplificadora lide com o caso em que o código de tamanho de bloco mínimo de controle de qualidade de imagem está incluído em um cabeçalho de quadro, isso não é restritivo. O código de tamanho de bloco mínimo de controle de qualidade de imagem pode ser incluído em uma sequência, uma imagem, uma fatia ou um bloco de nível hierárquico mais alto.
[0053] Na etapa S1304, a CPU 901 configura a bloco de treliça no canto superior esquerdo da tela como um primeiro bloco de treliça-alvo a ser processado.
[0054] Na etapa S1305, a CPU 901 gera uma imagem prevista ao usar previsão intra- quadro e previsão de compensação de movimento e gera dados residuais a partir dos pixels do bloco de treliça-alvo. A previsão intra-quadro inclui a geração de uma imagem prevista ao se referir às proximidades do bloco de treliça-alvo. A previsão de compensação de movimento inclui a geração de uma imagem prevista ao se referir aos pixels nos outros quadros. Exemplos incluem a previsão interna e a previsão de compensação de movimento que são adotadas no esquema de codificação H.264 mencionado anteriormente. A CPU 901 codifica um modo de previsão intra-quadro e/ou vetores de movimento gerados e emite o resultado para um armazenamento temporário de saída como código de informações de cabeçalho de bloco de treliça.
[0055] Na etapa S1306, a CPU 901 realiza um procedimento para codificar dados residuais em um bloco que será descrito em conjunto com a Figura 17, no bloco de treliça- alvo. A Figura 17 será descrita com detalhes abaixo.
[0056] Na etapa S1307, a CPU 901 determina se todos os blocos de treliça no quadro são processados. Se todos os blocos de treliça forem processados (SIM na etapa S1307), a CPU 901 termina a o processamento de codificação em todo o quadro. Se nem todos os blocos de treliça forem processados ainda (NÃO na etapa S1307), a CPU 901 realiza a etapa S1308.
[0057] Na etapa S1308, a CPU 901 configura o próximo bloco de treliça em uma ordem de leitura de varredura como um bloco de treliça-alvo e volta para a etapa S1305.
[0058] A Figura 17 é um fluxograma detalhado da etapa S1306. Na etapa S1306, a CPU 901 codifica uma pluralidade de blocos de transformada ortogonal, hierarquicamente estruturados de tamanhos diferentes para gerar dados codificados que inclui código de parâmetro de controle de qualidade de imagem. Especificamente, a CPU 901 realiza divisão de bloco, uma transformada ortogonal e quantização com base em um tamanho de bloco mínimo de controle de qualidade de imagem, dados de tamanho de bloco e dados residuais em blocos. O fluxograma também ilustra o processamento para codificar blocos divisionais para gerar o código de sinalizador de divisão de bloco, dados de coeficiente codificados e código QP_DELTA que concerne a atualização de um parâmetro de qualidade de imagem. A presente modalidade exemplificadora usa uma estrutura de quadtree de região para a estruturação hierárquica. Os blocos no nível hierárquico mais alto são blocos de treliça de 64 x 64 pixels. Conforme o nível descende por processamento de divisão, os blocos de 32 x 32 pixels, 16 x 16 pixels e tão pequenos quanto 8 x 8 pixels podem ser processados. A estrutura de divisão de bloco à base de quadtree de região pode ser transmitida para um lado do decodificador pelos sinalizadores de divisão de bloco sendo embutidos em um fluxo.
[0059] Na etapa S1700, a CPU 901 calcula os custos quando um bloco-alvo é dividido e quando não é. Na etapa S1701, a CPU 901 determina se divide ou não o bloco-alvo. Na etapa S1702, a CPU 901 codifica um sinalizador de divisão de bloco configurado como falso e emite o resultante. Na etapa S1703, a CPU 901 realiza um procedimento para calcular um parâmetro de qualidade de imagem. Na etapa S1704, a CPU 901 realiza uma transformada ortogonal, quantização e codificação de comprimento variável. Na etapa S1705, a CPU 901 realiza um procedimento para codificar o parâmetro de qualidade de imagem. Na etapa S1706, a CPU 901 classifica os dados codificados e emite o resultado para um armazenamento temporário de saída. Na etapa S1707, a CPU 901 codifica um bloco sinalizador de divisão configurado como verdadeiro e emite o resultado. Na etapa S1708, a CPU 901 realiza o procedimento para calcular um parâmetro de qualidade de imagem. Na etapa S1709, a CPU 901 realiza o procedimento para codificar o parâmetro de qualidade de imagem. Na etapa S1710, a CPU 901 processa os blocos divisionais incluídos.
[0060] O procedimento das etapas será descrito abaixo. Na etapa S1700, a CPU 901 calcula os custos quando o bloco é dividido e quando não é. Os custos podem ser calculados ao usar multiplicadores de Lagrange mencionados acima, assim como características de imagem, estatísticas e comprimentos de código previstos.
[0061] Na etapa S1701, a CPU 901 compara os custos com e sem divisão, calculados na etapa S1700. Se o custo com divisão de bloco for inferior ao custo sem divisão de bloco (SIM na etapa S1701), a CPU 901 determina que a comparação é verdadeira. Se não (NÃO na etapa S1701), a CPU 901 determina que a comparação é falsa. Se o resultado da determinação na etapa S1701 for falso (NÃO na etapa S1701), a CPU 901 realiza as etapas S1702 a S1706. Se o resultado de determinação na etapa S1701 for verdadeiro (SIM na etapa S1701), a CPU 901 realiza as etapas S1707 a S1710.
[0062] A descrição será inicialmente dada do caso em que o custo é inferior sem divisão de bloco. Na etapa S1702, a CPU 901 codifica um bloco sinalizador de divisão configurado como falso. A CPU 901 tipicamente designa e codifica, embora sem limitações, a um valor de um bit de 0.
[0063] Na etapa S1703, a CPU 901 realiza um procedimento de cálculo de parâmetro de qualidade de imagem ilustrado na Figura 19 para calcular um parâmetro de qualidade de imagem. A Figura 19 será descrita com detalhes abaixo.
[0064] Na etapa S1704, a CPU 901 realiza uma transformada ortogonal, quantização, e codificação de comprimento variável em dados residuais para gerar dados de coeficiente codificados. A transformada ortogonal é implantada por uma transformada de cosseno discreta (DCT). A quantização é realizada ao usar o parâmetro de qualidade de imagem calculado na etapa S1703. A CPU 901 realiza a quantização ao usar o mesmo valor de parâmetro de qualidade de imagem como aquele usado para a quantização anterior se nenhum novo parâmetro de qualidade de imagem for calculado pelo procedimento de cálculo de parâmetro de qualidade de imagem ilustrado na Figura 19 a ser descrito abaixo. Para a codificação de comprimento variável, a CPU 901 pode usar a codificação de Huffman e codificação aritmética. Tais técnicas de codificação podem ser implantadas com o uso de métodos similares àqueles de H.264 mencionado previamente.
[0065] Na etapa S1705, a CPU 901 realiza o procedimento de codificação de parâmetro de qualidade de imagem. O procedimento de codificação de parâmetro de qualidade de imagem será descrito com detalhes abaixo com referência à Figura 1.
[0066] Na etapa S1706, a CPU 901 classifica o código de sinalizador de divisão de bloco, o código QP_DELTA e os dados de coeficiente codificados e emite o resultado para um armazenamento temporário de saída nessa ordem. Se não houver dados codificados para se emitir, a CPU 901 apenas classifica e emite dados codificados existentes. A Figura 16 ilustra um exemplo da ordem de codificação.
[0067] Agora será dada uma descrição do caso em que o custo é inferior com a divisão de bloco. Na etapa S1707, a CPU 901 codifica um bloco sinalizador de divisão configurado como verdadeiro. A CPU 901 tipicamente designa e codifica, embora sem limitações, um valor de um bit de 1.
[0068] Na etapa S1708, a CPU 901 realiza o procedimento de cálculo de parâmetro de qualidade de imagem ilustrado na Figura 19 a ser descrito abaixo, calculando, assim, um parâmetro de qualidade de imagem.
[0069] Na etapa S1709, a CPU 901 realiza o procedimento de codificação de parâmetro de qualidade de imagem as na etapa S1705. O procedimento de codificação de parâmetro de qualidade de imagem será descrito com detalhes abaixo com referência à Figura 1.
[0070] Na etapa S1710, a CPU 901 realiza de modo recursivo o presente procedimento em todos os blocos divisionais incluídos, isto é, quatro blocos divisionais (superior esquerdo, superior direito, inferior esquerdo e inferior direito) que estão incluídos no nível hierarquicamente subsequente. Os blocos divisionais têm, cada um, um tamanho 1/2 daquele do bloco-alvo original ambos em altura e em largura. O tamanho do bloco-alvo diminui divisão após divisão. O processamento recursivo pode ser realizado até um tamanho de bloco tão pequeno quanto 8 x 8 pixels. Por tal processamento recursivo, um bloco de treliça é sucessivamente dividido em uma estrutura de quadtree de região. Por exemplo, suponha que um bloco de treliça seja dividido conforme ilustrado na Figura 7. Um sinalizador de divisão para indicar a presença ou ausência de divisão de bloco será denotado por 1 quando um bloco correspondente for dividido, e 0 quando não for. Os sinalizadores de divisão nos respectivos blocos divisionais são então expressos conforme ilustrado nas Figuras 8A, 8B, 8C e 8D. As Figuras 8A, 8B, 8C e 8D ilustram os níveis e os blocos de 64 x 64 pixels, 32 x 32 pixels, 16 x 16 pixels e 8 x 8 pixels, respectivamente. Os números indicam sinalizadores de divisão. "-" indica que nenhum sinalizador é necessário. Os números entre parênteses indicam a ordem estrutural. Na presente modalidade exemplificadora, a ordem estrutural se refere à ordem de superior esquerdo, superior direito, inferior esquerdo e inferior direito em termos de blocos. Em termos de níveis, a ordem estrutural se refere à ordem dianteira de varredura da estrutura de quadtree de região. As configurações do código de sinalizador de divisão, código QP_DELTA e dados de coeficiente codificados são armazenados na ordem estrutural. Nenhum sinalizador de divisão é configurado nos blocos de 8 x 8 pixels já que tais blocos não necessitarão ser adicionalmente divididos. Um bloco que tem um sinalizador de divisão de 1 não contém nenhum dado de coeficiente em si já que tal bloco é subdividido em blocos divisionais de tamanhos menores que contêm dados de coeficiente. Conforme ilustrado na Figura 16 a ser descrita abaixo, um fluxo tem uma estrutura de dados de modo que as partes de informações codificadas nos respectivos blocos divisionais sejam dispostas na ordem estrutural. Uma parte de informações codificadas em cada bloco divisional inclui um conjunto de código de sinalizador de divisão, código QP_DELTA, e/ou dados de coeficiente no bloco divisional.
[0071] A Figura 1 é um fluxograma detalhado do procedimento de codificação de parâmetro de qualidade de imagem realizado nas etapas S1705 e S1709. Na etapa S101, a CPU 901 obtém um tamanho do bloco-alvo. Na etapa S102, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S103, a CPU 901 obtém o estado de divisão do bloco. Na etapa S104, a CPU 901 determina se o bloco-alvo é ou não dividido. Na etapa S105, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S106, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S107, a CPU 901 obtém um parâmetro de qualidade de imagem. Na etapa S108, a CPU 901 codifica o parâmetro de qualidade de imagem.
[0072] O procedimento das etapas será descrito abaixo. Na etapa S101, a CPU 901 obtém um tamanho do bloco-alvo. Imediatamente após o presente procedimento ser chamado de procedimento da Figura 17, o bloco-alvo a ser processado é um bloco de treliça em si. O valor do tamanho do bloco-alvo é, portanto, 64. Como o nível da estrutura de quadtree de região descende subsequentemente às chamadas recursivas, o valor de tamanho muda para 32, 16 e 8.
[0073] Na etapa S102, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem que é configurado de fora. Na presente modalidade exemplificadora, o valor do tamanho de bloco mínimo de controle de qualidade de imagem é 16. Se o bloco- alvo a ser codificado é ou não dividido foi determinado nas etapas S1700 e S1701 da Figura 17. Na etapa S103, a CPU 901 obtém informações de estado de divisão que indicam o resultado de determinação de divisão.
[0074] Na etapa S104, a CPU 901 se refere ao estado da divisão do bloco-alvo obtido e determina se o bloco-alvo está dividido. Se o bloco-alvo estiver dividido (SIM na etapa S104), a CPU 901 realiza a etapa S106. Se o bloco-alvo não estiver dividido (NÃO na etapa S104), a CPU 901 realiza a etapa S105.
[0075] Na etapa S105, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado para ser maior ou igual (SIM na etapa S105), a CPU 901 realiza a etapa S107 e a etapa subsequente. Se não (NÃO na etapa S105), a CPU 901 termina o parâmetro de qualidade de imagem processamento de codificação.
[0076] Na etapa S106, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado como sendo igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S106), a CPU 901 realiza as etapas S107 e S108. Se não (NÃO na etapa S108), a CPU 901 termina o parâmetro de qualidade de imagem processamento de codificação.
[0077] Na etapa S107, a CPU 901 obtém um parâmetro de qualidade de imagem. O parâmetro de qualidade de imagem é aquele determinado na etapa S1703 ou S1708 da Figura 17. Na etapa S108, a CPU 901 codifica o parâmetro de qualidade de imagem. Na presente modalidade exemplificadora, a CPU 901 determina um valor de diferença entre o parâmetro de qualidade de imagem usado para codificar no bloco anterior e o parâmetro de qualidade de imagem obtido na etapa S107 como um valor QP_DELTA. A CPU 901 codifica o valor QP_DELTA determinado por codificação de Golomb em código QP_DELTA, que é o código de parâmetro de qualidade de imagem. Na presente modalidade exemplificadora, QP_DELTA é codificado por codificação de Golomb. Entretanto, isso não é restritivo. QP_DELTA pode ser codificado por codificação aritmética ou outra codificação de comprimento variável. O parâmetro de qualidade de imagem é usado para calcular um próximo valor QP_DELTA.
[0078] A Figura 19 é um fluxograma detalhado do procedimento de cálculo de parâmetro de qualidade de imagem realizado nas etapas S1703 e S1708.
[0079] Na etapa S1901, a CPU 901 obtém um tamanho do bloco-alvo. Na etapa S1902, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1903, a CPU 901 obtém o estado de divisão do bloco. Na etapa S1904, a CPU 901 determina se o bloco-alvo está dividido. Na etapa S1905, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1906, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1907, a CPU 901 calcula um parâmetro de qualidade de imagem.
[0080] O procedimento das etapas será descrito abaixo. Na etapa S1901, a CPU 901 obtém um tamanho do bloco-alvo. Imediatamente após o presente procedimento ser chamado do procedimento da Figura 17, o bloco-alvo a ser processado é um bloco de treliça em si. O valor do tamanho do bloco-alvo é, portanto, 64. Conforme o nível da estrutura de quadtree de região descende subsequentemente devido a chamadas recursivas, o valor de tamanho muda para 32, 16 e 8.
[0081] Na etapa S1902, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem que é configurado de fora. Na presente modalidade exemplificadora, o tamanho de bloco mínimo de controle de qualidade de imagem é 16 em valor.
[0082] Se o bloco-alvo a ser codificado está dividido foi determinado nas etapas S1700 e S1701 da Figura 17. Na etapa S1903, a CPU 901 obtém informações de estado de divisão que indicam o resultado da determinação de divisão.
[0083] Na etapa S1904, a CPU 901 se refere ao estado da divisão do bloco-alvo obtido e determina se o bloco-alvo está dividido. Se o bloco-alvo estiver dividido (SIM na etapa S1904), a CPU 901 realiza a etapa S1906. Se o bloco-alvo não estiver dividido (NÃO na etapa S1904), a CPU 901 realiza a etapa S1905.
[0084] Na etapa S1905, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado como maior ou igual (SIM na etapa S1905), a CPU 901 realiza a etapa S1907. Se não (NÃO na etapa S1905), a CPU 901 termina o processamento de cálculo de parâmetro de qualidade de imagem.
[0085] Na etapa S1906, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado como igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S1906), a CPU 901 realiza a etapa S1907. Se não (NÃO na etapa S1906), a CPU 901 termina o processamento de cálculo de parâmetro de qualidade de imagem.
[0086] Na etapa S1907, a CPU 901 realiza o processamento de controle de taxa para calcular um parâmetro de qualidade de imagem para codificar o bloco-alvo. Por exemplo, como com TM5, a CPU 901 prevê a quantidade de código do bloco-alvo e calcula um parâmetro de quantização ótimo. Se o bloco-alvo estiver dividido, todos os blocos divisionais incluídos são submetidos ao controle de taxa. Os blocos divisionais incluídos são codificados com o mesmo parâmetro de qualidade de imagem.
[0087] O método de codificação, de acordo com a presente modalidade exemplificadora, é usado como dados de saída que têm uma estrutura de dados ilustrada nas Figuras 15 e 16. Com referência à Figura 15, as informações de cabeçalho de quadro incluem o código do tamanho de bloco mínimo de controle de qualidade de imagem que é embutido na etapa S1303 da Figura 13. Todos os blocos de treliça no quadro estão sob o controle do código. Com referência à Figura 16, um sinalizador de divisão em um bloco de treliça, ou um bloco de 64 x 64 pixels, é seguido por um sinalizador de divisão em um bloco superior esquerdo de 32 x 32 pixels no nível subsequente. Se o bloco de 32 x 32 pixels não estiver dividido, o código de parâmetro de qualidade de imagem ou código QP_DELTA daquele bloco segue, acompanhado pelo código de dados de coeficiente no resíduo dos 32 x 32 pixels. Segue um sinalizador de divisão em um bloco superior direito de 32 x 32 pixels. Conforme dito antes, se um bloco de 32 x 32 pixels for dividido em blocos de 16 x 16 pixels, um sinalizador de divisão segue para indicar o estado da divisão. Se um bloco não for adicionalmente dividido, o código QP_DELTA e o código de dados de coeficiente seguem. O tamanho de bloco mínimo de controle de qualidade de imagem é 16. Se um bloco estiver dividido em blocos menores que 16 x 16 pixels, um sinalizador de divisão e o código de dados de coeficiente seguem sem o código QP_DELTA adicionado aos blocos menores.
[0088] Conforme descrito acima, um tamanho do bloco-alvo é comparado ao tamanho de bloco mínimo de controle de qualidade de imagem, e codificar ou não um valor QP_DELTA é controlado, dependendo do resultado da comparação. O fornecimento de tal mecanismo permite o controle de qualidade de imagem em unidades de blocos nas quais uma imagem é dividida em um padrão de treliça. O controle de qualidade de imagem pode ser realizado em unidades mais finas (Figura 12C) que em um caso convencional em que o código QP_DELTA é embutido em unidades de blocos de treliça (Figura 12A). Isso pode estreitar os limites entre os blocos de qualidades de imagem diferentes e tornar as diferenças na qualidade de imagem menos perceptíveis. Em outro caso convencional, o controle de qualidade de imagem é realizado e o código QP_DELTA é embutido em unidades de blocos de transformada ortogonal (Figura 12B). Diferentemente de tal caso, a quantidade de código não aumentará mais que o necessário, porque a unidade de controle de qualidade de imagem pode ser selecionada e o código QP_DELTA não precisa ser embutido em cada bloco de transformada ortogonal. O procedimento de cálculo de parâmetro de qualidade de imagem é realizado apenas se as mesmas condições que aquelas para inserir um parâmetro de qualidade de imagem se mantiverem. Também se evita, portanto que o cálculo do parâmetro de qualidade de imagem também aumente mais que o necessário.
[0089] Na presente modalidade exemplificadora, os blocos são definidos como blocos quadrados. Será compreendido que os blocos podem ser retangulares, como de 8 x 4 pixels. Embora a estrutura de quadtree de região seja varrida com o uso de processamento recursivo, estruturas em laço podem ser usadas para implantar a varredura.
[0090] Conforme ilustrado na Figura 10, o método de codificação, de acordo com a presente modalidade exemplificadora, pode ser realizado por uma configuração que inclui hardware dedicado, como um transformador ortogonal 1003, um quantizador 1004 e um codificador de comprimento variável 1005. A CPU 1001 não realizará as etapas de transformada ortogonal, quantização e codificação de comprimento variável, mas faz as unidades anteriores realizarem as respectivas partes do processamento. Em outros aspectos, o procedimento é igual àquele ilustrado na Figura 17.
[0091] A presente modalidade exemplificadora lidou com o caso em que os dados codificados são gravados no HDD 903. Entretanto, isso não é restritivo. Os dados codificados podem ser gravados em um meio de gravação diferente do dispositivo de disco rígido 903. Será constatado que os dados codificados podem ser transmitidos a um circuito de comunicação através de uma interface de comunicação 905. Um dispositivo de gravação externo pode ser conectado para gravar dados codificados em um meio portátil.
[0092] A presente modalidade exemplificadora também lidou com o caso em que as aplicações de software são gravadas no dispositivo de disco rígido 903. Entretanto, isso não é restritivo. Aplicações de software podem ser gravadas em uma parte de hardware como uma memória de apenas leitura (ROM). Será apreciado que aplicações de software podem ser gravadas em um meio portátil, como um cartão de memória e um disco.
[0093] A presente modalidade exemplificadora também lidou com o caso em que o número de vezes que a divisão é codificada para produzir o código que indica o bloco mínimo de tamanho de um controle de qualidade de imagem. Entretanto, isso não é restritivo. Já que o tamanho de bloco máximo é aquele de um bloco de treliça, o bloco mínimo de tamanho de um controle de qualidade de imagem pode ser expresso por um código de comprimento fixo de 6 bits. Um bloco mínimo de controle de qualidade de imagem não é limitado a uma configuração quadrada. Blocos mínimos de controle de qualidade de imagem para as configurações horizontal e vertical podem ser fornecidos separadamente. Por exemplo, blocos horizontais ou de união horizontal podem ser agrupados e os parâmetros de qualidade de imagem podem ser controlados em unidades de grupos de bloco. Em tal caso, os tamanhos dos blocos mínimos de controle de qualidade de imagem podem ser efetivamente configurados para as configurações horizontal e vertical separadamente.
[0094] Um método de decodificação de imagem, de acordo com uma segunda modalidade exemplificadora da presente invenção, será descrito com referência às Figuras 2, 9, 14 e 18.
[0095] A Figura 9 ilustra uma configuração para executar um programa de decodificação que inclui o método de decodificação de acordo com a presente modalidade exemplificadora. O programa de gravação é gravado no HDD 903. O programa de decodificação é carregado na RAM 902, e uma CPU 901 realiza as etapas de um procedimento a ser descrito abaixo para o processamento de decodificação. Dados codificados de entrada são lidos a partir do HDD 903. Uma imagem decodificada é emitida para um visor através de um armazenamento temporário de saída de imagem que é fornecido em uma RAM de vídeo (VRAM) 904. A CPU 901 realiza o processamento de decodificação bloco a bloco. Cada bloco é decodificado para produzir uma imagem decodificada do bloco, que é copiado para uma posição apropriada em um quadro quando exibido para o armazenamento temporário de saída de imagem. Quando o processamento de decodificação em blocos, tanto quando um único quadro, é completado, um quadro de imagem é exibido para um armazenamento temporário de saída. A descrição a seguir será dada com a presunção de que os dados codificados de entrada são dados codificados que são gerados na primeira modalidade exemplificadora gerada.
[0096] A Figura 14 ilustra o procedimento para decodificar dados codificados de entrada. Os blocos de treliça são decodificados em uma ordem de leitura de varredura. Na etapa S1401, a CPU 901 decodifica e obtém informações de cabeçalho de quadro. A presente modalidade exemplificadora lida com o caso em que as informações de cabeçalho de quadro incluem um tamanho de bloco mínimo de controle de qualidade de imagem. Entretanto, isso não é restritivo. De acordo com um formato predeterminado, um tamanho de bloco mínimo de controle de qualidade de imagem pode ser obtido a partir de informações de cabeçalho em uma sequência, uma imagem, uma fatia, ou um bloco de nível hierárquico mais alto. Na etapa S1402, a CPU 901 decodifica e obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1403, a CPU 901 faz uma configuração de modo que o resultado de decodificação dos dados codificados seja primeiramente armazenado em um primeiro bloco de treliça-alvo. Na etapa S1404, a CPU 901 decodifica o modo de previsão do bloco de treliça-alvo e gera uma imagem prevista, de acordo com o modo de previsão. Na etapa S1405, a CPU 901 realiza um procedimento de decodificação de bloco divisional no bloco de treliça-alvo. Na etapa S1406, a CPU 901 adiciona dados de imagem prevista e dados residuais do bloco de treliça-alvo e exibe o resultado ao armazenamento temporário de saída de imagem. Na etapa S1407, a CPU 901 determina se todos os blocos de treliça em um quadro são processados. Na etapa S1408, a CPU 901 configura o próximo bloco de treliça como um bloco de treliça-alvo.
[0097] O procedimento das etapas será descrito abaixo. Na etapa S1401, a CPU 901 obtém um parâmetro chamado de tamanho de bloco mínimo de controle de qualidade de imagem a partir das informações de cabeçalho em um bloco que é da ordem mais alta em termos de sequências, imagens, quadros, fatias e estrutura hierárquica.
[0098] Na etapa S1402, a CPU 901 decodifica e obtém o tamanho de bloco mínimo de controle de qualidade de imagem. De acordo com a primeira modalidade exemplificadora, o tamanho de bloco mínimo de controle de qualidade de imagem é codificado como um índice. O tamanho de bloco mínimo de controle de qualidade de imagem é 16. Na etapa S1403, a CPU 901 configura o bloco de treliça no canto superior esquerdo da tela como um bloco de treliça-alvo.
[0099] Na etapa S1404, a CPU 901 decodifica dados codificados no bloco de treliça- alvo. A CPU 901, então, decodifica um modo de previsão intra-quadro e/ou vetores de movimento gerados na primeira modalidade exemplificadora. Com codificação interna, a CPU 901 se refere a pixels decodificados adjacentes e gera dados de imagem prevista com base no modo de previsão intra-quadro decodificado. Com codificação interna, a CPU 901 realiza a compensação de movimento para gerar dados de imagem prevista com base nos vetores de movimento.
[00100] Na etapa S1405, a CPU 901 realiza um procedimento de decodificação divisional de bloco, que será descrito abaixo em conjunto com a Figura 18, no bloco de treliça. Já que a decodificação dos blocos divisionais é estruturada hierarquicamente, a CPU 901 decodifica sinalizadores de divisão em blocos e determina os estados dos blocos divisionais enquanto realiza a decodificação. A CPU 901, então, gera Parâmetros de qualidade de imagem e dados residuais em relação às previsões.
[00101] Na etapa S1406, a CPU 901 adiciona os dados de imagem prevista gerados na etapa S1404 e os dados residuais gerados na etapa S1405 para gerar uma imagem decodificada do bloco de treliça-alvo. A CPU 901 exibe a imagem decodificada para o armazenamento temporário de saída de imagem.
[00102] Na etapa S1407, a CPU 901 determina se todos os blocos de treliça no quadro são processados para a decodificação. Por exemplo, a CPU 901 conta o número de blocos de treliça decodificados. Se não todos os blocos de treliça são processados para a decodificação (NÃO na etapa S1407), a CPU 901 prossegue para a etapa S1408. Se todos os blocos de treliça forem decodificados (SIM na etapa S1407), a CPU 901 termina o processamento de decodificação no quadro.
[00103] Na etapa S1408, a CPU 901 configura o resultado da decodificação que vem a seguir em uma ordem de leitura de varredura como o próximo bloco de treliça-alvo.
[00104] A Figura 18 é um fluxograma detalhado da etapa S1405, que ilustra um procedimento para a decodificação de uma pluralidade de blocos de transformada ortogonal, hierarquicamente estruturados de tamanhos diferentes. Especificamente, a Figura 18 ilustra um procedimento para realizar a decodificação de comprimento variável, uma transformada ortogonal inversa, e a quantização inversa em dados de coeficiente de comprimento variável, codificados com base no código de sinalizador de divisão de bloco e código QP_DELTA, para gerar dados residuais. A presente modalidade exemplificadora usa uma estrutura de quadtree de região para a estruturação hierárquica. Um bloco no nível mais alto (primeiro bloco-alvo a ser processado) é um bloco de treliça de 64 x 64 pixels.
[00105] Na etapa S1801, a CPU 901 decodifica um bloco sinalizador de divisão no bloco- alvo. Na etapa S1802, a CPU 901 realiza um procedimento de decodificação de parâmetro de qualidade de imagem. Na etapa S1803, a CPU 901 determina se o bloco-alvo a ser decodificado é dividido. Na etapa S1804, a CPU 901 realiza decodificação de comprimento variável, quantização inversa e uma transformada ortogonal inversa. Na etapa S1805, a CPU 901 realiza de modo recursivo processamento de decodificação em blocos divisionais incluídos.
[00106] O procedimento das etapas será descrito abaixo. Na etapa S1801, a CPU 901 decodifica um bloco sinalizador de divisão como aquele ilustrado na Figura 16 para obter informações em relação a se o bloco-alvo é subdividido. A decodificação é realizada de acordo com uma estrutura hierárquica de quadtree. A CPU 901 pode, portanto, obter o estado de divisão dos blocos.
[00107] Na etapa S1802, a CPU 901 realiza um procedimento de decodificação de parâmetro de qualidade de imagem a ser descrito abaixo em conjunto com a Figura 2. A CPU 901 decodifica, por meio disso, um parâmetro de qualidade de imagem que é usado na quantização inversa para a decodificação do bloco-alvo.
[00108] Na etapa S1803, a CPU 901 refere-se ao sinalizador de divisão de bloco decodificado para determinar se o bloco-alvo é dividido. Se o bloco-alvo é determinado para não ser dividido (NÃO na etapa S1803), uma CPU 901 realiza a etapa S1804. Se for determinado que o bloco-alvo seja dividido (SIM na etapa S1803), a CPU 901 realiza a etapa S1805.
[00109] Na etapa S1804, a CPU 901 realiza decodificação de comprimento variável, quantização inversa e uma transformada ortogonal inversa nos dados de coeficiente codificados do bloco-alvo, gerando, assim, dados residuais. Para a decodificação de comprimento variável, a CPU 901 realiza decodificação de acordo com o esquema de codificação usado na primeira modalidade exemplificadora. A CPU 901 obtém assim dados de coeficiente de quantização incluídos no bloco. Para a quantização inversa, a CPU 901 usa o parâmetro de qualidade de imagem decodificado na etapa S1802. Se nenhum parâmetro de qualidade de imagem novo for decodificado em S1802, a CPU 901 realiza quantização inversa ao simplesmente usar o parâmetro de qualidade de imagem previamente decodificado. A CPU 901 realiza uma transformada ortogonal inversa nos dados de coeficiente resultantes da quantização inversa, gerando, assim, dados residuais.
[00110] Na etapa S1805, a CPU 901 realiza de modo recursivo o processamento nas etapas S1801 a S1805 contanto que um sinalizador de divisão de bloco decodificado indique a presença de um nível hierarquicamente subsequente. A CPU 901 restaura, portanto, dados residuais até que o tamanho divisional de bloco mínimo seja alcançado.
[00111] Agora, a etapa S1802 destinada para a decodificação de um parâmetro de qualidade de imagem será descrita com detalhes com referência à Figura 2.
[00112] A Figura 2 ilustra um procedimento par aa decodificação de um parâmetro de qualidade de imagem de uma pluralidade de blocos de transformada ortogonal, hierarquicamente estruturados de tamanhos diferentes. Na etapa S201, a CPU 901 obtém um tamanho do bloco-alvo. Na etapa S202, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S203, a CPU 901 obtém o estado de divisão do bloco. Na etapa S204, a CPU 901 determina se o bloco-alvo está dividido. Na etapa S205, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S206, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S207, a CPU 901 decodifica um parâmetro de qualidade de imagem.
[00113] O procedimento das etapas será descrito abaixo. Na etapa S201, a CPU 901 obtém um tamanho do bloco-alvo. Imediatamente após o presente procedimento ser chamado pelo procedimento da Figura 18, o bloco-alvo a ser processado é um bloco de treliça em si. O valor do tamanho do bloco-alvo é, portanto, 64. Já que sinalizadores de divisão são decodificados subsequentemente, o valor de tamanho muda para 32, 16 e 8, em conformidade.
[00114] Na etapa S202, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na presente modalidade exemplificadora, a CPU 901 obtém o tamanho de bloco mínimo de controle de qualidade de imagem decodificado na etapa S1402 da Figura 14. Na etapa S203, a CPU 901 obtém o estado da divisão do bloco. Na presente modalidade exemplificadora, a CPU 901 obtém o sinalizador de divisão de bloco decodificado na etapa S1801 da Figura 18.
[00115] Na etapa S204, a CPU 901 determina o valor do sinalizador de divisão de bloco. Com o uso da mesma designação de código que aquela descrita na primeira modalidade exemplificadora, um sinalizador de divisão de bloco que tem um valor de "0" indica que o bloco não está dividido. Um sinalizador de divisão de bloco que tem um valor de "1" indica que o bloco está dividido. Se o valor do sinalizador de divisão de bloco for "0" (NÃO na etapa S204), a CPU 901 realiza a etapa S205. Se o valor for "1" (SIM na etapa S204), a CPU 901 realiza a etapa S206.
[00116] Na etapa S205, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S205), a CPU 901 realiza a etapa S207. Se não (NÃO na etapa S205), a CPU 901 termina o processamento.
[00117] Na etapa S206, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S206), a CPU 901 realiza a etapa S207. Se não (NÃO na etapa S206), a CPU 901 termina o processamento.
[00118] Na etapa S207, a CPU 901 decodifica código de parâmetro de qualidade de imagem. Na presente modalidade exemplificadora, a CPU 901 decodifica o código QP_DELTA em um valor QP_DELTA por decodificação de Golomb. Na presente modalidade exemplificadora, QP_DELTA é decodificado por decodificação de Golomb. Entretanto, isso não é restritivo. QP_DELTA pode ser decodificado por decodificação aritmética ou outra decodificação de comprimento variável, dependendo do formato de dados predeterminado. A CPU 901 acrescenta, então, o valor QP_DELTA ao parâmetro de qualidade de imagem que é usado para codificar o bloco anterior, gerando, assim, um parâmetro de qualidade de imagem.
[00119] Na presente modalidade exemplificadora, decodificar ou não um parâmetro de qualidade de imagem é controlado dependendo da mesma condição que aquela para comparar o tamanho do bloco-alvo no qual o parâmetro de qualidade de imagem é codificado e o tamanho de bloco mínimo de controle de qualidade de imagem. Isso permite a decodificação de um fluxo que é gerado pelo método de codificação descrito na primeira modalidade exemplificadora.
[00120] Conforme ilustrado na Figura 11, o método de decodificação, de acordo com a presente modalidade exemplificadora, pode ser realizado por uma configuração que inclui hardware dedicado, como um transformador ortogonal inverso 1103, um quantizador inverso 1104 e um decodificador de comprimento variável 1105, em vez de a configuração ilustrada na Figura 9. A CPU 1101 não realizará a transformada ortogonal inversa, quantização inversa e a etapa decodificação de comprimento variável, mas as unidades precedentes realizam as respectivas partes do processamento. Em outro aspecto, o procedimento é o mesmo que aquele ilustrado na Figura 18.
[00121] A presente modalidade exemplificadora lidou com o caso em que os dados codificados são gravados no dispositivo de disco rígido 903. Entretanto, isso não é restritivo. Dados codificados podem ser recebidos a partir de um circuito de comunicação através de uma interface de comunicação 1006. Um dispositivo de gravação externo pode ser conectado aos dados codificados de entrada a partir de um meio portátil.
[00122] A presente modalidade exemplificadora também lidou com o caso em que as aplicações de software são gravadas no dispositivo de disco rígido 903. Entretanto, isso não é restritivo. Aplicações de software podem ser gravadas em uma parte de hardware como memória de apenas leitura (ROM). Será constatado que aplicações de software podem ser gravadas em um meio portátil como cartão de memória e um disco.
[00123] Um método de codificação de um parâmetro de qualidade de imagem, de acordo com uma terceira modalidade da presente invenção, será descrito com referência à Figura 3. A não ser que especificado de outra forma especificado, a configuração para realizar o método de codificação e a operação das etapas é igual àquela da primeira modalidade exemplificadora. Na presente modalidade exemplificadora, um bloco que inclui um bloco- alvo e tem o mesmo tamanho que um tamanho de bloco mínimo de controle de qualidade de imagem será definido como um bloco mínimo de controle de qualidade de imagem. Informações que indicam se um parâmetro de qualidade de imagem é codificado em um bloco mínimo de controle de qualidade de imagem serão definidas como informações de estado de codificação de parâmetro de qualidade de imagem. As informações de estado de codificação de parâmetro de qualidade de imagem são equivalentes às informações que indicam se um parâmetro de qualidade de imagem do primeiro bloco divisional no bloco mínimo de controle de qualidade de imagem está codificado.
[00124] A Figura 3 ilustra um procedimento para codificar um parâmetro de qualidade de imagem. A Figura 3 é um fluxograma detalhado do procedimento de codificação de parâmetro de qualidade de imagem a ser realizado nas etapas S1705 e S1709 da Figura 17. Esse procedimento é realizado no lugar do procedimento de codificação de parâmetro de qualidade de imagem ilustrado na Figura 1. Na etapa S301, a CPU 901 obtém informações de estado de codificação de parâmetro de qualidade de imagem. Na etapa S302, a CPU 901 se refere às informações de estado de codificação de parâmetro de qualidade de imagem e determina se um parâmetro de qualidade de imagem já foi codificado em um bloco mínimo de controle de qualidade de imagem.
[00125] O procedimento das etapas será descrito abaixo. Na etapa S104, como a primeira modalidade exemplificadora, a CPU 901 se refere ao estado de divisão do bloco- alvo obtido, isto é, se o bloco-alvo foi adicionalmente dividido por um quadtree. Se o bloco- alvo for determinado a ser dividido (SIM na etapa S104), a CPU 901 termina o processamento diferentemente da primeira modalidade exemplificadora. Se o bloco-alvo for determinado como não dividido (NÃO na etapa S104), a CPU 901 realiza a etapa S105 como na primeira modalidade exemplificadora.
[00126] Na etapa S105, como na primeira modalidade exemplificadora, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado como maior ou igual (SIM na etapa S105), a CPU 901 realiza as etapas S107 e S108 como na primeira modalidade exemplificadora. Se não (NÃO na etapa S105), a CPU 901 realiza o processamento das etapas S301 e S302.
[00127] Na etapa S301, a CPU 901 obtém informações de estado de codificação de parâmetro de qualidade de imagem. Na presente modalidade exemplificadora, o tamanho de bloco mínimo de controle de qualidade de imagem é 16. Se o bloco-alvo for um bloco superior esquerdo de 8 x 8 pixels, ele segue que a CPU 901 obtém informações de que nenhum parâmetro de qualidade de imagem é codificado. Se o bloco-alvo for um bloco superior direito, inferior esquerdo ou inferior direito de 8 x 8 pixels, um parâmetro de qualidade de imagem já foi codificado em um bloco superior esquerdo de 8 x 8 pixels. Em tal caso, uma CPU 901 obtém informações de que um parâmetro de qualidade de imagem é codificado.
[00128] Na etapa S302, a CPU 901 se refere às informações de estado de codificação de parâmetro de qualidade de imagem e determina se um parâmetro de qualidade de imagem já foi codificado no bloco mínimo de controle de qualidade de imagem. Se no parâmetro de qualidade de imagem for determinado que não foi codificado (NÃO na etapa S302), a CPU 901 realiza as etapas S107 e S108. Se um parâmetro de qualidade de imagem for determinado como sendo codificado (SIM na etapa S302), a CPU 901 termina o parâmetro de qualidade de imagem processamento de codificação.
[00129] Uma diferença entre a presente modalidade exemplificadora e a primeira modalidade exemplificadora será descrita. Na primeira modalidade exemplificadora, o código QP_DELTA é embutido como dados que acompanham um bloco-alvo (um conjunto de blocos divisionais) se "o bloco-alvo estiver dividido e o tamanho do bloco-alvo for igual ao tamanho de bloco mínimo de controle de qualidade de imagem". Na presente modalidade exemplificadora, o código QP_DELTA é adicionado a um bloco superior esquerdo, que é o primeiro bloco em um bloco-alvo, se "o bloco-alvo estiver dividido e o tamanho do bloco-alvo for igual ao tamanho de bloco mínimo de controle de qualidade de imagem". Na presente modalidade exemplificadora, o tamanho de bloco mínimo de controle de qualidade de imagem é 16. Suponha que os blocos divididos conforme ilustrado na Figura 20 constituem um fluxo. Em tal caso, o código QP_DELTA é inserido imediatamente antes de partes de dados de coeficiente codificados de comprimento variável que correspondem aos blocos sombreados números 0, 1, 7, 5, 6, 8, 9, 13, 14 e 15. Em outras palavras, o código QP_DELTA acompanha blocos de 16 x 16 pixels ou maiores. Se um bloco de 16 x 16 pixels for dividido, o código QP_DELTA acompanha o bloco superior esquerdo de 8 x 8 pixels, isto é, o primeiro bloco subdividido do bloco de 16 x 16 pixels.
[00130] A presente modalidade exemplificadora pode, portanto, fornecer os mesmos efeitos que aqueles da primeira modalidade exemplificadora, enquanto os procedimentos e as estruturas de dados têm conceitos diferentes. Em outra configuração possível, nenhum parâmetro de qualidade de imagem é codificado a não ser que os coeficientes de quantização tenham um valor diferente de zero. Se um bloco superior esquerdo em um bloco-alvo não incluir nenhum coeficiente de quantização de um valor diferente de zero, um parâmetro de qualidade de imagem é fixado a um primeiro bloco divisional estruturalmente subsequente no qual um coeficiente de quantização tem um valor diferente de zero. Na etapa S301 da presente modalidade exemplificadora, a CPU 901 calcula e obtém informações de estado de codificação de parâmetro de qualidade de imagem a partir do tamanho e posição do bloco-alvo a ser codificado. Entretanto, isso não é restritivo. Por exemplo, um sinalizador pode ser fornecido, o qual indica se um parâmetro de qualidade de imagem é codificado em um tamanho de bloco mínimo de controle de qualidade de imagem. O sinalizador é reinicializado cada vez que o processamento de divisão de um bloco mínimo de controle de qualidade de imagem é realizado e configurado cada vez que um parâmetro de qualidade de imagem é codificado. Para obter informações de estado de codificação de parâmetro de qualidade de imagem, a CPU 901 se refere ao sinalizador. Se o sinalizador for reinicializado, a CPU 901 obtém informações de que nenhum parâmetro de qualidade de imagem é codificado. Se o sinalizador for configurado, a CPU 901 obtém informações de que um parâmetro de qualidade de imagem é codificado.
[00131] Um método de decodificação de um parâmetro de qualidade de imagem, de acordo com uma quarta modalidade exemplificadora da presente invenção, será descrito com referência à Figura 4. A não ser que especificado de outro modo, a configuração para realizar o método de decodificação e a operação das etapas são iguais àqueles da segunda modalidade exemplificadora. Na presente modalidade exemplificadora, um bloco que inclui um bloco-alvo e tem o mesmo tamanho que um tamanho de bloco mínimo de controle de qualidade de imagem será definido como um bloco mínimo de controle de qualidade de imagem. As informações que indicam se um parâmetro de qualidade de imagem é decodificado em um bloco mínimo de controle de qualidade de imagem serão definidas como informações de estado de parâmetro de qualidade de imagem decodificação.
[00132] A Figura 4 ilustra um procedimento para a decodificação de um parâmetro de qualidade de imagem. A Figura 4 é um fluxograma detalhado do procedimento de decodificação de parâmetro de qualidade de imagem a ser realizado na etapa S1802 da Figura 18. Esse procedimento é realizado no lugar do procedimento de decodificação de parâmetro de qualidade de imagem ilustrado na Figura 2. Na etapa S401, a CPU 901 obtém informações de estado de parâmetro de qualidade de imagem decodificação. Na etapa S402, a CPU 901 se refere às informações de estado de parâmetro de qualidade de imagem decodificação e determina se um parâmetro de qualidade de imagem já foi decodificado em um bloco mínimo de controle de qualidade de imagem.
[00133] O procedimento das etapas será descrito abaixo. Na etapa S204, a CPU 901 determina o valor do sinalizador de divisão de bloco. Se o valor do sinalizador de divisão de bloco for "0", que indica que o bloco não está dividido (NÃO na etapa S204), a CPU 901 realiza a etapa S205 como na segunda modalidade exemplificadora. Se o valor do sinalizador de divisão de bloco for "1", que indica que o bloco está dividido (SIM na etapa S204), a CPU 901 termina o processamento de decodificação de parâmetro de qualidade de imagem, diferentemente da segunda modalidade exemplificadora.
[00134] Na etapa S205, como na segunda modalidade exemplificadora, a CPU 901 determina se o tamanho do bloco-alvo e maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for determinado como maior ou igual (SIM na etapa S205), a CPU 901 prossegue para a etapa S207. Na etapa S207, a CPU 901 decodifica um parâmetro de qualidade de imagem como a segunda modalidade exemplificadora. Se não (NÃO na etapa S205), a CPU 901 realiza as etapas S401 e S402.
[00135] Na etapa S401, a CPU 901 obtém informações de estado de parâmetro de qualidade de imagem decodificação. Na presente modalidade exemplificadora, o tamanho de bloco mínimo de controle de qualidade de imagem é 16. Se o bloco-alvo for um bloco superior esquerdo de 8 x 8 pixels, segue que a CPU 901 obtém informações de que nenhum parâmetro de qualidade de imagem é decodificado. Se o bloco-alvo for um bloco superior direito, inferior esquerdo ou inferior direito de 8 x 8 pixels, um parâmetro de qualidade de imagem já foi decodificado em um bloco superior esquerdo de 8 x 8 pixels. Em tal caso, a CPU 901 obtém informações de que um parâmetro de qualidade de imagem é decodificado.
[00136] Na etapa S402, a CPU 901 se refere às informações de estado de parâmetro de qualidade de imagem decodificação e determina se um parâmetro de qualidade de imagem já foi decodificado no bloco mínimo de controle de qualidade de imagem. Se nenhum parâmetro de qualidade de imagem foi decodificado (NÃO na etapa S402), a CPU 901 realiza a etapa S207. Se um parâmetro de qualidade de imagem foi decodificado (SIM na etapa S402), a CPU 901 termina o processamento de decodificação de parâmetro de qualidade de imagem.
[00137] Na presente modalidade exemplificadora, decodificar, de fato, ou não um parâmetro de qualidade de imagem é controlado com base na condição para comparar um tamanho do bloco-alvo no qual o parâmetro de qualidade de imagem é codificado e o tamanho de bloco mínimo de controle de qualidade de imagem, e a condição de determinação para determinar se o parâmetro de qualidade de imagem já foi decodificado no bloco mínimo de controle de qualidade de imagem. Tal modo permite a decodificação de um fluxo que é gerado pelo método de codificação descrito na terceira modalidade exemplificadora. O método de codificação pode empregar uma configuração de modo que nenhum parâmetro de qualidade de imagem seja codificado a não ser que coeficientes de quantização tenham um valor diferente de zero. Em tal caso, o método de decodificação pode empregar uma configuração similar. Se um bloco superior esquerdo em um bloco-alvo não incluir nenhum coeficiente de quantização de um valor diferente de zero, um parâmetro de qualidade de imagem é decodificado em um primeiro bloco divisional estruturalmente subsequente, no qual um coeficiente de quantização tem um valor diferente de zero.
[00138] Na etapa S401 da Figura 4, de acordo com presente modalidade exemplificadora, a CPU 901 calcula e obtém informações de estado de parâmetro de qualidade de imagem decodificação a partir do tamanho e posição do bloco-alvo a ser decodificado. Entretanto, isso não é restritivo. Por exemplo, um sinalizador pode ser fornecido, o qual indica se um parâmetro de qualidade de imagem é decodificado em um tamanho de bloco mínimo de controle de qualidade de imagem. O sinalizador é reinicializado cada vez que o processamento de dividir um bloco mínimo de controle de qualidade de imagem é realizado e configurado cada vez que um parâmetro de qualidade de imagem é decodificado. Para obter informações de estado de parâmetro de qualidade de imagem decodificação, a CPU 901 se refere ao sinalizador. Se o sinalizador for reinicializado, a CPU 901 obtém informações de que nenhum parâmetro de qualidade de imagem está decodificado. Se o sinalizador for configurado, a CPU 901 obtém informações de que um parâmetro de qualidade de imagem está decodificado.
[00139] Um procedimento para codificar dados residuais em um bloco será descrito com referência à Figura 5. Esse procedimento refere-se a um método de codificação de um parâmetro de qualidade de imagem de acordo com uma quinta modalidade exemplificadora da presente invenção. A não ser que especificado de outra forma, a configuração para realizar o método de codificação e a operação das etapas são iguais àqueles da primeira modalidade exemplificadora.
[00140] A Figura 5 ilustra um procedimento para codificar um parâmetro de qualidade de imagem e codificar dados residuais. O procedimento implanta o processamento ilustrado nas Figuras17 e 1. Esse procedimento é chamado a partir da etapa S1306 da Figura 13. Na etapa S501, a CPU 901 obtém um tamanho do bloco-alvo. Na etapa S502, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S503, a CPU 901 calcula os custos quando o bloco-alvo é dividido e quando não é, respectivamente. Na etapa S504, a CPU 901 determina se divide ou não o bloco-alvo. Na etapa S505, a CPU 901 exibe um sinalizador de divisão de bloco configurado como falso. Na etapa S506, a CPU 901 determina se o tamanho do bloco-alvo é ou não maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S507, a CPU 901 calcula um parâmetro de qualidade de imagem. Na etapa S508, a CPU 901 realiza a procedimento para codificar o parâmetro de qualidade de imagem. Na etapa S509, a CPU 901 realiza a previsão e realiza uma transformada ortogonal, quantização, e codificação de comprimento variável. Na etapa S510, a CPU 901 exibe uma configuração de sinalizador de divisão de bloco como verdadeira. Na etapa S511, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S512, a CPU 901 calcula um parâmetro de qualidade de imagem. Na etapa S513, a CPU 901 codifica o parâmetro de qualidade de imagem. Na etapa S514, a CPU 901 processa blocos divisionais incluídos.
[00141] O procedimento de processamento será concretamente descrito abaixo. Na etapa S501, a CPU 901 obtém um tamanho do bloco-alvo. Imediatamente após o presente procedimento ser chamado a partir do procedimento da Figura 13, o bloco-alvo a ser processado é um bloco de treliça em si. Na presente modalidade exemplificadora, o valor do tamanho do bloco-alvo é, mas sem limitações, 64. Conforme o nível da estrutura de quadtree de região descende subsequentemente devido a chamadas recursivas, o valor de tamanho muda para 32, 16 e 8. Note que o número de níveis não é limitado aos mesmos.
[00142] Na etapa S502, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem que é configurado de fora. Na presente modalidade exemplificadora, o valor do tamanho de bloco mínimo de controle de qualidade de imagem é, mas sem limitações, 16.
[00143] Na etapa S503, a CPU 901 calcula os custos quando o bloco está dividido e quando não está, respectivamente. Os custos são calculados com o uso de multiplicadores de Lagrange mencionados acima, assim como características de imagem, estatísticas e comprimentos de código previstos.
[00144] Na etapa S504, a CPU 901 compara os custos com e sem divisão, calculados na etapa S503. Se o custo com divisão de bloco é inferior ao custo sem divisão de bloco (SIM na etapa S504), a CPU 901 realiza etapas S510 a S514. Se não (NÃO na etapa S504), a CPU 901 realiza etapas S505 a S509.
[00145] Na etapa S505, a CPU 901 exibe um sinalizador de divisão de bloco configurado como falso. Na etapa S506, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for maior ou igual (SIM na etapa S506), a CPU 901 realiza etapas S507 a S509. Se não (NÃO na etapa S506), a CPU 901 realiza etapa S509 sem realizar as etapas S507 e S508.
[00146] Na etapa S507, a CPU 901 realiza o controle de taxa no bloco-alvo para calcular um parâmetro de qualidade de imagem. Na etapa S508, a CPU 901 codifica o parâmetro de qualidade de imagem calculado na etapa S507. Na presente modalidade exemplificadora, a CPU 901 determina um valor de diferença entre o parâmetro de qualidade de imagem usado no bloco anterior e o parâmetro de qualidade de imagem calculado na etapa S507 como um valor QP_DELTA. A CPU 901 codifica o valor QP_DELTA determinado por codificação de Golomb em código QP_DELTA, que é o código de parâmetro de qualidade de imagem.
[00147] Na etapa S509, a CPU 901 realiza uma transformada ortogonal, quantização e codificação de comprimento variável em dados residuais para gerar dados de coeficiente codificados. A CPU 901 realiza a quantização ao usar o parâmetro de qualidade de imagem calculado na etapa S507. Se na etapa S506 o tamanho do bloco-alvo for determinado para ser menor que o tamanho de bloco mínimo de controle de qualidade de imagem (NÃO na etapa S506), a CPU 901 usa o mesmo parâmetro de qualidade de imagem que aquele usado para a quantização anterior.
[00148] Na etapa S510, a CPU 901 codifica um bloco sinalizador de divisão set como verdadeiro. Na etapa S511, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S511), a CPU 901 realiza etapas S512 a S514. Se não (NÃO na etapa S511), a CPU 901 realiza etapa S514 sem realizar as etapas S512 e S513.
[00149] Na etapa S512, a CPU 901 realiza processamento de controle de taxa para calcular um parâmetro de qualidade de imagem com o qual codificar o bloco-alvo. Todos os blocos divisionais incluídos são submetidos ao controle de taxa. Os blocos divisionais incluídos são codificados com o mesmo parâmetro de qualidade de imagem.
[00150] Na etapa S513, a CPU 901 realiza a mesma operação que na etapa S508 para codificar o parâmetro de qualidade de imagem calculado na etapa S512. Na etapa S514, a CPU 901 realiza de modo recursivo o presente procedimento em quatro blocos divisionais (superior esquerdo, superior direito, inferior esquerdo e inferior direito) que são incluídos no nível hierarquicamente subsequente. Os blocos divisionais têm cada um, um tamanho 1/2 daquele do bloco-alvo original, tanto em altura como em largura. O tamanho do bloco-alvo diminui divisão após divisão. Tal processamento recursivo pode ser realizado até um tamanho de bloco tão pequeno quando 8 x 8 pixels. Pelo processamento recursivo, código de sinalizador de divisão, código QP_DELTA e dados de coeficiente nos respectivos blocos divisionais são exibidos como um fluxo em uma ordem estrutural, conforme ilustrado na Figura 16.
[00151] Conforme descrito acima, o processamento de controle de taxa e o parâmetro de qualidade de imagem processamento de codificação podem ser integrados uns aos outros. Mesmo tal configuração permite o controle de qualidade de imagem em unidades mais finas, como o método de codificação de um parâmetro de qualidade de imagem descrito na terceira modalidade exemplificadora.
[00152] Um método de decodificação de um parâmetro de qualidade de imagem, de acordo com uma sexta modalidade exemplificadora da presente invenção, será descrito com referência à Figura 6.
[00153] A Figura 6 ilustra um procedimento para a decodificação de um parâmetro de qualidade de imagem. Esse procedimento é aplicado à etapa S1405 da Figura 14. Na etapa S601, a CPU 901 obtém o tamanho de um bloco-alvo para decodificar. Na etapa S602, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S603, a CPU 901 decodifica um bloco sinalizador de divisão. Na etapa S604, a CPU 901 determina se o bloco-alvo a ser decodificado está dividido. Na etapa S605, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S606, a CPU 901 decodifica um parâmetro de qualidade de imagem. Na etapa S607, a CPU 901 realiza decodificação de comprimento variável, quantização inversa e uma transformada ortogonal inversa. Na etapa S608, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S609, a CPU 901 decodifica um parâmetro de qualidade de imagem. Na etapa S610, a CPU 901 chama recursivamente o presente procedimento para decodificação, alvejado para blocos divisionais incluídos.
[00154] O procedimento das etapas será descrito concretamente abaixo. Na etapa S601, a CPU 901 obtém o tamanho de um bloco-alvo para decodificar. Imediatamente após o presente procedimento ser chamado a partir do procedimento da Figura 14, o bloco-alvo a ser processado é um bloco de treliça em si. Na presente modalidade exemplificadora, um bloco de treliça tem, mas sem limitações, um valor de tamanho de 64. Conforme o nível da estrutura de quadtree de região descende subsequentemente devido às chamadas recursivas, o valor de tamanho muda para 32, 16 e 8. Note que o número de níveis não se limita aos mesmos.
[00155] Na etapa S602, a CPU 901 obtém um tamanho de bloco mínimo de controle de qualidade de imagem. Na presente modalidade exemplificadora, a CPU 901 obtém o tamanho de bloco mínimo de controle de qualidade de imagem que está embutido nas informações de cabeçalho de quadro.
[00156] Na etapa S603, a CPU 901 obtém o estado de divisão do bloco. Na presente modalidade exemplificadora, a CPU 901 se refere ao valor do sinalizador de divisão de bloco que é decodificado na etapa S1801 da Figura 18.
[00157] Na etapa S604, a CPU 901 determina se o valor do sinalizador de divisão de bloco é verdadeiro ou falso. Se falso (NÃO na etapa S604), a CPU 901 realiza etapas S605 a S607. Se verdadeiro (SIM na etapa S604), a CPU 901 realiza etapas S608 a S610.
[00158] Na etapa S605, a CPU 901 determina se o tamanho do bloco-alvo é maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for maior ou igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S605), a CPU 901 realiza etapas S606 e S607. Se não (NÃO na etapa S605), a CPU 901 realiza a etapa S607 sem realizar a etapa S606.
[00159] Na etapa S606, a CPU 901 decodifica código de parâmetro de qualidade de imagem. Na presente modalidade exemplificadora, a CPU 901 decodifica o código QP_DELTA em um valor QP_DELTA por decodificação de Golomb. A CPU 901 acrescenta, então, o valor QP_DELTA a um parâmetro de qualidade de imagem que é usado na quantização inversa anterior, gerando, assim, um parâmetro de qualidade de imagem.
[00160] Na etapa S607, a CPU 901 realiza decodificação de comprimento variável, quantização inversa e uma transformada ortogonal inversa. Para a quantização inversa, a CPU 901 usa o parâmetro de qualidade de imagem decodificado na etapa S606. Se o tamanho do bloco-alvo for menor que o tamanho de bloco mínimo de controle de qualidade de imagem (NÃO na etapa S608), a CPU 901 usa o parâmetro de qualidade de imagem que é usado para quantizar inversamente o bloco-alvo anterior. Subsequentemente, a CPU 901 termina a decodificação do bloco-alvo.
[00161] Na etapa S608, a CPU 901 determina se o tamanho do bloco-alvo é igual ao tamanho de bloco mínimo de controle de qualidade de imagem. Se o tamanho do bloco-alvo for igual ao tamanho de bloco mínimo de controle de qualidade de imagem (SIM na etapa S608), a CPU 901 realiza etapa S609. Se não (NÃO na etapa S608), a CPU 901 prossegue para a etapa S610 sem realizar a etapa S609.
[00162] Na etapa S609, a CPU 901 decodifica o código de parâmetro de qualidade de imagem como na etapa S606. Na etapa S610, a CPU 901 realiza de modo recursivo o presente procedimento em quatro blocos divisionais (superior esquerdo, superior direito, inferior esquerdo e inferior direito) que estão incluídos no nível hierarquicamente subsequente. Os blocos divisionais têm, cada um, um tamanho 1/2 daquele do bloco-alvo original, ambos em altura e largura. O tamanho do bloco-alvo diminui divisão após divisão. Por tal processamento recursivo, a CPU 901 decodifica o código de sinalizador de divisão, código de QP_DELTA, e dados de coeficiente em cada bloco divisional na ordem da estrutura de quadtree de região conforme ilustrado na Figura 16.
[00163] Conforme descrito acima, o processamento recursivo para a varredura da estrutura de quadtree de região e o processamento de decodificação de parâmetro de qualidade de imagem podem estar integrados um ao outro. Mesmo tal configuração pode decodificar um fluxo que é codificado pelo método de codificação de acordo com a primeira modalidade exemplificadora ou a quinta modalidade exemplificadora.
[00164] Uma sétima modalidade exemplificadora da presente invenção lida com um método de codificação de bloco divisional. O método de codificação de bloco divisional, de acordo com a presente modalidade exemplificadora, é implantado pelo uso da configuração ilustrada na Figura 9.
[00165] Anteriormente à codificação, a CPU 901 configura um perfil e um nível. Perfis descrevem características de um fluxo a ser gerado na presente modalidade exemplificadora. Níveis são um conjunto de parâmetros que são permissíveis, dependendo do desempenho de processamento do decodificador. Já que o desempenho de processamento depende, principalmente, do tamanho da imagem, os níveis são definidos para os respectivos tamanhos de imagem. Entretanto, as unidades de definição de nível não são limitadas a tamanhos de imagens. Por exemplo, níveis podem ser configurados de acordo com o número de blocos de treliça a serem processados porque o desempenho de processamento depende do número. Na presente modalidade exemplificadora, os tamanhos de bloco mínimos de controle de qualidade de imagem são configurados para um valor mínimo em cada nível. As Figuras 21A e 21B ilustram tabelas que definem os tamanhos de bloco mínimos de controle de qualidade de imagem limitados por perfil e por nível.
[00166] A presente modalidade exemplificadora lida com um caso em que o perfil inclui um perfil de linha de base que usa apenas ferramentas básicas e um perfil principal que usa outras ferramentas. Entretanto, os perfis não são limitados a isso.
[00167] A Figura 21A ilustra uma tabela que mostra os níveis e os limites de tamanhos de bloco mínimos de controle de qualidade de imagem no perfil de linha de base. A Figura 21B ilustra uma tabela que mostra níveis e os limites de tamanhos de bloco mínimos de controle de qualidade de imagem no perfil principal.
[00168] Na presente modalidade exemplificadora, níveis são classificados pelo número máximo de blocos de treliça (64 x 64 pixels) incluídos em um quadro. Especificamente, o nível 1 é destinado para imagens relativamente pequenas, como 640 x 480 pixels. O nível 2 é destinado para imagens de tamanho médio de 1.920 x 1.080 pixels. O nível 3 é destinado para imagens grandes de 4.096 x 2.160 pixels. Deve-se notar que o número de níveis e as classificações de nível não limitam o escopo da presente invenção.
[00169] O perfil de linha de base ilustrado na Figura 21A será descrito. O nível 1 mostra que o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem é 8 e os tamanhos de bloco mínimos de controle de qualidade de imagem podem ser configurados na faixa de 8 a 64. O nível 2 mostra que o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem é 16 e os tamanhos de bloco mínimos de controle de qualidade de imagem podem ser configurados na faixa de 16 a 64. O nível 3 mostra que o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem é 32 e os tamanhos de bloco mínimos de controle de qualidade de imagem podem ser configurados na faixa de 32 a 64. O perfil principal ilustrado na Figura 21B mostra que tamanhos de bloco mínimos de controle de qualidade de imagem são controlados com a faixa de 8 a 64 independentemente do nível.
[00170] A CPU 901 determina o perfil e o nível dependendo das condições de um método de codificação ou aparelho, como ferramentas e capacidades de memória, e/ou levando em consideração um método ou aparelho de decodificação. Entretanto, o método para determinar o perfil e o nível não é limitado em particular. Um usuário não ilustrado pode configurar um perfil e um nível. O perfil e o nível determinados podem ser codificados, incluídos em um cabeçalho de sentença que descreve informações em toda uma imagem em movimento e exibir, a partir da interface de comunicação 905. Tal perfil e nível podem ser gravados no HDD 903.
[00171] A seguir, um procedimento para a codificação de quadros será descrito. Na etapa S1301 da Figura 13, como a primeira modalidade exemplificadora, a CPU 901 configura, inicialmente, um parâmetro de um tamanho de bloco mínimo de controle de qualidade de imagem. A Figura 22 é um fluxograma que ilustra um método para calcular um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S2201, a CPU 901 determina um tipo de perfil. Se o tipo de perfil for um perfil de linha de base (PERFIL DE LINHA DE BASE na etapa S2202), a CPU 901 realiza a etapa S2204 e as etapas subsequentes. Se o tipo de perfil for um perfil principal (PERFIL PRINCIPAL na etapa S2202), a CPU 901 realiza a etapa S2203.
[00172] O caso com o perfil principal será descrito primeiramente. Na etapa S2203, a CPU 901 configura o tamanho de bloco mínimo de controle de qualidade de imagem para 8. A CPU 901, então, termina o processamento.
[00173] A seguir, o caso com o perfil de linha de base será descrito. Na etapa S2204, a CPU 901 obtém um valor de nível. Na presente modalidade exemplificadora, o valor de nível é calculado de acordo com um tamanho de imagem de entrada. O valor de nível indica um nível mínimo no qual um fluxo do tamanho de imagem de entrada pode ser decodificado.
[00174] Na etapa S2205, a CPU 901 determina se o valor de nível é 1. Se a determinação for verdadeira (SIM na etapa S2205), a CPU 901 realiza a etapa S2206. Se a determinação for falsa (NÃO na etapa S2205), a CPU 901 realiza etapa S2207. Na etapa S2206, a CPU 901 configura o tamanho de bloco mínimo de controle de qualidade de imagem para 8. Na etapa S2207, a CPU 901 determina se o valor de nível é 2. Se a determinação for verdadeira (SIM na etapa S2207), a CPU 901 realiza a etapa S2208. Se a determinação for falsa (NÃO na etapa S2207), a CPU 901 realiza a etapa S2209. Na etapa S2208, a CPU 901 configura o tamanho de bloco mínimo de controle de qualidade de imagem para 16. Na etapa S2209, a CPU 901 configura o tamanho de bloco mínimo de controle de qualidade de imagem para 32.
[00175] Então, a CPU 901 volta para o processo ilustrado na Figura 13. Na etapa S1302, como a primeira modalidade exemplificadora, a CPU 901 codifica o tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S1303, a CPU 901 gera informações de cabeçalho de quadro, incluindo os dados codificados. A Figura 23A ilustra o fluxo de bit gerado. Um cabeçalho de sequência inclui dados codificados em um perfil e um nível, seguido por códigos que indicam tamanho de imagem. Um cabeçalho de quadro em cada parte do quadro data includes código de tamanho de bloco mínimo de controle de qualidade de imagem, com uma configuração de tamanho maior ou igual ao valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem definido na Figura 21A.
[00176] A Figura 24 é um fluxograma que ilustra todo um procedimento. Na etapa S2401, a CPU 901 insere o tamanho de uma imagem a ser codificada. Na etapa S2402, a CPU 901 seleciona um perfil. A CPU 901 também seleciona um nível de acordo com a Figura 21A ou 21B. Na etapa S2403, a CPU 901 obtém o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem, de acordo com o nível selecionado. Na etapa S2404, a CPU 901 codifica o perfil e nível selecionados. Na etapa S2405, a CPU 901 gera um cabeçalho de sequência que inclui os dados codificados no perfil e nível. Na etapa S2406, a CPU 901 realiza codificação em unidades de quadros. Tamanhos possíveis de blocos mínimos de controle de qualidade de imagem em cada quadro são maiores ou iguais àqueles do valor mínimo anterior de um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S2407, a CPU 901 determina se todos os quadros são codificados. Se todos os quadros não forem codificados (NÃO na etapa S2407), a CPU 901 prossegue para a etapa S2406 para codificar um próximo quadro. Se todos os quadros forem codificados (SIM na etapa S2407), a CPU 901 termina o processamento de codificação.
[00177] A provisão de perfis e níveis e a limitação de tamanhos de bloco mínimos de controle de qualidade de imagem permite a determinação de tamanhos de bloco mínimos de controle de qualidade de imagem dependendo do tamanho de imagem. É, portanto, possível codificar uma imagem enquanto se omite operações em blocos menores sem causar uma diminuição na qualidade de imagem. Isso permite a designação de um circuito ótimo para um aparelho destinado e a designação de uma configuração para suprimir certo consumo de energia. Por exemplo, um perfil de linha de base pode ser usado para comunicações móveis, de modo que restrições de carga severas possam ser impostas sobre operações de codificação tendo em vista o tempo de execução da bateria. Um perfil principal pode ser usado para aparelhos estacionários sem bateria, em que restrições menos restritas são impostas na carga de operação. Em termos de software, o tempo de operação para a realização do controle de quantização em blocos menores que tamanhos de bloco mínimos de controle de qualidade de imagem pode ser omitido para o aumento de velocidade.
[00178] Será compreendido que um perfil e método de codificação com base em nível, como a presente modalidade exemplificadora, pode ser aplicado as terceira e quinta modalidades exemplificadoras.
[00179] Os valores mínimos de um tamanho de bloco mínimo de controle de qualidade de imagem determinado para os respectivos níveis, ilustrados nas Figuras 21A e 21B, podem sempre ser usados nos respectivos níveis. Em tal caso, o código de tamanho de bloco mínimo de controle de qualidade de imagem a ser incluído em cada quadro pode ser omitido. A Figura 23B ilustra tal fluxo de bit. O fluxo de bit ilustrado na Figura 23B difere daquele ilustrado na Figura 23A no que o cabeçalho de quadros não inclui nenhum código de tamanho de bloco mínimo de controle de qualidade de imagem. Os tamanhos de bloco mínimos de controle de qualidade de imagem na sequência são fixados ao valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem que é definido para o perfil e nível. Isso fornece o efeito de remoção de código redundante para uma eficiência de codificação melhorada.
[00180] Capacidades de memória para armazenar matrizes de quantização menores que o tamanho de bloco mínimo de controle de qualidade de imagem e processamento para atualizar tais matrizes de quantização também podem ser omitidas.
[00181] Uma oitava modalidade exemplificadora da presente invenção lida com um método de decodificação de imagem para a decodificação de um fluxo de bit que é gerado na sétima modalidade exemplificadora. O método de decodificação de imagem, de acordo com a presente modalidade exemplificadora, é implantado com o uso da configuração ilustrada na Figura 9.
[00182] Anteriormente à decodificação de quadros, a CPU 901 insere e decodifica um cabeçalho de sequência. A CPU 901 decodifica o código relacionado a um perfil e nível, de acordo com a Figura 23A. A CPU 901 também decodifica o código de largura de imagem e o código de altura de imagem. Se o perfil decodificado for um perfil de linha de base, a CPU 901 se refere à tabela da Figura 21A. A CPU 901 seleciona, ainda, e determina o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem correspondente ao nível. Se o perfil decodificado for um perfil principal, a CPU 901 se refere à tabela da Figura 21B e configura o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem para 8.
[00183] Nesse ponto no tempo, a CPU 901 reserva armazenamentos temporários e outras memórias necessárias na RAM 902. Por exemplo, com um perfil de linha de base in nível 2, nenhum controle de qualidade de imagem será realizado em um tamanho de bloco de 8 x 8 pixels. Em tal caso, áreas da memória para armazenar parâmetros de qualidade de imagem em unidades de blocos de pixel de 8x8 e 4x4 podem ser omitidas.
[00184] A CPU 901 decodifica quadros de acordo com o fluxograma da Figura 14, que foi descrito na segunda modalidade exemplificadora. Na etapa S1402, a CPU 901 decodifica um tamanho de bloco mínimo de controle de qualidade de imagem incluído em um cabeçalho de quadro. Na etapa S1405, a CPU 901 realiza decodificação hierárquica com um bloco de treliça como um bloco-alvo. Na etapa S1805 da Figura 18 descrita na segunda modalidade exemplificadora, a CPU 901 realiza processamento recursivo de acordo com níveis hierárquicos, portanto, decodifica parâmetros de controle de qualidade de imagem até blocos do tamanho de bloco mínimo de controle de qualidade de imagem.
[00185] A Figura 25 é um fluxograma que ilustra um procedimento inteiro. Na etapa S2501, a CPU 901 insere um cabeçalho de sequência. Na etapa S2502, a CPU 901 decodifica dados codificados em um perfil e um nível, obtendo, assim, o perfil e o nível. Na etapa S2503, a CPU 901 obtém o valor mínimo de um tamanho de bloco mínimo de controle de qualidade de imagem, de acordo com o nível selecionado. Na etapa S2504, a CPU 901 realiza decodificação em unidades de quadros. Isso garante que tamanhos possíveis de blocos mínimos de controle de qualidade de imagem em cada quadro sejam maiores ou iguais ao valor mínimo anterior de um tamanho de bloco mínimo de controle de qualidade de imagem. Na etapa S2505, a CPU 901 determina se todos os quadros são decodificados. Se nem todos os quadros forem decodificados (NÃO na etapa S2505), a CPU 901 prossegue para a etapa S2504 para decodificar um próximo quadro. Se todos os quadros forem decodificados (SIM na etapa S2505), a CPU 901 termina o processamento de decodificação.
[00186] O fornecimento de perfis e níveis e a limitação de tamanhos de bloco mínimos de controle de qualidade de imagem permite a determinação de tamanhos de bloco mínimos de controle de qualidade de imagem, dependendo do tamanho de imagem. É, portanto, possível decodificar uma imagem enquanto se omite as operações em blocos menores sem causar uma diminuição na qualidade de imagem. A determinação de tamanhos de bloco mínimos de controle de qualidade de imagem pode reduzir o número de vezes de processamento recursivo, enquanto variações no tempo para realizar a decodificação em unidades de blocos de treliça podem ser suprimidas.
[00187] Consequentemente, é possível projetar um circuito ótimo para um aparelho destinado e projetar uma configuração para suprimir certo consumo de energia. Por exemplo, um perfil de linha de base pode ser usado para comunicações móveis, de modo que restrições de carga severas possam ser impostas sobre as operações de codificação em vista do tempo de execução de bateria. Um perfil principal pode ser usado para aparelhos estacionários desprovidos de bateria, enquanto restrições menos severas são impostas à carga de operação. Em termos de software, o tempo de operação para a realização do controle de quantização em blocos menores que tamanhos de bloco mínimos de controle de qualidade de imagem pode ser omitido para a aceleração.
[00188] Será compreendido que a CPU 901 pode decodificar códigos relacionados a perfil e nível, de acordo com a Figura 23B. Como na descrição anterior, a CPU 901 insere e decodifica um cabeçalho de sequência. De acordo com o perfil e nível resultantes, a CPU 901 determina um tamanho de bloco mínimo de controle de qualidade de imagem conforme descrito acima. Ao decodificar quadros, a CPU 901 pula a etapa S1402 e usa o tamanho de bloco mínimo de controle de qualidade de imagem.
[00189] A determinação única de um tamanho de bloco mínimo de controle de qualidade de imagem, de acordo com o perfil e o nível torna a decodificação de imagem possível sem o código de tamanho de bloco mínimo de controle de qualidade de imagem em cada cabeçalho de quadro.
[00190] A CPU 901 pode comparar um tamanho de bloco mínimo de controle de qualidade de imagem decodificado com um tamanho de bloco mínimo de controle de qualidade de imagem que é determinado pelo perfil e nível. Se o último for maio que o primeiro, a CPU 901 pode detectar o fluxo de bit para um erro.
[00191] Embora a presente invenção tenha sido descrita com referência a modalidades exemplificadoras, deve-se compreender que a invenção não é limitada às modalidades exemplificadoras apresentadas. O escopo das reivindicações a seguir deve ser compreendido como a interpretação mais ampla, de modo a abranger todas as modificações, estruturas e funções equivalentes.
[00192] Este pedido de patente reivindica prioridade sobre o Pedido de Patente n° JP 2011-004648 depositado em 13 de janeiro de 2011, que está incorporado ao presente documento a título de referência em sua totalidade.
Claims (6)
1. Aparelho de codificação de imagem caracterizado pelo fato de que compreende: um unidade de codificação de informação configurada para codificar informações sobre um tamanho mínimo de área relacionado a um parâmetro de quantização; e uma unidade de codificação configurada para codificar, usando codificação de Golomb, um valor de diferença para um parâmetro de quantização capaz de ser compartilhado em processos de codificação para um grupo de blocos incluindo uma pluralidade de blocos, em que um tamanho de cada bloco da pluralidade de blocos é menor do que o tamanho mínimo de área, em que a pluralidade de blocos inclui pelo menos ambos um primeiro bloco e um segundo bloco processado subsequentemente ao primeiro bloco, em que a unidade de codificação é configurada para codificar o valor de diferença no processamento do primeiro bloco, em um caso em que o primeiro bloco contém um valor de coeficiente diferente de 0, e em que a unidade de codificação é configurada para codificar o valor de diferença no processamento do segundo bloco, em um caso em que o segundo bloco contém um valor de coeficiente diferente de 0 e o valor de diferença não foi codificado no processamento do primeiro bloco.
2. Aparelho de decodificação de imagem configurado para decodificar dados codificados gerados pela codificação de dados de imagem, o aparelho de decodificação de imagem caracterizado pelo fato de que compreende: uma unidade de aquisição configurada para adquirir informações sobre um tamanho mínimo de área relacionado a um parâmetro de quantização; e uma unidade de decodificação configurada para decodificar, usando decodificação de Golomb, um valor de diferença para um parâmetro de quantização capaz de ser compartilhado em processos de decodificação para um grupo de blocos incluindo uma pluralidade de blocos, em que um tamanho de cada bloco da pluralidade de blocos é menor que o tamanho mínimo da área, em que a pluralidade de blocos inclui pelo menos ambos um primeiro bloco e um segundo bloco processado subsequentemente ao primeiro bloco, em que a unidade de decodificação é configurada para decodificar o valor de diferença no processamento do primeiro bloco, em um caso em que o primeiro bloco contém um valor de coeficiente diferente de 0, e em que a unidade de decodificação é configurada para decodificar o valor de diferença no processamento do segundo bloco, em um caso em que o segundo bloco contém um valor de coeficiente diferente de 0 e o valor de diferença não foi decodificado no processamento do primeiro bloco.
3. Método de codificação de imagem caracterizado pelo fato de que compreende: codificar informações sobre um tamanho mínimo de área relacionado a um parâmetro de quantização; e codificar, usando codificação de Golomb, um valor de diferença para um parâmetro de quantização capaz de ser compartilhado em processos de codificação para um grupo de blocos incluindo uma pluralidade de blocos, em que um tamanho de cada bloco da pluralidade de blocos é menor do que o tamanho mínimo de área, em que a pluralidade de blocos inclui pelo menos ambos um primeiro bloco e um segundo bloco processado subsequentemente ao primeiro bloco, em que a codificação de um valor de diferença compreende codificar o valor de diferença no processamento do primeiro bloco, em um caso em que o primeiro bloco contém um valor de coeficiente diferente de 0, e em que a codificação de um valor de diferença compreende codificar o valor de diferença no processamento do segundo bloco, em um caso em que o segundo bloco contém um valor de coeficiente diferente de 0 e o valor de diferença não foi codificado no processamento do primeiro bloco.
4. Método de decodificação de imagem para decodificar dados codificados gerados pela codificação de dados de imagem, caracterizado pelo fato de que compreende: adquirir informações sobre um tamanho mínimo de área relacionado a um parâmetro de quantização; e decodificar, usando decodificação de Golomb, um valor de diferença para um parâmetro de quantização capaz de ser compartilhado em processos de decodificação para um grupo de blocos incluindo uma pluralidade de blocos, em que um tamanho de cada bloco da pluralidade de blocos é menor que o tamanho mínimo da área, em que a pluralidade de blocos inclui pelo menos ambos um primeiro bloco e um segundo bloco processado subsequentemente ao primeiro bloco, em que a decodificação compreende decodificar o valor de diferença no processamento do primeiro bloco, em um caso em que o primeiro bloco contém um valor de coeficiente diferente de 0, e em que a decodificação compreende decodificar o valor de diferença no processamento do segundo bloco, em um caso em que o segundo bloco contém um valor de coeficiente diferente de 0 e o valor de diferença não foi decodificado no processamento do primeiro bloco.
5. Meio de armazenamento, caracterizado por armazenar instruções para fazer com que um computador execute o método definido na reivindicação 3.
6. Meio de armazenamento, caracterizado por armazenar instruções para fazer com que um computador execute o método definido na reivindicação 4.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011004648 | 2011-01-13 | ||
JP2011-004648 | 2011-01-13 | ||
BR112013017952-0A BR112013017952B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho e método de codificação de imagem e aparelho e método de decodificação de imagem |
PCT/JP2012/000151 WO2012096181A1 (en) | 2011-01-13 | 2012-01-12 | Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
BR122019025406A2 BR122019025406A2 (pt) | 2020-02-18 |
BR122019025406B1 true BR122019025406B1 (pt) | 2023-03-21 |
Family
ID=46507086
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122019025407A BR122019025407B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
BR122022013139-5A BR122022013139B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho e método de decodificação de imagem |
BR122019025406-0A BR122019025406B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
BR112013017952-0A BR112013017952B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho e método de codificação de imagem e aparelho e método de decodificação de imagem |
BR122019025405A BR122019025405B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
BR122019025404A BR122019025404B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122019025407A BR122019025407B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
BR122022013139-5A BR122022013139B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho e método de decodificação de imagem |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112013017952-0A BR112013017952B1 (pt) | 2011-01-13 | 2012-01-12 | Aparelho e método de codificação de imagem e aparelho e método de decodificação de imagem |
BR122019025405A BR122019025405B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
BR122019025404A BR122019025404B8 (pt) | 2011-01-13 | 2012-01-12 | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
Country Status (11)
Country | Link |
---|---|
US (6) | US9445094B2 (pt) |
EP (5) | EP3668095B1 (pt) |
JP (6) | JP5963446B2 (pt) |
KR (5) | KR101825110B1 (pt) |
CN (6) | CN106412591B (pt) |
BR (6) | BR122019025407B8 (pt) |
ES (5) | ES2924028T3 (pt) |
HU (5) | HUE048896T2 (pt) |
PL (5) | PL3668095T3 (pt) |
RU (5) | RU2613736C2 (pt) |
WO (1) | WO2012096181A1 (pt) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101479129B1 (ko) * | 2009-10-01 | 2015-01-06 | 에스케이텔레콤 주식회사 | 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치 |
BR122019025407B8 (pt) | 2011-01-13 | 2023-05-02 | Canon Kk | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
JP6130128B2 (ja) * | 2012-11-30 | 2017-05-17 | 任天堂株式会社 | 圧縮データのデータ構造、記録媒体、データ圧縮装置、データ圧縮システム、データ圧縮プログラム、およびデータ圧縮方法 |
US20150145535A1 (en) * | 2013-11-26 | 2015-05-28 | Semtech Corporation | Capacitive sensing interface for proximity detection |
JP6528765B2 (ja) * | 2014-03-28 | 2019-06-12 | ソニー株式会社 | 画像復号装置および方法 |
WO2017065422A1 (ko) * | 2015-10-12 | 2017-04-20 | 엘지전자(주) | 영상 처리 방법 및 이를 위한 장치 |
CN109983771A (zh) * | 2016-11-21 | 2019-07-05 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法及解码方法 |
CN116347077A (zh) | 2016-11-21 | 2023-06-27 | 松下电器(美国)知识产权公司 | 计算机可读介质 |
EP3383043A1 (en) | 2017-03-27 | 2018-10-03 | Thomson Licensing | Methods and apparatus for picture encoding and decoding |
WO2019076138A1 (en) * | 2017-10-16 | 2019-04-25 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR ENCODING |
EP3737098A4 (en) * | 2018-01-02 | 2021-06-09 | Samsung Electronics Co., Ltd. | CODING PROCESS AND ASSOCIATED APPARATUS, AND DECODING PROCESS AND ASSOCIATED APPARATUS |
SG11202008036TA (en) | 2018-02-23 | 2020-09-29 | Huawei Technologes Co Ltd | Position dependent spatial varying transform for video coding |
EP3783896B1 (en) * | 2018-05-22 | 2023-07-05 | Panasonic Intellectual Property Corporation of America | Coding device, decoding device, coding method, decoding method, and picture compression program |
EP3782361B1 (en) | 2018-05-31 | 2023-09-20 | Huawei Technologies Co., Ltd. | Spatially varying transform with adaptive transform type |
JP7278719B2 (ja) | 2018-06-27 | 2023-05-22 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US11997275B2 (en) * | 2018-08-27 | 2024-05-28 | AT Technologies ULC | Benefit-based bitrate distribution for video encoding |
CN118175342A (zh) | 2018-09-05 | 2024-06-11 | 华为技术有限公司 | 视频解码方法及视频解码器 |
WO2021005349A1 (en) * | 2019-07-05 | 2021-01-14 | V-Nova International Ltd | Quantization of residuals in video coding |
US11399195B2 (en) * | 2019-10-30 | 2022-07-26 | Tencent America LLC | Range of minimum coding block size in video coding |
CN114697656B (zh) * | 2020-12-31 | 2024-02-13 | 浙江宇视科技有限公司 | 一种编码方法、装置、电子设备及介质 |
CN113658283B (zh) * | 2021-08-18 | 2023-11-28 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69225859T2 (de) * | 1991-10-02 | 1998-12-03 | Matsushita Electric Industrial Co., Ltd., Kadoma, Osaka | Orthogonaltransformationskodierer |
US5754699A (en) * | 1994-11-24 | 1998-05-19 | Victor Company Of Japan, Ltd. | Method of reducing mosquito noise generated during decoding process of image data and device for decoding image data using the same |
US6002802A (en) * | 1995-10-27 | 1999-12-14 | Kabushiki Kaisha Toshiba | Video encoding and decoding apparatus |
US6366614B1 (en) | 1996-10-11 | 2002-04-02 | Qualcomm Inc. | Adaptive rate control for digital video compression |
US6124811A (en) * | 1998-07-02 | 2000-09-26 | Intel Corporation | Real time algorithms and architectures for coding images compressed by DWT-based techniques |
US6480537B1 (en) * | 1999-02-25 | 2002-11-12 | Telcordia Technologies, Inc. | Active techniques for video transmission and playback |
US6477280B1 (en) * | 1999-03-26 | 2002-11-05 | Microsoft Corporation | Lossless adaptive encoding of finite alphabet data |
US6600836B1 (en) * | 2000-01-28 | 2003-07-29 | Qualcomm, Incorporated | Quality based image compression |
AU2003285850A1 (en) | 2002-04-23 | 2004-04-30 | Nokia Corporation | Method and device for indicating quantizer parameters in a video coding system |
US6795584B2 (en) * | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
EP1453004A2 (en) * | 2003-02-28 | 2004-09-01 | NTT DoCoMo, Inc. | Image encoding apparatus and method |
JP3959039B2 (ja) * | 2003-02-28 | 2007-08-15 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム |
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 |
US7724827B2 (en) | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
JP4127818B2 (ja) | 2003-12-24 | 2008-07-30 | 株式会社東芝 | 動画像符号化方法及びその装置 |
US20050259730A1 (en) * | 2004-05-18 | 2005-11-24 | Sharp Laboratories Of America, Inc. | Video coding with residual color conversion using reversible YCoCg |
JP4247680B2 (ja) * | 2004-07-07 | 2009-04-02 | ソニー株式会社 | 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体 |
JP2006157481A (ja) * | 2004-11-30 | 2006-06-15 | Canon Inc | 画像符号化装置及びその方法 |
JP4737991B2 (ja) * | 2005-01-04 | 2011-08-03 | 株式会社東芝 | 再生装置 |
US8019000B2 (en) * | 2005-02-24 | 2011-09-13 | Sanyo Electric Co., Ltd. | Motion vector detecting device |
JP4146444B2 (ja) * | 2005-03-16 | 2008-09-10 | 株式会社東芝 | 動画像符号化の方法及び装置 |
KR101246915B1 (ko) * | 2005-04-18 | 2013-03-25 | 삼성전자주식회사 | 동영상 부호화 또는 복호화 방법 및 장치 |
EP1753242A2 (en) * | 2005-07-18 | 2007-02-14 | Matsushita Electric Industrial Co., Ltd. | Switchable mode and prediction information coding |
JP2007116351A (ja) | 2005-10-19 | 2007-05-10 | Ntt Docomo Inc | 画像予測符号化装置、画像予測復号装置、画像予測符号化方法、画像予測復号方法、画像予測符号化プログラム、及び画像予測復号プログラム |
KR101200865B1 (ko) * | 2006-03-23 | 2012-11-13 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 복호화 방법 및 장치 |
KR20080045516A (ko) * | 2006-11-20 | 2008-05-23 | 삼성전자주식회사 | Rgb 영상의 부호화 및 복호화 방법과 그 장치 |
CA2681025C (en) | 2007-03-20 | 2015-10-13 | Fujitsu Limited | Video encoding and decoding apparatus and method using quantization in sub-blocks |
JP4650461B2 (ja) * | 2007-07-13 | 2011-03-16 | ソニー株式会社 | 符号化装置、符号化方法、プログラム、及び記録媒体 |
US8345763B2 (en) * | 2007-11-27 | 2013-01-01 | Mediatek Inc. | Motion compensation method and integrated circuit utilizing the same |
KR101213704B1 (ko) * | 2007-12-05 | 2012-12-18 | 삼성전자주식회사 | 가변 컬러 포맷 기반 동영상 부호화 방법 및 장치, 그복호화 방법 및 장치 |
JP5359302B2 (ja) * | 2008-03-18 | 2013-12-04 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
JP4506875B2 (ja) * | 2008-05-19 | 2010-07-21 | ソニー株式会社 | 画像処理装置および画像処理方法 |
JP5472105B2 (ja) * | 2008-06-27 | 2014-04-16 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
JP5035910B2 (ja) * | 2008-06-27 | 2012-09-26 | ソニー株式会社 | 画像処理装置および画像処理方法、並びにプログラム |
US9467699B2 (en) * | 2008-12-03 | 2016-10-11 | Hfi Innovation Inc. | Method for performing parallel coding with ordered entropy slices, and associated apparatus |
US9635368B2 (en) * | 2009-06-07 | 2017-04-25 | Lg Electronics Inc. | Method and apparatus for decoding a video signal |
EP2273796A3 (en) * | 2009-06-09 | 2011-12-21 | Thomson Licensing | Method and device for coding |
JP4774451B2 (ja) | 2009-06-25 | 2011-09-14 | 株式会社大潟村あきたこまち生産者協会 | 米麺の製造方法と該方法による米麺と該米麺による乾麺 |
US20110274162A1 (en) | 2010-05-04 | 2011-11-10 | Minhua Zhou | Coding Unit Quantization Parameters in Video Coding |
KR101918904B1 (ko) * | 2010-06-04 | 2019-02-08 | 소니 주식회사 | 화상 처리 장치 및 방법 |
US20110317757A1 (en) * | 2010-06-25 | 2011-12-29 | Qualcomm Incorporated | Intra prediction mode signaling for finer spatial prediction directions |
US8848779B2 (en) * | 2010-07-15 | 2014-09-30 | Sharp Laboratories Of America, Inc. | Method of parallel video coding based on block size |
US20120044992A1 (en) * | 2010-08-17 | 2012-02-23 | Qualcomm Incorporated | Low complexity adaptive filter |
KR102073304B1 (ko) * | 2010-09-30 | 2020-02-04 | 선 페이턴트 트러스트 | 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 프로그램 및 집적 회로 |
US20120114034A1 (en) * | 2010-11-08 | 2012-05-10 | Mediatek Inc. | Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding |
CN105847829B (zh) * | 2010-11-23 | 2019-08-09 | Lg电子株式会社 | 视频编码装置和视频解码装置 |
US9288496B2 (en) * | 2010-12-03 | 2016-03-15 | Qualcomm Incorporated | Video coding using function-based scan order for transform coefficients |
BR122019025407B8 (pt) | 2011-01-13 | 2023-05-02 | Canon Kk | Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento |
CN102685478B (zh) * | 2011-03-11 | 2015-04-29 | 华为技术有限公司 | 编码方法以及装置、解码方法以及装置 |
US9609336B2 (en) * | 2013-04-16 | 2017-03-28 | Fastvdo Llc | Adaptive coding, transmission and efficient display of multimedia (acted) |
US20140376611A1 (en) * | 2013-06-21 | 2014-12-25 | Qualcomm Incorporated | Adaptive color transforms for video coding |
US10291827B2 (en) * | 2013-11-22 | 2019-05-14 | Futurewei Technologies, Inc. | Advanced screen content coding solution |
AU2015228999B2 (en) * | 2014-03-14 | 2018-02-01 | Interdigital Vc Holdings, Inc. | Systems and methods for RGB video coding enhancement |
US9883184B2 (en) * | 2014-10-07 | 2018-01-30 | Qualcomm Incorporated | QP derivation and offset for adaptive color transform in video coding |
US10390020B2 (en) * | 2015-06-08 | 2019-08-20 | Industrial Technology Research Institute | Video encoding methods and systems using adaptive color transform |
-
2012
- 2012-01-12 BR BR122019025407A patent/BR122019025407B8/pt active Search and Examination
- 2012-01-12 ES ES21176055T patent/ES2924028T3/es active Active
- 2012-01-12 US US13/979,617 patent/US9445094B2/en active Active
- 2012-01-12 CN CN201611075975.6A patent/CN106412591B/zh active Active
- 2012-01-12 BR BR122022013139-5A patent/BR122022013139B1/pt active IP Right Grant
- 2012-01-12 HU HUE12734504A patent/HUE048896T2/hu unknown
- 2012-01-12 EP EP20151296.9A patent/EP3668095B1/en active Active
- 2012-01-12 CN CN201611075945.5A patent/CN106454362B/zh active Active
- 2012-01-12 JP JP2012004254A patent/JP5963446B2/ja active Active
- 2012-01-12 KR KR1020157023368A patent/KR101825110B1/ko active IP Right Grant
- 2012-01-12 CN CN201280009709.7A patent/CN103380620B/zh active Active
- 2012-01-12 BR BR122019025406-0A patent/BR122019025406B1/pt active IP Right Grant
- 2012-01-12 RU RU2015113380A patent/RU2613736C2/ru active
- 2012-01-12 HU HUE20151296A patent/HUE055548T2/hu unknown
- 2012-01-12 WO PCT/JP2012/000151 patent/WO2012096181A1/en active Application Filing
- 2012-01-12 BR BR112013017952-0A patent/BR112013017952B1/pt active IP Right Grant
- 2012-01-12 KR KR1020137021091A patent/KR101598822B1/ko active IP Right Grant
- 2012-01-12 CN CN201611075606.7A patent/CN106454361B/zh active Active
- 2012-01-12 KR KR1020187002773A patent/KR101888515B1/ko active IP Right Grant
- 2012-01-12 PL PL20151296T patent/PL3668095T3/pl unknown
- 2012-01-12 KR KR1020187022851A patent/KR101969362B1/ko active IP Right Grant
- 2012-01-12 PL PL20151294.4T patent/PL3668094T3/pl unknown
- 2012-01-12 ES ES20151296T patent/ES2883132T3/es active Active
- 2012-01-12 BR BR122019025405A patent/BR122019025405B8/pt active Search and Examination
- 2012-01-12 ES ES21176051T patent/ES2926203T3/es active Active
- 2012-01-12 EP EP21176055.8A patent/EP3905680B1/en active Active
- 2012-01-12 EP EP21176051.7A patent/EP3905679B1/en active Active
- 2012-01-12 CN CN201611075335.5A patent/CN106488242B/zh active Active
- 2012-01-12 HU HUE21176055A patent/HUE059647T2/hu unknown
- 2012-01-12 PL PL12734504T patent/PL2664147T3/pl unknown
- 2012-01-12 HU HUE20151294A patent/HUE060786T2/hu unknown
- 2012-01-12 HU HUE21176051A patent/HUE060051T2/hu unknown
- 2012-01-12 CN CN201610451157.5A patent/CN105959693B/zh active Active
- 2012-01-12 KR KR1020187022852A patent/KR101969359B1/ko active IP Right Grant
- 2012-01-12 PL PL21176055.8T patent/PL3905680T3/pl unknown
- 2012-01-12 BR BR122019025404A patent/BR122019025404B8/pt active Search and Examination
- 2012-01-12 EP EP20151294.4A patent/EP3668094B1/en active Active
- 2012-01-12 ES ES20151294T patent/ES2936531T3/es active Active
- 2012-01-12 PL PL21176051.7T patent/PL3905679T3/pl unknown
- 2012-01-12 ES ES12734504T patent/ES2784761T3/es active Active
- 2012-01-12 RU RU2013137765/08A patent/RU2551801C2/ru active
- 2012-01-12 EP EP12734504.9A patent/EP2664147B1/en active Active
-
2016
- 2016-06-30 JP JP2016130605A patent/JP6338621B2/ja active Active
- 2016-08-08 US US15/231,461 patent/US9918089B2/en active Active
-
2017
- 2017-03-13 RU RU2017107973A patent/RU2668727C2/ru active
-
2018
- 2018-01-23 US US15/878,311 patent/US10110899B2/en active Active
- 2018-05-09 JP JP2018090992A patent/JP6513261B2/ja active Active
- 2018-09-18 US US16/134,253 patent/US10382757B2/en active Active
- 2018-09-18 US US16/134,414 patent/US10397575B2/en active Active
- 2018-09-25 RU RU2018133698A patent/RU2690218C1/ru active
-
2019
- 2019-04-05 JP JP2019073168A patent/JP6801037B2/ja active Active
- 2019-04-05 JP JP2019073170A patent/JP6686206B2/ja active Active
- 2019-04-05 JP JP2019073169A patent/JP6801038B2/ja active Active
- 2019-05-23 RU RU2019115851A patent/RU2701054C1/ru active
- 2019-08-12 US US16/538,653 patent/US10750177B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6686206B2 (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B03A | Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B15K | Others concerning applications: alteration of classification |
Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/26 Ipc: H04N 19/119 (2006.01) |
|
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B07A | Application suspended after technical examination (opinion) [chapter 7.1 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 12/01/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |