BR112013033701B1 - Método de decodificação de vídeo - Google Patents

Método de decodificação de vídeo Download PDF

Info

Publication number
BR112013033701B1
BR112013033701B1 BR112013033701-0A BR112013033701A BR112013033701B1 BR 112013033701 B1 BR112013033701 B1 BR 112013033701B1 BR 112013033701 A BR112013033701 A BR 112013033701A BR 112013033701 B1 BR112013033701 B1 BR 112013033701B1
Authority
BR
Brazil
Prior art keywords
offset
encoding
unit
pixel
block
Prior art date
Application number
BR112013033701-0A
Other languages
English (en)
Other versions
BR112013033701A2 (pt
Inventor
Alexander Alshin
Elena Alshina
Original Assignee
Samsung Electronics Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co., Ltd filed Critical Samsung Electronics Co., Ltd
Publication of BR112013033701A2 publication Critical patent/BR112013033701A2/pt
Publication of BR112013033701B1 publication Critical patent/BR112013033701B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • G06V10/422Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation for representing the structure of the pattern or shape of an object therefor
    • G06V10/424Syntactic representation, e.g. by using alphabets or grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • G06V10/435Computation of moments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/993Evaluation of the quality of the acquired pattern
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration

Abstract

MÉTODO PARA DECODIFICAR VÍDEO, MÉTODO PARA CODIFICAR VÍDEO, APARELHO PARA DECODIFICAR VÍDEO, APARELHO PARA CODIFICAR VÍDEO, E MÍDIA DE GRAVAÇÃO LEGÍVEL POR COMPUTADOR. Trata-se de um método e aparelho para codificar vídeo,e método e aparelho para decodificar vídeo, para gerar uma imagem restaurada tendo um erro mínimo em relação a uma imagem original. O método para decodificar vídeo inclui: analisar informações sobre mesclagem de deslocamento, indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho dentre blocos de vídeo são idênticos entre si, a partir de um fluxo de bits recebido; restaurar um tipo de deslocamento e valores de deslocamento dentre o parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento; determinar uma classe marginal ou uma faixa de valores de pixel de um pixel restaurado, com base em um tipo marginal ou um tipo de faixa de valores de pixel do bloco atual, indicando o tipo de deslocamento; e determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel do pixel restaurado, dentre os valores de deslocamento, e ajustar um valor de pixel do pixel restaurado, de acordo com o valor de deslocamento.

Description

Área Técnica
[001] A presente invenção refere-se à codificação e decodificação de vídeo, que são executadas de forma a minimizar um erro entre uma imagem original e uma imagem restaurada.
Fundamento da Arte
[002] Como o hardware para reproduzir e armazenar conteúdo de vídeo de alta resolução ou alta qualidade está sendo desenvolvido e fornecido, cresce a necessidade de um codec de vídeo para codificar ou decodificar, com eficiência, o conteúdo de vídeo de alta resolução ou de alta qualidade. Em um codec de vídeo convencional, um vídeo é codificado de acordo com um método de codificação limitado, com base em um macrobloco tendo um tamanho predeterminado.
[003] Dados de imagem de um domínio espacial são transformados em coeficientes de uma região de frequência, por meio de transformação de frequência. Um codec de vídeo divide uma imagem em blocos tendo predeterminados tamanhos, executa transformação discreta de cosseno (DCT) em cada bloco, e codifica coeficientes de frequência em unidades do bloco, a fim de executar uma operação aritmética rápida da transformação de frequência. Os coeficientes da região de frequência são tipos facilmente compressíveis, em comparação com os dados de imagem do domínio espacial. Em particular, um valor de pixel de imagem do domínio espacial é expresso como um erro de previsão através de previsão inter ou previsão intra do codec de vídeo e, portanto, se a transformação de frequência for realizada no erro de previsão, os dados podem ser transformados para 0. O codec de vídeo substitui dados, que ocorrem de forma contínua e repetitiva com dados tendo pequenos tamanhos, reduzindo, assim, uma quantidade de dados.
Divulgação Problema Técnico
[004] A presente invenção apresenta um método e aparelho para codificar vídeo e um método e aparelho para decodificar vídeo, para gerar uma imagem restaurada tendo um erro mínimo em relação a uma imagem original.
Solução Técnica
[005] De acordo com um aspecto da presente invenção, é fornecido um método para decodificar vídeo, incluindo: analisar informações sobre mesclagem de deslocamento indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho dentre blocos de vídeo são idênticos entre si, a partir de um fluxo de bits recebido; restaurar um tipo de deslocamento e valores de deslocamento dentre o parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento; determinar uma classe marginal ou uma faixa de valores de pixel de um pixel restaurado do bloco atual, com base em um tipo marginal ou um tipo de faixa de valores de pixel do bloco atual, indicando o tipo de deslocamento; e determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel do pixel restaurado, dentre os valores de deslocamento, e ajustar um valor de pixel do pixel restaurado, de acordo com o valor de deslocamento.
Efeitos Vantajosos
[006] Durante a codificação e decodificação de vídeo, pixels são classificados de acordo com uma característica de imagem, tal como um tipo marginal, um deslocamento é determinado, usando um valor de erro médio entre pixels com a mesma característica no mesmo grupo, e pixels restaurados são ajustados para o deslocamento, pelo qual um erro entre uma imagem original e uma imagem restaurada é minimizado.
Descrição dos Desenhos
[007] Os aspectos e vantagens acima e outros mais da presente invenção se tornarão mais evidentes, através da descrição em detalhes de suas formas de realização exemplares, tendo como referência os desenhos anexos, em que:
[008] a Fig. 1 é um diagrama de blocos de um aparelho para codificar vídeo, de acordo com uma forma de realização da presente invenção;
[009] a Fig. 2 é um diagrama de blocos de um aparelho para decodificar vídeo, de acordo com uma forma de realização da presente invenção;
[0010] a Fig. 3 é uma tabela de tipos marginais e comprimentos para classificação de pixels, de acordo com uma forma de realização da presente invenção;
[0011] a Fig. 4 é um fluxograma, ilustrando um processo de codificação do valor de deslocamento, de acordo com uma forma de realização da presente invenção;
[0012] a Fig. 5 é um diagrama de blocos de referência candidatos usado para mesclar parâmetros de deslocamento, de acordo com uma forma de realização da presente invenção;
[0013] a Fig. 6 é um fluxograma, que ilustra um método para codificar vídeo, de acordo com uma forma de realização da presente invenção;
[0014] a Fig. 7 é um fluxograma, que ilustra um método para decodificar vídeo, de acordo com uma forma de realização da presente invenção;
[0015] a Fig. 8 é um diagrama de blocos de um aparelho para codificar vídeo com base em unidades de codificação com uma estrutura em árvore, de acordo com uma forma de realização da presente invenção;
[0016] a Fig. 9 é um diagrama de blocos de um aparelho para decodificar vídeo, baseado em unidades de codificação com uma estrutura em árvore, de acordo com uma forma de realização da presente invenção;
[0017] a Fig. 10 é um diagrama para descrever um conceito de unidades de codificação, de acordo com uma forma de realização da presente invenção;
[0018] a Fig. 11 é um diagrama de blocos de um codificador de imagens com base em unidades de codificação, de acordo com uma forma de realização da presente invenção;
[0019] a Fig. 12 é um diagrama de blocos de um decodificador de imagens com base em unidades de codificação, de acordo com uma forma de realização da presente invenção;
[0020] a Fig. 13 é um diagrama ilustrando unidades de codificação mais profundas de acordo com profundidades e partições, de acordo com uma forma de realização da presente invenção;
[0021] a Fig. 14 é um diagrama para descrever uma relação entre uma unidade de codificação e unidades de transformação, de acordo com uma forma de realização da presente invenção;
[0022] a Fig. 15 é um diagrama para descrever informações de codificação de unidades de codificação, que correspondem a uma profundidade codificada, de acordo com uma forma de realização da presente invenção;
[0023] a Fig. 16 é um diagrama das unidades de codificação mais profundas de acordo com profundidades, de acordo com uma forma de realização da presente invenção;
[0024] as Figs. 17 a 19 são diagramas para descrever uma relação entre unidades de codificação, unidades de previsão, e unidades de transformação, de acordo com uma forma de realização da presente invenção; e
[0025] a Fig. 20 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de previsão, ou uma partição, e uma unidade de transformação, de acordo com informações sobre modo de codificação da tabela 1.
Melhor Modo
[0026] De acordo com um aspecto da presente invenção, é fornecido um método para decodificar vídeo, incluindo: analisar informações sobre mesclagem de deslocamento, indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho entre blocos de vídeo são idênticos entre si, a partir de um fluxo de bits recebido; restaurar um tipo de deslocamento e valores de deslocamento dentre o parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento; determinar uma classe marginal ou uma faixa de valores de pixel de um pixel restaurado do bloco atual, com base em um tipo marginal ou um tipo da faixa de valores de pixel do bloco atual, indicando o tipo de deslocamento; e determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel do pixel restaurado, dentre os valores de deslocamento, e ajustar um valor de pixel do pixel restaurado, de acordo com o valor de deslocamento.
[0027] De acordo com um aspecto da presente invenção, a determinação da classe marginal ou da faixa de valores de pixel do pixel restaurado pode incluir: em um caso, onde um tipo de deslocamento do bloco atual for o tipo marginal, comparar valores de pixel de um pixel atualmente restaurado e pixels vizinhos do pixel atualmente restaurado dispostos de acordo com o tipo marginal e um tamanho marginal, e determinar a classe marginal, indicando se o pixel atualmente restaurado é um pixel marginal, em que o ajuste do valor de pixel do pixel restaurado, de acordo com o valor de deslocamento, inclui: em um caso, onde os valores de deslocamento compreendem valores de deslocamento correspondentes às classes marginais atribuídas a um tipo de deslocamento atual, determinar um valor de deslocamento correspondente a uma classe marginal do pixel atualmente restaurado, a partir dos valores de deslocamento.
[0028] De acordo com um aspecto da presente invenção, a determinação da classe marginal ou da faixa de valores de pixel do pixel restaurado pode incluir: em casos, onde o tipo de deslocamento do bloco atual for o tipo da faixa de valores de pixel, determinar a faixa de valores de pixel indicando uma faixa de valores de pixel, à qual pertence o valor de pixel do pixel atualmente restaurado dentre uma pluralidade de faixas, em que o ajuste do valor de pixel do pixel restaurado, de acordo com o valor de deslocamento, inclui: em um caso, onde os valores de deslocamento incluem valores de deslocamento correspondentes às faixas dos valores de pixels alocados a um tipo de deslocamento atual, determinar um valor de deslocamento correspondente a uma faixa de valores de pixel do pixel atualmente restaurado dentre os valores de deslocamento.
[0029] De acordo com um aspecto da presente invenção, a restauração do tipo de deslocamento e os valores de deslocamento pode incluir: se pelo menos um parâmetro de deslocamento de um bloco esquerdo e um bloco superior do bloco atual for idêntico ao parâmetro de deslocamento do bloco atual baseado nas informações sobre mesclagem de deslocamento, restaurar o parâmetro de deslocamento do bloco atual, da mesma forma que pelo menos um parâmetro de deslocamento do bloco esquerdo e do bloco superior do bloco atual.
[0030] De acordo com um aspecto da presente invenção, a restauração do tipo de deslocamento e dos valores de deslocamento pode incluir: se pelo menos um parâmetro de deslocamento de um bloco esquerdo e um bloco superior do bloco atual for diferente do parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento, analisar e restaurar o parâmetro de deslocamento do bloco atual, a partir do fluxo de bits recebido.
[0031] De acordo com um aspecto da presente invenção, a restauração do tipo de deslocamento e dos valores de deslocamento compreende: realizar previsão e restauração em parâmetros de deslocamento de pelo menos um componente de cor dentre um componente de luminância e componentes de crominância do bloco atual, por referência a cada um dos parâmetros de deslocamento dentre os parâmetros de deslocamento. De acordo com um aspecto da presente invenção, o valor do deslocamento é uma média dos valores de diferença entre pixels restaurados e pixels originais incluídos na mesma classe marginal ou na mesma faixa de valores de pixel.
[0032] De acordo com outro aspecto da presente invenção, é fornecido um método para codificar vídeo, compreendendo: determinar uma classe marginal, de acordo com um tipo marginal de um bloco atual, dentre blocos de vídeo ou uma faixa de valores de pixel, de acordo com um tipo de faixa de valores de pixel dessa; determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel usando valores de diferença entre pixels restaurados e pixels originais incluídos na classe marginal ou na faixa de valores de pixel; e quando um parâmetro de deslocamento de cada bloco compreender um tipo de deslocamento indicando o tipo marginal ou o tipo de faixa de valores de pixel e um deslocamento correspondente à classe marginal ou à faixa de valores de pixel, com base em identidades entre parâmetros de deslocamento do bloco atual e pelo menos um bloco vizinho, codificar informações sobre mesclagem de deslocamento do bloco atual, indicando se o parâmetro de deslocamento do bloco atual foi codificado.
[0033] De acordo com um aspecto da presente invenção, a determinação da classe marginal e da faixa de valores de pixel compreende: em um caso, onde um deslocamento do bloco atual foi determinado, de acordo com o tipo marginal, comparar valores de pixel de um pixel atualmente restaurado e de pixels vizinhos do pixel atualmente restaurado, disposto de acordo com o tipo marginal e um tamanho marginal, e determinar a classe marginal, indicando se o pixel atualmente restaurado é um pixel marginal.
[0034] De acordo com um aspecto da presente invenção, a determinação da classe marginal e da faixa de valores de pixel compreende: em um caso, onde um deslocamento do bloco atual é determinado de acordo com tipos de faixa de valores de pixel dos pixels restaurados, determinar a faixa de valores de pixel indicando uma faixa de valores de pixel, à qual pertence um valor de pixel de um pixel atualmente restaurado, dentre uma pluralidade de faixas.
[0035] De acordo com um aspecto da presente invenção, a codificação das informações sobre mesclagem de deslocamento do bloco atual compreende: se pelo menos um parâmetro de deslocamento de um bloco esquerdo e de um bloco superior do bloco atual for idêntico ao parâmetro de deslocamento do bloco atual, codificar as informações sobre mesclagem de deslocamento, excluindo o parâmetro de deslocamento do bloco atual.
[0036] De acordo com um aspecto da presente invenção, a determinação do valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel compreende: determinar o valor de deslocamento, que é uma média dos valores de diferença entre pixels restaurados e pixels originais incluídos na mesma classe marginal ou na mesma faixa de valores de pixel.
[0037] De acordo com outro aspecto da presente invenção, é fornecido um aparelho para decodificar vídeo, compreendendo: uma unidade analisadora de parâmetros de deslocamento para analisar informações sobre mesclagem de deslocamento, indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho dentre blocos de vídeo são idênticos entre si, a partir de um fluxo de bits recebido, restaurar um tipo de deslocamento e valores de deslocamento dentre o parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento; e uma unidade ajustadora de deslocamento para determinar uma classe marginal ou uma faixa de valores de pixel de um pixel restaurado, com base em um tipo marginal ou um tipo de faixa de valores de pixel do bloco atual indicando o tipo de deslocamento, e determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel do pixel restaurado, a partir dos valores de deslocamento, e ajustar um valor de pixel do pixel restaurado, de acordo com o valor de deslocamento.
[0038] De acordo com outro aspecto da presente invenção, é fornecido um aparelho para codificar vídeo, compreendendo: uma unidade determinadora de deslocamento para determinar uma classe marginal, de acordo com um tipo marginal de um bloco atual dentre blocos de vídeo ou uma faixa de valores de pixel, de acordo com um respectivo tipo de faixa de valores de pixel, e determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel, usando valores de diferença entre pixels restaurados e pixels originais incluídos na classe marginal ou na faixa de valores de pixel; e uma unidade de codificação de parâmetros de deslocamento para, quando um parâmetro de deslocamento de cada bloco compreender um tipo de deslocamento, indicar o tipo marginal ou o tipo de faixa de valores de pixel e um deslocamento correspondente à classe marginal ou à faixa de valores de pixel, com base em identidades entre parâmetros de deslocamento do bloco atual e pelo menos um bloco vizinho, codificar informações sobre mesclagem de deslocamento do bloco atual, indicando se o parâmetro de deslocamento do bloco atual foi codificado.
[0039] De acordo com outro aspecto da presente invenção, é fornecida uma mídia de gravação legível por computador, tendo nela gravado um programa para executar o método para decodificar vídeo.
[0040] De acordo com outro aspecto da presente invenção, é fornecida uma mídia de gravação legível por computador, tendo nela gravado um programa para executar o método para codificar vídeo.
Modo para a Invenção
[0041] A seguir, a presente invenção será descrita mais plenamente, tendo como referência os desenhos anexos, em que formas de realização exemplares da invenção são mostradas.
[0042] Neste documento, o termo "e/ou" inclui quaisquer e todas as combinações de um ou mais dos itens listados associados.
[0043] Um método para codificar vídeo e um método para decodificar vídeo, que são executados, ajustando o deslocamento de acordo com a classificação de pixels, de acordo com uma forma de realização, serão descritos com referência às Figuras 1 a 7 abaixo. Além disso, uma forma de realização, em que um método para codificar vídeo e um método para decodificar vídeo, baseados em unidades de codificação com uma estrutura em árvore usam um ajuste de deslocamento, de acordo com a classificação de pixels, de acordo com uma forma de realização, será descrita com referência a tipos de deslocamentos de pixel ou faixas de pixel da Fig. 20 abaixo. Adiante, uma "imagem" pode significar uma imagem estática de vídeo, uma respectiva imagem em movimento, ou seja, vídeo em si.
[0044] Em primeiro lugar, um método para codificar vídeo e um método para decodificar vídeo, que são executados ajustando o deslocamento, de acordo com a classificação de pixels, de acordo com uma forma de realização, serão agora descritos com referência às Figuras 1 a 7 abaixo.
[0045] A Fig. 1 é um diagrama de blocos de um aparelho para codificar vídeo 10, de acordo com uma forma de realização da presente invenção.
[0046] O aparelho para codificar vídeo 10, segundo uma forma de realização, inclui uma unidade determinadora de deslocamento 12 e uma unidade codificadora de parâmetros de deslocamento 14.
[0047] O aparelho para codificar vídeo 10, segundo uma forma de realização, recebe imagens de vídeo, divide cada imagem em blocos, e codifica as imagens para cada bloco. Um tipo de bloco pode ser um quadrado ou um retângulo, e pode ter um formato geométrico arbitrário. O tipo de bloco não é limitado a uma unidade de dados tendo um tamanho uniforme. O bloco, de acordo com uma forma de realização, pode ser uma unidade de codificação máxima, uma unidade de codificação etc., dentre unidades de codificação em uma estrutura em árvore. Métodos para codificar e decodificar vídeo baseados nas unidades de codificação na estrutura em árvore serão descritos mais tarde com referência às Figs. 8 a 20.
[0048] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode executar previsão intra, previsão inter, transformação, e quantização para cada bloco de imagem, gerar amostras, executar codificação por entropia nas amostras, e emitir as amostras em um fluxo de bits.
[0049] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode codificar um valor de deslocamento, indicando um valor de diferença entre um pixel de uma imagem original (um pixel original) e um pixel de uma imagem restaurada (um pixel restaurado), para minimizar um erro entre o pixel original e o pixel restaurado.
[0050] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode determinar o valor de deslocamento para cada unidade de dados predeterminada, como um quadro, uma fatia, um bloco etc. Um parâmetro de deslocamento, incluindo o valor do deslocamento e um tipo de deslocamento, pode ser codificado para cada unidade de dados predeterminada.
[0051] A unidade determinadora de deslocamento 12, de acordo com uma forma de realização, determina um tipo marginal ou um tipo de faixa de valores de pixel, de um bloco atual. A unidade determinadora de deslocamento 12 pode determinar se é adequado classificar os pixels do bloco atual com base no tipo marginal ou no tipo de faixa de valores de pixel, de acordo com uma característica de pixel do bloco atual.
[0052] O tipo marginal, de acordo com uma forma de realização, pode indicar direções e tamanhos de margens formadas pelo pixel restaurado e pixels vizinhos. Além disso, quando uma faixa de alcance total dos valores de pixel do bloco atual for dividida em um número predeterminado de faixas, o tipo de faixa de valores de pixel, de acordo com uma forma de realização, pode indicar o número total das faixas dos valores de pixel, um alcance de cada faixa etc.
[0053] Em um caso, onde um valor de deslocamento do bloco atual é determinado de acordo com o tipo marginal, a unidade determinadora de deslocamento 12, de acordo com uma forma de realização, pode determinar uma classe marginal que pertence a cada pixel restaurado. A classe marginal, de acordo com uma forma de realização, indica se um pixel atualmente restaurado é um pixel de uma margem. Por exemplo, a classe marginal pode indicar se o pixel atualmente restaurado é um ponto extremo da margem, é um pixel marginal que constitui a margem, ou não é um pixel que constitui a margem etc.
[0054] No caso, onde o valor de deslocamento do bloco atual é determinado de acordo com o tipo marginal, a unidade determinadora de deslocamento 12, de acordo com uma forma de realização, pode comparar um valor de pixel do pixel atualmente restaurado com valores de pixel de pixels vizinhos dispostos vizinhos ao pixel atualmente restaurado, de acordo com direções e tamanhos de margens, e determinar a classe marginal, indicando se o pixel atualmente restaurado é o pixel marginal.
[0055] Em um caso, onde o valor de deslocamento do bloco atual é determinado, de acordo com o tipo de faixa de valores de pixel, a unidade determinadora de deslocamento 12, de acordo com uma forma de realização, pode determinar uma faixa de valores de pixel, que pertence a cada pixel restaurado. A faixa de valores de pixel, de acordo com uma forma de realização, indica uma faixa de valores de pixel, ao qual pertence o valor do pixel do pixel atualmente restaurado, dentre uma pluralidade de faixas de valores de pixel. A pluralidade de faixas de valores de pixel pode ser dividida, de acordo com uma mesma faixa de valores de pixel. Além disso, a pluralidade de faixas de valores de pixel pode ser dividida, de acordo com um faixa desigual de valores de pixel. Ou seja, a unidade determinadora de deslocamento 12 pode determinar a faixa de valores de pixel, indicando uma faixa de valores de pixel, ao qual pertence o valor de pixel do pixel atualmente restaurado, dentre a pluralidade de faixas de valores de pixel.
[0056] A unidade determinadora de deslocamento 12, de acordo com uma forma de realização, determina um valor de deslocamento correspondente a uma classe marginal ou a uma faixa de valores de pixel de um pixel restaurado, usando valores de diferença entre pixels restaurados e pixels originais incluídos na mesma classe marginal ou faixa de valores de pixel que o pixel restaurado.
[0057] A unidade determinadora de deslocamento 12, de acordo com uma forma de realização, pode ser uma média dos valores de diferença entre pixels restaurados e pixels originais incluídos na mesma classe marginal que a classe marginal atual, ou na mesma faixa de valores de pixel que a faixa atual de valores de pixel, ou seja, um erro médio dos pixels restaurados, como um valor de deslocamento correspondente à classe marginal atual ou à faixa atual de valores de pixel.
[0058] A unidade determinadora de deslocamento 12 pode determinar uma classe marginal ou uma faixa de valores de pixel para cada pixel restaurado no bloco atual. Nesse sentido, a unidade determinadora de deslocamento 12 pode determinar cada valor de deslocamento correspondente a cada classe marginal de um bloco. Além disso, a unidade determinadora de deslocamento 12 pode determinar cada valor de deslocamento correspondente a cada faixa de valores de pixel do bloco.
[0059] A unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar um tipo de deslocamento e um valor de deslocamento de cada bloco. O tipo de deslocamento, de acordo com uma forma de realização, indica o tipo marginal de cada bloco, ou o respectivo tipo de faixa de valores de pixel.
[0060] Um parâmetro de deslocamento de cada bloco pode incluir o tipo de deslocamento e o valor de deslocamento de cada bloco. Se o tipo de deslocamento for o tipo marginal, o parâmetro de deslocamento pode incluir valores de deslocamento correspondentes a cada classe marginal. Além disso, se o tipo de deslocamento for o tipo de faixa de valores de pixel, o parâmetro de deslocamento pode incluir valores de deslocamento correspondentes a cada faixa de valores de pixel. Ou seja, a unidade codificadora de parâmetros de deslocamento 14 pode codificar o parâmetro de deslocamento para cada bloco.
[0061] A unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar informações sobre mesclagem de deslocamento do bloco atual, indicando a necessidade de codificar um parâmetro de deslocamento do bloco atual, baseado em identidades de parâmetros de deslocamento do bloco atual e pelo menos um bloco vizinho.
[0062] Se pelo menos um dos parâmetros de deslocamento de um bloco esquerdo e um bloco direito do bloco atual for idêntico ao parâmetro de deslocamento do bloco atual, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar as informações sobre mesclagem de deslocamento, exceto para o parâmetro de deslocamento do bloco atual.
[0063] Se os parâmetros de deslocamento do bloco esquerdo e o bloco direito do bloco atual forem diferentes do parâmetro de deslocamento do bloco atual, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar as informações sobre mesclagem de deslocamento e o parâmetro de deslocamento do bloco atual.
[0064] Se informações parciais de parâmetros de deslocamento do bloco vizinho forem idênticas ao parâmetro de deslocamento do bloco atual, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar informações sobre mesclagem de deslocamento de um bit, e codificar apenas informações do parâmetro de deslocamento do bloco atual, exceto as informações parciais idênticas dos parâmetros de deslocamento do bloco vizinhos ao parâmetro de deslocamento do bloco atual. Por exemplo, se o bloco atual e o bloco vizinho forem idênticos em termos de valores de deslocamento, as informações sobre mesclagem de deslocamento de um bit e o tipo de deslocamento podem ser codificadas para o bloco atual.
[0065] A unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar informações diferenciais entre valores de deslocamento do bloco vizinho e um deslocamento atual.
[0066] Se um deslocamento for 0, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar um parâmetro de deslocamento, que não seja o deslocamento.
[0067] A unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode prever e codificar pelo menos um componente de cor dentre um componente de luminância e componentes de crominância do bloco atual, referindo-se a parâmetros de deslocamento de outros componentes de cor. Por exemplo, os parâmetros de deslocamento do componente de luminância e os componentes de crominância são previstos e codificados por compartilhamento, ou referindo-se mutuamente a parâmetros de deslocamento. Como outro exemplo, parâmetros de deslocamento de um primeiro componente de crominância e um segundo componente de crominância são previstos e codificados, por compartilhamento ou referindo-se mutuamente a parâmetros de deslocamento.
[0068] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode incluir um processador central (não mostrado), que geralmente controla a unidade determinadora de deslocamento 12 e a unidade codificadora de parâmetros de deslocamento 14. Alternativamente, a unidade determinadora de deslocamento 12 e a unidade codificadora de parâmetros de deslocamento 14 podem operar por seus respectivos processadores (não mostrados), que operam de forma interativa e, assim, o aparelho para codificar vídeo 10 pode geralmente operar. Alternativamente, a unidade determinadora de deslocamento 12 e a unidade codificadora de parâmetros de deslocamento 14 podem ser controladas pelo controle de um processador externo (não mostrado) do aparelho para codificar vídeo 10, de acordo com uma forma de realização.
[0069] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode incluir pelo menos uma unidade de armazenamento de dados (não mostrada), que armazena dados de entrada e de saída da unidade determinadora de deslocamento 12 e da unidade codificadora de parâmetros de deslocamento 14. O aparelho para codificar vídeo 10 pode incluir uma unidade de controle de memória (não mostrada), que controla entrada e saída de dados da unidade de armazenamento de dados (não mostrada).
[0070] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode operar no âmbito de um processador interno de codificação de vídeo nele instalado, ou de um processador externo de codificação de vídeo, para emitir um resultado de codificação de vídeo, realizando, assim, uma operação de codificação de vídeo incluindo transformação. O processador interno de codificação de vídeo do aparelho para codificar vídeo 10, de acordo com uma forma de realização, pode incluir um processador separado, bem como o aparelho para codificar vídeo 10, um aparelho para operação central, ou um aparelho para operação de gráficos pode incluir um módulo de processamento para codificação de vídeo, para implementar uma operação básica de codificação de vídeo.
[0071] A Fig. 2 é um diagrama de blocos de um aparelho para decodificar vídeo 20, de acordo com uma forma de realização da presente invenção.
[0072] O aparelho para decodificar vídeo 20, segundo uma forma de realização, inclui uma unidade analisadora de parâmetros de deslocamento 22 e uma unidade ajustadora de deslocamento 24.
[0073] O aparelho para decodificar vídeo 20, segundo uma forma de realização, recebe um fluxo de bits, incluindo dados de vídeo codificados. O aparelho para decodificar vídeo 20 pode analisar amostras de vídeo codificadas, a partir do fluxo de bits recebido, executar codificação por entropia, quantização inversa, transformação inversa, e previsão e compensação de movimento em cada bloco de imagem, gerar pixels restaurados, e gerar uma imagem restaurada resultante. Além disso, o aparelho para decodificar vídeo 20, de acordo com uma forma de realização, pode receber um valor de deslocamento, indicando um valor de diferença entre um pixel original e um pixel restaurado, para minimizar um erro entre uma imagem original e a imagem restaurada.
[0074] A unidade analisadora de parâmetros de deslocamento 22, de acordo com uma forma de realização, pode analisar informações sobre mesclagem de deslocamento, indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho dentre blocos de vídeo são idênticos entre si, a partir do fluxo de bits.
[0075] A unidade analisadora de parâmetros de deslocamento 22, de acordo com uma forma de realização, pode restaurar tipos de deslocamento e valores de deslocamento dentre parâmetros de deslocamento do bloco atual, com base em informações sobre mesclagem de deslocamento do bloco atual.
[0076] Por exemplo, a unidade analisadora de parâmetros de deslocamento 22 pode analisar e restaurar um parâmetro de deslocamento do bloco atual, a partir do fluxo de bits, se os parâmetros de deslocamento do bloco atual e de pelo menos um bloco vizinho forem diferentes entre si, com base nas informações sobre mesclagem de deslocamento do bloco atual. No entanto, a unidade analisadora de parâmetros de deslocamento 22 pode restaurar o parâmetro de deslocamento do bloco atual, usando o parâmetro de deslocamento de pelo menos um bloco vizinho, sem analisar o parâmetro de deslocamento do bloco atual, a partir do fluxo de bits, se os parâmetros de deslocamento do bloco atual e de pelo menos um bloco vizinho forem idênticos entre si, com base nas informações sobre mesclagem de deslocamento do bloco atual.
[0077] A unidade ajustadora de deslocamento 24, de acordo com uma forma de realização, pode determinar uma classe marginal ou uma faixa de valores de pixel do pixel restaurado, com base em um tipo marginal ou um tipo de faixa de valores de pixel do bloco atual, indicando um tipo de deslocamento do bloco atual.
[0078] A unidade ajustadora de deslocamento 24, de acordo com uma forma de realização, pode determinar um valor de deslocamento correspondente à classe marginal ou à faixa de valores de pixel do pixel restaurado, a partir de valores de deslocamento do bloco atual. A unidade ajustadora de deslocamento 24 pode ajustar um valor de pixel do pixel restaurado por um deslocamento.
[0079] A unidade ajustadora de deslocamento 24, de acordo com uma forma de realização, pode determinar uma classe marginal ou uma faixa de valores de pixel para cada pixel restaurado do bloco atual. Nesse sentido, a unidade ajustadora de deslocamento 24 pode determinar um valor de deslocamento correspondente à classe marginal determinada ou à faixa de valores de pixel para cada pixel restaurado dentre valores de deslocamento restaurado, e ajustar cada pixel restaurado por um deslocamento.
[0080] Se o tipo de deslocamento do bloco atual for o tipo marginal, a unidade ajustadora de deslocamento 24, de acordo com uma forma de realização, pode comparar valores de pixel de um pixel de bloco atual e pixels vizinhos de um pixel atualmente restaurado dispostos de acordo com uma direção marginal e um tamanho marginal, e determinar uma classe marginal do pixel atualmente restaurado. Nesse sentido, a unidade ajustadora de deslocamento 24 pode determinar um valor de deslocamento correspondente à classe marginal do pixel atualmente restaurado dentre os valores de deslocamento. A unidade ajustadora de deslocamento 24 pode calcular uma média dos valores de diferença entre pixels restaurados, incluídos na mesma classe como uma marginal atual e pixels originais, e determinar a média como um deslocamento correspondente ao pixel atualmente restaurado.
[0081] Se o tipo de deslocamento do bloco atual for o tipo de faixa de valores de pixel, a unidade ajustadora de deslocamento 24, de acordo com uma forma de realização, pode determinar uma faixa de valores de pixel, ao qual pertence o valor do pixel do pixel atualmente restaurado dentre uma pluralidade de faixas. Nesse sentido, a unidade ajustadora de deslocamento 24 pode determinar um valor de deslocamento correspondente à faixa de valores de pixel do pixel atualmente restaurado dentre os valores de deslocamento restaurados. O valor de deslocamento selecionado pela unidade ajustadora de deslocamento 24, a partir dos valores de deslocamento restaurados, pode ser uma média dos valores de diferença entre pixels restaurados, incluídos na mesma faixa de valores de pixel que uma faixa atual de valores de pixel e pixels originais.
[0082] Para uma descrição mais detalhada da unidade ajustadora de parâmetros de deslocamento 22, se pelo menos um dos parâmetros de deslocamento de um bloco esquerdo e um bloco direito do bloco atual for idêntico ao parâmetro de deslocamento do bloco atual, com base em informações sobre mesclagem de deslocamento, o parâmetro de deslocamento do bloco atual pode ser restaurado, da mesma forma que pelo menos um dos parâmetros de deslocamento do bloco esquerdo e do bloco direito do bloco atual. Um bloco tendo um parâmetro de deslocamento, que deve ser referido, pode ser determinado dentre blocos vizinhos baseado nas informações sobre mesclagem de deslocamento.
[0083] Além disso, se os parâmetros de deslocamento do bloco esquerdo e do bloco direito do bloco atual forem diferentes do parâmetro de deslocamento do bloco atual, com base em informações sobre mesclagem de deslocamento, a unidade ajustadora de parâmetros de deslocamento 22 pode analisar e restaurar o parâmetro de deslocamento do bloco atual, a partir do fluxo de bits.
[0084] Além disso, se informações sobre mesclagem de deslocamento de um bit, analisadas a partir do fluxo de bits, indicarem que informações parciais dos parâmetros de deslocamento do bloco vizinho são idênticas ao parâmetro de deslocamento do bloco atual, a unidade ajustadora de parâmetros de deslocamento 22 pode restaurar informações parciais do parâmetro de deslocamento do bloco atual, usando as informações parciais dos parâmetros de deslocamento do bloco vizinho. As informações restantes do parâmetro de deslocamento do bloco atual podem ser analisadas e restauradas a partir do fluxo de bits.
[0085] Além disso, a unidade ajustadora de parâmetros de deslocamento 22 pode analisar e restaurar valores diferenciais dos valores de deslocamento, a partir do fluxo de bits. Neste caso, a unidade ajustadora de parâmetros de deslocamento 22 pode combinar informações diferenciais entre valores de deslocamento do bloco vizinho e valores de deslocamento do bloco atual, e prever e restaurar os valores de deslocamento do bloco atual.
[0086] Além disso, a unidade ajustadora de parâmetros de deslocamento 22 pode restaurar o valor de deslocamento para 0, se o parâmetro de deslocamento não incluir pelo menos um valor de deslocamento.
[0087] A unidade analisadora de parâmetros de deslocamento 22, de acordo com uma forma de realização, pode prever e restaurar um parâmetro de deslocamento de pelo menos um componente de cor dentre um componente de luminância e componentes de crominância do bloco atual, referindo-se mutuamente a parâmetros de deslocamento dos componentes de cor. Por exemplo, parâmetros de deslocamento do componente de luminância e dos componentes de crominância podem ser restaurados por compartilhamento ou referindo-se à parâmetros de deslocamento. Como outro exemplo, parâmetros de deslocamento de um primeiro componente de crominância e um segundo componente de crominância podem ser previstos e restaurados por compartilhamento ou referindo-se aos parâmetros de deslocamento.
[0088] O aparelho para decodificar vídeo 20, segundo uma forma de realização, pode incluir um processador central (não mostrado), que geralmente controla a unidade analisadora de parâmetros de deslocamento 22 e a unidade ajustadora de deslocamento 24. Alternativamente, a unidade analisadora de parâmetros de deslocamento 22 e a unidade ajustadora de deslocamento 24 podem operar por seus respectivos processadores (não mostrados), que operam de forma interativa e, assim, o aparelho para decodificar vídeo 20 pode geralmente operar. Alternativamente, a unidade analisadora de parâmetros de deslocamento 22 e a unidade ajustadora de deslocamento 24 podem ser controladas pelo controle de um processador externo (não mostrado) do aparelho para decodificar vídeo 20, segundo uma forma de realização.
[0089] O aparelho para decodificar vídeo 20, segundo uma forma de realização, pode incluir pelo menos uma unidade de armazenamento de dados (não mostrada), que armazena dados de entrada e de saída da unidade analisadora de parâmetros de deslocamento 22 e da unidade ajustadora de deslocamento 24. O aparelho para decodificar vídeo 20 pode incluir uma unidade de controle de memória (não mostrada), que controla dados de entrada e de saída da unidade de armazenamento de dados (não mostrada).
[0090] O aparelho para decodificar vídeo 20, segundo uma forma de realização, pode operar no âmbito de um processador interno para decodificar vídeo nele instalado, ou de um processador externo para decodificar vídeo, para restaurar vídeo através de decodificação de vídeo, realizando, assim, uma operação de decodificação de vídeo. O processador interno para decodificar vídeo do aparelho para decodificar vídeo 20, de acordo com uma forma de realização, pode incluir um processador separado, bem como o aparelho para decodificar vídeo 20, um aparelho para operação central, ou um aparelho para operação de gráficos pode incluir um módulo de processamento para decodificar vídeo, para implementar uma operação básica de decodificação de vídeo.
[0091] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, de acordo com uma forma de realização, usam um deslocamento adaptável de amostra (SAO), a fim de minimizar um erro entre um pixel original e um pixel restaurado. Ao usar o SAO, de acordo com uma forma de realização, o aparelho para codificar vídeo 10 classifica pixels de cada bloco de imagem em grupos de pixels predeterminados, aloca cada pixel a um grupo de pixels correspondente, e codifica um valor de deslocamento indicando um valor médio de erros entre pixels originais e pixels restaurados, incluídos no mesmo grupo de pixels.
[0092] Amostras são codificadas e transmitidas entre o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20. Ou seja, o aparelho para codificar vídeo 10 pode codificar amostras e transmitir as amostras codificadas como tipos de fluxo de bits, e o aparelho para decodificar vídeo 20 pode analisar e restaurar as amostras, a partir de um fluxo de bits recebido. O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, de acordo com uma forma de realização, ajustam valores de pixel restaurados, de acordo com o valor de deslocamento determinado por meio da classificação de pixels, e codificam/ decodificam parâmetros de deslocamento, a fim de minimizar o erro entre o pixel original e o pixel restaurado. Sinalização, que envolve codificação, transmissão, recepção, e decodificação de valores de deslocamento como parâmetros de deslocamento, é realizada entre o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20.
[0093] Portanto, usando o SAO, de acordo com uma forma de realização, o aparelho para decodificar vídeo 20 pode decodificar o fluxo de bits recebido, gerar pixels restaurados para cada bloco de imagem, restaurar valores de deslocamento a partir do fluxo de bits, e ajustar os pixels restaurados pelos deslocamentos correspondentes, gerando assim uma imagem restaurada tendo um erro mínimo em relação a uma imagem original.
[0094] A seguir, formas de realização para classificar pixels em grupos de pixels para o SAO, de acordo com uma forma de realização, serão agora descritas. Usando o SAO, de acordo uma forma de realização, pixels podem ser classificados, (i) de acordo com tipos marginais, constituindo pixels restaurados, ou (ii) de acordo com seus tipos de faixa de valores de pixel. A opção de classificar pixels, de acordo com tipos marginais ou tipos de faixa de valores de pixel, pode ser definida por tipos de deslocamento, de acordo com uma forma de realização.
[0095] Uma forma de realização para classificar pixels, de acordo com tipos marginais usando o SAO, de acordo com uma forma de realização, será agora descrita.
[0096] Uma classe marginal de cada pixel restaurado, incluído em um bloco atual, pode ser determinada de acordo com um tipo marginal atual determinado para o bloco atual. Ou seja, classes marginais de pixels atualmente restaurados podem ser definidas, por comparação dos valores de pixel dos pixels atualmente restaurados e dos pixels vizinhos.
[0097] Por exemplo, a classe marginal pode ser determinada, de acordo com < processo 1 > abaixo.
Figure img0001
[0098] x e y de um pixel atualmente restaurado Rec(x, y) denota, respectivamente, uma coordenada horizontal e uma coordenada vertical. i e j de um pixel vizinho Rec(i, j), vizinho ao pixel atualmente restaurado Rec(x, y), denota, respectivamente, uma coordenada horizontal e uma coordenada vertical. Q denota uma faixa de espaço, em que o pixel vizinho Rec(i, j) é disposto, que é um alvo de comparação do pixel atualmente restaurado Rec(x, y). Isso é, de acordo com < Processo 1 > acima, uma classe marginal Class do pixel atualmente restaurado Rec(x, y) pode ser determinada, de acordo com o número de pixels vizinhos Rec(i, j). Dentre o pixel vizinho Rec(i, j) disposto em um faixa de espaço predeterminada, a classe marginal Class pode aumentar, de acordo com o número de pixels vizinhos Rec(i, j) tendo um maior valor de pixel, que o pixel atualmente restaurado Rec(x, y), e a classe marginal Class pode diminuir, de acordo com o número de pixels vizinhos Rec(i, j) tendo um menor valor de pixel, que o pixel atualmente restaurado Rec(x, y).
[0099] A < faixa de espaço de pixels vizinhos Q >, em que o pixel vizinho Rec(i, j) está disposto, pode ser definida, como abaixo apresentado.
Figure img0002
[00100] M denota uma distância máxima horizontal e vertical, do pixel atualmente restaurado Rec(x, y) para o pixel vizinho Rec(i, j). Assim, a faixa máxima de pixels vizinhos pode incluir o número máximo (4M A 2 + 4m) dos pixels vizinhos dispostos em torno do pixel atualmente restaurado Rec(x, y). Neste caso, a classe marginal Class pode estar em uma faixa de -(4 M A 2 + 4m) no mínimo, a (4 M A 2 + 4m) no máximo. Um valor central da faixa de classe marginal Class pode indicar que o pixel atualmente restaurado Rec(x, y) é um pixel disposto em torno de uma margem diferente de um pixel marginal. O número do pixel vizinho Rec(i, j) dentro da faixa de espaço de pixels vizinhos Q pode aumentar ou diminuir, de acordo com um tipo marginal. M pode ser 1, para minimizar uma quantidade de operação.
[00101] Por exemplo, em um caso onde o tipo marginal é uma margem vertical, o pixel atualmente restaurado Rec(x, y) pode ser comparado a um pixel vizinho disposto em uma direção horizontal, em termos de um valor de pixel. Ou seja, a faixa de espaço de pixels vizinhos Q da margem vertical pode ser determinada, como abaixo apresentado.
Figure img0003
[00102] Um tipo e tamanho da faixa de espaço de pixels vizinhos Q podem ser determinados, de acordo com um tipo marginal, tal como a margem vertical, uma margem horizontal, uma margem diagonal, um máximo exato, e um mínimo exato, formados por pixels dentro da faixa de espaço de pixels vizinhos Q. Um valor de classe marginal indica se um pixel está incluído em uma margem, ou é disposto em torno da margem. Assim, um deslocamento para corrigir valores de pixel, que constituem a margem, de acordo com uma combinação do tipo marginal e da classe marginal, pode ser determinado e, assim, um grupo de pixels pode ser definido, de acordo com a combinação do tipo marginal e da classe marginal.
[00103] O número de pixels vizinhos incluído na faixa de espaço de pixels vizinhos Q pode ser determinado, de acordo com o tipo marginal. O valor de classe marginal pode ser determinado dentro de uma faixa do número de pixels vizinhos. Portanto, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem codificar, transmitir e receber um valor de deslocamento correspondente para cada classe marginal de um tipo marginal atual, e ajustar um pixel restaurado, de acordo com o valor de deslocamento. Adiante, coeficientes de classes marginais, de acordo com um tipo marginal predeterminado, são referidos como comprimentos de um valor de deslocamento, que devem ser codificados e transmitidos ao aparelho para decodificar vídeo 20.
[00104] Em um caso, onde um valor de deslocamento usado para uma combinação predeterminada do tipo marginal e da classe marginal, ou seja, um valor de deslocamento para uma classe marginal N do tipo marginal atual, for determinado anteriormente como 0, não há nenhuma necessidade de codificar e transmitir o valor de deslocamento para o aparelho para decodificar vídeo 20. Neste caso, o comprimento para a combinação predeterminada do tipo marginal e da classe marginal pode ser reduzido.
[00105] Portanto, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem classificar pixels, de acordo com uma característica de imagem, tal como um tipo marginal, determinar um valor de erro médio entre pixels com a mesma característica como um deslocamento, e ajustar pixels restaurados, de acordo com o deslocamento, minimizando assim um erro entre uma imagem original e uma imagem restaurada.
[00106] A Fig. 3 é uma tabela de tipos marginais 31, 32, 33, 34, 35 e 36 e comprimentos para classificação de pixels, de acordo com uma forma de realização da presente invenção.
[00107] Índices 5, 4, 0, 1, 2 e 3 podem ser alocados sequencialmente para os tipos marginais 31, 32, 33, 34, 35 e 36. Quanto maior for a taxa de acertos de aparecimento dos tipos marginais 31, 32, 33, 34, 35 e 36, menores são os índices 5, 4, 0, 1, 2 e 3 que podem ser atribuídos aos tipos marginais 31, 32, 33, 34, 35 e 36. Uma classe marginal de um pixel atualmente restaurado X0 pode ser determinada, comparando valores de pixel do pixel atualmente restaurado X0 e oito pixels vizinhos X1, X2, X3, X4, X5, X6, X7 e X8 adjacentes ao pixel atualmente restaurado X0 em relação ao tipo marginal 31 do índice 5. Neste caso, o número de classes marginais atribuído ao pixel atualmente restaurado X0 é 17 e, assim, um comprimento pode ser determinado como 17.
[00108] Conforme acima descrito, o número de classes marginais é determinado como 9, comparando valores de pixel atualmente restaurados do pixel atualmente restaurado X0 e quatro pixels vizinhos X1, X2, X3 e X4 horizontal e verticalmente adjacentes ao pixel atualmente restaurado X0, em relação ao tipo marginal 32 do índice 4 e, assim, um comprimento pode ser determinado como 9.
[00109] Além disso, o número de classes marginais é determinado como 5, comparando valores de pixel atualmente restaurados do pixel atualmente restaurado X0 e dois pixels vizinhos X1 e X2 horizontalmente adjacentes ao pixel atualmente restaurado X0, em relação ao tipo marginal 33 do índice 0 e, assim, um comprimento pode ser determinado como 5.
[00110] Além disso, o número de classes marginais é determinado como 5, comparando valores de pixel atualmente restaurados do pixel atualmente restaurado X0 e dois pixels vizinhos X3 e X4 horizontalmente adjacentes ao pixel atualmente restaurado X0, em relação ao tipo marginal 34 do índice 1 e, assim, um comprimento pode ser determinado como 5.
[00111] Além disso, o número de classes marginais é determinado como 5, comparando valores de pixel atualmente restaurados do pixel atualmente restaurado X0 e dois pixels vizinhos X5 e x8 adjacentes ao pixel atualmente restaurado X0 numa direção diagonal de 135° em relação ao tipo marginal 35 do índice 2 e, assim, um comprimento pode ser determinado como 5.
[00112] Além disso, o número de classes marginais é determinado como 5, comparando valores de pixel atualmente restaurados do pixel atualmente restaurado X0 e dois pixels vizinhos X6 e X7 adjacentes ao pixel atualmente restaurado X0 numa direção diagonal de 45° em relação ao tipo marginal 36 do índice 3 e, assim, um comprimento pode ser determinado como 5.
[00113] Por exemplo, em um caso, onde o tipo marginal é uma margem vertical, como o tipo marginal 33 do índice 0, e valores de pixel do pixel atualmente restaurado X0 e dois pixels vizinhos X1 e X2 horizontalmente adjacentes ao pixel atualmente restaurado X0 são comparados, a classe marginal Class do pixel atualmente restaurado X0 pode ser determinada, de acordo com o < processo 2 > abaixo. < Processo 2 > (1) IF(X0>X1 and X0<X2) then Class = 2 (2) IF(X0>X1 and X1==X2) or (X0==X1 and X1>X2) then Class = 1; (3) IF(X0==X1 and X1==X2) or (X0==X1 and X1==X2) then Class = 0; (4) IF(X0<X1 and X1==X2) or (X0==X1 and X1<X2) then Class = -1; (5) IF(X0<X1 and X0<X2) then Class = -2;
[00114] De acordo com o < processo 2 > acima, em um caso onde o pixel atualmente restaurado X0 for (1), um ponto máximo local de uma margem, (2) um pixel de uma margem de bloco, (3) um pixel diferente da margem, (4) um pixel de uma margem côncava, e (5) um ponto mínimo local da margem, respectivamente, uma classe marginal correspondente podem ser determinados. Em um caso, onde um valor de classe marginal for 0, uma vez que um valor de deslocamento é altamente provável ser 0, uma classe marginal de um pixel restaurado não pode ser codificada.
[00115] Em seguida, uma forma de realização de classificar pixels, de acordo com tipos de faixa de valores de pixel usando o SAO, de acordo com uma forma de realização, será agora descrita.
[00116] Valores de pixel dos pixels restaurados podem pertencer a uma das faixas de valores de pixel, de acordo com uma forma de realização. Por exemplo, um valor mínimo Min e um valor máximo Max dos valores de pixel podem ter um faixa total de 0,..., 2A(p-1), de acordo com amostragem de p-bit. Uma faixa de valores de pixel (Min, Max) pode ser dividida em um número K de faixas de valores de pixel. Em um caso, onde Bk denota um valor máximo de uma k-ésima faixa de valores de pixel, a k-ésima faixa de valores de pixel pode ser dividida em [B0, B1-1], [B1, B2-1], [B2, B3-1],..., [BK-1, BK]. Em um caso, onde um valor de pixel do pixel atualmente restaurado Rec(x, y) pertence a [BK-1, BK], uma faixa atual de valores de pixel pode ser determinada como k.
[00117] As faixas de valores de pixel podem ser divididas em tipos iguais ou tipos desiguais. Tais tipos de faixa de valores de pixel podem ser determinados, tendo em consideração o valor atual mínimo Min e máximo Max. Neste caso, uma referência de divisão das faixas de valores de pixels pode ser codificada e transmitida, ou recebida e decodificada, entre o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20. Em um caso, onde as faixas de valores de pixel são divididas, de acordo com uma faixa teórica {0,..., 2p-1} de valores de pixel, um tipo de faixa de valores de pixel pode ser determinado, sem ter que ser codificado. Tal tipo de faixa de valores de pixel pode ser definido como um tipo de deslocamento.
[00118] Uma faixa de valores de pixel, à qual cada valor de pixel pertence a cada pixel restaurado, pode ser determinada dentre uma pluralidade de faixas de valores de pixel classificada de acordo com tipos de faixa de valores de pixel. Além disso, um valor de deslocamento, indicando uma média de erros entre um pixel original e um pixel restaurado, pode ser determinado para cada faixa de valores de pixel.
[00119] Portanto, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem codificar, transmitir e receber um valor de deslocamento correspondente para cada uma das faixas de valores de pixel classificada, de acordo com um tipo atual de faixa de valores de pixel, e ajustar um pixel restaurado, de acordo com o deslocamento. Além disso, um comprimento de um valor de deslocamento pode ser igual ao número de faixas de valores de pixel. O aparelho para codificar vídeo 10 pode codificar o comprimento e transmitir o comprimento para o aparelho para decodificar vídeo 20.
[00120] Em um caso, onde um valor de deslocamento usado para uma combinação predeterminada do tipo marginal e da classe marginal, ou seja, um valor de deslocamento para a k-ésima faixa de valores de pixel do tipo de faixa atual de valores de pixel, for determinado anteriormente como 0, não há necessidade de codificar e transmitir o valor de deslocamento para o aparelho para decodificar vídeo 20. Neste caso, o comprimento para a combinação predeterminada do tipo marginal e da classe marginal pode ser reduzido.
[00121] Por exemplo, em um caso onde um tipo de classificação de valor de pixel for uma faixa igual de 8 bits, valores de pixel podem ser divididos em 32 faixas de valores de pixel. Mais especificamente, valores de pixel podem ser divididos em faixas de valores de pixel [0, 7] [8, 15],..., [240, 247], [248, 255]. Neste caso, o comprimento é 32.
[00122] Em um caso, onde o número total de faixas de valores de pixel, ou seja, o comprimento, for a potência de 2, uma quantidade de operação para classificar pixels, de acordo com tipos de faixa de valores de pixel, de acordo com uma forma de realização, pode ser minimizada.
[00123] Portanto, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem classificar pixels, de acordo com uma característica de imagem, tal como um tipo de faixa de valores de pixel, determinar um valor de erro médio entre pixels com a mesma característica como um deslocamento, e ajustar pixels restaurados de acordo com o deslocamento, minimizando assim um erro entre uma imagem original e uma imagem restaurada.
[00124] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem determinar um tipo de deslocamento e um valor de deslocamento para cada região predeterminada. O aparelho para codificar vídeo 10 pode determinar um erro entre um valor de pixel original e um valor de pixel restaurado para cada pixel incluído em regiões predeterminadas, e determinar uma média dos erros de pixel como um valor de deslocamento. Para uma rápida operação, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem determinar, transmitir ou receber um valor de deslocamento para cada bloco.
[00125] O tipo de deslocamento pode ser determinado, de acordo com uma característica de imagem de cada bloco. Por exemplo, um bloco, incluindo uma margem vertical, uma margem horizontal, uma margem diagonal etc., é preferível para classificar os valores de pixel, de acordo com os tipos marginais, e determinar um valor de deslocamento para a correção de um valor marginal. Em um caso, onde um bloco não for um bloco marginal, o valor de deslocamento pode ser, de preferência, determinado, de acordo com a classificação de faixa. Assim, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem transmitir ou receber o tipo de deslocamento para cada bloco.
[00126] Um parâmetro de deslocamento, de acordo com uma forma de realização, pode incluir um tipo de deslocamento, valores de deslocamento, comprimento, e uma classe de deslocamento. O comprimento pode ser determinado, de acordo com tipos de deslocamento.
[00127] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem determinar a classe de deslocamento correspondente ao tipo de deslocamento.
[00128] Portanto, o aparelho para codificar vídeo 10, segundo uma forma de realização, pode codificar e transmitir o tipo de deslocamento e valores de deslocamento do parâmetro de deslocamento para o aparelho para decodificar vídeo 20. O aparelho para decodificar vídeo 20 pode receber o tipo de deslocamento e valores de deslocamento, e determinar o comprimento e a classe de deslocamento, com base no tipo de deslocamento. Além disso, o aparelho para decodificar vídeo 20 pode selecionar um valor de deslocamento correspondente para o comprimento, ou a classe de deslocamento, a partir dos valores de deslocamento recebidos, e ajustar pixels restaurados de acordo com o valor de deslocamento.
[00129] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode determinar um índice de um tipo de deslocamento, de acordo com uma taxa de acertos de aparecimento do tipo de deslocamento, de forma a codificar o tipo de deslocamento. Por exemplo, quanto maior for a taxa de acertos do aparecimento do tipo de deslocamento do índice dentre tipos de deslocamento, em menos tempo a palavra-chave do índice pode ser codificada.
[00130] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem ter os seguintes exemplos de índices do tipo de deslocamento selecionável dentre os tipos de deslocamento incluindo classificação de pixel, de acordo com o tipo marginal e o tipo de faixa de valores de pixel: (i) Em um caso onde SAO não é usado, um tipo de deslocamento é -1; (ii) Em caso de um tipo marginal, incluindo três pixels em uma direção vertical, um tipo de deslocamento é 0; (iii) Em caso de um tipo marginal, incluindo três pixels numa direção horizontal, um tipo de deslocamento é 1; (iv) Em caso de um tipo marginal, incluindo três pixels em uma direção diagonal de 135°, um tipo de deslocamento é 2; (v) Em caso de um tipo marginal, incluindo três pixels em uma direção diagonal de 45°, um tipo de deslocamento é 3; (vi) Um tipo de deslocamento de um tipo de faixa de valores de pixel é 4.
[00131] No caso, em que (ii) o tipo de deslocamento é 0, uma classe marginal pode ser codificada para {-2, -1, 1, 2}. A classe marginal 0 não pode ser codificada e, assim, um comprimento pode ser 4. No caso, onde (vi) o tipo de deslocamento é 4, e o número de faixas de valores de pixel é 32, um comprimento pode ser 32.
[00132] A Fig. 4 é um fluxograma ilustrando um processo de codificação de valores de deslocamento, de acordo com uma forma de realização da presente invenção.
[00133] Um valor de deslocamento, que deve ser codificado e decodificado, é altamente provável ser 0 para transmissão e recepção entre o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, de acordo com uma forma de realização da presente invenção. Um valor de deslocamento diferente de 0 possui um sinal positivo ou negativo. Assim, o aparelho para codificar vídeo 10, segundo uma forma de realização, determina se um valor de deslocamento atual é 0 (operação 41) e, se o valor de deslocamento atual não for 0, determina se o valor de deslocamento atual é maior que 0 (operação 42). Se o valor de deslocamento atual for maior que 0, um bit de sinal "0" é codificado (operação 44). Se o valor de deslocamento atual não for maior que 0, um bit de sinal "1" é codificado (operação 43). Após o bit de sinal ser codificado, uma taxa de bits gerada por meio de codificação binária unária sobre um valor obtido, através da redução de um valor absoluto do valor de deslocamento por 1, pode ser ainda codificada (operação 45). O aparelho para codificar vídeo 10 pode codificar finalmente o valor de deslocamento atual "0", se o valor de deslocamento atual for "0" (operação 46), e codificar completamente o valor do deslocamento.
[00134] O aparelho para decodificar vídeo 20 pode receber o valor de deslocamento, determinar se o valor do deslocamento é 0, e se o valor de deslocamento não for 0, analisar o bit de sinal e um valor obtido, reduzindo o valor absoluto do valor de deslocamento por 1, e restaurar o valor de deslocamento atual.
[00135] Um parâmetro de deslocamento, de acordo com uma forma de realização, pode ser determinado e transmitido e recebido por cada bloco. Por exemplo, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem determinar, transmitir e receber o parâmetro de deslocamento para cada quadro ou de cada fatia. Alternativamente, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem determinar, transmitir e receber o parâmetro de deslocamento para cada unidade de codificação ou uma unidade de codificação máxima de uma estrutura em árvore. Operações de codificação/ decodificação de vídeo com base em unidades de codificação da estrutura em árvore, incluindo a unidade de codificação máxima e unidades de codificação da estrutura em árvore, de acordo com uma forma de realização, serão descritas detalhadamente mais tarde, com referência às Figs. 8 a 20.
[00136] É altamente provável que um tipo de deslocamento e/ou um valor de deslocamento de cada bloco sejam idênticos entre blocos adjacentes. Em um caso, onde um parâmetro de deslocamento de um bloco atual for comparado a parâmetros de deslocamento de blocos vizinhos e for idêntico a esses, o aparelho para codificar vídeo 10, segundo uma forma de realização, pode mesclar e codificar os parâmetros de deslocamento do bloco atual e de blocos vizinhos em um parâmetro de deslocamento. Se os parâmetros de deslocamento dos blocos vizinhos forem inicialmente codificados, o parâmetro de deslocamento do bloco atual não pode ser codificado, mas informações sobre mesclagem de deslocamento do bloco atual podem ser codificadas.
[00137] O aparelho para decodificar vídeo 20, segundo uma forma de realização, pode inicialmente analisar as informações sobre mesclagem de deslocamento e determinar se o parâmetro de deslocamento foi analisado, antes de analisar o parâmetro de deslocamento, a partir de um fluxo de bits recebido. O aparelho para decodificar vídeo 20 pode determinar, se existe um bloco com o mesmo parâmetro de deslocamento que o bloco atual nos parâmetros de deslocamento dos blocos vizinhos, baseado nas informações sobre mesclagem de deslocamento do bloco atual.
[00138] Por exemplo, se for determinado que existe o bloco com o mesmo parâmetro de deslocamento que o bloco atual nos parâmetros de deslocamento dos blocos vizinhos, com base nas informações sobre mesclagem de deslocamento do bloco atual, o aparelho para decodificar vídeo 20 não pode analisar o parâmetro de deslocamento do bloco atual, mas pode restaurar o parâmetro de deslocamento do bloco atual, da mesma forma que um parâmetro de deslocamento restaurado do bloco vizinho. Além disso, um bloco vizinho tendo um parâmetro de deslocamento, que deve ser referido, pode ser determinado dentre os blocos vizinhos, baseado nas informações sobre mesclagem de deslocamento.
[00139] Por exemplo, em um caso, onde os parâmetros de deslocamento dos blocos vizinhos forem diferentes do parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento, o aparelho para decodificar vídeo 20 pode analisar e restaurar o parâmetro de deslocamento do bloco atual, a partir do fluxo de bits.
[00140] A Fig. 5 é um diagrama de blocos de referência candidatos usados para mesclar os parâmetros de deslocamento, de acordo com uma forma de realização da presente invenção.
[00141] O aparelho para codificar vídeo 10, segundo uma forma de realização, pode determinar uma lista de candidatos de blocos vizinhos, que são alvos de referência de parâmetros de deslocamento de um bloco atual 50, dentre blocos vizinhos restaurados antes do bloco atual. O aparelho para codificar vídeo 10 pode comparar os blocos vizinhos da lista de candidatos com os parâmetros de deslocamento do bloco atual 50.
[00142] A lista de candidatos, de acordo com uma forma de realização, pode incluir blocos vizinhos dispostos em uma moldura atual 57, que é idêntico ao bloco atual 50. Mais especificamente, um bloco esquerdo 51, um bloco superior 52, um bloco superior esquerdo 53 e um bloco superior direito 54 podem ser incluídos na lista de candidatos.
[00143] O aparelho para codificar vídeo 10, de acordo com outra forma de realização, pode fazer referência a parâmetros de deslocamento dos blocos de 55 e 56 incluídos em molduras vizinhas 58 e 59 restauradas antes da moldura atual 57. Os blocos 55 e 59 incluídos nas molduras vizinhas 58 e 59 podem ser blocos dispostos temporariamente em molduras anteriores e posteriores 58 e 59 da moldura atual 57 e, espacialmente, na mesma região do bloco atual 50. Neste caso, a lista de candidatos pode incluir blocos vizinhos 51, 52, 53 e 54 incluídos na moldura atual 57 e os blocos 55 e 59 incluídos nas molduras vizinhas 58 e 59.
[00144] Portanto, o aparelho para codificar vídeo 10, segundo uma forma de realização, pode comparar parâmetros de deslocamento dos blocos vizinhos incluídos na lista de candidatos com os parâmetros de deslocamento do bloco atual 50, de acordo com uma sequência predeterminada de referências. Por exemplo, os parâmetros de deslocamento dos blocos vizinhos podem ser comparados com os parâmetros de deslocamento do bloco atual 50, de acordo com a sequência de referência do bloco esquerdo 51, do bloco superior 52, do bloco superior esquerdo 53, do bloco superior direito 54, de um bloco anterior 55, e de um bloco subsequente 56. Um bloco vizinho, tendo o mesmo parâmetro de deslocamento que o bloco atual 50 dentre os blocos vizinhos comparados, pode ser determinado como um bloco de referência.
[00145] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem prever e fazer referência, e codificar e transmitir, ou receber e decodificar parâmetros de deslocamento entre blocos adjacentes, com base na mesma lista de candidatos. O aparelho para decodificar vídeo 20, segundo uma forma de realização, pode determinar um bloco vizinho tendo o mesmo parâmetro de deslocamento que o bloco atual 50, a partir da lista de candidatos, com base nas informações sobre mesclagem de deslocamento, e fazer referência a um parâmetro de deslocamento do bloco vizinho correspondente, para restaurar o parâmetro de deslocamento do bloco atual 50 tendo o mesmo valor que o parâmetro de deslocamento do bloco vizinho correspondente.
[00146] Por exemplo, uma lista de candidatos, incluindo o bloco esquerdo 51 e o bloco superior 52, é presumida ser usada. A unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar, como as informações sobre mesclagem de deslocamento, informações sobre mesclagem de deslocamento à esquerda, indicando se um parâmetro de deslocamento do bloco esquerdo 51 é idêntico ao parâmetro de deslocamento do bloco atual 50, e informações sobre mesclagem de deslocamento superiores, indicando se um parâmetro de deslocamento do bloco superior 52 é idêntico ao parâmetro de deslocamento do bloco atual 50. Neste caso, o bloco atual 50 pode ser comparado com o bloco esquerdo 51, para determinar se seus parâmetros de deslocamento são idênticos entre si e, em seguida, o bloco atual 50 pode ser comparado com o bloco superior 52, para determinar se seus parâmetros de deslocamento são idênticos entre si. As informações sobre mesclagem de deslocamento podem ser determinadas, de acordo com os resultados da comparação.
[00147] Se pelo menos um parâmetro de deslocamento do bloco esquerdo 51 e do bloco superior 52 for idêntico ao parâmetro de deslocamento do bloco atual 50, a unidade codificadora de parâmetros de deslocamento 14 pode codificar as informações correspondentes de mesclagem de deslocamento à esquerda e as informações sobre mesclagem de deslocamento superiores, mas não pode codificar o parâmetro de deslocamento do bloco atual 50.
[00148] Se os parâmetros de deslocamento do bloco esquerdo 51 e do bloco superior 52 forem diferentes do parâmetro de deslocamento do bloco atual 50, a unidade codificadora de parâmetros de deslocamento 14 pode codificar as informações correspondentes de mesclagem de deslocamento à esquerda e informações sobre mesclagem de deslocamento superiores e o parâmetro de deslocamento do bloco atual 50.
[00149] Se os parâmetros de deslocamento do bloco esquerdo 51 e do bloco superior 52 forem diferentes do parâmetro de deslocamento do bloco atual 50, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar informações sobre mesclagem de deslocamento e o parâmetro de deslocamento do bloco atual 50.
[00150] Como outro exemplo, se informações parciais dos parâmetros de deslocamento dos blocos vizinhos forem idênticas ao parâmetro de deslocamento do bloco atual 50, a unidade codificadora de parâmetros de deslocamento 14, de acordo com uma forma de realização, pode codificar informações sobre mesclagem de deslocamento de um bit e informações restantes de um parâmetro de deslocamento atual, exceto as informações parciais idênticas dos parâmetros de deslocamento dos blocos vizinhos. Por exemplo, se o bloco atual 50 e os blocos vizinhos forem idênticos entre si em termos de um valor de deslocamento, as informações sobre mesclagem de deslocamento de um bit e um valor do tipo de deslocamento podem ser codificadas para o bloco atual 50.
[00151] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem comparar tipos de deslocamento e valores de deslocamento entre o bloco atual 50 e os blocos vizinhos e, se houver um bloco vizinho tendo o mesmo tipo de deslocamento e valor de deslocamento, que o bloco atual 50 pode transmitir e receber as informações sobre mesclagem de deslocamento.
[00152] Como outro exemplo, tipos de deslocamento são comparados entre os parâmetros de deslocamento do bloco atual 50 e os blocos vizinhos e, se houver um bloco vizinho tendo o mesmo tipo de deslocamento que o bloco atual 50, informações sobre mesclagem de um tipo de deslocamento do bloco vizinho correspondente podem ser transmitidas e recebidas.
[00153] Como outro exemplo, valores de deslocamento são comparado entre os parâmetros de deslocamento do bloco atual 50 e dos blocos vizinhos e, se houver um bloco vizinho tendo o mesmo valor de deslocamento que o bloco atual 50, informações sobre mesclagem de um valor de deslocamento do bloco vizinho correspondente podem ser transmitidas e recebidas.
[00154] Se blocos adjacentes forem idênticos em termos de comprimento, embora tipos de deslocamento sejam diferentes entre os blocos adjacentes, valores de deslocamento dos blocos adjacentes podem ser semelhantes. Por exemplo, os blocos adjacentes são altamente susceptíveis de constituir a mesma região de objeto, dentre objetos indicados por uma imagem. Assim, embora um tipo marginal do bloco atual 50, que é uma margem vertical, seja diferente de um tipo marginal de um bloco vizinho, que é uma margem diagonal, pixels do bloco atual 50 e do bloco vizinho podem constituir a mesma região do objeto. Assim, um valor de deslocamento do bloco atual 50 e um valor de deslocamento do bloco vizinho tendem a ser semelhantes. Nesse sentido, uma lista de candidatos de blocos vizinhos para o bloco atual 50 pode incluir blocos vizinhos, tendo apenas o mesmo comprimento do tipo marginal.
[00155] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem prever o parâmetro de deslocamento do bloco atual 50, referindo- se a parâmetros de deslocamento de blocos vizinhos entre blocos com o mesmo comprimento.
[00156] Em um caso, onde a codificação por previsão for executada em um parâmetro de deslocamento, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem sinalizar uma lista de candidatos a previsão, incluindo blocos vizinhos que podem ser referidos para realizar codificação por previsão no parâmetro de deslocamento. Alternativamente, um parâmetro de deslocamento de um bloco, que é mais adjacente ao bloco atual 50, é sempre referido e, assim, o bloco mais adjacente incluído na lista de candidatos a previsão não pode ser transmitida, nem recebida.
[00157] A lista de candidatos a previsão incluindo o bloco mais adjacente do bloco atual 50, de acordo com uma forma de realização, pode (i) incluir blocos candidatos dispostos em uma sequência de referência (ii) dentre blocos de candidatos, que são restaurados antes do bloco atual 50, e têm o mesmo comprimento, (iii) exceto para blocos candidatos tendo o mesmo parâmetro de deslocamento. Um bloco candidato de primeira classe da lista de candidatos a previsão pode ser o bloco mais adjacente. Por exemplo, se a lista de candidatos a previsão incluir o bloco esquerdo 51 e o bloco superior 52 dispostos à mesma distância do bloco atual 50, o bloco esquerdo 51 tendo uma menor quantidade de operação necessária para acessar a partir do bloco atual 50, do que o bloco superior 52, pode ser o bloco mais adjacente.
[00158] Depois que a lista de candidatos a previsão é determinada, codificação por previsão pode ser realizada em valores de deslocamento do bloco atual 50, referindo-se a valores de deslocamento do bloco mais adjacente. Valores de diferença entre os valores de deslocamento do bloco atual 50 e valores de deslocamento do bloco mais adjacente podem ser codificados e transmitidos ou recebidos. < Valor de previsão de deslocamento > Offset[i] - Offset_prediction[i], O <i< Length-1
[00159] Ou seja, de acordo com um < Valor de previsão de deslocamento >, valores de diferença Offset[i] - Offset_prediction[i] entre valores de deslocamento Offset[i] do bloco atual 50 e valores de deslocamento Offset_prediction[i] do bloco mais adjacente podem ser codificados e transmitidos ou recebidos para cada classe marginal i (ou cada faixa de valores de pixel) entre o bloco atual 50 e o bloco mais adjacente tendo o mesmo comprimento Length. Sempre que a classe marginal i (ou a faixa de valores de pixel) muda, um valor diferencial de previsão em relação a uma classe marginal correspondente (ou a uma faixa de valores de pixel correspondente) pode ser transmitido ou recebido.
[00160] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, de acordo com uma forma de realização, podem executar, de modo limitado, codificação por mesclagem ou codificação por previsão no parâmetro de deslocamento. Por exemplo, para codificar os parâmetros de deslocamento do bloco atual 50, de acordo com o tipo de faixa de valores de pixel, embora dois blocos vizinhos tenham o mesmo comprimento, ou seja, o mesmo número de faixas de valores de pixel, valores máximo e mínimo dos blocos vizinhos e valores máximo e mínimo do bloco atual 50 são diferentes e, assim, se um faixa geral dos valores de pixel for diferente entre os blocos vizinhos e o bloco atual 50, parâmetros de deslocamento dos blocos vizinhos e os parâmetros de deslocamento do bloco atual 50 não têm nenhuma relação, de acordo com o tipo de faixa de valores de pixel. Portanto, se os blocos vizinhos e o bloco atual 50 forem diferentes em termos de uma característica do tipo de deslocamento, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 não são preferíveis para mesclar e executar codificar por previsão nos parâmetros de deslocamento entre blocos adjacentes.
[00161] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem executar codificação por previsão em parâmetros de deslocamento para cada componente de cor.
[00162] Por exemplo, um SAO pode ser aplicado a um bloco de luminância e blocos de crominância de um formato de cor YUV. Um tipo de deslocamento e/ou valores de deslocamento do bloco de luminância de um componente Y podem ser bastante semelhantes a tipos de deslocamento e/ou valores de deslocamento dos blocos de crominância de componentes U e V.
[00163] Por exemplo, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 adicionam um bloco de luminância no mesmo local que um bloco de crominância atual a uma lista de candidatos do bloco atual de crominância e, assim, um parâmetro de deslocamento do bloco atual de crominância pode ser previsto, por referência a um parâmetro de deslocamento do bloco de luminância. A prioridade mais alta pode ser alocada a um bloco de luminância dentre uma lista de referência de blocos incluídos na lista de candidatos.
[00164] Como outro exemplo, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 podem codificar parâmetros de deslocamento, com base em relações predeterminadas entre os parâmetros de deslocamento do componente de luminância e os componentes de crominância. Em geral, os blocos de crominância são mais planos do que o bloco de luminância, e valores absolutos dos valores de deslocamento, de acordo com valores máximo e mínimo, classes marginais, e faixas de valores de pixel dos blocos de crominância são menores do que aqueles do bloco de luminância.
[00165] Uma < equação de previsão de deslocamento de crominância > abaixo explica uma forma de realização para realizar codificação por previsão de valores de deslocamento dos blocos de crominância, em um caso onde os valores de deslocamento dos blocos de crominância são determinados com base em um valor de deslocamento do bloco de luminância. < Equação de previsão do deslocamento de crominância > Value_to_be_encoded[i] = Offset[i] - F(Offset_prediction[i]); wherein F(x) = A*x + B; onde F(x) = A * x + B;
[00166] A este respeito, i denota uma classe marginal atual (uma faixa de valores de pixel) dentro de um faixa de comprimento, e um valor de erro Value_to_be_encoded[i] entre um valor de previsão F (Offset_prediction[i]) e os valores de deslocamento Offset[i] dos blocos de crominância determinados de acordo com o valor de deslocamento Offset_prediction[i]) do bloco de luminância, a que se referem os blocos de crominância, pode ser transmitido ou recebido entre o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20.
[00167] Em F(x), A e B denotam parâmetros de correlação entre o bloco de luminância e os blocos de crominância. Os parâmetros de correlação A e B podem ser definidos em separado para o componente U e o componente Y. Alternativamente, o componente U e o componente Y podem compartilhar os parâmetros de correlação A e B.
[00168] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem codificar e transmitir ou receber e decodificar os parâmetros de correlação A e B, a fim de executar codificação por previsão em valores de deslocamento, entre o bloco de luminância e os blocos de crominância, com base em correlações entre os componentes de cor. Os parâmetros de correlação A e B podem ser anteriormente fixados como valores predeterminados, de acordo com uma forma de realização. Os parâmetros de correlação A e B, de acordo com uma forma de realização, podem ser determinados para cada unidade de dados predeterminada, tal como um bloco, um quadro, uma fatia, uma sequência de vídeo etc., e podem ser transmitidos ou recebidos, após serem incluídos nos parâmetros para cada bloco, um conjunto de parâmetros de quadro (PPS), um cabeçalho de fatia, e um conjunto de parâmetros de sequência (SPS).
[00169] A Fig. 6 é um fluxograma, que ilustra um método para codificar vídeo, de acordo com uma forma de realização da presente invenção.
[00170] Na operação 61, uma classe marginal, de acordo com um tipo marginal de um bloco atual dentre blocos de vídeo, pode ser determinada ou uma faixa de valores de pixel, de acordo com um tipo de faixa de valores de pixel, pode ser determinada.
[00171] Em um caso, onde um deslocamento do bloco atual for determinado, de acordo com o tipo marginal, a classe marginal indicando se um pixel atualmente restaurado é um ponto extremo dentre pixels vizinhos do pixel atualmente restaurado, disposto de acordo com uma direção marginal e tamanho marginal, pode ser determinada por comparação dos valores de pixel do pixel atualmente restaurado e dos pixels vizinhos.
[00172] Além disso, em um caso onde o deslocamento do bloco atual for determinado, de acordo com tipos de faixa de valores de pixel dos pixels restaurados, a faixa de valores de pixel indicando uma faixa de valores de pixel, à qual pertence o valor de pixel do pixel atualmente restaurado, pode ser determinada dentre uma pluralidade de faixas.
[00173] Na operação 63, um deslocamento correspondente a uma classe marginal ou faixa de valores de pixel atual é determinado, usando valores de diferença entre pixels restaurados e pixels originais incluídos na classe marginal ou na faixa de valores de pixel. Um valor médio dos valores de diferença entre pixels restaurados e pixels originais incluídos na mesma classe marginal ou na mesma faixa de valores de pixel pode ser determinado como um valor de deslocamento.
[00174] Na operação 65, um parâmetro de deslocamento de cada bloco é codificado. O parâmetro de deslocamento pode incluir um tipo de deslocamento de um bloco correspondente, seu valor de deslocamento, seu comprimento, e sua classe marginal e faixa de valores de pixel.
[00175] O tipo de deslocamento de cada bloco indica um tipo marginal ou tipo de faixa de valores de pixel de um bloco correspondente. Pixels restaurados de cada bloco são classificados em uma pluralidade de classes marginais, de acordo com o tipo marginal de cada bloco, e cada valor de deslocamento é determinado para cada classe marginal e, assim, uma pluralidade de valores de deslocamento correspondente à pluralidade de classes marginais é determinada. Alternativamente, pixels restaurados de cada bloco são classificados em uma pluralidade de faixas de valores de pixel, de acordo com o tipo marginal de cada bloco, e cada valor de deslocamento é determinado para cada faixa de valores de pixel e, portanto, uma pluralidade de valores de deslocamento correspondente à pluralidade de faixas de valores de pixel é determinada. O comprimento é determinado, de acordo com o tipo marginal de cada bloco ou sua faixa de valores de pixel. Assim, apenas o tipo de deslocamento e valores de deslocamento entre os parâmetros de deslocamento de cada bloco podem ser codificados.
[00176] Informações sobre mesclagem de deslocamento do bloco atual podem ser codificadas, com base em identidades entre parâmetros de deslocamento do bloco atual e pelo menos um bloco vizinho. As informações sobre mesclagem de deslocamento podem indicar se um parâmetro de deslocamento do bloco atual foi codificado. Ou seja, se blocos vizinhos incluírem um bloco com o mesmo parâmetro de deslocamento do bloco atual, somente as informações sobre mesclagem de deslocamento do bloco atual podem ser codificadas, e seu parâmetro de deslocamento não pode ser codificado.
[00177] Informações diferenciais entre parâmetros de deslocamento dos blocos vizinhos e o parâmetro de deslocamento do bloco atual podem ser codificadas, por meio de previsão nos parâmetros de deslocamento de blocos vizinhos e no parâmetro de deslocamento do bloco atual. Codificação por previsão pode ser realizada em pelo menos um componente de cor entre um bloco de luminância e blocos de crominância do bloco atual, por referência a cada um dos parâmetros de deslocamento.
[00178] A Fig. 7 é um fluxograma que ilustra um método para decodificar vídeo, de acordo com uma forma de realização da presente invenção.
[00179] Na operação 71, informações sobre mesclagem de deslocamento, indicando se parâmetros de deslocamento de um bloco atual e pelo menos um bloco vizinho dentre blocos de vídeo são idênticos entre si, são analisadas, a partir de um fluxo de bits recebido.
[00180] Na operação 73, tipos de deslocamento e valores de deslocamento entre os parâmetros de deslocamento do bloco atual são restaurados, baseado nas informações sobre mesclagem de deslocamento.
[00181] Na operação 75, uma classe marginal de um pixel restaurado ou sua faixa de valores de pixel é determinada com base em um tipo marginal do bloco atual ou seu tipo de faixa de valores de pixel, indicando o tipo de deslocamento. Na operação 77, um valor de deslocamento correspondente à classe marginal do pixel restaurado ou sua faixa de valores de pixel é determinado a partir dos valores de deslocamento, e um valor de pixel do pixel restaurado é ajustado, de acordo com o valor de deslocamento.
[00182] Em um caso, onde o tipo de deslocamento do bloco atual é o tipo marginal na operação 75, uma classe marginal de um pixel atualmente restaurado pode ser determinada, comparando valores de pixel do pixel atualmente restaurado e pixels vizinhos do pixel atualmente restaurado, disposto de acordo com uma direção marginal e tamanho marginal. Neste caso, na operação 77, um deslocamento correspondente à classe marginal do pixel atualmente restaurado pode ser selecionado, a partir de valores de deslocamento recebidos.
[00183] Além disso, em um caso, onde o tipo de deslocamento do bloco atual for o tipo de faixa de valores de pixel na operação 75, uma faixa de valores de pixel do pixel atualmente restaurado pode ser determinada, e na operação 77, um deslocamento correspondente à faixa de valores de pixel do pixel atualmente restaurado pode ser selecionado, a partir de valores de deslocamento.
[00184] Se pelo menos um parâmetro de deslocamento de um bloco esquerdo e um bloco superior do bloco atual for idêntico ao parâmetro de deslocamento do bloco atual, com base nas informações sobre mesclagem de deslocamento, na operação 71, o parâmetro de deslocamento do bloco atual pode ser restaurado da mesma forma que pelo menos um parâmetro de deslocamento do bloco esquerdo e do bloco superior do bloco atual. Além disso, se pelo menos um parâmetro de deslocamento do bloco esquerdo e do bloco superior do bloco atual for diferente do parâmetro de deslocamento do bloco atual, baseado nas informações sobre mesclagem de deslocamento, o parâmetro de deslocamento do bloco atual pode ser analisado a partir do fluxo de bits recebido, e pode ser restaurado.
[00185] Se valores diferenciais dos valores de deslocamento forem analisados a partir do fluxo de bits na operação 71, restauração por previsão pode ser efetuada nos valores de deslocamento do bloco atual, combinando informações diferenciais entre valores de deslocamento e informações de deslocamento de blocos vizinhos.
[00186] Restauração por previsão pode ser executada em pelo menos um componente de cor dentre o componente de luminância e os componentes de crominância do bloco atual, por referência a cada um dos parâmetros de deslocamento na operação 71.
[00187] Portanto, o aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20 usando os SAO, de acordo com uma forma de realização, classificam valores de pixel, de acordo com uma característica de imagem, tais como tipos marginais de blocos de imagem ou seus tipos de faixa de valores de pixel, codificam e transmitem ou recebem e decodificam um valor de deslocamento, que é um valor de erro médio entre valores de pixel classificados tendo a mesma característica, e ajustam valores de pixel, que não são previstos dentre pixels restaurados, de acordo com o valor de deslocamento, minimizando, assim, um erro entre uma imagem original e uma imagem restaurada.
[00188] O aparelho para codificar vídeo 10 e o aparelho para decodificar vídeo 20, segundo uma forma de realização, podem dividir blocos, que são divididos a partir de dados de vídeo em unidades de codificação de uma estrutura em árvore, e determinar um deslocamento definido de acordo com a classificação de pixels para cada unidade de codificação máxima ou cada unidade de codificação, conforme acima descrito. Um método e aparelho para codificar vídeo e um método e aparelho para decodificar vídeo, com base em unidades de codificação e unidades de transformação tendo uma estrutura em árvore, de acordo com uma forma de realização, serão descritos com referência às Figs. 7 a 20 abaixo.
[00189] A Fig. 8 é um diagrama de blocos de um aparelho para codificar vídeo 100, baseado em unidades de codificação tendo uma estrutura em árvore, de acordo com uma forma de realização da presente invenção.
[00190] O aparelho para codificar vídeo 100 envolvendo previsão de vídeo com base em unidades de codificação tendo a estrutura em árvore, de acordo com uma forma de realização, inclui um divisor da unidade de codificação máxima 110, um determinador da unidade de codificação 120, e uma unidade de saída 130. Para conveniência de descrição, o aparelho codificador de vídeo 100 envolvendo previsão de vídeo, com base em unidades de codificação tendo a estrutura em árvore, de acordo com uma forma de realização, será doravante referido como o "aparelho para codificar vídeo 100".
[00191] O divisor da unidade de codificação máxima 110 pode dividir um quadro atual com base em uma unidade de codificação máxima, para o quadro atual de uma imagem. Se o quadro atual for maior que a unidade de codificação máxima, dados de imagem do quadro atual podem ser divididos em pelo menos uma unidade de codificação máxima. A unidade de codificação máxima, de acordo com uma forma de realização da presente invenção, pode ser uma unidade de dados tendo um tamanho de 32x32, 64x64, 128x128, 256x256 etc, em que um formato da unidade de dados é um quadrado com uma largura e comprimento em quadrados de 2. Os dados de imagem podem ser emitidos para o determinador da unidade de codificação 120, de acordo com pelo menos uma unidade de codificação máxima.
[00192] Uma unidade de codificação, de acordo com uma forma de realização da presente invenção, pode ser caracterizada por um tamanho máximo e uma profundidade. A profundidade denota um número de vezes que a unidade de codificação é dividida espacialmente a partir da unidade de codificação máxima, e conforme a profundidade aumenta, unidades de codificação mais profundas, de acordo com profundidades, podem ser divididas, a partir da unidade de codificação máxima em uma unidade de codificação mínima. Uma profundidade da unidade de codificação máxima é uma profundidade mais superior, e uma profundidade da unidade de codificação mínima é uma profundidade mais inferior. Uma vez que um tamanho de uma unidade de codificação correspondente a cada profundidade diminui, à medida que a profundidade da unidade de codificação máxima aumenta, uma unidade de codificação correspondente a uma profundidade superior pode incluir uma pluralidade de unidades de codificação correspondentes a menores profundidades.
[00193] Conforme acima descrito, os dados de imagem do quadro atual são divididos nas unidades de codificação máxima, de acordo com o tamanho máximo da unidade de codificação, e cada uma das unidades de codificação máxima pode incluir unidades de codificação mais profundas, que são divididas de acordo com profundidades. Uma vez que a unidade de codificação máxima, de acordo com uma forma de realização da presente invenção, é dividida de acordo com profundidades, os dados de imagem de um domínio espacial incluído na unidade de codificação máxima podem ser classificados hierarquicamente, de acordo com profundidades.
[00194] Uma profundidade máxima e um tamanho máximo de uma unidade de codificação, que limitam o número total de vezes que uma altura e uma largura da unidade de codificação máxima são divididas hierarquicamente, podem ser predeterminados.
[00195] O determinador da unidade de codificação 120 codifica pelo menos uma região de divisão obtida, dividindo-se uma região da unidade de codificação máxima, de acordo com profundidades, e determina uma profundidade para emitir dados de imagem finalmente codificados, de acordo com pelo menos uma região de divisão. Em outras palavras, o determinador da unidade de codificação 120 determina uma profundidade codificada, por codificação dos dados de imagem nas unidades de codificação mais profundas, de acordo com profundidades, de acordo com a unidade de codificação máxima do quadro atual, e seleção de uma profundidade tendo o menor erro de codificação. Assim, os dados de imagem codificados da unidade de codificação correspondente à profundidade codificada determinada são finalmente emitidos. Além disso, as unidades de codificação correspondentes à profundidade codificada podem ser consideradas como unidades de codificação codificadas.
[00196] A profundidade codificada determinada e os dados de imagem codificados, de acordo com a profundidade codificada determinada, são emitidos para a unidade de saída 130.
[00197] Os dados de imagem na unidade de codificação máxima são codificados, com base nas unidades de codificação mais profundas correspondentes a pelo menos uma profundidade igual ou inferior à profundidade máxima, e resultados de codificação dos dados de imagem são comparados, com base em cada uma das unidades de codificação mais profundas. Uma profundidade tendo o menor erro de codificação pode ser selecionada, depois de comparar os erros de codificação das unidades de codificação mais profundas. Pelo menos uma profundidade codificada pode ser selecionada para cada unidade de codificação máxima.
[00198] O tamanho da unidade de codificação máxima é dividido, quando uma unidade de codificação é hierarquicamente dividida, de acordo com profundidades, e quando o número de unidades de codificação aumenta. Além disso, mesmo se unidades de codificação corresponderem à mesma profundidade em uma unidade de codificação máxima, é determinada a necessidade de se dividir cada uma das unidades de codificação correspondentes à mesma profundidade em uma menor profundidade, medindo-se um erro de codificação dos dados de imagem de cada unidade da codificação, em separado. Nesse sentido, mesmo quando dados de imagem forem incluídos em uma unidade de codificação máxima, os dados de imagem são divididos em regiões, de acordo com as profundidades, e os erros de codificação podem diferir, de acordo com regiões naquela unidade de codificação máxima e, assim, as profundidades codificadas podem diferir, de acordo com regiões nos dados de imagem. Assim, uma ou mais profundidades codificadas podem ser determinadas em uma unidade de codificação máxima, e os dados de imagem da unidade de codificação máxima podem ser divididos, de acordo com unidades de codificação de pelo menos uma profundidade codificada.
[00199] Nesse sentido, o determinador da unidade de codificação 120 pode determinar unidades de codificação tendo uma estrutura em árvore incluída na unidade de codificação máxima. As 'unidades de codificação tendo uma estrutura em árvore', de acordo com uma forma de realização da presente invenção, incluem unidades de codificação, que correspondem a uma profundidade determinada como sendo a profundidade codificada, dentre todas as unidades de codificação mais profundas incluídas na unidade de codificação máxima. Uma unidade de codificação de uma profundidade codificada pode ser determinada hierarquicamente, de acordo com profundidades na mesma região da unidade de codificação máxima, e pode ser determinada de forma independente em diferentes regiões. Da mesma forma, uma profundidade codificada em uma região atual pode ser determinada independentemente de uma profundidade codificada em outra região.
[00200] Uma profundidade máxima, de acordo com uma forma de realização da presente invenção, é um índice relacionado ao número de vezes de divisão, a partir de uma unidade de codificação máxima até uma unidade de codificação mínima. Uma primeira profundidade máxima, de acordo com uma forma de realização da presente invenção, pode denotar o número total de vezes de divisão, a partir da unidade de codificação máxima até a unidade de codificação mínima. Uma segunda profundidade máxima, de acordo com uma forma de realização da presente invenção, pode denotar o número total de níveis de profundidade, a partir da unidade de codificação máxima até a unidade de codificação mínima. Por exemplo, quando uma profundidade da unidade da codificação máxima for 0, uma profundidade de uma unidade de codificação, em que a unidade de codificação máxima é dividida uma vez, pode ser definida como 1, e uma profundidade de uma unidade de codificação, em que a unidade de codificação máxima é dividida duas vezes, pode ser definida como 2. Aqui, se a unidade de codificação mínima for uma unidade de codificação, em que a unidade de codificação máxima é dividida quatro vezes, 5 níveis de profundidade de profundidades 0, 1, 2, 3 e 4 existem e, portanto, a primeira profundidade máxima pode ser definida como 4, e a segunda profundidade máxima pode ser definida como 5.
[00201] Codificação por previsão e transformação podem ser realizadas, de acordo com a unidade de codificação máxima. A codificação por previsão e a transformação são, além disso, executadas com base nas unidades de codificação mais profundas, de acordo com uma profundidade igual ou profundidades menores que a profundidade máxima, de acordo com a unidade de codificação máxima. Transformação pode ser realizada, de acordo com o método de transformação ortogonal, ou transformação de número inteiro.
[00202] Uma vez que o número de unidades de codificação mais profundas aumenta, sempre que a unidade de codificação máxima é dividida, de acordo com profundidades, codificação, incluindo a codificação por previsão e a transformação, é realizada em todas as unidades de codificação mais profundas geradas, quando a profundidade aumenta. Para conveniência de descrição, a codificação por previsão e a transformação serão agora descritas, com base em uma unidade de codificação de uma profundidade atual, em uma unidade de codificação máxima.
[00203] O aparelho para codificar vídeo 100 pode selecionar, de forma variável, um tamanho ou formato de uma unidade de dados para codificar os dados de imagem. Para codificar os dados de imagem, operações, tais como codificação por previsão, transformação, e codificação por entropia, são executadas e, neste momento, a mesma unidade de dados pode ser usada para todas as operações, ou diferentes unidades de dados podem ser utilizadas para cada operação.
[00204] Por exemplo, aparelho para codificar vídeo 100 pode selecionar, não só uma unidade de codificação para codificar os dados de imagem, mas também uma unidade de dados diferente da unidade de codificação, a fim de realizar a codificação por previsão nos dados de imagem na unidade de codificação.
[00205] Para realizar codificação por previsão na unidade de codificação máxima, a codificação por previsão pode ser realizada com base em uma unidade de codificação correspondente a uma profundidade codificada, ou seja, com base em uma unidade de codificação, que não é mais dividida em unidades de codificação correspondentes a uma menor profundidade. A seguir, a unidade de codificação, que não é mais dividida e se torna uma unidade básica para codificação por previsão, será agora referida como uma 'unidade de previsão'. Uma partição obtida, dividindo-se a unidade de previsão, pode incluir uma unidade de previsão ou uma unidade de dados obtida, dividindo-se pelo menos uma dentre a altura e largura da unidade de previsão. A partição é uma unidade de dados dividida a partir da unidade de previsão da unidade de codificação, e a unidade de previsão pode ser uma partição tendo o mesmo tamanho que a unidade de codificação.
[00206] Por exemplo, quando uma unidade de codificação de 2Nx2N (onde N é um número inteiro positivo) não é mais dividida e se torna uma unidade de previsão de 2Nx2N, e um tamanho de uma partição pode ser 2Nx2N, 2NxN, Nx2N ou NxN. Exemplos de um tipo de partição incluem partições simétricas, que são obtidas, dividindo-se simetricamente uma altura ou largura da unidade de previsão, partições obtidas, dividindo-se assimetricamente a altura ou largura da unidade de previsão, como 1:n ou n:1, partições que são obtidas, dividindo-se geometricamente a unidade de previsão, e partições tendo formatos arbitrários.
[00207] Um modo de previsão da unidade de previsão pode ser pelo menos aquele dentre um modo intra, um modo inter, e um modo ignorar. Por exemplo, o modo intra ou o modo inter pode ser executado na partição de 2Nx2N, 2NxN, Nx2N ou NxN. Além disso, o modo ignorar pode ser realizado somente na partição de 2Nx2N. A codificação é realizada independentemente em uma unidade de previsão em uma unidade de codificação, selecionando, assim, um modo de previsão tendo um menor erro de codificação.
[00208] O aparelho para codificar vídeo 100, além disso, pode executar a transformação nos dados de imagem em uma unidade de codificação, com base não apenas na unidade de codificação para codificar os dados de imagem, mas também com base em uma unidade de dados, que é diferente da unidade de codificação.
[00209] Para realizar a transformação na unidade de codificação, a transformação pode ser realizada com base em uma unidade de dados tendo um tamanho menor ou igual à unidade de codificação. Por exemplo, a unidade de dados pode incluir uma unidade de dados para um modo intra e uma unidade de transformação para um modo inter.
[00210] Uma profundidade de transformação, indicando o número de vezes de divisão para alcançar a unidade de transformação, por divisão da altura e largura da unidade de codificação, pode ser também definida na unidade de transformação. Por exemplo, em uma unidade de codificação atual de 2Nx2N, uma profundidade de transformação pode ser 0, quando o tamanho de uma unidade de transformação for também 2Nx2N, pode ser 1, quando cada uma dentre a altura e a largura da unidade de codificação atual for dividida em duas partes iguais, totalmente dividida em 4 A 1 unidades de transformação, e o tamanho da unidade de transformação for, portanto, NxN, e pode ser 2, quando cada uma dentre a altura e a largura da unidade de codificação atual for dividida em quatro partes iguais, totalmente dividida em 4 A 2 unidades de transformação, e o tamanho da unidade de transformação for, assim, N/2xN/2. Por exemplo, a unidade de transformação pode ser definida, de acordo com uma estrutura em árvore hierárquica, em que uma unidade de transformação de uma profundidade de transformação superior é dividida em quatro unidades de transformação de uma menor profundidade de transformação, de acordo com as características hierárquicas de uma profundidade de transformação.
[00211] Da mesma forma que para a unidade de codificação, a unidade de transformação na unidade de codificação pode ser recursivamente dividida em regiões com menores tamanhos, para que a unidade de transformação possa ser determinada de forma independente em unidades de regiões. Assim, dados residuais na unidade de codificação podem ser divididos, de acordo com a transformação tendo a estrutura em árvore, de acordo com profundidades de transformação.
[00212] Codificar informações, de acordo com unidades de codificação correspondentes a uma profundidade codificada, requer não só informações sobre a profundidade codificada, mas também sobre informações relacionadas à codificação por previsão e transformação. Nesse sentido, o determinador da unidade de codificação 120, não só determina uma profundidade codificada tendo um menor erro de codificação, mas também determina um tipo de partição em uma unidade de previsão, um modo de previsão de acordo com unidades de previsão, e um tamanho de uma unidade de transformação para transformação.
[00213] Um método para determinar uma unidade de codificação, de acordo com uma estrutura em árvore, em uma unidade de codificação máxima, uma unidade de previsão, uma partição e uma unidade de transformação, de acordo com formas de realização da presente invenção, será descrito em detalhes mais tarde com referência às Figs. 7 a 19.
[00214] O determinador da unidade de codificação 120 pode medir um erro de codificação das unidades de codificação mais profundas, de acordo com profundidades usando Otimização de Taxa-distorção, baseado em multiplicadores de Lagrange.
[00215] A unidade de saída 130 emite os dados de imagem da unidade de codificação máxima, que são codificados baseado em pelo menos uma profundidade codificada, determinada pelo determinador da unidade de codificação 120, e informações sobre o modo de codificação, de acordo com a profundidades codificadas, em fluxos de bits.
[00216] Os dados de imagem codificados podem ser obtidos, por codificação de dados residuais de uma imagem.
[00217] As informações sobre o modo de codificação, de acordo com a profundidade codificada, podem incluir informações sobre a profundidade codificada, sobre o tipo de partição na unidade de previsão, o modo de previsão, e o tamanho da unidade de transformação.
[00218] As informações sobre a profundidade codificada podem ser definidas, usando informações de divisão, de acordo com profundidades, que indicam se a codificação foi executada em unidades de codificação de uma menor profundidade, em vez de uma profundidade atual. Se a profundidade atual da unidade de codificação atual for a profundidade codificada, dados de imagem na unidade de codificação atual são codificados e emitidos e, portanto, as informações de divisão podem ser definidas para não dividir a unidade de codificação atual em uma menor profundidade. Alternativamente, se a profundidade atual da unidade de codificação atual não for a profundidade codificada, a codificação é realizada na unidade de codificação da menor profundidade e, portanto, as informações de divisão podem ser definidas para dividir a unidade de codificação atual, para obter as unidades de codificação da menor profundidade.
[00219] Se a profundidade atual não for a profundidade codificada, codificação é realizada na unidade de codificação, que é dividida na unidade de codificação da menor profundidade. Uma vez que pelo menos uma unidade de codificação da menor profundidade existe em uma unidade de codificação da profundidade atual, a codificação é executada repetidamente em cada unidade de codificação da menor profundidade e, portanto, a codificação pode ser recursivamente realizada para as unidades de codificação tendo a mesma profundidade.
[00220] Uma vez que as unidades de codificação tendo uma estrutura em árvore são determinadas para uma unidade de codificação máxima, e informações sobre pelo menos um modo de codificação são determinadas para uma unidade de codificação de uma profundidade codificada, informações sobre pelo menos um modo de codificação podem ser determinadas para uma unidade de codificação máxima. Além disso, uma profundidade codificada dos dados de imagem da unidade de codificação máxima pode ser diferente, de acordo com posições, uma vez que os dados de imagem são hierarquicamente divididos de acordo com profundidades e, portanto, informações sobre a profundidade codificada e o modo de codificação podem ser definidas para os dados de imagem.
[00221] Por conseguinte, a unidade de saída 130 pode atribuir informações de codificação sobre uma profundidade codificada correspondente e um modo de codificação a pelo menos uma dentre a unidade de codificação, a unidade de previsão, e uma unidade mínima incluída na unidade de codificação máxima.
[00222] A unidade mínima, de acordo com uma forma de realização da presente invenção, é uma unidade de dados retangulares obtida, dividindo-se a unidade de codificação mínima, que constitui a menor profundidade, por 4. Alternativamente, a unidade mínima pode ser uma unidade máxima de dados retangulares, que pode ser incluída em todas as unidades de codificação, unidades de previsão, unidades de partição e unidades de transformação, incluídas na unidade de codificação máxima.
[00223] Por exemplo, as informações de codificação emitidas pela unidade de saída 130 podem ser classificadas em informações de codificação, de acordo com unidades de codificação, e informações de codificação, de acordo com unidades de previsão. As informações de codificação, de acordo com as unidades de codificação, podem incluir as informações sobre o modo de previsão e sobre o tamanho das partições. As informações de codificação, de acordo com as unidades de previsão, podem incluir informações sobre uma direção estimada de um modo inter, sobre um índice de imagem de referência do modo inter, sobre um vetor de movimento, sobre um componente de crominância, de um modo intra, e sobre um método de interpolação do modo intra. Além disso, informações sobre um tamanho máximo da unidade de codificação, definidas de acordo com GOPs, fatias, ou quadros, e informações sobre uma profundidade máxima, podem ser inseridas num cabeçalho de um fluxo de bits, um conjunto de parâmetros de sequência, ou um conjunto de parâmetros de quadro.
[00224] Além disso, informações sobre um tamanho máximo de uma unidade de transformação permitidas em relação ao vídeo atual, e informações sobre um tamanho mínimo da unidade de transformação, podem ser emitidas por meio do cabeçalho do fluxo de bits, o conjunto de parâmetros de sequência, ou o conjunto de parâmetros de quadro. A unidade de saída 130 pode codificar e emitir informações de referência, informações de previsão bidirecional, informações de tipo de fatia, incluindo um quarto tipo de fatia etc., relativas à previsão descrita com referência às Figuras 1 a 6.
[00225] No aparelho para codificar vídeo 100, a unidade de codificação mais profunda pode ser uma unidade de codificação obtida, dividindo-se uma altura ou largura de uma unidade de codificação de uma profundidade superior, que está uma camada acima, por dois. Em outras palavras, quando o tamanho da unidade de codificação da profundidade atual for 2Nx2N, o tamanho da unidade de codificação da menor profundidade é NxN. Além disso, a unidade de codificação da profundidade atual tendo o tamanho de 2Nx2N pode incluir no máximo 4 da unidade de codificação da menor profundidade.
[00226] Nesse sentido, o aparelho para codificar vídeo 100 pode formar as unidades de codificação tendo a estrutura em árvore, determinando unidades de codificação tendo um formato ideal e um tamanho ideal para cada unidade de codificação máxima, baseado no tamanho da unidade de codificação máxima e na profundidade máxima determinada, tendo em conta características do quadro atual. Além disso, uma vez que codificação pode ser realizada em cada unidade de codificação máxima usando qualquer um dos vários modos de previsão e transformações, um modo de codificação ideal pode ser determinado, considerando características da unidade de codificação de vários tamanhos de imagem.
[00227] Assim, se uma imagem tendo alta resolução ou grande quantidade de dados for codificada em um macrobloco convencional, um número de macroblocos por quadro aumenta excessivamente. Por conseguinte, um número de segmentos de informações compactadas, gerados para cada macrobloco aumenta e, assim, é difícil transmitir as informações compactadas, e a eficiência de compressão de dados diminui. No entanto, usando o aparelho para codificar vídeo 100, a eficiência de compressão de imagem pode ser aumentada, visto que uma unidade de codificação é ajustada, enquanto que considerando características de uma imagem, ao mesmo tempo aumentando um tamanho máximo de uma unidade de codificação, ao considerar um tamanho da imagem.
[00228] O aparelho para codificar vídeo 100 da Fig. 8 pode executar uma operação do aparelho para codificar vídeo 10 acima descrito com referência à Fig. 1.
[00229] O determinador da unidade de codificação 120 pode executar uma operação da unidade determinadora de deslocamento 12 do aparelho para codificar vídeo 10. O determinador da unidade de codificação 120 pode determinar um valor de deslocamento para cada classe marginal, ao classificar os valores de pixel de acordo com os tipos marginais para cada unidade de codificação máxima, ou determinar um valor de deslocamento para cada faixa de valores de pixel, ao classificar valores de pixel de acordo com tipos de faixa de valores de pixel. O valor de deslocamento de cada grupo de pixels, como a classe marginal ou a faixa de valores de pixel, pode ser um valor de erro médio entre pixels restaurados e pixels originais incluídos em um grupo de pixels correspondente. Como outro exemplo, a classe marginal e o valor de deslocamento ou a faixa de valores de pixel e o valor de deslocamento podem ser determinados para cada unidade de dados predeterminada, como uma unidade de codificação, uma unidade de previsão e uma unidade de transformação.
[00230] A unidade de saída 130 pode codificar o tipo de deslocamento e valores de deslocamento dentre parâmetros de deslocamento determinados para cada unidade de codificação máxima. Em um caso, onde o parâmetro de deslocamento é determinado para cada unidade de dados predeterminada, como a unidade de codificação, a unidade de previsão e a unidade de transformação, o tipo de deslocamento e valores de deslocamento podem ser codificados como parâmetros de uma unidade de dados correspondente.
[00231] A unidade de saída 130 pode executar codificação por previsão em um parâmetro de deslocamento atual de uma unidade de codificação máxima atual, fazendo referência aos parâmetros de deslocamento vizinhos das unidades vizinhas de codificação máxima. A unidade de saída 130 pode codificar informações sobre mesclagem de deslocamento para a unidade de codificação máxima atual, sem codificar o parâmetro de deslocamento atual, se pelo menos um dos parâmetros de deslocamento vizinhos for idêntico ao parâmetro de deslocamento atual. A unidade de saída 130 pode codificar as informações sobre mesclagem de deslocamento e o parâmetro de deslocamento atual para a unidade de codificação máxima atual, se os parâmetros de deslocamento vizinhos e o parâmetro de deslocamento atual forem diferentes entre si.
[00232] A Fig. 9 é um diagrama de blocos de um aparelho para decodificar vídeo 200, com base em unidades de codificação tendo uma estrutura em árvore, de acordo com uma forma de realização da presente invenção.
[00233] O aparelho para decodificar vídeo 200 envolvendo previsão de vídeo com base em unidades de codificação tendo a estrutura em árvore, de acordo com uma forma de realização, inclui um receptor 210, um extrator de informações de codificação e dados de imagem 220, e um decodificador de dados de imagem 230. Para conveniência de descrição, o aparelho para decodificar vídeo 200 envolvendo previsão de vídeo, com base em unidades de codificação tendo a estrutura em árvore, de acordo com uma forma de realização, será doravante referido como o "aparelho para decodificar vídeo 200".
[00234] Definições de vários termos, tais como uma unidade de codificação, uma profundidade, uma unidade de previsão, uma unidade de transformação, e informações sobre vários modos de codificação, para diversas operações do aparelho para decodificar vídeo 200, são idênticas às descritas com referência à Fig. 7 e ao aparelho para codificar vídeo 100.
[00235] O receptor 210 recebe e analisa um fluxo de bits de um vídeo codificado. O extrator de informações de codificação e dados de imagem 220 extrai dados de imagem codificados para cada unidade de codificação a partir do fluxo de bits analisado, no qual as unidades de codificação têm uma estrutura em árvore, de acordo com cada unidade de codificação máxima, e emite os dados de imagem extraídos para o decodificador de dados de imagem 230. O extrator de informações de codificação e dados de imagem 220 pode extrair informações sobre um tamanho máximo de uma unidade de codificação de um quadro atual, de um cabeçalho sobre o quadro atual ou SPS.
[00236] Além disso, o extrator de informações de codificação e dados de imagem 220 extrai informações sobre uma profundidade codificada e um modo de codificação para as unidades de codificação tendo uma estrutura em árvore, de acordo com cada unidade de codificação máxima, do fluxo de bits analisado. As informações extraídas sobre a profundidade codificada e o modo de codificação são emitidas para o decodificador de dados de imagem 230. Em outras palavras, os dados de imagem em um fluxo de bits são divididos na unidade de codificação máxima, para que o decodificador de dados de imagem 230 decodifique os dados de imagem para cada unidade de codificação máxima.
[00237] As informações sobre a profundidade codificada e o modo de codificação, de acordo com a unidade de codificação máxima, podem ser definidas para obter informações sobre pelo menos uma unidade de codificação correspondente à profundidade codificada, e informações sobre um modo de codificação podem incluir informações sobre um tipo de partição de uma unidade de codificação correspondente à profundidade codificada, sobre um modo de previsão, e um tamanho de uma unidade de transformação. Além disso, informações de divisão, de acordo com profundidades, podem ser extraídas como as informações sobre a profundidade codificada.
[00238] As informações sobre a profundidade codificada e o modo de codificação, de acordo com cada unidade de codificação máxima extraída pelo extrator de informações de codificação e dados de imagem 220, são informações sobre uma profundidade codificada e um modo de codificação determinado para gerar um menor erro de codificação quando um codificador, tal como o aparelho para codificar vídeo 100, executa repetidamente codificação para cada unidade de codificação mais profunda, de acordo com profundidades, de acordo com cada unidade de codificação máxima. Por conseguinte, o aparelho para decodificar vídeo 200 pode restaurar uma imagem por decodificação dos dados de imagem, de acordo com uma profundidade codificada e um modo de codificação, que gera o menor erro de codificação.
[00239] Uma vez que as informações de codificação sobre a profundidade codificada e o modo de codificação podem ser atribuídas a uma unidade de dados predeterminada, dentre uma unidade de codificação correspondente, uma unidade de previsão e uma unidade mínima, o extrator de informações de codificação e dados de imagem 220 pode extrair as informações sobre a profundidade codificada e o modo de codificação, de acordo com as unidades de dados predeterminadas. As unidades de dados predeterminadas, às quais são atribuídas as mesmas informações sobre a profundidade codificada e o modo de codificação, podem ser inferidas como sendo as unidades de dados incluídas na mesma unidade de codificação máxima.
[00240] O decodificador de dados de imagem 230 restaura o quadro atual por decodificação dos dados de imagem em cada unidade de codificação máxima, com base nas informações sobre a profundidade codificada e o modo de codificação, de acordo com as unidades de codificação máxima. Em outras palavras, o decodificador de dados de imagem 230 pode decodificar os dados de imagem codificados, com base nas informações extraídas sobre o tipo de partição, o modo de previsão e a unidade de transformação para cada unidade de codificação dentre as unidades de codificação, tendo a estrutura em árvore, incluídas em cada unidade de codificação máxima. Um processo de decodificação pode incluir uma previsão, incluindo previsão intra e compensação de movimento, e uma transformação inversa. Transformação inversa pode ser executada, de acordo com o método de transformação ortogonal inversa ou transformação inversa de número inteiro.
[00241] O decodificador de dados de imagem 230 pode realizar previsão intra ou compensação de movimento, de acordo com uma partição e um modo de previsão de cada unidade de codificação, com base nas informações sobre o tipo de partição e o modo de previsão da unidade de previsão da unidade de codificação, de acordo com profundidades codificadas.
[00242] Além disso, o decodificador de dados de imagem 230 pode realizar transformação inversa, de acordo com cada unidade de transformação na unidade de codificação, com base nas informações sobre o tamanho da unidade de transformação da unidade de codificação, de acordo com profundidades codificadas, a fim de executar a transformação inversa, de acordo com as unidades de codificação máxima.
[00243] O decodificador de dados de imagem 230 pode determinar pelo menos uma profundidade codificada de uma unidade de codificação máxima atual usando informações de divisão, de acordo com profundidades. Se as informações de divisão indicarem que dados de imagem não são mais divididos na profundidade atual, a profundidade atual é uma profundidade codificada. Nesse sentido, o decodificador de dados de imagem 230 pode decodificar dados codificados de pelo menos uma unidade de codificação correspondente a cada profundidade codificada na unidade de codificação máxima atual, usando as informações sobre o tipo de partição da unidade de previsão, o modo de previsão e o tamanho da unidade de transformação para cada unidade de codificação correspondente à profundidade codificada, e emitir os dados de imagem da unidade de codificação máxima atual.
[00244] Em outras palavras, unidades de dados contendo as informações de codificação, incluindo as mesmas informações de divisão, podem ser reunidas, observando-se o conjunto de informações de codificação atribuído para a unidade de dados predeterminada dentre a unidade de codificação, a unidade de previsão e a unidade mínima, e as unidades de dados reunidas podem ser consideradas como sendo uma unidade de dados a ser decodificada pelo decodificador de dados de imagem 230 no mesmo modo de codificação. Decodificação na unidade de decodificação atual pode ser realizada, através da obtenção de informações sobre o modo de codificação para a unidade de codificação determinada, conforme acima descrito.
[00245] Além disso, o aparelho para decodificar vídeo 200 da Fig. 9 pode executar uma operação do aparelho para decodificar vídeo 20 acima descrito com referência à Fig. 2.
[00246] O receptor 210 e o extrator de informações de codificação e dados de imagem 220 podem executar uma operação da unidade analisadora de parâmetros de deslocamento 22 do aparelho para decodificar vídeo 20. O decodificador de dados de imagem 230 pode executar uma operação da unidade ajustadora de deslocamento 24 do aparelho para decodificar vídeo 20.
[00247] O extrator de informações de codificação e dados de imagem 220 pode restaurar um parâmetro de deslocamento atual da mesma forma que pelo menos um dos parâmetros de deslocamento vizinhos, em um caso onde informações sobre mesclagem de deslocamento são analisadas apenas a partir de um fluxo de bits sem um parâmetro de deslocamento para uma unidade de codificação máxima atual. Um parâmetro, que deve ser referido dentre os parâmetros de deslocamento vizinhos, pode ser determinado com base nas informações sobre mesclagem de deslocamento. O extrator de informações de codificação e dados de imagem 220 pode analisar e restaurar o parâmetro de deslocamento atual para a unidade de codificação máxima atual, a partir do fluxo de bits, se os parâmetros de deslocamento vizinhos e o parâmetro de deslocamento atual forem determinados como sendo diferentes entre si, com base nas informações sobre mesclagem de deslocamento para a unidade de codificação máxima atual analisada a partir do fluxo de bits.
[00248] O extrator de informações de codificação e dados de imagem 220 pode realizar restauração por previsão no parâmetro de deslocamento atual na unidade de codificação máxima atual, por referência aos parâmetros de deslocamento vizinhos das unidades de codificação máxima vizinhas.
[00249] O decodificador de dados de imagem 230 pode analisar um parâmetro de deslocamento para cada unidade de codificação máxima, a partir do fluxo de bits. Pode ser determinado, se um tipo de deslocamento da unidade de codificação máxima atual é um tipo marginal ou um tipo de faixa de valores de pixel, a partir dos parâmetros de deslocamento restaurados. Se o tipo de deslocamento da unidade de codificação máxima atual for o tipo marginal, uma classe marginal para cada pixel restaurado pode ser determinada, e um valor de deslocamento correspondente à classe marginal de cada pixel restaurado pode ser selecionado, a partir dos valores de deslocamento dos parâmetros de deslocamento. Se o tipo de deslocamento da unidade de codificação máxima atual for o tipo de faixa de valores de pixel, cada faixa de valores de pixel para cada pixel restaurado pode ser determinada, e um valor de deslocamento correspondente à faixa de valores de pixel de cada pixel restaurado pode ser selecionado a partir de valores de deslocamento analisados e incluídos nos parâmetros de deslocamento.
[00250] O decodificador de dados de imagem 230 pode gerar um pixel restaurado tendo um erro mínimo em relação a um pixel original, ajustando um valor de pixel restaurado correspondente por um valor de deslocamento correspondente a cada pixel restaurado. Como outro exemplo, em um caso onde o parâmetro de deslocamento for analisado para cada unidade de dados predeterminada, tal como uma unidade de codificação, uma unidade de previsão, e uma unidade de transformação, um valor de deslocamento correspondente a cada classe marginal pode ser restaurado para cada unidade de dados correspondente, ou um valor de deslocamento correspondente a cada faixa de valores de pixel pode ser restaurado.
[00251] Em conclusão, o aparelho para decodificar vídeo 200 pode obter informações sobre pelo menos uma unidade de codificação, que gere o menor erro de codificação, quando codificação for recursivamente executada para cada unidade de codificação máxima, e pode usar as informações para decodificar o quadro atual. Em outras palavras, as unidades de codificação tendo a estrutura em árvore, determinadas como sendo as unidades de codificação ideais em cada unidade de codificação máxima, podem ser decodificadas. Além disso, o tamanho máximo da unidade de codificação é determinado, considerando a resolução e uma quantidade de dados de imagem.
[00252] Nesse sentido, mesmo se dados de imagem tiverem alta resolução e uma grande quantidade de dados, os dados de imagem podem ser eficientemente decodificados e restaurados, usando um tamanho de uma unidade de codificação e um modo de codificação, que são adaptavelmente determinados, de acordo com características dos dados de imagem, por meio de informações sobre um modo de codificação ideal recebidas de um codificador.
[00253] A Fig. 10 é um diagrama para descrever um conceito de unidades de codificação, de acordo com uma forma de realização da presente invenção.
[00254] Um tamanho de uma unidade de codificação pode ser expresso em largura x altura, e pode ser 64 x 64, 32 x 32, 16 x 16 e 8 x 8. Uma unidade de codificação de 64 x 64 pode ser dividida em partições de 64 x 64, 64 x 32, 32 x 64 ou 32 x 32, e uma unidade de codificação de 32 x 32 pode ser dividida em partições de 32 x 32, 32 x 16, 16 x 32 ou 16 x 16, uma unidade de codificação de 16 x 16 pode ser dividida em partições de 16 x 16, 16 x 8, 8 x 16 ou 8 x 8, e uma unidade de codificação de 8 x 8 pode ser dividida em partições de 8 x 8, 8 x 4, 4 x 8 ou 4 x 4.
[00255] Em dados de vídeo 310, uma resolução é 1920 x 1080, um tamanho máximo de uma unidade de codificação é 64, e uma profundidade máxima é de 2. Nos dados de vídeo 320, uma resolução é 1920 x 1080, um tamanho máximo de uma unidade de codificação é 64, e uma profundidade máxima é de 3. Nos dados de vídeo 330, uma resolução é de 352 x 288, um tamanho máximo de uma unidade de codificação é 16, e uma profundidade máxima é de 1. A profundidade máxima mostrada na Fig. 10 denota um número total de divisões, a partir de uma unidade de codificação máxima até uma unidade de codificação mínima.
[00256] Se uma resolução for alta ou uma quantidade de dados for grande, um tamanho máximo de uma unidade de codificação pode ser grande, de modo a não só aumentar a eficiência de codificação, mas também para refletir com precisão as características de uma imagem. Consequentemente, o tamanho máximo da unidade de codificação dos dados 310 e 320 tendo a maior resolução que os dados de vídeo 330 pode ser 64.
[00257] Uma vez que a profundidade máxima dos dados de vídeo 310 é 2, unidades de codificação 315 dos dados de vídeo 310 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 64, e unidades de codificação com tamanhos de eixo longo de 32 e 16, uma vez que profundidades são aumentadas em duas camadas, dividindo-se duas vezes a unidade de codificação máxima. Entretanto, uma vez que a profundidade máxima dos dados de vídeo 330 é 1, unidades de codificação 335 dos dados de vídeo 330 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 16, e unidades de codificação com um tamanho de eixo longo de 8, visto que profundidades são aumentadas em uma camada, dividindo-se uma vez a unidade de codificação máxima.
[00258] Uma vez que a profundidade máxima dos dados de vídeo 320 é 3, unidades de codificação 325 dos dados de vídeo 320 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 64, e unidades de codificação tendo tamanhos de eixo longo de 8, 16 e 32, visto que as profundidades são aumentadas em 3 camadas, dividindo-se três vezes a unidade de codificação máxima. Conforme uma profundidade aumenta, informações detalhadas podem ser precisamente expressas.
[00259] A Fig. 11 é um diagrama de blocos de um codificador de imagens 400, com base em unidades de codificação, de acordo com uma forma de realização da presente invenção.
[00260] O codificador de imagens 400 executa operações do determinador da unidade de codificação 120 do aparelho para codificar vídeo 100, para codificar dados de imagem. Em outras palavras, um previsor intra 410 executa previsão intra nas unidades de codificação em um modo intra, dentre uma moldura atual 405, e um estimador de movimento 420, e um compensador de movimento 425 executa estimativa inter e compensação de movimento nas unidades de codificação em um modo inter dentre a moldura atual 405 usando a moldura atual 405, e uma moldura de referência 495.
[00261] Dados emitidos pelo previsor intra 410, o estimador de movimento 420 e o compensador de movimento 425 são emitidos como um coeficiente de transformação quantizada, através de um transformador 430 e um quantizador 440. O coeficiente de transformação quantizada é restaurado como dados em um domínio espacial, através de um quantizador inverso 460 e um transformador inverso 470, e os dados restaurados no domínio espacial são emitidos como a moldura de referência 495, após serem pós-processados, através de uma unidade de desbloqueio 480 e uma unidade de filtragem de circuito 490. O coeficiente de transformação quantizada pode ser emitido como um fluxo de bits 455, através de um codificador por entropia 450.
[00262] A fim de que o codificador de imagens 400 seja aplicado no aparelho para codificar vídeo 100, todos os elementos do codificador de imagem 400, ou seja, o previsor intra 410, o estimador de movimento 420, o compensador de movimento 425, o transformador 430, o quantizador 440, o codificador por entropia 450, o quantizador inverso 460, o transformador inverso 470, a unidade de desbloqueio 480 e a unidade de filtragem de circuito 490 executam operações com base em cada unidade de codificação, dentre unidades de codificação tendo uma estrutura em árvore, enquanto que considerando a profundidade máxima de cada unidade de codificação máxima.
[00263] Especificamente, o previsor intra 410, o estimador de movimento 420, e o compensador de movimento 425 determinam partições e um modo de previsão de cada unidade de codificação dentre as unidades de codificação tendo uma estrutura em árvore, enquanto que considerando o tamanho máximo e a profundidade máxima de uma unidade de codificação máxima atual, e o transformador 430 determina o tamanho da unidade de transformação em cada unidade de codificação dentre unidades de codificação tendo uma estrutura em árvore.
[00264] O codificador de imagens 400 pode classificar pixels, de acordo com um tipo marginal (ou uma faixa de valores de pixel) para cada unidade de codificação máxima da moldura de referência 495, determinar uma classe marginal (ou uma faixa de valores de pixel) para cada pixel restaurado, e determinar um valor de erro médio de pixels restaurados, que pertençam a cada classe marginal (ou faixa de valores cada pixel). Tipos de deslocamento e valores de deslocamento para cada unidade de codificação máxima podem ser codificados e transmitidos ou recebidos e decodificados.
[00265] A Fig. 12 é um diagrama de blocos de um decodificador de imagens 500, com base em unidades de codificação, de acordo com uma forma de realização da presente invenção.
[00266] Um analisador 510 analisa dados de imagem codificados a serem decodificados e informações sobre codificação necessárias para decodificação, a partir de um fluxo de bits 505. Os dados de imagem codificados são emitidos como dados quantizados inversos, através de um decodificador por entropia 520 e um quantizador inverso 530, e os dados quantizados inversos são restaurados como dados de imagem em um domínio espacial, através de um transformador inverso 540.
[00267] Um previsor intra 550 executa previsão intra em unidades de codificação, em um modo intra, em relação aos dados de imagem no domínio espacial, e um compensador de movimento 560 executa compensação de movimento em unidades de codificação, em um modo inter, usando uma moldura de referência 585.
[00268] Os dados de imagem no domínio espacial, que passaram pelo previsor intra 550 e o compensador de movimento 560, podem ser emitidos como uma moldura restaurada 595, após ser pós- processados através de uma unidade de desbloqueio 570 e uma unidade de filtragem de circuito 580. Além disso, os dados de imagem, que são pós-processados através da unidade de desbloqueio 570 e da unidade de filtragem de circuito 580, podem ser emitidos como a moldura de referência 585.
[00269] Para decodificar os dados de imagem no decodificador de dados de imagem 230 do aparelho para decodificar vídeo 200, o decodificador de imagens 500 pode realizar operações, que são executadas após o analisador 510.
[00270] A fim de que o decodificador de imagens 500 seja aplicado no aparelho para decodificar vídeo 200, todos os elementos do decodificador de imagem 500, ou seja, o analisador 510, o decodificador por entropia 520, o quantizador inverso 530, o transformador inverso 540, o previsor intra 550, o compensador de movimento 560, a unidade de desbloqueio 570 e a unidade de filtragem de circuito 580, executam operações com base em unidades de codificação tendo uma estrutura em árvore para cada unidade de codificação máxima.
[00271] Especificamente, a previsão intra 550 e o compensador de movimento 560 executam operações, com base em partições e um modo de previsão para cada uma das unidades de codificação tendo uma estrutura em árvore, e o transformador inverso 540 executa operações com base em um tamanho de uma unidade de transformação para cada unidade de codificação.
[00272] O decodificador de imagens 500 pode extrair parâmetros de deslocamento de unidades de codificação máxima, a partir de um fluxo de bits, e ajustar cada pixel restaurado para cada unidade de codificação máxima da moldura restaurada 595 por um valor de deslocamento correspondendo a uma classe marginal ou faixa de valores de pixel correspondente, usando o tipos de deslocamento e valores de deslocamento incluídos nos parâmetros de deslocamento.
[00273] A Fig. 13 é um diagrama ilustrando as unidades de codificação mais profundas, de acordo com profundidades e partições, de acordo com uma forma de realização da presente invenção.
[00274] O aparelho para codificar vídeo 100 e o aparelho para decodificar vídeo 200 usam unidades de codificação hierárquicas, a fim de considerar características de uma imagem. Uma altura máxima, uma largura máxima, e uma profundidade máxima de unidades de codificação podem ser adaptavelmente determinadas, de acordo com as características da imagem, ou podem ser definidas de forma diferente por um usuário. Tamanhos das unidades de codificação mais profundas, de acordo com profundidades, podem ser determinados, de acordo com o tamanho máximo predeterminado da unidade de codificação.
[00275] Em uma estrutura hierárquica 600 de unidades de codificação, de acordo com uma forma de realização da presente invenção, a altura máxima e a largura máxima das unidades de codificação são, cada qual, de 64, e a profundidade máxima é de 4. Visto que uma profundidade aumenta ao longo de um eixo vertical da estrutura hierárquica 600, a altura e largura da unidade de codificação mais profunda são, cada qual, divididas. Além disso, uma unidade de previsão e partições, que são as bases para codificação por previsão de cada unidade de codificação mais profunda, são mostradas ao longo de um eixo horizontal da estrutura hierárquica 600.
[00276] Em outras palavras, uma unidade de codificação 610 é uma unidade de codificação máxima na estrutura hierárquica 600, onde uma profundidade é 0 e um tamanho, ou seja, uma altura pela largura, é 64 x 64. A profundidade aumenta ao longo do eixo vertical, e uma unidade de codificação 620 tendo um tamanho de 32 x 32 e uma profundidade de 1, uma unidade de codificação 630 tendo um tamanho de 16 x 16 e uma profundidade de 2, uma unidade de codificação 640 tendo um tamanho de 8 x 8 e uma profundidade de 3, e uma unidade de codificação 650 tendo um tamanho de 4 x 4 e uma profundidade de 4, existem. A unidade de codificação 650 tendo o tamanho de 4 x 4 e a profundidade de 4 é uma unidade de codificação mínima.
[00277] A unidade de previsão e as partições de uma unidade de codificação são dispostas ao longo do eixo horizontal, de acordo com cada profundidade. Em outras palavras, se a unidade de codificação 610, tendo o tamanho de 64x64 e a profundidade de 0, for uma unidade de previsão, a unidade de previsão pode ser dividida em partições incluídas na unidade de codificação 610, ou seja, uma partição 610 tendo um tamanho de 64 x 64, partições 612 tendo o tamanho de 64 x 32, partições 614 tendo o tamanho de 32 x 64, ou partições 616 tendo o tamanho de 32 x 32.
[00278] Da mesma forma, uma unidade de previsão da unidade de codificação 620, tendo o tamanho de 32 x 32 e a profundidade de 1, pode ser dividida em partições incluídas na unidade de codificação 620, ou seja, uma partição 620 tendo um tamanho de 32 x 32, partições 622 tendo um tamanho de 32 x 16, partições 624 tendo um tamanho de 16 x 32, e partições 626 tendo um tamanho de 16 x 16.
[00279] Da mesma forma, uma unidade de previsão da unidade de codificação 630, tendo o tamanho de 16 x 16 e a profundidade de 2, pode ser dividida em partições incluídas na unidade de codificação 630, ou seja, uma partição tendo um tamanho de 16 x 16 incluída na unidade de codificação 630, partições 632 tendo um tamanho de 16 x 8, partições 634 tendo um tamanho de 8 x 16, e partições 636 tendo um tamanho de 8 x 8.
[00280] Da mesma forma, uma unidade de previsão da unidade de codificação 640, tendo o tamanho de 8 x 8 e a profundidade de 3, pode ser dividida em partições incluídas na unidade de codificação 640, ou seja, uma partição tendo um tamanho de 8 x 8 incluída na unidade de codificação 640, partições 642 tendo um tamanho de 8 x 4, partições 644 tendo um tamanho de 4 x 8, e partições 646 tendo um tamanho de 4 x 4.
[00281] A unidade de codificação 650, tendo o tamanho de 4 x 4 e a profundidade de 4, é a unidade de codificação mínima e uma unidade de codificação da profundidade mais inferior. Uma unidade de previsão da unidade de codificação 650 só é atribuída a uma partição tendo um tamanho de 4 x 4.
[00282] A fim de determinar pelo menos uma profundidade codificada das unidades de codificação, que constituem a unidade de codificação máxima 610, o determinador da unidade de codificação 120 do aparelho para codificar vídeo 100 executa codificação para unidades de codificação correspondentes a cada profundidade incluída na unidade de codificação máxima 610.
[00283] Um número de unidades de codificação mais profundas, de acordo com profundidades incluindo dados na mesma faixa e do mesmo tamanho, aumenta à medida que a profundidade aumenta. Por exemplo, quatro unidades de codificação correspondentes a uma profundidade de 2 são necessárias para dar cobertura a dados que estão incluídos em uma unidade de codificação correspondente a uma profundidade de 1. Nesse sentido, a fim de comparar resultados de codificação dos mesmos dados, de acordo com profundidades, a unidade de codificação correspondente à profundidade de 1 e quatro unidades de codificação correspondentes à profundidade de 2 são, cada qual, codificadas.
[00284] Para realizar codificação para uma profundidade atual dentre as profundidades, um menor erro de codificação pode ser escolhido para a profundidade atual, através da realização de codificação para cada unidade de previsão nas unidades de codificação correspondentes à profundidade atual, ao longo do eixo horizontal da estrutura hierárquica 600. Como alternativa, o menor erro de codificação pode ser procurado, comparando os menores erros de codificação, de acordo com profundidades, através da realização de codificação para cada profundidade, enquanto a profundidade aumenta ao longo do eixo vertical da estrutura hierárquica 600. Uma profundidade e uma partição com o menor erro de codificação na unidade de codificação 610 podem ser selecionadas como a profundidade codificada e um tipo de partição da unidade de codificação 610.
[00285] A Fig. 14 é um diagrama para descrever uma relação entre uma unidade de codificação 710 e unidades de transformação 720, de acordo com uma forma de realização da presente invenção.
[00286] O aparelho para codificar vídeo 100 ou 200 codifica ou decodifica uma imagem, de acordo com unidades de codificação tendo tamanhos menores ou iguais a uma unidade de codificação máxima para cada unidade de codificação máxima. Tamanhos de unidades de transformação para transformação durante a codificação podem ser selecionados, com base em unidades de dados, que não são maiores do que uma unidade de codificação correspondente.
[00287] Por exemplo, no aparelho para codificar vídeo 100 ou 200, se um tamanho da unidade de codificação 710 for 64 x 64, transformação pode ser realizada, usando as unidades de transformação 720 tendo um tamanho de 32 x 32.
[00288] Além disso, dados da unidade de codificação 710 tendo o tamanho de 64x64 podem ser codificados, por meio de transformação em cada uma das unidades de transformação tendo o tamanho de 32 x 32, 16 x 16, 8 x 8 e 4 x 4, que são menores do que 64 x 64 e, então, uma unidade de transformação tendo o menor erro de codificação pode ser selecionada.
[00289] A Fig. 15 é um diagrama para descrever informações de codificação de unidades de codificação, que correspondem a uma profundidade codificada, de acordo com uma forma de realização da presente invenção.
[00290] A unidade de saída 130 do aparelho para codificar vídeo 100 pode codificar e transmitir informações 800 sobre um tipo de partição, informações 810 sobre um modo de previsão, e informações 820 sobre um tamanho de uma unidade de transformação para cada unidade de codificação correspondente a uma profundidade codificada, como informações sobre um modo de codificação.
[00291] As informações 800 indicam informações sobre o formato de uma partição obtida, dividindo-se uma unidade de previsão de uma unidade de codificação atual, em que a partição é uma unidade de dados para codificação por previsão da unidade de codificação atual. Por exemplo, uma unidade de codificação atual CU_0 tendo um tamanho de 2Nx2N pode ser dividida em qualquer uma dentre a partição 802 tendo um tamanho de 2Nx2N, uma partição 804 tendo um tamanho de 2NxN, uma partição 806 tendo um tamanho de Nx2N, e uma partição 808 tendo um tamanho de NxN. Aqui, as informações 800 sobre um tipo de partição são definidas, para indicar uma dentre a partição 804 tendo um tamanho de 2NxN, a partição 806 tendo um tamanho de Nx2N, e a partição 808 tendo um tamanho de NxN.
[00292] As informações 810 indicam um modo de previsão de cada partição. Por exemplo, as informações 810 podem indicar um modo de codificação por previsão realizado em uma partição indicada pelas informações 800, ou seja, um modo intra 812, um modo inter 814, ou um modo ignorar 816.
[00293] As informações 820 indicam uma unidade de transformação a ser baseada, quando transformação é realizada em uma unidade de codificação atual. Por exemplo, a unidade de transformação pode ser uma primeira unidade de transformação intra 822, uma segunda unidade de transformação intra 824, uma primeira unidade de transformação inter 826, ou uma segundo unidade de transformação inter 828.
[00294] O extrator de informações de codificação e dados de imagem 220 do aparelho para decodificar vídeo 200 pode extrair e usar as informações 800, 810 e 820 para decodificação, de acordo com cada unidade de codificação mais profunda.
[00295] A Fig. 16 é um diagrama das unidades de codificação mais profundas, de acordo com profundidades, de acordo com uma forma de realização da presente invenção.
[00296] Informações de divisão podem ser usadas para indicar uma mudança de profundidade. As informações de divisão indicam se uma unidade de codificação de uma profundidade atual foi dividida em unidades de codificação de menor profundidade.
[00297] Uma unidade de previsão 910 para codificação por previsão de uma unidade de codificação 900, tendo uma profundidade de 0 e um tamanho de 2N_0x2N_0, pode incluir partições de um tipo de partição 912 tendo um tamanho de 2N_0x2N_0, um tipo de uma partição 914 tendo um tamanho de 2N_0xN_0, um tipo de partição 916 tendo um tamanho de N_0x2N_0, e um tipo de partição 918 tendo um tamanho de N_0xN_0. A Fig. 16 só ilustra os tipos de partição 912 a 918, que são obtidos, dividindo-se simetricamente a unidade de previsão 910, mas um tipo de partição não é por este aspecto limitado, e as partições da unidade de previsão 910 podem incluir partições assimétricas, partições tendo um formato predeterminado, e partições tendo um formato geométrico.
[00298] Codificação por previsão é executada repetidamente em uma partição tendo um tamanho de 2N_0x2N_0, duas partições tendo um tamanho de 2N_0xN_0, duas partições tendo um tamanho de N_0x2N_0, e quatro partições tendo um tamanho de N_0xN_0, de acordo com cada tipo de partição. A codificação por previsão em um modo intra e um modo inter pode ser efetuada nas partições tendo os tamanhos de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 e N_0xN_0. A codificação por previsão em um modo ignorar é realizada somente na partição com o tamanho de 2N_0x2N_0.
[00299] Erros de codificação, incluindo a codificação por previsão nos tipos de partição 912 a 918, são comparados, e o menor erro de codificação é determinado entre os tipos de partição. Se um erro de codificação for o menor deles em um dos tipos de partição 912 a 916, a unidade de previsão 910 não pode ser dividida em uma menor profundidade.
[00300] Se o erro de codificação for o menor deles no tipo de partição 918, uma profundidade é alterada de 0 para 1, para dividir o tipo de partição 918 na operação 920, e codificação é executada repetidamente nas unidades de codificação 930 tendo uma profundidade de 2 e um tamanho de N_0xN_0 para procurar um menor erro de codificação.
[00301] Uma unidade de previsão 940 para codificar por previsão as unidades de codificação 930, tendo uma profundidade de 1 e um tamanho de 2N_1x2N_1 (= N_0xN_0), pode incluir partições de um tipo de partição 942 tendo um tamanho de 2N_1x2N_1, um tipo de partição 944 tendo um tamanho de 2N_1xN_1, um tipo de partição 946 tendo um tamanho de N_1x2N_1, e um tipo de partição 948 tendo um tamanho de N1xN1.
[00302] Se um erro de codificação for o menor deles no tipo de partição 948, uma profundidade é alterada de 1 para 2, para dividir o tipo de partição 948 na operação 950, e codificação é executada repetidamente nas unidades de codificação 960, que têm uma profundidade de 2 e um tamanho de N_2xN_2, para procurar um menor erro de codificação.
[00303] Quando uma profundidade máxima for d, operação de divisão, de acordo com cada profundidade, pode ser realizada, até quando uma profundidade se torne d-1, e informações de divisão podem ser codificadas, até quando uma profundidade for uma de 0 a d-2. Em outras palavras, quando codificação for realizada, até quando a profundidade corresponder a d-1, depois de uma unidade de codificação correspondente a uma profundidade de d-2 ser dividida na operação 970, uma unidade de previsão 990 para codificar por previsão uma unidade de previsão 980, tendo uma profundidade de d-1 e um tamanho de 2N_(d-1)x2N_(d-1), pode incluir partições de um tipo de partição 992 tendo um tamanho de 2N_(d-1)x2N_(d-1), um tipo de partição 994 tendo um tamanho de 2N_(d-1)xN_(d-1), um tipo de partição 996 tendo um tamanho de N_(d-1)x2N_(d-1), e um tipo de partição 998 tendo um tamanho de N_(d-1)xN_(d-1).
[00304] Codificação por previsão pode ser executada repetidamente em uma partição tendo um tamanho de 2N_(d- 1)x2N_(d-1), duas partições tendo um tamanho de 2N_(d-1)xN_(d- 1), duas partições tendo um tamanho de N_(d-1)x2N_(d-1), quatro partições tendo um tamanho de N_(d-1)xN_(d-1), dentre os tipos de partição 992 a 998, para procurar um tipo de partição tendo um menor erro de codificação.
[00305] Mesmo quando o tipo de partição 998 tiver o menor erro de codificação, uma vez que uma profundidade máxima é d, uma unidade de codificação CU_(d-1) tendo uma profundidade de d-1 não é mais dividida em uma menor profundidade, e uma profundidade codificada para as unidades de codificação, constituindo uma unidade de codificação máxima atual 900, é determinada como sendo d-1, e um tipo de partição da unidade de codificação máxima atual 900 pode ser determinado como sendo N_(d-1)xN_(d-1). Além disso, uma vez que a profundidade máxima é d, e uma unidade de codificação mínima 980, tendo uma profundidade mais inferior de d-1, não é mais dividida em uma menor profundidade, informações de divisão para a unidade de codificação mínima 980 não são definidas.
[00306] Uma unidade de dados 999 pode ser uma 'unidade mínima' para a unidade de codificação máxima atual. Uma unidade mínima, de acordo com uma forma de realização da presente invenção, pode ser uma unidade de dados retangulares obtida, dividindo-se uma unidade de codificação mínima 980 por 4. Realizando a codificação repetidamente, o aparelho para codificar vídeo 100 pode selecionar uma profundidade tendo o menor erro de codificação, comparando erros de codificação, de acordo com profundidades da unidade de codificação 900, para determinar uma profundidade codificada, e definir um tipo de partição correspondente e um modo de previsão, como um modo de codificação da profundidade codificada.
[00307] Assim sendo, os menores erros de codificação, de acordo com profundidades, são comparados em todas as profundidades de 1 a d, e uma profundidade tendo o menor erro de codificação pode ser determinada como uma profundidade codificada. A profundidade codificada, o tipo de partição da unidade de previsão, e o modo de previsão, podem ser codificados e transmitidos como informações sobre um modo de codificação. Além disso, visto que uma unidade de codificação é dividida, de uma profundidade de 0 a uma profundidade codificada, só informações de divisão da profundidade codificada são definidas como 0, e informações de divisão das profundidades, excluindo a profundidade codificada, são definidas como 1.
[00308] O extrator de informações de codificação e dados de imagem 220 do aparelho para decodificar vídeo 200 pode extrair e usar as informações sobre a profundidade codificada e a unidade de previsão da unidade de codificação 900, para decodificar a partição 912. O aparelho para decodificar vídeo 200 pode determinar uma profundidade, em que informações de divisão são 0, como uma profundidade codificada, usando informações de divisão, de acordo com profundidades, e usar informações sobre um modo de codificação da profundidade correspondente para decodificação.
[00309] As Figs. 17 a 19 são diagramas para descrever uma relação entre unidades de codificação 1010, unidades de previsão 1060, e unidades de transformação 1070, de acordo com uma forma de realização da presente invenção.
[00310] As unidades de codificação 1010 são unidades de codificação tendo uma estrutura em árvore, correspondentes a profundidades codificadas, determinadas pelo aparelho para codificar vídeo 100 em uma unidade de codificação máxima. As unidades de previsão 1060 são partições de unidades de previsão de cada uma das unidades de codificação 1010, e as unidades de transformação 1070 são unidades de transformação de cada uma das unidades de codificação 1010.
[00311] Quando uma profundidade de uma unidade de codificação máxima for 0 nas unidades de codificação 1010, profundidades das unidades de codificação 1012 e 1054 são 1, profundidades das unidades de codificação 1014, 1016, 1018, 1028, 1050 e 1052 são 2, profundidades das unidades de codificação 1020, 1022, 1024, 1026, 1030, 1032 e 1048 são 3, e profundidades das unidades de codificação 1040, 1042, 1044 e 1046 são 4.
[00312] Nas unidades de previsão 1060, algumas unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050, 1052 e 1054 são obtidas, dividindo-se as unidades de codificação nas unidades de codificação 1010. Em outras palavras, tipos de partição nas unidades de codificação 1014, 1022, 1050 e 1054 têm um tamanho de 2NxN, tipos de partição nas unidades de codificação 1016, 1048 e 1052 têm um tamanho de Nx2N, e um tipo de partição da unidade de codificação 1032 tem um tamanho de NxN. Unidades de previsão e partições das unidades de codificação 1010 são menores ou iguais a cada unidade de codificação.
[00313] Transformação ou transformação inversa é realizada nos dados de imagem da unidade de codificação 1052, nas unidades de transformação 1070 em uma unidade de dados, que é menor do que a unidade de codificação 1052. Além disso, as unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050 e 1052 nas unidades de transformação 1070 são diferentes daquelas nas unidades de previsão 1060, em termos de tamanhos e formatos. Em outras palavras, os aparelhos para codificar e decodificar vídeo 100 e 200 podem executar previsão intra, estimativa de movimento, compensação de movimento, transformação e transformação inversa, individualmente em uma unidade de dados na mesma unidade de codificação.
[00314] Nesse sentido, codificação é recursivamente executada em cada uma das unidades de codificação tendo uma estrutura hierárquica em cada região de uma unidade de codificação máxima, para determinar uma unidade de codificação ideal e, assim, unidades de codificação tendo uma estrutura em árvore recursiva podem ser obtidas. Informações de codificação podem incluir informações de divisão sobre uma unidade de codificação, informações sobre um tipo de partição, informações sobre um modo de previsão, e informações sobre um tamanho de uma unidade de transformação. A Tabela 1 mostra as informações de codificação, que podem ser definidas pelos aparelhos para codificar e decodificar vídeo 100 e 200.
Figure img0004
[00315] A unidade de saída 130 do aparelho para codificar vídeo 100 pode emitir as informações codificadas através das unidades de codificação tendo uma estrutura em árvore, e o extrator de informações de codificação e dados de imagem 220 do aparelho para decodificar vídeo 200 pode extrair as informações de codificação sobre as unidades de codificação tendo uma estrutura em árvore, a partir de um fluxo de bits recebido.
[00316] Informações de divisão indicam se uma unidade de codificação atual foi dividida em unidades de codificação de menor profundidade. Se informações de divisão de profundidade atual d forem 0, uma profundidade, em que uma unidade de codificação atual não é mais dividida em uma menor profundidade, é uma profundidade codificada e, assim, informações sobre um tipo de partição, modo de previsão, e um tamanho de uma unidade de transformação podem ser definidas para a profundidade codificada. Se a unidade de codificação atual for ainda dividida, de acordo com as informações de divisão, codificação é independentemente realizada em quatro unidades de codificação divididas de menor profundidade.
[00317] Um modo de previsão pode ser de um modo intra, um modo inter, e um modo ignorar. O modo intra e o modo inter podem ser definidos em todos os tipos de partição, e o modo ignorar é definido apenas em um tipo de partição tendo um tamanho de 2Nx2N.
[00318] As informações sobre o tipo de partição podem indicar tipos de partição simétricos tendo tamanhos de 2Nx2N, 2NxN, Nx2N e NxN, que são obtidos, dividindo-se simetricamente uma altura ou largura de uma unidade de previsão, e tipos de partição assimétricos tendo tamanhos de 2NxnU, 2NxnD, nLx2N e nRx2N, que são obtidos, dividindo-se assimetricamente a altura ou largura da unidade de previsão. Os tipos de partição assimétricos, tendo os tamanhos de 2NxnU e 2NxnD, podem ser obtidos, respectivamente, dividindo-se a altura da unidade de previsão em 1:3 e 3:1, e os tipos de partição assimétricos, tendo os tamanhos de nLx2N e nRx2N, podem ser obtidos, respectivamente, dividindo-se a largura da unidade de previsão em 1:3 e 3:1.
[00319] O tamanho da unidade de transformação pode ser definido para ser de dois tipos no modo intra e de dois tipos no modo inter. Em outras palavras, se informações de divisão da unidade de transformação forem 0, o tamanho da unidade de transformação pode ser 2Nx2N, que é o tamanho da unidade de codificação atual. Se informações de divisão da unidade de transformação forem 1, as unidades de transformação podem ser obtidas, dividindo-se a unidade de codificação atual. Além disso, se um tipo de partição da unidade de codificação atual, tendo o tamanho de 2Nx2N, for um tipo de partição simétrico, um tamanho de uma unidade de transformação pode ser NxN, e se o tipo de partição da unidade de codificação atual for um tipo de partição assimétrico, o tamanho da unidade de transformação pode ser N/2xN/2.
[00320] As informações codificadas sobre unidades de codificação tendo uma estrutura em árvore podem incluir pelo menos uma dentre a unidade de codificação correspondente a uma profundidade codificada, uma unidade de previsão, e uma unidade mínima. A unidade de codificação correspondente à profundidade codificada pode incluir pelo menos uma dentre a unidade de previsão e uma unidade mínima, que contém as mesmas informações de codificação.
[00321] Nesse sentido, é determinado se as unidades de dados adjacentes foram incluídas na mesma unidade de codificação correspondente à profundidade codificada, comparando informações de codificação das unidades de dados adjacentes. Além disso, uma unidade de codificação correspondente a uma profundidade codificada é determinada, usando informações de codificação de uma unidade de dados e, portanto, uma distribuição de profundidades codificadas em uma unidade de codificação máxima pode ser determinada.
[00322] Nesse sentido, se uma unidade de codificação atual for prevista, com base em informações de codificação das unidades de dados adjacentes, informações de codificação das unidades de dados em unidades de codificação mais profundas adjacentes à unidade de codificação atual podem ser diretamente referidas e usadas.
[00323] Como alternativa, se uma unidade de codificação atual for prevista, com base em informações de codificação das unidades de dados adjacentes, unidades de dados adjacentes à unidade de codificação atual são pesquisadas, usando informações codificadas das unidades de dados, e as unidades de codificação adjacentes pesquisadas podem ser referidas para prever a unidade de codificação atual.
[00324] A Fig. 20 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de previsão ou uma partição, e uma unidade de transformação, de acordo com as informações sobre modo de codificação da Tabela 1.
[00325] Uma unidade de codificação máxima 1300 inclui unidades de codificação 1302, 1304, 1306, 1312, 1314, 1316 e 1318 de profundidades codificadas. Aqui, uma vez que a unidade de codificação 1318 é uma unidade de codificação de uma profundidade codificada, informações de divisão podem ser definidas como 0. Informações sobre um tipo de partição da unidade de codificação 1318 tendo um tamanho de 2Nx2N podem ser definidas para ser de um tipo de partição 1322 tendo um tamanho de 2Nx2N, um tipo de partição 1324 tendo um tamanho de 2NxN, um tipo de partição 1326 tendo um tamanho de Nx2N, um tipo de partição 1328 tendo um tamanho de NxN, um tipo de uma partição 1332 tendo um tamanho de 2NxnU, um tipo de partição 1334 tendo um tamanho de 2NxnD, um tipo de partição 1336 tendo um tamanho de nLx2N, e um tipo de partição 1338 tendo um tamanho de nRx2N.
[00326] Informações de divisão (sinalizador de tamanho da TU) de uma unidade de transformação é um tipo de índice de transformação. Um tamanho da unidade de transformação correspondente ao índice de transformação pode mudar, de acordo com um tipo de unidade de previsão ou um tipo de partição de uma unidade de codificação.
[00327] Quando o tipo de partição for definido para ser simétrico, ou seja, o tipo de partição 1322, 1324, 1326 ou 1328, uma unidade de transformação 1342 tendo um tamanho de 2Nx2N é definida, se as informações de divisão (sinalizador de tamanho da TU) de uma unidade de transformação forem 0, e uma unidade de transformação 1344 tendo um tamanho de NxN é definida, se um sinalizador de tamanho da TU for 1.
[00328] Quando o tipo de partição for definido para ser assimétrico, ou seja, o tipo de partição 1332, 1334, 1336 ou 1338, uma unidade de transformação 1352 tendo um tamanho de 2Nx2N é definida, se um sinalizador de tamanho da TU for 0, e uma unidade de transformação 1354 tendo um tamanho de N/2xN/2 é definida, se um sinalizador de tamanho da TU for 1.
[00329] Referindo-se à Fig. 20, o sinalizador de tamanho da TU é um sinalizador tendo um valor 0 ou 1, mas o sinalizador de tamanho da TU não é limitado a 1 bit, e uma unidade de transformação pode ser hierarquicamente dividida tendo uma estrutura em árvore, enquanto o sinalizador de tamanho da TU aumenta, a partir de 0. As informações de divisão (sinalizador de tamanho da TU) de uma unidade de transformação podem ser usadas, como uma forma de realização do índice de transformação.
[00330] Neste caso, o tamanho de uma unidade de transformação, que foi realmente usado, pode ser expresso usando um sinalizador de tamanho da TU de uma unidade de transformação, de acordo com uma forma de realização da presente invenção, juntamente com um tamanho máximo e um tamanho mínimo da unidade de transformação. De acordo com uma forma de realização da presente invenção, aparelho para codificar vídeo 100 é capaz de codificar informações de tamanho da unidade de transformação máxima, informações de tamanho da unidade de transformação mínima, e um sinalizador de tamanho da TU máxima. O resultado de codificar as informações de tamanho da unidade de transformação máxima, as informações de tamanho da unidade de transformação mínima, e o sinalizador de tamanho da TU máxima, pode ser inserido num SPS. De acordo com uma forma de realização da presente invenção, o aparelho para decodificar vídeo 200 pode decodificar vídeo, usando as informações de tamanho da unidade de transformação máxima, as informações de tamanho da unidade de transformação mínima, e o sinalizador de tamanho da TU máxima.
[00331] Por exemplo, se o tamanho de uma unidade de codificação atual for 64 x 64, e um tamanho da unidade de transformação máxima for 32 x 32, então o tamanho de uma unidade de transformação pode ser 32 x 32, quando um sinalizador de tamanho da TU for 0, pode ser 16 x 16, quando o sinalizador de tamanho da TU for 1, e pode ser 8 x 8, quando o sinalizador de tamanho da TU for 2.
[00332] Como outro exemplo, se o tamanho da unidade de codificação atual for 32 x 32, e um tamanho da unidade de transformação mínima for 32x32, então o tamanho da unidade de transformação pode ser 32 x 32, quando o sinalizador de tamanho da TU for 0. Aqui, o sinalizador de tamanho da TU não pode ser definido como um valor diferente de 0, uma vez que o tamanho da unidade de transformação não pode ser menor que 32 x 32.
[00333] Como outro exemplo, se o tamanho da unidade de codificação atual for 64 x 64 e um sinalizador de tamanho da TU máxima for 1, então o sinalizador de tamanho da TU pode ser 0 ou 1. Aqui, o sinalizador de tamanho da TU não pode ser definido como um valor diferente de 0 ou 1.
[00334] Assim, se for definido que o sinalizador de tamanho da TU máxima é 'MaxTransformSizeIndex', um tamanho da unidade de transformação mínima é 'MinTransformSize', e um tamanho da unidade de transformação é 'RootTuSize', quando o sinalizador de tamanho da TU for 0, então, um tamanho da unidade de transformação mínima atual 'CurrMinTuSize', que pode ser determinado em uma unidade de codificação atual, pode ser definido pela Equação (1): CurrMinTuSize = max (MinTransformSize,RootTuSize/ (2AMaxTransformSizeIndex)) ... (1)
[00335] Em comparação com o tamanho da unidade de transformação mínima atual 'CurrMinTuSize', que pode ser determinado na unidade de codificação atual, um tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, pode denotar um tamanho da unidade de transformação máxima, que pode ser selecionado no sistema. Na Equação (1), 'RootTuSize/(2AMaxTransformSizeIndex)' denota um tamanho da unidade de transformação, quando o tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, for dividido um número de vezes correspondente ao sinalizador do tamanho da TU máxima, e 'MinTransformSize' denotar um tamanho mínimo de transformação. Assim, um menor valor entre 'RootTuSize/(2AMaxTransformSizeIndex)' e 'MinTransformSize' pode ser o tamanho da unidade de transformação mínima atual 'CurrMinTuSize', que pode ser determinado na unidade de codificação atual.
[00336] De acordo com uma forma de realização da presente invenção, o tamanho da unidade de transformação máxima RootTuSize pode variar, de acordo com o tipo de um modo de previsão.
[00337] Por exemplo, se um modo de previsão atual for um modo inter, então 'RootTuSize' pode ser determinado, usando a Equação (2) abaixo. Na Equação (2), 'MaxTransformSize' denota um tamanho da unidade de transformação máxima, e 'PUSize' denota um tamanho da unidade de previsão atual. RootTuSize = min(MaxTransformSize, PUSize)... (2)
[00338] Ou seja, se o modo de previsão atual for o modo inter, o tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, pode ser um menor valor entre o tamanho da unidade de transformação máxima e o tamanho da unidade de previsão atual.
[00339] Se um modo de previsão de uma unidade de partição atual for um modo intra, 'RootTuSize' pode ser determinado, usando a Equação (3) abaixo. Na Equação (3), 'PartitionSize' denota o tamanho da unidade de partição atual. RootTuSize = min (MaxTransformSize, PartitionSize)...(3)
[00340] Ou seja, se o modo de previsão atual for o modo intra, o tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, pode ser um menor valor entre o tamanho da unidade de transformação máxima e o tamanho da unidade de partição atual.
[00341] No entanto, o tamanho da unidade de transformação máxima 'RootTuSize', que varia de acordo com o tipo de um modo de previsão em uma unidade de partição atual, é apenas um exemplo, e a presente invenção não é por este aspecto limitada.
[00342] De acordo com o método para codificar vídeo, baseado em unidades de codificação da estrutura em árvore acima descrito com referência às Figs. 8 a 20, dados de imagem de um domínio espacial podem ser codificados para cada unidade de codificação da estrutura em árvore, e dados de imagem do domínio espacial podem ser restaurados, quando decodificação for executada para cada unidade de codificação máxima, de acordo com o método para decodificar vídeo, baseado em unidades de codificação da estrutura em árvore e, portanto, vídeo, que inclui um quadro e uma sequência de quadros, pode ser restaurado. O vídeo restaurado pode ser reproduzido por um aparelho de reprodução, armazenado em uma mídia de armazenamento, ou transmitido através de uma rede.
[00343] Além disso, um parâmetro de deslocamento pode ser codificado e transmitido ou recebido, e decodificado para cada quadro, cada fatia, ou cada unidade de codificação máxima, ou para cada unidade de codificação da estrutura em árvore, ou uma unidade de previsão de uma unidade de codificação, ou uma unidade de transformação da unidade de codificação. Por exemplo, valores de pixel restaurados das unidades de codificação máxima são ajustados, usando valores de deslocamento restaurados com base em um parâmetro de deslocamento recebido para cada unidade de codificação máxima e, portanto, um bloco restaurado tendo um erro mínimo, com respeito a um bloco original, pode ser restaurado.
[00344] As formas de realização da presente invenção podem ser gravadas como programas de computador, e podem ser implementadas em computadores digitais de uso geral, que executam os programas usando uma mídia de gravação legível por computador. Suportes magnéticos (por exemplo, ROM, disquetes, discos rígidos etc.) e mídias de gravação óptica (por exemplo, CD-ROMs ou DVDs) são exemplos de mídia de gravação legível por computador.
[00345] Embora essa invenção tenha sido particularmente mostrada e descrita com referência a suas formas de realização preferenciais, deve ficar claro para as pessoas com habilidade comum na arte, que várias alterações na forma e detalhes podem ser feitas, sem se afastar do espírito e âmbito da invenção, como definidos pelas reivindicações acrescentadas. As formas de realização preferenciais devem ser consideradas somente no sentido descritivo, e não para fins de limitação. Portanto, o âmbito da invenção é definido, não pela descrição detalhada da invenção, mas pelas reivindicações acrescentadas, e todas as diferenças dentro do âmbito devem ser interpretadas, como estando incluídas na presente invenção.

