BR122019027914B1 - aparelho para uma decodificação de deslocamento adaptativo de amostra (sao), método de uma codificação de deslocamento adaptativo de amostra (sao), e aparelho para uma codificação de deslocamento adaptativo de amostra (sao) - Google Patents

aparelho para uma decodificação de deslocamento adaptativo de amostra (sao), método de uma codificação de deslocamento adaptativo de amostra (sao), e aparelho para uma codificação de deslocamento adaptativo de amostra (sao) Download PDF

Info

Publication number
BR122019027914B1
BR122019027914B1 BR122019027914-4A BR122019027914A BR122019027914B1 BR 122019027914 B1 BR122019027914 B1 BR 122019027914B1 BR 122019027914 A BR122019027914 A BR 122019027914A BR 122019027914 B1 BR122019027914 B1 BR 122019027914B1
Authority
BR
Brazil
Prior art keywords
sao
information
mcu
encoding
offset
Prior art date
Application number
BR122019027914-4A
Other languages
English (en)
Inventor
Elena Alshina
Alexander Alshin
Jeong-hoon Park
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 BR122019027914B1 publication Critical patent/BR122019027914B1/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
    • 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
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A presente divulgação se refere à sinalização de parâmetros de desvio adaptativo de amostra (SAO) determinados para minimizar um erro entre uma imagem original e uma imagem reconstruída, em operações de codificação e decodificação. Um método de decodificação de SAO inclui obter informação de fusão de SAO esquerda codificada em contexto e informação de fusão de SAO ascendente codificada em contexto de um fluxo de bits de uma maior unidade de codificação (LCU); obter informação liga/desliga de SAO codificada em contexto com respeito a cada componente de cor do fluxo de bits; se a informação liga/desliga de SAO indicar para executar a operação de SAO, obter informação de valor absoluto de desvio para cada categoria de SAO codificada em desvio com respeito a cada componente de cor do fluxo de bits; e obter uma de informação de posição de banda e informação de classe de borda codificada em desvio com respeito a cada componente de cor do fluxo de bits.

Description

