BR112014030935B1 - Método de ajuste de deslocamento adaptativo de amostra (sao) - Google Patents

Método de ajuste de deslocamento adaptativo de amostra (sao) Download PDF

Info

Publication number
BR112014030935B1
BR112014030935B1 BR112014030935-3A BR112014030935A BR112014030935B1 BR 112014030935 B1 BR112014030935 B1 BR 112014030935B1 BR 112014030935 A BR112014030935 A BR 112014030935A BR 112014030935 B1 BR112014030935 B1 BR 112014030935B1
Authority
BR
Brazil
Prior art keywords
sao
information
current
encoding
lcu
Prior art date
Application number
BR112014030935-3A
Other languages
English (en)
Other versions
BR112014030935A8 (pt
BR112014030935A2 (pt
Inventor
Elena Alshina
Alexander Alshin
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 BR112014030935A2 publication Critical patent/BR112014030935A2/pt
Publication of BR112014030935A8 publication Critical patent/BR112014030935A8/pt
Publication of BR112014030935B1 publication Critical patent/BR112014030935B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • 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/46Embedding additional information in the video signal during the compression process

Abstract

MÉTODO DECODIFICADOR DE VÍDEO. Trata-se de um método e aparelho codificador de vídeo, e um método e aparelho decodificador de vídeo, para gerar uma imagem reconstruída tendo um erro minimizado entre uma imagem original e a imagem reconstruída. O método decodificador de vídeo acompanhado por um ajuste de deslocamento adaptável de amostra (SAO), o método incluindo: obter parâmetros de SAO em fatia, no que diz respeito a uma fatia atual de um cabeçalho de fatias de um fluxo de bits recebido; obter informações sobre uso de SAO de luminância para um componente de luminância da fatia atual e informações sobre uso de SAO de crominância para componentes de crominância associados dentre os parâmetros de SAO em fatia; determinar se é para realizar uma operação de SAO no componente de luminância da fatia atual baseado nas informações obtidas sobre uso de SAO de luminância; e determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e um segundo componente de crominância da fatia atual com base nas informações obtidas sobre uso de SAO de crominância.

Description

[0001] As uma ou mais formas de realização se referem à codificação e decodificação de vídeo para minimizar um erro entre uma imagem original e uma imagem reconstruída.
FUNDAMENTOS DA TÉCNICA
[0002] Como hardware para reprodução e armazenamento de conteúdo de vídeo de alta resolução ou de alta qualidade vídeo está sendo desenvolvido e fornecido, uma necessidade de um codec de vídeo para efetivamente codificar ou decodificar o conteúdo de vídeo de alta resolução ou de alta qualidade está aumentando. De acordo com um codec de vídeo convencional, um vídeo é codificado, de acordo com um método de codificação limitado, com base em um bloco macro tendo um tamanho predeterminado.
[0003] Dados de imagem do domínio espacial são transformados em coeficientes do domínio de frequência através da transformação de frequência. De acordo com um codec de vídeo, uma imagem é dividida em blocos tendo um tamanho predeterminado, a transformação discreta de cosseno (DCT) é executada em cada bloco e coeficientes de frequência são codificados em unidades de bloco, para o cálculo rápido de transformação de frequência. Em comparação com dados de imagem do domínio espacial, coeficientes do domínio de frequência são facilmente compactados. Em particular, uma vez que um valor de pixel de imagem do domínio espacial é expresso, de acordo com um erro de previsão, via previsão inter ou previsão intra, de um codec de vídeo, quando a transformação de frequência for realizada no erro de previsã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, substituindo dados, que são consecutiva e repetidamente, gerados, por dados de pequeno tamanho.
DIVULGAÇÃO DA INVENÇÃO PROBLEMA TÉCNICO
[0004] As uma ou mais formas de realização fornecem um método e aparelho codificador de vídeo e um método e aparelho decodificador de vídeo para gerar uma imagem reconstruída tendo um erro minimizado entre uma imagem original e a imagem reconstruída.
SOLUÇÃO TÉCNICA
[0005] De acordo com um aspecto das uma ou mais formas de realização, é fornecido um método de ajuste de deslocamento adaptável de amostra (SAO), o método incluindo: obter parâmetros de SAO em fatia, no que diz respeito a uma fatia atual de um cabeçalho de fatias de um fluxo de bits recebido; obter informações sobre uso de SAO de luminância para um componente de luminância da fatia atual e informações sobre uso de SAO de crominância para componentes de crominância associados, dentre os parâmetros de SAO em fatia; determinar, se é para realizar uma operação de SAO no componente de luminância da fatia atual, com base nas informações obtidas sobre uso de SAO de luminância; e determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e um segundo componente de crominância da fatia atual, com base nas informações obtidas sobre uso de SAO de crominância.
EFEITOS VANTAJOSOS
[0006] Um método de ajuste de deslocamento adaptável de amostra (SAO) para cada componente de cor, de acordo com várias formas de realização, pode compartilhar vários parâmetros de SAO relativos a uma operação de SAO de um primeiro componente de crominância e de um segundo componente de crominância de uma amostra atual, executando, desse modo, simultaneamente, o ajuste de SAO no primeiro componente de crominância e no segundo componente de crominância, e impedindo, com antecedência, a latência do processamento paralelo. Além disso, em comparação com envio, em separado, de parâmetros de SAO sobre o primeiro componente de crominância e o segundo componente de crominância, um número total de bits de transmissão dos parâmetros de SAO pode ser reduzido pela metade.
BREVE DESCRIÇÃO DOS DESENHOS
[0007] As Figs. 1A e 1B, respectivamente, são um diagrama de blocos de um aparelho codificador de vídeo e um fluxograma de um método de ajuste de deslocamento adaptável de amostra (SAO), realizado pelo aparelho codificador de vídeo, de acordo com uma ou mais formas de realização;
[0008] As Figs. 2A e 2B, respectivamente, são um diagrama de blocos de um aparelho decodificador de vídeo e um fluxograma de uma operação de SAO executada pelo aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização;
[0009] A Fig. 3 é um diagrama de blocos de um aparelho decodificador de vídeo, de acordo com outra forma de realização;
[00010] A Fig. 4 é uma tabela que mostra as classes de borda de tipos de borda, de acordo com uma ou mais formas de realização;
[00011] As Figs. 5A e 5B são uma tabela e um gráfico mostrando categorias de tipos de borda, de acordo com uma ou mais formas de realização;
[00012] As Figs. 6A a 6C mostram relações entre primeiro e segundo componentes de crominância;
[00013] A Fig. 7A é um diagrama que mostra maiores unidades de codificação adjacentes (LCUs), destinadas a mesclar parâmetros de SAO, de acordo com uma ou mais formas de realização;
[00014] A Fig. 7B mostra estruturas de sintaxe de um cabeçalho de fatias e dados de fatias, de acordo com uma ou mais formas de realização;
[00015] As Figs. 7C e 7D mostram estruturas de sintaxe de parâmetros de SAO com relação às LCUs, de acordo com uma ou mais formas de realização;
[00016] A Fig. 7E mostra uma estrutura de sintaxe de informações de contexto para codificação aritmética de binário adaptável ao contexto (CABAC), codificação de parâmetros de SAO, de acordo com uma ou mais formas de realização;
[00017] A Fig. 7F mostra uma estrutura de sintaxe de parâmetros de SAO com relação aos tipos de SAO, de acordo com uma ou mais formas de realização;
[00018] A Fig. 8 é um diagrama de blocos de um aparelho codificador de vídeo, com base em unidades de codificação, de acordo com uma estrutura em árvore, de acordo com uma ou mais formas de realização;
[00019] A Fig. 9 é um diagrama de blocos de um aparelho decodificador de vídeo, com base em unidades de codificação, de acordo com uma estrutura em árvore, de acordo com uma ou mais formas de realização;
[00020] A Fig. 10 é um diagrama para descrever um conceito de unidades de codificação, de acordo com uma ou mais formas de realização;
[00021] A Fig. 11 é um diagrama de blocos de um codificador de imagens com base em unidades de codificação, de acordo com uma ou mais formas de realização;
[00022] A Fig. 12 é um diagrama de blocos de um decodificador de imagens, com base nas unidades de codificação, de acordo com uma ou mais formas de realização;
[00023] A Fig. 13 é um diagrama ilustrando as unidades de codificação mais profundas, de acordo com profundidades e partições, de acordo com uma ou mais formas de realização;
[00024] A Fig. 14 é um diagrama para descrever uma relação entre uma unidade de codificação e unidades de transformação, de acordo com uma ou mais formas de realização;
[00025] A Fig. 15 é um diagrama para descrever informações de codificação de unidades de codificação que correspondem a uma profundidade codificada, de acordo com uma ou mais formas de realização;
[00026] A Fig. 16 é um diagrama das unidades de codificação mais profundas, de acordo com profundidades, de acordo com uma ou mais formas de realização;
[00027] As Figs. 17 a 19 são diagramas para descrever uma relação entre unidades de codificação, unidades de previsão e unidades de transformação, de acordo com uma ou mais formas de realização;
[00028] A Fig. 20 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de previsão e uma unidade de transformação, de acordo com a informação do modo de codificação da Tabela 1;
[00029] A Fig. 21 é um diagrama de uma estrutura física de um disco, em que um programa é armazenado, de acordo com uma ou mais formas de realização;
[00030] A Fig. 22 é um diagrama de uma unidade de disco para gravar e ler um programa usando um disco;
[00031] A Fig. 23 é um diagrama de uma estrutura completa de um sistema alimentador de conteúdo para fornecer um serviço de distribuição de conteúdo;
[00032] As Fig. 24 e 25 são, respectivamente, diagramas de uma estrutura externa e uma estrutura interna de um telefone móvel, ao qual um método para codificação de vídeo e um método para decodificação de vídeo são aplicados, de acordo com uma ou mais formas de realização;
[00033] A Fig. 26 é um diagrama de um sistema de radiodifusão digital, ao qual um sistema de comunicação é aplicado, de acordo com uma ou mais formas de realização; e
[00034] A Fig. 27 é um diagrama ilustrando uma estrutura de rede de um sistema de computação em nuvem usando um aparelho codificador de vídeo e um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização.
MELHOR MODO PARA REALIZAÇÃO DA INVENÇÃO
[00035] De acordo com um aspecto de uma ou mais formas de realização, é fornecido um método de ajuste de deslocamento adaptável de amostra (SAO), o método incluindo: obter parâmetros de SAO em fatia, no que diz respeito a uma fatia atual a partir de um cabeçalho de fatias de um fluxo de bits recebido; obter informações sobre uso de SAO de luminância para um componente de luminância da fatia atual e informações sobre uso de SAO de crominância para componentes de crominância associados dentre os parâmetros de SAO em fatia; determinar, se é para realizar uma operação de SAO no componente de luminância da fatia atual, com base nas informações obtidas sobre uso de SAO de luminância; e determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e em um segundo componente de crominância da fatia atual, com base nas informações obtidas sobre uso de SAO de crominância.
[00036] O método pode ainda incluir: obter parâmetros de SAO das maiores unidades de codificação (LCUs), no que diz respeito a uma LCU atual dentre LCUs da fatia atual; obter informações sobre mesclagem de SAO à esquerda dentre os parâmetros de SAO das LCUs; e determinar, se é para prever parâmetros de SAO para um componente de luminância e primeiro e segundo componentes de crominância da LCU atual, usando um componente de luminância e primeiro e segundo componentes de crominância de uma LCU superior vizinha à LCU atual, com base nas informações sobre mesclagem de SAO à esquerda.
[00037] A determinação da necessidade de se prever os parâmetros de SAO pode incluir: se for determinado que os parâmetros de SAO da LCU atual não são previstos usando parâmetros de SAO de uma LCU à esquerda, com base nas informações sobre mesclagem de SAO à esquerda, obter informações sobre mesclagem de SAO superior dentre os parâmetros de SAO das LCUs; e determinar, se é para prever os parâmetros de SAO para o componente de luminância e os primeiro e segundo componentes de crominância da LCU atual, usando o componente de luminância e os primeiro e segundo componentes de crominância da LCU superior vizinha à LCU atual, com base nas informações sobre mesclagem de SAO superior.
[00038] O método pode ainda incluir: obter informações sobre tipo de SAO de luminância para um componente de luminância da LCU atual e informações sobre tipo de SAO de crominância para componentes de crominância associados dentre os parâmetros de SAO das LCUs; determinar, se é para executar uma operação de SAO no componente de luminância da LCU atual, com base nas informações obtidas sobre tipo de SAO de luminância; e determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e um segundo componente de crominância da LCU atual, com base nas informações obtidas sobre tipo de SAO de crominância.
[00039] O método pode ainda incluir: determinar qual dentre um ajuste de SAO da borda e um ajuste de SAO da banda é executado no componente de luminância da LCU atual, com base nas informações obtidas sobre tipo de SAO de luminância; e determinar qual dentre um ajuste de SAO da borda e um ajuste de SAO da banda é executado no primeiro componente de crominância e no segundo componente de crominância da LCU atual, com base nas informações obtidas sobre uso sobre tipo de SAO de crominância.
[00040] O método pode ainda incluir: determinar a mesma direção de borda no primeiro componente de crominância e no segundo componente de crominância da LCU atual, com base nos parâmetros de SAO obtidos.
[00041] A obtenção das informações sobre tipo de SAO de luminância e as informações sobre tipo de SAO de crominância podem incluir: realizar codificação aritmética de binário adaptável ao contexto (CABAC) - decodificação em um primeiro binário de contexto das informações sobre tipo de SAO de luminância, e obter informações indicando se é para realizar o ajuste de SAO no componente de luminância da LCU atual; realizar CABAC - decodificação nos binários de contexto restantes das informações sobre tipo de SAO de luminância em um modo bypass, e obter informações que indiquem qual dentre o ajuste de SAO da borda e o ajuste de SAO da banda é executado no componente de luminância da LCU atual; realizar CABAC - decodificação em um primeiro binário de contexto das informações sobre tipo de SAO de crominância, e obter informações indicando se é para realizar o ajuste de SAO nos componentes de crominância da LCU atual; e realizar CABAC - decodificação nos binários de contexto restantes das informações sobre tipo de SAO de crominância em um modo bypass, e obter informações que indiquem qual dentre o ajuste de SAO da borda e o ajuste de SAO da banda é executado nos componentes de crominância da LCU atual.
[00042] O método pode ainda incluir: realizar CABAC - decodificação usando o mesmo modo de contexto para as informações sobre mesclagem de SAO à esquerda e informações sobre mesclagem de SAO superior, em relação ao componente de luminância e os componentes de crominância da LCU atual.
[00043] O método pode ainda incluir: realizar CABAC - decodificação em um modo de bypass para obter informações sobre magnitude de um deslocamento dentre os parâmetros de SAO das LCUs, onde as informações obtidas sobre magnitude do deslocamento indicam a magnitude de deslocamento dentro de um intervalo, com base em uma profundidade de bits de um vídeo, e onde, se a profundidade de bits for de 8 bits, a magnitude de deslocamento é igual ou maior que 0 e igual ou inferior a 7, e, se a profundidade de bits for de 10 bits, a magnitude de deslocamento é igual ou maior que 0 e igual ou inferior a 31.
[00044] O método pode ainda incluir: se for determinado que o ajuste de SAO da banda é executado na LCU atual, realizar CABAC - decodificação em bits de comprimentos imutáveis de bit em um modo bypass, a fim de obter informações sobre uma posição inicial esquerda da banda, a partir de pelo menos uma parte das informações obtidas sobre tipo de SAO de luminância e das informações obtidas sobre tipo de SAO de crominância.
[00045] O método pode ainda incluir: se for determinado que o ajuste de SAO da banda é executado na LCU atual, obter um valor de deslocamento para o ajuste de SAO, a partir de parâmetros de SAO das LCUs; e, se o valor de deslocamento obtido não for 0, obter, também, informações de sinal do valor de deslocamento dos parâmetros de SAO das LCUs.
[00046] O método pode ainda incluir: obter um valor de deslocamento para o ajuste de SAO de tipo de borda, a partir de parâmetros de SAO das LCUs; e determinar um sinal do valor de deslocamento, com base na direção de borda determinada.
[00047] De acordo com outro aspecto de uma ou mais formas de realização, é fornecido um método de ajuste de SAO, o método incluindo: determinar, se é para executar uma operação de SAO em um componente de luminância de uma fatia atual; determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e em um segundo componente de crominância da fatia atual; gerar parâmetros de SAO em fatia com relação à fatia atual, incluindo informações sobre uso de SAO de luminância, indicando se é para realizar o ajuste de SAO no componente de luminância da fatia atual e informações sobre uso de SAO de crominância, indicando se é para realizar o ajuste de SAO no primeiro componente de crominância e no segundo componente de crominância; e emitir um cabeçalho de fatias incluindo parâmetros de SAO em fatia.
[00048] O método pode ainda incluir: determinar, se é para prever parâmetros de SAO para um componente de luminância, e primeiro e segundo componentes de crominância da LCU atual, usando parâmetros de SAO, com relação a um componente de luminância e primeiro e segundo componentes de crominância de uma LCU esquerda vizinha à LCU atual, com base nas LCUs da fatia atual; gerar informações sobre mesclagem de SAO à esquerda para a LCU atual, com base na determinação; determinar, se é para prever os parâmetros de SAO para o componente de luminância, e os primeiro e segundo componentes de crominância da LCU atual, usando parâmetros de SAO, com relação a um componente de luminância, e primeiro e segundo componentes de crominância de uma LCU superior vizinha à LCU atual; gerar informações sobre mesclagem de SAO superior para a LCU atual, com base na determinação; e gerar parâmetros de SAO de LCUs com relação à LCU atual, incluindo pelo menos uma parte das informações sobre mesclagem de SAO à esquerda e informações sobre mesclagem de SAO superior.
[00049] O método pode ainda incluir: determinar, se é para executar a operação de SAO em um componente de luminância da LCU atual; determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e em um segundo componente de crominância da LCU atual; e gerar parâmetros de SAO das LCUs com relação à LCU atual, incluindo informações sobre tipo de SAO de luminância, indicando se é para realizar o ajuste de SAO no componente de luminância da LCU atual, e informações sobre tipo de SAO de crominância, indicando se é para realizar o ajuste de SAO no primeiro componente de crominância e no segundo componente de crominância.
[00050] O método pode ainda incluir: determinar qual dentre um ajuste de SAO da borda e um ajuste de SAO da banda é executado no componente de luminância da LCU atual; determinar qual dentre o ajuste de SAO da borda e o ajuste de SAO da banda é executado no primeiro componente de crominância e no segundo componente de crominância da LCU atual; e gerar informações sobre tipo de SAO de luminância, indicando qual dentre um ajuste de SAO da borda e um ajuste de SAO da banda é executado no componente de luminância, e informações sobre tipo de SAO de crominância indicando qual dentre o ajuste de SAO da borda e o ajuste de SAO da banda é executado no primeiro componente de crominância e no segundo componente de crominância.
[00051] O método pode ainda incluir: gerar informações sobre a mesma direção da borda do primeiro componente de crominância e do segundo componente de crominância da LCU atual.
[00052] A geração das informações sobre tipo de SAO de luminância e as informações sobre tipo de SAO de crominância podem incluir: executar codificação CABAC em um primeiro binário de contexto de informações, indicando se é para executar a operação de SAO no componente de luminância da LCU atual, e executar codificação CABAC nos binários de contexto restantes de informações, com relação a qual dentre um ajuste de SAO da borda e um ajuste de SAO da banda é realizado no componente de luminância da LCU atual em um modo bypass.
[00053] A geração dos parâmetros de SAO das LCUs pode incluir: executar codificação CABAC, usando o mesmo modo de contexto para as informações sobre mesclagem de SAO à esquerda e informações sobre mesclagem de SAO superior dentre os parâmetros de SAO das LCUs com relação à LCU atual.
[00054] O método pode ainda incluir: executar codificação CABAC no modo bypass nas informações sobre magnitude de um deslocamento dentre os parâmetros de SAO das LCUs.
[00055] O método pode ainda incluir: se for determinado que o ajuste de SAO da banda é executado na LCU atual, executar codificação CABAC em bits de comprimentos imutáveis de bit de informações sobre uma posição inicial esquerda da banda de pelo menos uma parte das informações obtidas sobre tipo de SAO de luminância e das informações obtidas sobre tipo de SAO de crominância no modo bypass.
[00056] A geração dos parâmetros de SAO das LCUs pode incluir: se for determinado que o ajuste de SAO da banda é executado na LCU atual, determinar um valor de deslocamento para o ajuste de SAO da banda; e gerar os parâmetros de SAO das LCUs, incluindo, ainda, o valor de deslocamento determinado, no qual a geração dos parâmetros de SAO inclui: se o valor de deslocamento obtido não for 0, determinar um sinal do valor de deslocamento; e gerar os parâmetros de SAO das LCUs, incluindo, ainda, informações de sinal do valor de deslocamento.
[00057] De acordo com outro aspecto de uma ou mais formas de realização, é fornecido um aparelho decodificador de vídeo, o aparelho incluindo: um obtenedor de parâmetros de SAO para obter parâmetros de SAO em fatia com relação a uma fatia atual de um cabeçalho de fatias de um fluxo de bits recebido, e obter informações sobre uso de SAO de luminância para um componente de luminância da fatia atual e informações sobre uso de SAO de crominância para componentes de crominância associados dentre os parâmetros de SAO em fatia; um determinador de SAO para determinar, se é para executar uma operação de SAO no componente de luminância da fatia atual, baseado nas informações obtidas sobre uso de SAO de luminância, e determinar igualmente se é para executar o ajuste de SAO em um primeiro componente de crominância e em um segundo componente de crominância da fatia atual, com base nas informações obtidas sobre uso de SAO de crominância; e uma unidade de ajuste de SAO para realizar o ajuste de SAO no componente de luminância, e os primeiro e segundo componentes de crominância da fatia atual reconstruída através da realização de decodificação em símbolos codificados da fatia atual, obtidos a partir do fluxo de bits recebido com base em uma determinação do determinador de SAO.
[00058] De acordo com outro aspecto de uma ou mais formas de realização, é fornecido um aparelho codificador de vídeo, o aparelho incluindo: um codificador para realizar previsão, transformação e quantização numa fatia atual de um vídeo e executar previsão inversa, transformação inversa e compensação de movimento em coeficientes quantizados de transformação; um determinador de SAO para determinar, se é para executar uma operação de SAO em um componente de luminância da fatia atual, e determinar igualmente se é para realizar o ajuste de SAO em um primeiro componente de crominância e em um segundo componente de crominância da fatia atual; e um codificador de parâmetros de SAO para gerar parâmetros de SAO em fatia com relação à fatia atual, os parâmetros de SAO em fatia incluindo informações sobre uso de SAO de luminância, indicando se é para realizar o ajuste de SAO no componente de luminância, e informações sobre uso de SAO de crominância, indicando se é para realizar o ajuste de SAO no primeiro componente de crominância e no segundo componente de crominância com base em uma determinação do determinador de SAO, e gerar um cabeçalho de fatias, incluindo os parâmetros de SAO em fatia.
[00059] De acordo com outro aspecto de uma ou mais formas de realização, é fornecida uma mídia permanente de gravação legível por computador, tendo nela gravado um programa de computador para executar o método de ajuste de SAO.
MODO PARA INVENÇÃO
[00060] A seguir, operações para codificação de vídeo e operações para decodificação de vídeo, usando operações de deslocamento adaptável de amostra (SAO), com base na classificação de pixel, de acordo com uma ou mais formas de realização, serão descritas com referência às Figs. 1 a 7F. Além disso, uma operação de SAO com base na classificação de pixel em operações para codificação de vídeo e operações para decodificação de vídeo baseadas nas unidades de codificação tendo uma estrutura em árvore, de acordo com uma ou mais formas de realização, serão descritas com referência às Figs. 8 a 20. A seguir, uma 'imagem' pode denotar uma imagem estática ou uma imagem em movimento de um vídeo, ou um vídeo em si.
[00061] Operações para codificação de vídeo e operações para decodificação de vídeo usando ajuste de SAO com base na classificação de pixel, de acordo com uma ou mais formas de realização, serão, agora, descritas com referência às Figs. 1 a 7F. Um aparelho codificador de vídeo 10 e um aparelho decodificador de vídeo 20, que serão descritos abaixo com referência às Figs. 1A, 1B, 2A e 2B, executam uma operação de SAO, a fim de minimizar um erro entre pixels originais e pixels reconstituídos. Ao executar a operação de SAO, de acordo com uma forma de realização, o aparelho codificador de vídeo 10 classifica pixels de cada bloco de imagem em grupos de pixel predefinidos, aloca cada pixel em um grupo de pixels correspondente e codifica um valor de deslocamento, indicando um valor médio de erros entre os pixels originais e os pixels reconstituídos incluídos no mesmo grupo de pixels.
[00062] As amostras são sinalizadas entre o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20. Ou seja, o aparelho codificador de vídeo 10 pode codificar e transmitir amostras na forma de um fluxo de bits, e o aparelho decodificador de vídeo 20 pode analisar e reconstruir as amostras do fluxo de bits recebido. A fim de minimizar um erro entre pixels originais e pixels reconstituídos, através do ajuste dos valores de pixel dos pixels reconstruídos, por um deslocamento determinado, de acordo com a classificação de pixel, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 sinalizam parâmetros de SAO para o ajuste de SAO. Entre o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20, valores de deslocamento são codificados, transmitidos e recebidos como os parâmetros de SAO, de forma que os valores de deslocamento sejam decodificados a partir dos parâmetros de SAO.
[00063] Assim, o aparelho decodificador de vídeo 20, de acordo com uma forma de realização, pode gerar uma imagem reconstruída tendo um erro minimizado entre uma imagem original e a imagem reconstruída pela decodificação de um fluxo de bits recebido, gerar pixels reconstruídos de cada um dos blocos de imagem, reconstruir valores de deslocamento do fluxo de bits e ajustar os pixels reconstruídos pelos valores de deslocamento.
[00064] Uma operação do aparelho codificador de vídeo 10, que executa uma operação de SAO, será agora descrita com referência às Figs. 1A e 1B. Uma operação do aparelho decodificador de vídeo 20, que executa o ajuste de SAO, será agora descrita com referência às Figs. 2A e 2B.
[00065] As Figs. 1A e 1B são, respectivamente, um diagrama de blocos do aparelho codificador de vídeo 10 e um fluxograma de uma operação de SAO, executada pelo aparelho codificador de vídeo 10, de acordo com uma ou mais formas de realização.
[00066] O aparelho codificador de vídeo 10 inclui um codificador 12, um determinador de SAO 14 e um codificador de parâmetros de SAO 16.
[00067] O aparelho codificador de vídeo 10 recebe uma entrada de imagens, como fatias de um vídeo, divide cada imagem em blocos e codifica cada bloco. Um bloco pode ter uma forma quadrada, uma forma retangular ou uma forma geométrica arbitrária, e não está limitado a uma unidade de dados com um tamanho predeterminado. O bloco, de acordo com uma ou mais formas de realização, pode ser uma maior unidade de codificação (LCU) ou uma CU dentre unidades de codificação, de acordo com uma estrutura em árvore. Métodos de codificação e decodificação de vídeo, baseados nas unidades de codificação, de acordo com uma estrutura em árvore, serão abaixo descritos com referência às Figs. 8 a 20.
[00068] O aparelho codificador de vídeo 10 pode dividir cada entrada de imagem em LCUs, e pode emitir dados resultantes gerados através da realização de previsão, transformação e codificação por entropia em amostras de cada LCU, como um fluxo de bits. Amostras de uma LCU podem ser dados de valor de pixel, de pixels incluídos na LCU.
[00069] O codificador 12 pode, individualmente, codificar LCUs de um quadro. O codificador 12 pode codificar uma LCU atual, com base nas unidades de codificação, dividida a partir da LCU atual tendo uma estrutura em árvore.
[00070] Para codificar a LCU atual, o codificador 12 pode codificar amostras através da realização de previsão intra, previsão inter, transformação e quantização em cada uma das unidades de codificação incluída na LCU atual e tendo uma estrutura em árvore.
[00071] O codificador 12 pode reconstruir as amostras codificadas incluídas na LCU atual executando a dequantização, transformação inversa e previsão inter ou compensação intra em cada uma das unidades de codificação tendo uma estrutura em árvore, a fim de decodificar as unidades de codificação.
[00072] A fim de minimizar um erro entre pixels originais, antes da LCU atual ser codificada, e pixels reconstruídos, após a LCU atual ser decodificada, o aparelho codificador de vídeo 10 pode determinar valores de deslocamento indicando valores de diferença entre os pixels originais e os pixels reconstruídos.
[00073] O codificador 12 pode executar previsão, transformação e quantização numa fatia atual do vídeo, e executar dequantização, transformação inversa e compensação de movimento em coeficientes quantizados de transformação. O codificador 12, em primeiro lugar, pode executar previsão, transformação e quantização em cada uma das unidades de codificação da fatia atual do vídeo. A fim de gerar uma imagem de referência para previsão inter, o codificador 12 pode efetuar dequantização, transformação inversa e compensação de movimento nos coeficientes quantizados de transformação para gerar uma imagem reconstruída. Uma imagem reconstruída de uma imagem anterior pode ser considerada para previsão inter de uma próxima imagem.
[00074] O determinador de SAO 14 pode executar operações de SAO para cada componente de cor. Por exemplo, em relação a uma imagem de cor YCrCb, as operações de SAO podem ser executadas em um componente de luminância (um componente Y) e primeiro e segundo componentes de crominância (componentes Cr e Cb).
[00075] O determinador de SAO 14 pode determinar, se é para realizar as operações de SAO em um componente de luminância da fatia atual. O determinador de SAO 14 pode determinar igualmente se é para realizar as operações de SAO nos primeiro e segundo componentes de crominância da fatia atual. Ou seja, se a operação de SAO puder ser executada em um primeiro componente de cor de crominância, as operações de SAO podem ser efetuadas em um segundo componente de crominância e, se a operação de SAO não puder ser executada no primeiro componente de cor de crominância, a operação de SAO não pode ser executada no segundo componente de crominância.
[00076] O codificador de parâmetros de SAO 16 pode gerar um parâmetro de SAO em fatia, no que diz respeito à fatia atual, para incluir o parâmetro de SAO em fatia em um cabeçalho de fatias da fatia atual.
[00077] O codificador de parâmetros de SAO 16 pode gerar informações sobre o uso de SAO de luminância, indicando se é para executar a operação de SAO no componente de luminância, de acordo com uma determinação do determinador de SAO 14. O codificador de parâmetros de SAO 16 pode gerar informações sobre o uso de SAO de crominância, indicando se é para executar a operação de SAO nos primeiro e segundo componentes de crominância, de acordo com a determinação do determinador SAO 14.
[00078] O codificador de parâmetros de SAO 16 pode incluir as informações sobre uso de SAO de luminância e as informações sobre uso de SAO de crominância no parâmetro de SAO em fatia.
[00079] O determinador de SAO 14 pode determinar os valores de deslocamento em relação às LCUs. Parâmetros de SAO, incluindo os valores de deslocamento, um tipo de SAO e uma classe de SÃO, também podem ser determinados com relação às LCUs.
[00080] O determinador de SAO 14 pode determinar o tipo de SAO, de acordo com um método de classificação do valor de pixel da LCU atual. O tipo de SAO, de acordo com formas de realização, 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 é para classificar pixels do bloco atual, de acordo com o tipo de borda ou o tipo de banda.
[00081] Se o tipo de SAO for o tipo de borda, de acordo com uma direção e uma forma de bordas formadas entre os pixels reconstruídos da LCU atual e seus pixels adjacentes, um deslocamento entre os pixels reconstruídos e os pixels originais pode ser determinado.
[00082] Se o tipo de SAO for o tipo de banda, dentre uma pluralidade de bandas obtidas pela divisão de um intervalo total de valores de pixel dos pixels reconstruídos da LCU 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 pela divisão, de forma uniforme ou não, do intervalo total dos valores de pixel.
[00083] Nesse sentido, o determinador de SAO 14 pode determinar o tipo de SAO da LCU atual, que indica o tipo de borda ou o tipo de banda, com base nas características espaciais de valores de pixel da LCU atual.
[00084] O determinador de SAO 14 pode determinar uma classe de SAO de cada um dos pixels reconstruídos, de acordo com o tipo de SAO da LCU atual. A classe de SAO pode ser determinada, como uma classe de borda ou uma classe de banda.
[00085] No que diz respeito 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°.
[00086] Se o tipo de SAO for o tipo de borda, o determinador de SAO 14 pode determinar a classe de borda de cada um dos pixels reconstruídos da LCU atual.
[00087] Em relação ao tipo de banda dentre uma pluralidade de bandas, que são um número predeterminado de intervalos de valor de pixel contínuo obtido pela divisão de um intervalo total de valores de pixel da LCU atual, a classe de banda pode indicar posições das bandas, às quais pertencem os valores de pixel dos pixels reconstruídos.
[00088] Por exemplo, no que diz respeito a uma amostra com um valor de pixel de 8 bits, um intervalo total do valor de pixel é de 0 a 255 e o valor de pixel pode ser classificado em um total de 32 bandas. Neste caso, dentre o total de 32 bandas, um número predeterminado de bandas, ao qual pertencem os valores de pixel, dos pixels reconstruídos, pode ser determinado. A classe de banda pode indicar uma posição inicial (uma posição inicial à esquerda) de um número predeterminado de bandas contínuas usando um dos índices de banda de 0 a 31.
[00089] No que diz respeito ao tipo de borda, os pixels reconstruídos da LCU atual podem ser classificados em um número predeterminado de categorias, de acordo com a forma de bordas formadas entre os pixels reconstruídos e seus pixels adjacentes. Por exemplo, de acordo com quatro formas de borda, tal como um local de depressão de uma borda côncava, um canto curvo de uma borda côncava, um canto curvo de uma borda convexa e uma ponta aguda de uma borda convexa, os pixels reconstituídos podem ser classificados em quatro categorias. De acordo com um formato de borda de cada um dos pixels reconstruídos da LCU atual, uma das quatro categorias pode ser determinada.
[00090] No que diz respeito ao tipo de banda, de acordo com posições de bandas, às quais pertencem os valores de pixel dos pixels reconstruídos da LCU atual, os pixels reconstituídos podem ser classificados em um número predeterminado de categorias. Por exemplo, de acordo com índices de banda de quatro bandas contínuas de uma posição de banda inicial, ou seja, uma posição inicial de uma banda mais à esquerda, indicada pela classe de banda, os pixels reconstituídos podem ser classificados em quatro categorias. De acordo com uma das quatro bandas, a qual cada um dos pixels reconstruídos da LCU atual pertence, uma das quatro categorias pode ser determinada.
[00091] O determinador de SAO 14 pode determinar uma categoria de cada um dos pixels reconstruídos da LCU atual. No que diz respeito aos pixels reconstruídos da LCU atual, que pertencem à mesma categoria, o determinador de SAO 14 pode determinar valores de deslocamento usando 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, ou seja, um erro médio de pixels reconstruídos pode ser determinado como um valor de deslocamento correspondente a uma categoria atual. O determinador de SAO 14 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 LCU atual.
[00092] Por exemplo, se o tipo de SAO da LCU atual for o tipo de borda e os pixels reconstituídos forem classificados em quatro categorias, de acordo com os formatos de borda, ou se o tipo de SAO da LCU atual for o tipo de banda e os pixels reconstituídos forem classificados em quatro categorias, de acordo com os índices de quatro bandas contínuas, o determinador de SAO 14 pode determinar quatro valores de deslocamento, determinando um erro médio entre os pixels reconstruídos e os pixels originais, que pertencem a cada uma das quatro categorias.
[00093] Cada um dos valores de deslocamento pode ser maior ou igual a um valor mínimo predefinido e pode ser menor ou igual a um valor máximo predefinido.
[00094] O codificador de parâmetros de SAO 16 pode codificar e emitir parâmetros de SAO, incluindo o tipo de SAO, a classe de SAO e os valores de SAO da LCU atual, que são determinados pelo determinador de SAO 14.
[00095] Parâmetros de SAO de cada bloco podem incluir um tipo de SAO e valores de SAO do bloco. Com relação ao tipo de SAO, um tipo externo, o tipo de borda ou o tipo de banda pode ser emitido.
[00096] Se o tipo de SAO for o tipo externo, pode ser indicado que as operações de SAO não são aplicadas à LCU atual. Neste caso, outros parâmetros de SAO da LCU atual não precisam ser codificados.
[00097] Se o tipo de SAO for o tipo de borda, os parâmetros de SAO podem incluir, de forma individual, valores de deslocamento correspondentes às classes de borda. Além disso, se o tipo de SAO for o tipo de banda, os parâmetros de SAO podem incluir, de forma individual, valores de deslocamento correspondentes às bandas. Ou seja, o codificador de parâmetros de SAO 16 pode codificar parâmetros de SAO de cada bloco.
[00098] Um processo para emitir os parâmetros de SAO será, agora, descrito em detalhes com referência a um fluxograma da operação de SAO da Fig. 1B abaixo.
[00099] O codificador 12 pode codificar uma LCU atual dentre uma pluralidade de LCUs da fatia atual, com base nas unidades de codificação tendo uma estrutura em árvore.
[000100] Na operação 11, o determinador de parâmetro de SAO 14 pode determinar, se é para executar a operação de SAO no componente de luminância da fatia atual. Na operação 13, o determinador de parâmetro de SAO 14 pode determinar igualmente, se é para executar a operação de SAO nos primeiro e segundo componentes de crominância da fatia atual.
[000101] Na operação 15, o determinador de parâmetros de SAO 14 pode gerar as informações sobre uso de SAO de luminância, de acordo com uma determinação na operação 11, e pode gerar as informações sobre uso de SAO de crominância, de acordo com uma determinação na operação 13. O determinador de parâmetro de SAO 14 pode gerar o parâmetro de SAO em fatia, incluindo as informações sobre uso de SAO de luminância e as informações sobre o uso de SAO de crominância em relação à fatia atual.
[000102] Na operação 17, o determinador de parâmetros de SAO 14 pode emitir o cabeçalho de fatias, incluindo o parâmetro de SAO em fatia gerado na operação 15.
[000103] O determinador de parâmetros de SAO 14 pode determinar um primeiro parâmetro de SAO da LCU atual. O primeiro parâmetro de SAO pode incluir um tipo de SAO, indicando se um método de classificação do valor de pixel da LCU atual é um tipo de borda ou um tipo de banda, uma classe de SAO indicando uma direção de borda, de acordo com o tipo de borda, ou um intervalo de banda, de acordo com o tipo de banda, e valores de SAO indicando valores de diferença entre pixels reconstruídos e originais pixels incluídos na classe de SAO.
[000104] O codificador de parâmetros de SAO 16 pode emitir valores de deslocamento correspondentes a um número predeterminado de categorias.
[000105] Na operação 17, se o codificador de parâmetros de SAO 16 emitir informações sobre tipo de SAO indicando o tipo de borda, de acordo com uma direção de borda dos pixels reconstruídos incluídos na LCU atual, uma classe de borda indicando uma direção de 0°, 90°, 45° ou 135° pode ser emitida.
[000106] Na operação 17, se o codificador de parâmetros de SAO 16 emitir informações sobre tipo de SAO indicando o tipo de banda, uma classe de banda, indicando uma posição de banda dos pixels reconstruídos incluídos na LCU atual, pode ser emitida.
[000107] Na operação 17, se o codificador de parâmetros de SAO 16 emitir as informações sobre tipo de SAO, indicando o tipo de banda, como um valor de deslocamento, informações de valor zero, indicando se o valor do deslocamento é 0 ou não, podem ser emitidas. Se o valor do deslocamento for 0, o codificador de parâmetros de SAO 16 pode emitir apenas as informações de valor zero, como o valor de deslocamento.
[000108] Se o valor de deslocamento não for 0, o codificador de parâmetros de SAO 16 também pode emitir informações de sinal, indicando se o valor de deslocamento é um número positivo ou um número negativo, e um restante, que são seguidos pelas informações de valor zero.
[000109] Na operação 17, se o codificador de parâmetros de SAO 16 emitir informações sobre tipo de SAO, indicando o tipo de borda, as informações de valor zero e o restante podem ser emitidos. No que diz respeito ao tipo de borda, as informações de sinal do valor de deslocamento não precisam ser emitidas, pois um sinal do valor de deslocamento é previsível, com base apenas em uma categoria, de acordo com um formato de borda. Um processo para prever o sinal do valor de deslocamento será abaixo descrito com referência às Figs. 5A e 5B.
[000110] O determinador de SAO 14 pode determinar, se é para realizar a operação de SAO e tipos de SAO em relação às LCUs, de acordo com componentes de cor.
[000111] O determinador de SAO 14 pode determinar, se é para executar a operação de SAO em um componente de luminância da LCU atual. O codificador de parâmetros de SAO 16 pode gerar informações sobre o tipo de SAO de luminância, indicando se é para executar a operação de SAO no componente de luminância da LCU atual.
[000112] O determinador de SAO 14 pode determinar igualmente, se é para realizar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual. O codificador de parâmetros de SAO 16 pode gerar informações sobre o tipo de SÃO, indicando se é para executar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual.
[000113] O determinador de SAO 14 pode determinar qual dentre uma operação de SAO de borda e uma operação de SAO de banda é executada no componente de luminância da LCU atual. O codificador de parâmetros de SAO 16 pode gerar informações sobre o tipo de SAO de luminância, indicando qual dentre a operação de SAO de borda e a operação de SAO de banda é executada no componente de luminância da LCU atual.
[000114] O determinador de SAO 14 pode determinar, qual dentre a operação de SAO de borda e a operação de SAO de banda é executada nos primeiro e segundo componentes de crominância da LCU atual. O codificador de parâmetros de SAO 16 pode gerar informações sobre tipo de SAO de crominância, indicando qual dentre a operação de SAO de borda e a operação de SAO de banda é executada nos primeiro e segundo componentes de crominância da LCU atual.
[000115] Se o determinador de SAO 14 determinar que é para executar a operação de SAO de borda nos primeiro e segundo componentes de crominância da LCU atual, o determinador de SAO 14 pode determinar uma classe de SAO na mesma direção de borda, em relação aos primeiro e segundo componentes de crominância da LCU atual. Assim, o codificador de parâmetros de SAO 16 pode gerar um parâmetro de SAO, incluindo informações na mesma direção de borda dos primeiro e segundo componentes de crominância da LCU atual.
[000116] O determinador de parâmetro de SAO 16 pode incluir as informações sobre tipo de SAO de luminância e as informações sobre tipo de SAO de crominância no parâmetro de SAO da LCU atual.
[000117] O codificador de parâmetros de SAO 16 pode emitir informações sobre mesclagem de SAO da LCU atual, indicando se é para adotar um segundo parâmetro de SAO de uma dentre uma LCU à esquerda e uma LCU superior vizinha à LCU atual, como um primeiro parâmetro de SAO da LCU atual, com base na semelhança entre o primeiro parâmetro de SAO e o segundo parâmetro de SAO.
[000118] Se parâmetros de SAO de pelo menos uma dentre as LCUs à esquerda e superior da LCU atual forem os mesmos daqueles da LCU atual, o codificador de parâmetros de SAO 16 pode não codificar os parâmetros de SAO da LCU atual e pode codificar apenas as informações sobre mesclagem de SAO. Nesse caso, informações sobre mesclagem de SAO, indicando que os parâmetros de SAO da LCU esquerda ou superior foram adotados como parâmetros de SAO da LCU atual, podem ser emitidas.
[000119] Se os parâmetros de SAO das LCUs esquerda e superior forem diferentes dos parâmetros de SAO da LCU atual, o codificador de parâmetros de SAO 16 pode codificar as informações sobre mesclagem de SAO e os parâmetros de SAO da LCU atual. Nesse caso, informações sobre mesclagem de SAO, indicando que os parâmetros de SAO da LCU esquerda ou superior não foram adotados como parâmetros de SAO da LCU atual, podem ser emitidas.
[000120] Se o segundo parâmetro de SAO da LCU esquerda ou da LCU superior da LCU atual for o mesmo que o primeiro parâmetro de SAO, o primeiro parâmetro de SAO pode ser previsto com base no segundo parâmetro de SAO. Quando o codificador de parâmetros de SAO 16 adotar o segundo parâmetro de SÃO, como o primeiro parâmetro de SAO, o codificador de parâmetros de SAO 16 pode emitir apenas as informações sobre mesclagem de SAO e pode não emitir o tipo de SAO, a classe de SAO e os valores de deslocamento da LCU atual.
[000121] Se o segundo parâmetro de SAO da LCU esquerda ou da LCU superior da LCU atual não for o mesmo que o primeiro parâmetro de SAO, o primeiro parâmetro de SAO pode ser previsto separadamente, a partir do segundo parâmetro de SAO. Na operação 19, quando o codificador de parâmetros de SAO 16 não adotar o segundo parâmetro de SÃO, como o primeiro parâmetro de SAO, o codificador de parâmetros de SAO 16 pode emitir o primeiro parâmetro de SAO para incluir o tipo de SAO, a classe de SAO e os valores de deslocamento da LCU atual, além das informações sobre mesclagem de SAO da LCU atual.
[000122] Quando o codificador de parâmetros de SAO 16 emitir um tipo de SAO, uma classe de SAO e valores de deslocamento do primeiro parâmetro de SAO, o codificador de parâmetros de SAO 16 pode emitir, de forma sequencial, o tipo de SAO, o valor de deslocamento para cada categoria e a classe de SAO da LCU atual.
[000123] Se a operação de SAO for executada, o determinador de SAO 14 pode determinar informações sobre mesclagem de SAO e parâmetros de SAO de cada uma das LCUs. Nesse caso, o codificador de parâmetros de AS,O 16 pode emitir informações sobre o uso de SÃO, indicando que a operação de SAO é realizada na fatia atual, e, então, pode emitir as informações sobre mesclagem de SAO e os parâmetros de SAO de cada uma das LCUs.
[000124] Se a operação de SAO não for executada na fatia atual, o determinador de SAO 14 pode não precisar determinar um deslocamento de cada uma das LCUs da fatia atual, e o codificador de parâmetros de SAO 16 pode emitir apenas informações sobre o uso de SAO, indicando que o ajuste de deslocamento não é executado na fatia atual.
[000125] O determinador de SAO 14 pode não determinar, de maneira diferente, os parâmetros de SAO da LCU atual para cada componente de cor, mas pode determiná-los igualmente com relação aos componentes de crominância e luminância, com base no parâmetro de SAO da LCU esquerda ou da LCU superior vizinha à LCU atual.
[000126] O determinador de SAO 14 pode determinar, se é para prever os parâmetros de SAO em relação ao componente de luminância e os primeiro e segundo componentes de crominância da LCU atual, usando parâmetros de SAO com relação a um componente de luminância e primeiro e segundo componentes de crominância da LCU esquerda da LCU atual dentre as LCUs da fatia atual.
[000127] O codificador de parâmetros de SAO 16 pode gerar informações sobre mesclagem de SAO à esquerda para LCU atual, baseado na condição de se prever os parâmetros de SAO da LCU atual, usando os parâmetros de SAO da LCU à esquerda. Ou seja, as mesmas informações sobre mesclagem de SAO à esquerda podem ser geradas sem distinção do componente de luminância e dos primeiro e segundo componentes de crominância.
[000128] O determinador de SAO 14 pode determinar, se é para prever os parâmetros de SAO em relação ao componente de luminância e aos primeiro e segundo componentes de crominância da LCU atual, usando parâmetros de SAO com relação a um componente de luminância e primeiro e segundo componentes de crominância da LCU superior da LCU atual dentre as LCUs da fatia atual.
[000129] O codificador de parâmetros de SAO 16 pode gerar informações sobre mesclagem de SAO superior para a LCU atual, baseado na condição de se prever os parâmetros de SAO da LCU atual, usando os parâmetros de SAO da LCU superior.
[000130] O codificador de parâmetros de SAO 16 pode gerar parâmetros de SAO das LCUs, incluindo as informações sobre mesclagem de SAO da LCU esquerda, e as informações sobre mesclagem de SAO da LCU superior, com relação à LCU atual.
[000131] O aparelho codificador de vídeo 10 pode executar a codificação por entropia em símbolos de codificação, incluindo coeficientes quantizados de transformação e informações de codificação para gerar um fluxo de bits. O aparelho codificador de vídeo 10 pode realizar codificação aritmética de binário adaptável ao contexto (CABAC), com base em codificação por entropia em parâmetros de SAO.
[000132] O aparelho codificador de vídeo 10 pode executar codificação CABAC em um primeiro binário de contexto, indicando informações incluídas nas informações sobre tipo de SAO de luminância em relação ao fato se é para realizar a operação de SAO no componente de luminância da LCU atual.
[000133] O aparelho codificador de vídeo 10 pode executar a codificação CABAC, em um modo bypass, nos binários de contexto restantes, indicando informações incluídas nas informações sobre tipo de SAO de luminância, sobre qual dentre a operação de SAO de borda e a operação de SAO de banda é executada no componente de luminância da LCU atual.
[000134] O aparelho codificador de vídeo 10 pode executar a codificação CABAC, no mesmo modo de contexto, nas informações sobre mesclagem de SAO à esquerda e nas informações sobre mesclagem de SAO dentre os parâmetros de SAO das LCUs com relação à LCU atual.
[000135] O aparelho codificador de vídeo 10 pode executar a codificação CABAC, no modo bypass, nas informações sobre magnitude de deslocamentos incluídas nos parâmetros de SAO das LCUs. As informações sobre magnitude de deslocamentos podem indicar magnitude de deslocamento dentro de um intervalo, com base em uma profundidade de bits de um vídeo. Por exemplo, quando a profundidade de bits for de 8 bits, a magnitude de deslocamento pode ser igual ou maior que 0 e igual ou inferior a 7. Outro exemplo, quando a profundidade de bits for de 10 bits, a magnitude de deslocamento pode ser igual ou maior que 0 e igual ou inferior a 31.
[000136] Quando for determinado que a operação de SAO de banda é executada na LCU atual, o aparelho codificador de vídeo 10 pode executar a codificação CABAC, no modo bypass, em bits de um comprimento imutável de bit de informações sobre uma posição inicial esquerda da banda de pelo menos uma das informações sobre tipo de SAO de luminância e informações sobre tipo de SAO de crominância.
[000137] Quando for determinado que a operação de SAO de banda é executada na LCU atual, o determinador de SAO 140 pode determinar um valor de deslocamento para a operação de SAO de banda. Nesse sentido, o codificador de parâmetros de SAO 10 pode gerar parâmetros de SAO das LCUs, incluindo, também, o valor de deslocamento para a operação de SAO de banda.
[000138] Quando o valor de deslocamento para a operação de SAO de banda não for 0, o determinador de SAO 140 pode também determinar um sinal do valor de deslocamento. Nesse sentido, o codificador de parâmetros de SAO 16 pode gerar parâmetros de SAO das LCUs, incluindo, também, informações do sinal do valor de deslocamento.
[000139] O aparelho codificador de vídeo 10 pode incluir um processador central (não mostrado) para controlar coletivamente o codificador 12, o determinador de SAO 14 e o codificador de parâmetros de SAO 16. De maneira alternativa, o codificador 12, o determinador de SAO 14 e o codificador de parâmetros de SAO 16 podem ser acionados por seus processadores individuais (não mostrados), que operam cooperativamente para controlar o aparelho codificador de vídeo 10. De forma alternativa, um processador externo (não mostrado), externo ao aparelho codificador de vídeo 10, pode controlar o codificador 12, o determinador de SAO 14 e o codificador de parâmetros de SAO 16.
[000140] O aparelho codificador de vídeo 10 pode incluir uma ou mais unidades de armazenamento de dados (não mostradas), para armazenar dados de entrada e saída do codificador 12, do determinador de SAO 14 e do codificador de parâmetros de SAO 16. O aparelho codificador de vídeo 10 pode incluir um controlador de memória (não mostrado) para gerenciar a entrada e saída de dados das, e para as, unidades de armazenamento de dados.
[000141] A fim de executar uma operação para codificação de vídeo, incluindo transformação, e emitir um resultado da operação para codificação de vídeo, o aparelho codificador de vídeo 10 pode operar em associação com um processador para codificação de vídeo interno ou externo. O processador para codificação de vídeo interno do aparelho codificador de vídeo 10 pode ser um processador independente para realizar uma operação para codificação de vídeo. Além disso, o aparelho codificador de vídeo 10, uma unidade central de processamento ou uma unidade de processamento gráfico pode incluir um módulo processador para codificação de vídeo para executar uma operação básica para codificação de vídeo.
[000142] As Figs. 2A e 2B, respectivamente, são um diagrama de blocos do aparelho decodificador de vídeo 20 e um fluxograma de uma operação de SAO executada pelo aparelho decodificador de vídeo 20, de acordo com uma ou mais formas de realização.
[000143] O aparelho decodificador de vídeo 20 inclui um obtenedor de parâmetros de SAO 22, um determinador de SAO 24 e uma unidade de ajuste de SAO 26.
[000144] O aparelho decodificador de vídeo 20 recebe um fluxo de bits incluindo dados codificados de um vídeo. O aparelho decodificador de vídeo 20 pode analisar amostras de vídeo codificadas do fluxo de bits recebido, pode realizar a decodificação por entropia, dequantização, transformação inversa, previsão e compensação de movimento em cada bloco de imagem para gerar pixels reconstruídos e, assim, pode gerar uma imagem reconstruída.
[000145] O aparelho decodificador de vídeo 20 pode receber valores de deslocamento, indicando valores de diferença entre pixels originais e pixels reconstituídos, e pode minimizar o erro entre uma imagem original e a imagem reconstruída. O aparelho decodificador de vídeo 20 pode receber dados codificados de cada LCU do vídeo e pode reconstruir a LCU com base nas unidades de codificação divididas a partir da LCU, e tendo uma estrutura em árvore.
[000146] O obtenedor de parâmetros de SAO 22 pode obter parâmetros de SAO em fatia, no que diz respeito a uma fatia atual de um cabeçalho de fatias de um fluxo de bits recebido. O obtenedor de parâmetros de SAO 22 pode obter informações sobre uso de SAO de luminância para um componente de luminância da fatia atual e informações sobre o uso de SAO de crominância para componentes de crominância a partir dos parâmetros de SAO em fatia.
[000147] O determinador de SAO 24 pode determinar, se é para realizar a operação de SAO no componente de luminância da fatia atual, baseado nas informações sobre o uso de SAO de luminância obtidas pelo obtenedor de parâmetros de SAO 22.
[000148] O determinador de SAO 24 pode determinar igualmente, se é para realizar a operação em um primeiro componente de crominância e em um segundo componente de crominância da fatia atual, baseado nas informações sobre o uso de SAO de crominância obtidas pelo obtenedor de parâmetros de SAO 22. Ou seja, se a operação de SAO for executada no primeiro componente de crominância, a operação de SAO pode ser realizada no segundo componente de crominância, e, se a operação de SAO não for realizada no primeiro componente de crominância, a operação de SAO pode não ser executada no segundo componente de crominância.
[000149] O aparelho decodificador de vídeo 20 pode realizar a decodificação em símbolos codificados, incluindo amostras codificadas e informações de codificação da fatia atual, obtidas a partir do fluxo de bits recebido, para reconstruir a fatia atual. A unidade de ajuste de SAO 26 pode executar a operação de SAO em cada um dentre o componente de luminância e os primeiro e segundo componentes da fatia atual reconstruída, de acordo com uma determinação do determinador de SAO 24.
[000150] Operações para reconstruir amostras de uma LCU atual e de ajuste dos deslocamentos serão agora descritas com referência à Fig. 2B.
[000151] Na operação 21, o obtenedor de parâmetros de SAO 22 pode obter os parâmetros de SAO em fatia, com relação à fatia atual, a partir do cabeçalho de fatias do fluxo de bits recebido. Na operação 23, o obtenedor de parâmetros de SAO 22 pode obter as informações sobre uso de SAO de luminância e as informações sobre uso de SAO de crominância dos parâmetros de SAO em fatia.
[000152] Na operação 25, o determinador de SAO 24 pode determinar, se é para executar a operação de SAO no componente de luminância da fatia atual, baseado nas informações sobre uso de SAO de luminância obtidas na operação 23. Se as informações sobre uso de SAO de luminância indicarem que a operação de SAO foi executada, a unidade de ajuste de SAO 26 pode executar a operação de SAO em um componente de cor de luminância da fatia atual.
[000153] Na operação 27, o determinador de SAO 24 pode determinar igualmente, se é para executar a operação de SAO no primeiro componente de crominância e no segundo componente de crominância da fatia atual, baseado nas informações sobre o uso de SAO de crominância obtidas na operação 23. Se as informações sobre uso de SAO de crominância indicarem que a operação de SAO foi executada, a unidade de ajuste de SAO 26 pode executar a operação de SAO no primeiro componente de crominância e no segundo componente de crominância da fatia atual.
[000154] O obtenedor de parâmetros de SAO 22 pode extrair informações sobre mesclagem de SAO da LCU atual, do fluxo de bits recebido. As informações sobre mesclagem de SAO da LCU atual indicam se é para adotar um segundo parâmetro de SAO, de uma LCU esquerda ou superior da LCU atual, como um primeiro parâmetro de SAO da LCU atual.
[000155] O obtenedor de parâmetros de SAO 22 pode reconstruir o primeiro parâmetro de SAO, incluindo um tipo de SAO, valores de deslocamento e uma classe de SAO da LCU atual, baseado nas informações sobre mesclagem de SAO.
[000156] O obtenedor de parâmetros de SAO 22 pode determinar, se é para reconstruir o tipo de SAO, os valores de deslocamento e a classe de SAO da LCU atual, para serem os mesmos daqueles do segundo parâmetro de SAO, ou para extrair o tipo de SAO, os valores de deslocamento e a classe de SAO a partir do fluxo de bits, com base nas informações sobre mesclagem de SAO.
[000157] O determinador de SAO 24 pode determinar, se um método de classificação do valor de pixel da LCU atual é um tipo de borda ou um tipo de banda, com base no tipo de SAO determinado pelo obtenedor de parâmetros de SAO 22. Com base no tipo de SAO, um tipo externo, o tipo de borda ou o tipo de banda pode ser determinado.
[000158] Se o tipo de SAO for o tipo externo, pode ser determinado que a operação de SAO não foi aplicada à LCU atual. Nesse caso, outros parâmetros de SAO da LCU atual não precisam ser analisados.
[000159] O determinador de SAO 24 pode determinar um intervalo de banda, de acordo com uma direção de borda, de acordo com o tipo de borda ou um intervalo de banda, de acordo com um tipo de banda da LCU atual, com base na classe de SAO determinada pelo obtenedor de parâmetros de SAO 22.
[000160] O determinador de SAO 24 pode determinar valores de diferença entre pixels reconstruídos e pixels originais incluídos na classe de SAO acima determinada, com base nos valores de deslocamento determinados pelo obtenedor de parâmetros de SAO 22.
[000161] A unidade de ajuste de SAO 26 pode ajustar valores de pixel de amostras reconstruídas com base nas unidades de codificação, divididas a partir da LCU atual, com uma estrutura em árvore, pelos valores de diferença determinados pelo determinador de SAO 24.
[000162] O obtenedor de parâmetros de SAO 22 pode determinar adotar o segundo parâmetro de SAO da LCU esquerda, ou superior, como o primeiro parâmetro de SAO, com base nas informações sobre mesclagem de SAO. Nesse caso, o determinador de SAO 24 pode não extrair o primeiro parâmetro de SAO da LCU atual e pode reconstruir o primeiro parâmetro de SAO para ser o mesmo que o segundo parâmetro de SAO reconstituído anteriormente.
[000163] O obtenedor de parâmetros de SAO 22 pode determinar para não adotar o segundo parâmetro de SÃO, como o primeiro parâmetro de SAO, com base nas informações sobre mesclagem de SAO. Nesse caso, o determinador de SAO 24 pode extrair e reconstruir o primeiro parâmetro de SAO seguido pelas informações sobre mesclagem de SAO, a partir do fluxo de bits.
[000164] O obtenedor de parâmetros de SAO 22 pode extrair informações comuns sobre mesclagem de SAO do componente de luminância, do primeiro componente de crominância e do segundo componente de crominância da LCU atual. O determinador de SAO 24 pode determinar, se é para reconstruir parâmetros de SAO do componente de luminância, parâmetros de SAO do primeiro componente de crominância e parâmetros de SAO do segundo componente de crominância para serem os mesmos daqueles de uma LCU adjacente, com base nas informações comuns sobre mesclagem de SAO.
[000165] O determinador de SAO 24 pode reconstruir um tipo comum de SAO do primeiro componente de crominância e do segundo componente de crominância da LCU atual.
[000166] O determinador de SAO 24 pode determinar valores de deslocamento correspondentes a um número predeterminado de categorias, com base nos parâmetros de SAO. Cada um dos valores de deslocamento pode ser maior ou igual a um valor mínimo predefinido, e pode ser menor ou igual a um valor máximo predefinido.
[000167] Se informações sobre tipo de SAO indicarem o tipo de borda, o determinador de SAO 24 pode determinar uma direção da borda dos pixels reconstruídos, incluídos na LCU atual, como 0°, 90°, 45°, ou 135°, com base na classe de SAO.
[000168] Se as informações sobre tipo de SAO indicarem o tipo de banda, o determinador de SAO 24 pode determinar posições de bandas, as quais pertencem os valores de pixel dos pixels reconstruídos, com base na classe de SAO.
[000169] Se as informações sobre tipo de SAO indicarem o tipo de banda, o determinador de SAO 24 pode determinar, se um valor de deslocamento é, ou não, 0, com base em informações de valor zero do valor de deslocamento. Se o valor de deslocamento for determinado como 0, com base nas informações de valor zero, informações do valor de deslocamento, que não sejam as informações de valor zero, não são reconstruídas.
[000170] Se o valor de deslocamento não for determinado como 0, com base nas informações de valor zero, o determinador de SAO 24 pode determinar se o valor de deslocamento é um número positivo ou um número negativo, com base nas informações de sinal do valor de deslocamento, que são seguidas pelas informações de valor zero. O determinador de SAO 24 pode, finalmente, determinar um valor de deslocamento, ao reconstruir um restante do valor de deslocamento, que é seguido pelas informações de sinal.
[000171] Se as informações sobre tipo de SAO indicarem o tipo de borda e se o valor de deslocamento não for determinado como 0, baseado nas informações de valor zero do valor de deslocamento, o determinador de SAO 24 pode, finalmente, determinar o valor de deslocamento ao reconstruir o restante do valor de deslocamento, que é seguido pelas informações de valor zero.
[000172] O aparelho decodificador de vídeo 20 pode obter os parâmetros de SAO, baseado em componentes de cor, para executar a operação de SAO.
[000173] O obtenedor de parâmetros de SAO 22 pode obter parâmetros de SAO de cada uma das LCUs da fatia atual, a partir de um fluxo de bits. O obtenedor de parâmetros de SAO 22 pode obter pelo menos uma dentre informações sobre mesclagem de SAO à esquerda e informações sobre mesclagem de SAO superior dos parâmetros de SAO das LCUs.
[000174] O obtenedor de parâmetros de SAO 22 pode determinar, se é para prever parâmetros de SAO em relação ao componente de luminância e aos primeiro e segundo componentes de crominância da LCU atual, usando parâmetros de SAO com relação a um componente de luminância e primeiro e segundo componentes de crominância da LCU superior vizinha à LCU atual, com base nas informações sobre mesclagem de SAO à esquerda.
[000175] Se as informações sobre mesclagem de SAO à esquerda indicarem que um parâmetro de SAO atual deve ser previsto, usando os parâmetros de SAO da LCU esquerda, parâmetros de SAO para cada componente de cor, com relação à LCU esquerda, podem ser adotados como parâmetros de SAO para cada componente de cor da LCU atual, para cada componente de cor.
[000176] Se os parâmetros de SAO da LCU atual forem determinados para não serem previstos, usando os parâmetros de SAO da LCU à esquerda, com base nas informações sobre mesclagem de SAO à esquerda, o obtenedor de parâmetros de SAO 22 pode obter, também, informações sobre mesclagem de SAO superior a partir do fluxo de bits.
[000177] O obtenedor de parâmetros de SAO 22 pode determinar, se é para prever os parâmetros de SAO do componente de luminância e dos primeiro e segundo componentes de crominância da LCU atual, usando os parâmetros de SAO em relação ao componente de luminância e aos primeiro e segundo componentes de crominância da LCU superior vizinha à LCU atual, com base nas informações sobre mesclagem de SAO superior.
[000178] Se as informações sobre mesclagem de SAO superior indicarem que o parâmetro de SAO atual é para ser previsto usando os parâmetros de SAO da LCU superior, parâmetros de SAO para cada componente de cor, com relação à LCU superior, podem ser adotados como os parâmetros de SAO para cada componente de cor da LCU atual, para cada componente de cor.
[000179] Se as informações sobre mesclagem de SAO superior indicarem que os parâmetros de SAO da LCU atual não devem ser previstos usando os parâmetros de SAO da LCU superior, o obtenedor de parâmetros de SAO 22 pode obter os parâmetros de SAO para cada componente de cor da LCU atual, a partir do fluxo de bits.
[000180] O obtenedor de parâmetros de SAO 22 pode obter informações sobre tipo de SAO de luminância para o componente de luminância da atual LCU e informações sobre tipo de SAO de crominância para os componentes de crominância associados, a partir dos parâmetros de SAO das LCUs.
[000181] O determinador de SAO 24 pode determinar, se é para executar a operação de SAO no componente de luminância da LCU atual, com base nas informações sobre tipo de SAO de luminância. A unidade de ajuste de SAO 26 pode, ou não, executar a operação de SAO no componente de luminância da LCU atual, de acordo com uma determinação do determinador de SAO 24.
[000182] O determinador de SAO 24 pode determinar igualmente se é para executar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual, com base nas informações sobre tipo de SAO de crominância. A unidade de ajuste de SAO 26 pode, ou não, executar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual, de acordo com a determinação do determinador de SAO 24.
[000183] O determinador de SAO 24 pode determinar, se é para executar a operação de SAO, com base em um primeiro bit de cada uma das informações sobre tipo de SAO de luminância e informações sobre tipo de SAO de crominância. Se a operação de SAO for determinada para ser executada para cada componente de cor, um segundo bit e bits restantes das informações correspondentes sobre tipo de SAO podem ser obtidos.
[000184] O determinador de SAO 24 pode determinar qual dentre uma operação de SAO da borda e uma operação de SAO da banda é executada no componente de luminância da LCU atual, com base nas informações sobre tipo de SAO de luminância. O segundo bit das informações sobre tipo de SAO de luminância pode indicar a operação de SAO da borda ou a operação de SAO da banda. A unidade de ajuste de SAO 26 pode executar uma dentre a operação de SAO da borda e a operação de SAO da banda no componente de luminância da LCU atual, de acordo com uma determinação do determinador de SAO 24.
[000185] O determinador de SAO 24 pode determinar igualmente qual dentre a operação de SAO de borda e a operação de SAO da banda é executada nos primeiro e segundo componentes de crominância da LCU atual, com base nas informações sobre tipo de SAO de crominância. O segundo bit das informações sobre tipo de SAO de crominância pode indicar a operação de SAO da borda ou a operação de SAO da banda. A unidade de ajuste de SAO 26 pode, de maneira simultânea, executar a operação de SAO da borda ou a operação de SAO da banda nos primeiro e segundo componentes de crominância da LCU atual, de acordo com a determinação do determinador de SAO 24.
[000186] Quando a operação de SAO da borda for determinada, para ser realizada nos primeiro e segundo componentes de crominância da LCU atual, o determinador de SAO 24 pode determinar os primeiro e segundo componentes de crominância da LCU atual, para terem a mesma direção de borda, com base nas informações sobre tipo de SAO de crominância.
[000187] O obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação em um primeiro binário de contexto das informações sobre tipo de SAO de luminância, a fim de obter as informações sobre tipo de SAO de luminância. Informações, indicando se é para executar a operação de SAO no componente de luminância da LCU atual, podem ser obtidas, decodificando o primeiro binário de contexto das informações sobre tipo de SAO de luminância.
[000188] O obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação em binários de contexto restantes das informações sobre tipo de SAO de luminância em um modo bypass. Informações, indicando qual dentre a operação de SAO da borda e a operação de SAO da banda é executada no componente de luminância da LCU atual, podem ser obtidas decodificando os binários de contexto restantes das informações sobre tipo de SAO de luminância.
[000189] De maneira semelhante, o obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação em um primeiro binário de contexto das informações sobre tipo de SAO de crominância, a fim de obter as informações sobre tipo de SAO de crominância. Informações, indicando se é para executar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual, podem ser obtidas decodificando o primeiro binário de contexto das informações sobre tipo de SAO de crominância.
[000190] O obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação nos binários de contexto restantes das informações sobre tipo de SAO de crominância no modo bypass. Informações, indicando qual dentre a operação de SAO da borda e a operação de SAO da banda é executada nos primeiro e segundo componentes de crominância da LCU atual, podem ser obtidas decodificando binários de contexto restantes das informações sobre tipo de SAO de crominância.
[000191] O obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação, usando o mesmo modo de contexto, a fim de obter as informações sobre mesclagem de SAO à esquerda e as informações de mesclagem de SAO superior da LCU atual.
[000192] O obtenedor de parâmetros de SAO 24 pode realizar CABAC - decodificação no modo bypass, a fim de obter informações sobre magnitude de deslocamentos, incluídas nos parâmetros de SAO da LCU atual. As informações obtidas sobre magnitude de deslocamentos podem ser limitadas a um valor igual ou inferior a um valor de restrição, com base em uma profundidade de bits de um vídeo. As informações sobre magnitude de deslocamentos podem indicar magnitude de deslocamento dentro de um intervalo com base em uma profundidade de bits do vídeo. Por exemplo, quando a profundidade de bits for de 8 bits, a magnitude de deslocamento pode ser igual ou maior que 0 e igual ou inferior a 7, e, quando a profundidade de bits for de 10 bits, a magnitude de deslocamento pode ser igual ou maior que 0 e igual ou inferior a 31.
[000193] Quando for lido, a partir de um segundo bit das informações sobre tipo de SAO de crominância, que a operação de SAO da banda é executada na LCU atual, o obtenedor de parâmetros de SAO 24 pode executar CABAC - decodificação, no modo bypass, em bits de um comprimento imutável de bit, seguindo o segundo bit das informações sobre tipo de SAO de crominância. Informações sobre uma posição inicial esquerda da banda podem ser obtidas a partir dos bits do comprimento imutável de bit de pelo menos uma dentre as informações sobre tipo de SAO de luminância e informações sobre tipo de SAO de crominância.
[000194] O obtenedor de parâmetros de SAO 24 pode obter um valor de deslocamento para a operação de SAO a partir dos parâmetros de SAO das LCUs.
[000195] Quando a operação de SAO da banda for determinada para ser realizada na LCU atual, a partir das informações sobre tipo de SAO de luminância ou das informações sobre tipo de SAO de crominância, se o valor de deslocamento obtido não for 0, o obtenedor de parâmetros de SAO 24 também pode obter informações de sinal do valor de deslocamento, a partir dos parâmetros de SAO das LCUs.
[000196] Quando a operação de SAO da borda for determinada para ser realizada na LCU atual, a partir das informações sobre tipo de SAO de luminância ou das informações sobre tipo são crominância, um sinal do valor de deslocamento pode ser determinado com base em uma direção de borda, determinada com base em informações de classe de SAO.
[000197] O aparelho decodificador de vídeo 20 pode incluir um processador central (não mostrado) para controlar coletivamente o obtenedor de parâmetros de SAO 22, o determinador de SAO 24 e a unidade de ajuste de SAO 26. De maneira alternativa, o obtenedor de parâmetros de SAO 22, o determinador de SAO 24 e a unidade de ajuste de SAO 26 podem ser acionados por seus processadores individuais (não mostrados), que operam cooperativamente para controlar o aparelho decodificador de vídeo 20. Como alternativa, um processador externo (não mostrado), fora do aparelho decodificador de vídeo 20, pode controlar o obtenedor de parâmetros de SAO 22, o determinador de SAO 24 e a unidade de ajuste de SAO 26.
[000198] O aparelho decodificador de vídeo 20 pode incluir uma ou mais unidades de armazenamento de dados (não mostradas) para armazenar dados de entrada e saída do obtenedor de parâmetros de SAO 22, do determinador de SAO 24 e da unidade de ajuste de SAO 26. O aparelho decodificador de vídeo 20 pode incluir um controlador de memória (não mostrado) para gerenciar dados de entrada e saída das, e para as, unidades de armazenamento de dados.
[000199] A fim de executar uma operação para decodificação de vídeo para reconstruir um vídeo, o aparelho decodificador de vídeo 20 pode operar em associação com um processador para decodificação de vídeo interno ou externo. O processador interno para decodificação de vídeo do aparelho decodificador de vídeo 20 pode ser um processador independente para realizar uma operação básica para decodificação de vídeo. Além disso, o aparelho decodificador de vídeo 20, uma unidade central de processamento ou uma unidade de processamento gráfica pode incluir um módulo processador para decodificação de vídeo, para executar uma operação básica para decodificação de vídeo.
[000200] Operações para decodificação de vídeo usando operações de SAO serão, agora, descritas em detalhes com referência à Fig. 3. A Fig. 3 é um diagrama de blocos de um aparelho decodificador de vídeo 30, de acordo com uma ou mais formas de realização.
[000201] O aparelho decodificador de vídeo 30 inclui um decodificador por entropia 31, um dequantizador 32, um transformador inverso 33, reconstrutor 34, um previsor intra 35, um buffer de quadros de referência 36, um compensador de movimento 37, um filtro de desbloqueio 38 e um executor de SAO 39.
[000202] O aparelho decodificador de vídeo 30 pode receber um fluxo de bits, incluindo dados de vídeo codificados. O decodificador por entropia 31 pode analisar informações do modo intra, informações do modo inter, informações de SAO e resíduos do fluxo de bits.
[000203] Os resíduos extraídos pelo decodificador por entropia 31 podem ser coeficientes quantizados de transformação. Nesse sentido, o dequantizador 32 pode executar dequantização nos resíduos para reconstruir os coeficientes de transformação, e o transformador inverso 33 pode efetuar a transformação inversa nos coeficientes reconstruídos para reconstruir valores residuais do domínio espacial.
[000204] A fim de prever e reconstruir os valores residuais do domínio espacial, previsão intra ou compensação de movimento pode ser realizada.
[000205] Se as informações do modo intra forem extraídas pelo decodificador por entropia 31, o previsor intra 35 pode determinar amostras de referência para serem destinadas a reconstruir amostras atuais dentre amostras espacialmente adjacentes às amostras atuais, usando as informações do modo intra. As amostras de referência podem ser escolhidas dentre amostras anteriormente reconstruídas pelo reconstrutor 34. O reconstrutor 34 pode reconstruir as amostras atuais, usando as amostras de referência determinadas com base nas informações de modo intra e nos valores residuais reconstruídos pelo transformador inverso 33.
[000206] Se as informações de modo inter forem extraídas pelo decodificador por entropia 31, o compensador de movimento 37 pode determinar um quadro de referência a ser considerado para reconstruir amostras atuais de um quadro atual dentre quadros anteriormente reconstruídos para o quadro atual, usando as informações de modo inter. As informações de modo inter podem incluir vetores de movimento, índices de referência etc.. Usando os índices de referência dentre quadros anteriormente reconstruídos para o quadro atual e armazenados no buffer de quadros de referência 36, um quadro de referência, a ser usado para realizar compensação de movimento nas amostras atuais, pode ser determinado. Usando os vetores de movimento, um bloco de referência do quadro de referência, a ser usado para realizar compensação de movimento em um bloco atual, pode ser usado. O reconstrutor 34 pode reconstruir as amostras atuais usando o bloco de referência determinado com base nas informações de modo inter e nos valores residuais reconstruídos pelo transformador inverso 33.
[000207] O reconstrutor 34 pode reconstruir amostras e pode emitir pixels reconstruídos. O reconstrutor 34 pode gerar pixels reconstruídos de cada uma das LCUs, com base nas unidades de codificação com uma estrutura em árvore.
[000208] O filtro de desbloqueio 38 pode executar a filtragem para reduzir um fenômeno de bloqueio de pixels dispostos em regiões de borda da LCU, ou cada uma das unidades de codificação tendo uma estrutura em árvore.
[000209] Além disso, o executor de SAO 39 pode ajustar deslocamentos de pixels reconstruídos de cada LCU, de acordo com uma operação de SAO. O executor de SAO 39 pode determinar um tipo de SAO, uma classe de SAO e valores de deslocamento de uma LCU atual, com base nas informações de SAO extraídas pelo decodificador por entropia 31.
[000210] Uma operação para extrair as informações sobre SAO através do decodificador por entropia 31 pode corresponder a uma operação do extrator de parâmetros de SAO 22 do aparelho decodificador de vídeo 20, e operações do executor de SAO 39 podem corresponder às operações do determinador de deslocamento 24 e da unidade de ajuste de deslocamento 26 do aparelho decodificador de vídeo 20.
[000211] O executor de SAO 39 pode determinar valores de diferença e sinais dos valores de deslocamento, em relação aos pixels reconstruídos da LCU atual, com base nos valores de deslocamento determinados a partir das informações sobre SAO. O executor de SAO 39 pode reduzir erros entre os pixels reconstruídos e pixels originais, aumentando ou reduzindo valores de pixel dos pixels reconstruídos, através dos valores de diferença determinados com base nos valores de deslocamento.
[000212] Um quadro, incluindo os pixels reconstruídos ajustados por deslocamento pelo executor de SAO 39, pode ser armazenado no buffer de quadros de referência 36. Assim, usando um quadro de referência com erros minimizados entre amostras reconstruídas e pixels originais, de acordo com uma operação de SAO, a compensação de movimento pode ser realizada em um próximo quadro.
[000213] De acordo com as operações de 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 as operações de SAO, formas de realização, para classificar pixels reconstruídos em grupos de pixel, serão, agora, descritas em detalhes.
[000214] De acordo com operações de 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. A condição dos pixels serem classificados com base em um tipo de borda ou em um tipo de banda pode ser definida, usando um tipo de SAO.
[000215] Uma forma de realização para classificar pixels com base em um tipo de borda, de acordo com as operações de SAO, será, agora, descrita em detalhes.
[000216] Quando deslocamentos do tipo borda de uma LCU atual forem determinados, uma classe de borda de cada um dos pixels reconstruídos, incluídos na LCU atual, pode ser determinada. Ou seja, comparando os valores de pixel dos atuais pixels reconstruídos e pixels adjacentes, uma classe de borda dos atuais pixels reconstruídos pode ser definida. Um exemplo para determinar uma classe de borda será, agora, descrito com referência à Fig. 4.
[000217] A Fig. 4 é uma tabela que mostra classes de borda de tipos de borda, de acordo com uma ou mais formas de realização.
[000218] Índices 0, 1, 2 e 3 podem ser alocados, de forma sequencial, às classes de borda 41, 42, 43 e 44. Se um tipo de borda ocorrer com frequência, um pequeno índice pode ser alocado para o tipo de borda.
[000219] 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 onde 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 onde 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 onde bordas são formadas entre o pixel reconstruído atual X0 e dois pixels diagonalmente adjacentes a 135° X5 e X8. A classe de borda 44, tendo o índice 3, indica um caso onde bordas são formadas entre o pixel reconstruído atual X0 e dois pixels diagonalmente adjacentes a 45° X6 e X7.
[000220] Nesse sentido, analisando as direções de borda de pixels reconstruídos, incluídos em uma LCU atual, e determinando, desse modo, uma forte direção de borda na LCU atual, uma classe de borda da LCU atual pode ser determinada.
[000221] No que diz respeito à 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á, agora, descrito com referência às Figs. 5A e 5B.
[000222] As Figs. 5A e 5B são uma tabela e um gráfico mostrando categorias de tipos de borda, de acordo com uma ou mais formas de realização.
[000223] 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 alto de uma borda convexa, ou um pixel disposto em um canto curvo, em torno de um ponto mais alto de uma borda convexa.
[000224] A Fig. 5A mostra exemplos de condições para determinar categorias de bordas. A Fig. 5B mostra exemplos de formatos de borda entre um pixel reconstruído e pixels adjacentes e seus valores de pixel c, a e b.
[000225] 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 indicam, respectivamente, valores de pixel de pixels reconstruídos, tendo os índices a, b e c. Na Fig. 5B, um eixo x indica índices do pixel reconstruído atual e dos pixels adjacentes em dois lados do pixel reconstruído atual, e um eixo y indica valores de pixel de amostras.
[000226] A categoria 1 indica um caso, onde uma amostra atual corresponde a um ponto mais baixo de uma borda côncava, ou seja, um local de depressão. Conforme mostrado no gráfico 51 (Xc<Xa && Xc<Xb), 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.
[000227] A categoria 2 indica um caso, onde uma amostra atual é disposta em um canto curvo, em torno de um ponto mais baixo de uma borda côncava, ou seja, um canto côncavo. Conforme mostrado no gráfico 52 (Xc<Xa && Xc==Xb), se o pixel reconstruído atual c, entre os pixels adjacentes a e b, for disposto em um ponto extremo de uma curva descendente de uma borda côncava ou, como mostrado no gráfico 53 (Xc == Xa && Xc < Xb), se o pixel reconstruído atual c for disposto em uma posição inicial de uma curva ascendente de uma borda côncava, o pixel reconstruído atual pode ser classificado como a categoria 2.
[000228] A categoria 3 indica um caso, onde uma amostra atual é disposta em um canto curvo, em torno de um ponto mais alto de uma borda convexa, ou seja, um canto convexo. Conforme mostrado no gráfico 54 (Xc > Xb && Xc == Xa), se o pixel reconstruído atual c, entre os pixels adjacentes a e b, for disposto em uma posição inicial de uma curva descendente de uma borda convexa ou, como mostrado no gráfico 55 (Xc == Xb && Xc>Xa), se o pixel reconstruído atual c for disposto em um ponto extremo de uma curva ascendente de uma borda convexa, o pixel reconstruído atual pode ser classificado como categoria 3.
[000229] A categoria 4 indica um caso, onde uma amostra atual corresponde a um ponto mais alto de uma borda convexa, ou seja, um local de pico. Conforme mostrado no gráfico 56 (Xc > Xa && Xc > Xb), se o pixel reconstruído atual c, entre os pixels adjacentes a e b, corresponder a um ponto mais alto de uma borda convexa, o pixel reconstruído atual pode ser classificado como categoria 1.
[000230] Se o pixel reconstruído atual não satisfizer qualquer uma das condições das categorias 1, 2, 3 e 4, o pixel reconstruído atual não corresponde a uma borda e, portanto, é classificado como categoria 0, e um deslocamento de categoria 0 não precisa ser codificado.
[000231] De acordo com uma ou mais formas de realização, no que diz respeito aos pixels reconstruídos, correspondentes à mesma categoria, um valor médio de valores da 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.
[000232] As bordas côncavas das categorias 1 e 2 podem ser suavizadas, se os valores de pixel reconstruídos forem ajustados usando valores de deslocamento positivo, e podem ser aguçadas devido aos valores de deslocamento negativos. As bordas convexas das categorias 3 e 4 podem ser suavizadas devido aos valores de deslocamento negativos e podem ser aguçadas devido aos valores de deslocamento positivo.
[000233] O aparelho codificador de vídeo 10 pode não permitir o efeito agudo das bordas. Aqui, as bordas côncavas das categorias 1 e 2 precisam de valores de deslocamento positivos, e as bordas convexas das categorias 3 e 4 precisam 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. Nesse sentido, o aparelho codificador de vídeo 10 pode não transmitir o sinal do valor de deslocamento e pode transmitir apenas um valor absoluto do valor de deslocamento. Além disso, O aparelho decodificador de vídeo 20 pode não receber o sinal do valor de deslocamento e pode receber apenas um valor absoluto do valor de deslocamento.
[000234] Nesse sentido, o aparelho codificador de vídeo 10 pode codificar e transmitir valores de deslocamento, de acordo com categorias de uma classe de borda atual, e o aparelho decodificador de vídeo 20 pode ajustar pixels reconstruídos das categorias, através dos valores de deslocamento recebidos.
[000235] Por exemplo, se um valor de deslocamento de um tipo de borda for determinado como 0, o aparelho codificador de vídeo 10 pode transmitir apenas informações de valor zero como o valor de deslocamento.
[000236] Por exemplo, se um valor de deslocamento de um tipo de borda não for 0, o aparelho codificador de vídeo 10 pode transmitir apenas informações de valor zero e um valor absoluto como o valor de deslocamento. Um sinal do valor de deslocamento não precisa ser transmitido.
[000237] O aparelho decodificador de vídeo 20 lê as informações de valor zero, a partir do valor de deslocamento recebido, e pode ler o valor absoluto do valor de deslocamento, se o valor de deslocamento não for 0. O sinal do valor de deslocamento pode ser previsto, de acordo com uma categoria de borda, com base em um formato da borda, entre um pixel reconstruído e os pixels adjacentes.
[000238] Nesse sentido, o aparelho codificador de vídeo 10 pode classificar pixels, de acordo com as direções de borda e formatos de borda, pode determinar um valor de erro médio entre pixels, tendo as mesmas características que um valor de deslocamento, e pode determinar valores de deslocamento, de acordo com categorias. O aparelho codificador de vídeo 10 pode codificar e transmitir informações sobre tipo de SAO indicando um tipo de borda, as informações sobre classe de SAO indicando uma direção de borda e os valores de deslocamento.
[000239] O aparelho decodificador de vídeo 20 pode receber as informações sobre tipo de SAO, as informações sobre classe de SAO e os valores de deslocamento, e pode determinar uma direção de borda, de acordo com as informações sobre tipo de SAO e informações sobre classe de SAO. O aparelho decodificador de vídeo 20 pode determinar um valor de deslocamento de pixels reconstruídos de uma categoria correspondente a um formato, de acordo com a direção da borda, e pode ajustar os valores de pixel dos pixels reconstruídos pelo valor de deslocamento, minimizando, desse modo, um erro entre uma imagem original e uma imagem reconstruída.
[000240] Uma forma de realização para classificar pixels, com base em um tipo de banda, de acordo com as operações de SÃO, será, agora, descrita em detalhes.
[000241] De acordo com uma ou mais formas de realização, cada um dos valores de pixel, de pixels reconstruídos, pode pertencer a uma dentre uma pluralidade de bandas. Por exemplo, os valores de pixel podem ter um intervalo total de um valor mínimo Min de 0 até um valor máximo Max de 2A(p-1), de acordo com amostragem de p-bit. Se o intervalo total (Min, Max) dos valores de pixel for dividido em intervalos K, cada intervalo dos valores de pixel é referido como uma banda. Se Bk indicar um valor máximo de uma ka banda, bandas [Bo, Bi-1], [Bi, B2-I], [B2, B3-I],..., 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 maneira uniforme ou não uniforme.
[000242] Por exemplo, se valores de pixel forem classificados em bandas iguais de 8 bits de pixel, os valores de pixel podem ser divididos em 32 bandas. Mais detalhadamente, eles podem ser classificados em bandas [0, 7] [8, 15],..., [240, 247] e [248, 255].
[000243] Dentre uma pluralidade de bandas, classificadas de acordo com um tipo de banda, uma banda, a qual pertence cada um dos valores de pixel, de pixels reconstruídos, pode ser determinada. Além disso, um valor de deslocamento, indicando uma média de erros entre pixels originais e pixels reconstituídos em cada banda, pode ser determinado.
[000244] Nesse sentido, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem codificar, e transmitir e receber um deslocamento correspondente a cada uma das bandas classificadas, de acordo com um tipo de banda atual, e pode ajustar pixels reconstruídos pelo deslocamento.
[000245] Nesse sentido, no que diz respeito a um tipo de banda, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem classificar pixels reconstruídos de acordo com bandas, aos quais pertencem seus valores de pixel, podem determinar um deslocamento como uma média dos valores de erro de pixels reconstruídos, que pertencem à mesma banda, e podem ajustar os pixels reconstruídos pelo deslocamento, minimizando, dessa forma, um erro entre uma imagem original e uma imagem reconstruída.
[000246] Quando um deslocamento, de acordo com um tipo de banda, for determinado, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem classificar pixels reconstruídos em categorias, de acordo com uma posição de banda. Por exemplo, se o intervalo total dos valores de pixel for dividido em bandas K, 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.
[000247] No entanto, a fim de reduzir a quantidade de dados, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem restringir o número de categorias usadas para determinar os deslocamentos de acordo com as operações de SAO. Por exemplo, um número predeterminado de bandas, que são contínuas a partir de uma banda tendo uma posição inicial predeterminada, em um sentido em que um índice de banda é aumentado, pode ser atribuído como categorias, e apenas um deslocamento de cada categoria pode ser determinado.
[000248] Por exemplo, se uma banda tiver um índice de 12 for determinada como uma banda inicial, quatro bandas a partir da banda inicial, ou seja, 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. Da mesma forma, 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 da 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 da 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.
[000249] Nesse caso, informações sobre uma posição inicial de intervalo de banda, ou seja, uma posição de banda esquerda, são necessárias para determinar posições de bandas alocadas como categorias. Nesse sentido, o aparelho codificador de vídeo 10 pode codificar e transmitir as informações sobre a posição de banda inicial, como a classe de SAO. O aparelho codificador de vídeo 10 pode codificar e transmitir um tipo de SÃO, indicando um tipo de banda, uma classe de SAO e valores de deslocamento, de acordo com categorias.
[000250] O aparelho decodificador de vídeo 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 decodificador de vídeo 20 pode ler uma posição de banda inicial, a partir da classe de SAO. O aparelho decodificador de vídeo 20 pode determinar uma banda, à qual pertencem os pixels reconstruídos, dentre as quatro bandas da banda inicial, pode determinar um valor de deslocamento alocado para uma banda atual dentre os valores de deslocamento, de acordo com as categorias, e pode ajustar valores de pixel, de pixels reconstruídos, pelo valor de deslocamento.
[000251] Como acima mencionado, um tipo de borda e um tipo de banda são apresentados como tipos de SAO, e uma classe de SAO e uma categoria, de acordo com o tipo de SAO, são descritas em detalhes. Parâmetros de SAO codificados, e transmitidos e recebidos pelo aparelho codificador de vídeo 10 e pelo aparelho decodificador de vídeo 20, serão, agora, descritos em detalhes.
[000252] O aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem determinar um tipo de SAO, de acordo com um método para classificação de pixel, de pixels reconstruídos, de cada LCU.
[000253] O tipo de SAO pode ser determinado, de acordo com as características da imagem de cada bloco. Por exemplo, no que diz respeito a uma LCU, incluindo uma borda vertical, uma borda horizontal e uma borda diagonal, a fim de alterar os valores de borda, valores de deslocamento podem ser determinados através da classificação dos valores de pixel, de acordo com um tipo de borda. No que diz respeito a uma LCU, não incluindo uma região de borda, valores de deslocamento podem ser determinados, de acordo com a classificação de banda. Nesse sentido, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem sinalizar o tipo de SAO em relação a cada uma das LCUs.
[000254] O aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem determinar parâmetros de SAO em relação a cada LCU. Ou seja, tipos de SAO, de pixels reconstruídos de uma LCU, podem ser determinados, os pixels reconstruídos da LCU podem ser classificados em categorias, e valores de deslocamento podem ser determinados de acordo com as categorias.
[000255] Dentre os pixels reconstruídos incluídos na LCU, o aparelho codificador de vídeo 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.
[000256] De acordo com uma ou mais formas de realização, os parâmetros de SAO podem incluir um tipo de SAO, valores de deslocamento e uma classe de SAO. O aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem transmitir e receber os parâmetros de SAO determinados em relação a cada LCU.
[000257] Dentre os parâmetros de SAO de uma LCU, o aparelho codificador de vídeo 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 codificador de vídeo 10 também pode transmitir uma classe de SAO, indicando uma direção de borda, que é seguida pelo tipo de SAO, e valores de deslocamento, de acordo com categorias. Se o tipo de SAO for um tipo de banda, o aparelho codificador de vídeo 10 também pode transmitir uma classe de SAO, indicando uma posição de banda inicial, que é seguida pelo tipo de SAO e valores de deslocamento, de acordo com categorias.
[000258] O aparelho decodificador de vídeo 20 pode receber parâmetros de SAO de cada LCU, que inclui o tipo de SAO, os valores de deslocamento e a classe de SAO. Além disso, o aparelho decodificador de vídeo 20 pode selecionar um valor de deslocamento de uma categoria, à qual pertence cada pixel reconstruído, dentre os valores de deslocamento, de acordo com categorias, e pode ajustar o pixel reconstruído pelo valor de deslocamento selecionado.
[000259] Uma forma de realização para sinalizar valores de deslocamento dentre parâmetros de SAO será, agora, descrita.
[000260] A fim de transmitir os valores de deslocamento, o aparelho codificador de vídeo 10 também pode transmitir informações de valor zero. De acordo com as informações de valor zero, informações de sinal e um restante também podem ser transmitidos.
[000261] As informações de valor zero podem ser um sinalizador de 1-bit. Ou seja, um sinalizador '0', indicando que o valor de deslocamento é 0, ou um sinalizador '1', indicando que o valor de deslocamento não é 0, pode ser transmitido.
[000262] Se as informações de valor zero forem o sinalizador '0', as informações de sinal, ou o restante, não precisam ser codificadas. No entanto, se as informações de valor zero forem o sinalizador '1', as informações de sinal e o restante também podem ser transmitidos.
[000263] No entanto, como acima descrito, no que diz respeito 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 a categoria, as informações de sinal não precisam ser transmitida. Nesse sentido, se as informações de valor zero forem o sinalizador '1', o restante também pode ser transmitido.
[000264] De acordo com uma ou mais formas de realização, um valor de deslocamento, Off-set, pode ser anteriormente restringido dentro de um intervalo de um valor mínimo MinOffSet e um valor máximo MaxOffSet, antes do valor do deslocamento ser determinado (MinOffSet < Off-set < MaxOffSet).
[000265] Por exemplo, no que diz respeito a um tipo de borda, valores de deslocamento de pixels reconstruídos das categorias 1 e 2 podem ser determinados dentro de um intervalo de um valor mínimo de 0 até um valor máximo de 7. No que diz respeito ao tipo de borda, valores de deslocamento de pixels reconstruídos de categorias 3 e 4 podem ser determinados dentro de um intervalo de um valor mínimo de -7 até um valor máximo de 0.
[000266] Por exemplo, no que diz respeito a um tipo de banda, valores de deslocamento de pixels reconstruídos de todas as categorias podem ser determinados dentro de um intervalo de um valor mínimo de -7 até um valor máximo de 7.
[000267] A fim de reduzir bits de transmissão de um valor de deslocamento, um restante pode ser limitado a um valor de p-bit, ao invés de um número negativo. Neste caso, o restante 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 < Remainder < MaxOffSet - MinOffSet + 1 ^ 2Ap). Se o aparelho codificador de vídeo 10 transmitir o restante e o aparelho decodificador de vídeo 20 conhecer pelo menos um dentre o valor máximo e o valor mínimo, do valor de deslocamento, um valor de deslocamento original pode ser reconstruído usando apenas o restante recebido.
[000268] As Figs. 6A a 6C mostram relações entre primeiro e segundo componentes de crominância 61 e 62.
[000269] Durante operações para codificar e decodificar um vídeo de uma imagem colorida, informações de imagem são, geralmente, classificadas em um componente de luminância e primeiro e segundo componentes de crominância, para cada componente de cor, e armazenadas em uma memória. Nas Figs. 6A a 6C, os primeiro e segundo componentes de crominância 61 e 62 são armazenados na memória em uma ordem intercalada, entre os componentes de cor do mesmo bloco de imagem.
[000270] A Fig. 6A mostra exemplos que são considerados entre amostras vizinhas de um bloco à esquerda e de um bloco superior, quando uma previsão intra for executada nos primeiro e segundo componentes de crominância 61 e 62. O primeiro componente de crominância 61 pode se referir a um primeiro componente de crominância 65, vizinho ao bloco à esquerda, ou a um primeiro componente de crominância 63, vizinho do bloco superior. O segundo componente de crominância 62 pode se referir a um segundo componente de crominância 66, vizinho do bloco à esquerda, ou um segundo componente de crominância 64, vizinho do bloco superior.
[000271] No entanto, na previsão intra, os primeiro e segundo componentes de crominância 61 e 62 podem compartilhar uma direção de previsão intra. Desse modo, a previsão intra pode ser realizada, de forma simultânea, nos primeiro e segundo componentes de crominância 61 e 62, obtendo os primeiro e segundo componentes de crominância 63, 64, 65 e 66 do bloco à esquerda ou do bloco superior, que são armazenados, na memória, em ordem intercalada.
[000272] Quando uma compensação de movimento for realizada, um componente de luminância e os primeiro e segundo componentes de crominância 61 e 62 do mesmo bloco de imagem compartilham um vetor de movimento, e, assim, uma previsão inter pode ser executada, de maneira simultânea, nos primeiro e segundo componentes de crominância 61 e 62.
[000273] Quando uma filtragem de circuito for executada, filtros com o mesmo tamanho e coeficiente são usados para os primeiro e segundo componentes de crominância 61 e 62 e, portanto, a filtragem de circuito pode ser realizada, simultaneamente, nos primeiro e segundo componentes de crominância 61 e 62.
[000274] Por exemplo, quando uma operação de SAO de tipo de borda for executada, relações entre as operações de SAO, com respeito aos primeiro e segundo componentes de crominância 61 e 62 serão, agora, descritas com referência às Figs. 6B e 6C.
[000275] Assume-se, na Fig 6B, que uma direção de borda de SAO, de um componente de crominância atual 611, seja determinada como direção vertical, e a direção de borda SAO, de um segundo componente de crominância atual 612, seja diferentemente determinada como uma direção horizontal. Para executar uma operação de SAO no primeiro componente de crominância atual 611, primeiros componentes de crominância 613 e 615, dispostos acima e abaixo do primeiro componente de crominância atual 611, precisam ser obtidos a partir da memória. Para executar a operação de SAO no segundo componente de crominância atual 612, segundos componentes de crominância 623 e 625, dispostos à esquerda e à direita do segundo componente de crominância atual 612, precisam ser obtidos a partir da memória.
[000276] Os primeiro e segundo componentes de crominância 61 e 62 são armazenados na memória, em ordem intercalada, e, assim, as amostras armazenadas em diferentes direções podem não ser simultaneamente obtidas, a partir da memória, através de um processo de desintercalação. Após a operação de SAO ser executada no primeiro componente de crominância 61, através do processo de desintercalação, a operação de SAO é executada no segundo componente de crominância 62 e, então, o processo de desintercalação precisa ser executado.
[000277] Desse modo, quando direções de borda de SAO forem diferentes, a operação de SAO pode não ser simultaneamente executada nos primeiro e segundo componentes de crominância 61 e 62. Se a operação de SAO for executada, de forma sequencial, nos primeiro e segundo componentes de crominância 61 e 62, um estado de latência ocorre durante o processamento paralelo de codificação de vídeo, que pode resultar em um atraso em operações para codificação de vídeo inteiro.
[000278] No entanto, assume-se na Fig. 6 que as direções de borda de SAO do primeiro componente atual de crominância 611 e do segundo componente atual de crominância 612 sejam igualmente determinadas como as direções horizontais. Para executar a operação de SAO no primeiro componente de crominância atual 611, primeiros componentes de crominância 617 e 619, dispostos à esquerda e à direita do primeiro componente de crominância atual 611, podem ser obtidos a partir da memória. Para executar a operação de SAO em um segundo componente de crominância atual 621, os segundos componentes de crominância 623 e 625, dispostos à esquerda e à direita do segundo componente de crominância atual 621, podem ser obtidos a partir da memória. Nesse caso, amostras armazenadas na mesma direção podem ser simultaneamente obtidas a partir da memória e, portanto, a operação de SAO pode ser simultaneamente realizada nos primeiro e segundo componentes de crominância 61 e 62.
[000279] Desse modo, se os primeiro e segundo componentes de crominância 61 e 62 compartilharem um tipo de SAO, como mostrado na Fig. 6, a latência do processamento paralelo pode ser antecipadamente prevenida, e um número de bits de parâmetros de SAO, com relação aos componentes de crominância, pode ser duas vezes reduzido.
[000280] Agora, informações sobre mesclagem de SAO entre parâmetros de SAO, de acordo com formas de realização, serão abaixo descritas em detalhes.
[000281] Tipos de SAO e/ou valores de deslocamento de blocos adjacentes podem ser, provavelmente, os mesmos. O aparelho codificador de vídeo 10 pode comparar parâmetros de SAO de um bloco atual com parâmetros de SAO de blocos adjacentes e pode mesclar e codificar os parâmetros de SAO do bloco atual e dos blocos adjacentes, se os parâmetros de SAO forem os mesmos. 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. Nesse sentido, o aparelho codificador de vídeo 10 pode não codificar os parâmetros de SAO do bloco atual e pode codificar apenas as informações sobre mesclagem de SAO do bloco atual.
[000282] Antes dos parâmetros de SAO serem analisados, a partir de um fluxo de bits recebido, o aparelho decodificador de vídeo 20 pode inicialmente analisar as informações sobre mesclagem de SAO e pode determinar, se é para analisar os parâmetros de SAO. O aparelho decodificador de vídeo 20 pode determinar, se um bloco adjacente, tendo os mesmos parâmetros de SAO daqueles do bloco atual, existe, com base nas informações sobre mesclagem de SAO.
[000283] Por exemplo, se um bloco adjacente, tendo os mesmos parâmetros de SAO daqueles do bloco atual, existir, com base nas informações sobre mesclagem de SAO, o aparelho decodificador de vídeo 20 pode não 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 SAO do bloco atual. Nesse sentido, o aparelho decodificador de vídeo 20 pode reconstruir os parâmetros de SAO do bloco atual para serem os mesmos daqueles do bloco adjacente. Além disso, com base nas informações sobre mesclagem de SAO, um bloco adjacente, tendo parâmetros de SAO para serem considerados, pode ser determinado.
[000284] 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 sobre mesclagem de SAO, o aparelho decodificador de vídeo 20 pode analisar e reconstruir os parâmetros de SAO do bloco atual, a partir do fluxo de bits.
[000285] A Fig. 7A é um diagrama mostrando LCUs adjacentes 652 e 653 destinadas a mesclar parâmetros de SAO, de acordo com uma ou mais formas de realização.
[000286] O aparelho codificador de vídeo 10 pode determinar uma lista de candidatos de LCUs adjacentes a serem considerados para prever parâmetros de SAO de uma LCU atual 651, dentre as LCUs adjacentes reconstruídas antes da LCU atual 651. O aparelho codificador de vídeo 10 pode comparar parâmetros de SAO da LCU atual 651 e das LCUs adjacentes na lista de candidatos.
[000287] Por exemplo, de forma simples, as LCUs esquerda e superior 652 e 653 da LCU atual 651, em um quadro atual 65, podem ser incluídas na lista de candidatos.
[000288] Nesse sentido, o aparelho codificador de vídeo 10 pode comparar parâmetros de SAO das LCUs adjacentes incluídas na lista de candidatos com aqueles da LCU atual 651, de acordo com uma ordem de referência. Por exemplo, os parâmetros de SAO podem ser comparados àqueles da LCU atual 651, na ordem da LCU esquerda 653 para a LCU superior 652. Dentre as LCUs esquerda e superior comparadas 653 e 652, uma LCU, tendo os mesmos parâmetros de SAO daqueles da LCU atual 651, pode ser determinada como uma LCU de referência.
[000289] Para prever os parâmetros de SAO da LCU atual 651, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem fazer referência às mesmas LCUs adjacentes. Além disso, informações sobre mesclagem de SAO, indicando uma LCU tendo parâmetros de SAO a serem considerados, podem ser transmitidas e obtidas. O aparelho decodificador de vídeo 20 pode selecionar uma dentre as LCUs adjacentes, com base nas informações sobre mesclagem de SAO, e pode reconstruir os parâmetros de SAO da LCU atual 651 para serem os mesmos que os da LCU adjacente selecionada.
[000290] Por exemplo, assume-se que as LCUs esquerda e superior 653 e 652 sejam consideradas. O codificador de parâmetros de SAO 16 pode codificar informações sobre mesclagem de SAO à esquerda, indicando se os parâmetros de SAO da LCU esquerda 653, da LCU atual 651, são os mesmos que os da LCU atual 651, e informações sobre mesclagem de SAO superior, indicando se os parâmetros de SAO da LCU superior 652 são os mesmos que os da LCU atual 651, conforme as informações sobre mesclagem de SAO. Nesse caso, os parâmetros de SAO da LCU atual 651 e da LCU esquerda 653 podem ser inicialmente comparados, para determinar se eles são os mesmos e, em seguida, os parâmetros de SAO da LCU atual 651 e da LCU superior 652 podem ser comparados para determinar se eles são os mesmos. De acordo com um resultado da comparação, as informações sobre mesclagem de SAO podem ser determinadas.
[000291] Se os parâmetros de SAO de pelo menos uma dentre as LCUs esquerda e superior 653 e 652 forem os mesmos que os da LCU atual 651, o codificador de parâmetros de SAO 16 pode codificar apenas as informações sobre mesclagem de SAO superior ou esquerda e pode não codificar os parâmetros de SAO da LCU atual 651.
[000292] Se os parâmetros de SAO de ambas as LCUs esquerda e superior 653 e 652 forem diferentes daqueles da LCU atual 651, o codificador de parâmetros de SAO 16 pode codificar as informações sobre mesclagem de SAO superior ou esquerda e os parâmetros de SAO da LCU atual 651.
[000293] Os parâmetros de SAO, de acordo com os componentes de cor, serão, agora, descritos em detalhes.
[000294] O aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem, mutuamente, prever parâmetros de SAO entre componentes de cor.
[000295] O aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 podem executar uma operação de SAO em todos dentre um bloco de luminância e blocos de crominância, em um formato de cor YCrCb. Valores de deslocamento de um componente de luminância Y e componentes de crominância Cr e Cb, de uma LCU atual, podem ser, respectivamente, determinados.
[000296] Por exemplo, informações comuns sobre mesclagem de SAO podem ser aplicadas ao componente Y, componente Cr e componente Cb da LCU atual. Ou seja, com base em uma parte das informações sobre mesclagem de SAO, pode ser determinado se os parâmetros de SAO do componente Y são os mesmos que os do componente Y de uma LCU adjacente, pode ser determinado se parâmetros de SAO do componente Cr da LCU atual são os mesmos que os do componente Cr da LCU adjacente, e pode ser determinado se parâmetros de SAO do componente Cb da LCU atual são os mesmos que os do componente Cb da LCU adjacente.
[000297] Por exemplo, informações comuns sobre tipo de SAO podem ser aplicadas ao componente Cr e ao componente Cb da LCU atual. Ou seja, com base em uma parte das informações sobre tipo de SAO, pode ser determinado se a operação de SAO é, ou não, simultaneamente executada no componente Cb e no componente Cr. Com base em uma parte das informações sobre tipo de SAO, também pode ser determinado, se valores de deslocamento do componente Cr e do componente Cb foram determinados, de acordo com uma borda ou um tipo de banda. Se o tipo de SAO for o tipo de borda com base em uma parte das informações sobre tipo de SAO, o componente Cr e o componente Cb podem compartilhar a mesma direção de borda.
[000298] Com base em uma parte das informações sobre tipo de SAO, também pode ser determinado, se os valores de deslocamento do componente Cr e do componente Cb foram determinados, de acordo com uma borda ou um tipo de banda.
[000299] Com base em uma parte das informações sobre tipo de SAO, o componente Cr e o componente Cb também podem compartilhar a mesma classe de SAO. Se o tipo de SAO for o tipo de borda, com base em uma parte das informações sobre tipo de SAO, o componente Cr e o componente Cb podem compartilhar a mesma direção de borda. Se o tipo de SAO for o tipo de banda com base em uma parte das informações sobre tipo de SAO, o componente Cr e o componente Cb podem compartilhar a mesma posição inicial de banda esquerda.
[000300] Estruturas de sintaxe, em que parâmetros de SAO de acordo com componentes de cor de uma LCU atual são definidos, serão agora abaixo descritas em detalhes com referência às Figs. 7B a 7G. O aparelho decodificador de vídeo 20 pode analisar a sintaxe mostrada nas Figs. 7B a 7G, obter os parâmetros de SAO e executar uma operação de SAO.
[000301] A Fig. 7B mostra estruturas de sintaxe de um cabeçalho de fatias 700 e de dados de fatia 705, de acordo com uma ou mais formas de realização.
[000302] O cabeçalho de fatias 700, de acordo com uma forma de realização, inclui um ou mais parâmetros 701, 702 e 703, indicando se a operação de SAO é executada em uma fatia atual.
[000303] O aparelho decodificador de vídeo 20 pode obter 'slice_sample_adaptive_offset_flag [0]' 701, a partir do cabeçalho de fatias 700, e determinar, se é para realizar a operação de SAO em um componente de luminância.
[000304] Se a operação de SAO para o componente de luminância for executada, o aparelho decodificador de vídeo 20 pode obter 'slice_sample_adaptive_offset_ flag[1]' 702, a partir do cabeçalho de fatias 700, e determinar, se é para realizar a operação de SAO em um primeiro componente de SAO de crominância.
[000305] Nesse sentido, o aparelho decodificador de vídeo 20 também pode não obter um parâmetro que indica se é para executar a operação de SAO em um segundo componente de crominância, a partir do cabeçalho de fatias 700. Informações 'slice_sample_adaptive _offset_flag [2]' 703, indicando se é para executar a operação de SAO no segundo componente de crominância, podem ser igualmente previstas, a partir do 'slice_sample_adaptive_offset_flag[1]' 702, obtido a partir do cabeçalho da fatia 700. Assim, a operação de SAO pode, ou não, ser executada simultaneamente nos primeiro e segundo componentes de crominância.
[000306] O aparelho decodificador de vídeo 20 pode determinar, se é para obter um parâmetro de SAO 706, de acordo com as LUCs, a partir dos dados de fatia 705, com base em 'slice_sample_adaptive_offset_flag [0]' 701, 'slice_sample_adaptive _offset_flag[1]' 702 e 'slice_sample_adaptive_offset_flag[2]' 703, que são determinados a partir do cabeçalho de fatias 700.
[000307] As Figs. 7C e 7D mostram estruturas de sintaxe de parâmetros de SAO 706 e 709, em relação às LCUs, de acordo com uma ou mais formas de realização.
[000308] O aparelho decodificador de vídeo 20 pode obter informações sobre mesclagem de SAO à esquerda 707, a partir do parâmetro de SAO 706 'sao_unit_cabac(rx, ry, cldx)' em relação às LCUs. Nesse sentido, as informações comuns sobre mesclagem de SAO à esquerda 707 'sao_merge_left_flag[rx][ry]' podem ser obtidas sem distinção de um componente de luminância e primeiro e segundo componentes de crominância. Nesse sentido, o aparelho decodificador de vídeo 20 pode, simultânea e igualmente, determinar, se é para usar um parâmetro de SAO de uma LCU esquerda como parâmetros de SAO de um componente de luminância e primeiro e segundo componentes de crominância de uma LCU atual, com base nas informações comuns sobre mesclagem de SAO à esquerda 707.
[000309] Se for determinado que o parâmetro de SAO da LCU esquerda não é considerado, com base nas informações sobre mesclagem de SAO à esquerda 707, o aparelho decodificador de vídeo 20 pode obter informações sobre mesclagem de SAO superior 708 'sao_merge_up_flag[rx][ry]' a partir do parâmetro de SAO 706, no que diz respeito às LCUs. Da mesma forma, informações comuns sobre mesclagem de SAO à esquerda 707 podem ser obtidas sem distinção do componente de luminância e dos primeiro e segundo componentes de crominância. Nesse sentido, o aparelho decodificador de vídeo 20 pode, simultânea e igualmente, determinar, se é para usar um parâmetro de SAO de uma LCU superior como parâmetros de SAO dos primeiro e segundo componentes de crominância e do componente de luminância da LCU atual, com base nas informações comuns sobre mesclagem de SAO superior 708.
[000310] Se for determinado que o parâmetro de SAO da LCU superior também não é considerado, com base nas informações sobre mesclagem de SAO superior 708, o aparelho decodificador de vídeo 20 pode obter, diretamente, um parâmetro de SAO atual 709, com relação à LCU atual, a partir do parâmetro de SAO 706 em relação às LCUs.
[000311] O parâmetro de SAO atual 709 pode incluir informações sobre tipo de SAO 711 da LCU atual. O aparelho decodificador de vídeo 20 pode obter as informações sobre tipo de SAO 711 separadamente definidas, no que diz respeito a um componente de luminância e componentes de crominância, a partir do parâmetro de SAO atual 709. Assim, as informações comuns sobre tipo de SAO 711 'sao_type_idx [cIdx][rx][ry]' podem ser obtidas, no que diz respeito aos primeiro e segundo componentes de crominância. Por exemplo, se as informações sobre tipo de SAO 711 forem obtidas em relação ao primeiro componente de crominância da LCU atual, informações sobre tipo de SAO, em relação ao segundo componente de crominância, podem ser previstas a partir das informações sobre tipo de SAO 711, em relação ao segundo componente de crominância.
[000312] 1 (um) bit, indicando se a operação de SAO foi executada na LCU atual, pode ser obtido, a partir das informações sobre tipo de SAO 711. Se for determinado que a operação de SAO foi realizada com base em um primeiro 1 bit, um segundo 1 bit pode ser obtido a partir das informações sobre tipo de SAO 711, e pode ser determinado, se o tipo de SAO da LCU atual é um tipo de borda ou um tipo de banda do segundo 1 bit.
[000313] Se o segundo 1 bit das informações sobre tipo de SAO 711 for determinado como sendo o tipo de borda, o aparelho decodificador de vídeo 20 pode obter informações sobre uma categoria de borda a partir de bits restantes das informações sobre tipo de SAO 711.
[000314] Se o segundo 1 bit das informações sobre tipo de SAO 711 for determinado como sendo o tipo de banda, o aparelho decodificador de vídeo 20 pode obter informações relativas uma categoria de banda a partir dos bits restantes das informações sobre tipo de SAO 711.
[000315] O aparelho decodificador de vídeo 20 pode determinar, se é para realizar a operação de SAO no componente de luminância da LCU atual, com base no 1 bit das informações sobre tipo de SAO 711, em relação ao componente de luminância. O aparelho decodificador de vídeo 20 pode determinar, se é para executar a operação de SAO nos primeiro e segundo componentes de crominância da LCU atual, com base no 1 bit das informações sobre tipo de SAO 711 em relação aos componentes de crominância.
[000316] Se for determinado que a operação de SAO no componente de luminância ou nos componentes de crominância da LCU atual não foi realizada, com base nas informações sobre tipo de SAO 711, para o componente de luminância ou os componentes de crominância, um próximo bit não é obtido, a partir das informações sobre tipo de SAO 711. As informações sobre tipo de SAO 711 podem ser recebidas em forma de código unário truncado.
[000317] Somente uma parte das informações sobre tipo de SAO 711 para os componentes de crominância, de acordo com uma forma de realização, é codificada, as informações sobre tipo de SAO 711, determinadas para o primeiro componente de crominância, podem ser determinadas como informações sobre tipo de SAO para o segundo componente de crominância.
[000318] O aparelho decodificador de vídeo 20 pode obter informações sobre classe de borda para o componente de luminância e informações sobre classe de borda para os componentes de crominância a partir do parâmetro de SAO 709 'sao_offset_cabac(rx,ry,cIdx)' com relação à LCU atual. Uma classe de borda pode indicar quatro direções de borda, incluindo uma direção de borda horizontal (0°), uma direção de borda vertical (90°), uma direção de borda diagonal a 135° e uma direção de borda diagonal a 45°, e, portanto, a classe de borda pode ser definida como 2 bits.
[000319] A Fig. 7F mostra uma estrutura de sintaxe de parâmetros de SAO com relação aos tipos de SAO, de acordo com uma ou mais formas de realização. Referindo-se às Figs. 7D e 7F, se uma operação de SAO for realizada, com base nas informações sobre tipo de SAO 711, os parâmetros de SAO 706 e 709 também podem incluir, pelo menos, um dentre um valor de deslocamento 713 'sao_offset[cIdx][rx][ry][i]' e informações sobre sinal de deslocamento 715 'sao_offset_sign[cIdx][rx][ry][i]'.
[000320] A modelagem de contexto para codificação CABAC do valor de deslocamento 713, será descrita com referência à Fig. 7E. A Fig. 7E mostra uma estrutura de sintaxe de informações de contexto para codificação CABAC de parâmetros de SAO, de acordo com uma ou mais formas de realização.
[000321] Ou seja, como mostrado nas Figs. 7D e 7F, o aparelho decodificador de vídeo 20 não obtém o valor de deslocamento 713, a partir de ambos os parâmetros de SAO 706 e 709, mas pode, primeiramente, obter um primeiro 1 bit 721 'sao_affset_abs_1stbin[cIdx][rx][ry][i]' da magnitude do valor de deslocamento 713, como mostrado na Fig. 7E. Quando o primeiro 1 bit não for 0, uma vez que o valor de deslocamento 713 não é 0, o aparelho decodificador de vídeo 20 obtém bits restantes 723 'sao_offset_abs_remain_bins[cIdx][rx][ry][i]' da magnitude do valor de deslocamento 713.
[000322] O primeiro 1 bit e os bits restantes do valor de deslocamento 713 são separados entre si, e, assim, os bits restantes podem ser codificados por CABAC, em um modo bypass.
[000323] Somente quando o valor de deslocamento 713 não for 0, o aparelho decodificador de vídeo 20 pode obter as informações sobre sinal de deslocamento 715 'sao_offset_sign[cIdx][rx][ry][i]' do valor de deslocamento 713, a partir dos parâmetros de SAO 706 e 709.
[000324] As informações sobre sinal de deslocamento 715 'sao_offset_sign[cIdx][rx][ry][i]' podem ser obtidas, somente quando um tipo de SAO não for um tipo de banda e o valor de deslocamento 713 não for 0. Quando o tipo de SAO for um tipo de borda, um sinal do valor de deslocamento 713 pode ser determinado, de acordo com a condição de uma classe de borda ser um local de pico, um local de depressão, uma borda côncava ou uma borda convexa.
[000325] Referindo-se à Fig 7F, quando o tipo de SAO for o tipo de banda, informações sobre posição inicial de banda à esquerda 717 'sao_band_position[cIdx][rx][ry]', bem como as informações sobre sinal de deslocamento 715, podem ser obtidas, a partir do parâmetro de SAO 706.
[000326] O aparelho decodificador de vídeo 20 pode executar codificação CABAC nos parâmetros de SAO 706 e 709. Para executar codificação CABAC nos parâmetros de SAO 706 e 709, modelagem de contexto, em relação às informações sobre mesclagem de SAO à esquerda 707, as informações sobre mesclagem de SAO superior 708, informações sobre o valor de deslocamento 713 e as informações sobre tipo de SAO 711, dentre os parâmetros de SAO 706 e 709, podem ser executadas.
[000327] A magnitude do valor absoluto do valor de deslocamento 713, nas informações sobre o valor de deslocamento 713, pode ser restringida de acordo com uma profundidade de bits. Um maior valor da magnitude de valor absoluto pode ser determinado, de acordo com uma equação abaixo. Offset_abs_max = (1 <<(Min(bitDepth, 10)-5))-1
[000328] Por exemplo, em decodificação de profundidade de 8 bits, a magnitude de valor absoluto do valor deslocamento 713 pode ser de 0 a 7. Outro exemplo, em decodificação de profundidade de 10 bits, a magnitude de valor absoluto do valor de deslocamento 713 pode ser 0 e 31.
[000329] Para garantir a restrição de magnitude do valor de deslocamento 713, as informações sobre o valor de deslocamento 713 podem ser codificadas, usando o código unário truncado.
[000330] O aparelho decodificador de vídeo 20 pode usar apenas o modelo de contexto, em relação ao primeiro 1 bit, das informações sobre o valor de deslocamento 713. O aparelho decodificador de vídeo 20 pode executar CABAC - decodificação nos bits restantes das informações sobre o valor de deslocamento 713 no modo bypass.
[000331] As informações sobre tipo de SAO 711 incluem valores de 0 a 5. CABAC - decodificação usando 2 modelos de contexto pode ser executada no primeiro 1 bit das informações sobre tipo de SAO 711, indicando se é para executar a operação de SAO da LCU atual. CABAC - decodificação pode ser realizada nos bits restantes das informações sobre tipo de SAO 711, exceto no primeiro 1 bit no modo bypass.
[000332] As informações sobre mesclagem de SAO à esquerda 707 podem ser CABAC - decodificadas por usando um modelo único de contexto, compartilhado pelo componente de luminância e pelos primeiro e segundo componentes de crominância. As informações sobre mesclagem de SAO superior 708 podem ser CABAC - decodificadas usando o modelo único de contexto, compartilhado pelo componente de luminância e pelos primeiro e segundo componentes de crominância.
[000333] Portanto, um número total de 5 modelos de contexto pode ser usado para executar CABAC - decodificação nos parâmetros de SAO 706 e 709. Assim, três modelos de contexto podem ser reduzidos, em comparação com um caso onde modelos de contexto são determinados em relação a todos os binários do valor de deslocamento 713, e as informações sobre mesclagem de SAO à esquerda 707 não são compartilhadas pelos componentes de cor. Uma quantidade de armazenamento de dados, que precisa ser armazenada em uma memória, pode ser reduzida, devido à diminuição dos modelos de contexto para CABAC - decodificação. Binários de uma pluralidade de parâmetros de SAO são codificados por CABAC no modo bypass e, portanto, uma quantidade de bits de cálculo e transmissão por CABAC pode ser reduzida.
[000334] As informações 717 'sao_band_position[cIdx][rx] [ry]' sobre a posição inicial da banda esquerda, incluídas no parâmetro de SAO 709, têm um comprimento imutável de 5 bits e um valor maior de 31. O aparelho decodificador de vídeo 20 pode executar CABAC - decodificação nas informações 717 sobre a posição inicial de banda esquerda em um modo bypass do comprimento imutável de bits.
[000335] Um processo, para analisar várias partes de informações relacionadas ao SAO a partir de parâmetros de SAO, através de CABAC - decodificação, será agora descrito.
[000336] Um tipo de SAO de um componente de luminância é analisado a partir de parâmetros de SAO. Se o tipo de SAO for um tipo externo (OFF), uma vez que o ajuste de deslocamento, de acordo com as operações de SAO, não é executado no componente de luminância, parâmetros de SAO de um componente de crominância podem ser analisados.
[000337] Se o tipo de SAO do componente de luminância for um tipo de borda (EO), valores de deslocamento de luminância de quatro categorias podem ser analisados. Os valores de deslocamento do tipo de borda podem ser analisados sem informações de sinal. Uma classe de borda de luminância (classe EO de Luminância) de 2 bits pode ser analisada a partir de parâmetros de SAO. Uma direção de borda do componente de luminância da LCU atual pode ser determinada com base na classe de borda de luminância.
[000338] Conforme acima descrito, uma vez que os valores de deslocamento de quatro categorias, indicando os formatos de borda, são recebidos, um total de quatro valores de deslocamento é recebido. Visto que cada pixel de luminância reconstruído da LCU atual pode ser comparado aos pixels adjacentes, de acordo com uma direção de borda e, portanto, seu formato de borda e sua categoria podem ser determinados, um valor de deslocamento de uma categoria atual pode ser escolhido dentre os valores de deslocamento recebidos. Um valor de pixel do pixel de luminância reconstruído pode ser ajustado, usando o valor de deslocamento selecionado.
[000339] Se o tipo de SAO do componente de luminância for um tipo de banda (BO), valores de deslocamento de luminância de quatro categorias podem ser analisados. Os valores de deslocamento do tipo de banda podem ser analisados juntamente com informações de sinal. Uma classe de banda de luminância de 5 bits pode ser analisada. Uma posição inicial de banda esquerda pode ser determinada dentre uma pluralidade de bandas de valores de pixel de pixels reconstruídos da LCU atual, com base na classe de banda de luminância.
[000340] Conforme acima descrito, uma vez que valores de deslocamento de quatro categorias, indicando quatro bandas contínuas, a partir de uma posição de banda inicial, são recebidos, um total de quatro valores de deslocamento é recebido. Uma vez que uma banda pode ser determinada, a qual pertence cada pixel de luminância reconstruído da LCU atual, e, portanto, sua categoria pode ser determinada, um valor de deslocamento de uma categoria atual pode ser escolhido dentre os valores de deslocamento recebidos. Um valor de pixel do pixel de luminância reconstruído pode ser ajustado, usando o valor de deslocamento selecionado.
[000341] Então, um tipo de SAO de um componente de crominância é analisado a partir de parâmetros de SAO. O tipo de SAO pode ser comumente aplicado a um componente Cr e a um componente Cb. Se o tipo de SAO for um tipo externo (OFF), uma vez que o ajuste de deslocamento, de acordo com operações de SAO, não é executado no componente de crominância, o processo na LCU atual é finalizado.
[000342] Se o tipo de SAO do componente de crominância for um tipo de borda (EO), valores de deslocamento Cb de quatro categorias podem ser analisados, a partir de parâmetros de SAO. Os valores de deslocamento Cb do tipo de borda podem ser analisados sem informações de sinal. Uma classe de borda de crominância (classe EO de Crominância) de 2 bits pode ser analisada a partir de parâmetros de SAO. Uma direção de borda do componente de crominância da LCU atual pode ser determinada com base na classe de borda de crominância. A classe de borda de crominância também pode ser comumente aplicada ao componente Cr e ao componente Cb. Valores de deslocamento Cr de quatro categorias podem ser analisados a partir de parâmetros de SAO.
[000343] Semelhante ao ajuste de deslocamento no tipo de borda do componente de luminância, em cada um dos componentes Cr e Cb, um valor de deslocamento de uma categoria atual pode ser selecionado dentre os valores de deslocamento recebidos. Um valor de pixel de um pixel reconstruído do componente Cr ou do componente Cb pode ser ajustado, usando o valor de deslocamento selecionado.
[000344] Se o tipo de SAO do componente de crominância for um tipo de banda (BO), valores de deslocamento do componente Cb de quatro categorias podem ser analisados, a partir de parâmetros de SAO, juntamente com informações de sinal. Uma classe de banda Cb de 5 bits pode ser analisada a partir de parâmetros de SAO. Uma posição inicial da banda esquerda Cb de pixels reconstruídos do componente Cb da LCU atual pode ser determinada, com base na classe de banda Cb. Valores de deslocamento do componente Cr de quatro categorias podem ser analisados juntamente com as informações de sinal. Uma classe de banda Cr de 5 bits pode ser analisada. Uma posição inicial de banda esquerda Cr de pixels reconstruídos do componente Cr da LCU atual pode ser determinada com base na classe de banda Cr.
[000345] Semelhante ao ajuste de deslocamento no tipo de banda do componente de luminância, em cada um dos componentes Cr e Cb, um valor de deslocamento de uma categoria atual pode ser selecionado dentre os valores de deslocamento recebidos. Um valor de pixel de um pixel reconstruído do componente Cr ou do componente Cb pode ser ajustado, usando o valor de deslocamento selecionado.
[000346] Por conseguinte, o aparelho codificador de vídeo 10 e o aparelho decodificador de vídeo 20 ou 30, usando operações de SAO, podem classificar os valores de pixel de cada LCU, de acordo com características de imagem, tal como um tipo de borda ou um tipo de banda, podem sinalizar um valor de deslocamento, que é um valor de erro médio dos valores de pixel tendo as mesmas características, e pode ajustar valores de pixel imprevisíveis de pixels reconstruídos, através do valor de deslocamento, minimizando, desse modo, um erro entre uma imagem original e uma imagem reconstruída.
[000347] No aparelho codificador de vídeo 10 e no aparelho decodificador de vídeo 20, conforme acima descrito, dados de vídeo podem ser divididos em LCUs, cada LCU pode ser codificada e decodificada com base em unidades de codificação tendo uma estrutura em árvore, e cada LCU pode determinar valores de deslocamento, de acordo com a classificação de pixel. A seguir, um método para codificação de vídeo, um aparelho codificador de vídeo, um método para decodificação de vídeo e um aparelho decodificador de vídeo, com base em unidades de codificação com uma estrutura em árvore e unidades de transformação, serão descritos com referência às Figs. 1A a 20.
[000348] A Fig. 8 é um diagrama de blocos de um aparelho codificador de vídeo 100, com base em unidades de codificação, de acordo com uma estrutura em árvore, de acordo com uma ou mais formas de realização. Para conveniência de explicação, "aparelho codificador de vídeo 100, com base em unidades de codificação, de acordo com uma estrutura em árvore" é, a seguir, referido como "aparelho codificador de vídeo".
[000349] O aparelho codificador de vídeo 100, envolvendo previsão de vídeo com base em unidades de codificação, de acordo com uma estrutura em árvore, inclui um divisor de LCU 110, um determinador de unidade de codificação 120 e uma unidade emissora 130.
[000350] O divisor de LCU 110 pode dividir um quadro atual, com base em uma LCU, 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 LCU, dados de imagem do quadro atual podem ser divididos em, pelo menos, uma LCU. A LCU, de acordo com uma ou mais formas de realizaçã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 emitidos para o determinador de unidade de codificação 120, de acordo com pelo menos uma LCU.
[000351] Uma unidade de codificação, de acordo com uma ou mais formas de realização, pode ser caracterizada por uma profundidade e um tamanho máximo. A profundidade denota o número de vezes que a unidade de codificação é espacialmente dividida, a partir da LCU, e conforme a profundidade aumenta, unidades de codificação mais profundas, de acordo com profundidades, podem ser divididas, a partir da LCU, em uma unidade de codificação menor (SCU). Uma profundidade da LCU é uma profundidade superior e uma profundidade da SCU é uma profundidade inferior. Uma vez que um tamanho de uma unidade de codificação, correspondente a cada profundidade, diminui à medida que a profundidade da LCU aumenta, uma unidade de codificação correspondente a uma profundidade superior pode incluir uma pluralidade de unidades de codificação correspondentes às profundidades menores.
[000352] Conforme acima descrito, os dados de imagem do quadro atual são divididos nas LCUs, de acordo com um tamanho máximo da unidade de codificação, e cada uma das LCUs pode incluir unidades de codificação mais profundas, que são divididas de acordo com a profundidade. Uma vez que a LCU, de acordo com uma ou mais formas de realização, é dividida de acordo com profundidades, os dados de imagem do domínio espacial, incluídos na LCU, podem ser classificados hierarquicamente, de acordo com profundidades.
[000353] Uma profundidade máxima e um tamanho máximo de uma unidade de codificação, que limitam o número total de vezes que uma altura e uma largura da LCU são hierarquicamente divididas, podem ser predeterminados.
[000354] O determinador de unidade de codificação 120 codifica pelo menos uma região dividida, obtida pela divisão de uma região da LCU, de acordo com profundidades, e determina uma profundidade para emitir um dado de imagem codificado definitivamente, de acordo com pelo menos uma região dividida. Em outras palavras, o determinador de unidade de codificação 120 determina uma profundidade codificada, através da codificação dos dados de imagem nas unidades de codificação mais profundas, de acordo com profundidades, de acordo com a LCU do quadro atual, e seleciona uma profundidade tendo o erro mínimo de codificação. A profundidade codificada determinada e os dados de imagem codificados, de acordo com a profundidade codificada determinada, são emitidos para a unidade emissora 130.
[000355] Os dados de imagem na LCU são codificados com base nas unidades de codificação mais profundas, correspondentes a, pelo menos, uma profundidade igual ou inferior à profundidade máxima, e os resultados de codificação dos dados de imagem são comparados com base em cada uma das unidades de codificação mais profundas. Uma profundidade tendo o erro mínimo de codificação pode ser selecionada, depois de comparar os erros de codificação das unidades de codificação mais profundas. Pelo menos uma profundidade codificada pode ser selecionada para cada LCU.
[000356] O tamanho da LCU é dividido, conforme uma unidade de codificação é hierarquicamente dividida, de acordo com profundidades, e conforme o número de unidades de codificação aumenta. Além disso, mesmo se unidades de codificação corresponderem à mesma profundidade em uma LCU, é determinado se é para dividir cada uma das unidades de codificação correspondentes à mesma profundidade que uma profundidade inferior, medindo, separadamente, um erro de codificação dos dados de imagem de cada unidade de codificação. Nesse sentido, mesmo quando dados de imagem forem incluídos em uma LCU, os erros de codificação podem diferir, de acordo com as regiões em uma LCU, e, assim, as profundidades codificadas podem diferir, de acordo com regiões nos dados de imagem. Assim, uma ou mais profundidades codificadas podem ser determinadas em uma LCU, e os dados de imagem da LCU podem ser divididos, de acordo com unidades de codificação de pelo menos uma profundidade codificada.
[000357] Nesse sentido, o determinador de unidade de codificação 120 pode determinar unidades de codificação tendo uma estrutura em árvore, incluídas na LCU. As 'unidades de codificação tendo uma estrutura em árvore', de acordo com uma ou mais formas de realização, incluem unidades de codificação que correspondem a uma profundidade determinada como sendo a profundidade codificada, dentre todas as unidades de codificação mais profundas incluídas na LCU. Uma unidade de codificação de uma profundidade codificada pode ser, hierarquicamente, determinada de acordo com profundidades na mesma região da LCU, e pode ser determinada, de forma independente, em diferentes regiões. Da mesma forma, uma profundidade codificada em uma região atual pode ser determinada, de forma independente, a partir de uma profundidade codificada em outra região.
[000358] Uma profundidade máxima, de acordo com uma ou mais formas de realização, é um índice relacionado ao número de vezes de divisão de uma LCU em uma SCU. Uma primeira profundidade máxima, de acordo com uma ou mais formas de realização, pode denotar o número total de vezes de divisão da LCU na SCU. Uma segunda profundidade máxima, de acordo com uma ou mais formas de realização, pode denotar o número total de níveis de profundidade da LCU na SCU. Por exemplo, quando uma profundidade da LCU for 0, uma profundidade de uma unidade de codificação, em que a LCU é dividida uma vez, pode ser definida como 1 e uma profundidade de uma unidade de codificação, em que a LCU é dividida duas vezes, pode ser definida como 2. Aqui, se a SCU for uma unidade de codificação, em que a LCU é dividida quatro vezes, existem 5 níveis de profundidade 0, 1, 2, 3 e 4 e, assim, a primeira profundidade máxima pode ser definida como 4, e a segunda profundidade máxima pode ser definida como 5.
[000359] A transformação e codificação por previsão podem ser realizadas, de acordo com a LCU. A transformação e codificação por previsão também são executadas com base nas unidades de codificação mais profundas, de acordo com uma profundidade igual, ou profundidades inferiores, à profundidade máxima, de acordo com a LCU.
[000360] Uma vez que o número de unidades de codificação mais profundas aumenta, sempre que a LCU é dividida de acordo com profundidades, a codificação, incluindo a transformação e a codificação por previsão, é executada em todas as unidades de codificação mais profundas, geradas conforme a profundidade aumenta. Para conveniência de descrição, a transformação e codificação por previsão serão agora descritas, com base em uma unidade de codificação de uma profundidade atual, em uma LCU.
[000361] O aparelho codificador 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, tais como codificação por previsão, transformação e codificação por entropia, são executadas e, nesse momento, a mesma unidade de dados pode ser usada para todas as operações, ou unidades de dados diferentes podem ser utilizadas para cada operação.
[000362] Por exemplo, o aparelho codificador de vídeo 100 pode selecionar, não apenas uma unidade de codificação para codificar os dados de imagem, mas também uma unidade de dados diferente da unidade de codificação, a fim de realizar a codificação por previsão nos dados de imagem na unidade de codificação.
[000363] Para realizar codificação por previsão na LCU, a codificação por previsão pode ser realizada com base em uma unidade de codificação correspondente a uma profundidade codificada, ou seja, com base em uma unidade de codificação, que já não é mais dividida em unidades de codificação correspondentes a uma profundidade inferior. A seguir, a unidade de codificação, que já não é mais dividida e se torna uma unidade de base para codificação por previsão, será agora referida como uma 'unidade de previsão'. Uma partição, obtida pela divisão da unidade de previsão, pode incluir uma unidade de previsão ou uma unidade de dados obtidos pela divisão de pelo menos uma dentre a altura e a largura da unidade de previsão. Uma partição é uma unidade de dados, onde uma unidade de previsão de uma unidade de codificação é dividida, e uma unidade de previsão pode ser uma partição, tendo o mesmo tamanho que uma unidade de codificação.
[000364] Por exemplo, quando uma unidade de codificação de 2N*2N (onde N é um inteiro positivo) já não é mais dividida e se torna uma unidade de previsão de 2N*2N, e um tamanho de uma partição pode ser 2N*2N, 2N*N, 2N*N ou NxN. Exemplos de um tipo de partição incluem partições simétricas, que são obtidos pela divisão simétrica de uma altura ou largura da unidade de previsão, partições obtidas pela divisão assimétrica da altura ou largura da unidade de previsão, tais como 1:n ou n:1, partições que são obtidas pela divisão geométrica da unidade de previsão e partições tendo formatos arbitrários.
[000365] Um modo de previsão da unidade de previsão pode ser pelo menos um dentre um modo intra, um modo inter e um modo ignorar. Por exemplo, o modo intra, ou o modo inter, pode ser executado na partição de 2N*2N, 2N*N, 2N*N ou NxN. Além disso, o modo ignorar pode ser realizado somente na partição de 2N*2N. A codificação é realizada, de forma independente, em uma unidade de previsão em uma unidade de codificação, selecionando, desse modo, um modo de previsão tendo um menor erro de codificação.
[000366] O aparelho codificador de vídeo 100 também pode executar a transformação nos dados de imagem em uma unidade de codificação, com base não apenas na unidade de codificação para a codificação dos dados de imagem, mas também com base em uma unidade de dados, que seja diferente da unidade de codificação. Para realizar a transformação na unidade de codificação, a transformação pode ser realizada com base em uma unidade de dados que tenha 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.
[000367] A unidade de transformação na unidade de codificação pode ser recursivamente dividida em regiões de tamanhos menores, de forma similar àquela da unidade de codificação, de acordo com a estrutura em árvore. Desse modo, resíduos na unidade de codificação podem ser divididos, de acordo com a unidade de transformação tendo a estrutura em árvore, de acordo com profundidades de transformação.
[000368] Uma profundidade de transformação, indicando o número de vezes de divisão para alcançar a unidade de transformação pela divisão da altura e da 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 2N*2N, uma profundidade de transformação pode ser 0, quando o tamanho de uma unidade de transformação for 2N*2N, pode ser 1, quando o tamanho da unidade de transformação for NxN, e pode ser 2, quando o tamanho da unidade de transformação for N/2xN/2. Em outras palavras, a unidade de transformação tendo a estrutura em árvore pode ser definida de acordo com as profundidades de transformação.
[000369] Informações de codificação, de acordo com unidades de codificação que correspondem a uma profundidade codificada, requerem não só informações sobre a profundidade codificada, mas também informações relacionadas à codificação por previsão e transformação. Nesse sentido, o determinador de unidade de codificação 120 não só determina uma profundidade codificada, tendo um erro mínimo de codificação, mas também determina um tipo de partição em uma unidade de previsão, um modo de previsão, de acordo com unidades de previsão, e um tamanho de uma unidade de transformação para transformação.
[000370] Unidades de codificação, de acordo com uma estrutura em árvore em uma LCU, e métodos para determinar uma unidade/ partição de previsão e uma unidade de transformação, de acordo com uma ou mais formas de realização, serão descritos abaixo em detalhes, com referência às Figs. 7 a 19.
[000371] O determinador de unidade de codificação 120 pode medir um erro de codificação das unidades de codificação mais profundas, de acordo com profundidades, usando Otimização de Taxa-Distorção, com base em multiplicadores de Lagrange.
[000372] A unidade emissora 130 emite os dados de imagem da LCU, que são codificados com base em pelo menos 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.
[000373] Os dados de imagem codificados podem ser obtidos pela codificação de resíduos de uma imagem.
[000374] As informações sobre o modo de codificação, de acordo com a profundidade codificada, podem incluir informações sobre a profundidade codificada, sobre o tipo de partição na unidade de previsão, o modo de previsão e o tamanho da unidade de transformação.
[000375] As informações sobre a profundidade codificada podem ser definidas usando informações de divisão, de acordo com profundidades, que indicam se a codificação é executada em unidades de codificação de uma profundidade inferior, em vez de uma profundidade atual. Se a profundidade atual da unidade de codificação atual for a profundidade codificada, dados de imagem na unidade de codificação atual são codificados e emitidos e, portanto, as informações de divisão podem ser definidas para não dividir a unidade de codificação atual em uma profundidade inferior. De forma alternativa, se a profundidade atual da unidade de codificação atual não for a profundidade codificada, a codificação é realizada na unidade de codificação da profundidade inferior e, portanto, as informações de divisão podem ser definidas para dividir a unidade de codificação atual, para obter as unidades de codificação da profundidade inferior.
[000376] Se a profundidade atual não for a profundidade codificada, codificação é realizada na unidade de codificação que é dividida na unidade de codificação da 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 é executada repetidamente em cada unidade de codificação da profundidade inferior, e, portanto, a codificação pode ser recursivamente realizada para as unidades de codificação tendo a mesma profundidade.
[000377] Uma vez que as unidades de codificação tendo uma estrutura em árvore são determinadas por uma LCU, e informações sobre, pelo menos, um modo de codificação são determinadas por uma unidade de codificação de uma profundidade codificada, informações sobre pelo menos um modo de codificação podem ser determinadas por uma LCU. Além disso, uma profundidade codificada dos dados de imagem da LCU pode ser diferente, de acordo com localizações, uma vez que os dados de imagem são hierarquicamente divididos, de acordo com profundidades e, portanto, informações sobre a profundidade codificada e o modo de codificação podem ser definidas para os dados de imagem.
[000378] Nesse sentido, a unidade emissora 130 pode atribuir informações de codificação sobre uma profundidade codificada correspondente e um modo de codificação a, pelo menos, uma dentre a unidade de codificação, a unidade de previsão e uma unidade mínima, incluídas na LCU.
[000379] A unidade mínima, de acordo com uma ou mais formas de realização, é uma unidade de dados quadrados obtida pela divisão da SCU, que constitui a profundidade inferior, por 4. De forma alternativa, a unidade mínima, de acordo com uma forma de realização, pode ser uma unidade máxima de dados quadrados, que pode ser incluída em todas as unidades de codificação, unidades de previsão, unidades de partição e unidades de transformação, incluídas na LCU.
[000380] Por exemplo, as informações de codificação, emitidas pela unidade emissora 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 previsã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 previsão e sobre o tamanho das partições. As informações de codificação, de acordo com as unidades de previsão, podem incluir informações sobre uma direção estimada de um modo inter, sobre um índice de imagem de referência do modo inter, sobre um vetor de movimento, sobre um componente de crominância de um modo intra e sobre um método de interpolação do modo intra.
[000381] Informações sobre um tamanho máximo da unidade de codificação, definidas de acordo 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 sequência ou um conjunto de parâmetros de quadro.
[000382] Informações sobre um tamanho máximo da unidade de transformação permitida em relação a um vídeo atual, e informações sobre um tamanho mínimo da unidade de transformação também podem ser emitidas através de um cabeçalho de um fluxo de bits, um conjunto de parâmetros de sequência ou um conjunto de parâmetros de quadro. A unidade emissora 130 pode codificar e emitir parâmetros de SAO relacionados à operação de SAO, descrita acima com referência às Figs. 1A a 7F.
[000383] No aparelho codificador de vídeo 100, a unidade de codificação mais profunda pode ser uma unidade de codificação obtida pela divisão da altura ou da largura de uma unidade de codificação de uma profundidade superior, que está uma camada acima, por dois. Em outras palavras, quando o tamanho da unidade de codificação da profundidade atual for 2N*2N, 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 2N*2N, pode incluir um máximo de 4 das unidades de codificação com a profundidade inferior.
[000384] Nesse sentido, o aparelho codificador de vídeo 100 pode formar as unidades de codificação tendo a estrutura em árvore, determinando as unidades de codificação, tendo um formato ideal e um tamanho ideal para cada LCU, com base no tamanho da LCU e na profundidade máxima determinada, considerando as características do quadro atual. Além disso, uma vez que a codificação pode ser realizada em cada LCU usando qualquer um dos vários modos de previsão e transformação, um modo de codificação ideal pode ser determinado, considerando as características da unidade de codificação de vários tamanhos de imagem.
[000385] Desse modo, se uma imagem com uma alta resolução ou uma grande quantidade de dados for codificada em um bloco macro convencional, o número de blocos macro por quadro aumenta de forma excessiva. Nesse sentido, o número de partes de informações compactadas geradas para cada bloco macro aumenta, e, assim, é difícil transmitir as informações compactadas e a eficiência de compressão de dados diminui. No entanto, usando o aparelho codificador de vídeo 100, a eficiência de compressão de imagem pode ser aumentada, uma vez que uma unidade de codificação é ajustada, considerando as características de uma imagem, aumentando, ao mesmo tempo, um tamanho máximo de uma unidade de codificação, considerando um tamanho da imagem.
[000386] O aparelho codificador de vídeo 100 da Fig. 8 pode executar a operação do aparelho codificador de vídeo 10, descrito acima com referência à Fig. 1A.
[000387] O determinador de unidade de codificação 120 pode executar operação do determinador de parâmetros de SAO 14 do aparelho codificador de vídeo 10. Um tipo de SAO, valores de deslocamento, de acordo com categorias, e uma classe de SAO podem ser determinados em relação a cada LCU.
[000388] A unidade emissora 130 pode executar operação do codificador de parâmetros de SAO 16. Parâmetros de SAO, determinados em relação a cada LCU, podem ser emitidos. Informações sobre mesclagem de SAO, indicando se é para adotar parâmetros de SAO de uma LCU adjacente de uma LCU atual como os parâmetros de SAO da LCU atual, podem ser inicialmente emitidas. Com relação a um tipo de SAO, um tipo externo, um tipo de borda ou um tipo de banda podem ser emitidos. Um valor de deslocamento pode ser emitido em uma ordem de informações de valor, informações de sinal e um restante. No que diz respeito ao tipo de borda, as informações de sinal do valor de deslocamento podem não ser emitidas.
[000389] Se as informações sobre mesclagem de SAO da LCU atual permitirem a adoção dos parâmetros de SAO da LCU adjacente, o tipo de SAO e os valores de deslocamento da LCU atual podem não ser emitidos.
[000390] Pode ser determinado se é para realizar uma operação de SÃO, de acordo com os componentes de cor. Pode ser determinado se é para realizar a operação de SAO para um componente de luminância e primeiro e segundo componentes de crominância, no que diz respeito a cada fatia. A unidade emissora 130 pode emitir um cabeçalho de fatias, incluindo informações sobre uso de SAO de luminância e informações sobre uso de SAO de crominância.
[000391] A unidade emissora 130 pode incluir informações sobre tipo de SAO de luminância, indicando se é para realizar a operação de SAO para o componente de luminância e para um tipo de SAO, e informações sobre tipo de SAO de crominância, indicando se é para executar a operação de SAO para os primeiro e segundo componentes de crominância e para um tipo de SAO, nos parâmetros de SAO determinados em relação a cada LCU.
[000392] A Fig. 9 é um diagrama de blocos de um aparelho decodificador de vídeo 200, com base nas unidades de codificação com uma estrutura em árvore, de acordo com uma ou mais formas de realização. Para conveniência de explicação, "aparelho decodificador de vídeo 200, com base nas unidades de codificação, de acordo com uma estrutura em árvore" é referido, a seguir, como "aparelho decodificador de vídeo 200".
[000393] O aparelho decodificador de vídeo 200, que envolve previsão de vídeo com base nas unidades de codificação tendo uma estrutura em árvores, 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.
[000394] Definições de vários termos, tais como uma unidade de codificação, uma profundidade, uma unidade de previsão, uma unidade de transformação, e informações sobre vários modos de codificação, para operações de decodificação do aparelho decodificador de vídeo 200, são idênticas àquelas descritas com referência às Figs. 7A a 7F e ao aparelho codificador de vídeo 100.
[000395] O receptor 210 recebe e analisa um fluxo de bits de um vídeo codificado. O extrator de informações de codificação e dados de imagem 220 extrai dados de imagem codificados para cada unidade de codificação, a partir do fluxo de bits analisado, onde as unidades de codificação têm uma estrutura em árvore, de acordo com cada LCU, e emite os dados de imagem extraídos para o decodificador de dados de imagem 230. O extrator de informações de codificação e dados de imagem 220 pode extrair informações sobre um tamanho máximo de uma unidade de codificação de um quadro atual, 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.
[000396] Além disso, o extrator de informações de codificação e dados de imagem 220 extrai informações sobre uma profundidade codificada e um modo de codificação para as unidades de codificação tendo uma estrutura em árvore, de acordo com cada LCU, a partir do fluxo de bits analisado. As informações extraídas sobre a profundidade codificada e o modo de codificação são emitidas para o decodificador de dados de imagem 230. Em outras palavras, os dados de imagem em um fluxo de bits são divididos na LCU, para que o decodificador de dados de imagem 230 decodifique os dados de imagem para cada LCU.
[000397] As informações sobre a profundidade codificada e o modo de codificação, de acordo com a LCU, podem ser definidas para informações sobre, pelo menos, uma unidade de codificação correspondente à profundidade codificada, e informações sobre um modo de codificação podem incluir informações sobre um tipo de partição de uma unidade de codificação correspondente à profundidade codificada, sobre um modo de previsão e um tamanho de uma unidade de transformação. Além disso, informações de divisão, de acordo com profundidades, podem ser extraídas de acordo com as informações sobre a profundidade codificada.
[000398] As informações sobre a profundidade codificada e o modo de codificação, de acordo com cada LCU, extraídas 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, tal como o aparelho codificador de vídeo 100, executa, repetidamente, codificação para cada unidade de codificação mais profunda, de acordo com profundidades, de acordo com cada LCU. Nesse sentido, o aparelho decodificador de vídeo 200 pode reconstruir uma imagem, decodificando os dados de imagem, de acordo com uma profundidade codificada e um modo de codificação, que gera o erro de codificação mínimo.
[000399] Uma vez que informações de codificação sobre a profundidade codificada e o modo de codificação podem ser atribuídas a uma unidade de dados predeterminada, dentre uma unidade de codificação correspondente, uma unidade de previsão e uma unidade mínima, o extrator de informações de codificação e dados de imagem pode extrair informações sobre a profundidade codificada e o modo de codificação, de acordo com as unidades de dados predeterminadas. Se informações sobre uma profundidade codificada e o modo de codificação de uma LCU correspondente forem gravadas, de acordo com unidades de dados predeterminadas, as unidades de dados predeterminadas, às quais são atribuídas as mesmas informações sobre a profundidade codificada e o modo de codificação, podem ser inferidas como sendo unidades de dados incluídas na mesma LCU.
[000400] O decodificador de dados de imagem 230 reconstrói o quadro atual, decodificando os dados de imagem em cada LCU, com base nas informações sobre a profundidade codificada e o modo de codificação, de acordo com as LCUs. Em outras palavras, o decodificador de dados de imagem 230 pode decodificar os dados de imagem codificados com base em informações extraídas sobre o tipo de partição, o modo de previsão e a unidade de transformação, para cada unidade de codificação, dentre as unidades de codificação tendo a estrutura em árvore incluídas em cada LCU. Um processo para decodificação pode incluir uma previsão, incluindo previsão intra e compensação de movimento, e uma transformação inversa.
[000401] O decodificador de dados de imagem 230 pode realizar previsão intra ou compensação de movimento, de acordo com uma partição e um modo de previsão de cada unidade de codificação, com base nas informações sobre o tipo de partição e o modo de previsão da unidade de previsão da unidade de codificação, de acordo com profundidades codificadas.
[000402] 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 em árvore para cada unidade de codificação, a fim de realizar transformação inversa com base em unidades de transformação para cada unidade de codificação, para transformação inversa para cada LCU. Através da transformação inversa, um valor de pixel do domínio espacial da unidade de codificação pode ser reconstruído.
[000403] O decodificador de dados de imagem 230 pode determinar uma profundidade codificada de uma LCU atual, usando informações de divisão, de acordo com profundidades. Se as informações de divisão indicarem que dados de imagem já não são mais divididos na profundidade atual, a profundidade atual é uma profundidade codificada. Nesse sentido, o decodificador de dados de imagem 230 pode decodificar dados codificados na LCU atual, usando as informações sobre o tipo de partição da unidade de previsão, o modo de previsão e o tamanho da unidade de transformação, para cada unidade de codificação correspondente à profundidade codificada.
[000404] Em outras palavras, unidades de dados contendo as informações de codificação, incluindo as mesmas informações de divisão, podem ser obtidas, observando o conjunto de informações de codificação atribuído para a unidade de dados predeterminada dentre a unidade de codificação, a unidade de previsão e a unidade mínima, e as unidades de dados obtidas podem ser consideradas como sendo uma unidade de dados a ser decodificada pelo decodificador de dados de imagem 230 no mesmo modo de codificação. Como tal, a unidade de codificação atual pode ser decodificada, obtendo as informações sobre o modo de codificação para cada unidade de codificação.
[000405] Além disso, o aparelho decodificador de vídeo 200 da Fig. 9 pode executar operação do aparelho decodificador de vídeo 20, acima descrito com referência à Fig. 2A.
[000406] O extrator de informações de codificação e dados de imagem 220 e o receptor 210 podem executar operação do extrator de parâmetros de SAO 22 do aparelho decodificador de vídeo 20. O decodificador de dados de imagem 230 pode executar operações do determinador de SAO 24 e da unidade de ajuste de SAO 26 do aparelho decodificador de vídeo 20.
[000407] Pode-se determinar, se é para realizar uma operação de SÃO, de acordo com componentes de cor.
[000408] O extrator de informações de codificação e dados de imagem 220 pode obter informações sobre uso de SAO de luminância e informações sobre uso de SAO de crominância, a partir de um cabeçalho de fatias. Pode-se determinar, se é para executar a operação de SAO para um componente de luminância a partir das informações sobre uso de SAO de luminância, e primeiro e segundo componentes de crominância a partir das informações sobre uso de SAO de crominância.
[000409] O extrator de informações de codificação e dados de imagem 220 pode obter informações sobre tipo de SAO de luminância, indicando se é para executar a operação de SAO para o componente de luminância e um tipo de SAO a partir de parâmetros de SAO determinados em relação a cada LCU. O extrator de informações de codificação e dados de imagem 220 pode obter informações sobre tipo de SAO de crominância, indicando se é para executar a operação de SAO para os primeiro e segundo componentes de crominância e um tipo de SAO a partir dos parâmetros de SAO determinados em relação a cada LCU.
[000410] Se apenas informações sobre mesclagem de SAO forem analisadas a partir de um fluxo de bits sem parâmetros de SAO de uma LCU atual, o extrator de informações de codificação e dados de imagem 220 pode reconstruir os parâmetros de SAO da LCU atual, para serem os mesmos que aqueles de pelo menos uma das LCUs adjacentes. Com base em informações sobre mesclagem de SAO, uma LCU adjacente, tendo parâmetros de SAO a serem considerados, pode ser determinada. Se for determinado que os parâmetros de SAO da LCU atual são diferentes daqueles das LCUs adjacentes, com base nas informações sobre mesclagem de SAO da LCU atual, que são analisados a partir do fluxo de bits, o extrator de informações de codificação e dados de imagem 220 pode analisar e reconstruir os parâmetros de SAO da LCU atual, a partir do fluxo de bits.
[000411] O extrator de informações de codificação e dados de imagem 220 pode analisar parâmetros de SAO de cada LCU, a partir do fluxo de bits. Com base nos parâmetros de SAO, um tipo de SAO, valores de deslocamento, de acordo com categorias, e uma classe de SAO, podem ser determinados. Se o tipo de SAO da LCU atual for um tipo externo, o ajuste de deslocamento na LCU atual pode ser finalizado. Se o tipo de SAO for um tipo de borda, com base em uma categoria, indicando uma classe de borda, indicando uma direção de borda de cada um dos pixels reconstruídos, e um formato de borda, um valor de deslocamento atual pode ser selecionado dentre os valores de deslocamento recebidos. Se o tipo de SAO for um tipo de banda, uma banda, a qual pertence cada um dos pixels reconstruídos, é determinada e um valor de deslocamento correspondente a uma banda atual pode ser escolhido dentre os valores de deslocamento.
[000412] 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, ajustando um valor de pixel do pixel reconstruído por um valor de deslocamento correspondente. Deslocamentos de pixels reconstruídos de cada LCU podem ser ajustados com base nos parâmetros de SAO analisados.
[000413] Desse modo, o aparelho decodificador 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 executada para cada LCU, e pode usar as informações para decodificar o quadro atual. Em outras palavras, as unidades de codificação tendo a estrutura em árvore, determinadas para serem as unidades de codificação ideais em cada LCU, podem ser decodificadas.
[000414] Nesse sentido, mesmo se os dados de imagem tiverem alta resolução e uma grande quantidade de dados, os dados de imagem podem ser decodificados e reconstruídos, de forma eficiente, usando um tamanho de uma unidade de codificação e um modo de codificação, que são determinados, de maneira adaptável, de acordo com as características dos dados de imagem, usando informações sobre um modo de codificação ideal recebidas de um codificador.
[000415] A Fig. 10 é um diagrama para descrever um conceito de unidades de codificação, de acordo com uma ou mais formas de realização.
[000416] 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 16x16, 32x16, 16x32 ou 32x32, 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.
[000417] Em dados de vídeo 310, uma resolução é de 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 é de 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 é de 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 denota um número total de divisões de uma LCU para uma unidade de decodificação mínima.
[000418] Se uma resolução for alta ou uma quantidade de dados for grande, um tamanho máximo de uma unidade de codificação pode ser grande, de modo a não só aumentar a eficiência da codificação, mas também para refletir, com precisão, as características de uma imagem. Nesse sentido, o tamanho máximo da unidade de codificação dos dados de vídeo 310 e 320, tendo uma resolução maior do que os dados de vídeo 330, pode ser 64.
[000419] 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 LCU, tendo um tamanho de eixo longo de 64, e unidades de codificação, tendo tamanhos de eixo longo de 32 e 16, uma vez que profundidades são aumentadas em até duas camadas, ao dividir a LCU 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 LCU, tendo um tamanho de eixo longo de 16, e unidades de codificação com um tamanho de eixo longo de 8, uma vez que profundidades são aumentadas em até uma camada, ao dividir a LCU uma vez.
[000420] 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 LCU, tendo um tamanho de eixo longo de 64, e unidades de codificação, tendo tamanhos de eixo longo de 32, 16 e 8, uma vez que as profundidades são aumentadas em até 3 camadas, ao dividir a LCU três vezes. Quando uma profundidade aumenta, informações detalhadas podem ser precisamente expressas.
[000421] A Fig. 11 é um diagrama de blocos de um codificador de imagem 400, com base nas unidades de codificação, de acordo com uma ou mais formas de realização.
[000422] O codificador de imagem 400 executa operações do determinador de unidade de codificação 120 do aparelho codificador de vídeo 100, para codificar dados de imagem. Em outras palavras, um previsor intra 410 executa previsão intra nas unidades de codificação em um modo intra, dentre uma moldura atual 405, e um estimador de movimento 420 e um compensador de movimento 425 realizam, respectivamente, compensação de movimento e estimativa inter nas unidades de codificação em um modo inter, dentre a moldura atual 405, usando a moldura atual 405 e uma moldura de referência 495.
[000423] Dados emitidos a partir do previsor intra 410, do estimador de movimento 420 e do compensador de movimento 425 são emitidos como um coeficiente quantizado de transformação, através de um transformador 430 e de um quantizador 440. O coeficiente quantizado de transformação é reconstruído como dados no domínio espacial através de um dequantizador 460 e de um transformador inverso 470, e os dados reconstruídos no domínio espacial são emitidos como a moldura de referência 495, após serem pós-processados através de um filtro de desbloqueio 480 e de uma unidade de ajuste de deslocamento 490. O coeficiente quantizado de transformação pode ser emitido como um fluxo de bits 455, através de um codificador por entropia 450.
[000424] Para que o codificador de imagem 400 seja aplicado no aparelho codificador de vídeo 100, todos os elementos do codificador de imagem 400, ou seja, o previsor intra 410, o estimador de movimento 420, o compensador de movimento 425, o transformador 430, o quantizador 440, o codificador por entropia 450, o dequantizador 460, o transformador inverso 470, o filtro de desbloqueio 480 e a unidade de ajuste de deslocamento 490, executam operações com base em cada unidade de codificação dentre unidades de codificação tendo uma estrutura em árvore, considerando a profundidade máxima de cada LCU.
[000425] De maneira específica, o previsor intra 410, o estimador de movimento 420 e o compensador de movimento 425 determinam partições e um modo de previsão de cada unidade de codificação dentre unidades de codificação tendo uma estrutura em árvore, considerando o tamanho máximo e a profundidade máxima de uma LCU atual, e o transformador 430 determina o tamanho da unidade de transformação em cada unidade de codificação dentre unidades de codificação tendo uma estrutura em árvore.
[000426] De maneira específica, quando o estimador de movimento 420 realizar a previsão inter usando a moldura de referência de longo prazo, as informações de POC da moldura de referência de longo prazo podem ser emitidas como o índice de referência de longo prazo. O codificador por entropia 450 pode codificar e emitir as informações LSB das informações POC da moldura de referência de longo prazo, como o índice de referência de longo prazo. As informações LSB das informações POC das molduras de referência de longa duração para as unidades de previsão da fatia atual podem ser incluídas no cabeçalho de fatias e, então, transmitidas.
[000427] A unidade de ajuste de deslocamento 490 pode classificar pixels, de acordo com um tipo de borda (ou um tipo de banda) de cada LCU da moldura de referência 495, pode determinar uma direção de borda (ou uma posição de banda inicial) e pode determinar um valor de erro médio de pixels reconstruídos incluídos em cada categoria. Em relação a cada LCU, informações sobre mesclagem de SAO, um tipo de SAO e valores de deslocamento podem ser codificados e sinalizados.
[000428] O codificador por entropia 450 pode executar codificação CABAC nos parâmetros de SAO, incluindo informações sobre mesclagem de SAO para operação de SAO, informações sobre tipo de SÃO, e valores de deslocamento. Por exemplo, o codificador por entropia 450 pode executar codificação CABAC em um primeiro bit das informações sobre tipo de SAO usando um modelo de contexto, e em outros bits associados, em um modo bypass. Dois modelos de contexto podem ser utilizados para os valores de deslocamento. Um modelo de contexto pode ser utilizado para cada uma das informações sobre mesclagem de SAO à esquerda e informações sobre mesclagem de SAO superior. Desse modo, um total de cinco modelos de contexto pode ser usado para executar codificação CABAC nos parâmetros de SAO.
[000429] A Fig. 12 é um diagrama de blocos de um decodificador de imagem 500 com base nas unidades de codificação, de acordo com uma ou mais formas de realização.
[000430] Um analisador 510 analisa dados de imagem codificados a serem decodificados e informações sobre codificação necessárias para decodificação, a partir de um fluxo de bits 505. Os dados de imagem codificados são emitidos como dados quantizados inversos, através de um decodificador por entropia 520 e de um dequantizador 530, e os dados quantizados inversos são reconstruídos para dados de imagem no domínio espacial, através de um transformador inverso 540.
[000431] Um previsor intra 550 executa previsão intra nas unidades de codificação, em um modo intra, em relação aos dados de imagem no domínio espacial, e um compensador de movimento 560 executa compensação de movimento em unidades de codificação em um modo inter, usando uma moldura de referência 585.
[000432] Os dados da imagem no domínio espacial, que passaram através do previsor intra 550 e do compensador de movimento 560, podem ser emitidos como uma moldura reconstruída 595, após ser pós-processados através de um filtro de desbloqueio 570 e de uma unidade de ajuste de deslocamento 580. Além disso, os dados de imagem, que são pós-processados através do filtro de desbloqueio 570 e da unidade de ajuste de deslocamento 580, podem ser emitidos como a moldura de referência 585.
[000433] Para decodificar os dados de imagem no decodificador de dados de imagem 230 do aparelho decodificador de vídeo 200, o decodificador de imagem 500 pode realizar operações que são executadas após o analisador 510.
[000434] Para que o decodificador de imagem 500 seja aplicado no aparelho decodificador de vídeo 200, todos os elementos do decodificador de imagem 500, ou seja, o analisador 510, o decodificador por entropia 520, o dequantizador 530, o transformador inverso 540, o previsor intra 550, o compensador de movimento 560, o filtro de desbloqueio 570 e a unidade de ajuste de deslocamento 580 executam operações com base nas unidades de codificação tendo uma estrutura em árvore para cada LCU.
[000435] De maneira específica, a previsão intra 550 e o compensador de movimento 560 executam operações com base em partições e um modo de previsão para cada uma das unidades de codificação tendo uma estrutura em árvore, e o transformador inverso 540 executa operações com base em um tamanho de uma unidade de transformação para cada unidade de codificação.
[000436] O decodificador por entropia 520 pode executar CABAC - decodificação nos parâmetros de SAO e analisar informações sobre mesclagem de SAO para uma operação de SAO, informações sobre tipo de SAO e valores de deslocamento de parâmetros de SAO. Por exemplo, o decodificador por entropia 520 pode realizar CABAC - decodificação em um primeiro bit das informações sobre tipo de SAO, usando um modelo de contexto, e em outros bits associados, em um modo bypass. Dois modelos de contexto podem ser utilizados para os valores de deslocamento. Um modelo de contexto pode ser utilizado para cada informação sobre mesclagem de SAO esquerda e informação sobre mesclagem de SAO superior. Assim, um total de cinco modelos de contexto pode ser usado para executar CABAC - decodificação nos parâmetros de SAO.
[000437] A unidade de ajuste de deslocamento 580 pode extrair parâmetros de SAO de LCUs a partir de um fluxo de bits. Com base em informações sobre mesclagem de SAO, dentre os parâmetros de SAO de uma LCU atual, parâmetros de SAO da LCU atual, que são os mesmos daqueles de uma LCU adjacente, podem ser reconstruídos. Usando um tipo de SAO e valores de deslocamento dentre os parâmetros de SAO da LCU atual, cada um dos pixels reconstruídos de LCUs do quadro reconstruído 595 pode ser ajustado por um valor de deslocamento correspondente a uma categoria, de acordo com o tipo de borda ou o tipo de banda.
[000438] A Fig. 13 é um diagrama ilustrando unidades de codificação mais profundas, de acordo com profundidades e partições, de acordo com uma ou mais formas de realização da presente invenção.
[000439] O aparelho codificador de vídeo 100 e o aparelho decodificador de vídeo 200 usam unidades de codificação hierárquicas, a fim de considerar características de uma imagem. Uma altura máxima, largura máxima e uma profundidade máxima de unidades de codificação podem ser adaptavelmente determinadas, de acordo com as características da imagem, ou podem ser definidas de forma diferente por um usuário. Tamanhos das unidades de codificação mais profundas, de acordo com profundidades, podem ser determinados, de acordo com o tamanho máximo predeterminado da unidade de codificação.
[000440] Em uma estrutura hierárquica 600 de unidades de codificação, de acordo com uma ou mais formas de realização, a altura máxima e a largura máxima das unidades de codificação são, cada qual, iguais a 64, e a profundidade máxima é 3. Neste caso, a profundidade máxima se refere a um número total de vezes, que a unidade de codificação é dividida, a partir da LCU até a SCU. Visto que uma profundidade aumenta ao longo de um eixo vertical da estrutura hierárquica 600, uma altura e uma largura da unidade de codificação mais profunda são, cada qual, divididas. Além disso, uma unidade de previsão e partições, que são as bases para codificação por previsão de cada unidade de codificação mais profunda, são mostradas ao longo de um eixo horizontal da estrutura hierárquica 600.
[000441] Em outras palavras, uma unidade de codificação 610 é uma LCU na estrutura hierárquica 600, onde uma profundidade é 0, e um tamanho, ou seja, uma altura versus largura, é 64 x 64. A profundidade aumenta ao longo do eixo vertical, e uma unidade de codificação 620 tendo um tamanho de 32 x 32 e uma profundidade de 1, uma unidade de codificação 630 tendo um tamanho de 16 x 16 e uma profundidade de 2, uma unidade de codificação 640 tendo um tamanho de 8 x 8 e uma profundidade de 3. A unidade de codificação 640 tendo um tamanho de 8 x 8 e uma profundidade de 3 é uma SCU.
[000442] A unidade de previsão e as partições de uma unidade de codificação são dispostas ao longo do eixo horizontal, de acordo com cada profundidade. Em outras palavras, se a unidade de codificação 610, tendo o tamanho de 64x64 e uma profundidade de 0, for uma unidade de previsão, a unidade de previsão pode ser dividida em partições incluídas na unidade de codificação 610, ou seja, uma partição 610 tendo um tamanho de 64 x 64, partições 612 tendo o tamanho de 64 x 32, partições 614 tendo o tamanho de 32 x 64, ou partições 616 tendo o tamanho de 32 x 32.
[000443] Da mesma forma, uma unidade de previsão da unidade de codificação 620, tendo o tamanho de 32 x 32 e a profundidade de 1, pode ser dividida em partições incluídas na unidade de codificação 620, ou seja, uma partição 620 tendo um tamanho de 32 x 32, partições 622 tendo um tamanho de 32 x 16, partições 624 tendo um tamanho de 16 x 32, e partições 626 tendo um tamanho de 16 x 16.
[000444] Da mesma forma, uma unidade de previsão da unidade de codificação 630, tendo o tamanho de 16 x 16 e a profundidade de 2, pode ser dividida em partições incluídas na unidade de codificação 630, ou seja, uma partição tendo um tamanho de 16 x 16 incluída na unidade de codificação 630, partições 632 tendo um tamanho de 16 x 8, partições 634 tendo um tamanho de 8 x 16, e partições 636 tendo um tamanho de 8 x 8.
[000445] Da mesma forma, uma unidade de previsão da unidade de codificação 640, tendo o tamanho de 8 x 8 e a profundidade de 3, pode ser dividida em partições incluídas na unidade de codificação 640, ou seja, uma partição tendo um tamanho de 8 x 8 incluída na unidade de codificação 640, partições 642 tendo um tamanho de 8 x 4, partições 644 tendo um tamanho de 4 x 8, e partições 646 tendo um tamanho de 4 x 4.
[000446] A fim de determinar, pelo menos, uma profundidade codificada das unidades codificadas que constituem a LCU 610, o determinador da unidade de codificação 120 do aparelho codificador de vídeo 100 executa codificação para unidades de codificação correspondentes a cada profundidade incluída na LCU 610.
[000447] Um número de unidades de codificação mais profundas, de acordo com profundidades incluindo dados no mesmo intervalo e no mesmo tamanho, aumenta à medida que a profundidade aumenta. Por exemplo, quatro unidades de codificação correspondentes a uma profundidade de 2 são necessárias para abranger dados, que estão incluídos em uma unidade de codificação correspondente a uma profundidade de 1. Por conseguinte, a fim de comparar resultados de codificação dos mesmos dados, de acordo com profundidades, a unidade de codificação correspondente à profundidade de 1 e quatro unidades de codificação correspondentes à profundidade de 2 são, cada qual, codificadas.
[000448] A fim de realizar codificação para uma profundidade atual dentre as profundidades, um erro mínimo de codificação pode ser escolhido para a profundidade atual, através da realização de codificação para cada unidade de previsão nas unidades de codificação que correspondem à profundidade atual, ao longo do eixo horizontal da estrutura hierárquica 600. Como alternativa, o erro mínimo de codificação pode ser procurado, comparando os menores erros de codificação de acordo com profundidades, através da realização de codificação para cada profundidade, quando a profundidade aumenta ao longo do eixo vertical da estrutura hierárquica 600. Uma profundidade e uma partição com o erro mínimo de codificação na unidade de codificação 610 podem ser selecionadas como a profundidade codificada e um tipo de partição da unidade de codificação 610.
[000449] A Fig. 14 é um diagrama ilustrando uma relação entre uma unidade de codificação 710 e unidades de transformação 720, de acordo com uma forma de realização.
[000450] O aparelho codificador de vídeo 100 ou o aparelho decodificador de vídeo 200 codifica ou decodifica uma imagem, de acordo com unidades de codificação tendo tamanhos menores ou iguais a uma LCU para cada LCU. Tamanhos de unidades de transformação para transformação durante a codificação podem ser selecionados com base em unidades de dados, que não são maiores do que uma unidade de codificação correspondente.
[000451] Por exemplo, no aparelho codificador de vídeo 100 ou no aparelho decodificador de vídeo 200, se um tamanho da unidade de codificação atual 710 for 64 x 64, transformação pode ser realizada usando as unidades de transformação 720 tendo um tamanho de 32 x 32.
[000452] Além disso, dados da unidade de codificação 710 tendo o tamanho de 64x64 podem ser codificados, por meio de transformação em cada uma das unidades de transformação tendo o tamanho de 32 x 32, 16 x 16, 8 x 8 e 4 x 4, que são menores do que 64 x 64 e, a seguir, uma unidade de transformação tendo o erro mínimo de codificação pode ser selecionada.
[000453] A Fig. 15 é um diagrama ilustrando informações de codificação das unidades de codificação, que correspondem a uma profundidade codificada, de acordo com uma ou mais formas de realização.
[000454] A unidade emissora 130 do aparelho codificador de vídeo 100 pode codificar e transmitir informações 800 sobre um tipo de partição, informações 810 sobre um modo de previsão, e informações 820 sobre um tamanho de uma unidade de transformação para cada unidade de codificação correspondente a uma profundidade codificada, como informações sobre um modo de codificação.
[000455] As informações 800 indicam informações sobre um formato de uma partição obtida, dividindo-se uma unidade de previsão de uma unidade de codificação atual, em que a partição é uma unidade de dados para codificação por previsão da unidade de codificação atual. Por exemplo, uma unidade de codificação atual CU_0 tendo um tamanho de 2Nx2N pode ser dividida em qualquer uma dentre uma partição 802 tendo um tamanho de 2Nx2N, uma partição 804 tendo um tamanho de 2NxN, uma partição 806 tendo um tamanho de Nx2N, e uma partição 808 tendo um tamanho de Nx2N. Aqui, as informações 800 sobre um tipo de partição são definidas para indicar uma dentre a partição 804 tendo um tamanho de 2NxN, a partição 806 tendo um tamanho de Nx2N, e a partição 808 tendo um tamanho de NxN.
[000456] As informações 810 indicam um modo de previsão de cada partição. Por exemplo, as informações 810 podem indicar um modo de codificação por previsão realizado em uma partição indicada pelas informações 800, ou seja, um modo intra 812, um modo inter 814 ou um modo ignorar 816.
[000457] As informações 820 indicam uma unidade de transformação a ser baseada, quando transformação for 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.
[000458] O extrator de informações de codificação e dados de imagem 220 do aparelho decodificador de vídeo 200 pode extrair e usar as informações 800, 810 e 820 para decodificação, de acordo com cada unidade de codificação mais profunda.
[000459] A Fig. 16 é um diagrama de unidades de codificação mais profundas de acordo com profundidades, de acordo com uma ou mais formas de realização da presente invenção.
[000460] Informações de divisão podem ser usadas para indicar uma mudança de uma profundidade. As informações de divisão indicam se uma unidade de codificação de uma profundidade atual foi dividida em unidades de codificação de uma menor profundidade.
[000461] Uma unidade de previsão 910 para codificar por previsão uma unidade de codificação 900, tendo uma profundidade de 0 e um tamanho de 2N_0x2N_0, pode incluir partições de um tipo de partição 912 tendo um tamanho de 2N_0x2N_0, um tipo de 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 ilustra apenas os tipos de partição 912 a 918, que são obtidos, dividindo-se simetricamente a unidade de previsão 910, mas um tipo de partição não é por este aspecto limitado, e as partições da unidade de previsão 910 podem incluir partições assimétricas, partições tendo um formato predeterminado, e partições tendo um formato geométrico.
[000462] Codificação por previsão é executada repetidamente em uma partição tendo um tamanho de 2N_0x2N_0, duas partições tendo um tamanho de 2N_0xN_0, duas partições tendo um tamanho de N_0x2N_0, e quatro partições tendo um tamanho de N_0xN_0, de acordo com cada tipo de partição. A codificação por previsão em um modo intra e um modo inter pode ser efetuada nas partições tendo os tamanhos de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 e N_0xN_0. A codificação por previsão em um modo ignorar é realizada somente na partição com o tamanho de 2N_0x2N_0.
[000463] Se um erro de codificação for o menor deles em um dos tipos de partição 912 a 916, a unidade de previsão 910 não pode ser dividida em uma menor profundidade.
[000464] Se o erro de codificação for o menor deles no tipo de partição 918 uma profundidade é alterada de 0 para 1, para dividir o tipo de partição 918 na operação 920, e codificação é executada repetidamente nas unidades de codificação 930 tendo uma profundidade de 2 e um tamanho de N_0xN_0, para buscar um erro mínimo de codificação.
[000465] Uma unidade de previsão 940 para codificar por previsão a unidade de codificação 930 tendo uma profundidade de 1 e um tamanho de 2N_1x2N_1 (= N_0xN_0) pode incluir partições de um tipo de partição 942 tendo um tamanho de 2N_1x2N_1, um tipo de partição 944 tendo um tamanho de 2N_1xN_1, um tipo de partição 946 tendo um tamanho de N_1x2N_1, e um tipo de partição 948 tendo um tamanho de N_1xN_1.
[000466] Se um erro de codificação for o menor deles no tipo de partição 948, uma profundidade é alterada de 1 para 2, para dividir o tipo de partição 948 na operação 950, e codificação é executada repetidamente nas unidades de codificação 960, que têm uma profundidade de 2 e um tamanho de N_2xN_2, para buscar um erro mínimo de codificação.
[000467] Quando uma profundidade máxima for d, uma operação de divisão, de acordo com casa profundidade, pode ser executada até quando uma profundidade se torne d-1, e informações de divisão podem ser codificadas até quando uma profundidade for uma de 0 a d-2. Em outras palavras, quando codificação for realizada até quando a profundidade for d-1, depois de uma unidade de codificação correspondente a uma profundidade de d-2 ser dividida na operação 970, uma unidade de previsão 990 para codificar por previsão uma unidade de codificação 980, tendo uma profundidade d-1 e um tamanho 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).
[000468] Codificação por previsão pode ser executada repetidamente em uma partição tendo um tamanho de 2N_(d-1)x2N_(d- 1), duas partições tendo um tamanho de 2N_(d-1)xN_(d-1), duas partições tendo um tamanho de N_(d-1)x2N_(d-1), quatro partições tendo um tamanho de N_(d-1)xN_(d-1), dentre os tipos de partição 992 a 998, para buscar um tipo de partição tendo um erro mínimo de codificação.
[000469] Mesmo quando o tipo de partição 998 tiver o erro mínimo de codificação, uma vez que uma profundidade máxima é d, uma unidade de codificação CU_(d-1) tendo uma profundidade d-1 não é mais dividida em uma menor profundidade, e uma profundidade codificada para unidades de codificação, que constituem uma LCU atual 900, é determinada como sendo d-1, e um tipo de partição da LCU atual 900 pode ser determinado como sendo N_(d-1)xN_(d- 1). Além disso, uma vez que a profundidade máxima é d, e uma SCU 980 tendo uma profundidade mais baixa d-1 não é mais dividida em uma profundidade inferior, informações de divisão para SCU não são definidas.
[000470] Uma unidade de dados 999 pode ser uma 'unidade mínima' para a LCU atual. Uma unidade mínima, de acordo com uma ou mais formas de realização, pode ser uma unidade de dados quadrados obtida, dividindo-se uma SCU 980 por 4. Ao realizar a codificação repetidamente, o aparelho codificador de vídeo 100 pode selecionar uma profundidade tendo o erro mínimo de codificação, comparando erros de codificação, de acordo com profundidades da unidade de codificação 900, para determinar uma profundidade codificada, e definir um tipo de partição correspondente e um modo de previsão, como um modo de codificação da profundidade codificada.
[000471] Assim sendo, os menores erros de codificação, de acordo com profundidades, são comparados em todas as profundidades de 1 a d, e uma profundidade tendo o erro mínimo de codificação pode ser determinada como uma profundidade codificada. A profundidade codificada, o tipo de partição da unidade de previsão e o modo de previsão podem ser codificados e transmitidos como informações sobre um modo de codificação. Além disso, como uma unidade de codificação é dividida de uma profundidade 0 em uma profundidade codificada, só informações de divisão da profundidade codificada são definidas como 0, e informações de divisão das profundidades, excluindo a profundidade codificada, são definidas como 1.
[000472] O extrator de informações de codificação e dados de imagem 220 do aparelho decodificador de vídeo 200 pode extrair e usar as informações sobre a profundidade codificada e a unidade de previsão da unidade de codificação 900, para decodificar a partição 912. O aparelho decodificador de vídeo 200 pode determinar uma profundidade, em que informações de divisão são 0, como uma profundidade codificada usando informações de divisão de acordo com profundidades, e usar informações sobre um modo de codificação da profundidade correspondente para decodificação.
[000473] As Figs. 17 a 19 são diagramas para descrever uma relação entre unidades de codificação 1010, unidades de previsão 1060 e unidades de transformação 1070, de acordo com uma ou mais formas de realização.
[000474] As unidades de codificação 1010 são unidades de codificação tendo uma estrutura em árvore, correspondentes às profundidades codificadas determinadas pelo aparelho codificador de vídeo 100 em uma LCU. As unidades de previsão 1060 são partições de unidades de previsão de cada unidade de codificação 1010 e as unidades de transformação 1070 são unidades de transformação de cada unidade de codificação 1010.
[000475] Quando uma profundidade de uma LCU for 0 nas unidades de codificação 1010, profundidades das unidades de codificação 1012 e 1054 são 1, profundidades das unidades de codificação 1014, 1016, 1018, 1028, 1050 e 1052 são 2, profundidades das unidades de codificação 1020, 1022, 1024, 1026, 1030, 1032 e 1048 são 3, e profundidades das unidades de codificação 1040, 1042, 1044 e 1046 são 4.
[000476] Nas unidades de previsão 1060, algumas unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050, 1052 e 1054 são obtidas, dividindo-se as unidades de codificação nas unidades de codificação 1010. Em outras palavras, tipos de partição nas unidades de codificação 1014, 1022, 1050 e 1054 têm um tamanho de 2NxN, tipos de partição nas unidades de codificação 1016, 1048 e 1052 têm um tamanho de Nx2N, e um tipo de partição da unidade de codificação 1032 tem um tamanho de NxN. Unidades de previsão e partições das unidades de codificação 1010 são menores que, ou iguais a, cada unidade de codificação.
[000477] 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 previsão 1060, em termos de tamanhos e formatos. Em outras palavras, os aparelhos para codificar e decodificar vídeo 100 e 200 podem executar previsão intra, estimativa de movimento, compensação de movimento, transformação e transformação inversa individualmente em uma unidade de dados na mesma unidade de codificação.
[000478] Por conseguinte, a codificação é recursivamente executada em cada uma das unidades de codificação, tendo uma estrutura hierárquica em cada região de uma LCU, para determinar uma unidade de codificação ideal e, assim, unidades de codificação tendo uma estrutura em árvore recursiva podem ser obtidas. Informações de codificação podem incluir informações de divisão sobre uma unidade de codificação, informações sobre um tipo de partição, informações sobre um modo de previsão e informações sobre um tamanho de uma unidade de transformação. A Tabela 1 mostra as informações de codificação, que podem ser definidas pelos aparelhos para codificar e decodificar vídeo 100 e 200. Tabela 1
Figure img0001
[000479] A unidade emissora 130 do aparelho codificador de vídeo 100 pode emitir as informações de codificação sobre as unidades de codificação tendo uma estrutura em árvore, e o extrator de informações de codificação e dados de imagem 220 do aparelho decodificador de vídeo 200 pode extrair as informações de codificação sobre as unidades de codificação tendo uma estrutura em árvore de um fluxo de bits recebido.
[000480] Informações de divisão indicam, se uma unidade de codificação atual foi dividida em unidades de codificação de uma menor profundidade. Se informações de divisão de uma profundidade atual d forem 0, uma profundidade, na qual uma unidade de codificação atual não é mais dividida em uma menor profundidade, é uma profundidade codificada e, assim, informações sobre um tipo de partição, modo de previsão, e um tamanho de uma unidade de transformação, podem ser definidas para a profundidade codificada. Se a unidade de codificação atual for ainda dividida, de acordo com as informações de divisão, codificação é independentemente realizada em quatro unidades de codificação divididas de uma menor profundidade.
[000481] Um modo de previsão pode ser um dentre um modo intra, um modo inter e um modo ignorar. O modo intra e o modo inter podem ser definidos em todos os tipos de partição, e o modo ignorar é definido apenas em um tipo de partição tendo um tamanho de 2Nx2N.
[000482] As informações sobre o tipo de partição podem indicar tipos de partição simétricos tendo tamanhos de 2Nx2N, 2NxN, Nx2N e NxN, que são obtidos dividindo-se simetricamente uma altura ou largura de uma unidade de previsão, e tipos de partição assimétricos tendo tamanhos de 2NxnU, 2NxnD, nLx2N e nRx2N, que são obtidos dividindo-se assimetricamente a altura ou largura da unidade de previsão. Os tipos de partição assimétricos tendo os tamanhos de 2NxnU e 2NxnD podem ser obtidos, respectivamente, dividindo-se a altura da unidade de previsão em 1:3 e 3:1, e os tipos de partição assimétricos, tendo os tamanhos de nLx2N e nRx2N, podem ser obtidos, respectivamente, dividindo-se a largura da unidade de previsão em 1:3 e 3:1.
[000483] O tamanho da unidade de transformação pode ser definido, como sendo de dois tipos no modo intra e de dois tipos no modo inter. Em outras palavras, se informações de divisão da unidade de transformação forem 0, o tamanho da unidade de transformação pode ser 2Nx2N, que é o tamanho da unidade de codificação atual. Se informações de divisão da unidade de transformação forem 1, as unidades de transformação podem ser obtidas, dividindo-se a unidade de codificação atual. Além disso, se um tipo de partição da unidade de codificação atual tendo o tamanho de 2Nx2N for um tipo de partição simétrico, um tamanho de uma unidade de transformação pode ser NxN, e se o tipo de partição da unidade de codificação atual for um tipo de partição assimétrico, o tamanho da unidade de transformação pode ser N/2xN/2.
[000484] As informações de codificação sobre unidades de codificação tendo uma estrutura em árvore podem incluir, pelo menos, uma dentre uma unidade de codificação correspondente a uma profundidade codificada, uma unidade de previsão e uma unidade mínima. A unidade de codificação correspondente à profundidade codificada pode incluir pelo menos uma dentre uma unidade de previsão e uma unidade mínima, que contêm as mesmas informações de codificação.
[000485] Por conseguinte, é determinado se unidades de dados adjacentes estão incluídas na mesma unidade de codificação correspondente à profundidade codificada, comparando as informações de codificação das unidades de dados adjacentes. Além disso, uma unidade de codificação correspondente a uma profundidade codificada é determinada, usando informações de codificação de uma unidade de dados e, portanto, uma distribuição de profundidades codificadas em uma LCU pode ser determinada.
[000486] Por conseguinte, se uma unidade de codificação atual for prevista, com base em unidades informações de codificação de dados adjacentes, informações de codificação das unidades de dados em unidades de codificação mais profundas adjacentes à unidade de codificação atual podem ser diretamente referidas e usadas.
[000487] Como alternativa, se uma unidade de codificação atual for prevista com base em informações de unidades de codificação de dados adjacentes, dados adjacentes à unidade de codificação atual são pesquisados usando informações codificadas das unidades de dados e as unidades de codificação adjacentes pesquisadas podem ser referidas para prever a unidade de codificação atual.
[000488] A Fig. 20 é um diagrama ilustrando uma relação entre uma unidade de codificação, uma unidade de previsão e uma unidade de transformação, de acordo com informações sobre modo de codificação da Tabela 1.
[000489] Uma LCU 1300 inclui unidades de codificação 1302, 1304, 1306, 1312, 1314, 1316 e 1318 de profundidades codificadas. Aqui, uma vez que a unidade de codificação 1318 é uma unidade de codificação de uma profundidade codificada, informações de divisão podem ser definidas como 0. Informações sobre um tipo de partição da unidade de codificação 1318 tendo um tamanho de 2Nx2N podem ser definidas para ser de um tipo de partição 1322 tendo um tamanho de 2Nx2N, um tipo de partição 1324 tendo um tamanho de 2NxN, um tipo de partição 1326 tendo um tamanho de Nx2N, um tipo de partição 1328 tendo um tamanho de NxN, um tipo de partição 1332 tendo um tamanho de 2NxnU, um tipo de partição 1334 tendo um tamanho de 2NxnD, um tipo de partição 1336 tendo um tamanho de nLx2N e um tipo de partição 1338 tendo um tamanho de nRx2N.
[000490] Informações sobre divisão (sinalizador de tamanho da TU) de uma unidade de transformação são um tipo de um índice de transformações. O tamanho da unidade de transformação correspondente ao índice de transformações pode ser alterado, de acordo com um tipo de unidade de previsão ou tipo de partição da unidade de codificação.
[000491] Por exemplo, quando o tipo de partição for definido para ser simétrico, ou seja, o tipo de partição 1322, 1324, 1326 ou 1328, uma unidade de transformação 1342 tendo um tamanho de 2Nx2N é definida, se um sinalizador de tamanho da TU de uma unidade de transformação for 0, e uma unidade de transformação 1344 tendo um tamanho de NxN é definida, se um sinalizador de tamanho da TU for 1.
[000492] Quando o tipo de partição for definido para ser assimétrico, ou seja, o tipo de partição 1332, 1334, 1336 e 1338, uma unidade de transformação 1352 tendo um tamanho de 2Nx2N é definida, se um sinalizador de tamanho da TU for 0, e uma unidade de transformação 1354 tendo um tamanho de N/2xN/2 é definida, se um sinalizador de tamanho da TU for 1.
[000493] Com referência à Fig. 20, o sinalizador de tamanho da TU é um sinalizador tendo um valor 0 ou 1, mas o sinalizador de tamanho da TU não é limitado a um 1 bit, e uma unidade de transformação pode ser hierarquicamente dividida tendo uma estrutura em árvore, enquanto o sinalizador de tamanho da TU aumenta a partir de 0. As informações sobre divisão (sinalizador de tamanho da TU) de uma unidade de transformação podem ser um exemplo de um índice de transformações.
[000494] Neste caso, o tamanho de uma unidade de transformação, que foi de fato usado, pode ser expresso usando um sinalizador de tamanho da TU de uma unidade de transformação, de acordo com uma ou mais formas de realização, juntamente com um tamanho máximo e tamanho mínimo da unidade de transformação. O aparelho codificador de vídeo 100 é capaz de codificar informações sobre tamanho da unidade de transformação máxima, informações sobre tamanho da unidade de transformação mínima e um sinalizador de tamanho da TU máxima. O resultado de codificar as informações sobre tamanho da unidade de transformação máxima, as informações sobre tamanho da unidade de transformação mínima, e um sinalizador de tamanho da TU máxima, pode ser inserido num SPS. O aparelho decodificador de vídeo 200 pode decodificar um vídeo usando as informações sobre tamanho da unidade de transformação máxima, as informações sobre tamanho da unidade de transformação mínima, e o sinalizador de tamanho da TU máxima.
[000495] Por exemplo, (a) se o tamanho de uma unidade de codificação atual for 64 x 64, e um tamanho da unidade de transformação máxima for 32 x 32, (a-1) então o tamanho de uma unidade de transformação pode ser 32 x 32, quando um sinalizador de tamanho da TU for 2.
[000496] Como outro exemplo, (b) se o tamanho da unidade de codificação atual for 32 x 32, e um tamanho da unidade de transformação mínima for 32 x 32, (b-1) então o tamanho da unidade de transformação pode ser 32 x 32, quando o sinalizador de tamanho da TU for 0. Aqui, o sinalizador de tamanho da TU não pode ser definido como um valor diferente de 0, uma vez que o tamanho da unidade de transformação não pode ser menor que 32 x 32.
[000497] Como outro exemplo, (c) se o tamanho da unidade de codificação atual for 64 x 64 e um sinalizador de tamanho da TU máxima for 1, então o sinalizador de tamanho da TU pode ser 0 ou 1. Aqui, o sinalizador de tamanho da TU não pode ser definido como um valor diferente de 0 ou 1.
[000498] Assim, se for definido que o sinalizador de tamanho da TU máxima é 'MaxTransformSizeIndex', um tamanho da unidade de transformação mínima é 'MinTransformSize', e um tamanho da unidade de transformação é 'RootTuSize', quando o sinalizador de tamanho da TU for 0, então, um tamanho da unidade de transformação mínima atual 'CurrMinTuSize', que pode ser determinado em uma unidade de codificação atual, pode ser definido pela Equação (1): CurrMinTuSize= max (MinTransformSize, RootTuSize/(2AMaxTransformSizeIndex)) ... (1)
[000499] Em comparação com o tamanho da unidade de transformação mínima 'CurrMinTuSize', que pode ser determinado na unidade de codificação atual, um tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, pode denotar um tamanho da unidade de transformação máxima, que pode ser selecionado no sistema. Na Equação (1), 'RootTuSize/ (2AMaxTransformSizeIndex)' denota um tamanho da unidade de transformação, quando o tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, for dividido um número de vezes correspondente ao sinalizador de tamanho da TU, e 'MinTransformSize' denota um tamanho de transformação mínimo. Assim, um valor menor dentre 'RootTuSize/ (2AMaxTransformSizeIndex)' e 'MinTransformSize' pode ser o tamanho da unidade de transformação mínima atual 'CurrMinTuSize', que pode ser determinado na unidade de codificação atual.
[000500] De acordo com uma ou mais formas de realização, o tamanho da unidade de transformação máxima RootTuSize pode variar, de acordo com o tipo de um modo de previsão.
[000501] Por exemplo, se um modo de previsão atual for um modo inter, então 'RootTuSize' pode ser determinado, usando a Equação (2) abaixo. Na Equação (2), 'MaxTransformSize' denota um tamanho da unidade de transformação máxima, e 'PUSize' denota um tamanho da unidade de previsão atual.
RootTuSize = min(MaxTransformSize, PUSize) ... (2)
[000502] Ou seja, se o modo de previsão atual for o modo inter, o tamanho da unidade de transformação 'RootTuSize', quando o sinalizador de tamanho da TU for 0, pode ser um valor menor dentre o tamanho da unidade de transformação máxima e o tamanho da unidade de previsão atual.
[000503] Se um modo de previsão de uma unidade de partição atual for um modo intra, 'RootTuSize' pode ser determinado, usando a Equação (3) abaixo. Na Equação (3), 'PartitionSize' denota o tamanho da unidade de partição atual.
RootTuSize = min (MaxTransformSize, PartitionSize)... (3)
[000504] Ou seja, se o modo de previsão atual for o modo intra, o tamanho da unidade de transformação 'RootTuSize', quando sinalizador de tamanho da TU for 0, pode ser um valor menor dentre o tamanho da unidade de transformação máxima e o tamanho da unidade de partição atual.
[000505] No entanto, o tamanho da unidade de transformação máxima atual 'RootTuSize', que varia de acordo com o tipo de um modo de previsão em uma unidade de partição, é apenas um exemplo, e as formas de realização não são por este aspecto limitadas.
[000506] De acordo com o método para codificação de vídeo baseado em unidades de codificação tendo uma estrutura em árvore, como descrito com referência às Figs. 8 a 20, dados de imagem de um domínio espacial são codificados para cada unidade de codificação de uma estrutura em árvore. De acordo com o método para decodificação de vídeo baseado em unidades de codificação tendo uma estrutura em árvore, decodificação é executada para cada LCU, para restaurar dados de imagem de um domínio espacial. Assim, um quadro e um vídeo, que é uma sequência de quadros, podem ser restaurados. O vídeo restaurado pode ser reproduzido por um aparelho de reprodução, armazenado em uma mídia de armazenamento, ou transmitido por uma rede.
[000507] Além disso, parâmetros de SAO podem ser sinalizados com relação a cada quadro, cada fatia, cada LCU, cada uma das unidades de codificação tendo uma estrutura em árvore, cada unidade de previsã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 LCU podem ser ajustados usando valores de deslocamento reconstruídos baseado nos parâmetros de SAO recebidos, e, portanto, uma LCU tendo um erro minimizado entre um bloco original e a LCU pode ser reconstruída.
[000508] As formas de realização podem ser gravadas como programas de computador, e podem ser implementadas em computadores digitais de uso geral, que executam os programas usando uma mídia de gravação legível por computador. Exemplos de mídia de gravação legível por computador incluem mídia de armazenamento magnético (por exemplo, ROM, disquetes, discos rígidos etc.) e mídias de gravação óptica (por exemplo, CD-ROMs ou DVDs).
[000509] Embora uma ou mais formas de realização tenham sido particularmente mostradas e descritas com referencia a exemplos de formas de realização associadas, deve ser percebido por uma pessoa versada na técnica que várias alterações na forma e detalhes podem ser feitas, sem se afastar do espírito e escopo da invenção, conforme definidos pelas reivindicações seguintes. As formas de realização exemplares devem ser consideradas apenas em um sentido descritivo e não para fins de limitação. Portanto, o escopo da invenção é definido, não pela descrição detalhada da invenção, mas pelas reivindicações seguintes, e todas as diferenças dentro do escopo serão construídas como sendo incluídas em uma ou mais formas de realização.
[000510] Para fins de conveniência da descrição, o método para codificação de vídeo, de acordo com o ajuste de um deslocamento de amostra, que é descrito com referência às Figuras 1A a 20, serão referidos como um 'método para codificação de vídeo, de acordo com uma ou mais formas de realização’. Além disso, o método para decodificação de vídeo, de acordo com ajuste de um deslocamento de amostra, que foi acima descrito com referência às Figuras 1A a 20, serão referidos como um 'método para decodificação de vídeo, de acordo com uma ou mais formas de realização'.
[000511] Além disso, um aparelho codificador de vídeo, incluindo o aparelho codificador de vídeo 10, o aparelho codificador de vídeo 100, o codificador de imagens 400, que foram acima descritos com referência às Figuras 1A a 20, serão referidos como um 'aparelho codificador de vídeo, de acordo com uma ou mais formas de realização’. Além disso, um aparelho decodificador de vídeo, incluindo o aparelho decodificador de vídeo 20, o aparelho decodificador de vídeo 200 ou o decodificador de imagens 500, que foram acima descritos com referência às Figuras 1A a 20, serão referidos como um 'aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização’.
[000512] Uma mídia de gravação legível por computador armazenando um programa, por exemplo, um disco 26000, de acordo com uma ou mais formas de realização, será agora descrita em particular.
[000513] A Fig. 21 é um diagrama de uma estrutura física do disco 26000, que armazena um programa, de acordo com uma ou mais formas de realização. O disco 26000, que é uma mídia de armazenamento, pode ser um disco rígido, um disco compacto de memória somente de leitura de disco (CD-ROM), um disco Blu-ray, ou um disco versátil digital (DVD). O disco 26000 inclui uma pluralidade de faixas concêntricas Tr, cada qual sendo dividida em um número específico de setores Se numa direção circunferencial do disco 26000. Em uma região específica do disco 26000, um programa, que executa o método para determinar parâmetros de quantização, o método para codificação de vídeo, e o método para decodificação de vídeo, conforme acima descritos, pode ser alocado e armazenado.
[000514] Um sistema de computador incorporado usando uma mídia de armazenamento, que armazena um programa para executar o método para codificação de vídeo e o método para decodificação de vídeo, conforme acima descritos, será agora descrito com referência à Fig. 22.
[000515] A Fig. 22 é um diagrama de uma unidade de disco 26800 para gravar e ler um programa usando um disco 26000. Um sistema de computador 26700 pode armazenar um programa, que executa pelo menos um dentre um método para codificação de vídeo e um método para decodificação de vídeo, de acordo com uma ou mais formas de realização, no disco 26000 através da unidade de disco 26800. Para executar o programa armazenado no disco 26000, no sistema de computador 26700, o programa pode ser lido a partir do disco 26000 e ser transmitido ao sistema de computador 26700 usando a unidade de disco 26700.
[000516] O programa, que executa pelo menos um dentre um método para codificação de vídeo e um método para decodificação de vídeo, de acordo com uma ou mais formas de realização, pode ser armazenado, não só no disco 26000 ilustrado na Fig. 21 ou 22, mas também em um cartão de memória, um cassete de ROM, ou em uma unidade de estado sólido (SSD).
[000517] Um sistema, ao qual o método para codificação de vídeo e um método para decodificação de vídeo acima descritos são aplicados, será abaixo descrito.
[000518] A Fig. 23 é um diagrama de uma estrutura completa de um sistema alimentador 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 base sem fio 11700, 11800, 11900 e 12000 são, respectivamente, instaladas nessas células.
[000519] O sistema alimentador de conteúdo 11000 inclui uma pluralidade de dispositivos independentes. Por exemplo, a pluralidade de dispositivos independentes, como um computador 12100, um assistente digital pessoal (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ços de internet 11200, uma rede de comunicação 11400, e as estações base sem fio 11700, 11800, 11900 e 12000.
[000520] No entanto, o sistema alimentador de conteúdo 11000 não está limitado aos aspectos ilustrados na Fig. 24, e dispositivos podem ser seletivamente conectados ao mesmo. A pluralidade de dispositivos independentes pode ser conectada diretamente à rede de comunicação 11400, e não através das estações base sem fio 11700, 11800, 11900 e 12000.
[000521] A câmara de vídeo 12300 é um dispositivo formador de imagens, 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 dentre vários protocolos, por exemplo, Personal Digital Communications (PDC), Code Division Multiple Access (CDMA), Wideband-Code Division Multiple Access (W-CDMA), Global System for Mobile Communications (GSM), e Personal Handyphone System (PHS).
[000522] A câmara de vídeo 12300 pode ser conectada a um servidor de streaming 11300, através da estação base sem fio 11900 e da rede de comunicação 11400. O servidor de streaming 11300 permite que conteúdo recebido por um usuário através da câmera de vídeo 12300 seja transmitido, através de uma radiodifusão em tempo real. O conteúdo recebido pela câmera de vídeo 12300 pode ser codificado, usando 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 ao servidor de streaming 11300, através do computador 12100.
[000523] Dados de vídeo capturados por uma câmera 12600 podem ser ainda transmitidos para o servidor de streaming 11300, através do computador 12100. A câmera 12600 é um dispositivo formador de imagens capaz de capturar imagens estáticas e imagens de vídeo, semelhante a uma câmera digital. Os dados de vídeo capturados pela câmera 12600 podem ser codificados, usando a câmera 12600 ou o computador 12100. Software, que realiza codificação e decodificação de vídeo, pode ser armazenado em uma mídia de gravação legível por computador, por exemplo, um disco de CD-ROM, um disquete, uma unidade de disco rígido, um SSD, ou um cartão de memória, que pode ser acessado pelo computador 12100.
[000524] Se dados de vídeo forem capturados por uma câmera instalada no telefone móvel 12500, os dados de vídeo podem ser recebidos pelo telefone móvel 12500.
[000525] Os dados de vídeo podem ser ainda codificados por um sistema de circuitos integrados em larga escala (LSI) instalado na câmera de vídeo 12300, no telefone móvel 12500, ou na câmera 12600.
[000526] O sistema alimentador de conteúdo 11000 pode codificar dados de conteúdo gravados por um usuário, usando a câmera de vídeo 12300, a câmera 12600, o telefone móvel 12500, ou outro dispositivo formador de imagens, por exemplo, conteúdo gravado durante um concerto, e transmitir os dados de conteúdo codificados ao servidor de streaming 11300. O servidor de streaming 11300 pode transmitir dados de conteúdo codificados em um tipo de um conteúdo de streaming a outros clientes, que solicitaram os dados de conteúdo.
[000527] 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. Assim, o sistema alimentador de conteúdo 11000 permite que clientes recebam e reproduzam os dados de conteúdo codificados. Além disso, o sistema alimentador 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, permitindo, assim, radiodifusão pessoal.
[000528] Operações para codificação e decodificação da pluralidade de dispositivos independentes incluídos no sistema alimentador de conteúdo 11000 podem ser semelhantes àquelas de um aparelho codificador de vídeo e de um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização.
[000529] O telefone móvel 12500 incluído no sistema alimentador de conteúdo 11000, de acordo com uma ou mais formas de realização, será agora descrito mais detalhadamente com referência às Figs. 24 e 25.
[000530] A Fig. 24 ilustra uma estrutura externa do telefone móvel 12500, à qual são aplicados um método para codificação de vídeo e um método para decodificação de vídeo. O telefone móvel 12500 pode ser um smartphone, cujas funções não são limitadas, e grande parte de cujas funções pode ser alterada ou expandida.
[000531] O telefone móvel 12500 inclui uma antena interna 12510, através da qual, um sinal de radiofrequência (RF) pode ser trocado com a estação base sem fio 12000 da Fig. 21, e inclui uma tela de exposição 12520 para exibir imagens capturadas pela câmera 12530, ou imagens que são recebidas através da antena 12510 e decodificadas, por exemplo, uma display de cristal líquido (LCD) ou uma tela orgânica de diodos emissores de luz (OLED). O telefone móvel 1250 inclui um painel de operação 12540, incluindo um botão de controle e um painel de toque. Se a tela de exibição 12520 for uma tela de toque, o painel de operação 12540 ainda inclui um painel sensível a toque da tela de exibição 12520. O telefone móvel 12500 inclui um alto-falante 12580 para emitir voz e som ou outro tipo de unidade emissora de som, e um microfone 12550 para entrada de voz e som, ou outro tipo de unidade de entrada de som. O telefone móvel 12500 ainda inclui a câmera 12530, tal como uma câmera de dispositivo de carga acoplada (CCD), para capturar imagens estáticas e de vídeo. O telefone móvel 12500 pode ainda incluir uma mídia de armazenamento 12570 para armazenar dados codificados/ decodificados, por exemplo, imagens estáticas ou de vídeo capturadas pela câmera 12530, recebidas via e-mail, ou obtidas de acordo com várias formas; e um slot 12560, através do qual, a mídia de armazenamento 12570 é carregada no telefone móvel 12500. A mídia de armazenamento 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 um estojo plástico.
[000532] A Fig. 25 ilustra uma estrutura interna do telefone móvel 12500, de acordo com uma ou mais formas de realização. Para controlar sistemicamente partes do telefone móvel 12500, incluindo a tela de exposição 12520 e o painel de operação 12540, um circuito alimentador de energia 12700, um controlador de entrada em operação 12640, uma unidade de codificação de imagem 12720, uma interface de câmera 12630, um controlador de LCD 12620, uma unidade de decodificação de imagem 12690, um multiplexador/ demultiplexador 12680, uma unidade de leitura/ gravação 12670, uma unidade de modulação/ demodulação 12660, e um processador de som 12650, são conectados a um controlador central 12710 através de um barramento de sincronização 12730.
[000533] Se um usuário operar um botão de energia e comutar de um estado de 'energia desligada' para um estado de 'energia ligada’, o circuito de alimentação de energia 12700 fornece energia para todas as partes do telefone móvel 12500 através de uma bateria, colocando, assim, o telefone móvel 12500 em um modo de operação.
[000534] O controlador central 12710 inclui uma unidade de processamento central (CPU), uma ROM, e uma RAM.
[000535] Enquanto o telefone móvel 12500 transmitir 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, a unidade de codificação 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ção 12540 e do controlador de entrada em operação 12640. Quando um sinal digital é transmitido para a unidade de modulação/ demodulação 12660 sob controle do controlador central 12710, a unidade de modulação/ demodulação 12660 modula uma faixa de frequências do sinal digital, e um circuito de comunicação 12610 executa conversão digital/ analógica (DAC) e conversão de frequência no sinal de som digital com faixa de frequências modulada. Um sinal de transmissão emitido pelo 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.
[000536] Por exemplo, quando o telefone móvel 12500 está em um modo de conversação, um sinal sonoro, 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 transmissão através da unidade de modulação/ demodulação 12660 e do circuito de comunicação 12610, e pode ser transmitido através da antena 12510.
[000537] Quando uma mensagem de texto, por exemplo, e-mail, é transmitida em um modo de comunicação de dados, dados de texto da mensagem são inseridos através do painel de operação 12540, e são transmitidos para o controlador central 12710, através do controlador de entrada em operação 12640. Sob controle do controlador central 12710, os dados de texto são transformados em um sinal de transmissão através da unidade de modulação/ demodulação 12660 e do circuito de comunicação 12610, e são transmitidos para a estação base sem fio 12000 através da antena 12510.
[000538] Para transmitir dados de imagem no modo de comunicação de dados, dados de imagem capturados pela câmera 12530 são fornecidos para a unidade de codificação de imagem 12720 através da interface de câmera 12630. Os dados de imagem capturados podem ser exibidos diretamente na tela de exibição 12520 através da interface de câmera 12630 e do controlador de LCD 12620.
[000539] Uma estrutura da unidade de codificação de imagem 12720 pode corresponder àquela do método para codificação de vídeo acima descrito, de acordo com uma ou mais formas de realização. A unidade de codificação de imagem 12720 pode transformar os dados de imagem recebidos pela câmera 12530 em dados de imagem compactados e codificados, com base no método para codificação de vídeo acima descrito, de acordo com uma ou mais formas de realização e, em seguida, emitir os dados de imagem codificados para o multiplexador/ demultiplexador 12680. Durante uma operação de gravação da câmera 12530, um sinal sonoro, obtido pelo microfone 12550 do telefone móvel 12500, pode ser transformado em dados sonoros digitais através do processador de som 12650, e os dados sonoros digitais podem ser transmitidos para o multiplexador/ demultiplexador 12680.
[000540] O multiplexador/ demultiplexador 12680 multiplexa os dados de imagem codificados, recebidos da unidade de codificação de imagem 12720, juntamente com os dados de som recebidos do processador de som 12650. Como resultado da multiplexação, os dados podem ser transformados em um sinal de transmissão através da unidade de modulação/ demodulação 12660 e do circuito de comunicação 12610, e podem ser, então, transmitidos através da antena 12510.
[000541] Enquanto o telefone móvel 12500 recebe dados de comunicação do exterior, recuperação de frequência e conversão analógica/ digital (ADC) são executadas em um sinal recebido através da antena 12510, para transformar o sinal em um sinal digital. A unidade de modulação/ demodulação 12660 modula uma faixa de frequências do sinal digital. O sinal digital com faixa de frequências modulada é transmitido para a unidade de decodificação de vídeo 12690, o processador de som 12650, ou o controlador de LCD 12620, de acordo com o tipo do sinal digital.
[000542] No modo de conversação, o telefone móvel 12500 amplifica um sinal recebido através da antena 12510, e obtém um sinal de som digital por meio de conversão de frequência e conversão analógica/ digital (ADC) no sinal amplificado. Um sinal de som digital recebido é transformado em um sinal de som analógico através da unidade de modulação/ demodulação 12660 e do processador de som 12650, e o sinal de som analógico é emitido através do alto-falante 12580, sob controle do controlador central 12710.
[000543] Quando, no modo de comunicação de dados, dados de um arquivo de vídeo acessados em um site da Internet são recebidos, um sinal recebido da estação base sem fio 12000 através da antena 12510 é emitido como dados multiplexados através da unidade de modulação/ demodulação 12660, e os dados multiplexados são transmitidos para o multiplexador/ demultiplexador 12680.
[000544] Para decodificar os dados multiplexados recebidos através da antena 12510, o multiplexador/ demultiplexador 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, respectivamente, para a unidade de decodificação de vídeo 12690 e para o processador de som 12650.
[000545] Uma estrutura da unidade de decodificação de imagem 12690 pode corresponder àquela do método para decodificação de vídeo acima descrito, de acordo com uma ou mais formas de realização. A unidade de decodificação de imagem 12690 pode decodificar os dados de vídeo codificados, para obter dados de vídeo restaurados e fornecer os dados de vídeo restaurados para a tela de exibição 12520 através do controlador de LCD 12620, usando o método para decodificação de vídeo acima descrito, de acordo com uma ou mais formas de realização.
[000546] Assim, os dados do arquivo de vídeo acessado no site da Internet podem ser exibidos na tela de exibição 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. Assim, dados de áudio contidos no arquivo de vídeo acessado no site da Internet podem ser ainda reproduzidos através do alto-falante 12580.
[000547] O telefone móvel 12500 ou outro tipo de terminal de comunicação pode ser um terminal transceptor incluindo um aparelho codificador de vídeo e o aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização, pode ser um terminal transceptor incluindo apenas o aparelho codificador de vídeo, ou pode ser um terminal transceptor incluindo apenas o aparelho decodificador de vídeo.
[000548] Um sistema de comunicação, de acordo com uma ou mais formas de realização, não está limitado ao sistema de comunicação acima descrito com referência à Fig. 24. Por exemplo, a Fig. 26 ilustra um sistema de radiodifusão digital empregando um sistema de comunicação, de acordo com uma ou mais formas de realização. O sistema de radiodifusão digital da Fig. 26 pode receber uma radiodifusão digital transmitida através de um satélite ou uma rede terrestre, usando um aparelho codificador de vídeo e um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização.
[000549] De modo específico, uma estação de radiodifusão 12890 transmite um fluxo de dados de vídeo para um satélite de comunicação ou um satélite de radiodifusão 12900 usando ondas de rádio. O satélite de radiodifusão 12900 transmite um sinal de radiodifusão, e o sinal de radiodifusão é transmitido para um receptor de radiodifusão via satélite através de uma antena doméstica 12860. Em cada residência, um fluxo de vídeo codificado pode ser decodificado e reproduzido por um receptor de TV 12810, um decodificador 12870, ou outro dispositivo.
[000550] Quando um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização, é implementado como um aparelho de reprodução 12830, o aparelho de reprodução 12830 pode analisar e decodificar um fluxo de vídeo codificado, gravado em uma mídia de armazenamento 12820, tal como um disco ou um cartão de memória, para restaurar sinais digitais. Assim, o sinal de vídeo restaurado pode ser reproduzido, por exemplo, em um monitor 12840.
[000551] No decodificador 12870 conectado à antena 12860 para uma radiodifusão terrestre/ via satélite, ou uma antena via cabo 12850 para receber uma radiodifusão de televisão (TV) via cabo, um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização, pode ser instalado. Dados emitidos pelo decodificador 12870 podem ser ainda reproduzidos em um monitor de TV 12880.
[000552] Como outro exemplo, o aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização, pode ser instalado no receptor de TV 12810, em vez do decodificador 12870.
[000553] Um automóvel 12920, que possua uma antena adequada 12910, pode receber um sinal transmitido a partir do satélite 12900, ou da estação base sem fio 11700 da Fig. 21. Um vídeo decodificado pode ser reproduzido em uma tela de exibição de um sistema de navegação de automóvel 12930, instalado no automóvel 12920.
[000554] Um sinal de vídeo pode ser codificado por um aparelho codificador de vídeo, de acordo com uma ou mais formas de realização, e pode ser, então, armazenado em uma mídia de armazenamento. De modo específico, um sinal de imagem pode ser armazenado em um disco de DVD 12960 por um gravador 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 decodificador de vídeo, de acordo com uma ou mais formas de realização, um sinal de vídeo gravado no disco DVD 12960, cartão SD 12970, ou em outra mídia de armazenamento, pode ser reproduzido no monitor de TV 12880.
[000555] O sistema de navegação de automóvel 12930 pode não incluir a câmera 12530 da Fig. 24, e a interface de câmera 12630, e a unidade de codificação de imagem 12720 da Fig. 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 a unidade de codificação de imagem 12720.
[000556] A Fig. 27 é um diagrama ilustrando uma estrutura de rede de um sistema de computação em nuvem, usando um aparelho codificador de vídeo e um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização.
[000557] O sistema de computação em nuvem pode incluir um servidor de computação em nuvem 14000, um banco de dados (DB) de usuário 14100, uma pluralidade de recursos de computação 14200 e um terminal de usuário.
[000558] O sistema de computação em nuvem fornece um serviço de terceirização por solicitação 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 do terminal de usuário. Sob um ambiente de computação em nuvem, um provedor de serviço fornece serviços aos usuários, combinando recursos de computação em centros de dados localizados em locais fisicamente diferentes, usando a tecnologia de virtualização. Um usuário do serviço não precisa instalar recursos de computação, por exemplo, um aplicativo, uma unidade de armazenamento, um sistema operacional (SO), e segurança, em seu próprio terminal, a fim de usá-los, mas pode selecionar e usar os serviços desejados dentre os serviços em um espaço virtual gerado através da tecnologia de virtualização, em um instante de tempo desejado.
[000559] Um terminal de usuário de um usuário de serviço especificado é conectado ao servidor de computação em nuvem 14000, através de uma rede de comunicação de dados incluindo a Internet e uma rede de telecomunicações móveis. Terminais de usuário podem ser alimentados com serviços de computação em nuvem e, particularmente, serviços de reprodução de vídeo, através do servidor de computação em nuvem 14000. Os terminais de usuário podem ser vários tipos de dispositivos eletrônicos capazes de ser conectados à Internet, por exemplo, um PC de mesa 14300, uma smart TV 14400, um smartphone 14500, um notebook 14600, um leitor multimídia portátil (PMP) 14700, um tablet 14800 e similares.
[000560] O servidor de computação em nuvem 14000 pode combinar a pluralidade de recursos de computação 14200 distribuída em uma rede em nuvem e alimentar terminais de usuário com um resultado da combinação. A pluralidade de recursos de computação 14200 pode incluir vários serviços de dados, e pode incluir dados enviados a partir de terminais de usuário. Conforme acima descrito, o servidor de computação em nuvem 14000 pode alimentar terminais de usuário com serviços desejados, combinando o banco de dados de vídeo distribuído em diferentes regiões, de acordo com a tecnologia de virtualização.
[000561] Informações de usuário sobre usuários, que se inscreveram em um serviço de computação em nuvem, são armazenadas no DB de usuários 14100. As informações de usuário podem incluir informações de registro, endereços, nomes, e informações de crédito pessoal do usuário. As informações de usuário podem ainda incluir índices de vídeo. 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 pausa de um vídeo que estava sendo reproduzido, e afins.
[000562] Informações sobre um vídeo armazenado no DB de usuários 14100 podem ser compartilhadas entre dispositivos de usuário. Por exemplo, quando um serviço de vídeo for fornecido para o notebook 14600 em resposta a uma solicitação do notebook 14600, um histórico de reprodução do serviço de vídeo é armazenado no DB de usuários 14100. Quando uma solicitação for recebida para reproduzir esse serviço de vídeo do smartphone 14500, o servidor de computação em nuvem 14100 busca e reproduz o serviço de vídeo, com base no DB de usuários 14100. Quando o smartphone 14500 recebe um fluxo de dados de vídeo do servidor de computação em nuvem 14000, um processo de reprodução de vídeo por decodificação do fluxo de dados de vídeo é semelhante a uma operação do telefone móvel 12500, acima descrita com referência à Fig. 24.
[000563] O servidor de computação em nuvem 14000 pode fazer referência a um histórico de reprodução de um serviço de vídeo desejado, armazenado no DB de usuários 14100. Por exemplo, o servidor de computação em nuvem 14000 recebe uma solicitação para reproduzir um vídeo armazenado no DB de usuários 14100, de um terminal de usuário. Se esse vídeo estava sendo reproduzido, então um método de streaming desse vídeo, executado pelo servidor de computação em nuvem 14000 pode variar de acordo com a solicitação do terminal do usuário, por exemplo, com base no fato do vídeo ser reproduzido a partir de seu início, ou de seu ponto de pausa. Por exemplo, se o terminal de usuário solicitar a reprodução do vídeo a partir de seu início, o servidor de computação em nuvem 14000 transmite dados de streaming do vídeo a partir de seu primeiro quadro para o terminal de usuário. Se o terminal do usuário solicitar a reprodução do vídeo a partir de seu ponto de pausa, o servidor de computação em nuvem 14000 transmite dados de streaming do vídeo, a partir de um quadro correspondente ao ponto de pausa, para o terminal de usuário.
[000564] Neste caso, o terminal de usuário pode incluir um aparelho decodificador de vídeo, conforme acima descrito com referência às Figs. 1A a 20. Como outro exemplo, o terminal de usuário pode incluir um aparelho codificador de vídeo, conforme acima descrito com referência às Figs. 1A a 20. Como alternativa, o terminal de usuário pode incluir o aparelho decodificador de vídeo e o aparelho codificador de vídeo, conforme acima descrito com referência às Figs. 1A a 20.
[000565] Várias aplicações de um método para codificação de vídeo, um método para decodificação de vídeo, e um aparelho codificador de vídeo, e um aparelho decodificador de vídeo, de acordo com uma ou mais formas de realização, acima descritas com referência às Figs. 1A a 20, foram acima descritas com referência às Figs. 21 a 27. No entanto, métodos para armazenar o método para codificação de vídeo e o método para decodificação de vídeo em uma mídia de armazenamento, ou métodos para implementar o aparelho codificador de vídeo e o aparelho decodificador de vídeo em um dispositivo, de acordo com várias formas de realização, não estão limitados às formas de realização acima descritas com referência às Fig. 21 a 27.
[000566] Embora uma ou mais formas de realização tenham sido particularmente mostradas e descritas com referência a suas formas de realização, deve ser compreendido pelas pessoas com habilidade comum na arte, que várias alterações na forma e detalhes podem ser feitas, sem se afastar do espírito e escopo da invenção, como definidos pelas reivindicações acrescentadas. As formas de realização devem ser consideradas somente no sentido descritivo e não para fins de limitação. Portanto, o escopo da invenção é definido, não pela descrição detalhada da invenção, mas pelas reivindicações acrescentadas, e todas as diferenças dentro do escopo devem ser interpretadas, como estando incluídas na presente invenção.

Claims (1)

1. MÉTODO DE AJUSTE DE DESLOCAMENTO ADAPTATIVO DE AMOSTRA (SAO), o método compreendendo: obter um cabeçalho de fatia de um fluxo de bits recebido; obter informações de uso de SAO de luminância para componentes de luminância da fatia atual e informações de uso de SAO de crominância para componentes de crominância da fatia atual a partir do cabeçalho de fatia; determinar se é para realizar uma operação de SAO no componente de luminância da fatia atual, baseado nas informações obtidas sobre uso de SAO de luminância; determinar se é para realizar a operação SAO nos componentes de crominância da fatia atual com base nas informações de uso de SAO de crominância obtidas, em que os componentes de crominância compreendem componentes Cr e componentes Cb; quando a operação SAO é realizada nos componentes de luminância da fatia atual com base nas informações de uso de SAO de luminância obtidas e a operação SAO é realizada nos componentes de crominância da fatia atual com base nas informações de uso de SAO de crominância obtidas, obter informações de mesclagem de SAO à esquerda de um bloco atual entre os blocos incluídos na fatia atual realizando a decodificação de entropia usando um primeiro modo de contexto; quando a informação de mesclagem de SAO à esquerda indica que os parâmetros SAO do bloco atual são determinados de acordo com os parâmetros SAO de um bloco esquerdo, determinar que parâmetros SAO dos componentes luminância do bloco atual sejam idênticos aos parâmetros SAO dos componentes luminância do bloco esquerdo, e os parâmetros SAO dos componentes de crominância do bloco atual sejam idênticos aos parâmetros SAO dos componentes de crominância do bloco esquerdo; quando a informação de mesclagem de SAO à esquerda indica que os parâmetros SAO do bloco atual não são determinados de acordo com os parâmetros SAO do bloco esquerdo, obter informações de mesclagem de SAO superior do bloco atual mediante realizar decodificação de entropia no fluxo de bits usando o primeiro modo de contexto; e quando a informação de mesclagem de SAO superior indica que os parâmetros SAO do bloco atual são determinados de acordo com os parâmetros SAO de um bloco superior, determinar que os parâmetros SAO dos componentes luminância do bloco atual sejam idênticos aos parâmetros SAO dos componentes luminância do bloco superior, e os parâmetros SAO de componentes de crominância do bloco atual sejam idênticos aos parâmetros de SAO de componentes de crominância do bloco superior; quando a informação de mesclagem de SAO superior indica que os parâmetros SAO do bloco atual não são determinados de acordo com os parâmetros SAO do bloco superior, obter os parâmetros SAO do bloco atual a partir do fluxo de bits; e realizar a operação SAO mediante ajustar os valores de amostra dos componentes luminância do bloco atual usando os parâmetros SAO dos componentes luminância do bloco atual, e valores de amostra dos componente de crominância do bloco atual usando os parâmetros SAO dos componente de crominância do bloco atual, caracterizado por obter os parâmetros SÃO do bloco atual a partir do fluxo de bits compreender: obter informações do tipo de SAO do bloco atual a partir do fluxo de bits; quando a informação do tipo de SAO indica um tipo de banda ou um tipo de borda, obter um valor absoluto de um deslocamento do bloco atual mediante executar a decodificação de entropia no fluxo de bits no modo de desvio sem modelagem de contexto; e em resposta à determinação de que a informação de tipo SAO do bloco atual indica o tipo de deslocamento de banda, obtendo uma classe de banda indicando uma posição inicial esquerda de bandas do bloco atual, entre uma pluralidade de bandas, mediante realizar decodificação de entropia, e em resposta à determinação de que a informação de tipo SAO do bloco atual indica o tipo de deslocamento de borda, obter uma classe de borda indicando uma direção de borda do bloco atual executando a decodificação de entropia, e os componentes cromitância do bloco atual compreendem um componente Cr e um componente Cb, a classe de borda indicando a direção da borda para os componentes de crominância ser comumente aplicada ao componente Cr e ao componente Cb do bloco atual.
BR112014030935-3A 2012-06-11 2013-06-11 Método de ajuste de deslocamento adaptativo de amostra (sao) BR112014030935B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261657967P 2012-06-11 2012-06-11
US61/657,967 2012-06-11
PCT/KR2013/005112 WO2013187654A1 (ko) 2012-06-11 2013-06-11 컬러성분별로 sao 파라미터를 공유하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Publications (3)

Publication Number Publication Date
BR112014030935A2 BR112014030935A2 (pt) 2017-06-27
BR112014030935A8 BR112014030935A8 (pt) 2019-12-10
BR112014030935B1 true BR112014030935B1 (pt) 2022-06-14

Family

ID=49758427

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014030935-3A BR112014030935B1 (pt) 2012-06-11 2013-06-11 Método de ajuste de deslocamento adaptativo de amostra (sao)

Country Status (27)

Country Link
US (6) US9807392B2 (pt)
EP (5) EP3300365B1 (pt)
JP (5) JP5990326B2 (pt)
KR (6) KR101529994B1 (pt)
CN (10) CN104869394B (pt)
AU (3) AU2013275098B2 (pt)
BR (1) BR112014030935B1 (pt)
CA (2) CA2985277C (pt)
CY (1) CY1119864T1 (pt)
DK (5) DK3297283T3 (pt)
ES (5) ES2652608T3 (pt)
HR (1) HRP20171936T1 (pt)
HU (5) HUE047442T2 (pt)
IN (1) IN2014MN02643A (pt)
LT (1) LT2854398T (pt)
MX (2) MX352119B (pt)
MY (2) MY171147A (pt)
NO (1) NO2938424T3 (pt)
PH (5) PH12014502761A1 (pt)
PL (5) PL3297284T3 (pt)
PT (1) PT2854398T (pt)
RS (1) RS56675B1 (pt)
RU (4) RU2638742C1 (pt)
SG (4) SG11201408246QA (pt)
SI (1) SI2854398T1 (pt)
TW (5) TWI687091B (pt)
WO (1) WO2013187654A1 (pt)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
MX2013013508A (es) 2011-06-23 2014-02-27 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
TWI581615B (zh) 2011-06-24 2017-05-01 Sun Patent Trust A decoding method, a coding method, a decoding device, an encoding device, and a coding / decoding device
EP2725792B1 (en) 2011-06-24 2018-08-22 Sun Patent Trust Image decoding method and image decoding device
AU2012277214B2 (en) 2011-06-27 2016-05-05 Sun Patent Trust Decoding method, coding method, decoding apparatus, coding apparatus, and coding and decoding apparatus
WO2013001765A1 (ja) 2011-06-28 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
WO2013001767A1 (ja) 2011-06-29 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
KR102060619B1 (ko) 2011-06-30 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
AU2012277220B2 (en) 2011-06-30 2016-08-11 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN106851295B (zh) 2011-07-11 2019-10-18 太阳专利托管公司 编码方法及编码装置
US9253482B2 (en) * 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
WO2013091513A1 (en) * 2011-12-22 2013-06-27 Mediatek Inc. Method and apparatus of texture image compression in 3d video coding
CN104869394B (zh) 2012-06-11 2018-10-19 三星电子株式会社 视频解码方法
TWI595776B (zh) * 2012-06-27 2017-08-11 Sony Corp Image processing device and method
TWI557727B (zh) 2013-04-05 2016-11-11 杜比國際公司 音訊處理系統、多媒體處理系統、處理音訊位元流的方法以及電腦程式產品
EP2996269A1 (en) 2014-09-09 2016-03-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio splicing concept
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
US9729885B2 (en) * 2015-02-11 2017-08-08 Futurewei Technologies, Inc. Apparatus and method for compressing color index map
US9877024B2 (en) 2015-03-06 2018-01-23 Qualcomm Incorporated Low complexity sample adaptive offset (SAO) coding
CN105049853A (zh) * 2015-07-06 2015-11-11 深圳市云宙多媒体技术有限公司 一种基于片源分析的sao编码方法及系统
WO2017014585A1 (ko) * 2015-07-21 2017-01-26 엘지전자(주) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
US11196992B2 (en) * 2015-09-03 2021-12-07 Mediatek Inc. Method and apparatus of neural network based processing in video coding
US10972731B2 (en) * 2015-11-10 2021-04-06 Interdigital Madison Patent Holdings, Sas Systems and methods for coding in super-block based video coding framework
US10841581B2 (en) * 2016-07-14 2020-11-17 Arris Enterprises Llc Region specific encoding and SAO-sensitive-slice-width-adaptation for improved-quality HEVC encoding
US10567775B2 (en) * 2016-10-01 2020-02-18 Intel Corporation Method and system of hardware accelerated video coding with per-frame parameter control
WO2018174591A1 (ko) * 2017-03-22 2018-09-27 김기백 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
DE112018002562B3 (de) 2017-04-21 2022-01-05 Zenimax Media Inc. Systeme und Verfahren zur Spielereingabe-Bewegungskompensation in einem Client-Server-Videospiel durch Zwischenspeichern wiederkehrender Bewegungsvektoren
JP7179023B2 (ja) * 2017-05-31 2022-11-28 インターデジタル マディソン パテント ホールディングス, エスアーエス ピクチャの符号化および復号の方法およびデバイス
EP3750320B1 (en) * 2018-02-09 2023-11-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive in-loop filter with multiple feature-based classifications
KR20210022100A (ko) 2018-06-26 2021-03-02 후아웨이 테크놀러지 컴퍼니 리미티드 포인트 클라우드 코딩을 위한 고급 신택스 설계
MX2021002185A (es) * 2018-08-31 2021-05-14 Samsung Electronics Co Ltd Metodo y aparato de decodificacion de video, y metodo y aparato de codificacion de video.
KR20200044662A (ko) * 2018-10-19 2020-04-29 삼성전자주식회사 영상의 ai 부호화 및 ai 복호화를 위한 장치, 및 방법
WO2020094052A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Side information signaling for inter prediction with geometric partitioning
US10727868B2 (en) * 2018-12-03 2020-07-28 Samsung Electronics Co., Ltd. Apparatus and method for offset optimization for low-density parity-check (LDPC) code
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
WO2022115698A1 (en) * 2020-11-30 2022-06-02 Beijing Dajia Internet Information Technology Co., Ltd. Chroma coding enhancement in cross-component sample adaptive offset
CN113099221B (zh) * 2021-02-22 2023-06-02 浙江大华技术股份有限公司 跨分量样点自适应补偿方法、编码方法及相关装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69803639T2 (de) * 1997-08-07 2002-08-08 Matsushita Electric Ind Co Ltd Vorrichtung und Verfahren zur Detektion eines Bewegungsvektors
KR20060105407A (ko) * 2005-04-01 2006-10-11 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US7010044B2 (en) 2003-07-18 2006-03-07 Lsi Logic Corporation Intra 4×4 modes 3, 7 and 8 availability determination intra estimation and compensation
CN101695132B (zh) 2004-01-20 2012-06-27 松下电器产业株式会社 图像编码方法和设备、图像解码方法和设备
KR101136629B1 (ko) 2004-01-30 2012-04-23 파나소닉 주식회사 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치,화상 복호화 장치, 및 그 프로그램
ES2392437T3 (es) * 2004-01-30 2012-12-10 Panasonic Corporation Procedimiento de decodificación de vídeos que utiliza matrices de cuantificación adaptativas
KR100657268B1 (ko) * 2004-07-15 2006-12-14 학교법인 대양학원 컬러 영상의 신축적 부호화, 복호화 방법 및 장치
EP1878250A4 (en) * 2005-04-01 2012-11-28 Lg Electronics Inc METHOD OF ENCODING AND DECODING THAT CAN BE SCALED ON A VIDEO SIGNAL
TW200806040A (en) * 2006-01-05 2008-01-16 Nippon Telegraph & Telephone Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs
JP4650894B2 (ja) * 2006-04-03 2011-03-16 三菱電機株式会社 画像復号装置
CN100578618C (zh) * 2006-12-04 2010-01-06 华为技术有限公司 一种解码方法及装置
JP4956180B2 (ja) * 2006-12-26 2012-06-20 株式会社東芝 順次走査変換装置及び順次走査変換方法
JP5467637B2 (ja) 2007-01-04 2014-04-09 トムソン ライセンシング マルチビュー・コード化ビデオにおける照度補償および/または色補償についてのコーディング・アーチファクトを低減する方法および装置
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8938009B2 (en) 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
KR101624649B1 (ko) 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US9406252B2 (en) 2009-12-31 2016-08-02 Broadcom Corporation Adaptive multi-standard video coder supporting adaptive standard selection and mid-stream switch-over
KR101529992B1 (ko) 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
WO2011128268A1 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
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
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
JP5165083B2 (ja) 2010-06-15 2013-03-21 聯發科技股▲ふん▼有限公司 ビデオコーディングの適応オフセットに用いる装置および方法
US9456111B2 (en) 2010-06-15 2016-09-27 Mediatek Inc. System and method for content adaptive clipping
EP3907999B1 (en) * 2010-09-02 2023-11-22 LG Electronics, Inc. Inter prediction
USRE49308E1 (en) * 2010-09-29 2022-11-22 Electronics And Telecommunications Research Instit Method and apparatus for video-encoding/decoding using filter information prediction
US8861617B2 (en) * 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
CA2805722C (en) 2010-10-05 2016-03-29 Ching-Yeh Chen Method and apparatus of region-based adaptive loop filtering
EP4319166A3 (en) * 2010-11-25 2024-02-28 LG Electronics Inc. Method offor signaling image information, and method offor decoding image information using same
CN102595119B (zh) * 2011-01-14 2014-03-12 华为技术有限公司 条带编码方法及装置、条带解码方法及装置
PL2882190T3 (pl) * 2011-04-21 2019-04-30 Hfi Innovation Inc Sposób i urządzenie do poprawionego filtrowania w pętli
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US20120294353A1 (en) * 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
SG10201408715UA (en) * 2011-06-28 2015-02-27 Samsung Electronics Co Ltd Video encoding method using offset adjustments according to pixel classification and apparatus therefor, video decoding method and apparatus therefor
US20130003829A1 (en) * 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
US9591331B2 (en) * 2012-03-28 2017-03-07 Qualcomm Incorporated Merge signaling and loop filter on/off signaling
MX2013015089A (es) * 2012-05-25 2014-02-21 Panasonic Corp Metodo de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, aparato de decodificacion de imágenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento.
EP2858355A4 (en) 2012-05-25 2016-11-16 Sun Patent Trust PICTURE CODING METHOD, PICTURE DECODING METHOD, PICTURE CODING DEVICE, PICTURE DECODING DEVICE, AND PICTURE CODING / DECODING DEVICE
EP3139616A1 (en) * 2012-05-29 2017-03-08 HFI Innovation Inc. Method and apparatus for coding of sample adaptive offset information
MY169635A (en) * 2012-06-08 2019-04-24 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
CN104869394B (zh) 2012-06-11 2018-10-19 三星电子株式会社 视频解码方法
CN103634603B (zh) * 2012-08-29 2017-07-07 中兴通讯股份有限公司 视频编解码方法、装置及系统

Also Published As

Publication number Publication date
JP2016208545A (ja) 2016-12-08
HUE047709T2 (hu) 2020-05-28
SG11201408246QA (en) 2015-03-30
PL3300365T3 (pl) 2020-01-31
PH12018500804A1 (en) 2018-09-24
RS56675B1 (sr) 2018-03-30
HUE037047T2 (hu) 2018-08-28
HUE047710T2 (hu) 2020-05-28
CA2985277C (en) 2019-06-04
SI2854398T1 (en) 2018-02-28
EP3297284B1 (en) 2019-09-11
PH12018500805A1 (en) 2018-09-24
CN108600752B (zh) 2021-09-21
TWI687091B (zh) 2020-03-01
EP3297283B1 (en) 2019-09-04
US10075718B2 (en) 2018-09-11
KR20150041769A (ko) 2015-04-17
KR101603687B1 (ko) 2016-03-15
CN108965875B (zh) 2022-02-01
CN104869395B (zh) 2018-12-14
US9807392B2 (en) 2017-10-31
CN104869394A (zh) 2015-08-26
PL2854398T3 (pl) 2018-02-28
AU2017265158B2 (en) 2018-11-08
HUE047873T2 (hu) 2020-05-28
KR20150041768A (ko) 2015-04-17
US20150181251A1 (en) 2015-06-25
ES2746824T3 (es) 2020-03-09
CN108965875A (zh) 2018-12-07
IN2014MN02643A (pt) 2015-10-16
JP6034535B1 (ja) 2016-11-30
CN104869396A (zh) 2015-08-26
US9219918B2 (en) 2015-12-22
EP3300364A1 (en) 2018-03-28
JP2016226022A (ja) 2016-12-28
CN104902273A (zh) 2015-09-09
DK3300365T3 (da) 2019-09-16
AU2016204699B2 (en) 2017-08-31
TW201836355A (zh) 2018-10-01
EP3300364B1 (en) 2019-09-04
DK3300364T3 (da) 2019-09-16
KR101603703B1 (ko) 2016-03-15
US20150189284A1 (en) 2015-07-02
TWI519135B (zh) 2016-01-21
PH12018500803B1 (en) 2018-09-24
PL3297283T3 (pl) 2019-12-31
PT2854398T (pt) 2018-01-16
US20150181252A1 (en) 2015-06-25
US10609375B2 (en) 2020-03-31
RU2014153865A (ru) 2016-08-10
PH12014502761B1 (en) 2015-03-02
NO2938424T3 (pt) 2018-08-18
US20180352233A1 (en) 2018-12-06
CN108965876B (zh) 2022-02-01
CA2985277A1 (en) 2013-12-19
ES2746341T3 (es) 2020-03-05
TWI549484B (zh) 2016-09-11
MX342394B (es) 2016-09-28
PH12018500808A1 (en) 2018-09-24
MY171147A (en) 2019-09-27
SG10201503487VA (en) 2015-06-29
LT2854398T (lt) 2018-01-10
JP2015519853A (ja) 2015-07-09
CN104869396B (zh) 2018-10-19
JP6034534B1 (ja) 2016-11-30
KR20130138701A (ko) 2013-12-19
AU2013275098A1 (en) 2015-01-29
RU2638742C1 (ru) 2017-12-15
US20150172678A1 (en) 2015-06-18
TW201640896A (zh) 2016-11-16
CN104902273B (zh) 2019-03-15
PH12018500805B1 (en) 2018-09-24
KR20150009497A (ko) 2015-01-26
PL3300364T3 (pl) 2019-12-31
MX2014015240A (es) 2015-02-20
CA2876167A1 (en) 2013-12-19
PH12014502761A1 (en) 2015-03-02
US9807393B2 (en) 2017-10-31
SG10201510803WA (en) 2016-01-28
CN104869395A (zh) 2015-08-26
HRP20171936T1 (hr) 2018-02-09
JP6081648B2 (ja) 2017-02-15
KR20150041771A (ko) 2015-04-17
WO2013187654A1 (ko) 2013-12-19
MY192340A (en) 2022-08-17
JP2016220238A (ja) 2016-12-22
MX352119B (es) 2017-11-09
CN104869394B (zh) 2018-10-19
KR101603704B1 (ko) 2016-03-25
EP3300365A1 (en) 2018-03-28
AU2017265158A1 (en) 2017-12-14
RU2595578C2 (ru) 2016-08-27
PH12018500804B1 (en) 2018-09-24
CN104471938B (zh) 2018-08-21
CA2876167C (en) 2018-01-02
US20150189330A1 (en) 2015-07-02
EP3297284A1 (en) 2018-03-21
RU2666311C1 (ru) 2018-09-06
CN108965874B (zh) 2021-04-27
KR101529994B1 (ko) 2015-06-29
CY1119864T1 (el) 2018-06-27
JP5990326B2 (ja) 2016-09-14
CN108965876A (zh) 2018-12-07
EP2854398A4 (en) 2015-12-23
ES2755811T3 (es) 2020-04-23
AU2013275098B2 (en) 2016-05-05
KR102028688B1 (ko) 2019-10-04
PH12018500803A1 (en) 2018-09-24
TWI604718B (zh) 2017-11-01
PL3297284T3 (pl) 2019-12-31
JP2016226021A (ja) 2016-12-28
DK2854398T3 (en) 2018-01-08
HUE047442T2 (hu) 2020-04-28
EP3300365B1 (en) 2019-09-04
KR101603705B1 (ko) 2016-03-15
TW201412123A (zh) 2014-03-16
ES2652608T3 (es) 2018-02-05
SG10201605050RA (en) 2016-08-30
PH12018500808B1 (en) 2018-09-24
CN108965874A (zh) 2018-12-07
RU2693307C1 (ru) 2019-07-02
DK3297284T3 (da) 2019-09-23
CN104471938A (zh) 2015-03-25
BR112014030935A8 (pt) 2019-12-10
CN104902272A (zh) 2015-09-09
US9826235B2 (en) 2017-11-21
CN104902272B (zh) 2017-09-01
EP2854398A1 (en) 2015-04-01
TWI632805B (zh) 2018-08-11
DK3297283T3 (da) 2019-09-16
EP3297283A1 (en) 2018-03-21
KR20150041770A (ko) 2015-04-17
EP2854398B1 (en) 2017-12-13
CN108600752A (zh) 2018-09-28
TW201537955A (zh) 2015-10-01
TW201743613A (zh) 2017-12-16
JP6034533B1 (ja) 2016-11-30
ES2746936T3 (es) 2020-03-09
AU2016204699A1 (en) 2016-07-21
BR112014030935A2 (pt) 2017-06-27

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
CA2950943C (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
BR122019022458B1 (pt) Método decodificador de vídeo
AU2015202634B2 (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
B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/00

Ipc: H04N 19/117 (2014.01), H04N 19/13 (2014.01), H04N

B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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