Claims (3)

1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado pelo fato de que compreende: analisar (71), a partir de um fluxo de bits, informações de mesclagem de deslocamento indicando se um parâmetro de deslocamento de amostra de um bloco atual é derivado de um parâmetro de deslocamento de amostra de um bloco vizinho; quando a informação de mesclagem de deslocamento indica que o parâmetro de deslocamento de amostra do bloco atual é derivado do parâmetro de deslocamento de amostra do bloco vizinho, determinando (73) o parâmetro de deslocamento de amostra do bloco atual usando o parâmetro de deslocamento de amostra do bloco vizinho; quando a informação de mesclagem de deslocamento indica que o parâmetro de deslocamento de amostra do bloco atual não é derivado do parâmetro de deslocamento de amostra do bloco vizinho, obtendo, a partir do fluxo de bits, uma pluralidade de valores de deslocamento e informações sobre um tipo de deslocamento do bloco atual; e compensar (77) por um valor de amostra de uma amostra atual entre as amostras do bloco atual, usando um valor de deslocamento para a amostra atual entre a pluralidade de valores de deslocamento do bloco atual, caracterizado por: quando a informação sobre um tipo de deslocamento indica um tipo de deslocamento de borda, a obtenção de uma pluralidade de valores de deslocamento compreende ainda obter, a partir do fluxo de bits, informações sobre uma direção de borda particular do bloco atual entre uma pluralidade de direções de borda, a pluralidade de valores de deslocamento do bloco atual corresponde a uma pluralidade de classes de borda, duas amostras vizinhas, entre as amostras adjacentes à amostra atual, são determinadas correspondendo à direção de borda particular do bloco atual, uma classe de borda para a amostra atual, entre a pluralidade de classes de borda, é determinada de acordo com se a amostra atual é maior do que as duas amostras vizinhas, e o valor de deslocamento para a amostra atual é determinado, entre a pluralidade de valores de deslocamento do bloco atual, de acordo com a classe de borda para a amostra atual, e em que, quando as informações sobre um tipo de deslocamento indicam um tipo de deslocamento de banda, a obtenção de uma pluralidade de valores de deslocamento compreende: obter, a partir do fluxo de bits, uma pluralidade de valores absolutos dos valores de deslocamento; e quando os valores absolutos dos valores de deslocamento não são zero, obtendo, a partir do fluxo de bits, uma pluralidade de sinais dos valores de deslocamento.
2. Método de decodificação de vídeo, de acordo com a reivindicação 1, caracterizado pelo fato de que, quando as informações de mesclagem de deslocamento indicam que o parâmetro de deslocamento de amostra do bloco atual é derivado do parâmetro de deslocamento de amostra do bloco vizinho, o parâmetro de deslocamento de amostra do bloco atual não é analisado do fluxo de bits, e o bloco vizinho é um de um bloco esquerdo e um bloco superior do bloco atual.
3. Método de decodificação de vídeo, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações sobre uma direção de borda particular do bloco atual indica um entre 0 °, 45 °, 90 ° e 135 °.
BR112013033701-0A 2011-06-28 2012-06-27 Método de decodificação de vídeo BR112013033701B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161502018P 2011-06-28 2011-06-28
US61/502,018 2011-06-28
PCT/KR2012/005086 WO2013002554A2 (ko) 2011-06-28 2012-06-27 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Publications (2)