Campo Técnico
[0001] A presente invenção se refere a um método de ajustar valores de pixel reconstruídos por offsets determinados adaptavelmente a amostras para minimizar um erro entre uma imagem original e uma imagem reconstruída em operações de codificação e decodificação.
Técnica antecedente
[0002] À medida que hardware para reproduzir e armazenar conteúdo de vídeo de alta qualidade ou alta resolução está sendo desenvolvido e fornecido, a necessidade de um codec de vídeo para efetivamente codificar ou decodificar o conteúdo de vídeo de alta resolução ou qualidade elevada está aumentando. De acordo com um codec de vídeo convencional, um vídeo é codificado de acordo com um método de codificação limitada com base em um macrobloco tendo um tamanho predeterminado.
[0003] Dados de imagem do domínio de espaço são transformados em coeficientes do domínio de freqüência através da transformação de freqüência. De acordo com um codec de vídeo, uma imagem é dividida em blocos tendo um tamanho predeterminado, transformação de cosseno discreto (DCT) é executada em cada bloco, e coeficientes de frequência são codificados em unidades de blocos, para cálculo rápido de transformação de freqüência. Comparado com dados de imagem do domínio de espaço, coeficientes do domínio de freqüência são facilmente comprimidos. Em particular, uma vez que um valor de pixel de imagem do domínio de espaço é expresso de acordo com um erro de predição através de inter predição ou intra predição de um codec de vídeo, quando transformação de freqüência é realizada no erro de predição, uma grande quantidade de dados pode ser transformada em 0. De acordo com um codec de vídeo, uma quantidade de dados pode ser reduzida por substituir dados que são consecutiva e repetidamente geradas com dados de tamanho pequeno.
Revelação da invenção Problema técnico
[0004] A presente invenção se refere a sinalização de parâmetros de offset adaptável de amostra (SAO) determinados para minimizar um erro entre uma imagem original e uma imagem reconstruída em operações de codificação e decodificação de vídeo.
Solução técnica
[0005] De acordo com aspectos da presente invenção, é fornecido um método de decodificação de deslocamento adaptável de amostra (SAO) incluindo obter informações de fusão de SAO à esquerda codificadas por contexto e informações de fusão SAO ascendentes codificadas por contexto a partir de um fluxo de bits de uma unidade de codificação maior (MCU); obter informações de ligar/desligar SAO codificadas em contexto com relação a cada componente de cor, a partir do fluxo de bits; se a informação de ligar/desligar SAO indicar para executar a operação SAO, obter informações de valor de deslocamento absoluto para cada categoria de SAO codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits; e obter uma da informação de posição de banda e informação de classe de borda codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits.
Efeitos vantajosos
[0006] Em métodos de codificar e decodificar parâmetros de deslocamento adaptável de amostra (SAO), de acordo com várias modalidades da persente revelação, uma vez que codificação de contexto e decodificação de contexto são realizadas somente em informações de fusão SAO e informações de ligar/desligar SAO entre os parâmetros SAO, e codificação de desvio e decodificação de desvio são realizados em um fluxo de bits restante, uma quantidade total de cálculo para decodificar os parâmetros SAO pode ser reduzida.
[0007] Também, entre os parâmetros SAO, uma vez que alguns parâmetros são determinados diferentemente com relação a cada componente de cor e alguns parâmetros são definidos para serem iguais com relação aos primeiro e segundo componentes de croma, ou com relação à luma, e primeiro e segundo componentes de croma, um comprimento total de bits dos parâmetros SAO pode ser reduzido e a quantidade de dados a serem analisados também pode ser reduzida.
[0008] Além disso, uma vez que o número de vezes que operações de codificação de contexto e decodificação, e operações de codificação e decodificação de desvio são comutadas é reduzido, a eficiência de operações de codificação e decodificação por entropia geral nos parâmetros SAO pode ser aperfeiçoada.
BREVE DESCRIÇÃO DOS DESENHOS
[0009] As figuras 1A e 1B são um diagrama de blocos de um aparelho de codificação de deslocamento adaptável de amostra (SAO) e um fluxograma de um método de codificação SAO, de acordo com modalidades da presente revelação;
[00010] As figuras 2A e 2B são um diagrama de blocos de um aparelho de decodificação de SAO e um fluxograma de um método de decodificação de SAO de acordo com modalidades da presente revelação;
[00011] A figura 3 é um diagrama de blocos de um aparelho de decodificação de vídeo de acordo com modalidades da presente revelação;
[00012] A figura 4 é uma tabela que mostra classes de borda de tipos de borda, de acordo com modalidades da presente revelação;
[00013] As figuras 5A e 5B são uma tabela e um gráfico que mostram categorias de tipos de borda, de acordo com modalidades da presente revelação;
[00014] A figura 6A é um diagrama que mostra unidades de codificação maiores adjacentes (MCUs) mencionadas para fundir parâmetros de SAO com uma MCU atual, de acordo com modalidades da presente revelação;
[00015] A figura 6B é um diagrama que mostra um processo de executar codificação por entropia em parâmetros de SAO, de acordo com outra modalidade da presente revelação;
[00016] A figura 7A mostra sintaxe SAO de uma unidade de codificação, de acordo com modalidades da presente revelação;
[00017] As figuras 7B e 7C mostram sintaxe SAO de uma unidade de codificação, de acordo com outras modalidades da presente revelação;
[00018] A figura 8 é um diagrama de blocos de um aparelho de codificação de vídeo com base em unidades de codificação tendo uma estrutura de árvore, de acordo com modalidades da presente revelação;
[00019] A figura 9 é um diagrama de blocos de um aparelho de decodificação de vídeo com base em unidades de codificação tendo uma estrutura de árvore, de acordo com modalidades da presente revelação;
[00020] A figura 10 é um diagrama para descrever um conceito de unidades de codificação de acordo com modalidades da presente revelação;
[00021] A figura 11 é um diagrama de blocos de um codificador de imagem com base em unidades de codificação, de acordo com modalidades da presente revelação;
[00022] A figura 12 é um diagrama de blocos de um decodificador de imagem com base em unidades de codificação, de acordo com modalidades da presente revelação;
[00023] A figura 13 é um diagrama que ilustra unidades de codificação mais profundas de acordo com profundidades e partições de acordo com modalidades da presente revelação;
[00024] A figura 14 é um diagrama para descrever uma relação entre uma unidade de codificação e unidades de transformação, de acordo com modalidades da presente revelação;
[00025] A figura 15 é um diagrama para descrever informações de codificação de unidades de codificação correspondendo a uma profundidade codificada, de acordo com modalidades da presente revelação;
[00026] A figura 16 é um diagrama de unidades de codificação mais profundas de acordo com profundidades, de acordo com modalidades da presente revelação;
[00027] As figuras 17 até 19 são diagramas para descrever uma relação entre unidades de codificação, unidades de predição e unidades de transformação de acordo com modalidades da presente revelação;
[00028] A figura 20 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de predição e uma unidade de transformação, de acordo com informações do modo de codificação da tabela 1;
[00029] A figura 21 é um diagrama de uma estrutura física de um disco no qual um programa é armazenado, de acordo com modalidades da presente revelação;
[00030] A figura 22 é um diagrama de uma unidade de disco para gravar e ler um programa utilizando um disco;
[00031] A figura 23 é um diagrama de uma estrutura geral de um sistema de fornecimento de conteúdo para fornecer um serviço de distribuição de conteúdo;
[00032] As figuras 24 e 25 são diagramas respectivamente de uma estrutura externa e uma estrutura interna de um telefone móvel ao qual um método de codificação de vídeo e um método de decodificação de vídeo são aplicados, de acordo com modalidades da presente revelação;
[00033] A figura 26 é um diagrama de um sistema de broadcast digital ao qual um sistema de comunicação é aplicado, de acordo com modalidades da presente revelação; e
[00034] A figura 27 é um diagrama que ilustra uma estrutura de rede de um sistema de computação de cloud utilizando um aparelho de codificação de vídeo e um aparelho de decodificação de vídeo, de acordo com modalidades da presente revelação.
MELHOR MODO PARA REALIZAR A INVENÇÃO
[00035] De acordo com aspectos da presente revelação, é fornecido um método de decodificação de deslocamento adaptável de amostra (SAO) incluindo obter informações de fusão SAO à esquerda codificadas por contexto e informações de fusão SAO para cima codificadas por contexto a partir de um fluxo de bits de uma unidade de codificação maior (MCU), obter informação de valor de deslocamento absoluto para cada categoria SAO codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits; e obter uma da informação de posição de banda e informação de classe de borda codificada por desvio com relação a cada componente de cor a partir do fluxo de bits.
[00036] A obtenção da informação de ligar/desligar SAO pode incluir, se a informação de ligar/desligar SAO indica para realizar a operação SAO, obtendo ainda informação de identificação de banda de borda codificada em um modo de desvio com relação a cada componente de cor, a partir do fluxo de bits, e decodificação de contexto pode ser realizada na informação de ligar/desligar SAO em um primeiro depósito de informação do tipo SAO da MCU, e decodificação de desvio pode ser realizada em bits restantes da informação do tipo SAO, diferente das informações de ligar/desligar SAO.
[00037] A obtenção da informação de posição de banda ou informação de classe de borda pode incluir, se a informação de identificação de banda de borda obtida indicar um tipo de banda, obter a informação de posição de banda codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits, a obtenção da informação de posição de banda pode incluir, se a informação de valor de deslocamento absoluto obtida para cada categoria SAO não for 0, obter a informação de posição de banda e informação de sinal de deslocamento codificadas por desvio com relação a cada componente de cor, a partir do fluxo de bits, e a informação de posição de banda pode ser obtida por último entre os parâmetros SAO da MCU.
[00038] A obtenção da informação de posição de banda ou a informação de classe de borda pode incluir, se a informação de identificação de banda de borda obtida indicar um tipo de borda, obter a informação de classe de borda codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits, e a informação de classe de borda pode incluir informação de classe de borda para um componente de luma e informação de classe de borda para um primeiro componente de croma, e a informação de classe de borda para o primeiro componente de croma pode ser igualmente aplicada em um segundo componente de croma.
[00039] A informação de ligar/desligar SAO e a informação de identificação de banda de borda para um primeiro componente de croma podem ser igualmente aplicadas em um segundo componente de croma e a informação de fusão de SAO à esquerda e a informação de fusão SAO ascendente podem ser comumente aplicadas a um componente luma, e os primeiro e segundo componentes de croma da MCU.
[00040] A obtenção da informação de fusão de SAO à esquerda e a informação de fusão SAO ascendente podem incluir determinar um modelo de probabilidade baseada em contexto da informação de fusão SAO à esquerda, executar decodificação por entropia utilizando o modelo de probabilidade determinado da informação de fusão SAO à esquerda, e desse modo reconstruindo a informação de fusão SAO à esquerda; e determinar um modelo de probabilidade baseada em contexto da informação de fusão SAO ascendente, executar decodificação por entropia utilizando o modelo de probabilidade determinado da informação de fusão SAO ascendente, e desse modo reconstruindo a informação de fusão SAO ascendente, e a obtenção da informação de ligar/desligar SAO pode incluir determinar um modelo de probabilidade baseada em contexto da informação de ligar/desligar SAO, executar decodificação por entropia utilizando o modelo de probabilidade determinada da informação de ligar/desligar SAO, e desse modo reconstruir a informação de ligar/desligar SAO.
[00041] A obtenção da informação de valor de deslocamento absoluto pode incluir determinar um modelo de probabilidade baseada em contexto da informação de valor de deslocamento absoluto, executar decodificação por entropia sem utilizar o modelo de probabilidade determinado da informação de valor de deslocamento absoluto, e desse modo reconstruir a informação de valor de deslocamento absoluto, a obtenção da informação de sinal de deslocamento e a informação de posição de banda pode incluir executar decodificação por entropia sem usar um modelo de probabilidade baseado em contexto da informação de sinal de deslocamento, e desse modo reconstruir a informação de sinal de deslocamento; e executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de posição de banda, e desse modo reconstruir a informação de posição de banda, e a obtenção da informação de classe de borda pode incluir executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de classe de borda, e desse modo reconstruir a informação de classe de borda.
[00042] De acordo com aspectos da presente revelação, é fornecido um método de codificação de deslocamento adaptável de amostra (SAO) incluindo transmitir 1 bit de informação de fusão SAO à esquerda e 1 bit de informação de SAO ascendente de uma unidade de codificação maior (MCU), gerada por executar codificação de contexto em cada da informação de fusão SAO à esquerda e a informação de fusão SAO ascendente; transmitir 1 bit de informação de ligar/desligar SAO gerada por executar codificação de contexto na informação de ligar/desligar SAO com relação a cada componente de cor; se a informação de ligar/desligar SAO indicar para executar operação de SAO, transmitir um fluxo de bit de informação de valor de deslocamento absoluto gerada por executar codificação por desvio na informação de valor de deslocamento absoluto com relação a cada componente de cor e cada categoria SAO; e transmitir um fluxo de bits restante gerado por executar codificação por desvio em uma das informações de posição de banda e informação de classe de borda com relação a cada componente de cor.
[00043] A transmissão de 1 bit da informação de ligar/desligar SAO pode incluir, se a informação de ligar/desligar SAO indicar para executar a operação SAO, transmitir adicionalmente 1 bit de informação de identificação de banda de borda gerada por executar codificação por desvio na informação de identificação de banda de borda com relação a cada componente de cor, e codificação por contexto pode ser realizada na informação de ligar/desligar SAO em um primeiro depósito da informação tipo SAO da MCU, e codificação por desvio pode ser realizada em bits restantes da informação do tipo SAO diferente da informação de ligar/desligar SAO.
[00044] A transmissão do fluxo de bits restante pode incluir, se a informação de identificação de banda de borda indicar um tipo de banda, transmitir um fluxo de bits da informação de posição de banda gerada por executar codificação por desvio na informação de posição de banda com relação a cada componente de cor, a transmissão da informação de posição de banda pode incluir, se a informação de valor de deslocamento absoluto para cada categoria SAO não for 0, transmitir o fluxo de bit gerado da informação de posição de banda e um fluxo de bits de informação de sinal de deslocamento gerada por executar codificação por desvio na informação de sinal de deslocamento, e a informação de posição de banda pode ser transmitida por último entre parâmetros de SAO da MCU.
[00045] A transmissão do fluxo de bits restante pode incluir, se a informação de identificação de banda de borda indicar um tipo de borda, transmitir um fluxo de bits da informação de classe de borda gerada por executar codificação por desvio na informação de classe de borda com relação a cada componente de cor.
[00046] De acordo com aspectos da presente revelação, é fornecido um aparelho de decodificação de deslocamento adaptável de amostra (SAO) incluindo um decodificador de contexto de SAO para obter informação de fusão SAO a esquerda codificada por contexto e informação de fusão SAO ascendente e obter informação de ligar/desligar SAO codificada por contexto com relação a cada componente de cor, a partir de um fluxo de bits de uma unidade de codificação maior (MCU); um decodificador de desvio SAO para, se a informação de ligar/desligar SAO indicar para executar operação SAO, obtiver informação de valor de deslocamento absoluto codificada por desvio com relação a cada componente de cor e cada categoria SAO, e obter uma de informação de posição de banda e informação de classe de borda codificada por desvio com relação a cada componente de cor, a partir do fluxo de bits; e um operador SAO para, se a informação de ligar/desligar SAO indicar para executar operação SAO, ajustar valores reconstruídos da MCU para cada categoria SAO com base na informação de valor de deslocamento absoluto por utilizar a informação obtida.
[00047] De acordo com aspectos da presente revelação, é fornecido um aparelho de codificação de deslocamento adaptável de amostra (SAO) incluindo um operador SAO para executar operação SAO em uma unidade de codificação maior (MCU); um codificador de contexto SAO para gerar e transmitir um fluxo de bits de informação de fusão SAO à esquerda e um fluxo de bits de informação de fusão SAO ascendente da MCU por executar codificação por contexto em cada da informação de fusão de SAO à esquerda e informação de fusão de SAO ascendente, e gerar e transmitir 1 bit da informação de ligar/desligar SAO por executar codificação por contexto na informação de ligar/desligar SAO com relação a cada componente de cor, e um codificador de desvio SAO para, se a informação de ligar/desligar SAO indicar para executar a operação SAO, gerar e transmitir um fluxo de bits de informação de valor absoluto por executar codificação por desvio na informação de valor de deslocamento absoluto com relação a cada componente de cor e cada categoria SAO, e gerar e transmitir um fluxo de bits restante por executar codificação por desvio em uma de informação de posição de banda e informação de classe de borda com relação a cada componente de cor.
[00048] De acordo com aspectos da presente revelação, é fornecido um meio de gravação legível em computador tendo gravado no mesmo um programa de computador para executar o método acima.
Modo para invenção
[00049] A seguir, uma técnica de codificação de vídeo e uma técnica de decodificação de vídeo utilizando operação de deslocamento adaptável de amostra (SAO) com base em classificação de pixel, de acordo com modalidades da presente revelação, serão descritas com referência às figuras 1A até 7C. Também, a operação de SAO com base em classificação de pixel em uma técnica de codificação de vídeo e uma técnica de decodificação de vídeo com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com modalidades da presente invenção, serão descritas com referência às figuras 8 até 20. A seguir, uma ‘imagem’ pode indicar uma imagem fixa ou uma imagem móvel de um vídeo ou um próprio vídeo.
[00050] Uma técnica de codificação de vídeo e uma técnica de decodificação de vídeo utilizando operação de SAO com base na classificação de pixel, de acordo com modalidades da presente revelação, serão descritas agora com referência às figuras 1A até 7C. Um aparelho de codificação de SAO 10 e aparelho de decodificação SAO 20 ilustrado nas figuras 1A e 1B e 2A e 2B executam operação de SAO para minimizar um erro entre um pixel original e um pixel reconstruído, e transmitir e receber parâmetros SAO para executar operação SAO.
[00051] O aparelho de codificação de SAO 10 utilizando operação de SAO classifica pixels de cada bloco de imagem em grupos de pixel predeterminados, aloca cada pixel a um grupo de pixel correspondente, e codifica um valor de deslocamento indicando um valor médio de erros entre pixels originais e pixels reconstruídos incluídos no mesmo grupo de pixel.
[00052] Amostras são sinalizadas entre o aparelho de codificação SAO 10 e o aparelho de decodificação SAO 20. Em outras palavras, o aparelho de codificação SAO 10 pode codificar amostras geradas por executar codificação de vídeo e pode transmitir as amostras como um fluxo de bits, e o aparelho de decodificação de SAO 20 pode analisar e reconstruir as amostras a partir do fluxo de bits recebido.
[00053] O aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 sinalizam parâmetros de SAO para operação de SAO para minimizar erros entre pixels originais e pixels reconstruídos por ajustar valores de pixel reconstruído por deslocamentos determinados com base em classificação de pixel. Valores de deslocamento são codificados, transmitidos e recebidos como parâmetros de SAO entre o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 e então são decodificados a partir dos parâmetros de SAO.
[00054] Por conseguinte, o aparelho de decodificação de SAO 20 pode gerar pixels reconstruídos de cada bloco de imagem por decodificar o fluxo de bits recebido, pode ajustar os pixels reconstruídos por valores de deslocamento reconstruídos a partir do fluxo de bits, e desse modo pode gerar uma imagem reconstruída tendo um erro minimizado a partir de uma imagem original.
[00055] A operação do aparelho de codificação de SAO 10 para executar operação de SAO será descrita em detalhe com referência às figuras 1A e 1B, e a operação do aparelho de decodificação de SAO 20 para executar a operação de SAO será descrita em detalhe com referência às figuras 2A e 2B.
[00056] As figuras 1A e 1B são um diagrama de bloco de um aparelho de codificação de SAO 10 e um fluxograma de um método de codificação de SAO de acordo com modalidades da presente revelação.
[00057] O aparelho de codificação de SAO 10 inclui um operador de SAO 12 e um codificador de entropia 14. O codificador de entropia 14 inclui um codificador de contexto de SAO 16 e um codificador de desvio de SAO 18 para codificar parâmetros de SAO.
[00058] O aparelho de codificação de SAO 10 recebe uma entrada de imagens de um vídeo, por exemplo, fatias, divide cada imagem em blocos e codifica cada bloco. Um bloco pode ter um formato quadrado, um formato retangular ou um formato geométrico arbitrário e não é limitado a uma unidade de dados tendo um tamanho predeterminado. O bloco pode ser uma unidade de codificação maior (MCU) ou uma unidade de codificação entre unidades de codificação tendo uma estrutura de árvore. Métodos de codificação e decodificação de vídeo baseados em unidades de codificação tendo uma estrutura de árvore serão descritos abaixo com referência às figuras 8 até 20.
[00059] O aparelho de codificação de SAO 10 pode dividir cada imagem de entrada em MCUs, e pode transmitir dados resultantes gerados por executar predição, transformação e codificação por entropia em amostras de cada MCU, como um fluxo de bits. As amostras de uma MCU podem ser dados de valor de pixel de pixels incluídos na MCU.
[00060] O aparelho de codificação de SAO 10 pode codificar individualmente MCUs de uma imagem. O aparelho de codificação de MCU 10 pode codificar uma MCU atual com base em unidades de codificação divididas a partir da MCU atual e tendo uma estrutura de árvore.
[00061] Para codificar a MCU atual, o aparelho de codificação de SAO 10 pode codificar amostras por executar intra predição, inter predição, transformação e quantização em cada das unidades de codificação incluídas na MCU atual e tendo uma estrutura de árvore.
[00062] O aparelho de codificação de SAO 10 pode reconstruir as amostras codificadas incluídas na MCU atual por executar quantização inversa, transformação inversa e inter predição ou intra compensação em cada das unidades de codificação tendo uma estrutura de árvore de modo a decodificar as unidades de codificação. Uma imagem reconstruída pode ser gerada por codificar e então decodificar fatias anteriores das amostras codificadas. Uma imagem reconstruída de uma fatia anterior pode ser mencionada para executar inter predição em uma fatia atual.
[00063] Para minimizar um erro entre pixels originais antes de a MCU atual ser codificada e pixels reconstruídos após a MCU atual ser decodificada, o aparelho de SAO 12 pode determinar valores de deslocamento indicando valores de diferença entre os pixels originais e os pixels reconstruídos.
[00064] O operador de SAO 12 pode executar operação de SAO em cada componente de cor. Por exemplo, com relação a uma imagem de cor YCrCb, a operação de SAO pode ser realizada em cada de um componente de luma (componente Y) e primeiro e segundo componentes de croma (componentes Cr e Cb).
[00065] O operador de SAO 12 pode determinar se deve executar operação de SAO no componente de luma de uma fatia atual. O operador de SAO 12 pode determinar se deve executar operação de SAO nos primeiro e segundo componentes de croma da fatia atual, em que os primeiro e segundo componentes de croma são considerados como o mesmo componente. Em outras palavras, se operação de SAO for realizada no primeiro componente de cor de croma, a operação de SAO também pode ser realizada no segundo componente de croma. Se operação de SAO não for realizada no primeiro componente de cor de croma, a operação de SAO não pode ser realizada no segundo componente de croma também.
[00066] O codificador de entropia 14 pode gerar parâmetros de SAO de uma fatia atual e pode incluir os parâmetros de SAO em um cabeçalho da fatia atual.
[00067] O operador de SAO 12 pode determinar se deve executar operação de SAO em cada MCU. De acordo com a determinação do operador de SAO 12, o codificador de contexto de SAO 16 pode gerar informação de ligar/desligar de SAO de luma se deve executar operação SAO no componente de luma. Também de acordo com a determinação do operador de SAO 12, o codificador de contexto de SAO 16 pode gerar informação de ligar/desligar de SAO de croma indicando se deve executar operação de SAO nos primeiro e segundo componentes de croma.
[00068] O codificador de contexto de SAO 16 pode incluir informação de ligar/desligar de SAO de luma e informação de ligar/desligar de SAO de croma nos parâmetros SAO de uma MCU.
[00069] O operador de SAO 12 pode determinar os valores de deslocamento com relação a cada MCU. Os parâmetros de SAO incluindo os valores de deslocamento, um tipo de SAO, e uma classe de SAO podem ser também determinados com relação a cada MCU.
[00070] O operador de SAO 12 pode determinar o tipo de SAO de acordo com um método de classificação de valor de pixel da MCU atual. O tipo de SAO pode ser determinado como um tipo de borda ou um tipo de banda. De acordo com um método de classificação de valor de pixel de um bloco atual, pode ser determinado se deve classificar pixels do bloco atual de acordo com o tipo de borda ou tipo de banda.
[00071] Se o tipo de SAO for o tipo de borda, de acordo com uma direção e um formato de bordas formadas entre os pixels reconstruídos da MCU atual e seus pixels adjacentes, um deslocamento entre os pixels reconstruídos e os pixels originais pode ser determinado.
[00072] Se o tipo de SAO for do tipo banda, entre uma pluralidade de bandas obtidas por dividir uma faixa total de valores de pixel dos pixels reconstruídos da MCU atual, um deslocamento entre os pixels reconstruídos e os pixels originais incluídos em cada banda pode ser determinado. As bandas podem ser obtidas por dividir igual ou de forma desigual a faixa total dos valores de pixel.
[00073] Por conseguinte, o operador de SAO 12 pode determinar o tipo de SAO da MCU atual, que indica o tipo de borda ou o tipo de banda, com base em características espaciais de valores de pixel da MCU atual.
[00074] O operador de SAO 12 pode determinar uma classe de SAO de cada dos pixels reconstruídos de acordo com o tipo de deslocamento da MCU atual. A classe de SAO pode ser determinada como uma classe de borda ou uma classe de banda.
[00075] Com relação ao tipo de borda, a classe de borda pode indicar uma direção de bordas formadas entre os pixels reconstruídos e seus pixels adjacentes. A classe de borda pode indicar uma direção de borda de 0°, 90°, 45° ou 135°.
[00076] Se o tipo de SAO for o tipo de borda, o operador de SAO 12 pode determinar a classe de borda de cada dos pixels reconstruídos da MCU atual.
[00077] Com relação ao tipo de banda, entre uma pluralidade de bandas que são um número predeterminado de períodos de valor de pixel contínuo obtidos por dividir uma faixa total de valores de pixel da MCU atual, a classe de banda pode indicar posições das bandas às quais os valores de pixel dos pixels reconstruídos pertencem.
[00078] Por exemplo, com relação a uma amostra tendo um valor de pixel de 8 bits, uma faixa total do valor de pixel é de 0 a 255 e o valor de pixel pode ser classificado em um total de 32 bandas. Nesse caso, entre o total de 32 bandas, um número predeterminado de bandas às quais valores de pixel dos pixels reconstruídos pertencem, pode ser determinado. A classe de banda pode indicar uma posição de partida de um número predeterminado de bandas contínuas (um ponto de partida esquerdo) utilizando um dos índices de banda de 0 a 31.
[00079] Com relação ao tipo de borda, os pixels reconstruídos da MCU atual podem ser classificados em um número predeterminado de categorias de acordo como formato de bordas formadas entre os pixels reconstruídos e seus pixels adjacentes. Por exemplo, de acordo com quatro formatos de borda como vale local de uma borda côncava, um canto curvo de uma borda côncava, um canto curvo de uma borda convexa, e um pico local de uma borda convexa, os pixels reconstruídos podem ser classificados em quatro categorias. De acordo com um formato de borda de cada dos pixels reconstruídos da MCU atual, uma das quatro categorias pode ser determinada.
[00080] Com relação ao tipo de banda, de acordo com posições de bandas às quais valores de pixel dos pixels reconstruídos da MCU atual pertencem, os pixels reconstruídos podem ser classificados em um número predeterminado de categorias. Por exemplo, de acordo com índices de banda de quatro bandas contínuas a partir de uma posição de banda de início indicada pela classe de banda, os pixels reconstruídos podem ser classificados em quatro categorias. De acordo com uma das quatro bandas, às quais cada dos pixels reconstruídos da MCU atual pertence, uma das quatro categorias pode ser determinada.
[00081] O operador de SAO 12 pode determinar uma categoria de cada dos pixels reconstruídos da MCU atual. Com relação aos pixels reconstruídos da MCU atual, que pertence à mesma categoria, o operador de SAO 12 pode determinar valores de deslocamento utilizando valores de diferença entre os pixels reconstruídos e os pixels originais. Em cada categoria, uma média dos valores de diferença entre os pixels reconstruídos e os pixels originais, isto é, um erro médio dos pixels reconstruídos, pode ser determinada como um valor de deslocamento correspondendo a uma categoria atual. O operador de SAO 12 pode determinar um valor de deslocamento de cada categoria e pode determinar valores de deslocamento de todas as categorias como os valores de deslocamento da MCU atual.
[00082] Por exemplo, se o tipo de SAO da MCU atual for o tipo de borda e os pixels reconstruídos forem classificados em quatro categorias de acordo com formatos de borda, ou se o tipo de SAO da MCU atual for o tipo de banda e os pixels reconstruídos forem classificados em quatro categorias de acordo com índices de quatro bandas contínuas, operador de SAO 12 pode determinar quatro valores de deslocamento por determinar um erro médio entre os pixels reconstruídos e os pixels originais, que pertencem a cada das quatro categorias.
[00083] Cada dos valores de deslocamento pode ser maior do que ou igual a um valor mínimo predefinido e pode ser menor ou igual a um valor máximo predefinido.
[00084] O codificador de entropia 14 pode codificar e transmitir parâmetros de SAO incluindo o tipo de SAO, a classe de sao e os valores de deslocamento da MCU atual, que são determinados pelo operador de SAO 12.
[00085] Os parâmetros de SAO de cada bloco podem incluir um tipo de SAO e valores de deslocamento do bloco. Como o tipo de SAO, um tipo desl, o tipo de borda, ou o tipo de banda pode ser transmitido.
[00086] Se o tipo de SAO for o tipo desl, pode ser indicado que a operação de SAO não é aplicada a MCU atual. Nesse caso, parâmetros de SAO restantes da MCU atual não necessitam ser codificados.
[00087] Se o tipo de SAO for o tipo de borda, os parâmetros de SAO podem incluir valores de deslocamento individualmente correspondendo a classes de borda. De outro modo, se o tipo de SAO for o tipo de banda, os parâmetros de SAO podem incluir valores de deslocamento individualmente correspondendo a bandas. Em outras palavras, o codificador de entropia 14 pode codificar parâmetros de SAO de cada bloco.
[00088] Como descrito acima, o operador de SAO 12 pode executar operação de SAO em cada das MCUs de uma imagem.
[00089] De acordo com métodos de codificação por entropia, os parâmetros de SAO podem ser classificados em parâmetros para serem codificados com base em codificação por entropia baseada em contexto e parâmetros a serem codificados em um modo de desvio.
[00090] O método de codificação por entropia baseado em contexto pode incluir uma série de operações com binarização para transformar símbolos como os parâmetros de SAO em um fluxo de bits, e codificação aritmética baseada em contexto no fluxo de bits. Codificação aritmética binária adaptável a contexto (CABAC) é amplamente usada em um exemplo do método de codificação aritmética baseada em contexto. De acordo com codificação e decodificação aritmética baseada em contexto, cada bit de um fluxo de bits de símbolo pode ser considerado como um depósito de contexto, e cada posição de bit pode ser mapeada para um índice de depósito. Um comprimento do fluxo de bits, isto é, um comprimento de depósitos, pode variar de acordo com tamanhos de valores de símbolo. Para codificação e decodificação aritmética baseada em contexto, a modelagem de probabilidade baseada em contexto necessita ser realizada em símbolos.
[00091] A modelagem de probabilidade baseada em contexto necessita ser realizada na assunção de que um bit de codificação de um símbolo atual é probabilisticamente predita com base em símbolos anteriormente codificados. Para modelagem de probabilidade baseada em contexto, contexto de cada posição de bit de um fluxo de bits de símbolos, isto é, cada índice de depósito, necessita ser recentemente atualizada. Aqui, modelagem de probabilidade se refere a um processo de analisar uma probabilidade de que 0 ou 1 é gerado em cada depósito. Um processo de atualizar contexto por refletir um resultado de analisar uma probabilidade de cada bit dos símbolos de um bloco novo ao contexto pode ser repetido em cada bloco. Se a modelagem de probabilidade acima descrita for repetida, um modelo de probabilidade no qual cada depósito é casado com uma probabilidade pode ser determinada.
[00092] Por conseguinte, com referência ao modelo de probabilidade baseada em contexto, uma operação de selecionar e transmitir um código correspondendo ao contexto atual pode ser realizada com relação a cada bit de um fluxo de bits binarizado de símbolos atuais, desse modo realizando codificação por entropia baseada em contexto.
[00093] Uma operação de determinar um modelo de probabilidade baseada em contexto de cada depósito de símbolos para codificação baseada em codificação por entropia baseada em contexto requer grandes quantidades de cálculo e tempo. Por outro lado, a codificação por entropia em um modelo de desvio inclui uma operação de codificação por entropia utilizando um modelo de probabilidade sem considerar contexto de símbolos.
[00094] O codificador por entropia 14 pode incluir o codificador de contexto de SAO 16 para executar codificação baseada em codificação por entropia baseada em contexto (a seguir mencionado como ‘codificação por contexto’) nos parâmetros de SAO, e o codificador de desvio de SAO 18 para executar codificação por entropia em um modelo de desvio (a seguir mencionado como ‘codificação por desvio’) nos parâmetros de SAO.
[00095] O codificador de contexto de SAO 16 pode executar codificação por contexto em informação de fusão SAO à esquerda, informação de fusão de SAO ascendente, e informação de ligar/desligar de SAO de uma MCU.
[00096] O codificador de desvio de SAO 18 pode executar codificação de desvio em informação de valor de deslocamento absoluto e informação de posição de banda ou informação de classe de borda com relação a cada componente de cor.
[00097] Um exemplo que o codificador de contexto de SAO 16 e codificador de desvio de SAO 18 transmitem os parâmetros de SAO será descrito em detalhe abaixo com referência ao fluxograma do método de codificação de SAO na figura 1B.
[00098] O operador de SAO 12 pode determinar se deve executar operação de SAO, um método de SAO, e parâmetros de SAO com relação a cada MCU de uma fatia atual.
[00099] Na operação 11, o codificador de contexto de SAO 16 pode gerar um indicador de 1 bit de informação de fusão de SAO à esquerda por executar codificação de contexto na informação de fusão de SAO a esquerda de uma MCU atual. Também, o codificador de contexto de SAO 16 pode gerar um indicador de 1 bit de informação de fusão de SAO ascendente por executar codificação por contexto na informação de fusão de SAO ascendente da MCU atual.
[000100] O codificador por entropia 14 pode determinar se deve adotar parâmetros de SAO de MCUs adjacentes esquerda e superior de uma MCU atual como os parâmetros de SAO da MCU atual com relação a todos os componentes de cor como componentes de luma e croma sem separar os mesmos.
[000101] Inicialmente, com base em se deve prever os parâmetros de SAO da MCU atual por utilizar os parâmetros de SAO da MCU esquerda, o codificador de entropia 14 pode gerar informação de fusão de SAO a esquerda da MCU atual. Em outras palavras, sem separar o componente de luma e os primeiro e segundo componentes de croma, a mesma informação de fusão de SAO a esquerda pode ser gerada.
[000102] A seguir, com base em se deve prever os parâmetros de SAO da MCU atual por utilizar os parâmetros de SAO da MCU superior, o codificador de entropia 14 pode gerar informação de fusão de SAO ascendente da MCU atual. Sem separar o componente de luma e os primeiro e segundo componentes de croma, a mesma informação de fusão de SAO ascendente pode ser gerada.
[000103] Na operação 13, o codificador de contexto de SAO 16 pode executar codificação por contexto na informação de ligar/desligar SAO com relação a cada componente de cor. O codificador de contexto de SAO 16 pode gerar um indicador de 1 bit da informação de ligar/desligar de SAO gerada devido à codificação de contexto.
[000104] O operador de SAO 12 pode alocar um primeiro bit de informação do tipo SAO para a informação de ligar/desligar de SAO indicando se deve executar operação de SAO na MCU atual. O codificador de contexto de SAO 16 pode executar codificação CABAC baseado em contexto somente em um primeiro depósito da informação do tipo SAO.
[000105] Se a informação de ligar/desligar SAO indicar para executar operação de SAO, o codificador de desvio de SAO 18 pode executar codificação de desvio em informação de identificação de banda de borda com relação a cada componente de cor. O codificador de desvio de SAO 18 pode transmitir 1 bit da informação de identificação de banda de borda gerada devido à codificação de desvio.
[000106] O codificador de desvio de SAO 18 pode alocar um segundo bit da informação do tipo SAO na informação de identificação de banda de borda indicando se deve executar operação de SAO de borda ou operação de SAO de banda na MCU atual. O codificador de desvio de SAO 18 pode executar a codificação de CABAC no modo de desvio em um segundo depósito da informação do tipo SAO.
[000107] Em outras palavras, se a operação de SAO for realizada, o codificador de entropia 14 pode transmitir o indicador codificado por contexto da informação de ligar/desligar SAO e o indicador codificado por desvio da informação de identificação de banda de borda como a informação do tipo SAO.
[000108] O operador de SAO 12 pode aplicar a mesma informação de ligar/desligar de SAO para os primeiro e segundo componentes de croma. Também, o operador de SAO 12 pode aplicar a mesma informação de identificação de banda de borda para os primeiro e segundo componentes de croma. Por conseguinte, o codificador de entropia 14 pode executar codificação por entropia nas informações de ligar/desligar SAO e as informações de identificação de banda de borda para o componente de luma e o primeiro componente de croma, e então pode não realizar codificação por entropia novamente na informação de ligar/desligar de SAO e a informação de identificação de banda de borda para o segundo componente de croma.
[000109] Na operação 15, se a informação de ligar/desligar SAO indicar para executar operação de SAO, o codificador de desvio de SAO 18 pode executar codificação por desvio em informação de valor de deslocamento absoluto para cada categoria de SAO e cada componente de cor. O codificador de desvio de SAO 18 pode transmitir um fluxo de bits da informação de valor de deslocamento absoluto gerado devido à codificação de desvio.
[000110] O codificador de desvio de SAO 18 pode executar codificação de desvio na informação de valor de deslocamento absoluto para cada do componente de luma e primeiro e segundo componentes de croma. Também, codificação de desvio pode ser realizada na informação de valor de deslocamento absoluto com relação a cada de quatro categorias e cada componente de cor.
[000111] O aparelho de codificação de SAO 10 pode executar codificação de CABAC no modo de desvio na informação de valor de deslocamento absoluto entre os parâmetros de SAO da MCU. A informação de valor de deslocamento absoluto pode indicar um valor compreendido em uma faixa com base em uma profundidade de bit de um vídeo. Por exemplo, se a profundidade de bit corresponder a 8 bits, o valor de deslocamento absoluto pode ser um valor igual a ou maior que 0 e igual a ou menos que 7. Como outro exemplo, se a profundidade de bit corresponder a 10 bits, o valor de deslocamento absoluto pode ser um valor igual a ou maior que 0 e igual a ou menor que 31.
[000112] Na operação 17, o codificador de desvio de SAO 18 pode executar codificação por desvio em uma de informação de posição de banda e informação de classe de borda com relação a cada componente de cor. Um fluxo de bits restante da informação do tipo SAO diferente da informação de ligar/desligar SAO e a informação de identificação de banda de borda pode ser alocado à informação de posição de banda ou a informação de classe de borda. O codificador de desvio de SAO 18 pode transmitir o fluxo de bits restante da informação de posição de banda ou a informação de classe de borda gerada devido à codificação por desvio.
[000113] Se a informação de identificação de banda de borda indicar um tipo de banda, o codificador de desvio de SAO 18 pode executar codificação por desvio na informação de posição de banda com relação a cada componente de cor. A informação de posição de banda indica um ponto de partida esquerdo de bandas como uma classe de SAO de um tipo de banda. A informação de posição de banda pode ser determinada como um fluxo de bits tendo um comprimento de bit fixo.
[000114] Se a informação de valor de deslocamento absoluto para cada categoria SAO não for 0, o codificador de desvio de SAO 18 pode executar codificação por desvio em informação de sinal de deslocamento. Por conseguinte, o codificador de desvio de SAO 18 pode transmitir o fluxo de bits codificado por desvio da informação de sinal de deslocamento e informação de posição de banda como o fluxo de bits restante da informação do tipo SAO indicando um tipo de SAO de banda. O codificador de desvio de SAO 18 pode transmitir por último a informação de posição de banda entre os parâmetros de SAO da MCU.
[000115] A informação de sinal de deslocamento e a informação de posição de banda do tipo SAO de banda podem ser determinadas com relação a cada do componente de luma e primeiro e segundo componentes de croma. Por conseguinte, o codificador de desvio de SAO 18 pode executar codificação de desvio na informação de sinal de deslocamento e informação de posição de banda com relação a cada do componente de luma e primeiro e segundo componentes de croma. Um fluxo de bits de informação de classe de banda gerada devido à codificação por desvio pode ser transmitida como o fluxo de bits restante da informação do tipo SAO.
[000116] Se a informação de identificação de banda de borda indicar um tipo de borda, o codificador de desvio de SAO 18 pode executar codificação de desvio em informação de classe de borda com relação a cada componente de cor. Um fluxo de bits da informação de classe de borda gerada devido à codificação por desvio pode ser transmitido como o fluxo de bits restante da informação do tipo SAO.
[000117] A informação de classe de borda pode ser determinada com relação ao componente de luma e o primeiro componente de croma. A informação de classe de borda determinada com relação ao primeiro componente de croma pode ser igualmente aplicada ao segundo componente de croma. Por conseguinte, o codificador de desvio de SAO 18 pode definir a informação de classe de borda com relação ao componente de luma e o primeiro componente de croma, e então não pode definir a informação de classe de borda novamente com relação ao segundo componente de croma.
[000118] O aparelho de codificação de SAO 10 pode incluir um processador central (não mostrado) para coletivamente controlar o operador de SAO 12, o codificador de entropia 14, o codificador de contexto de SAO 16 e o codificador de desvio de SAO 18. Alternativamente, o operador de SAO 12, o codificador de entropia 14, o codificador de contexto de SAO 16 e o codificador de desvio de SAO 18 podem ser acionados por seus processadores individuais (não mostrados) que cooperativamente operam para controlar o aparelho de codificação de SAO 10. Alternativamente, um processador externo (não mostrado) fora do aparelho de codificação de SAO 10 pode controlar o operador de SAO 12, o codificador de entropia 14, o codificador de contexto de SAO 16 e o codificador de desvio de SAO 18.
[000119] O aparelho de codificação de SAO 10 pode incluir uma ou mais armazenagens de dados (não mostradas) para armazenar dados de entrada e saída do operador de SAO 12, codificador de entropia 14, codificador de contexto de SAO 16 e o codificador de desvio de SAO 18. O aparelho de codificação de SAO 10 pode incluir um controlador de memória (não mostrado) para gerenciar entrada e saída de dados para e a partir das armazenagens de dados.
[000120] Para executar uma operação de codificação de vídeo que inclui transformação e transmitir um resultado da operação de codificação de vídeo, o aparelho de codificação de SAO 10 pode operar em associação a um processador de codificação de vídeo interno ou externo. O processador de codificação de vídeo interno do aparelho de codificação de SAO 10 pode ser um processador independente para executar uma operação de codificação de vídeo. Também, o aparelho de codificação de SAO 10, uma unidade de processamento central, ou uma unidade de processamento gráfico pode incluir um módulo processador de codificação de vídeo para executar uma operação de codificação de vídeo básica.
[000121] As figuras 2A e 2B são um diagrama de blocos de um aparelho de decodificação de SAO 20 e um fluxograma de um método de decodificação de SAO, de acordo com modalidades da presente revelação.
[000122] O aparelho de decodificação de SAO 20 inclui um decodificador de entropia 22, e um operador de SAO 28. O decodificador de entropia 22 inclui um decodificador de contexto de SAO 24 e um decodificador de desvio de SAO 26.
[000123] O aparelho de decodificação de SAO 20 recebe um fluxo de bits que inclui dados codificados de um vídeo. O aparelho de decodificação de SAO 20 pode analisar amostras de vídeo codificadas a partir do fluxo de bits recebido, e pode executar decodificação por entropia, quantização inversa, transformação inversa, predição e compensação de movimento em cada bloco de imagem para gerar pixels reconstruídos.
[000124] O aparelho de decodificação de SAO 20 pode reconstruir uma fatia atual por decodificar símbolos codificados incluindo amostras codificadas e informação codificada da fatia atual, que são obtidas a partir do fluxo de bits recebido. Desse modo, uma imagem reconstruída pode ser gerada.
[000125] Além disso, o aparelho de decodificação de SAO 20 pode receber valores de deslocamento indicando valores de diferença entre pixels originais e pixels reconstruídos, e o operador de SAO 28 pode minimizar um erro entre uma imagem original e a imagem reconstruída. O aparelho de decodificação de SAO 20 pode receber dados codificados de cada MCU do vídeo, e pode reconstruir a MCU com base em unidades de codificação divididas a partir da MCU e tendo uma estrutura de árvore. O operador de SAO 28 pode executar operação de SAO na MCU.
[000126] Quando o aparelho de decodificação de SAO 20 executa operação de SAO, inicialmente, parâmetros de SAO determinados pelo aparelho de codificação de SAO 10 que realizou operação de SAO são necessários. O decodificador de entropia 22 pode obter os parâmetros de SAO a partir de um fluxo de bits da MCU. O decodificador de contexto de SAO 24 pode obter informações de fusão de SAO da esquerda, e informações de fusão de SAO para cima, e informações de ligar/desligar SAO com relação a cada componente de cor a partir do fluxo de bits da MCU.
[000127] Se a informação de ligar/desligar de SAO indicar para executar operação de SAO, o decodificador de desvio de SAO 26 pode obter informação de identificação de banda de borda com relação a cada componente de cor, e informação de valor de deslocamento absoluto e informação de posição de banda ou informação de classe de borda para cada categoria de SAO a partir do fluxo de bits.
[000128] Como tal, se a informação de ligar/desligar de SAO indicar para executar a operação de SAO, o operador de SAO 28 pode ajustar os valores reconstruídos da MCU com base na informação de valor de deslocamento absoluto com relação a cada categoria de SAO, utilizando a informação obtida pelo decodificador de contexto de SAO 24 e decodificador de desvio de SAO 26.
[000129] Um método de reconstruir amostras de uma MCU atual e obter parâmetros de SAO para ajustar deslocamentos será descrito agora em detalhe com referência à figura 2B.
[000130] O aparelho de decodificação de SAO 20 pode executar decodificação aritmética nos símbolos de cada MCU utilizando um modelo de probabilidade de código de cada símbolo. Além disso, o aparelho de decodificação de SAO 20 pode executar decodificação aritmética baseada em contexto (a seguir mencionada como ‘decodificação de contexto’) baseada em um modelo de probabilidade atualizada com relação a cada MCU.
[000131] Também, o aparelho de decodificação de SAO 20 pode executar decodificação por entropia de modo de desvio (a seguir mencionada como ‘decodificação de desvio’) para executar decodificação aritmética sem determinar um modelo de probabilidade em consideração de contexto.
[000132] Na operação 21, o decodificador de contexto de SAO 24 pode obter informação de fusão de SAO da esquerda codificada por contexto e informação de fusão de SAO para cima a partir de um fluxo de bits de uma MCU.
[000133] O decodificador de contexto de SAO 24 pode determinar um modelo de probabilidade baseado em contexto da informação de fusão de SAO da esquerda, pode executar decodificação de entropia utilizando o modelo de probabilidade da informação de fusão de SAO da esquerda, e desse modo pode reconstruir a informação de fusão de SAO da esquerda.
[000134] O decodificador de contexto de SAO 24 pode determinar um modelo de probabilidade baseado em contexto da informação de fusão de SAO para cima, pode executar decodificação por entropia utilizando o modelo de probabilidade da informação de fusão de SAO para cima, e desse modo pode reconstruir a informação de fusão de SAO para cima.
[000135] Se a informação de fusão de SAO da esquerda indicar para prever parâmetros de SAO de uma MCU atual utilizando os parâmetros de SAO de uma MCU esquerda, os parâmetros de SAO com relação a cada componente de cor da MCU esquerda podem ser adotados como os parâmetros de SAO com relação a cada componente de cor da MCU atual.
[000136] Se a informação de fusão de SAO da esquerda indicar para não usar os parâmetros de SAO da MCU da esquerda e a informação de fusão de SAO para cima indicar para prever os parâmetros de SAO da MCU atual utilizando os parâmetros de SAO de uma MCU superior, os parâmetros de SAO com relação a cada componente de cor da MCU superior podem ser adotados como os parâmetros de SAO com relação a cada componente de cor da MCU atual.
[000137] Entretanto, se a informação de fusão de SAO para cima indicar para não prever os parâmetros de SAO da MCU atual utilizando os parâmetros de SAO da MCU superior, o decodificador de entropia 22 pode obter os parâmetros de SAO com relação a cada componente de cor da MCU atual a partir do fluxo de bits.
[000138] Na operação 23, o decodificador de contexto de SAO 24 pode obter informação de ligar/desligar de SAO codificada por contexto com relação a cada componente de cor a partir do fluxo de bits da MCU.
[000139] Se a informação de ligar/desligar de SAO indicar para executar operação de SAO, o decodificador de desvio de SAO 26 pode obter ainda informação de identificação de banda de borda codificada por desvio com relação a cada componente de cor a partir do fluxo de bits da MCU.
[000140] O decodificador de contexto de SAO 24 pode determinar um modelo de probabilidade baseado em contexto da informação de ligar/desligar de SAO, pode executar decodificação por entropia utilizando o modelo de probabilidade da informação de ligar/desligar de SAO, e desse modo pode reconstruir a informação de ligar/desligar de SAO.
[000141] A informação de ligar/desligar de SAO para um primeiro componente de croma pode ser igualmente aplicada a um segundo componente de croma. Por conseguinte, se a informação de ligar/desligar de SAO para cada de um componente de luma e o primeiro componente de croma for obtida, o decodificador de contexto de SAO 24 não pode obter adicionalmente a informação de ligar/desligar de SAO para o segundo componente de croma.
[000142] A informação de identificação de banda de borda para o primeiro componente de croma pode ser igualmente aplicada ao segundo componente de croma. Por conseguinte, se a informação de identificação de banda de borda para cada do componente de luma e primeiro componente de croma for obtida, o decodificador de desvio de SAO 26 não pode obter adicionalmente a informação de identificação de banda de borda para o segundo componente de croma.
[000143] Se a informação de ligar/desligar de SAO obtida na operação 23 indicar para executar operação de SAO, na operação 25, o decodificador de desvio de SAO 26 pode obter informação de valor de deslocamento absoluto codificado por desvio para cada categoria de SAO e cada componente de cor a partir do fluxo de bits da MCU.
[000144] O decodificador de desvio de SAO 26 pode executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de valor de deslocamento absoluto e desse modo pode reconstruir a informação de valor de deslocamento absoluto.
[000145] Na operação 27, o decodificador de desvio de SAO 26 pode obter uma da informação de posição de banda codificada por desvio e informação de classe de borda com relação a cada componente de cor a partir do fluxo de bits da MCU.
[000146] Se a informação de identificação de banda de borda indicar um tipo de banda, o decodificador de desvio de SAO 26 pode obter informação de posição de banda codificada por desvio com relação a cada componente de cor a partir do fluxo de bits. Se a informação de valor de deslocamento absoluto obtida para cada categoria de SAO não for 0, o decodificador de desvio de SAO 26 pode obter informação de sinal de deslocamento codificada por desvio e informação de posição de banda com relação a cada componente de cor a partir do fluxo de bits. O decodificador de desvio de SAO 26 pode obter por último a informação de posição de banda entre os parâmetros de SAO da MCU.
[000147] Se a informação de identificação de banda de borda indicar um tipo de borda, o decodificador de desvio de SAO 26 pode obter informação de classe de borda codificada por desvio com relação a cada componente de cor a partir do fluxo de bits. A informação de classe de borda pode incluir informação de classe de borda para o componente de luma e informação de classe de borda para o primeiro componente de croma. A informação de classe de borda para o primeiro componente de croma pode ser igualmente aplicada ao segundo componente de croma. Se a informação de classe de borda para cada do componente de luma e primeiro componente de croma for obtida, o decodificador de desvio de SAO 26 não pode obter adicionalmente a informação de classe de borda para o segundo componente de croma.
[000148] O decodificador de desvio de SAO 26 pode executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de sinal de deslocamento e desse modo pode reconstruir a informação de sinal de deslocamento. O decodificador de desvio de SAO 26 pode executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de posição de banda e desse modo pode reconstruir a informação de posição de banda. O decodificador de desvio de SAO 26 pode executar decodificação por entropia sem utilizar um modelo de probabilidade baseado em contexto da informação de classe de borda e desse modo pode reconstruir a informação de classe de borda.
[000149] O operador de SAO 28 pode determinar os parâmetros de SAO da MCU atual por utilizar os parâmetros de SAO de uma MCU esquerda ou superior com base em informação de fusão de SAO. Nesse caso, os parâmetros de SAO da MCU atual não podem ser extraídos, porém podem ser reconstruídos para serem iguais aos parâmetros de SAO de MCUs adjacentes anteriormente reconstruídas.
[000150] O decodificador de contexto de SAO 24 pode extrair informação de fusão de SAO comum para o componente de luma e os primeiro e segundo componentes de croma da MCU atual. O decodificador de contexto de SAO 24 pode determinar se deve reconstruir os parâmetros de SAO do componente de luma e parâmetros de SAO dos primeiro e segundo componentes de croma para serem iguais aos parâmetros de SAO de uma MCU adjacente, com base na informação de fusão de SAO comum.
[000151] Um tipo desl, um tipo de borda, ou um tipo de banda pode ser determinado com base na informação do tipo SAO obtida pelo decodificador de entropia 22.
[000152] Se um primeiro depósito da informação do tipo SAO, isto é, a informação de ligar/desligar de SAO, for reconstruído pelo decodificador de contexto de SAO 24, se deve executar a operação de SAO na MCU atual pode ser determinado com base na informação de ligar/desligar de SAO. Se um tipo de SAO for um tipo desl, pode ser determinado para não executar a operação de SAO na MCU atual. Nesse caso, parâmetros de SAO restantes da MCU atual não necessitam ser analisados.
[000153] O decodificador de desvio de SAO 26 pode determinar um valor de deslocamento absoluto com relação a cada componente de cor e cada categoria. Cada valor de deslocamento pode ser igual a ou maior que um valor mínimo preestabelecido, e pode ser igual a ou menor que um valor máximo preestabelecido.
[000154] Se a informação do tipo de SAO indicar um tipo de banda, uma posição de uma banda incluindo valores de pixel de pixels reconstruídos pode ser determinada com base na informação de posição de banda obtida pelo decodificador de desvio de SAO 26.
[000155] Se a informação de tipo de SAO indicar um tipo de banda e o valor de deslocamento absoluto for determinado como 0, o decodificador de desvio de SAO 26 não reconstrói a informação de sinal de deslocamento. Se o valor de deslocamento absoluto não for 0, o decodificador de desvio de SAO 26 pode obter a informação de sinal de deslocamento, e pode determinar se o valor de deslocamento é um valor positivo ou um valor negativo. Também, o decodificador de desvio de SAO 26 pode obter a informação de posição de banda após a obtenção da informação de sinal de deslocamento.
[000156] Se a informação do tipo de SAO indicar um tipo de borda, com base na informação de classe de borda obtida pelo decodificador de desvio de SAO 26, uma direção de borda de pixels reconstruídos incluídos na MCU atual pode ser determinada como 0°, 90°, 45° ou 135°.
[000157] Operador de SAO 28 pode determinar se o tipo de SAO da MCU atual é um tipo de borda ou um tipo de banda, com base em um segundo bit de informação do tipo SAO de luma, e pode executar operação de SAO de borda ou operação de SAO de banda no componente de luma da MCU atual.
[000158] O operador de SAO 28 pode determinar se o tipo de SAO da MCU atual é um tipo de borda ou um tipo de banda, com base em um segundo bit de informação do tipo SAO de croma, e pode executar operação de SAO de borda ou operação de SAO de banda nos primeiro e segundo componentes de croma da MCU atual.
[000159] Também, se for determinado executar operação de SAO de borda nos primeiro e segundo componentes de croma da MCU atual, o operador de SAO 28 pode determinar que os primeiro e segundo componentes de croma da MCU atual tenham a mesma classe de borda, com base na informação do tipo de SAO de croma.
[000160] A informação de valor de deslocamento absoluto entre os parâmetros de SAO obtidos pelo decodificador de desvio de SAO 26 pode ser limitada a um valor igual a ou menor que um valor limiar com base em uma profundidade de bit de um vídeo. A informação de valor de deslocamento absoluto pode indicar um valor em uma faixa com base em uma profundidade de bit de um vídeo. Por exemplo, se a profundidade de bit corresponder a 8 bits, o valor de deslocamento absoluto pode ser um valor igual a ou maior que 0 e igual a ou menor que 7. Como outro exemplo, se a profundidade de bit corresponder a 10 bits, o valor de deslocamento absoluto pode ser um valor igual a ou maior que 0 e igual a ou menor que 31.
[000161] Também, se for lido para executar operação de SAO de banda na MCU atual a partir de um segundo bit da informação de tipo de SAO, o decodificador de desvio de SAO 26 pode executar decodificação de CABAC no modo de desvio nos bits tendo um comprimento de bit fixo e seguindo o segundo bit da informação do tipo SAO. O decodificador de desvio de SAO 26 pode obter informação sobre um ponto de partida esquerda de bandas a partir dos últimos bits de comprimento de bit fixo da informação do tipo SAO com relação a cada do componente de luma e componente de croma.
[000162] Com base na informação de identificação de banda de borda reconstruída pelo decodificador de desvio de SAO 26, um método de classificação de valor de pixel da MCU atual pode ser determinado como um tipo de borda ou um tipo de banda.
[000163] O operador de SAO 28 pode ajustar valores de pixel de amostras reconstruídas por valores de diferença determinados com relação a unidades de codificação divididas a partir da MCU atual e tendo uma estrutura de árvore.
[000164] O aparelho de decodificação de SAO 20 pode incluir um processador central (não mostrado) para coletivamente controlar o decodificador de entropia 22, o decodificador de contexto de SAO 24, o decodificador de desvio de SAO 26 e o operador de SAO 28. Alternativamente, o decodificador de entropia 22, o decodificador de contexto de SAO 24, o decodificador de desvio de SAO 26, e o operador de SAO 28 podem ser acionados por seus processadores individuais (não mostrados) que cooperativamente operam para controlar o aparelho de decodificação de SAO 20. Alternativamente, um processador externo (não mostrado) fora do aparelho de decodificação de SAO 20 pode controlar o decodificador de entropia 22, o decodificador de contexto de SAO 24, o decodificador de desvio de SAO 26 e o operador de SAO 28.
[000165] O aparelho de decodificação de SAO 20 pode incluir uma ou mais armazenagens de dados (não mostradas) para armazenar dados de entrada e saída do decodificador de entropia 22, o decodificador de contexto de SAO 24, o decodificador de desvio de SAO 26 e o operador de SAO 28. O aparelho de decodificação de SAO 20 pode incluir um controlador de memória (não mostrado) para gerenciar entrada e saída de dados para e a partir das armazenagens de dados.
[000166] Para reconstruir um vídeo por executar decodificação de vídeo o aparelho de decodificação de SAO 20 pode operar em associação com um processador de decodificação de vídeo interno ou externo. O processador de decodificação de vídeo interno do aparelho de decodificação de SAO 20 pode ser um processador independente para executar uma operação de decodificação de vídeo básica. Também, o aparelho de decodificação de SAO 20, uma unidade de processamento central ou uma unidade de processamento gráfica pode incluir um módulo de processamento de decodificação de vídeo para executar uma operação de decodificação de vídeo básica.
[000167] Um método de decodificação de vídeo utilizando uma técnica SAO será descrito agora em detalhe com referência à figura 3. A figura 3 é um diagrama de blocos de um aparelho de decodificação de vídeo 30 de acordo com modalidades da presente revelação.
[000168] O aparelho de decodificação de vídeo 30 inclui um decodificador de entropia 31, um quantizador inverso 32, um transformador inverso 33, um reconstrutor 34, um intra preditor 35, um buffer de imagem de referência 36, um compensador de movimento 37, um filtro de desbloqueio 38 e um filtro SAO 39.
[000169] O aparelho de decodificação de vídeo 30 pode receber um fluxo de bits incluindo dados de vídeo codificados. O decodificador de entropia 31 pode analisar informações modo intra, informações modo inter, informações de SAO e resíduos a partir do fluxo de bits.
[000170] Os resíduos extraídos pelo decodificador de entropia 31 podem ser coeficientes de transformação quantizados. Por conseguinte, o quantizador inverso 32 pode executar quantização inversa nos resíduos para reconstruir coeficientes de transformação, e o transformador inverso 33 pode executar transformação inversa nos coeficientes reconstruídos para reconstruir valores residuais do domínio de espaço.
[000171] Para prever e reconstruir os valores residuais do domínio de espaço, intra predição ou compensação de movimento pode ser realizada.
[000172] Se a informação modo intra for extraída pelo decodificador de entropia 31, o intra preditor 35 pode determinar amostras de referência a serem referidas para reconstruir amostras atuais entre amostras espacialmente adjacentes às amostras atuais, utilizando a informação modo intra. As amostras de referência podem ser selecionadas entre amostras anteriormente reconstruídas pelo reconstrutor 34. O reconstrutor 34 pode reconstruir as amostras atuais utilizando as amostras de referência determinadas com base na informação modo intra e os valores residuais reconstruídos pelo transformador inverso 33.
[000173] Se a informação modo inter for extraída pelo decodificador de entropia 31, o compensador de movimento 37 pode determinar uma imagem de referência a ser referida para reconstruir amostras atuais de uma imagem atual entre imagens reconstruídas anteriormente à imagem atual, utilizando a informação modo inter. A informação modo inter pode incluir vetores de movimento, índices de referência, etc. Utilizando os índices de referência, entre imagens reconstruídas anteriormente à imagem atual e armazenadas no buffer de imagem de referência 36, uma imagem de referência a ser utilizada para executar compensação de movimento nas amostras atuais pode ser determinada. Utilizando os vetores de movimento, um bloco de referência da imagem de referência a ser utilizada para executar compensação de movimento em um bloco atual pode ser determinado. O reconstrutor 34 pode reconstruir as amostras atuais utilizando o bloco de referência determinado com base na informação modo inter e os valores residuais reconstruídos pelo transformador inverso 33.
[000174] O reconstrutor 34 pode reconstruir amostras e pode transmitir pixels reconstruídos. O reconstrutor 34 pode gerar pixels reconstruídos de cada das MCUs com base em unidades de codificação tendo uma estrutura de árvore.
[000175] O filtro de desbloqueio 38 pode executar filtração para reduzir um fenômeno de bloqueio de pixels dispostos em regiões de borda da MCU ou cada das unidades de codificação tendo uma estrutura de árvore.
[000176] Também, o filtro SAO 39 pode ajustar deslocamentos de pixels reconstruídos de cada MCU de acordo com uma técnica SAO. O filtro SAO 39 pode determinar um tipo de SAO, uma classe de SAO, e valores de deslocamento de uma MCU atual com base na informação SAO extraída pelo decodificador de entropia 31.
[000177] Uma operação de extrair a informação SAO pelo decodificador de entropia 31 pode corresponder a uma operação do extrator de parâmetro de SAO 22 do aparelho de decodificação de SAO 20, e operações do filtro SAO 39 podem corresponder a operações do determinador de SAO 24 e operador de SAO 26 do aparelho de decodificação de SAO 20.
[000178] O operador de SAO 39 pode determinar sinais e valores de diferença dos valores de deslocamento com relação aos pixels reconstruídos da MCU atual com base nos valores de deslocamento determinados a partir da informação SAO. O filtro SAO 39 pode reduzir erros entre os pixels reconstruídos e pixels originais por aumentar ou reduzir valores de pixel dos pixels reconstruídos pelos valores de diferença determinados com base nos valores de deslocamento.
[000179] Uma imagem incluindo os pixels reconstruídos ajustados em deslocamento pelo filtro SAO 39 pode ser armazenada no buffer de imagem de referência 36. Desse modo, utilizando uma imagem de referência tendo erros minimizados entre amostras reconstruídas e pixels originais de acordo com uma técnica SAO, compensação de movimento pode ser executada em uma imagem seguinte.
[000180] De acordo com a operação SAO, com base nos valores de diferença entre pixels reconstruídos e pixels originais, um deslocamento de um grupo de pixels incluindo os pixels reconstruídos pode ser determinado. Para a operação SAO, as modalidades para classificar pixels reconstruídos em grupos de pixel serão descritas agora em detalhe.
[000181] De acordo com uma operação SAO, pixels podem ser classificados (i) com base em um tipo de borda de pixels reconstruídos, ou (ii) um tipo de banda de pixels reconstruídos. O fato de se pixels são classificados com base em um tipo de borda ou um tipo de banda pode ser definido utilizando um tipo de SAO.
[000182] Modalidades de classificar pixels com base em um tipo de borda de acordo com uma operação de SAO serão descritas agora em detalhe.
[000183] Quando deslocamentos do tipo borda de uma MCU atual são determinados, uma classe de borda de cada dos pixels reconstruídos incluídos na MCU atual pode ser determinada. Em outras palavras, por comparar valores de pixel de pixels reconstruídos atuais e pixels adjacentes, uma classe de borda dos pixels reconstruídos atuais pode ser definida. Um exemplo de determinar uma classe de borda será descrita agora com referência à figura 4.
[000184] A figura 4 é uma tabela que mostra classes de borda de tipos de borda, de acordo com modalidades da presente revelação.
[000185] Os índices 0, 1, 2 e 3 podem ser sequencialmente alocados a classes de borda 41, 42, 43 e 44. Se um tipo de borda ocorrer frequentemente, um índice pequeno pode ser alocado ao tipo de borda.
[000186] Uma classe de borda pode indicar uma direção de bordas unidimensionais formadas entre um pixel reconstruído atual X0 e dois pixels adjacentes. A classe de borda 41 tendo o índice 0 indica um caso quando bordas são formadas entre o pixel reconstruído atual X0 e dois pixels horizontalmente adjacentes X1 e X2. A classe de borda 42 tendo o índice 1 indica um caso quando bordas são formadas entre o pixel reconstruído atual X0 e dois pixels verticalmente adjacentes X3 e X4. A classe de borda 43 tendo o índice 2 indica um caso quando bordas são formadas entre o pixel reconstruído atual X0 e dois pixels diagonalmente adjacentes 135° X5 e X8. A classe de borda 44 tendo o índice 3 indica um caso quando bordas são formadas entre o pixel reconstruído atual X0 e dois pixels diagonalmente adjacentes 45° X6 e X7.
[000187] Por conseguinte, por analisar direções de borda de pixels reconstruídos incluídos em uma MCU atual e desse modo determinar uma direção de borda forte na MCU atual, uma classe de borda da MCU atual pode ser determinada.
[000188] Com relação a cada classe de borda, categorias podem ser classificadas de acordo com um formato de borda de um pixel atual. Um exemplo de categorias de acordo com formatos de borda será descrito agora com referência às figuras 5A e 5B.
[000189] As figuras 5A e 5B são uma tabela e um gráfico mostrando categorias de tipos de borda, de acordo com modalidades da presente revelação.
[000190] Uma categoria de borda indica se um pixel atual corresponde a um ponto mais baixo de uma borda côncava, um pixel disposto em um canto curvo em torno de um ponto mais baixo de uma borda côncava, um ponto mais elevado de uma borda convexa ou um pixel disposto em um canto curvo em torno de um ponto mais elevado de uma borda convexa.
[000191] A figura 5A mostra exemplarmente condições para determinar categorias de bordas. A figura 5B mostra exemplarmente formatos de borda entre um pixel reconstruído e pixels adjacentes e seus valores de pixel c, a e b.
[000192] C indica um índice de um pixel reconstruído atual, e a e b indicam índices de pixels adjacentes em dois lados do pixel reconstruído atual de acordo com uma direção de borda. Xa, Xb e Xc respectivamente indicam valores de pixel de pixels reconstruídos tendo os índices a, b e c. Na figura 5B, um eixo geométrico x indica índices do pixel reconstruído atual e os pixels adjacentes em dois lados do pixel reconstruído atual, e um eixo geométrico y indica valores de pixel de amostras.
[000193] A categoria 1 indica um caso quando uma amostra atual corresponde a um ponto mais baixo de uma borda côncava, isto é, um vale local (Xc<Xa && Xc < Xb). Como mostrado no gráfico 51, se o pixel reconstruído atual c entre os pixels adjacentes a e b corresponder a um ponto mais baixo de uma borda côncava, o pixel reconstruído atual pode ser classificado como a categoria 1.
[000194] A categoria 2 indica um caso quando uma amostra atual é disposta em um canto curvo em torno de um ponto mais baixo de uma borda côncava, isto é, um canto côncavo (Xc<Xa && Xc==Xb)|| (Xc==Xa && Xc<Xb). Como mostrado no gráfico 52 se o pixel reconstruído atual c entre os pixels adjacentes a e b for disposto em um ponto final de uma curva para baixo de uma borda côncava ou como mostrado no gráfico 53, se o pixel reconstruído atual c for disposto em um ponto de partida de uma curva ascendente de uma borda côncava (Xc==Xa && Xc<Xb), o pixel reconstruído atual pode ser classificado como a categoria 2.
[000195] A categoria 3 indica um caso quando uma amostra atual é disposta em um canto curvo em torno de um ponto mais alto de uma borda convexa, isto é, um canto convexo (Xc<Xb && Xc==Xa). Como mostrado no gráfico 54 se o pixel reconstruído atual c entre os pixels adjacentes a e b for disposto em um ponto de partida de uma curva para baixo de uma borda convexa (Xc==Xb && Xc<Xa) ou como mostrado no gráfico 55, se o pixel reconstruído atual c for disposto em um ponto final de uma curva ascendente de uma borda convexa (Xc>Xa && Xc == Xb), o pixel reconstruído atual pode ser classificado como a categoria 3.
[000196] A categoria 4 indica um caso quando uma amostra atual corresponde a um ponto mais elevado de uma borda convexa, isto é, um pico local (Xc>Xa && Xc>Xb). Como mostrado no gráfico 56 se o pixel reconstruído atual c entre os pixels adjacentes a e b corresponder a um ponto mais elevado de uma borda conexa, o pixel reconstruído atual pode ser classificado como a categoria 4.
[000197] Se o pixel reconstruído atual não atender a nenhuma das condições das categorias 1, 2, 3 e 4, o pixel reconstruído atual não corresponde a uma borda e desse modo é classificado como categoria 0, e um deslocamento da categoria 0 não necessita ser codificado.
[000198] De acordo com modalidades da presente revelação, com relação a pixels reconstruídos correspondendo à mesma categoria, um valor médio de valores de diferença entre os pixels reconstruídos e pixels originais pode ser determinado como um deslocamento de uma categoria atual. Além disso, deslocamentos de todas as categorias podem ser determinados.
[000199] As bordas côncavas das categorias 1 e 2 podem ser suavizadas se valores de pixel reconstruídos forem ajustados utilizando valores de deslocamento positivos, e podem ser aparados devido a valores de deslocamento negativos. As bordas convexas das categorias 3 e 4 podem ser suavizadas devido a valores de deslocamento negativos e podem ser aparados devido a valores de deslocamento positivos.
[000200] O aparelho de codificação de SAO 10 não pode permitir o efeito de aparar de bordas. Aqui, as bordas côncavas das categorias 1 e 2 necessitam valores de deslocamento positivos, e as bordas convexas das categorias 3 e 4 necessitam de valores de deslocamento negativos. Nesse caso, se uma categoria de uma borda for conhecida, um sinal de um valor de deslocamento pode ser determinado. Por conseguinte, o aparelho de codificação de SAO 10 não pode transmitir o sinal do valor de deslocamento e pode transmitir somente um valor absoluto do valor de deslocamento. Também, o aparelho de decodificação de SAO 20 pode não receber o sinal do valor de deslocamento e pode receber somente um valor absoluto do valor de deslocamento.
[000201] Por conseguinte, o aparelho de codificação de SAO 10 pode codificar e transmitir valores de deslocamento de acordo com categorias de uma classe de borda atual, e o aparelho de decodificação de SAO 20 pode ajustar pixels reconstruídos das categorias pelos valores de deslocamento recebidos.
[000202] Por exemplo, se um valor de deslocamento de um tipo de borda for determinado como 0, o aparelho de codificação de SAO 10 pode transmitir somente informações de valor zero como o valor de deslocamento.
[000203] Por exemplo, se um valor de deslocamento de um tipo de borda não for 0, o aparelho de codificação de SAO 10 pode transmitir informações de valor zero e um valor absoluto como o valor de deslocamento. Um sinal dos valores de deslocamento não necessita ser transmitido.
[000204] Se o valor de deslocamento absoluto recebido não for 0, o aparelho de decodificação de SAO 20 pode ler o valor de deslocamento absoluto do tipo de borda. O sinal do valor de deslocamento pode ser previsto de acordo com uma categoria de borda com base em um formato de borda entre um pixel reconstruído e pixels adjacentes.
[000205] Por conseguinte, o aparelho de codificação de SAO 10 pode classificar pixels de acordo com direções de borda e formatos de borda, pode determinar um valor de erro médio entre pixels tendo as mesmas características como um valor de deslocamento, e pode determinar valores de deslocamento de acordo com categorias. O aparelho de codificação de SAO 10 pode codificar e transmitir informações do tipo SAO indicando um tipo de borda, informações de classe de SAO indicando uma direção de borda e os valores de deslocamento.
[000206] O aparelho de decodificação de SAO 20 pode receber as informações do tipo SAO, as informações de classe de SAO e os valores de deslocamento, e pode determinar uma direção de borda de acordo com as informações do tipo de SAO e informações de classe de SAO. O aparelho de decodificação de SAO 20 pode determinar um valor de deslocamento de pixels reconstruídos de uma categoria correspondendo a um formato de borda de acordo com a direção de borda, e pode ajustar valores de pixel dos pixels reconstruídos pelo valor de deslocamento, desse modo minimizando um erro entre uma imagem original e uma imagem reconstruída.
[000207] Modalidades de classificar pixels com base em um tipo de banda de acordo com uma técnica SAO serão descritas agora em detalhe.
[000208] De acordo com modalidades da presente revelação, cada dos valores de pixel de pixels reconstruídos pode pertence a uma de uma pluralidade de bandas. Por exemplo, os valores de pixel podem ter uma faixa total de um valor mínimo Min de 0 a um valor máximo Max de 2A(p-1) de acordo com amostragem de bits-p. Se a faixa total (Min, Max) dos valores de pixel for dividido em Kperiods, cada período dos valores de pixel é mencionado como uma banda. Se Bk indicar um valor máximo de uma ka banda, bandas [B0, B1-1], [B1, B2-1], [B2, B3-1], ..., e [Bk-1, Bk] podem ser divididas. Se um valor de pixel de um pixel reconstruído atual Rec (x, y) pertencer à banda [Bk-1, Bk], uma banda atual pode ser determinada como k. As bandas podem ser divididas de forma igual ou desigual.
[000209] Por exemplo, se valores de pixel forem classificados em bandas de pixel de 8 bits iguais, os valores de pixel podem ser divididos em 32 bandas. Em mais detalhe, podem ser classificados em bandas [0, 7], [8, 15], ..., [240, 247], e [248, 255].
[000210] Entre uma pluralidade de bandas classificadas de acordo com um tipo de banda, uma banda a qual cada dos valores de pixel de pixels reconstruídos pertence pode ser determinada. Também, um valor de deslocamento indicando uma média de erros entre pixels originais e pixels reconstruídos em cada banda pode ser determinado.
[000211] Por conseguinte, o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem codificar e transceptar um deslocamento correspondendo a cada das bandas classificadas de acordo com um tipo de banda atual, e podem ajustar pixels reconstruídos pelo deslocamento.
[000212] Por conseguinte, com relação a um tipo de banda, o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem classificar pixels reconstruídos de acordo com bandas as quais seus valores de pixel pertencem, podem determinar um deslocamento como uma média de valores de erro de pixels reconstruídos que pertencem à mesma faixa, e podem ajustar os pixels reconstruídos pelo deslocamento, desse modo minimizando um erro entre uma imagem original e uma imagem reconstruída.
[000213] Quando um deslocamento de acordo com um tipo de banda é determinado, o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem classificar pixels reconstruídos em categorias de acordo com uma posição de banda. Por exemplo, se a faixa total dos valores de pixel for dividida em K bandas, categorias podem ser indexadas de acordo com um índice de banda k indicando uma ka banda. O número de categorias pode ser determinado para corresponder ao número de bandas.
[000215] Entretanto, para reduzir dados, o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem limitar o número de categorias utilizadas para determinar deslocamentos de acordo com uma técnica SAO. Por exemplo, um número predeterminado de bandas que são contínuas de uma banda tendo uma posição de partida predeterminada em uma direção na qual um índice de banda é aumentado pode ser alocado como categorias, e somente um deslocamento de cada categoria pode ser determinado.
[000216] Por exemplo, se uma banda tendo um índice de 12 for determinada como uma banda de partida, quatro bandas a partir da banda de partida, isto é, bandas tendo índices de 12, 13, 14 e 15 podem ser alocadas como categorias 1, 2, 3 e 4. Por conseguinte, um erro médio entre pixels reconstruídos e pixels originais incluídos em uma banda tendo o índice de 12 pode ser determinado como um deslocamento de categoria 1. De modo semelhante, um erro médio entre pixels reconstruídos e pixels originais incluídos em uma banda tendo o índice de 13 pode ser determinado como um deslocamento de categoria 2, um erro médio entre pixels reconstruídos e pixels originais incluídos em uma banda tendo o índice de 14 pode ser determinado como um deslocamento de categoria 3, e um erro médio entre pixels reconstruídos e pixels originais incluídos em uma banda tendo o índice de 15 pode ser determinado como um deslocamento de categoria 4.
[000217] Nesse caso, informações sobre uma posição de banda de partida são necessárias para determinar posições de bandas alocadas como categorias. Por conseguinte, o aparelho de codificação de SAO 10 pode codificar e transmitir as informações sobre a posição de banda de partida como a classe de SAO. O aparelho de codificação de SAO 10 pode codificar e transmitir um tipo de deslocamento indicando um tipo de banda, uma classe de SAO e valores de deslocamento de acordo com categorias.
[000218] O aparelho de decodificação de SAO 20 pode receber o tipo de SAO, a classe de SAO e os valores de deslocamento de acordo com as categorias. Se o tipo de SAO recebido for um tipo de banda, o aparelho de decodificação de SAO 20 pode ler uma posição de banda de partida a partir da classe de SAO. O aparelho de decodificação de SAO 20 pode determinar uma banda a qual pixels reconstruídos pertencem, entre quatro bandas a partir da banda de partida, pode determinar um valor de deslocamento alocado a uma banda atual entre os valores de deslocamento de acordo com as categorias, e pode ajustar valores de pixel dos pixels reconstruídos pelo valor de deslocamento.
[000219] Acima, um tipo de borda e um tipo de banda são introduzidos como tipos de SAO, e uma classe de SAO e uma categoria de acordo com o tipo de SAO são descritos em detalhe. Parâmetros de SAO codificados e transceptados pelo aparelho de codificação de SAO 10 e aparelho de decodificação de SAO 20 serão descritos agora em detalhe.
[000220] O aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem determinar um tipo de SAO de acordo com um método de classificação de pixel de pixels reconstruídos de cada MCU.
[000221] O tipo de SAO pode ser determinado de acordo com características de imagem de cada bloco. Por exemplo, com relação a uma MCU incluindo uma borda vertical, uma borda horizontal, e uma borda diagonal, para alterar valores de borda, valores de deslocamento podem ser determinados por classificar valores de pixel de acordo com um tipo de borda. Com relação a uma MCU não incluindo uma região de borda, valores de deslocamento podem ser determinados de acordo com uma classificação de banda. Por conseguinte, o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem sinalizar o tipo de deslocamento com relação a cada de MCU.
[000222] O aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem determinar parâmetros de SAO com relação a cada MCU. Isto é, tipos de SAO de pixels reconstruídos de uma MCU podem ser determinados, os pixels reconstruídos da MCU podem ser classificados em categorias, e valores de deslocamento podem ser determinados de acordo com as categorias.
[000223] Entre os pixels reconstruídos incluídos na MCU, o aparelho de codificação de SAO 10 pode determinar um erro médio de pixels reconstruídos classificados na mesma categoria, como um valor de deslocamento. Um valor de deslocamento de cada categoria pode ser determinado.
[000224] De acordo com modalidades da presente revelação, os parâmetros de SAO podem incluir um tipo de SAO, valores de SAO e uma classe de SAO. O aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem transceptar os parâmetros de SAO determinados com relação a cada MCU.
[000225] Entre parâmetros de SAO de uma MCU, o aparelho de codificação de SAO 10 pode codificar e transmitir o tipo de SAO e os valores de deslocamento. Se o tipo de SAO for um tipo de borda, o aparelho de codificação de SAO 10 pode transmitir ainda uma classe de SAO indicando uma direção de borda, que é seguida pelo tipo de SAO e os valores de deslocamento de acordo com categorias. Se o tipo de SAO for um tipo de banda, o aparelho de codificação de SAO 10 pode transmitir ainda uma classe de SAO indicando uma posição de banda de partida, que é seguida pelo tipo de SAO e os valores de deslocamento de acordo com categorias. A classe de SAO pode ser classificada como informação de classe de borda com relação ao tipo de borda, e pode ser classificada como informação de posição de banda com relação ao tipo de banda.
[000226] O aparelho de decodificação de SAO 20 pode receber os parâmetros de SAO de cada MCU, que inclui o tipo de SAO, os valores de SAO e a classe de SAO. Também, o aparelho de decodificação de SAO 20 pode selecionar um valor de deslocamento de uma categoria a qual cada pixel reconstruído pertence, entre os valores de deslocamento de acordo com categorias, e pode ajustar o pixel reconstruído pelo valor de deslocamento selecionado.
[000227] Modalidades de transcepção de valores de deslocamento entre parâmetros de SAO serão descritas agora.
[000228] Para transmitir os valores de deslocamento, o aparelho de codificação de SAO 10 pode transmitir ainda informações de sinal e um resto absoluto.
[000229] Se um valor de deslocamento absoluto é 0, a informação de sinal ou o resto absoluto não necessita ser codificado. Entretanto, se o valor de deslocamento absoluto não for 0, a informação de sinal e o resto absoluto podem ser adicionalmente transmitidos.
[000230] Entretanto, como descrito acima, com relação ao tipo de borda, uma vez que o valor de deslocamento pode ser previsto como um número positivo ou um número negativo de acordo com uma categoria, a informação de sinal não necessita ser transmitida.
[000231] De acordo com modalidades da presente revelação, um valor de deslocamento Off-set pode ser anteriormente restrito em uma faixa de um valor mínimo MinOffSet e um valor máximo MaxOffset antes do valor de deslocamento ser determinado (MinOffSet < Off-Set < MaxOffSet).
[000232] Por exemplo, com relação a um tipo de borda, valores de deslocamento de pixels reconstruídos de categorias 1 e 2 podem ser determinados em uma faixa de um valor mínimo de 0 a um valor máximo de 7. Com relação ao tipo de borda, valores de deslocamento de pixels reconstruídos de categorias 3 e 4 podem ser determinados em uma faixa de um valor mínimo de -7 a um valor máximo de 0.
[000233] Por exemplo, com relação a um tipo de banda, valores de deslocamento de pixels reconstruídos de todas as categorias podem ser determinados em uma faixa de um valor mínimo de -7 a um valor máximo de 7.
[000234] Para reduzir bits de transmissão de um valor de deslocamento, um resto pode ser restrito a um valor de p-bit ao invés de um número negativo. Nesse caso, o resto pode ser maior ou igual a 0 e pode ser menor ou igual a um valor de diferença entre o valor máximo e o valor mínimo (0 < Resto < MaxOffSet - MinOffSet + 1 < 2^p). Se o aparelho de codificação de SAO 10 transmitir o resto e o aparelho de decodificação de SAO 20 conhecer pelo menos um do valor máximo e valor mínimo do valor de deslocamento, um valor de deslocamento original pode ser reconstruído utilizando somente o resto recebido.
[000235] Entre componentes de parâmetro de SAO, informações de fusão de SAO serão descritas agora em detalhe.
[000236] Tipos de SAO e/ou valores de deslocamento de blocos adjacentes podem ser provavelmente iguais. O aparelho de codificação de SAO 10 pode comparar parâmetros de SAO de um bloco atual com parâmetros de SAO de blocos adjacentes e podem fundir e codificar os parâmetros de SAO do bloco atual e os blocos adjacentes se os parâmetros de deslocamento forem iguais. Se os parâmetros de SAO do bloco adjacente forem anteriormente codificados, os parâmetros de SAO do bloco adjacente podem ser adotados como os parâmetros de SAO do bloco atual. Por conseguinte, o aparelho de codificação de SAO 10 não pode codificar os parâmetros de SAO do bloco atual e pode codificar somente as informações de fusão de SAO do bloco atual.
[000237] Antes dos parâmetros de SAO serem analisados a partir de um fluxo de bits recebido, o aparelho de decodificação de SAO 20 pode analisar incialmente as informações de fusão de SAO e pode determinar se deve analisar os parâmetros de SAO. O aparelho de decodificação de SAO 20 pode determinar se um bloco adjacente tendo os mesmos parâmetros de SAO que aqueles do bloco atual existe com base nas informações de fusão de SAO.
[000238] Por exemplo, se um bloco adjacente tendo os mesmos parâmetros de SAO que aqueles do bloco atual existe com base nas informações de fusão de SAO, o aparelho de decodificação de SAO 20 não pode analisar os parâmetros de SAO do bloco atual e pode adotar parâmetros de SAO reconstruídos do bloco adjacente como os parâmetros de deslocamento do bloco atual. Por conseguinte, o aparelho de decodificação de SAO 20 pode reconstruir os parâmetros de SAO do bloco atual para serem iguais aqueles do bloco adjacente. Também, com base nas informações de fusão de SAO, um bloco adjacente tendo parâmetros de SAO a serem referidos pode ser determinado.
[000239] Por exemplo, se os parâmetros de SAO dos blocos adjacentes forem diferentes dos parâmetros de SAO do bloco atual com base nas informações de fusão de SAO, o aparelho de decodificação de SAO 20 pode analisar e reconstruir os parâmetros de SAO do bloco atual a partir do fluxo de bits.
[000240] A figura 6A é um diagrama que mostra MCUs adjacentes referidas para fundir parâmetros de SAO, de acordo com modalidades da presente revelação.
[000241] O aparelho de codificação de SAO 10 pode determinar uma lista de candidatos de MCUs adjacentes a ser referida para prever parâmetros de SAO de uma MCU atual 651 entre MCUs adjacentes reconstruídas antes da MCU atual 651. O aparelho de codificação de SAO 10 pode comparar parâmetros de SAO da MCU atual 661 e as MCUs adjacentes na lista de candidatos.
[000242] Por exemplo, simplesmente, MCUs superiores e esquerda 653 e 652 do bloco atual 651 em uma imagem atual 65 podem ser incluídas na lista de candidatos.
[000243] Por conseguinte, o aparelho de codificação de SAO 10 pode comparar parâmetros de SAO das MCUs adjacentes incluídas na lista de candidatos com aqueles da MCU atual 651 de acordo com uma ordem de referência. Por exemplo, os parâmetros de SAO podem ser comparados com aqueles da MCU atual 651 na ordem da MCU esquerda 653 e MCU superior 652. Entre as MCUs esquerda e superior comparadas, 653 e 652, uma MCU tendo os mesmos parâmetros de SAO que aqueles da MCU atual 651 pode ser determinada como uma MCU de referência.
[000244] Para prever os parâmetros de SAO da MCU atual 651 o aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem se referir as mesmas MCUs adjacentes. Também, informações de fusão de SAO indicando uma MCU tendo parâmetros de deslocamento a serem referidos, podem ser transceptados. O aparelho de decodificação de SAO 20 pode selecionar uma das MCUs adjacentes com base nas informações de fusão de SAO, e pode reconstruir os parâmetros de SAO da MCU atual 651 para serem iguais aqueles da MCU adjacente selecionada.
[000245] Por exemplo, é assumido que as MCUs esquerda e superior 653 e 652 são referidas. O codificador de entropia 14 pode codificar informações de fusão de SAO esquerdo indicando se os parâmetros de SAO da MCU esquerda 653 da MCU atual 651 são iguais àqueles da MCU atual 651, e informações de fusão de SAO superior indicando se os parâmetros de SAO da MCU superior 652 são iguais aqueles da MCU atual 651 como as informações de fusão de SAO. Nesse caso, os parâmetros de SAO da MCU atual 651 e MCU esquerda 653 podem ser inicialmente comparados para determinar se são iguais e então os parâmetros de SAO da MCU atual 651 e MCU superior 652 podem ser comparados para determinar se são iguais. De acordo com um resultado de comparação, as informações de fusão de SAO podem ser determinadas.
[000246] Se os parâmetros de SAO de pelo menos uma MCUs esquerda e superior 653 e 652 forem iguais àqueles da MCU atual 651, o codificador de entropia 14 pode codificar somente as informações de fusão de SAO esquerda e informações de fusão de SAO superior e podem não codificar os parâmetros de informações de fusão de SAO da MCU atual 651.
[000247] Se os parâmetros de SAO de ambas as MCUs esquerda e superior 653 e 652 forem diferentes daquelas da MCU atual 651, o codificador de entropia 14 pode codificar as informações de fusão de SAO esquerda, as informações de fusão de superior e os parâmetros de SAO da MCU atual 651.
[000248] Parâmetros de SAO de acordo com componentes de cor serão descritos agora em detalhe.
[000249] O aparelho de codificação de SAO 10 e o aparelho de decodificação de SAO 20 podem prever mutuamente parâmetros de SAO entre componentes de cor.
[000250] O aparelho de codificação de SAO e o aparelho de decodificação de SAO 20 podem executar operação de SAO nos blocos de luma e blocos de croma em um formato de cor YCrCb. Valores de deslocamento de um componente luma (componente Y) e primeiro e segundo componentes croma (componentes Cr e Cb) de uma MCU atual podem ser determinados.
[000251] De acordo com uma modalidade, informações de fusão de SAO comuns podem ser aplicadas a um componente Y, um componente Cr, e um componente Cb da MCU atual. Em outras palavras, com base em um trecho de informação de fusão de SAO, pode ser determinado se parâmetros de SAO do componente Y são iguais aqueles do componente Y de uma MCU adjacente, pode ser determinado se parâmetros de SAO do componente Cr são iguais aqueles do componente Cr da MCU adjacente, e pode ser determinado se parâmetros de SAO do componente Cb são iguais aqueles do componente Cb da MCU adjacente.
[000252] De acordo com outra modalidade, informações do tipo de SAO comuns podem ser aplicadas ao componente Cr e o componente Cb da MCU atual. Em outras palavras, com base em um trecho de informações do tipo de SAO, pode ser determinado se a operação de SAO é simultaneamente ou não simultaneamente realizada nos componentes Cr e Cb. Além disso, com base em um trecho de informação do tipo SAO, pode ser identificado se valores de deslocamento dos componentes Cr e Cb são determinados de acordo com um tipo de borda ou um tipo de banda. Se o tipo SAO for um tipo de borda baseado em um trecho de informação do tipo SAO, os componentes Cr e Cb podem compartilhar a mesma direção de borda.
[000253] Em outras palavras, com base em um trecho de informação do tipo SAO, pode ser identificado se valores de deslocamento dos componentes Cr e Cb são determinados de acordo com um tipo de borda ou um tipo de banda.
[000254] Também, com base em um trecho de informação do tipo SAO, os componentes CR e Cb pode compartilhar a mesma classe SAO. Se o tipo SAO for um tipo de borda com base em um trecho de informação do tipo SAO, os componentes Cr e Cb podem compartilhar a mesma direção de borda, se o tipo SAO for um tipo de banda com base em um trecho de informação do tipo SAO, os componentes Cr e Cb podem compartilhar a mesma posição de partida de banda esquerda.
[000255] Estruturas de sintaxe para definir parâmetros de SAO de uma MCU atual serão agora descritas em detalhe com referência às figuras 6B, 7A até 7C.
[000256] A figura 6B é um diagrama mostrando um processo de executar codificação por entropia em parâmetros de SAO 60, de acordo com outra modalidade da presente revelação.
[000257] Uma vez que operação de SAO é realizada em cada componente de cor de uma MCU, os parâmetros de SAO 60 da figura 6B podem ser individualmente obtidos com relação a cada componente de cor. Se um índice de cor ‘cldx’ indicando um componente de luma, ou um primeiro ou segundo componente de croma variar, parâmetros de SAO adicionais 60 podem ser obtidos.
[000258] Os parâmetros de SAO 60 podem incluir um parâmetro ‘sao_merge_left_flag’ indicando informação de fusão de SAO da esquerda, um parâmetro ‘sao_merge_up_flag’ indicando informação de fusão de SAO para cima, um parâmetro ‘sao_type_idx’ indicando informação do tipo de SAO, um parâmetro ‘sao_band_position’ indicando informação de posição de banda de um tipo de banda, um parâmetro ‘sao_offset_abs’ indicando informação de valor de deslocamento absoluto, e um parâmetro ‘sao_offset_sign’ indicando informação de sinal de deslocamento. Por conseguinte, sempre que o índice de cor ‘cldx’ for ajustado como 0, 1 ou 2, ‘sao_merge_left_flag’, ‘sao_merge_up_flag’, ‘sao_type_idx’, ‘sao_band_position’, ‘sao_offset_abs’, e ‘sao_offset_sign’ podem ser recentemente obtidos.
[000259] Em particular, o parâmetro ‘sao_offset_abs’ indicando a informação de valor de deslocamento absoluto, e um parâmetro ‘sao_offset_sign’ indicando a informação de sinal de deslocamento pode ser adicionalmente obtido com relação a quatro categorias de SAO. Por conseguinte, ‘sao_offset_abs’ e ‘sao_offset_sign’ podem ser obtidos com relação a cada de quatro categorias e cada componente de cor.
[000260] Também, os parâmetros de SAO 60 podem ter métodos de codificação por entropia diferentes. Decodificação por contexto ou decodificação por desvio podem ser executadas de acordo com um método de codificação por entropia de um parâmetro obtido.
[000261] Por exemplo, 1 depósito indicando o parâmetro ‘sao_merge_left_flag’ pode ser decodificado por contexto, e 1 depósito indicando o parâmetro ‘sao_merge_up_flag’ pode ser decodificado por contexto, 6 depósitos indicando o parâmetro ‘saO-type_idx’ pode ser decodificado por contexto.
[000262] Também, 5 depósitos indicando o parâmetro ‘sao_band_position’ podem ser decodificados por desvio, 31 depósitos indicando o parâmetro ‘sao_offset_abs’ podem ser decodificados por contexto, e 1 depósito indicando o parâmetro ‘sao_offset_sign’ pode ser decodificado por desvio.
[000263] Considerando que parâmetros são individualmente obtidos com relação a três componentes de cor e alguns parâmetros são individualmente obtidos com relação a quatro categorias de SAO, até 423 depósitos podem ser obtidos de acordo com a equação a. Equação a
Figure img0001
[000264] Em particular, entre 423 depósitos, 396 depósitos podem ser decodificados por contexto, e 27 depósitos podem ser decodificados por desvio. Para decodificação por contexto, uma vez que cada depósito requer modelagem de probabilidade baseada em contexto, a quantidade de cálculo é grande. Por conseguinte, se o número de depósitos decodificados por contexto for maior que o número de depósitos decodificados por desvio em um fluxo de bits inteiro dos parâmetros de SAO 60, as quantidades de cálculo e tempo para decodificar todos os parâmetros de SAO 60 são aumentadas.
[000265] Além disso, o parâmetro ‘sao_band_position’ indicando a informação de posição de banda deve ser decodificado por desvio, o parâmetro ‘sao_offset_abs’ indicando a informação de valor de deslocamento absoluto deve se decodificada por contexto, e o parâmetro ‘sao_offset_sign’ indicando a informação de sinal de deslocamento deve ser decodificada por desvio. Em particular, uma vez que um índice de categoria de SAO é aumentado como 0, 1, 2 e 3, operações de decodificação de contexto no parâmetro ‘sao_offset_abs’ e operações de decodificação de desvio no parâmetro ‘sao_offset_sign’ devem ser alternadamente realizadas.
[000266] A execução alternada de diferentes operações de decodificação por entropia não é eficiente em comparação com a execução contínua da mesma operação de decodificação de entropia. Por conseguinte, se as operações de decodificação por contexto e decodificação por desvio forem alternadamente realizadas uma pluralidade de vezes nos parâmetros ‘sao_band_position’, ‘sao_offset_abs’, e ‘sao_offset_sign’ entre os parâmetros de SAO 60, a eficiência de uma operação de decodificação por entropia geral pode ser reduzida.
[000267] A figura 7A mostra sintaxe de SAO 70 de uma unidade de codificação, de acordo com modalidades da presente revelação.
[000268] A sintaxe de SAO 70 da figura 7A é uma parte de sintaxe de uma MCU, que é relacionada a parâmetros de SAO. O aparelho de codificação de SAO 10 pode determinar os parâmetros de SAO por executar operação de SAO em amostras da MCU, e pode executar codificação por entropia nos parâmetros de SAO. Também, o aparelho de codificação de SAO 10 pode transmitir um fluxo de bits incluindo fluxos de bits dos parâmetros de SAO de acordo com uma ordem indicada pelo sintaxe de SAO 70.
[000269] O aparelho de decodificação de SAO 20 pode obter os fluxos de bits dos parâmetros de SAO por analisar a sintaxe de SAO 70 e pode reconstruir os parâmetros de SAO por executar decodificação por entropia nos parâmetros de SAO. O aparelho de decodificação de SAO 20 pode executar operação de SAO em amostras reconstruídas da MCU utilizando os parâmetros de SAO reconstruídos.
[000270] Se uma MCU esquerda adjacente a uma MCU atual existir em uma fatia atual, informação de fusão de SAO da esquerda ‘sao_merge_left_flag’ 71 pode ser obtida. De outro modo, se uma MCU superior adjacente à MCU atual existir na fatia atual e os parâmetros de SAO da MCU esquerda não forem fundidos, a informação de fusão de SAO para cima ‘sao_merge_up_flag’ 71 pode ser obtida.
[000271] O ‘sao_merge_left_flag’ 71 e o ‘sao_merge_up_flag’ 72 podem ser obtidos independente de componentes de cor, e desse modo podem ser comumente aplicados a um componente de luma e primeiro e segundo componentes de croma. O mesmo vetor de movimento pode ser usado para executar compensação de movimento nos três componentes de cor. Por conseguinte, uma vez que informação de fusão de SAO é obtida independente dos componentes de cor, a operação de SAO utilizando a informação de fusão de SAO da esquerda e para cima 71 e 72 pode ser eficientemente unificada com um codec para executar compensação de movimento.
[000272] Parâmetros de SAO diferentes de ‘sao_merge_left_flag’ 71 e ‘sao_merge_up_flag’ 72 (741, 743, 751, 75, 77, 781, 782, 791, e 793) podem ser separados de acordo com os componentes de cor, e desse modo podem ser obtidos por designar o índice de cor ‘cldx’ como 0, 1 e 2 (73).
[000273] Se um índice de cor atual indicar um componente de luma (74), a informação de ligar/desligar de SAO de luma ‘sao_on_off_flag_luma’ 741 pode ser obtida. Se a operação de SAO for realizada no componente de luma, informação de identificação de banda de borda de luma ‘sao_eo_bo_flag_luma’ 743 pode ser adicionalmente obtida.
[000274] De outro modo, se o índice de cor atual for um primeiro componente de croma (75), informação de ligar/desligar de SAO de croma ‘sao_on_off_flag_chroma’ 751 para os primeiro e segundo componentes de croma pode ser obtida. Se operação de SAO for realizada nos primeiro e segundo componentes de croma, informação de identificação de banda de borda de croma ‘sao_eo_bo_flag_chroma’ 753 pode ser adicionalmente obtida. O ‘sao_on_off_flag_chroma’ 751 e o ‘sao_eo_bo_flag_chroma’ 753 podem ser obtidos somente quando o índice de cor indicar o primeiro componente de croma, e não podem ser obtidos quando o índice de cor indicar o segundo componente de croma.
[000275] Informações de ligar/desligar de SAO da informação do tipo de SAO não indicam ‘off’ (76), informação de classe de SAO e informação de valor de deslocamento para cada categoria de SAO podem ser obtidas. Devido a uma declaração de loop de acordo com um aumento em ‘i’, informação de valor de deslocamento absoluto ‘sao_offset_abs’ 77, informação de sinal de offset ‘sao_offset_sign’ 781, e informação de posição de banda ‘sao_band_position’ 783 podem ser individualmente obtidas com relação a cada categoria de SAO.
[000276] Incialmente, a informação de valor de deslocamento absoluto ‘sao_offset_abs’ 77 é obtida e a informação do tipo SAO indica um tipo de banda (78), a informação de posição de banda ‘sao_band_position’ 783 pode ser obtida. Em particular, se a informação de valor de offset absoluto ‘sao_offset_abs’ 77 não for 0, a informação de sinal de deslocamento ‘sao_offset_sign’ 781 pode ser inicialmente obtida e então a ‘sao_band_position’ 783 pode ser obtida.
[000277] Quando a informação do tipo de SAO indicar um tipo de borda (79), se o índice de cor indicar o componente de luma, informação de classe de borda de luma ‘sao_eo_class_luma’ 791 pode ser obtida. Se o índice de cor indicar o primeiro componente de croma, informação de classe de borda de croma ‘sao_eo_class_chroma’ 793 para os primeiro e segundo componentes pode ser obtida. Se o índice de cor indicar o segundo componente de croma, o ‘sao_eo_class_chroma’ 793 não pode ser obtido.
[000278] Se a informação do tipo SAO indicar um tipo de borda, somente a informação de classe de borda de luma ou croma 791 ou 793 pode ser obtida e informação de sinal de deslocamento não pode ser obtida porque um sinal de um valor de deslocamento de borda pode ser determinado de acordo com uma classe de borda.
[000279] Como descrito acima, a informação de ligar/desligar de SAO de croma ‘sao_on_off_flag_chroma’ 751, a informação de identificação de banda de borda de croma ‘sao_eo_bo_flag_chroma’ 753, e a informação de classe de borda de croma ‘sao_eo_class_chroma’ 793 são parâmetros comumente aplicados aos primeiro e segundo componentes de croma.
[000280] Por conseguinte, uma vez que a informação de ligar/desligar de SAO ‘sao_on_off_flag_chroma’ 751, a informação de identificação de banda de borda de croma ‘sao_eo_bo_flag_chroma’ 753, e a informação de classe de borda de croma ‘sao_eo_class_chroma’ 793 são comumente obtidas com relação aos primeiro e segundo componentes de croma, acesso a memória para executar operação de SAO em componentes de croma pode ser simplificado. Também, uma vez que os mesmos parâmetros são aplicados aos primeiro e segundo componentes de croma em cada de intra predição, compensação de movimento, e filtração de loop adaptável (ALF) executados nos primeiro e segundo componentes de croma, parâmetros ou amostras para cada operação podem ser obtidos por acessar a mesma memória. Por conseguinte, operação de SAO pode ser eficientemente unificada com um codec para executar intra predição, compensação de movimento e ALF.
[000281] Acima, operações do aparelho de decodificação de SAO 20 para obter parâmetros de SAO por analisar a sintaxe de SAO 70 são sequencialmente descritas em detalhe. Um processo de executar decodificação por entropia nos parâmetros de SAO obtidos será descrito agora em detalhe.
[000282] O aparelho de decodificação de SAO 20 pode executar decodificação por contexto na informação de fusão de SAO da esquerda ‘sao_merge_left_flag’ 71 e a informação de fusão de SAO para cima ‘sao_merge_up_flag’ 72. Por conseguinte, um modelo de probabilidade com base em contexto de um depósito da informação de fusão de SAO da esquerda 71 pode ser determinado e 1 valor de depósito utilizado para gerar probabilisticamente a informação de fusão de SAO da esquerda 71 pode ser reconstruído. A decodificação por contexto acima descrita pode ser similarmente realizada na informação de fusão de SAO para cima 72.
[000283] Ao contrário dos parâmetros de SAO 60 da figura 6B, o aparelho de decodificação de SAO 20 pode separadamente decodificar a informação do tipo SAO como a informação de ligar/desligar de SAO 741 e 743, a informação de identificação de banda de borda 751 e 753, a informação de sinal de deslocamento 781, a informação de posição de banda 783 e a informação de classe de borda 791 e 793. A informação de classe de borda 791 e 793 pode ser obtida com relação a um tipo de borda, e a informação de sinal de deslocamento 781 e a informação de posição de banda 783 podem ser obtidas com relação a um tipo de banda.
[000284] A decodificação por contexto é realizada para 6 depósitos de informação do tipo SAO ‘sao_type_idx’ dos parâmetros de SAO 60 da figura 6B. por outro lado, o aparelho de decodificação de SAO 20 pode executar decodificação por contexto para 1 depósito da informação de ligar/desligar de SAO 741 e 743, e pode executar decodificação por desvio para parâmetros restantes.
[000285] Por exemplo, com relação a um tipo de borda, o aparelho de decodificação de SAO 20 pode executar decodificação por contexto para 1 depósito da informação de ligar/desligar de SAO 741 e 743, e pode executar decodificação por desvio para 1 depósito da informação de identificação de banda de borda 751 ou 753 e 2 depósitos da informação de classe de borda 791 ou 793.
[000286] Por conseguinte, considerando que somente alguns parâmetros são individualmente obtidos com relação a três componentes de cor e quatro categorias de SAO, com relação a um tipo de banda, o aparelho de decodificação de SAO 20 pode obter até 405 depósitos de acordo com a equação b. Equação b
Figure img0002
[000287] Em particular, entre 405 depósitos, 4 depósitos podem ser decodificados por contexto, e 401 depósitos podem ser decodificados por desvio. Em outras palavras, o número de operações de decodificação por contexto que exigem uma quantidade relativamente grande de cálculo é muito menor do que o número de operações de decodificação por desvio. Também, uma vez que alguns parâmetros de SAO são obtidos como o mesmo parâmetro com relação a componentes de cor, o comprimento de um fluxo de bits inteiro dos parâmetros de SAO pode ser reduzido.
[000288] Por conseguinte, uma vez que o aparelho de decodificação de SAO 20 executa decodificação de desvio na informação de identificação de banda de borda 751 ou 753, a informação de valor de deslocamento absoluto 77 e a informação de posição de banda 783 ou a informação de classe de borda 791 ou 793, obtém a informação de fusão de SAO comum 71 e 72 com relação a componentes de cor, e obtém a informação de ligar/desligar de SAO comum 741 ou 743, a informação de identificação de banda de borda 751 ou 753, e a informação de classe de borda 791 ou 793 com relação a componentes de croma, a eficiência de uma operação de decodificação por entropia geral nos parâmetros de SAO pode ser aperfeiçoada.
[000289] Também, ao contrário dos parâmetros de SAO 60 da figura 6B, o aparelho de decodificação de SAO 20 pode obter a informação de posição de banda 783 mais tarde do que a informação de valor de deslocamento absoluto 77. Como tal, o aparelho de decodificação de SAO 20 pode executar decodificação por contexto na informação de fusão de SAO 71 e 72, e a informação de ligar/desligar de SAO 741 ou 743, e pode executar decodificação de desvio na informação de identificação de banda de borda 751 ou 753, a informação de valor de deslocamento absoluto 77 e a informação de posição de banda 783 ou informação de classe de borda 791 ou 793.
[000290] Por conseguinte, em comparação com os parâmetros de SAO 60 da figura 6B, uma vez que o número de vezes que o aparelho de decodificação de SAO 20 alternadamente executa decodificação por contexto e decodificação por desvio utilizando a sintaxe de SAO 70 é reduzido, a eficiência de uma operação de decodificação por entropia nos parâmetros de SAO pode ser aperfeiçoada.
[000291] As figuras 7B e 7C mostram sintaxe de SAO de uma unidade de codificação, de acordo com outras modalidades da presente revelação.
[000292] A sintaxe de SAO da figura 7B é projetada para reduzir o número de declarações se para verificar um índice de cor na sintaxe de SAO 70 da figura 7A, porque a quantidade de cálculo é aumentada se o número de declarações separa verificar uma condição for aumentado.
[000293] Na sintaxe de SAO da figura 7B, declarações se para verificar se um índice de cor atual indica um componente de luma ou um primeiro componente de croma para obter informações de ligar/desligar de SAO 83 e 84 não são exigidos. De acordo com a sintaxe de SAO da figura 7B, informação de ligar/desligar de SAO de luma 83, informação de identificação de banda de borda de luma 831, e informação de classe de borda de luma 832 para o componente de luma podem ser sequencialmente obtidas, e então informação de ligar/desligar de SAO de croma 84, informação de identificação de banda de borda de croma 841, e informação de classe de borda de croma 842 para primeiro e segundo componentes de croma podem se sequencialmente obtidas.
[000294] Desse modo, de acordo com a sintaxe de SAO da figura 7B, em comparação com a sintaxe de SAO 70 da figura 7A, uma vez que quatro declarações se para verificar se um índice de cor atual indica um componente de luma ou um primeiro componente de croma são deletados, o número de declarações se pode ser reduzido em 4.
[000295] Na sintaxe de SAO da figura 7B, após a informação de ligar/desligar de SAO de luma 83, a informação de identificação de banda de borda de luma 831, a informação de classe de borda de luma 832, a informação de ligar/desligar de SAO de croma 84, a informação de identificação de banda de borda de croma 841, e a informação de classe de borda de croma 842 são obtidas, informação de valor de deslocamento absoluto 87 e informação de sinal de deslocamento 881 podem ser obtidas com relação a cada componente de cor e cada categoria, e informação de posição de banda 883 pode ser obtida com relação a cada componente de cor.
[000296] Nesse caso, uma operação de decodificação de contexto é realizada na informação de ligar/desligar de SAO de luma 83, uma operação de decodificação por desvio é realizada na informação de identificação de banda de borda de luma 831 e informação de classe de borda de luma 832, uma operação de decodificação de contexto é realizada na informação de ligar/desligar de SAO de croma 84, e uma operação de decodificação de desvio é realizada na informação de identificação de banda de borda de croma 841 e informação de classe de borda de croma 842. Uma operação de decodificação de desvio pode ser realizada na informação de valor de deslocamento absoluto 87, a informação de sinal de deslocamento 881, e a informação de posição de banda 883.
[000297] Por conseguinte, na sintaxe de SAO da figura 7B, operações de decodificação por contexto e decodificação por desvio são comutadas três vezes.
[000298] A sintaxe de SAO da figura 7C é projetada para reduzir o número de vezes que operações de decodificação por contexto e decodificação por desvio são comutadas na sintaxe de SAO 70 da figura 7B, em que o número de declarações se para verificar um índice de cor na sintaxe de SAO 70 da figura 7A é reduzido.
[000299] Na sintaxe de SAO da figura 7C, a informação de ligar/desligar de SAO de luma 83 é obtida e então a informação de ligar/desligar de SAO de croma 84 é obtida. Após isso, a informação de identificação de banda de borda de luma 831 e a informação de classe de borda de luma 832 podem ser obtidas com base na informação de ligar/desligar de SAO de luma 83, e a informação de identificação de banda de borda de croma 841 e a informação de classe de borda de croma 842 podem ser obtidas com base na informação de ligar/desligar de SAO de croma 84.
[000300] Por conseguinte, uma operação de decodificação de contexto é realizada na informação de ligar/desligar de SAO de luma 83 e informação de ligar/desligar de SAO de croma 84, e uma operação de decodificação de desvio é realizada na informação de identificação de banda de borda de luma 831, informação de classe de borda de luma 832, informação de identificação de banda de borda de croma 841, e informação de classe de borda de croma 842. Então, uma operação de decodificação de desvio pode ser também realizada na informação de valor de deslocamento absoluto 87, informação de sinal de deslocamento 881, e informação de posição de banda 883. Por conseguinte, na sintaxe de SAO da figura 7C, uma vez que métodos de decodificação por entropia são comutados somente uma vez a partir de uma operação de decodificação por contexto para uma operação de decodificação por desvio e não são repetidamente realizados, a eficiência de uma operação de decodificação por entropia geral pode ser aperfeiçoada.
[000301] De acordo com as modalidades descritas acima, o aparelho de codificação de SAO 10 pode executar codificação por desvio em informações de valor de deslocamento absoluto para operação de SAO. Também, informações do tipo de SAO podem ser separadas em informações de ligar/desligar de SAO, informação de identificação de banda de borda, e informação de posição de banda (ou informação de classe de borda) e codificação por contexto pode ser realizada somente nas informações de ligar/desligar de SAO. Por conseguinte, entre parâmetros de SAO, por reduzir o número de parâmetros a serem decodificados por contexto e aumentar o número de parâmetros a serem decodificados por desvio, a eficiência de uma operação de codificação por entropia geral nos parâmetros de SAO pode ser aperfeiçoada.
[000302] Também, entre os parâmetros de SAO, utilizando os mesmos parâmetros que a informação de ligar/desligar de SAO, informação de identificação de banda de borda, e informação de classe de borda para primeiro e segundo componentes de croma, e utilizando o mesmo parâmetro que a informação de fusão de SAO para luma, e primeiro e segundo componentes de croma, uma quantidade de transmissão total dos parâmetros de SAO pode ser reduzida.
[000303] Além disso, por reduzir o número de vezes que operações de codificação por contexto e codificação por desvio são comutadas, a eficiência de uma operação de codificação por entropia pode ser também aperfeiçoada.
[000304] Além disso, entre parâmetros de SAO, uma vez que o aparelho de decodificação de SAO 20 pode executar decodificação por contexto somente em informação de fusão de SAO e informação de ligar/desligar de SAO e pode executar decodificação por desvio em um fluxo de bits restante, uma quantidade total de cálculo para decodificar os parâmetros de SAO pode ser muito reduzida.
[000305] Além disso, uma vez que informação de ligar/desligar de SAO, informação de identificação de banda de borda, e informação de classe de borda para primeiro e segundo componentes de croma são obtidas como os mesmos parâmetros, e informação de fusão de SAO para luma, e primeiro e segundo componentes de croma é obtida como o mesmo parâmetro, um comprimento total de bits de parâmetros de SAO pode ser reduzido e a quantidade de dados a serem analisados pode ser também reduzida.
[000306] Também, uma vez que o número de vezes que as operações de decodificação por contexto e decodificação por desvio são comutadas é reduzido, a eficiência de uma operação de decodificação por entropia geral nos parâmetros de SAO pode ser aperfeiçoada.
[000307] Por conseguinte, o aparelho de codificação de vídeo e o aparelho de decodificação de vídeo utilizando uma Operação SAO, de acordo com modalidades da presente revelação, pode classificar valores de pixel de cada MCU de acordo com características de imagem como um tipo de borda ou um tipo de banda, pode sinalizar um valor de deslocamento que é um valor de erro médio de valores de pixel tendo as mesmas características, e pode ajustar valores de pixel imprevisíveis de pixels reconstruídos pelo valor de deslocamento, desse modo minimizando um erro entre uma imagem original e uma imagem reconstruída.
[000308] No aparelho de codificação de SAO 10 e aparelho de decodificação de SAO 20, como descrito acima, dados de vídeo podem ser divididos em MCUs, cada MCU pode ser codificado e decodificado com base em unidades de codificação tendo uma estrutura de árvore, e cada MCU pode determinar valores de deslocamento de acordo com classificação de pixel. A seguir, um método de codificação de vídeo, um aparelho de codificação de vídeo, um método de decodificação de vídeo, e um aparelho de decodificação de vídeo com base em unidades de codificação tendo uma estrutura de árvore e unidades de transformação serão descritos com referência às figuras 8 até 27.
[000309] A figura 8 é um diagrama de blocos de um aparelho de codificação de vídeo 100 com base em unidades de codificação tendo uma estrutura de árvore, de acordo com modalidades da presente revelação.
[000310] O aparelho de codificação de vídeo 100 envolvendo predição de vídeo com base em unidades de codificação tendo uma estrutura de árvore inclui um divisor de MCU 110, um determinador de unidade de codificação 120 e um meio de transmissão 130.
[000311] O divisor de MCU 110 pode dividir uma imagem atual com base em uma MCU que é uma unidade de codificação tendo um tamanho máximo para um quadro atual de uma imagem. Se o quadro atual for maior do que a MCU, dados de imagem do quadro atual podem ser divididos pelo menos em uma MCU. A MCU de acordo com modalidades da presente revelaçã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 tendo uma largura e comprimento em quadrados de 2. Os dados de imagem podem ser transmitidos para o determinador de unidade de codificação 120 de acordo com pelo menos uma MCU.
[000312] Uma unidade de codificação de acordo com modalidades da presente revelação pode ser caracterizada por um tamanho máximo e uma profundidade. A profundidade indica o número de vezes que a unidade de codificação é espacialmente dividida a partir da MCU, e à medida que a profundidade aumenta, unidades de codificação mais profundas de acordo com profundidades podem ser divididas da MCU para uma unidade de codificação menor (SCU). Uma profundidade da MCU é uma profundidade mais superior e uma profundidade da SCU é uma profundidade mais inferior. Uma vez que um tamanho de uma unidade de codificação correspondendo a cada profundidade diminui à medida que a profundidade da MCU aprofunda, uma unidade de codificação correspondendo a uma profundidade superior pode incluir uma pluralidade de unidades de codificação correspondendo a profundidades inferiores.
[000313] Como descrito acima, os dados de imagem do quadro atual são divididos nas MCUs de acordo com um tamanho máximo da unidade de codificação e cada das MCUs pode incluir unidades de codificação mais profundas que são divididas de acordo com profundidades. Uma vez que a MCU de acordo com modalidades da presente revelação é dividida de acordo com profundidade, os dados de imagem do domínio de espaço incluídos na MCU podem ser hierarquicamente classificados de acordo com profundidades.
[000314] Uma profundidade máxima e um tamanho máximo de uma unidade de codificação, que limitam o número total de vezes de uma altura e uma largura da MCU são hierarquicamente divididos, podem ser predeterminados.
[000315] O determinador de unidade de codificação 120 codifica pelo menos uma região dividida obtida por dividir uma região da MCU de acordo com profundidades, e determina uma profundidade para transmitir um dado de imagem finalmente codificada para pelo menos uma região dividida. Em outras palavras, o determinador de unidade de codificação 120 determina uma profundidade codificada por codificar os dados de imagem nas unidades de codificação mais profundas de acordo com profundidades, de acordo com a MCU da imagem atual, e selecionar uma profundidade tendo o erro de codificação mínimo. A profundidade codificada determinada e os dados de imagem codificados de acordo com a profundidade codificada determinada são transmitidos para o meio de transmissão 130.
[000316] Os dados de imagem na MCU são codificados com base nas unidades de codificação mais profundas correspondendo a pelo menos uma profundidade igual a ou abaixo da profundidade máxima, e resultados de codificação dos dados de imagem são comparados com base em cada das unidades de codificação mais profunda. Uma profundidade tendo o erro de codificação mínimo pode ser selecionada após comparar erros de codificação das unidades de codificação mais profunda. Pelo menos uma profundidade codificada pode ser selecionada para cada MCU.
[000317] O tamanho da MCU é dividido à medida que uma unidade de codificação é hierarquicamente dividida de acordo com profundidades, e à medida que o número de unidades de codificação aumenta. Além disso, mesmo se unidades de codificação corresponderem à mesma profundidade em uma MCU, é determinado se deve dividir cada das unidades de codificação correspondendo à mesma profundidade a uma profundidade mais baixa por medir um erro de codificação dos dados de imagem de cada unidade de codificação, separadamente. Por conseguinte, mesmo quando dados de imagem são incluídos em uma MCU, os erros de codificação podem diferir de acordo com regiões em uma MCU, e desse modo as profundidades codificadas podem diferir de acordo com regiões nos dados de imagem. Desse modo, uma ou mais profundidades codificadas podem ser determinadas em uma MCU, e os dados de imagem da MCU podem ser divididos de acordo com unidades de codificação de pelo menos uma profundidade codificada.
[000318] Por conseguinte, o determinador de unidade de codificação 120 pode determinar unidades de codificação tendo uma estrutura de árvore incluída na MCU. As ‘unidades de codificação tendo uma estrutura de árvore’ de acordo com modalidades da presente revelação incluem unidades de codificação correspondendo a uma profundidade determinada como sendo a profundidade codificada, entre todas as unidades de codificação mais profundas incluídas na MCU. Uma unidade de codificação de uma profundidade codificada pode ser hierarquicamente determinada de acordo com profundidades na mesma região da MCU, e pode ser independentemente determinada em regiões diferentes. Similarmente, uma profundidade codificada em uma região atual pode ser independentemente determinada a partir de uma profundidade codificada em outra região.
[000319] Uma profundidade máxima de acordo com uma modalidade da presente invenção é um índice relacionado ao número de vezes de divisão de uma MCU para uma SCU. Uma primeira profundidade máxima de acordo com modalidades da presente revelação pode indicar o número total de vezes de divisão da MCU para a SCU. Uma segunda profundidade máxima de acordo com modalidades da presente revelação pode indicar o número total de níveis de profundidade a partir da MCU para a SCU. Por exemplo, quando uma profundidade da MCU é 0, uma profundidade de uma unidade de codificação, na qual a MCU é dividida uma vez, pode ser definida em 1, e uma profundidade de uma unidade de codificação na qual a MCU é dividida duas vezes, pode ser definida em 2. Aqui, se a SCU for uma unidade de codificação na qual a MCU é dividida quatro vezes, 5 níveis de profundidade de profundidades 0, 1, 2, 3 e 4 existem, e desse modo a primeira profundidade máxima pode ser definida em 4, e a segunda profundidade máxima pode ser definida em 5.
[000320] A codificação de predição e a transformação podem ser realizadas de acordo com a MCU. A codificação de predição e a transformação são também realizadas com base nas unidades de codificação mais profundas de acordo com uma profundidade igual a ou profundidades menores do que a profundidade máxima, de acordo com a MCU.
[000321] Uma vez que o número de unidades de codificação mais profundas aumenta sempre que a MCU é dividida de acordo com profundidades, codificação, incluindo a codificação de predição e a transformação, é realizada em todas as unidades de codificação mais profundas geradas à medida que a profundidade aumenta. Para conveniência de descrição, a codificação de predição e a transformação serão agora descritas com base em uma unidade de codificação de uma profundidade atual, em uma MCU.
[000322] O aparelho de codificação de vídeo 100 pode selecionar de forma variada um tamanho ou formato de uma unidade de dados para codificar os dados de imagem. Para codificar os dados de imagem, operações, como codificação de predição, transformação e codificação de entropia são realizadas, e nesse momento, a mesma unidade de dados pode ser utilizada para todas as operações ou unidades de dados diferentes podem ser utilizadas para cada operação.
[000323] Por exemplo, o aparelho de codificação de vídeo 100 pode selecionar não somente uma unidade de codificação para codificar os dados de imagem, como também uma unidade de dados diferente da unidade de codificação de modo a executar a codificação de predição nos dados de imagem na unidade de codificação.
[000324] Para executar codificação de predição na MCU, a codificação de predição pode ser realizada com base em uma unidade de codificação correspondendo a uma profundidade codificada, por exemplo, baseada em uma unidade de codificação que não mais é dividida em unidades de codificação correspondendo a uma profundidade inferior. A seguir, a unidade de codificação que não mais é dividida e se torna uma unidade base para codificação de predição será agora mencionada como uma ‘unidade de predição’. Uma partição obtida por dividir a unidade de predição pode incluir uma unidade de predição ou uma unidade de dados obtida por dividir pelo menos uma de uma altura e uma largura da unidade de predição. Uma partição é uma unidade de dados onde uma unidade de predição de uma unidade de codificação é dividida, e uma unidade de predição pode ser uma partição tendo o mesmo tamanho que uma unidade de codificação.
[000325] 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 predição de 2Nx2N, e um tamanho de uma partição pode ser 2Nx2N, 2NxN, Nx2N ou NxN. Os exemplos de um tipo de partição incluem partições simétricas que são obtidas por dividir simetricamente uma altura ou largura da unidade de predição, partições obtidas por dividir simetricamente a altura ou largura da unidade de predição, como 1:n ou n:1, partições que são obtidas por dividir geometricamente a unidade de predição e partições tendo formatos arbitrários.
[000326] Um modo de predição da unidade de predição pode ser pelo menos um de um modo intra, um modo inter e um modo de pular. 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 de pular pode ser realizado somente na partição de 2Nx2N. a codificação é independentemente realizada em uma unidade de predição em uma unidade de codificação, desse modo selecionando um modo de predição tendo um erro de codificação mínimo.
[000327] O aparelho de codificação de vídeo 100 também pode executar a transformação nos dados de imagem em uma unidade de codificação baseada não somente na unidade de codificação para codificar os dados de imagem, como também baseado em uma unidade de dados que é diferente da unidade de codificação. Para executar a transformação na unidade de codificação, a transformação pode ser realizada baseada em uma unidade de dados tendo um tamanho menor ou igual à unidade de codificação. Por exemplo, a unidade de dados para a transformação pode incluir uma unidade de dados para um modo intra e uma unidade de dados para um modo inter.
[000328] A unidade de transformação na unidade de codificação pode ser recursivamente dividida em regiões de tamanho menor no modo similar à unidade de codificação de acordo com a estrutura de árvore. Desse modo, resíduos na unidade de codificação podem ser divididos de acordo com a unidade de transformação tendo a estrutura de árvore de acordo com profundidades de transformação.
[000329] Uma profundidade de transformação indicando o número de vezes de divisão para atingir a unidade de transformação por dividir a altura e largura da unidade de codificação também pode ser 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 é 2Nx2N, pode ser 1 quando o tamanho da unidade de transformação é NxN, e pode ser 2 quando o tamanho da unidade de transformação é N/2xN/2. Em outras palavras, a unidade de transformação tendo a estrutura de árvore pode ser definida de acordo com as profundidades de transformação.
[000330] Informações de codificação de acordo com unidades de codificação correspondendo a uma profundidade codificada exigem não somente informações sobre a profundidade codificada, como também sobre informações relacionadas à codificação de predição e transformação. Por conseguinte, o determinador de unidade de codificação 120 não somente determina uma profundidade codificada tendo um erro de codificação mínimo, como também determina um tipo de partição em uma unidade de predição, um modo de predição de acordo com unidades de predição, e um tamanho de uma unidade de transformação para transformação.
[000331] Unidades de codificação de acordo com uma estrutura de árvore em uma MCU e métodos de determinar uma partição/unidade de predição, e uma unidade de transformação, de acordo com modalidades da presente invenção, serão descritas em detalhe abaixo com referência às figuras 7 até 19.
[000332] O determinador de unidade de codificação 120 pode medir um erro de codificação de unidades de codificação mais profunda de acordo com profundidades utilizando Otimização de distorção de taxa baseada em multiplicadores Lagrangian.
[000333] O meio de transmissão 130 transmite os dados de imagem da MCU, que são codificados com base pelo menos em uma profundidade codificada determinada pelo determinador de unidade de codificação 120, e informações sobre o modo de codificação de acordo com a profundidade codificada, em fluxos de bits.
[000334] Os dados de imagem codificada podem ser obtidos por codificar resíduos de uma imagem.
[000335] As informações sobre o modo de codificação de acordo com profundidade codificada podem incluir informações sobre a profundidade codificada, sobre o tipo de partição na unidade de predição, o modo de predição e o tamanho da unidade de transformação.
[000336] As informações sobre a profundidade codificada podem ser definidas utilizando informações divididas de acordo com profundardes, que indica se a codificação é executada em unidades de codificação de uma profundidade inferior ao invés 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 transmitidos, e desse modo as informações divididas podem ser definidas não para dividir a unidade de codificação atual para uma profundidade inferior. Alternativamente, se a profundidade atual da unidade de codificação atual não for a profundidade codificada, a codificação é executada na unidade de codificação da profundidade inferior, e desse modo as informações divididas podem ser definidas para dividir a unidade de codificação atual para obter as unidades de codificação da profundidade inferior.
[000337] Se a profundidade atual não for a profundidade codificada, a codificação é realizada na unidade de codificação que é dividida na unidade de codificação da profundidade inferior. Uma vez que pelo menos uma unidade de codificação da profundidade inferior existe em uma unidade de codificação da profundidade atual, a codificação é repetidamente executada em cada unidade de codificação da profundidade mais baixa, e desse modo a codificação pode ser recursivamente realizada para as unidades de codificação tendo a mesma profundidade.
[000338] Uma vez que as unidades de codificação tendo uma estrutura de árvore são determinadas para uma MCU, 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 MCU. Também, uma profundidade codificada dos dados de imagem da MCU pode ser diferente de acordo com locais uma vez que os dados de imagem são hierarquicamente divididos de acordo com profundidades, e desse modo informações sobre a profundidade codificada e o modo de codificação podem ser definidas para os dados de imagem.
[000339] Por conseguinte, o meio de transmissão 130 pode atribuir informações de codificação sobre uma profundidade codificada correspondente e um modo de codificação para pelo menos uma da unidade de codificação, unidade de predição e uma unidade mínima incluída na MCU.
[000340] A unidade mínima de acordo com uma modalidade da presente invenção é uma unidade de dados quadrados obtidos por dividir a SCU constituindo a profundidade mais inferior por 4. Alternativamente, a unidade mínima de acordo com uma modalidade pode ser uma unidade de dados quadrados máximos que pode ser incluída em todas as unidades de codificação, unidades de predição, unidades de partição, e unidades de transformação incluídas na MCU.
[000341] Por exemplo, as informações de codificação transmitidas pelo meio de transmissão 130 podem ser classificadas em informações de codificação de acordo com unidades de codificação mais profundas, e informações de codificação de acordo com unidades de predição. As informações de codificação de acordo com as unidades de codificação mais profundas podem incluir as informações sobre o modo de predição e sobre o tamanho das partições. As informações de codificação de acordo com as unidades de predição podem incluir informações sobre uma direção estimada de um modo inter, sobre um índice de imagem de referência do motor inter, sobre um vetor de movimento, sobre um componente croma de um modo intra, e sobre um método de interpolação do modo intra.
[000342] Informações sobre um tamanho máximo da unidade de codificação definida de acordo com quadros, fatias ou GOPs, e informações sobre uma profundidade máxima podem ser inseridas em um cabeçalho de um fluxo de bits, um conjunto de parâmetros de sequencia ou um conjunto de parâmetros de quadro.
[000343] Informações sobre um tamanho máximo da unidade de transformação permitida com relação a um vídeo atual, e informações sobre um tamanho mínimo da unidade de transformação também podem ser transmitidas através de um cabeçalho de um fluxo de bits, um conjunto de parâmetros de sequencia ou um conjunto de parâmetros de quadro. O meio de transmissão 130 pode codificar e transmitir parâmetros de SAO relacionados à técnica de ajuste de deslocamento descrita acima com referência às figuras 1A até 7C.
[000344] No aparelho de codificação de vídeo 100, a unidade de codificação mais profunda pode ser uma unidade de codificação obtida por dividir uma altura ou largura de uma unidade de codificação de uma profundidade superior, que é uma camada acima, por dois. Em outras palavras, quando o tamanho da unidade de codificação da profundidade atual é 2Nx2N, o tamanho da unidade de codificação da profundidade inferior é NxN. Além disso, a unidade de codificação com a profundidade atual tendo um tamanho de 2Nx2N pode incluir um máximo de 4 das unidades de codificação com a profundidade inferior.
[000345] Por conseguinte, o aparelho de codificação de vídeo 100 pode formar as unidades de codificação tendo a estrutura de árvore por determinar unidades de codificação tendo um formato ótimo e um tamanho ótimo para cada MCU, com base no tamanho da MCU e a profundidade máxima determinada considerando características do quadro atual. Além disso, uma vez que a codificação pode ser executada em cada MCU utilizando qualquer um dos vários modos de predição e transformações, um modo de codificação ótimo pode ser determinado considerando características da unidade de codificação de vários tamanhos de imagem.
[000346] Desse modo, se uma imagem tendo uma resolução elevada ou uma grande quantidade de dados for codificada em um macrobloco convencional, o número de macroblocos por quadro aumenta excessivamente. Por conseguinte, o número de trechos de informações comprimidas geradas para cada macrobloco aumenta, e desse modo é difícil transmitir as informações comprimidas e a eficiência de compressão de dados diminui. Entretanto, utilizando o aparelho de codificação de vídeo 100, eficiência de compressão de imagem pode ser aumentada uma vez que uma unidade de codificação é ajustada enquanto considera características de uma imagem enquanto aumenta um tamanho máximo de uma unidade de codificação enquanto considera um tamanho da imagem.
[000347] O aparelho de codificação de vídeo 100 da figura 8 pode executar a operação do aparelho de codificação de vídeo 10 descrito acima com referência à figura 1A.
[000348] O determinador de unidade de codificação 120 pode executar operação do operador de codificação de SAO 10. Um tipo de SAO, valores de deslocamento de acordo com categorias, e uma classe de SAO podem ser determinados com relação a cada MCU.
[000349] O meio de transmissão 130 pode executar operação do codificador de entropia 14. Parâmetros de SAO determinados com relação a cada MCU podem ser transmitidos. Informações de fusão de SAO para a esquerda e para cima indicando se deve adotar parâmetros de SAO de MCUs adjacentes esquerda e superior de uma MCU atual como os parâmetros de SAO da MCU atual podem ser inicialmente transmitidas. Como um tipo de SAO, um tipo desl, um tipo de borda, ou um tipo de banda pode ser transmitido. Informação de valor de deslocamento absoluto é transmitida. Com relação ao tipo de banda, informação de sinal e informação de posição de banda podem ser transmitidas. Com relação ao tipo de borda, a informação de classe de borda pode ser transmitida e a informação de sinal do valor de deslocamento pode não ser transmitida.
[000350] O meio de transmissão 130 pode executar codificação de contexto em cada da informação de fusão SAO esquerda e informação de fusão SAO para acima da MCU. O meio de transmissão 130 pode executar codificação de contexto em informações de ligar/desligar SAO com relação a cada dos componentes de luma e croma.
[000351] Se a informação de ligar/desligar SAO indicar para executar a operação SAO, o meio de transmissão 130 pode executar codificação de desvio na informação de identificação de banda de borda com relação a cada dos componentes de luma e croma.
[000352] Se a informação de ligar/desligar SAO indicar para executar operação de SAO, o meio de transmissão 130 pode executar codificação de desvio em informação de valor de deslocamento absoluto com relação a cada de luma, e primeiro e segundo componentes de croma e cada categoria SAO. Com relação a um tipo de banda, o meio de transmissão 130 pode executar codificação de desvio em informação de sinal de deslocamento e informação de posição de banda com relação a cada de luma, e primeiro e segundo componentes de croma. Com relação a um tipo de borda, o meio de transmissão 130 pode executar codificação de desvio em informação de classe de borda com relação a cada dos componentes de luma e croma.
[000353] A informação de classe de borda para o primeiro componente de croma também pode ser aplicada ao segundo componente de croma, e a informação de ligar/desligar SAO e a informação de identificação de banda de borda para o primeiro componente de croma também pode ser aplicada ao segundo componente de croma.
[000354] A figura 9 é um diagrama de blocos de um aparelho de decodificação de vídeo 200 baseado em unidades de codificação tendo uma estrutura de árvore, de acordo com modalidades da presente revelação.
[000355] O aparelho de decodificação de vídeo 200 que envolve predição de vídeo com base em unidades de codificação tendo uma estrutura de árvore 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.
[000356] Definições de vários termos, como uma unidade de codificação, uma profundidade, uma unidade de predição, uma unidade de transformação e informações sobre vários modos de codificação, para decodificar operações do aparelho de decodificação de vídeo 200 são idênticas àquelas descritas com referência à figura 7 e o aparelho de codificação de vídeo 100.
[000357] 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 codificada para cada unidade de codificação a partir do fluxo de bits analisado, em que as unidades de codificação têm uma estrutura de árvore de acordo com cada MCU, e transmite 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, a partir de um cabeçalho sobre o quadro atual, um conjunto de parâmetros de sequência ou um conjunto de parâmetros de quadro.
[000358] Também, 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 de árvore de acordo com cada MCU, a partir do fluxo de bits analisado. As informações extraídas sobre a profundidade codificada e o modo de codificação são transmitidas para o decodificador de dados de imagem 230. Em outras palavras, os dados de imagem em um fluxo de bits são divididos na MCU de modo que o decodificador de dados de imagem 230 decodifique os dados de imagem para cada MCU.
[000359] As informações sobre a profundidade codificada e o modo de codificação de acordo com a MCU podem ser definidas para informações sobre pelo menos uma unidade de codificação correspondendo à 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 correspondendo à profundidade codificada, sobre um modo de predição e um tamanho de uma unidade de transformação. Além disso, informações de divisão de acordo com profundardes podem ser extraídas como as informações sobre a profundidade codificada.
[000360] As informações sobre a profundidade codificada e o modo de codificação de acordo com cada MCU 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 erro de codificação mínimo quando um codificador, como o aparelho de codificação de vídeo 100, repetidamente executa codificação para cada unidade de codificação mais profunda de acordo com profundidades de acordo com cada MCU. Por conseguinte, o aparelho de decodificação de vídeo 200 pode reconstruir uma imagem por decodificar os dados de imagem de acordo com uma profundidade codificada e um modo de codificação que gera o erro de codificação mínima.
[000361] 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 entre uma unidade de codificação correspondente, uma unidade de prediçã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 predeterminados. Se informações sobre uma profundidade codificada e modo de codificação de uma MCU correspondente forem gravadas de acordo com unidades de dados predeterminadas, as unidades de dados predeterminadas às quais a mesma informação sobre a profundidade codificada e o modo de codificação é atribuída podem ser inferidas como sendo as unidades de dados incluídas na mesma MCU.
[000362] O decodificador de dados de imagem 230 reconstrói o quadro atual por decodificar os dados de imagem em cada MCU com base nas informações sobre a profundidade codificada e o modo de codificação de acordo com as MCUs. 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 divisão, o modo de predição e a unidade de transformação para cada unidade de codificação entre as unidades de codificação tendo a estrutura de árvore incluída em cada MCU. Um processo de decodificação pode incluir uma predição incluindo intra predição e compensação de movimento e uma transformação inversa.
[000363] O decodificador de dados de imagem 230 pode executar intra predição ou compensação de movimento de acordo com uma partição e um modo de predição de cada unidade de codificação, com base nas informações sobre o tipo de partição e o modo de predição da unidade de predição da unidade de codificação de acordo com profundidades codificadas.
[000364] Além disso, o decodificador de dados de imagem 230 pode ler informações sobre uma unidade de transformação de acordo com uma estrutura de árvore para cada unidade de codificação de modo a executar transformação inversa com ase em unidades de transformação para cada unidade de codificação, para transformação inversa para cada MCU. Através da transformação inversa, um valor de pixel do domínio de espaço da unidade de codificação pode ser reconstruído.
[000365] O decodificador de dados de imagem 230 pode determinar uma profundidade codificada de uma MCU atual por utilizar informações divididas de acordo com profundidades. Se as informações divididas indicarem que dados de imagem não mais são divididos na profundidade atual, a profundidade atual é uma profundidade codificada. Por conseguinte, o decodificador de dados de imagem 230 pode decodificar dados codificados na MCU atual utilizando as informações sobre o tipo de partição da unidade de predição, o modo de predição e o tamanho da unidade de transformação para cada unidade de codificação correspondendo à profundidade codificada.
[000366] Em outras palavras, unidades de dados contendo as informações de codificação incluindo as mesmas informações divididas podem ser coletadas por observar o conjunto de informações de codificação atribuído para a unidade de dados predeterminados entre a unidade de codificação, a unidade de predição e a unidade mínima, e as unidades de dados coletadas podem ser consideradas como uma unidade de dados a ser decodificada pelo decodificador de dados de imagem 230 no mesmo modo de codificação. Como tal, a unidade de codificação atual pode ser decodificada por obter as informações sobre o modo de codificação para cada unidade de codificação.
[000367] Também, o aparelho de decodificação de vídeo 200 da figura 9 pode executar operação do aparelho de decodificação de vídeo 20 descrito acima com referência à figura 2A.
[000368] O extrator de informações de codificação e dados de imagem 220 e receptor 210 pode executar operação do extrator de parâmetro de deslocamento 22 do aparelho de decodificação de vídeo 20. O decodificador de dados de imagem 230 pode executar operações do determinador de deslocamento 24 e ajustador de deslocamento 26 do aparelho de decodificação de vídeo 20.
[000369] O extrator de informações de codificação e dados de imagem 220 pode obter um fluxo de bits de parâmetros de SAO a partir de um fluxo de bits de uma MCU, pode executar decodificação por entropia no fluxo de bits, e desse modo pode reconstruir símbolos dos parâmetro de SAO.
[000370] Informações de fusão SAO da esquerda e informações de fusão SAO para cima podem ser obtidas, e decodificação de contexto pode ser realizada em cada das informações de fusão SAO da esquerda e informações de fusão SAO para cima. O extrator de informações de codificação e dados de imagem 220 pode obter 1 bit de informações de ligar/desligar SAO com relação a cada dos componentes de luma e croma. O extrator de informações de codificação e dados de imagem 220 pode executar decodificação de contexto em informações de ligar/desligar SAO de luma e informações de ligar/desligar SAO de croma.
[000371] Se as informações de ligar/desligar SAO indicarem para executar operação SAO, extrator de informações de codificação e dados de imagem 220 pode obter informações de identificação de banda de borda com relação a cada de componentes de luma e croma e pode executar decodificação de desvio em um bit da informação de identificação de banda de borda.
[000372] Se as informações de ligar/desligar SAO indicarem para executar operação de SAO, o extrator de informação de codificação e dados de imagem 220 pode obter informação de valor de deslocamento absoluto com relação a cada de luma, e primeiro e segundo componentes de croma e cada categoria SAO, e pode executar decodificação de desvio na informação de valor de deslocamento absoluto. Com relação a um tipo de banda, o extrator de informações de codificação e dados de imagem 220 pode obter informações de sinal de deslocamento e informações de posição de banda com relação a cada de luma, e primeiro e segundo componentes de croma, e pode executar decodificação de desvio em cada parâmetro. Com relação a um tipo de borda, o extrator de informações de codificação e dados de imagem 220 pode executar informação de classe de borda de decodificação de desvio obtida com relação a cada dos componentes de luma e croma.
[000373] A informação de classe de borda para o primeiro componente de croma também pode ser aplicada ao segundo componente de croma, e a informação de ligar/desligar SAO e a informação de identificação de banda de borda para o primeiro componente de croma também pode ser aplicada ao segundo componente de croma.
[000374] O decodificador de dados de imagem 230 pode gerar um pixel reconstruído capaz de minimizar um erro entre um pixel original e o pixel reconstruído, por ajustar um valor de pixel do pixel reconstruído por um valor de deslocamento correspondente. Deslocamentos de pixels reconstruídos de cada MCU podem ser ajustados com base nos parâmetros de deslocamento analisados.
[000375] Desse modo, o aparelho de decodificação de vídeo 200 pode obter informações sobre pelo menos uma unidade de codificação que gera o erro de codificação mínimo quando a codificação é recursivamente realizada para cada MCU, e pode utilizar as informações para decodificar o quadro atual. Em outras palavras, as unidades de codificação tendo a estrutura de árvore determinada como sendo as unidades de codificação ótimas em cada MCU podem ser decodificadas.
[000376] Por conseguinte, mesmo se dados de imagem tiverem resolução elevada e uma grande quantidade de dados, os dados de imagem podem ser eficientemente decodificados e reconstruídos utilizando 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, utilizando informações sobre um modo de codificação ótimo recebido a partir de um codificador.
[000377] A figura 10 é um diagrama para descrever um conceito de unidades de codificação de acordo com modalidades da presente revelação.
[000378] Um tamanho de uma unidade de codificação pode ser expresso por largura x altura, e pode ser 64x64, 32x32, 16x16 e 8x8. Uma unidade de codificação de 64x64 pode ser dividida em partições de 64x64, 64x32, 32x64, ou 32x32, e uma unidade de codificação de 32x32 pode ser dividida em partições de 32x32, 32x16, 16x32, ou 16x16, uma unidade de codificação de 16x16 pode ser dividida em partições de 16x16, 16x8, 8x16, ou 8x8, e uma unidade de codificação de 8x8 pode ser dividida em partições de 8x8, 8x4, 4x8, ou 4x4.
[000379] Em dados de vídeo 310, uma resolução é 1920x1080, um tamanho máximo de uma unidade de codificação é 64, e uma profundidade máxima é 2. Em dados de vídeo 320, uma resolução é 1920x1080, um tamanho máximo de uma unidade de codificação é 64, e uma profundidade máxima é 3. Em dados de vídeo 330, uma resolução é 352x288, um tamanho máximo de uma unidade de codificação é 16, e uma profundidade máxima é 1. A profundidade máxima mostrada na FIG. 10 indica um número total de divisões de uma MCU para uma unidade de decodificação mínima.
[000380] Se uma resolução for elevada 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 somente aumentar a eficiência de codificação com também refletir precisamente características de uma imagem. Por conseguinte, o tamanho máximo da unidade de codificação dos dados de vídeo 310 e 320 tendo uma resolução mais elevada do que os dados de vídeo 330 pode ser 64.
[000381] 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 MCU tendo um tamanho de eixo geométrico longo de 64, e unidades de codificação tendo tamanhos de eixo geométrico longo de 32 e 16 uma vez que profundidades são aumentadas para duas camadas por dividir a MCU duas vezes. 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 MCU tendo um tamanho de eixo geométrico longo de 16, e unidades de codificação tendo um tamanho de eixo geométrico longo de 8 uma vez que profundardes são aumentadas em uma camada por dividir a MCU uma vez.
[000382] 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 MCU tendo um tamanho de eixo geométrico longo de 64, e unidades de codificação tendo tamanhos de eixo geométrico longo de 32, 16 e 8 uma vez que as profundardes são aumentadas para 3 camadas por dividir a MCU três vezes. À medida que uma profundidade aumenta, informações detalhadas podem ser precisamente expressas.
[000383] A figura 11 é um diagrama de blocos de um codificador de imagem 400 com base em unidades de codificação, de acordo com modalidades da presente revelação.
[000384] O codificador de imagem 400 executa operações do determinador de unidade de codificação 120 do aparelho de codificação de vídeo 100 para codificar dados de imagem. Em outras palavras, um intra preditor 410 executa intra predição em unidades de codificação em um modo intra, entre um quadro atual 405, e um estimador de movimento 420 e um compensador de movimento 425 respectivamente executam inter estimação e compensação de movimento em unidades de codificação e um modo inter entre o quadro atual 405 por utilizar o quadro atual 405, e um quadro de referência 495.
[000385] Os dados transmitidos a partir do intra preditor 410, o estimador de movimento 420 e o compensador de movimento 425 são transmitidos como um coeficiente de transformação quantizada através de um transformador 430 e um quantizador 440. O coeficiente de transformação quantizada é reconstruído como dados no domínio de espaço através de um quantizador inverso 460 e um transformador inverso 470, e os dados reconstruídos no domínio de espaço são transmitidos como o quadro de referência 495 após serem pós-processados através de um filtro de desbloqueio 480 e um filtro SÃO 490. O coeficiente de transformação quantizado pode ser transmitido como um fluxo de bits 455 através de um codificador de entropia 450.
[000386] Para que o codificador de imagem 400 seja aplicado no aparelho de codificação de vídeo 100, todos os elementos do codificador de imagem 400, isto é, o intra preditor 410, o estimador de movimento 420, o compensador de movimento 425, o transformador 430, o quantizador 440, o codificador de entropia 450, o quantizador inverso 460, o transformador inverso 470, o filtro de desbloqueio 480, e o filtro SÃO 490 executam operações baseadas em cada unidade de codificação entre unidades de codificação tendo uma estrutura de árvore enquanto considera a profundidade máxima de cada MCU.
[000387] Em particular, o intra preditor 410, o estimador de movimento 420, e o compensador de movimento 425 determinam partições e um modo de predição de cada unidade de codificação entre as unidades de codificação tendo uma estrutura de árvore enquanto considera o tamanho máximo e a profundidade máxima de uma MCU atual, e o transformador 430 determina o tamanho da unidade de transformação em cada unidade de codificação entre as unidades de codificação tendo uma estrutura de árvore.
[000388] O operador de SAO 490 pode classificar pixels de acordo com um tipo de borda (ou um tipo de banda) de cada MCU do quadro de referência 495, pode determinar uma direção de borda (ou uma posição de banda de partida) e pode determinar um valor de erro médio de pixels reconstruídos incluídos em cada categoria. Com relação a cada MCU, informações de fusão de SAO, um tipo SAO, e valores de deslocamento podem ser codificados e sinalizados.
[000389] O codificador de entropia 450 pode executar codificação de CABAC em parâmetros de SAO incluindo informação de fusão de SAO, informação do tipo SAO e valores de deslocamento para operação de SAO. Por exemplo, para a informação do tipo SAO, um modelo de contexto pode ser usado para somente um primeiro bit e codificação de CABAC de modo de desvio pode ser realizada nos bits restantes. Dois modelos de contexto podem ser usados para os valores de deslocamento, e um modelo de contexto pode ser usado para cada da informação de fusão SAO esquerda e informação de fusão SAO superior. Por conseguinte, um total de cinco modelos de contexto pode ser usado para executar codificação de CABAC nos parâmetros de SAO.
[000390] A figura 12 é um diagrama de blocos de um decodificador de imagem 500 com base em unidades de codificação, de acordo com modalidades da presente revelação.
[000391] Um analisador 510 analisa dados de imagem codificados a serem decodificados e informações sobre codificação exigida para decodificação de um fluxo de bits 505. Os dados de imagem codificados são transmitidos como dados quantizados inversos através de um decodificador de entropia 520 e um quantizador inverso 530, e os dados quantizados inversos são reconstruídos em dados de imagem no domínio de espaço através de um transformador inverso 540.
[000392] Um intra preditor 550 executa intra predição em unidades de codificação em um modo intra com relação aos dados de imagem no domínio de espaço, e um compensador de movimento 560 executa compensação de movimento em unidades de codificação em um modo inter utilizando um quadro de referência 585.
[000393] Os dados de imagem no domínio de espaço, que passaram através do intra preditor 550 e compensador de movimento 560, podem ser transmitidos como um quadro reconstruído 595 após serem pós-processados através de um filtro de desbloqueio 570 e um filtro SÃO 580. Também, os dados de imagem que são pós- processados através do filtro de desbloqueio 570 e filtro SÃO 580 podem ser transmitidos como o quadro de referência 585.
[000394] Para decodificar os dados de imagem no decodificador de dados de imagem 230 do aparelho de decodificação de vídeo 200, o decodificador de imagem 500 pode executar operações que são realizadas após o analisador 510.
[000395] Para que o decodificador de imagem 500 seja aplicado no aparelho de decodificação de vídeo 200, todos os elementos do decodificador de imagem 500, isto é, o analisador 510, o decodificador de entropia 520, o quantizador inverso 530, o transformador inverso 540, o intra preditor 550, o compensador de movimento 560, o filtro de desbloqueio 570, e o filtro SÃO 580 executam operações com base em unidades de codificação tendo uma estrutura de árvore para cada MCU.
[000396] Em particular, a intra predição 550 e o compensador de movimento 560 executam operações baseadas em partições e um modo de predição para cada das unidades de codificação tendo uma estrutura de á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.
[000397] O decodificador de entropia 520 pode executar decodificação de CABAC em parâmetros de SAO de modo a analisar informação de fusão de SAO, informação do tipo SAO e valores de deslocamento para operação SAO a partir dos parâmetros de SAO. Por exemplo, para a informação do tipo SAO, um modelo de contexto pode ser usado para somente um primeiro bit e decodificação de CABAC no modo de desvio pode ser realizada nos bits restantes. Dois modelos de contexto podem ser usados para os valores de deslocamento, e um modelo de contexto pode ser usado para cada de informação de fusão SAO esquerda e informação de fusão de SAO superior. Por conseguinte, um total de cinco modelos de contexto pode ser usado para realizar decodificação de CABAC nos parâmetros de SAO.
[000398] O decodificador de imagem 500 pode extrair parâmetros de deslocamento de MCUs a partir de um fluxo de bits. Com base em informações de fusão de deslocamento entre os parâmetros de deslocamento de uma MCU atual, parâmetros de deslocamento da MCU atual, que são iguais aqueles de uma MCU adjacente, podem ser reconstruídos. Utilizando um tipo de deslocamento e valores de deslocamento entre os parâmetros de deslocamento da MCU atual, cada dos pixels reconstruídos de MCUs do quadro reconstruído 595 pode ser ajustado por um valor de deslocamento correspondendo a uma categoria de acordo com o tipo de borda ou tipo de banda.
[000399] A figura 13 é um diagrama que ilustra unidades de codificação mais profundas de acordo com profundidades, e partições, de acordo com modalidades da presente revelação.
[000400] O aparelho de codificação de vídeo 100 e o aparelho de decodificação de vídeo 200 utilizam unidades de codificação hierárquica de modo a 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 diferentemente definidas por um usuário. Os tamanhos de unidades de codificação mais profunda de acordo com profundidades podem ser determinados de acordo com o tamanho máximo predeterminado da unidade de codificação.
[000401] Em uma estrutura hierárquica 600 de unidades de codificação, de acordo com uma modalidade da presente invenção, a altura máxima e a largura máxima das unidades de codificação são individualmente 64, e a profundidade máxima é 4. Nesse caso, a profundidade máxima refere-se a um número total de vezes que a unidade de codificação é dividida a partir de MCU para SCU. Uma vez que uma profundidade aumenta ao longo de um eixo geométrico vertical da estrutura hierárquica 600, uma altura e uma largura da unidade de codificação mais profunda são individualmente divididas. Também, uma unidade de predição e partições, que são bases para codificação de predição de cada unidade de codificação mais profunda, são mostradas ao longo de um eixo geométrico horizontal da estrutura hierárquica 600.
[000402] Em outras palavras, a unidade de codificação 610 é uma MCU na estrutura hierárquica 600, em que uma profundidade é 0 e um tamanho, isto é, uma altura por largura, é 64x64. A profundidade aumenta ao longo do eixo geométrico vertical e uma unidade de codificação 620 tendo um tamanho de 32x32 e uma profundidade de 1, a unidade de codificação 630 tendo um tamanho de 16x16 e uma profundidade de 2, e a unidade de codificação 640 tendo um tamanho de 8x8 e uma profundidade de 3. A unidade de codificação 640 tendo um tamanho de 4x4 e uma profundidade de 3 é uma SCU.
[000403] A unidade de predição e as partições de uma unidade de codificação são dispostas ao longo do eixo geométrico horizontal de acordo com cada profundidade. Em outras palavras, se a unidade de codificação 610 tendo um tamanho de 64x64 e uma profundidade de 0 for a unidade de predição, a unidade de predição pode ser dividida em partições incluída na unidade de codificação 610, isto é, uma partição 610 tendo um tamanho de 64x64, partições 612 tendo o tamanho de 64x32, partições 614 tendo o tamanho de 32x64, ou partições 616 tendo o tamanho de 32x32.
[000404] Similarmente, a unidade de predição da unidade de codificação 620 tendo o tamanho de 32x32 e a profundidade de 1 pode ser dividida em partições incluídas na unidade de codificação 620, isto é, uma partição 620 tendo um tamanho de 32x32, partições 622 tendo um tamanho de 32x16, partições 624 tendo um tamanho de 16x32, e partições 626 tendo um tamanho de 16x16.
[000405] Similarmente, a unidade de predição da unidade de codificação 630 tendo o tamanho de 16x16 e a profundidade de 2 pode ser dividida em partições incluídas na unidade de codificação 630, isto é, uma partição tendo um tamanho de 16x16 incluída na unidade de codificação 630, partições 632 tendo um tamanho de 16x8, partições 634 tendo um tamanho de 8x16, e partições 636 tendo um tamanho de 8x8.
[000406] Similarmente, a unidade de predição da unidade de codificação 640 tendo o tamanho de 8x8 e a profundidade de 3 pode ser dividida em partições incluídas na unidade de codificação 640, isto é, uma partição tendo um tamanho de 8x8 incluída na unidade de codificação 640, partições 642 tendo um tamanho de 8x4, partições 644 tendo um tamanho de 4x8, e partições 646 tendo um tamanho de 4x4.
[000407] Para determinar pelo menos uma profundidade codificada das unidades de codificação constituindo a MCU 610, o determinador de unidade de codificação 120 do aparelho de codificação de vídeo 100 executa codificação para unidades de codificação correspondendo a cada profundidade incluída na MCU 610.
[000408] Um número de unidades de codificação mais profunda de acordo com profundidades incluindo dados na mesma faixa e o mesmo tamanho aumenta à medida que a profundidade aumenta. Por exemplo, quatro unidades de codificação correspondendo a uma profundidade de 2 são necessárias para cobrir dados que são incluídos em uma unidade de codificação correspondendo a uma profundidade de 1. Por conseguinte, para comparar resultados de codificação dos mesmos dados de acordo com profundidade, a unidade de codificação correspondendo à profundidade de 1 e quatro unidades de codificação correspondendo à profundidade de 2 são individualmente codificadas.
[000409] Para executar a codificação para uma profundidade atual entre as profundidades, um erro de codificação mínimo pode ser selecionado para a profundidade atual por executar codificação para cada unidade de predição nas unidades de codificação correspondendo à profundidade atual, ao longo do eixo geométrico horizontal da estrutura hierárquica 600. Alternativamente, o erro de codificação mínimo pode ser procurado por comparar os erros de codificação mínimos de acordo com as profundidades, por executar codificação para cada profundidade à medida que a profundidade aumenta ao longo do eixo geométrico vertical da estrutura hierárquica 600. Uma profundidade e uma partição tendo o erro de codificação mínimo 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.
[000410] A figura 14 é um diagrama para descrever uma relação entre uma unidade de codificação 710 e unidades de transformação 720, de acordo com modalidades da presente revelação.
[000411] O aparelho de codificação de vídeo 100 ou o aparelho de decodificação de vídeo 200 codifica ou decodifica uma imagem de acordo com unidades de codificação tendo tamanhos menores do que ou iguais a uma MCU para cada MCU. Tamanhos de unidades de transformação para transformação durante 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.
[000412] Por exemplo, no aparelho de codificação de vídeo 100 ou aparelho de decodificação de vídeo 200, se um tamanho da unidade de codificação 710 for 64x64, a transformação pode ser executada utilizando as unidades de transformação 720 tendo um tamanho de 32x32.
[000413] Também, dados da unidade de codificação 710 tendo o tamanho de 64x64 podem ser codificados por executar a transformação em cada das unidades de transformação tendo o tamanho de 32x32, 16x16, 8x8 e 4x4 que são menores do que 64x64, e então uma unidade de transformação tendo o erro de codificação mínimo pode ser selecionado.
[000414] A figura 15 é um diagrama para descrever informações de codificação de unidades de codificação correspondendo a uma profundidade codificada, de acordo com modalidades da presente revelação.
[000415] O meio de transmissão 130 do aparelho de codificação de vídeo 100 pode codificar e transmitir informações 800 sobre um tipo de partição, informações 810 sobre um modo de predição, e informações 820 sobre um tamanho de uma unidade de transformação para cada unidade de codificação correspondendo a uma profundidade codifica, como informações sobre um modo de codificação.
[000416] As informações 800 indicam informações sobre um formato de uma partição obtida por dividir uma unidade de predição de uma unidade de codificação atual, em que a partição é uma unidade de dados para codificação de predição da unidade de codificação atual. Por exemplo, uma unidade de codificação atual CU_O tendo um tamanho de 2Nx2N pode ser dividida em qualquer uma de uma partição 802 tendo um tamanho de 2Nx2N, uma partição 804 tendo um tamanho de 2N*N, uma partição 806 tendo um tamanho de N*2N, e uma partição 808 tendo um tamanho de NxN. Aqui, a informação 800 sobre um tipo de partição é definido para indicar uma das partição 804 tendo um tamanho de 2N*N, a partição 806 tendo um tamanho de N*2N, e a partição 808 tendo um tamanho de NxN.
[000417] A informação 810 indica um modo de predição de cada partição. Por exemplo, a informação 810 pode indicar um modo de codificação por predição executado em uma partição indicada pela informação 800, isto é, um modo intra 812, um modo inter 814 ou um modo de pular 816.
[000418] A informação 820 indica uma unidade de transformação a ser baseada quando a 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 segunda unidade de transformação inter 828.
[000419] O extrator de informação de codificação e dados de imagem 220 do aparelho de decodificação de vídeo 200 pode extrair e utilizar as informações 800, 810 e 820 para decodificação, de acordo com cada unidade de codificação mais profunda.
[000420] A figura 16 é um diagrama de unidades de codificação mais profunda de acordo com profundidades, de acordo com modalidades da presente revelação.
[000421] Informações divididas podem ser utilizadas para indicar uma mudança de uma profundidade. As informações divididas indicam se uma unidade de codificação de uma profundidade atual é dividida em unidades de codificação ou uma profundidade inferior.
[000422] Uma unidade de predição 910 para codificação de predição de uma unidade de codificação 900 tendo uma profundidade de 0 e um tamanho de 2N_0*2N_0 pode incluir partições de um tipo de partição 912 tendo um tamanho de 2N_0x2N_0, um tipo de 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. 9 somente ilustra os tipos de partição 912 até 918 que são obtidos por dividir simetricamente a unidade de predição 910, porém um tipo de partição não é limitado ao mesmo, e as partições da unidade de predição 910 podem incluir partições assimétricas, partições tendo um formato predeterminado, e partições tendo um formato geométrico.
[000423] Codificação de predição é repetidamente realizada em uma partição tendo um tamanho de 2N_0*2N_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 de predição em um modo intra e um modo inter pode ser realizada nas partições tendo os tamanhos de 2N_0*2N_0, N_0*2N_0, 2N_0xN_0, e N_0xN_0. A codificação de predição em um modo de pular é realizada somente na partição tendo o tamanho de 2N_0X2N_0.
[000424] Se um erro de codificação for menor em um dos tipos de partição 912 até 916, a unidade de predição 910 pode não ser dividida em uma profundidade inferior.
[000425] Se o erro de codificação for menor no tipo de partição 918, uma profundidade é alterada de 0 para 1 para dividir o tipo de partição 918 em operação 920, e a codificação é repetidamente realizada nas unidades de codificação 930 tendo uma profundidade de 2 e um tamanho de N_0xN_0 para procurar um erro de codificação mínimo.
[000426] Uma unidade de predição 940 para codificação de predição da unidade de codificação 930 tendo uma profundidade de 1 e um tamanho de 2N_1*2N_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 N_1xN_1.
[000427] Se um erro de codificação for o menor no tipo de partição 948, uma profundidade é mudada de 0 para 1 para dividir o tipo de partição 918 em operação 920, e a codificação é repetidamente realizada nas unidades de codificação 930 tendo uma profundidade de 2 e um tamanho de N_2xN_2 para procurar um erro de codificação mínimo.
[000428] Quando uma profundidade máxima é d, a operação dividida de acordo com cada profundidade pode ser realizada até quando uma profundidade se torna d-1, e informações divididas podem ser codificadas até quando uma profundidade é um de 0 a d-2. Em outras palavras, quando a codificação é realizada até quando a profundidade é d-1 após uma unidade de codificação correspondendo a uma profundidade de d-2 for dividida na operação 970, uma unidade de predição 990 para codificação de predição de uma unidade de codificaçã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).
[000429] A codificação de predição pode ser repetidamente realizada 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) entre dois tipos de partição 992 até 998 para procurar um tipo de partição tendo um erro de codificação mínimo.
[000430] Mesmo quando o tipo de partição 998 tem o erro de codificação mínimo, 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 para uma profundidade inferior, e uma profundidade codificada para as unidades de codificação constituindo uma MCU atual 900 é determinada como sendo d-1 e um tipo de partição da MCU atual 900 pode ser determinado como sendo N_(d-1)xN_(d-1). Também uma vez que a profundidade máxima é d e uma SCU 980 tendo uma profundidade mais inferior de d-1 não mais é dividida em uma profundidade inferior, informações divididas para a SCU 980 não são definidas.
[000431] Uma unidade de dados 999 pode ser uma ‘unidade mínima’ para a MCU atual. Uma unidade mínima de acordo com uma modalidade da presente invenção pode ser uma unidade de dados quadrados obtida por dividir uma SCU 980 por 4. Por executar a codificação repetidamente, o aparelho de codificação de vídeo 100 pode selecionar uma profundidade tendo o erro de codificação mínimo por comparar 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 predição como um modo de codificação da profundidade codificada.
[000432] Como tal, os erros de codificação mínimos de acordo com profundidades são comparados em todas as profundidades de 1 até d, e uma profundidade tendo o erro de codificação mínimo pode ser determinado como uma profundidade codificada. A profundidade codificada, o tipo de partição da unidade de predição e o modo de predição podem ser codificados e transmitidos como informações sobre um modo de codificação. Além disso, uma vez que uma unidade de codificação é dividida de uma profundidade de 0 para uma profundidade codificada, somente informações divididas da profundidade codificada são definidas em 0, e informações divididas de profundidades excluindo a profundidade codificada são definidas em 1.
[000433] O extrator de informação de codificação e dados de imagem 220 do aparelho de decodificação de vídeo 200 pode extrair e utilizar as informações sobre a profundidade codificada e a unidade de predição da unidade de codificação 900 para decodificar a partição 912. O aparelho de decodificação de vídeo 200 pode determinar uma profundidade, na qual informações divididas são 0, como uma profundidade codificada por utilizar informações divididas de acordo com profundidades, e utilizar informações sobre um modo de codificação da profundidade correspondente para decodificação.
[000434] As figuras 17 até 19 são diagramas para descrever uma relação entre unidades de codificação 1010, unidades de predição 1060, e unidades de transformação 1070 de acordo com uma modalidade da presente invenção.
[000435] As unidades de codificação 1010 são unidades de codificação tendo uma estrutura de árvore, correspondendo a profundidades codificadas determinadas pelo aparelho de codificação de vídeo 100 em uma MCU. As unidades de predição 1060 são partições de unidades de predição de cada das unidades de codificação 1010, e as unidades de transformação 1070 são unidades de transformação de cada das unidades de codificação 1010.
[000436] Quando uma profundidade de uma MCU é 0 nas unidades de codificação 1010, profundidades de unidades de codificação 1012 e 1054 são 1, profundidades de unidades de codificação 1014, 1016, 1018, 1028, 1050, e 1052 são 2, profundidade de unidades de codificação 1020, 1022, 1024, 1026, 1030, 1032, e 1048 são 3, e profundidades de unidades de codificação 1040, 1042, 1044, e 1046 são 4.
[000437] Nas unidades de predição 1060, algumas unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050, 1052, e 1054 são obtidas por dividir 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 2N*N, tipos de partição nas unidades de codificação 1016, 1048, e 1052 têm um tamanho de N*2N, e um tipo de partição da unidade de codificação 1032 tem um tamanho de NxN. Unidades de predição e partições das unidades de codificação 1010 são menores ou iguais a cada unidade de codificação.
[000438] Transformação ou transformação inversa é realizada em 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 predição 1060 em termos de tamanho de formatos. Em outras palavras, os aparelhos de codificação e decodificação de vídeo 100 e 200 podem executar intra predição, estimação de movimento, compensação de movimento, transformação e transformação inversa individualmente em uma unidade de dados na mesma unidade de codificação.
[000439] Por conseguinte, a codificação é recursivamente realizada em cada das unidades de codificação tendo uma estrutura hierárquica em cada região de uma MCU para determinar uma unidade de codificação ótima, e desse modo unidades de codificação tendo uma estrutura de árvore recursiva podem ser obtidas. Informações de codificação podem incluir informações divididas sobre uma unidade de codificação, informações sobre um tipo de partição, informações sobre um modo de prediçã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 de codificação e decodificação de vídeo 100 e 200.
Figure img0003
[000440] O meio de transmissão 130 do aparelho de codificação de vídeo 100 pode transmitir as informações de codificação sobre as unidades de codificação tendo uma estrutura de árvore, e o extrator de informação de codificação e dados de imagem 220 do aparelho de decodificação de vídeo 200 pode extrair as informações de codificação sobre as unidades de codificação tendo uma estrutura de árvore a partir de um fluxo de bits recebido.
[000441] Informações divididas indicam se uma unidade de codificação atual é dividida em unidades de codificação de uma profundidade inferior. Se informações divididas de uma profundidade atual d for 0, uma profundidade, na qual uma unidade de codificação atual não mais é dividida em uma profundidade inferior, é uma profundidade codificada, e desse modo informações sobre um tipo de partição, modo de predição e um tamanho de uma unidade de transformação pode ser definida para a profundidade codificada. Se a unidade de codificação atual for adicionalmente dividida de acordo com as informações divididas, a codificação é independentemente realizada em quatro unidades de codificação divididas de uma profundidade inferior.
[000442] Um modo de predição pode ser um de um modo intra, um modo inter e um modo de pular. O modo intra e o modo inter podem ser definidos em todos os tipos de partição, e o modo de pular é definido somente em um tipo de partição tendo um tamanho de 2Nx2N.
[000443] As informações sobre o tipo de partição podem indicar tipos de partição simétrica tendo tamanhos de 2N*2N, 2N*N, Nx2N, e NxN, que são obtidos por dividir simetricamente uma altura ou uma largura de uma unidade de predição, e tipos de partição assimétrica tendo tamanhos de 2NxnU, 2NxnD, nL*2N, e nRx2N, que são obtidos por dividir assimetricamente a altura ou largura da unidade de predição. Os tipos de partição assimétrica tendo os tamanhos de 2NxnU e 2NxnD podem ser respectivamente obtidos por dividir a altura da unidade de predição em 1:3 e 3:1, e os tipos de partição assimétrica tendo os tamanhos de nL*2N e nRx2N podem ser respectivamente obtidos por dividir a largura da unidade de predição em 1:3 e 3:1.
[000444] O tamanho da unidade de transformação pode ser definido como sendo dois tipos no modo intra e dois tipos no modo inter. Em outras palavras, se informações divididas da unidade de transformação forem 0, o tamanho da unidade de transformação pode ser 2N*2N, que é o tamanho da unidade de codificação atual. Se informação dividida da unidade de transformação for 1, as unidades de transformação podem ser obtidas por dividir a unidade de codificação atual. Além disso, se um tipo de divisão da unidade de codificação atual tendo o tamanho de 2N*2N é um tipo de partição simétrica, um tamanho de uma unidade de transformação pode ser NxN, e se o tipo de partição da unidade de codificação atual é um tipo de partição assimétrica, o tamanho da unidade de transformação pode ser N/2xN/2.
[000445] As informações de codificação sobre unidades de codificação tendo uma estrutura de árvore podem incluir pelo menos uma de uma unidade de codificação correspondendo a uma profundidade codificada, uma unidade de predição e uma unidade mínima. A unidade de codificação correspondendo à profundidade codificada pode incluir pelo menos uma de uma unidade de predição e uma unidade mínima contendo a mesma informação de codificação.
[000446] Por conseguinte, é determinado se unidades de dados adjacentes forem incluídas na mesma unidade de codificação correspondendo à profundidade codificada por comparar informações de codificação das unidades de dados adjacentes. Além disso, uma unidade de codificação correspondente correspondendo a uma profundidade codificada é determinada utilizando informações de codificação de uma unidade de dados, e desse modo uma distribuição de profundidades codificadas em uma MCU pode ser determinada.
[000447] Por conseguinte, se uma unidade de codificação atual for prevista com base em informações de codificação de unidades de dados adjacentes, informações de codificação de unidades de dados em unidades de codificação mais profundas adjacentes à unidade de codificação atual podem ser diretamente referidas e utilizadas.
[000448] Alternativamente, se uma unidade de codificação atual for prevista com base em informações de codificação de unidades de dados adjacentes, unidades de dados adjacentes à unidade de codificação atual são buscadas utilizando informações codificadas das unidades de dados, e as unidades de codificação adjacentes buscadas podem ser mencionadas para prever a unidade de codificação atual.
[000449] A figura 20 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de predição e uma unidade de transformação de acordo com informações de modo de codificação da tabela 1.
[000450] Uma MCU 1300 inclui unidades de codificação 1302, 1304, 1306, 1312, 1314, 1316, e 1318 de profundidade codificadas. Aqui, uma vez que a unidade de codificação 1318 é uma unidade de codificação de uma profundidade codificada, informações divididas podem ser definidas em 0. Informações sobre um tipo de partição da unidade de codificação 1318 tendo um tamanho de 2N*2N podem ser definidas para ser um de um tipo de partição 1322 tendo um tamanho de 2N*2N, um tipo de partição 1324 tendo um tamanho de 2N*N, um tipo de partição 1326 tendo um tamanho de N*2N, um tipo de partição 1328 tendo um tamanho de NxN, um tipo de 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 nL*2N, e um tipo de partição 1338 tendo um tamanho de nRx2N.
[000451] Informações divididas (indicador de tamanho TU) de uma unidade de transformação é um tipo de um índice de transformação. O tamanho da unidade de transformação correspondendo ao índice de transformação pode ser alterado de acordo com um tipo de unidade de predição ou tipo de partição da unidade de codificação.
[000452] Por exemplo, quando o tipo de partição é definido como sendo simétrico, isto é, o tipo de partição 1322, 1324, 1326, ou 1328, uma unidade de transformação 1342 tendo um tamanho de 2Nx2N é definida se um indicador de tamanho TU de uma unidade de transformação for 0, e uma unidade de transformação 1344 tendo um tamanho de NxN é definido se um indicador de tamanho TU for 1.
[000453] Quando o tipo de partição for definido como sendo assimétrico, isto é, o tipo de partição 1332, 1334, 1336, ou 1338, uma unidade de transformação 1352 tendo um tamanho de 2Nx2N é definida se um indicador de tamanho TU for 0, e uma unidade de transformação 1354 tendo um tamanho de N/2xN/2 é definida se um indicador de tamanho TU for 1.
[000454] Com referência à figura 20, o indicador de tamanho TU é um indicador tendo um valor de 0 ou 1, porém o indicador do tamanho TU não é limitado a 1 bit, e uma unidade de transformação pode ser hierarquicamente dividida tendo uma estrutura de árvore enquanto o indicador do tamanho TU aumenta de 0. Informações divididas (indicador de tamanho TU) de uma unidade de transformação podem ser um exemplo de um índice de transformação.
[000455] Nesse caso, o tamanho de uma unidade de transformação que foi na realidade utilizado pode ser expresso utilizando um indicador de tamanho TU de uma unidade de transformação, de acordo com uma modalidade de acordo com a presente invenção, juntamente com um tamanho máximo e tamanho mínimo da unidade de transformação. O aparelho de codificação de vídeo 100 é capaz de codificar informação de tamanho máximo da unidade de transformação, informação de tamanho mínimo da unidade de transformação e um indicador de tamanho máximo de TU. O resultado de codificar a informação de tamanho máximo da unidade de transformação, a informação de tamanho mínimo da unidade de transformação, e o indicador de tamanho máximo de TU pode ser inserido em um SPS. O aparelho de codificação de vídeo 200 pode decodificar vídeo utilizando a informação de tamanho máximo de unidade de transformação, a informação de tamanho mínimo de unidade de transformação e o indicador de tamanho máximo de TU.
[000456] Por exemplo, (a) se o tamanho de uma unidade de codificação atual for 64x64 e um tamanho máximo de unidade de transformação for 32x32, (a-1) então o tamanho de uma unidade de transformação pode ser 32x32 quando um indicador de tamanho de TU for 0, (a-2) pode ser 16x16 quando o indicador de tamanho de TU for 1, e (a-3) pode ser 8x8 quando o indicador de tamanho de TU for 2.
[000457] Como outro exemplo, (b) se o tamanho da unidade de codificação atual for 32x32 e um tamanho mínimo de unidade de transformação for 32x32, (b-1) então o tamanho da unidade de transformação pode ser 32x32 quando o indicador de tamanho de TU é 0. Aqui, o indicador de tamanho de 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 do que 32x32.
[000458] Como outro exemplo, (c) se o tamanho da unidade de codificação atual for 64x64 e um indicador de tamanho máximo de TU for 1, então o indicador de tamanho de TU pode ser 0 ou 1. Aqui, o indicador de tamanho de TU não pode ser definido em um valor diferente de 0 ou 1.
[000459] Desse modo, se for definido que o indicador de tamanho máximo de TU é “MaxTransformSizeIndex”, um tamanho mínimo de unidade de transformação é ‘MinTransformSize’ e um tamanho de unidade de transformação é ‘RootTuSize’ quando o indicador de tamanho de Tu é 0, então um tamanho atual de unidade de transformação ‘CurrMinTuSize’ que pode ser determinado em uma unidade de codificação atual, pode ser definido pela equação (1):
Figure img0004
[000460] Em comparação com o tamanho mínimo atual de unidade de transformação ‘CurrMinTuSize’ que pode ser determinado na unidade de codificação atual, um tamanho de unidade de transformação ‘RootTuSize’ quando o indicador de tamanho Tu é 0 pode indicar um tamanho máximo de unidade de transformação que pode ser selecionado no sistema. Na equação (1), ‘RootTuSize(2AMaxTrtasnformSizeIndex)’ indica um tamanho de unidade de transformação quando o tamanho de unidade de transformação ‘RootTuSize’, quando o indicador de tamanho de TU é 0, é dividido um número de vezes correspondendo ao indicador de tamanho máximo de TU, e ‘MinTransformSize’ indica um tamanho mínimo de transformação. Desse modo, um valor menor entre ‘EootTuSize(2AMaxTransformSizeIndex)’ e ‘MinTranasformSize’ pode ser o tamanho mínimo atual da unidade de transformação ‘CurrMinTuSize’ que pode ser determinado na unidade de codificação atual.
[000461] De acordo com modalidades de acordo com a presente revelação, o tamanho máximo de unidade de transformação RootTuSize pode variar de acordo com o tipo de um modo de predição.
[000462] Por exemplo, se um modo de predição atual for um modo inter, então ‘RootTuSize’ pode ser determinado utilizando a equação (2) abaixo. Na equação (2), ‘MaxTransformSize’ indica um tamanho máximo de unidade de transformação, e ‘PUSize’ indica um tamanho atual de unidade de predição.
Figure img0005
[000463] Em outras palavras, se o modo de predição atual for o modo inter, o tamanho de unidade de transformação ‘RootTuSize’, o tamanho máximo de unidade de transformação e o tamanho atual da unidade de predição.
[000464] Se um modo de predição de uma unidade de partição atual for um modo intra, ‘RootTuSize’ pode ser determinado utilizando a equação (3) abaixo. Na equação (3), ‘PartitionSize’ indica o tamanho da unidade de partição atual.
Figure img0006
[000465] Em outras palavras, se o modo de predição atual for o modo intra, o tamanho da unidade de transformação ‘RootTuSize’ quando o indicador de tamanho TU é 0 pode ser um valor menor entre o tamanho máximo de unidade de transformação e o tamanho da unidade de partição atual.
[000466] Entretanto, o tamanho máximo de unidade de transformação ‘RootTuSize’ que varia de acordo com o tipo de um modo de predição em uma unidade de partição é apenas um exemplo e a presente invenção não é limitada ao mesmo.
[000467] De acordo com o método de codificação de vídeo baseado em unidades de codificação tendo uma estrutura de árvore como descrito com referência às figuras 8 até 20, dados de imagem do domínio de espaço são codificados para cada unidade de codificação de uma estrutura de árvore. De acordo com o método de decodificação de vídeo com base em unidades de codificação tendo uma estrutura de árvore, a decodificação é realizada para cada MCU reconstruir dados de imagem do domínio de espaço. Desse modo, um quadro e um vídeo que é uma sequência de quadros podem ser reconstruídos. O vídeo reconstruído pode ser reproduzido por um aparelho de reprodução, armazenado em um meio de armazenagem ou transmitido através de uma rede.
[000468] Também, parâmetros de SAO podem ser sinalizados com relação a cada quadro, cada fatia, cada MCU, cada de unidades de codificação tendo uma estrutura de árvore, cada unidade de predição das unidades de codificação ou cada unidade de transformação das unidades de codificação. Por exemplo, valores de pixel de pixels reconstruídos de cada MCU podem ser ajustados utilizando valores de deslocamento reconstruídos com base em parâmetros de SAO recebidos, e desse modo uma MCU tendo um erro minimizado entre um bloco original e a MCU pode ser reconstruída.
[000469] Para conveniência de descrição, o método de codificação de vídeo de acordo com ajuste de um deslocamento de amostra, que é descrito acima com referência às figuras 1A até 20, será mencionado como um ‘método de codificação de vídeo de acordo com a presente invenção’. Além disso, o método de decodificação de vídeo de acordo com ajuste de um deslocamento de amostra, que é descrito acima com referência às figuras 1A até 20, será mencionado como um ‘método de decodificação de vídeo de acordo com a presente invenção’.
[000470] Também, um aparelho de codificação de vídeo incluindo o aparelho de codificação de SAO 10, o aparelho de codificação de vídeo 100, ou o codificador de imagem 400, que é descrito acima com referência às figuras 1A até 20, será mencionado como um ‘aparelho de codificação de vídeo de acordo com a presente revelação’. Além disso, um aparelho de decodificação de vídeo incluindo o aparelho de decodificação de vídeo 20, o aparelho de decodificação de vídeo 200, ou o decodificador de imagem 500, que é descrito acima com referência às figuras 1A até 20, será mencionado como um ‘aparelho de decodificação de vídeo de acordo com a presente revelação’.
[000471] Um meio de gravação legível em computador que armazena um programa, por exemplo, um disco 26000, de acordo com uma modalidade da presente invenção será descrito agora em detalhe.
[000472] A figura 21 é um diagrama de uma estrutura física do disco 26000 no qual um programa é armazenado, de acordo com uma modalidade da presente invenção. O disco 26000, que é um meio de armazenagem, pode ser uma unidade rígida, um disco de memória somente de leitura de compact disc (CD-ROM), um Blu- ray disc, ou um digital versatile disc (DVD). O disco 26000 inclui uma pluralidade de trilhas concêntricas Tr que são individualmente divididas em um número específico de setores Se em uma direção circunferencial do disco 26000. Em uma região específica do disco 26000, um programa que executa o método de determinação de parâmetro de quantização, o método de codificação de vídeo, e o método de decodificação de vídeo descritos acima podem ser atribuídos e armazenados.
[000473] Um sistema de computador incorporado utilizando um meio de armazenagem que armazena um programa para executar o método de codificação de vídeo e o método de decodificação de vídeo como descrito acima será descrito agora com referência à figura 22.
[000474] A figura 22 é um diagrama de uma unidade de disco 26800 para gravar e ler um programa por utilizar o disco 26000. Um sistema de computador 26700 pode armazenar um programa que executa pelo menos um de um método de codificação de vídeo e um método de decodificação de vídeo de acordo com uma modalidade da presente invenção, no disco 26000 através da unidade de disco 26800. Para rodar o programa armazenado no disco 26000 no sistema de computador 26700, o programa pode ser lido a partir do disco 26000 e ser transmitido para o sistema de computador 26700 utilizando a unidade de disco 26700.
[000475] O programa que executa pelo menos um de um método de codificação de vídeo e um método de decodificação de vídeo de acordo com uma modalidade da presente invenção pode ser armazenado não somente no disco 26000 ilustrado na figura 21 ou 22 como também em um cartão de memória, um cassete ROM, ou uma unidade de estado sólido (SSD).
[000476] Um sistema ao qual o método de codificação de vídeo e um método de decodificação de vídeo descrito acima são aplicados será descrito abaixo.
[000477] A figura 23 é um diagrama de uma estrutura geral de um sistema de fornecimento de conteúdo 11000 para fornecer um serviço de distribuição de conteúdo. Uma área de serviço de um sistema de comunicação é dividida em células de tamanho predeterminado, e estações de base sem fio 11700, 11800, 11900, e 12000 são instaladas nessas células, respectivamente.
[000478] O sistema de fornecimento de conteúdo 11000 inclui uma pluralidade de dispositivos independentes. Por exemplo, a pluralidade de dispositivos independentes, como um computador 12100, um assistente pessoal digital (PDA) 12200, uma câmera de vídeo 12300, e um telefone móvel 12500, são conectados à Internet 11100 através de um provedor de serviço de internet 11200, uma rede de comunicação 11400 e as estações base sem fio 11700, 11800, 11900, e 12000.
[000479] Entretanto, o sistema de fornecimento de conteúdo 11000 não é limitado a como ilustrado na figura 24 e dispositivos podem ser seletivamente conectados ao mesmo. A pluralidade de dispositivos independentes pode ser diretamente conectada à rede de comunicação 11400, não através das estações base sem fio 11700, 11800, 11900, e 12000.
[000480] A câmera de vídeo 12300 é um dispositivo de imageamento, por exemplo, uma câmera de vídeo digital, que é capaz de capturar imagens de vídeo. O telefone móvel 12500 pode empregar pelo menos um método de comunicação entre vários protocolos, por exemplo, Comunicações Digitais Pessoais (PDC), Acesso múltiplo por divisão de código (CDMA), Acesso múltiplo por divisão de código de banda larga (W-CDMA), Sistema global para comunicações móveis (GSM), e Sistema de Handyphone pessoal (PHS).
[000481] A câmera de vídeo 12300 pode ser conectada a um servidor de streaming 11300 através da estação base sem fio 11900 e a rede de comunicação 11400. O servidor de streaming 11300 permite que conteúdo recebido de um usuário através da câmera de vídeo 12300 seja streamed através de um broadcast em tempo real. O conteúdo recebido a partir da câmera de vídeo 12300 pode ser codificado utilizando a câmera de vídeo 12300 ou o servidor de streaming 11300. Dados de vídeo capturados pela câmera de vídeo 12300 podem ser transmitidos para o servidor de streaming 11300 através do computador 12100.
[000482] Dados de vídeo capturados por uma câmera 12600 também podem ser transmitidos para o servidor de streaming 11300 através do computador 12100. A câmera 12600 é um dispositivo de imageamento capaz de capturar tanto imagens fixas como imagens de vídeo, similar a uma câmera digital. Os dados de vídeo capturados pela câmera 12600 podem ser codificados utilizando a câmera 12600 ou o computador 12100. Software que executa codificação e decodificação de vídeo pode ser armazenado em um meio de gravação legível em computador, por exemplo, um disco CD-ROM, um disco flexível, uma unidade de disco rígido, um SSD, ou um cartão de memória, que pode ser acessível pelo computador 12100.
[000483] Se dados de vídeo forem capturados por uma câmera embutida no telefone móvel 12500, os dados de vídeo podem ser recebidos a partir do telefone móvel 12500.
[000484] Os dados de vídeo podem ser também codificados por um sistema de circuito integrado de escala grande (LSI) instalado na câmera de vídeo 12300, o telefone móvel 12500 ou a câmera 12600.
[000485] O sistema de fornecimento de conteúdo 11000 pode codificar dados de conteúdo gravados por um usuário utilizando a câmera de vídeo 12300, a câmera 12600, o telefone móvel 12500, ou outro dispositivo de imageamento, por exemplo, conteúdo gravado durante um concerto, e transmitir os dados de conteúdo codificados para o servidor de streaming 11300. O servidor de streaming 11300 pode transmitir os dados de conteúdo codificados em um tipo de um conteúdo streaming para outros clientes que solicitam os dados de conteúdo.
[000486] Os clientes são dispositivos capazes de decodificar os dados de conteúdo codificados, por exemplo, o computador 12100, o PDA 12200, a câmera de vídeo 12300, ou o telefone móvel 12500. Desse modo, o sistema de fornecimento de conteúdo 11000 permite que os clientes recebam e reproduzam os dados de conteúdo codificados. Além disso, o sistema de fornecimento de conteúdo 11000 permite que os clientes recebam os dados de conteúdo codificados e decodifiquem e reproduzam os dados de conteúdo codificados em tempo real, desse modo permitindo broadcasting pessoal.
[000487] As operações de codificação e decodificação da pluralidade de dispositivos independentes incluídos no sistema de fornecimento de conteúdo 11000 podem ser similares àquelas de um aparelho de codificação de vídeo e um aparelho de decodificação de vídeo de acordo com modalidades da presente revelação.
[000488] O telefone móvel 12500 incluído no sistema de fornecimento de conteúdo 11000 de acordo com uma modalidade da presente invenção será descrito agora em maior detalhe com referência às figuras 24 e 25.
[000489] A figura 24 ilustra uma estrutura externa do telefone móvel 12500 ao qual um método de codificação de vídeo e um método de decodificação de vídeo são aplicados, de acordo com uma modalidade da presente invenção. O telefone móvel 12500 pode ser um smart phone, cujas funções não são limitadas e um número grande de cujas funções pode ser alterada ou expandida.
[000490] O telefone móvel 12500 inclui uma antena interna 12510 através da qual um sinal de radiofrequência (RF) pode ser permutado com a estação base sem fio 12000 da figura 21, e inclui uma tela de display 12520 para exibir imagens capturadas por uma câmera 12530 ou imagens que são recebidas através da antena 12510 e decodificadas, por exemplo, um display de cristal líquido (LCD) ou uma tela de diodo de emissão de luz orgânico (OLED). O telefone móvel 12500 inclui um painel de operações 12540 incluindo um botão de controle e um painel de toque. Se a tela de display 12520 for uma tela de toque, o painel de operações 12540 inclui ainda um painel de sentir toque da tela de display 1250. O telefone móvel 12500 inclui um alto-falante 12580 para transmitir voz e som ou outro tipo de meio de transmissão de som, e um microfone 12550 para entrar voz e som ou outro tipo de meio de entrada de som. O telefone móvel 12500 inclui ainda a câmera 12530, como uma câmera de dispositivo acoplado a carga (CCD), para capturar vídeo e imagens fixas. O telefone móvel 12500 pode incluir ainda um meio de armazenagem 12570 para armazenar dados codificados/decodificados, por exemplo, vídeo ou imagens fixas capturadas pela câmera 12530, recebidas via e-mail, ou obtidas de acordo com vários modos; e uma partição 12560 através da qual o meio de armazenagem 12570 é carregado no telefone móvel 12500. O meio de armazenagem 12570 pode ser uma memória flash, por exemplo, um cartão digital seguro (SD) ou uma memória somente de leitura eletricamente apagável e programável (EEPROM) incluída em uma caixa de plástico.
[000491] A figura 25 ilustra uma estrutura interna do telefone móvel 12500, de acordo com uma modalidade da presente invenção. Para controlar sistemicamente partes do telefone móvel 12500 incluindo a tela de display 12520 e o painel de operações 12540, um circuito de fornecimento de energia 12700, um controlador de entrada de operações 12640, um codificador de imagem 12720, uma interface de câmera 12630, um controlador de LCD 12620, um decodificador de imagem 12690, um multiplexor/demultiplexor 12680, um meio de gravação/leitora 12670, um modulador/demodulador 12600, e um processador de som 12650 são conectados a um controlador central 12710 através de um barramento de sincronização 12730.
[000492] Se um usuário operar um botão de energia e ajustar de um estado ‘energia desligada’ para um estado de ‘energia ligada’, o circuito de fornecimento de energia 12700 fornece energia para todas as partes do telefone móvel 12500 a partir de uma bateria, desse modo ajustando o telefone móvel 12500 em um modo de operação.
[000493] O controlador central 12710 inclui uma unidade de processamento central (CPU), uma ROM e uma RAM.
[000494] Embora o telefone móvel 12500 transmita dados de comunicação para o exterior, um sinal digital é gerado pelo telefone móvel 12500 sob controle do controlador central 12710. Por exemplo, o processador de som 12650 pode gerar um sinal de som digital, o codificador de imagem 12720 pode gerar um sinal de imagem digital, e dados de texto de uma mensagem podem ser gerados através do painel de operações 12540 e o controlador de entrada de operações 12640. Quando um sinal digital é transmitido para o modulador/demodulador 12660 sob controle do controlador central 12710, o modulador/demodulador 12660 modula uma banda de frequência do sinal digital, e um circuito de comunicação 12610 executa conversão de digital para analógico (DAC) e conversão de frequência no sinal de som digital modulado por banda de frequência. Um sinal de transmissão transmitido a partir do circuito de comunicação 12610 pode ser transmitido para uma estação base de comunicação de voz ou a estação base sem fio 12000 através da antena 12510.
[000495] Por exemplo, quando o telefone móvel 12500 está em um modo de conversa, um sinal de som obtido através do microfone 12550 é transformado em um sinal de som digital pelo processador de som 12650, sob controle do controlador central 12710. O sinal de som digital pode ser transformado em um sinal de transformação através do modulador/demodulador 12660 e o circuito de comunicação 12610, e pode ser transmitido através da antena 12510.
[000496] Quando uma mensagem de texto, por exemplo, e-mail, é transmitida em um modo de comunicação de dados, dados de texto da mensagem de texto são entrados através do painel de operações 12540 e são transmitidos para o controlador central 12710 através do controlador de entrada de operações 12640. Sob controle do controlador central 12710, os dados de texto são transformados em um sinal de transmissão através do modulador/demodulador 12660 e o circuito de comunicação 12610 e são transmitidos para a estação base sem fio 12000 através da antena 12510.
[000497] Para transmitir dados de imagem no modo de comunicação de dados, dados de imagem capturados pela câmera 126530 são fornecidos ao codificador de imagem 12720 através da interface de câmera 12630. Os dados de imagem capturados podem ser diretamente exibidos na tela de display 12520 através da interface de câmera 12630 e controlador de LCD 12620.
[000498] Uma estrutura do codificador de imagem 12720 pode corresponder aquela do método de codificação de vídeo acima descrito de acordo com a presente invenção. O codificador de imagem 12720 pode transformar os dados de imagem recebidos a partir da câmera 12530 em dados de imagem codificados e comprimidos com base no método de codificação de vídeo acima descrito de acordo com a presente invenção, e então transmitir os dados de imagem codificados para o multiplexor/demultiplexor 12680. Durante uma operação de gravação da câmera 12530, um sinal de som obtido pelo microfone 12550 do telefone móvel 12500 pode ser transformado em dados de som digital através do processador de som 12650, e os dados de som digital podem ser transmitidos para o multiplexor/demultiplexor 12680.
[000499] O multiplexor-demultiplexor 12680 multiplexa os dados de imagem codificados recebidos do codificador de imagem 12720, juntamente com os dados de som recebidos a partir do processador de som 12650. Um resultado de multiplexar os dados pode ser transformado em um sinal de transmissão através do modulador/demodulador 12660 e o circuito de comunicação 12610, e pode ser então transmitido através da antena 12510.
[000500] Embora o telefone móvel 12500 receba dados de comunicação a partir do exterior, recuperação de frequência e ADC são realizadas em um sinal recebido através da antena 12510 para transformar o sinal em um sinal digital. O modulador/demodulador 12660 modula uma banda de frequência do sinal digital. O sinal digital modulado em banda de frequência é transmitido para a unidade de decodificação de vídeo 12690, o processador de som 12650, ou o controlador LCD 12620, de acordo com o tipo do sinal digital.
[000501] No modo de conversa, o telefone móvel 12500 amplifica um sinal recebido através da antena 12510, e obtém um sinal de som digital por executar conversão de frequência e ADC no sinal amplificado. Um sinal de som digital recebido é transformado em um sinal de som analógico através do modulador/demodulador 12660 e o processador de som 12650, e o sinal de som analógico é transmitido através do alto-falante 12580, sob controle do controlador central 12710.
[000502] Quando no modo de comunicação de dados, dados de um arquivo de vídeo acessados em um website da Internet forem recebidos, um sinal recebido a partir da estação base sem fio 12000 através da antena 12510 são transmitidos como dados multiplexados através do modulador/demodulador 12660, e os dados multiplexados são transmitidos para o multiplexor/demultiplexor 12680.
[000503] Para decodificar os dados multiplexados recebidos através da antena 12510, o multiplexor/demultiplexor 12680 demultiplexa os dados multiplexados em um fluxo de dados de vídeo codificado e um fluxo de dados de áudio codificado. Através do barramento de sincronização 12730, o fluxo de dados de vídeo codificado e o fluxo de dados de áudio codificado são fornecidos para a unidade de decodificação de vídeo 12690 e o processador de som 12650, respectivamente.
[000504] Uma estrutura do decodificador de imagem 12690 pode corresponder àquela do método de decodificação de vídeo acima descrito de acordo com a presente invenção. O decodificador de imagem 12690 pode decodificar os dados de vídeo codificados para obter dados de vídeo reconstruídos e fornecer os dados de vídeo reconstruídos para a tela de display 12520 através do controlador de LCD 12620, utilizando o método de decodificação de vídeo acima descrito de acordo com a presente revelação.
[000505] Desse modo, os dados do arquivo de vídeo acessados no website da internet podem ser exibidos na tela de display 12520. Ao mesmo tempo, o processador de som 12650 pode transformar dados de áudio em um sinal de som analógico, e fornecer o sinal de som analógico para o alto-falante 12580. Desse modo, dados de áudio contidos no arquivo de vídeo acessado no website da internet podem ser também reproduzidos através do alto-falante 12580.
[000506] O telefone móvel 12500 ou outro tipo de terminal de comunicação pode ser um terminal transceptor que inclui tanto um aparelho de codificação de vídeo como um aparelho de decodificação de vídeo de acordo com uma modalidade da presente invenção, pode ser um terminal transceptor incluindo somente o aparelho de codificação de vídeo, ou pode ser um terminal transceptor que inclui somente o aparelho de decodificação de vídeo.
[000507] Um sistema de comunicação de acordo com a presente invenção não é limitado ao sistema de comunicação descrito acima com referência à figura 24. Por exemplo, a figura 26 ilustra um sistema de broadcasting digital que emprega um sistema de comunicação, de acordo com uma modalidade da presente invenção. O sistema de broadcasting digital da figura 26 pode receber um broadcast digital transmitido através de um satélite ou uma rede terrestre utilizando um aparelho de codificação de vídeo e um aparelho de decodificação de vídeo de acordo com modalidades da presente revelação.
[000508] Em particular, uma estação de broadcasting 12890 transmite um fluxo de dados de vídeo para um satélite de comunicação ou um satélite de broadcasting 12900 utilizando ondas de rádio. O satélite de broadcasting 12900 transmite um sinal broadcast, e o sinal broadcast é transmitido para um receptor de broadcast de satélite através de uma antena doméstica 12860. Em toda casa, um fluxo de vídeo codificado pode ser decodificado e reproduzido por um receptor de TV 12810, um conversor de sinais de frequência 12870 ou outro dispositivo.
[000509] Quando um aparelho de decodificação de vídeo de acordo com uma modalidade da presente invenção é implementado em um aparelho de reprodução 12830, o aparelho de reprodução 12830 pode analisar e decodificar um fluxo de vídeo codificado gravado em um meio de armazenagem 12820, como um disco ou um cartão de memória para reconstruir sinais digitais. Desse modo, o sinal de vídeo reconstruído pode ser reproduzido, por exemplo, em um monitor 12840.
[000510] No conversor de sinais de frequência 12870 conectado à antena 12860 para um broadcast terrestre/satélite ou uma antena a acabo 12850 para receber um broadcast de televisão a cabo (TV), um aparelho de decodificação de vídeo de acordo com uma modalidade da presente invenção pode ser instalado. Dados transmitidos a partir do conversor de sinais de frequência 12870 também podem ser reproduzidos em um monitor de TV 12880.
[000511] Como outro exemplo, um aparelho de decodificação de vídeo de acordo com uma modalidade da presente invenção pode ser instalado no receptor de TV 12810 ao invés do conversor de sinais de frequência 12870.
[000512] Um automóvel 12920 que tem uma antena apropriada 12910 pode receber um sinal transmitido do satélite 12900 ou a estação base sem fio 11700 da figura 21. Um vídeo decodificado pode ser reproduzido em uma tela de display de um sistema de navegação de automóvel 12930 instalado no automóvel 12920.
[000513] Um sinal de vídeo pode ser codificado por um aparelho de codificação de vídeo de acordo com uma modalidade da presente invenção e pode ser então armazenado em um meio de armazenagem. Especificamente, um sinal de imagem pode ser armazenado em um disco DVD 12960 por um meio de gravação de DVD ou pode ser armazenado em um disco rígido por um gravador de disco rígido 12950. Como outro exemplo, o sinal de vídeo pode ser armazenado em um cartão SD 12970. Se o gravador de disco rígido 12950 incluir um aparelho de decodificação de vídeo de acordo com uma modalidade da presente invenção, um sinal de vídeo gravado no disco DVD 12960, o cartão SD 12970, ou outro meio de armazenagem pode ser reproduzido no monitor de TV 12880.
[000514] O sistema de navegação de automóvel 12930 pode não incluir a câmera 12530 da figura 24, e a interface de câmera 12630 e o codificador de imagem 12720 da figura 25. Por exemplo, o computador 12100 e o receptor de TV 12810 podem não incluir a câmera 12530, a interface de câmera 12630 e o codificador de imagem 12720.
[000515] A figura 27 é um diagrama que ilustra uma estrutura de rede de um sistema de computação de cloud utilizando um aparelho de codificação de vídeo e um aparelho de decodificação de vídeo, de acordo com modalidades da presente revelação.
[000516] O sistema de computação de cloud pode incluir um servidor de computação de cloud 14000, um banco de dados de usuário (DB) 14100, uma pluralidade de recursos de computação 14200 e um terminal de usuário.
[000517] O sistema de computação de cloud provê um serviço de outsourcing sob demanda da pluralidade de recursos de computação 14200 através de uma rede de comunicação de dados, por exemplo, a Internet, em resposta a uma solicitação a partir do terminal de usuário. Sob um ambiente de computação de cloud, um provedor de serviço provê aos usuários serviços desejados por combinar recursos de computação em centros de dados localizados em locais fisicamente diferentes por utilizar tecnologia de virtualização. Um usuário de serviço não tem de instalar recursos de computação, por exemplo, um aplicativo, uma armazenagem, um sistema operacional (OS), e segurança, em seu próprio terminal para utilizar os mesmos, porém pode selecionar e utilizar serviços desejados entre serviços em um espaço virtual gerado através da tecnologia de virtualização em um ponto desejado em tempo.
[000518] Um terminal de usuário de um usuário de serviço especificado é conectado ao servidor de computação de cloud 14000 através de uma rede de comunicação de dados incluindo a internet e uma rede de telecomunicação móvel. Terminais de usuário podem ser fornecidos serviços de computação de cloud, e particularmente serviços de reprodução de vídeo, a partir do servidor de computação de cloud 14000. Os terminais de usuário podem ser vários tipos de dispositivos eletrônicos capazes de ser conectados a internet, por exemplo, um PC de mesa 14300, uma TV inteligente 14400, um smart phone 14500, um computador notebook 14600, um tocador de multimídia portátil (PMP) 14700, um PC tablet 14800 e similar.
[000519] O servidor de computação de cloud 14000 pode combinar a pluralidade de recursos de computação 14200 distribuídos em uma rede de cloud e fornecer aos terminais de usuário um resultado de combinação. A pluralidade de recursos de computação 14200 pode incluir vários serviços de dados, e pode incluir dados uploaded a partir de terminais de usuário. Como descrito acima, o servidor de computação de cloud 14000 pode fornecer aos terminais de usuário serviços desejados por combinar banco de dados de vídeo distribuído em regiões diferentes de acordo com a tecnologia de virtualização.
[000520] Informações de usuário sobre usuários que subscreveram para um serviço de computação de cloud são armazenadas no DB de usuário 14100. As informações de usuário podem incluir informações de registro, endereços, nomes e informações de crédito pessoal dos usuários. As informações de usuário podem incluir ainda índices de vídeos. Aqui, os índices podem incluir uma lista de vídeos que já foram reproduzidos, uma lista de vídeos que estão sendo reproduzidos, um ponto de pausar de um vídeo que estava sendo reproduzido e similar.
[000521] Informações sobre um vídeo armazenado no DB de usuário 14100 podem ser compartilhadas entre dispositivos de usuário. Por exemplo, quando um serviço de vídeo é fornecido ao computador notebook 14600 em resposta a uma solicitação a partir do computador notebook 14600, um histórico de reprodução do serviço de vídeo é armazenado no DB de usuário 14100. Quando uma solicitação para reproduzir esse serviço de vídeo é recebida a partir do smart phone 14500, o servidor de computação de cloud 1400 procura e reproduz esse serviço de vídeo, com base no DB de usuário 14100. Quando o smart phone 14500 recebe um fluxo de dados de vídeo a partir do servidor de computação de cloud 1400, um processo de reproduzir vídeo por decodificar o fluxo de dados de vídeo é similar a uma operação do telefone móvel 12500 descrito acima com referência a figura 24.
[000522] O servidor de computação de cloud 14000 pode se referir a um histórico de reprodução de um serviço de vídeo desejado, armazenado no DB do usuário 14100. Por exemplo, o servidor de computação de cloud 14000 recebe uma solicitação para reproduzir um vídeo armazenado no DB de usuário 14100, a partir de um terminal de usuário. Se esse vídeo estava sendo reproduzido, então um método de streaming esse vídeo, realizado pelo servidor de computação de cloud 14000, pode variar de acordo coma solicitação a partir do terminal de usuário, isto é, de acordo com se o vídeo será reproduzido, começando de um início do mesmo ou um ponto de pausa do mesmo. Por exemplo, se o terminal de usuário solicitar a reprodução do vídeo, começando a partir do início do mesmo, o servidor de computação de cloud 14000 transmite dados de streaming do vídeo começando a partir de um primeiro quadro do mesmo para o terminal de usuário. Se o terminal de usuário solicitar a reprodução do vídeo, começando a partir do ponto de pausa do mesmo, o servidor de computação de cloud 14000 transmite dados de streaming do vídeo começando a partir de um quadro correspondendo ao ponto de pausa, para o terminal de usuário.
[000523] Nesse caso, o terminal de usuário pode incluir um aparelho de decodificação de vídeo como descrito acima com referência às figuras 1A até 20. Como outro exemplo, o terminal de usuário pode incluir um aparelho de codificação de vídeo como descrito acima com referência às figuras 1A até 20. Alternativamente, o terminal de usuário pode incluir tanto o aparelho de decodificação de vídeo como o aparelho de codificação de vídeo como descrito acima com referência às figuras 1A até 20.
[000524] Várias aplicações de um método de codificação de vídeo, um método de decodificação de vídeo, um aparelho de codificação de vídeo, e um aparelho de decodificação de vídeo de acordo com modalidades da presente invenção descrita acima com referência às figuras 1A até 20 foram descritas acima com referência às figuras 21 a 27. Entretanto, os métodos de armazenar o método de codificação de vídeo e o método de decodificação de vídeo em um meio de armazenagem ou métodos de implementar o aparelho de codificação de vídeo e o aparelho de decodificação de vídeo em um dispositivo, de acordo com várias modalidades da presente invenção, não são limitados às modalidades descritas acima com referência às figuras 21 a 27.
[000525] No presente relatório descritivo, uma expressão “A pode incluir um de a1, a2 e a3” significa amplamente que um sub elemenot exemplar do elemento A é a1, a2 ou a3.
[000526] A expressão acima não limita um sub elemento do elemento A a a1, a2 ou a3. Portanto, deve ser observado que a expressão acima não deve ser interpretada como excluindo elementos diferentes de a1, a2 e a3 a partir dos sub elementos do elemento A.
[000527] Também, a expressão acima significa que o elemenot A pode incluir a1, pode incluir a2 ou pode incluir a3. A expressão acima não significa que sub elementos do elemenot A sejam seletivamente determinados em certo grupo. Por exemplo, deve ser observado que a expressão acima não deve ser interpretada de modo que a1, a2 ou a3 selecionado do grupo que consiste em a1, a2 e a3 forme o elemento A.
[000528] Além disso, no presente relatório descritivo, uma expressão “pelo menos um de a1, a2 e a3” indica um de a1; a2; a3; a1 e a2; a1 e a3; a2 e a3; e a1, a2 e a3.
[000529] Portanto, deve ser observado que a menos que definido como “pelo menos um de a1, pelo menos um de a2, ou (e) pelo menos um de a3” expressão “pelo menos um de a1, a2 e a3” não é interprestada como “pelo menos um da a1, pelo menos um de a2 ou (e) pelo menos um de a3”.
[000530] As modalidades de acordo com a presente revelação podem ser gravadas como programas de computador e podem ser implementadas em computadores digitais de uso geral que executam os programas utilizando um meio de gravação legível em computador. Os exemplos do meio de gravação legível em computador incluem mídia de armazenagem magnética (por exemplo, ROM, discos flexíveis, discos rígidos, etc.) e mídia de gravação óptica (por exemplo, CD-ROMs, ou DVDs).
[000531] Embora a presente revelação tenha sido particularmente mostrada e descrita com referência a modalidades exemplares da mesma, será entendido por uma pessoa com conhecimentos comuns na técnica que várias alterações em forma e detalhes podem ser feitas na mesma sem se afastar do espírito e escopo da invenção como definido pelas reivindicações a seguir. As modalidades exemplares devem ser consideradas em um sentido descritivo somente e não para fins de limitação. Portanto, o escopo da invenção é definido não pela descrição detalhada da revelação, porém pelas reivindicações a seguir, e todas as diferenças no escopo serão interpretadas como sendo incluídas na presente revelação.

Claims (3)

1. APARELHO PARA UMA DECODIFICAÇÃO DE DESLOCAMENTO ADAPTATIVO DE AMOSTRA (SAO), o aparelho caracterizado por compreender: um dispositivo de obtenção para obter informação de fusão de SAO esquerda codificada em contexto e informação de fusão de SAO ascendente codificada em contexto de um fluxo de bits de uma unidade de codificação máxima (MCU), obter informação de liga/desliga SAO a partir da informação do tipo SAO da MCU, mediante executar decodificação de contexto no fluxo de bits; e obter informação de valor de deslocamento absoluto da MCU mediante executar decodificação de desvio no fluxo de bits em resposta a determinar que a informação de liga/desliga SAO indica realizar a operação SAO; e reconstrutor configurado para produzir um bloco reconstruído de MCU mediante aplicação da informação de valor de deslocamento absoluto para amostras reconstruídas da MCU, sendo que em resposta à determinação de que a informação tipo SAO indica um tipo de deslocamento de banda, o dispositivo de obtenção sendo configurado para obter uma informação de posição de banda da MCU mediante executar decodificação de desvio no fluxo de bits, e o reconstrutor ser configurado para produzir o bloco reconstruído da MCU mediante aplicação da informação de valor de deslocamento absoluto correspondendo à informação de posição de banda para as amostras reconstruídas da MCU; em resposta a determinar que a informação de tipo SAO indica um tipo de deslocamento de borda, o dispositivo de obtenção é configurado para obter informação de classe de borda da MCU mediante executar decodificação de desvio no fluxo de bits, e o reconstrutor é configurado para produzir o bloco reconstruído de MCU mediante aplicação da informação de valor de deslocamento absoluto correspondendo a informação de classe de borda às amostras reconstruídas da MCU; a informação do tipo SAO inclui primeira de informação do tipo SAO para componentes de luma da MCU e segunda informação do tipo SAO para componentes de croma da MCU, e a segunda informação do tipo SAO é obtida para componentes Cr da MCU a partir do fluxo de bits, e a segunda informação do tipo SAO é usada para componentes Cb da MCU.
2. MÉTODO DE UMA CODIFICAÇÃO DE DESLOCAMENTO ADAPTATIVO DE AMOSTRA (SAO), o método sendo caracterizado por compreender: gerar uma informação de tipo SAO de uma unidade de codificação máxima (MCU) incluindo informação de liga/desliga SAO gerada mediante a execução de codificação de contexto na informação de liga/desliga SAO indicando se se a operação SAO é realizada na MCU; executar codificação de desvio na informação de valor de deslocamento absoluto gerada para executar operação SAO da MCU; e quando a operação SAO é executada na MCU e a informação de tipo SAO é gerada de acordo com um tipo de deslocamento de banda, executar codificação de desvio na informação de posição de banda da MCU, na qual a informação de valor de deslocamento absoluto corresponde a informação de posição de banda; quando a operação SAO é executada na MCU e a informação de tipo SAO é gerada de acordo com um tipo de deslocamento de borda, executar codificação de desvio na informação de classe de borda da MCU, na qual a informação de valor de deslocamento absoluto corresponde a informação de classe de borda; sendo que a informação do tipo SAO inclui primeira de informação do tipo SAO para componentes de luma da MCU e segunda informação do tipo SAO para componentes de croma da MCU, e a segunda informação do tipo SAO é gerada para componentes Cr da MCU a partir do fluxo de bits, e a segunda informação do tipo SAO é codificada para componentes Cb da MCU.
3. APARELHO PARA UMA CODIFICAÇÃO DE DESLOCAMENTO ADAPTATIVO DE AMOSTRA (SAO), o aparelho sendo caracterizado por compreender: um determinador de parâmetro SAO configurado para determinar informação de valor de deslocamento absoluto gerada para executar operação SAO de uma unidade de codificação máxima (MCU); e um codificador de entropia configurado para gerar informação de tipo SAO da MCU incluindo informação de liga/desliga SAO gerada mediante a execução de codificação de contexto na informação de liga/desliga SAO indicando se se a operação SAO é realizada na MCU; e executar codificação de desvio na informação de valor de deslocamento absoluto; na qual, quando a operação SAO é executada na MCU e a informação de tipo SAO é gerada de acordo com um tipo de deslocamento de banda, o codificador de entropia é configurado para executar codificação de desvio na informação de posição de banda da MCU, na qual a informação de valor de deslocamento absoluto corresponde a informação de posição de banda; quando a operação SAO é executada na MCU e a informação de tipo SAO é gerada de acordo com um tipo de deslocamento de borda, o codificador de entropia é configurado para executar codificação de desvio na informação de classe de borda da MCU, a informação de valor de deslocamento absoluto corresponde a informação de classe de borda; a informação do tipo SAO inclui primeira de informação do tipo SAO para componentes de luma da MCU e segunda informação do tipo SAO para componentes de croma da MCU, e a segunda informação do tipo SAO é gerada para componentes Cr da MCU a partir do fluxo de bits, e a segunda informação do tipo SAO é codificada para componentes Cb da MCU.
BR122019027914-4A 2012-07-16 2013-07-16 aparelho para uma decodificação de deslocamento adaptativo de amostra (sao), método de uma codificação de deslocamento adaptativo de amostra (sao), e aparelho para uma codificação de deslocamento adaptativo de amostra (sao) BR122019027914B1 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261672166P 2012-07-16 2012-07-16
US61/672,166 2012-07-16
PCT/KR2013/006343 WO2014014251A1 (ko) 2012-07-16 2013-07-16 Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
BR112015001111-0A BR112015001111B1 (pt) 2012-07-16 2013-07-16 método de decodificação de desvio adaptativo de amostra (sao)