Publication Number Publication Date
BR112013033701A2 BR112013033701A2 (pt) 2019-04-09
BR112013033701B1 true BR112013033701B1 (pt) 2022-08-02

Family

ID=47424664

Family Applications (5)

Application Number Title Priority Date Filing Date
BR122021004576-3A BR122021004576B1 (pt) 2011-06-28 2012-06-27 Aparelho de decodificação de vídeo
BR122021004578-0A BR122021004578B1 (pt) 2011-06-28 2012-06-27 Método de decodificação de vídeo
BR122021004574-7A BR122021004574B1 (pt) 2011-06-28 2012-06-27 Método de decodificação de vídeo
BR112013033701-0A BR112013033701B1 (pt) 2011-06-28 2012-06-27 Método de decodificação de vídeo
BR122021004575-5A BR122021004575B1 (pt) 2011-06-28 2012-06-27 Aparelho para decodificação de vídeo

Family Applications Before (3)

Application Number Title Priority Date Filing Date
BR122021004576-3A BR122021004576B1 (pt) 2011-06-28 2012-06-27 Aparelho de decodificação de vídeo
BR122021004578-0A BR122021004578B1 (pt) 2011-06-28 2012-06-27 Método de decodificação de vídeo
BR122021004574-7A BR122021004574B1 (pt) 2011-06-28 2012-06-27 Método de decodificação de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122021004575-5A BR122021004575B1 (pt) 2011-06-28 2012-06-27 Aparelho para decodificação de vídeo

Country Status (16)

Country Link
US (7) US9426482B2 (pt)
EP (3) EP2728865A4 (pt)
JP (6) JP5964422B2 (pt)
KR (6) KR101457398B1 (pt)
CN (6) CN104980756A (pt)
AU (3) AU2012276452B2 (pt)
BR (5) BR122021004576B1 (pt)
CA (2) CA2840583C (pt)
MX (4) MX337235B (pt)
MY (3) MY193771A (pt)
PH (4) PH12017501633A1 (pt)
RU (3) RU2581553C2 (pt)
SG (4) SG10201408726QA (pt)
TW (5) TWI615022B (pt)
WO (1) WO2013002554A2 (pt)
ZA (1) ZA201400649B (pt)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
JPWO2013001794A1 (ja) 2011-06-27 2015-02-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、及び画像符号化装置
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
CN104980756A (zh) 2011-06-28 2015-10-14 三星电子株式会社 根据像素分类使用偏移调整的视频解码方法及其设备
MX2014000159A (es) 2011-07-02 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato para la codificacion de video, y metodo y aparato para la decodificacion de video acompañada por inter prediccion utilizando imagen co-localizada.
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9277194B2 (en) 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
US9253482B2 (en) 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
CN108683910B (zh) 2011-12-22 2021-01-12 三星电子株式会社 视频编码方法和设备以及非暂时性计算机可读存储介质
SG10201906914WA (en) * 2012-01-19 2019-09-27 Mitsubishi Electric Corp Image decoding device, image encoding device, image decoding method, and image encoding method
BR112014030935B1 (pt) * 2012-06-11 2022-06-14 Samsung Electronics Co., Ltd Método de ajuste de deslocamento adaptativo de amostra (sao)
US9635360B2 (en) * 2012-08-01 2017-04-25 Mediatek Inc. Method and apparatus for video processing incorporating deblocking and sample adaptive offset
WO2014052731A2 (en) 2012-09-28 2014-04-03 Vid Scale, Inc. Cross-plane filtering for chroma signal enhancement in video coding
WO2014054897A1 (ko) * 2012-10-05 2014-04-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
IN2013MU01146A (pt) * 2013-03-26 2015-04-24 Tektronix Inc
US9497476B2 (en) * 2013-04-05 2016-11-15 Sharp Kabushiki Kaisha Image decoding apparatus
CN104717506B (zh) * 2013-12-13 2019-07-05 北京三星通信技术研究有限公司 视频编解码中像素处理的方法和装置
JP6253406B2 (ja) * 2013-12-27 2017-12-27 キヤノン株式会社 画像符号化装置、撮像装置、画像符号化方法、及びプログラム
CA2934941C (en) * 2014-02-03 2017-03-07 Mitsubishi Electric Corporation Video encoding device and video encoding method
WO2016119746A1 (zh) * 2015-01-29 2016-08-04 同济大学 图像编码方法及装置、图像解码方法及装置
JP2018522445A (ja) * 2015-05-12 2018-08-09 サムスン エレクトロニクス カンパニー リミテッド サンプル値補償のための映像符号化方法及びその装置、並びにサンプル値補償のための映像復号方法及びその装置
EP3320684A1 (en) * 2015-07-08 2018-05-16 VID SCALE, Inc. Enhanced chroma coding using cross plane filtering
JP6094838B2 (ja) * 2015-08-31 2017-03-15 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
KR102423880B1 (ko) 2015-10-06 2022-07-21 삼성전자주식회사 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
US10477247B2 (en) 2015-11-18 2019-11-12 Electronics And Telecommunications Research Institute Method for decoding video using in-loop filter, and device therefor
JPWO2017191749A1 (ja) 2016-05-02 2019-03-07 ソニー株式会社 画像処理装置及び画像処理方法
KR101981687B1 (ko) * 2016-05-04 2019-05-24 한국항공대학교산학협력단 오프셋 정보 부호화 및 복호화 방법 및 장치
CN106130562B (zh) * 2016-06-15 2019-09-06 中国石油集团渤海钻探工程有限公司 一种随钻测井数据实时压缩方法及解压缩方法
JP6229030B2 (ja) * 2016-10-06 2017-11-08 株式会社三共 遊技機
CN114520915A (zh) 2017-01-12 2022-05-20 索尼公司 图像处理装置、图像处理方法和计算机可读记录介质
JP6341304B2 (ja) * 2017-02-14 2018-06-13 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
EP3471413A1 (en) * 2017-10-10 2019-04-17 Thomson Licensing Encoding and decoding methods and corresponding devices
KR102356262B1 (ko) 2018-03-27 2022-02-08 주식회사 윌러스표준기술연구소 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치
TWI678107B (zh) 2018-05-16 2019-11-21 香港商京鷹科技股份有限公司 影像傳輸方法及其系統與影像傳送端裝置
US11317099B2 (en) * 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
CN113453005B (zh) * 2020-03-26 2022-11-01 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
WO2021247883A1 (en) 2020-06-03 2021-12-09 Beijing Dajia Internet Information Technology Co., Ltd. Chroma coding enhancement in cross-component correlation

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661862A (en) * 1984-04-27 1987-04-28 Rca Corporation Differential PCM video transmission system employing horizontally offset five pixel groups and delta signals having plural non-linear encoding functions
US4971407A (en) 1989-08-09 1990-11-20 Unisys Corp. Two stage run and string data compressor providing doubly compressed output
US6043838A (en) * 1997-11-07 2000-03-28 General Instrument Corporation View offset estimation for stereoscopic video coding
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US20020122595A1 (en) 1999-06-04 2002-09-05 Rikk Crill Apparatus and method for radial and angular or rotational analysis of images for shape content and matching
FI116819B (fi) 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
RU2313190C2 (ru) 2001-07-10 2007-12-20 Конинклейке Филипс Электроникс Н.В. Способ и устройство для генерации масштабируемого кодированного видеосигнала из немасштабируемого кодированного видеосигнала
JP2003230147A (ja) 2002-02-01 2003-08-15 Matsushita Electric Ind Co Ltd 映像信号符号化装置およびその方法
CN101631247B (zh) * 2002-04-18 2011-07-27 株式会社东芝 运动图像编码/解码方法和装置
US8406301B2 (en) * 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
KR20060109247A (ko) * 2005-04-13 2006-10-19 엘지전자 주식회사 베이스 레이어 픽처를 이용하는 영상신호의 엔코딩/디코딩방법 및 장치
US7680342B2 (en) * 2004-08-16 2010-03-16 Fotonation Vision Limited Indoor/outdoor classification in digital images
US20050047504A1 (en) 2003-09-03 2005-03-03 Sung Chih-Ta Star Data stream encoding method and apparatus for digital video compression
NO319629B1 (no) 2003-11-28 2005-09-05 Tandberg Telecom As Fremgangsmate for korrigering av interpolerte pikselverdier
US7400681B2 (en) 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
US7233164B2 (en) * 2003-12-17 2007-06-19 Rambus Inc. Offset cancellation in a multi-level signaling system
US20050232497A1 (en) * 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
JP2006032999A (ja) * 2004-07-12 2006-02-02 Sharp Corp 画像復号装置及び画像復号方法
CN101977329B (zh) * 2004-07-29 2012-10-03 微软公司 使用线光值和其它图像处理改进的图像处理
US8472699B2 (en) * 2006-11-22 2013-06-25 Board Of Trustees Of The Leland Stanford Junior University Arrangement and method for three-dimensional depth image construction
US8068673B2 (en) 2006-12-01 2011-11-29 Beihang University Rapid and high precision centroiding method and system for spots image
KR20100014552A (ko) 2007-03-23 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
US7983496B2 (en) 2007-06-26 2011-07-19 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding adapted to variable block sizes
RU2010132652A (ru) 2008-03-07 2012-02-10 Кабусики Кайся Тосиба (Jp) Способ и устройство кодирования/декодирования видеосигнала
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
TWI386068B (zh) * 2008-10-22 2013-02-11 Nippon Telegraph & Telephone 解塊處理方法、解塊處理裝置、解塊處理程式及記錄該程式之可由電腦讀取之記錄媒體
KR101700358B1 (ko) 2009-12-09 2017-01-26 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US8861617B2 (en) 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
US9877019B2 (en) 2011-01-03 2018-01-23 Hfi Innovation Inc. Method of filter-unit based in-loop filtering
US9161041B2 (en) * 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
CN106454357A (zh) * 2011-01-09 2017-02-22 寰发股份有限公司 已处理视频数据的样本自适应补偿的方法和装置
EP2700230A4 (en) 2011-04-21 2014-08-06 Mediatek Inc METHOD AND APPARATUS FOR ENHANCED LOOP FILTERING
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US20120294353A1 (en) * 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
GB2500347B (en) * 2011-05-16 2018-05-16 Hfi Innovation Inc Apparatus and method of sample adaptive offset for luma and chroma components
AU2012267006B8 (en) * 2011-06-10 2015-10-29 Hfi Innovation Inc. Method and apparatus of scalable video coding
CN106851319B (zh) 2011-06-10 2020-06-19 寰发股份有限公司 推导方法及推导装置
PT2725797T (pt) 2011-06-23 2018-12-05 Huawei Tech Co Ltd Dispositivo de descodificação de desvios, dispositivo de codificação de desvios, dispositivo de filtro de imagem e estrutura de dados
CN104980756A (zh) 2011-06-28 2015-10-14 三星电子株式会社 根据像素分类使用偏移调整的视频解码方法及其设备