Publications (1)

Publication Number Publication Date
BR122019027914B1 true BR122019027914B1 (pt) 2021-06-08

Family

ID=49949026

Family Applications (2)

Application Number Title Priority Date Filing Date
BR122019027914-4A BR122019027914B1 (pt) 2012-07-16 2013-07-16 aparelho para uma decodificação de deslocamento adaptativo de amostra (sao), método de uma codificação de deslocamento adaptativo de amostra (sao), e aparelho para uma codificação de deslocamento adaptativo de amostra (sao)
BR112015001111-0A BR112015001111B1 (pt) 2012-07-16 2013-07-16 método de decodificação de desvio adaptativo de amostra (sao)

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112015001111-0A BR112015001111B1 (pt) 2012-07-16 2013-07-16 método de decodificação de desvio adaptativo de amostra (sao)

Country Status (16)

Country Link
US (5) US9787992B2 (pt)
EP (1) EP2874391A4 (pt)
JP (2) JP6382807B2 (pt)
KR (1) KR102165855B1 (pt)
CN (6) CN108055544B (pt)
AU (3) AU2013290950B2 (pt)
BR (2) BR122019027914B1 (pt)
CA (2) CA3029323C (pt)
MX (2) MX346795B (pt)
MY (3) MY201685A (pt)
PH (5) PH12015500121A1 (pt)
RU (3) RU2675154C1 (pt)
SG (2) SG10201703660TA (pt)
TW (3) TWI625962B (pt)
WO (1) WO2014014251A1 (pt)
ZA (1) ZA201501039B (pt)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9253482B2 (en) * 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
EP2858354B1 (en) 2012-05-25 2022-12-21 Sun Patent Trust Video image coding method, video image decoding method, video image coding device, video image decoding device, and video image coding-decoding device
WO2013175736A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
EP2858357B1 (en) 2012-06-04 2022-07-06 Sun Patent Trust Video image encoding method, video image decoding method
AU2013272989B2 (en) 2012-06-08 2017-05-25 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
CN108235014B (zh) * 2012-06-27 2020-08-14 太阳专利托管公司 图像编码方法和图像编码装置
US9510002B2 (en) 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
CN104980747B (zh) * 2014-04-04 2019-08-09 北京三星通信技术研究有限公司 对像素标识进行处理的方法和装置
WO2016056977A1 (en) 2014-10-06 2016-04-14 Telefonaktiebolaget L M Ericsson (Publ) Coding and deriving quantization parameters
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
CN106254888B (zh) 2015-06-09 2020-06-02 同济大学 一种图像编码及解码方法、图像处理设备
US20170155905A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Efficient intra video/image coding using wavelets and variable size transform coding
US10602187B2 (en) 2015-11-30 2020-03-24 Intel Corporation Efficient, compatible, and scalable intra video/image coding using wavelets and HEVC coding
CN109997365A (zh) * 2016-11-29 2019-07-09 夏普株式会社 用信号通知评级信息
JP6904156B2 (ja) 2017-08-10 2021-07-14 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
CN107707915B (zh) * 2017-09-30 2019-11-12 上海兆芯集成电路有限公司 采样点自适应偏移滤波的控制方法及其影像处理系统
WO2019075638A1 (zh) * 2017-10-17 2019-04-25 北京金山云网络技术有限公司 编码和解码方法、装置、编码器、解码器及存储介质
CN108235021B (zh) * 2018-01-10 2020-06-19 北京奇艺世纪科技有限公司 一种band模式确定方法及装置
GB2574425A (en) * 2018-06-05 2019-12-11 Canon Kk Video coding and decoding
CN112889278B (zh) * 2018-09-17 2024-04-05 三星电子株式会社 用于编码和解码运动信息的方法及用于编码和解码运动信息的装置
SG11202107547YA (en) 2019-01-11 2021-08-30 Huawei Tech Co Ltd Encoder, decoder and corresponding methods using dct2 enabled high level flag
US11949870B2 (en) * 2019-06-21 2024-04-02 Qualcomm Incorporated Context modeling for low-frequency non-separable transformation signaling for video coding
CN112135149B (zh) * 2019-06-24 2023-07-18 华为技术有限公司 语法元素的熵编码/解码方法、装置以及编解码器
US20220107738A1 (en) * 2020-10-06 2022-04-07 Kioxia Corporation Read controller and input/output controller
CN114363613B (zh) * 2022-01-10 2023-11-28 北京达佳互联信息技术有限公司 滤波方法和滤波装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468844B1 (ko) * 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
KR100703776B1 (ko) * 2005-04-19 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 컨텍스트 기반 적응적 산술 코딩및 디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오코딩 및 디코딩 방법과 이를 위한 장치
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
WO2009089032A2 (en) * 2008-01-10 2009-07-16 Thomson Licensing Methods and apparatus for illumination compensation of intra-predicted video
US8031959B2 (en) * 2008-02-22 2011-10-04 Himax Technologies Limited Compression system for a bit-plane
TWI365423B (en) * 2008-03-17 2012-06-01 Chunghwa Picture Tubes Ltd Compression method and decompression method for image data
KR101314230B1 (ko) * 2008-07-18 2013-10-04 삼성전자주식회사 화상처리장치 및 그 화상처리방법
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
JP5133950B2 (ja) 2009-07-16 2013-01-30 日本電信電話株式会社 コンテクスト適応エントロピ符号化方法および装置,コンテクスト適応エントロピ復号方法および装置,並びにそれらのプログラム
US9078009B2 (en) * 2010-02-19 2015-07-07 Skype Data compression for video utilizing non-translational motion information
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US8660174B2 (en) * 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US8861617B2 (en) * 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
US9813738B2 (en) * 2010-10-05 2017-11-07 Hfi Innovation 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
CN103392338A (zh) 2011-01-03 2013-11-13 联发科技股份有限公司 基于滤波单元的回路滤波方法
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 寰发股份有限公司 已处理视频数据的样本自适应补偿的方法和装置
CN103597827B (zh) * 2011-06-10 2018-08-07 寰发股份有限公司 可伸缩视频编码方法及其装置
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
US9031137B2 (en) * 2012-05-03 2015-05-12 Texas Instruments Incorporated Signaling signed band offset values for sample adaptive offset (SAO) filtering in video coding
AU2013272989B2 (en) * 2012-06-08 2017-05-25 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US10623759B2 (en) * 2012-06-13 2020-04-14 Sony Corporation Decoupling enhancements in sample adaptive offset (SAO) for high efficiency video encoder (HEVC)
KR102166335B1 (ko) * 2013-04-19 2020-10-15 삼성전자주식회사 Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Also Published As