Also Published As

Publication number Publication date
RU2014102576A (ru) 2015-08-10
WO2013002554A3 (ko) 2013-04-11
SG10201408716TA (en) 2015-02-27
KR20150039144A (ko) 2015-04-09
TWI601418B (zh) 2017-10-01
PH12017501634A1 (en) 2018-04-23
JP2015128332A (ja) 2015-07-09
TW201309030A (zh) 2013-02-16
MY193771A (en) 2022-10-27
AU2018202603A1 (en) 2018-05-10
TWI521970B (zh) 2016-02-11
EP2849444A3 (en) 2015-06-24
SG10201408720TA (en) 2015-01-29
JP5964422B2 (ja) 2016-08-03
BR122021004574B1 (pt) 2022-07-26
PH12017501636B1 (en) 2018-04-23
PH12017501636A1 (en) 2018-04-23
US20150139335A1 (en) 2015-05-21
RU2632139C1 (ru) 2017-10-02
EP2849444A2 (en) 2015-03-18
US20150131742A1 (en) 2015-05-14
PH12017501635B1 (en) 2018-04-23
CA2840583A1 (en) 2013-01-03
US9438921B2 (en) 2016-09-06
MX2014000046A (es) 2014-02-17
KR101603690B1 (ko) 2016-03-15
ZA201400649B (en) 2014-11-26
EP2887669A1 (en) 2015-06-24
KR20140146559A (ko) 2014-12-26
PH12017501635A1 (en) 2018-04-23
KR20150041772A (ko) 2015-04-17
PH12017501633B1 (en) 2018-04-23
PH12017501633A1 (en) 2018-04-23
US20160337656A1 (en) 2016-11-17
AU2012276452A1 (en) 2014-01-30
US9438922B2 (en) 2016-09-06
AU2018202603B2 (en) 2019-07-18
CA3016913A1 (en) 2013-01-03
JP6181246B2 (ja) 2017-08-16
CA3016913C (en) 2020-03-10
US20180324450A1 (en) 2018-11-08
WO2013002554A2 (ko) 2013-01-03
BR122021004576B1 (pt) 2022-07-26
US10038911B2 (en) 2018-07-31
AU2016204005A1 (en) 2016-07-07
TW201813402A (zh) 2018-04-01
JP2014523183A (ja) 2014-09-08
PH12017501634B1 (en) 2018-04-23
MX338669B (es) 2016-04-27
TWI549492B (zh) 2016-09-11
BR112013033701A2 (pt) 2019-04-09
JP2015128333A (ja) 2015-07-09
CN103959776A (zh) 2014-07-30
CN104994393A (zh) 2015-10-21
RU2581553C2 (ru) 2016-04-20
MX338670B (es) 2016-04-27
KR101603688B1 (ko) 2016-03-15
KR20140075657A (ko) 2014-06-19
KR101603678B1 (ko) 2016-03-15
US9426482B2 (en) 2016-08-23
CA2840583C (en) 2018-10-23
KR101457398B1 (ko) 2014-11-04
CN104980758A (zh) 2015-10-14
MY192854A (en) 2022-09-13
SG10201408715UA (en) 2015-02-27
US20150163502A1 (en) 2015-06-11
TW201640901A (zh) 2016-11-16
TW201739259A (zh) 2017-11-01
TW201537967A (zh) 2015-10-01
EP2728865A4 (en) 2016-03-16
AU2016204005B2 (en) 2018-01-18
KR101603685B1 (ko) 2016-03-15
US9426483B2 (en) 2016-08-23
CN104980757A (zh) 2015-10-14
SG10201408726QA (en) 2015-02-27
RU2663331C1 (ru) 2018-08-03
JP2016197890A (ja) 2016-11-24
CN105049864A (zh) 2015-11-11
CN104980756A (zh) 2015-10-14
EP2728865A2 (en) 2014-05-07
TWI669955B (zh) 2019-08-21
JP5965021B2 (ja) 2016-08-03
US20140192891A1 (en) 2014-07-10
KR20150039143A (ko) 2015-04-09
MY193778A (en) 2022-10-27
MX337235B (es) 2016-02-18
US10542273B2 (en) 2020-01-21
JP2015164331A (ja) 2015-09-10
KR20130002284A (ko) 2013-01-07
US20150163516A1 (en) 2015-06-11
JP2015128334A (ja) 2015-07-09
TWI615022B (zh) 2018-02-11
KR101906506B1 (ko) 2018-12-07
US9462288B2 (en) 2016-10-04
JP5965022B2 (ja) 2016-08-03
AU2012276452B2 (en) 2016-03-31
BR122021004575B1 (pt) 2022-07-26
BR122021004578B1 (pt) 2022-07-26
JP5964480B2 (ja) 2016-08-03
JP5964479B2 (ja) 2016-08-03

Similar Documents

Publication Publication Date Title
BR112013033701B1 (pt) Método de decodificação de vídeo
BR122020014021B1 (pt) Aparelho para decodificar um vídeo
BR122018016535B1 (pt) Método de decodificação de vídeo
BR122020012380B1 (pt) Método de decodificação de vídeo
BR112012025407B1 (pt) Método de decodificação de vídeo baseado em unidades de codificação determinadas de acordo com uma estrutura de árvore
BR122021004152B1 (pt) Aparelho para decodificar vídeo
BR112013033906B1 (pt) Método para decodificar vídeo
BR122013019952A2 (pt) Aparelho de decodificar um vídeo
BR122021004622B1 (pt) Método para decodificar um vídeo
BR122021004836B1 (pt) Método para decodificar um vídeo codificado
BR112012017407B1 (pt) Método para de codificar um fluxo de bits de vídeo compreendendo dados de vídeo codificados
BR122021013570B1 (pt) Aparelho para decodificar um vídeo

Legal Events

Date Code Title Description
B11Z Dismissal: petition dismissal - article 216, par 2 of industrial property law

Free format text: PETICAO ARQUIVADA, DEVIDO A FALTA DE APRESENTACAO DO DOCUMENTO DE PROCURACAO.

B11M Decision cancelled [chapter 11.13 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 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 27/06/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.