Publication number Publication date
US10277903B2 (en) 2019-04-30
AU2018201330A1 (en) 2018-03-15
CN104641640B (zh) 2018-04-20
US20180035114A1 (en) 2018-02-01
CN108055545B (zh) 2020-09-08
MY201685A (en) 2024-03-13
US10362313B2 (en) 2019-07-23
JP2015528250A (ja) 2015-09-24
BR112015001111B1 (pt) 2021-03-09
MY184416A (en) 2021-04-01
AU2017200150A1 (en) 2017-02-02
AU2018201330B2 (en) 2019-02-07
CN108235036A (zh) 2018-06-29
MX2015000763A (es) 2015-04-16
TWI625962B (zh) 2018-06-01
US20180041761A1 (en) 2018-02-08
SG11201500363QA (en) 2015-03-30
CN108055544B (zh) 2020-09-08
SG10201703660TA (en) 2017-06-29
KR20140011473A (ko) 2014-01-28
PH12017502273A1 (en) 2018-07-30
MX368355B (es) 2019-09-30
RU2701080C1 (ru) 2019-09-24
TW201709737A (zh) 2017-03-01
JP2018152883A (ja) 2018-09-27
PH12017502268A1 (en) 2018-06-11
US20180014020A1 (en) 2018-01-11
US10021399B2 (en) 2018-07-10
CA3029323A1 (en) 2014-01-23
MY171481A (en) 2019-10-15
RU2643658C2 (ru) 2018-02-02
RU2675154C1 (ru) 2018-12-17
US9787992B2 (en) 2017-10-10
TWI656786B (zh) 2019-04-11
EP2874391A1 (en) 2015-05-20
US20150181214A1 (en) 2015-06-25
PH12017502274A1 (en) 2018-06-11
EP2874391A4 (en) 2016-03-09
PH12015500121B1 (en) 2015-03-16
AU2013290950A1 (en) 2015-03-05
CA2879440C (en) 2018-10-23
CN104641640A (zh) 2015-05-20
US20180035115A1 (en) 2018-02-01
WO2014014251A1 (ko) 2014-01-23
PH12015500121A1 (en) 2015-03-16
ZA201501039B (en) 2019-07-31
KR102165855B1 (ko) 2020-10-15
US10356421B2 (en) 2019-07-16
PH12017502271A1 (en) 2018-06-11
CN108235036B (zh) 2020-10-09
CN108055546B (zh) 2020-09-22
RU2015104987A (ru) 2016-09-10
MX346795B (es) 2017-03-31
JP6382807B2 (ja) 2018-08-29
CA3029323C (en) 2020-03-24
AU2017200150B2 (en) 2017-12-07
CN108055545A (zh) 2018-05-18
CA2879440A1 (en) 2014-01-23
AU2013290950B2 (en) 2016-10-20
BR112015001111A2 (pt) 2017-06-27
CN108235030B (zh) 2020-10-09
TW201826798A (zh) 2018-07-16
TW201415907A (zh) 2014-04-16
TWI568248B (zh) 2017-01-21
CN108235030A (zh) 2018-06-29
CN108055546A (zh) 2018-05-18
CN108055544A (zh) 2018-05-18

Similar Documents

Publication Publication Date Title
AU2017265158B2 (en) Method and apparatus for encoding videos sharing sao parameter according to color component
AU2018201330B2 (en) Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus for signaling sao parameters
BR122019019874B1 (pt) Método de decodificação de vídeo
BR122015024099B1 (pt) Método de decodificação de vídeo
AU2015202634C1 (en) Video encoding method using offset adjustment according to classification of pixels by maximum encoding units and apparatus thereof, and video decoding method and apparatus thereof

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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