BR112014012939B1 - Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador - Google Patents

Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador Download PDF

Info

Publication number
BR112014012939B1
BR112014012939B1 BR112014012939-8A BR112014012939A BR112014012939B1 BR 112014012939 B1 BR112014012939 B1 BR 112014012939B1 BR 112014012939 A BR112014012939 A BR 112014012939A BR 112014012939 B1 BR112014012939 B1 BR 112014012939B1
Authority
BR
Brazil
Prior art keywords
information
sao
video
alf
partitions
Prior art date
Application number
BR112014012939-8A
Other languages
English (en)
Other versions
BR112014012939A2 (pt
Inventor
In Suk Chong
Xianglin Wang
Marta Karczewicz
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014012939A2 publication Critical patent/BR112014012939A2/pt
Publication of BR112014012939B1 publication Critical patent/BR112014012939B1/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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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

Landscapes

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

Abstract

UNIDADE DE CODIFICAÇÃO MAIOR (LCU) OU SINTAXE COM BASE EM PARTIÇÃO PARA FILTRO DE CIRCUITO ADAPTATIVO E DESVIO ADAPTATIVO DE AMOSTRA NA CODIFICAÇÃO DE VÍDEO Essa descrição se refere a técnicas para a realização dos processos de desvio adaptativo de amostra (SAO) em um processo de codificação de vídeo. Um codificador de vídeo pode armazenar conjuntos de informação SAO. A informação SAO pode incluir dados indicativos de valores de desvio. O codificador de vídeo pode armazenar também informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo. Adicionalmente, o codificador de vídeo pode realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada.

Description

[0001] Esse pedido reivindica os benefícios do pedido provisório U.S. No. 61/564.215, depositado em 28 de novembro de 2011, a totalidade do conteúdo do qual é incorporada aqui por referência.
Campo Técnico
[0002] Essa descrição refere-se à codificação de vídeo e, mais particularmente a técnicas para realização de processos de desvio adaptativo de amostra (SAO) ou de filtro de circuito adaptativo (ALF) em um processo de codificação de vídeo.
Fundamentos
[0003] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, câmeras digitais, dispositivos de gravação digital, aparelhos de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones de rádio via satélite ou celulares, dispositivos de vídeo teleconferência, e similares. Os dispositivos de videodigital implementam técnicas de compressão de vídeo, tal como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançado (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões, para transmitir, receber e armazenar informação de vídeo digital de forma mais eficiente.
[0004] As técnicas de compressão de vídeo incluem predição espacial, predição temporal, ou ambos para reduzir ou remover a redundância inerente a sequências de vídeo. Para a codificação de vídeo com base em bloco, um quadro de vídeo ou fatia pode ser dividido em blocos. Cada bloco pode ser adicionalmente dividido. Os blocos em um quadro ou fatia intracodificado (I) são codificados utilizando-se a predição espacial com relação às amostras de referência nos blocos vizinhos no mesmo quadro ou fatia. Os blocos em um quadro ou fatia intercodificado (P ou B) podem utilizar a predição espacial com relação às amostras de referência em blocos vizinhos no mesmo quadro ou fatia ou predição temporal com relação às amostras de referência em outros quadros de referência. A predição espacial ou temporal resulta em um bloco de predição para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco de predição.
[0005] Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de predição, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de predição. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados a partir de domínio de pixel em um domínio de transformação, resultando em coeficientes de transformação residual, que então podem ser quantizados. Os coeficientes de transformação quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados em uma ordem em particular para produzir um vetor unidimensional de coeficientes de transformação para codificação por entropia.
Sumário
[0006] Em geral, essa descrição descreve as técnicas para codificação de dados de vídeo. Em particular, essa descrição descreve as técnicas para a realização dos processos de desvio adaptativo de amostra (SAO) e filtro de circuito adaptativo (ALF) em um processo de codificação de vídeo. Em alguns exemplos, a descrição descreve o uso de sintaxe com base na unidade de codificação maior (LCU) ou outra sintaxe com base em partição, para uso nos processos ALF e SAO.
[0007] Para suportar a sintaxe com base em LCU ou partição, um codificador de vídeo (isso é, um codificador ou decodificador de vídeo) pode armazenar conjuntos de informação ALF, informação SAO, ou ambas a informação ALF e SAO. Conjuntos de informação ALF podem incluir conjuntos de coeficientes de filtro. Conjuntos de informação SAO podem incluir valores de desvio. A informação de mapeamento pode indicar um mapeamento entre os conjuntos de informação ALF e/ou SAO e LCUs e/ou outras partições. Essa informação pode ser organizada em uma variedade de formas diferentes, de acordo com vários exemplos dessa descrição. Em um exemplo, a descrição descreve um método de realização de processos de desvio adaptativo de amostra (SAO) em um processo de codificação de vídeo, o método incluindo o armazenamento de conjuntos de informação SAO, a informação SAO compreendendo dados indicativos de valores de desvio, armazenando informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, e realizando os processos SAO para uma das partições do quadro com base na informação SAO armazenada e informação de mapeamento armazenada.
[0008] Em outro exemplo, a descrição descreve um codificador de vídeo para realizar o filtro de circuito adaptativo (ALF), processos de desvio adaptativos de amostra (SAO), ou ambos o processamento ALF e SAO em um processo de codificação de vídeo, o codificador de vídeo incluindo uma memória, um processador configurado para: armazenar conjuntos de informação SAO na memória, a informação SAO compreendendo dados indicativos de valores de desvio, e armazenando a informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo na memória, e realizando o desvio SAO em uma das partições do quadro com base na informação SAO armazenada e informação de mapeamento armazenada.
[0009] Em outro exemplo, a descrição descreve um codificador de vídeo para realizar os processos de desvio adaptativos de amostra (SAO) para um processo de codificação de vídeo, o codificador de vídeo incluindo meios para armazenar os conjuntos de informação SAO, a informação SAO compreendendo dados indicativos dos valores de desvio, e meios para armazenar informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, e meios para realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada.
[0010] Em um exemplo, a descrição descreve um meio de armazenamento legível por computador possuindo instruções armazenadas no mesmo. As instruções, quando executadas, fazem com que um ou mais processadores de um dispositivo armazenem conjuntos de informação SAO, a informação SAO compreendendo dados indicativos do valor de desvio, e armazenem informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo.
[0011] Os detalhes de um ou mais exemplos são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição e dos desenhos e das reivindicações.
Breve Descrição dos Desenhos
[0012] A figura 1 é um diagrama conceitual ilustrando um exemplo de como se codificar a informação de filtro (ALF, SAO ou ambas) e mapear a informação para codificação com base em LCU de tal informação;
[0013] A figura 2 é um diagrama conceitual ilustrando um exemplo de como codificar a informação de filtro (ALF, SAO ou ambas) e mapear a informação para codificação com base em quadro ou fatia de tal informação;
[0014] A figura 3 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo;
[0015] A figura 4 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo;
[0016] A figura 5 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo;
[0017] A figura 6 é um diagrama em bloco ilustrando um método ilustrativo de realização dos processos de filtro de circuito adaptativo (ALF), desvio adaptativo de amostra (SAO), ou ambos o processamento ALF e SAO em um processo de codificação de vídeo de acordo com um ou mais exemplos descritos nessa descrição;
[0018] A figura 7 é um fluxograma ilustrando um método ilustrativo implementado em um codificador de vídeo de acordo com um ou mais exemplos descritos nessa descrição;
[0019] A figura 8 é um fluxograma ilustrando um método ilustrativo implementado em um decodificador de vídeo de acordo com um ou mais exemplos descritos nessa descrição.
Descrição Detalhada
[0020] Em geral, essa descrição descreve técnicas para codificação de dados de vídeo e, mais particularmente, realização dos processos de desvio adaptativo de amostra (SAO) ou filtro de circuito adaptativo (ALF) em um processo de codificação de vídeo. Em alguns exemplos, a descrição descreve o uso de sintaxe com base em unidade de codificação maior (LCU) ou outra sintaxe com base em partição para uso em processos ALF e SAO. Para suportar a sintaxe com base em LCU ou outra sintaxe com base em partição, um codificador de vídeo (isso é, um codificador ou decodificador de vídeo) pode armazenar conjuntos de dados de processamento, por exemplo, um ou mais dentre informação de coeficiente ALF, informação SAO ou ambos e mapeamento da informação indicando um mapeamento entre os conjuntos de dados de processamento e LCUs, outras partições, ou ambas LCU e outras partições.
[0021] Por exemplo, um codificador de vídeo e um decodificador de vídeo podem armazenar tal informação para uso nos processos ALF, processos SAO, ou ambos os processos ALF e processos SAO, de um processo de codificação de vídeo. O codificador de vídeo pode utilizar a informação nos processos ALF, processos SAO, ou ambos os processos ALF e processos SAO e codificar a informação como elementos de sintaxe em um fluxo de bits de vídeo codificado. Um decodificador de vídeo pode decodificar o fluxo de bits de vídeo para obter e armazenar os elementos de sintaxe para uso nos processos ALF, processos SÃO, ou processos ALF e SAO de um processo de decodificação de vídeo. Essa informação pode ser organizada em uma variedade de diferentes formas, de acordo com vários exemplos dessa descrição. Em alguns exemplos, os processos ALF, processos SAO, ou processos ALF e SAO podem ser realizados em circuito. Em alguns exemplos, tais processos podem ser realizados pós-circuito.
[0022] O Desvio Adaptativo de Amostra é uma operação por pixel que possui dois modos básicos. O primeiro modo é o Desvio de Borda, do qual existem 4 variações. O Desvio Adaptativo de Amostra opera pela comparação do valor de um pixel para dois de seus oito vizinhos (dependendo da variação de modo). Com base nas diferenças de magnitude, um dos quatro possíveis desvios é adicionado ao pixel. O segundo modo é referido como Desvio Manual, onde um pixel dentro de uma determinada faixa de magnitude obtém um dos quatro desvios adicionados. O modo de filtro e quatro desvios são escolhidos pelo codificador para cada Bloco de Árvore Codificado em uma tentativa de obter os pixels nesse bloco para combinar mais de perto com o material fonte.
[0023] Em geral, a filtragem de circuito Adaptativo é uma técnica de filtragem adaptativa aplicada depois do filtro de desbloqueio para aperfeiçoar a imagem de referência utilizada para codificar ou decodificar as imagens subsequentes. Em alguns exemplos, ALF pode utilizar filtros quadrados e pode ser realizado em todas as imagens desbloqueadas. Em outros exemplos, ALF pode ser ativado e desativado com base em bloco.
[0024] Em alguns processos de codificação de vídeo, tal como versões de processo de codificação de vídeo de alta eficiência (HEVC) atualmente em desenvolvimento, os filtros de circuito tal como filtros de sinal ALF e SAO, dados de desvio, ou filtros e dados de desvio em uma sintaxe de conjunto de parâmetro de adaptação (APS). Em tal codificação, a sintaxe para ALF e SAO é baseada na sintaxe com base em quadro. Para suportar a operação mais flexível e desenho de codificador/decodificador, é desejável se fornecer uma sintaxe com base em LCU (ou outra partição) para os processos ALF e SAO. Por exemplo, em implementações de hardware, pode ser melhor se aplicar tais processos de filtragem no nível de partição, por exemplo, no nível de LCU.
[0025] Nessa descrição, as técnicas ALF e SAO serão descritas no contexto de uma LCU como uma partição, isso é, com a sintaxe com base em LCU. No entanto, as técnicas ALF e SAO podem ser utilizadas com sintaxe com base em outros tipos de partições. Adicionalmente, a descrição descreve o uso de processos de sintaxe com base em LCU (ou outra partição) para os processos ALF, processos SAO ou ambos os processos ALF e SAO, mas sem limitação a outros tipos de informação de filtro. Em geral, essa descrição propõe uma nova sintaxe para os parâmetros ALF e SAO que suportam processamento com base em LCU.
[0026] Os dispositivos de vídeo digital implementam as técnicas de compressão de vídeo para codificar e decodificar a informação de vídeo digital de forma mais eficiente. A compressão de vídeo pode aplicar predição espacial (intraquadro), predição temporal (interquadro), ou ambas as técnicas de predição espacial e temporal para reduzir ou remover a redundância inerente em sequências de vídeo.
[0027] Um codificador de vídeo típico divide cada quadro de sequência de vídeo original em regiões retangulares contíguas chamadas "blocos" ou "unidades de codificação". Esses blocos são codificados no intramodo (modo I) ou no intermodo (modo P ou modo B).
[0028] Para o modo P ou modo B, o codificador primeiro busca um bloco similar a um sendo codificado em um "quadro de referência", denotado por Fref. As buscas são geralmente restritas a serem não mais do que um determinado deslocamento espacial do bloco a ser codificado. Quando a melhor combinação, isso é, o bloco de predição ou "predição", foi identificado, é expresso na forma de um vetor de movimento bidimensional (2D) (Δx, Δy), onde Δx é o horizontal e Δy é o deslocamento vertical da posição do bloco de predição no quadro de referência com relação à posição do bloco a ser codificado. Os vetores de movimento juntamente com o quadro de referência são utilizados para construir o bloco predito Fpred como segue: Fpred(x,y) = Fref(x + Δx, y + Δy)
[0029] A localização de um pixel dentro do quadro é denotado por (x,y). Para os blocos codificados no modo I, o bloco predito é formado utilizando-se a predição espacial a partir dos blocos vizinhos previamente codificados dentro do mesmo quadro. Para ambos o modo I e o modo P ou B, o erro de predição, isso é, a diferença entre os valores de pixel no bloco sendo codificado e o bloco predito, é representada como um conjunto de funções com base ponderada de alguma transformação discreta, tal como a transformação de coseno discreta (DCT). As transformações podem ser realizadas com base em diferentes tamanhos de blocos, tal como 4 x 4, 8 x 8 ou 16 x 16 e maior. O formato do bloco de transformação nem sempre é quadrado. Blocos de transformação de formato retangular também podem ser utilizados, por exemplo, com um tamanho de bloco de transformação de 16 x 4, 32 x 8, etc.
[0030] Os pesos (isso é, os coeficientes de transformação) são subsequentemente quantizados. A quantização introduz uma perda de informação, e como tal, os coeficientes quantizados possuem menor precisão do que os coeficientes de transformação originais.
[0031] Os coeficientes de transformação quantizados e vetores de movimento são exemplos de "elementos de sintaxe". Esses elementos de sintaxe, mais alguma informação de controle, formam uma representação codificada da sequência de vídeo. Outros exemplos de elementos de sintaxe incluem informação ALF, informação SAO, ou ambas a informação ALF e SAO como descrito nessa descrição. Os elementos de sintaxe também podem ser codificados por entropia, reduzindo, assim, adicionalmente o número de bits necessários para sua representação. A codificação por entropia é uma operação sem perda que tem por objetivo minimizar o número de bits necessários para representar os símbolos transmitidos ou armazenados (em nosso caso, elementos de sintaxe) pela utilização de propriedades de sua distribuição (alguns símbolos ocorrem mais frequentemente do que outros).
[0032] No decodificador, o bloco no quadro atual é obtido primeiro pela construção de sua predição da mesma forma que no codificador, e pela adição à predição do erro de predição comprimido. O erro de predição comprimido é encontrado pela ponderação das funções de base de transformação utilizando os coeficientes quantizados. A diferença entre o quadro reconstruído e o quadro original é chamado de erro de reconstrução.
[0033] A razão de compressão, isso é, a razão do número de bits utilizados para representar a sequência original e a comprimida, pode ser controlada pelo ajuste de valor do parâmetro de quantização (QP) utilizado quando da quantização dos coeficientes de transformação. A razão de compressão pode depender do método de codificação por entropia empregado.
[0034] Para a codificação de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência (HEVC) atualmente em desenvolvimento pelo Time Cooperativo Conjunto para Codificação de Vídeo (JCT-VC), como um exemplo, um quadro de vídeo pode ser dividido em unidades de codificação. Uma unidade de codificação (CU) geralmente se refere a uma região de imagem que serve como uma unidade básica à qual várias ferramentas de codificação são aplicadas para compressão de vídeo. Uma CU normalmente possui um componente de luminescência, denotado como Y, e dois componentes de crominância, denotados como U e V. Dependendo do formato de amostragem de vídeo, o tamanho dos componentes U e V, em termos de número de amostras, pode ser igual a ou diferente do tamanho do componente Y. Uma CU é tipicamente quadrada e pode ser considerada similar a um chamado macrobloco, por exemplo, sob outros padrões de codificação de vídeo tal como ITU-T H.264. A codificação de acordo com alguns dos aspectos atualmente propostos do padrão HEVC em desenvolvimento será descrita nesse pedido para fins de ilustração. No entanto, as técnicas descritas nessa descrição podem ser uteis para outros processos de codificação de vídeo, tal como definidos de acordo com H.264 ou outro padrão ou processos de codificação de vídeo proprietários.
[0035] Os esforços de padronização HEVC são baseados em um modelo de um dispositivo de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume várias capacidades de dispositivos de codificação de vídeo através de dispositivos de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, ao passo que H.264 fornece nove modos de codificação de intrapredição, HM fornece trinta e cinco modos de codificação por intrapredição.
[0036] De acordo com HM, uma CU pode incluir uma ou mais unidades de predição (PUs), uma ou mais unidades de informação (TUs), ou ambas uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe dentro de um fluxo de bits podem definir uma unidade de codificação maior (LCU), que é uma CU maior em termos de número de pixels. Em geral, uma CU possui uma finalidade similar a um macrobloco de H.264, exceto que uma CU não possui uma distinção de tamanho. Dessa forma, uma CU pode ser dividida em sub-CUs. Em geral, referências nessa descrição a uma CU podem se referir a uma unidade de codificação maior de uma imagem ou uma sub-CU de uma LCU. Uma LCU pode ser dividida em sub-CUs, e cada sub- CU pode ser adicionalmente dividida em sub-CUs. Os dados de sintaxe para um fluxo de bits podem definir um número máximo de vezes em que uma LCU pode ser dividida, referida como uma profundidade de CU. De acordo, um fluxo de bits também pode definir uma menor unidade de codificação (SCU). Essa descrição também utiliza o termo "bloco", "partição" ou "parte" para fazer referência a qualquer uma dentre uma CU, PU ou TU. Em geral, a "parte" pode se referir a qualquer subconjunto de um quadro de vídeo.
[0037] A codificação de desvio adaptativo de amostra (SAO) está atualmente sendo considerada para adoção no padrão HEVC. Em geral, a adição dos valores de desvio aos pixels em um quadro de vídeo (por exemplo um quadro de predição para interpredição ou intrapredição) pode aperfeiçoar a codificação durante as mudanças de iluminação entre os quadros de uma sequência de vídeo, por exemplo, tal como durante flashes, um céu escurecendo, ou outros tipos de mudanças de iluminação entre os quadros. Tais mudanças de iluminação podem adicionar uma mudança de intensidade relativamente uniforme através dos pixels no quadro. Por exemplo, os valores de desvio podem ser aplicados aos pixels de um bloco de vídeo predito a fim de orientar os valores do bloco de vídeo de predição de modo a compensar as mudanças de iluminação. Os padrões de codificação de vídeo anteriores, tal como H.264, aplicam tipos de desvio e valores uniformemente através de todos os blocos ou quadros de pixels. As técnicas SAO podem permitir diferentes valores de desvio aplicados a diferentes pixels (ou blocos) dependendo das métricas de classificação de pixel (ou bloco).
[0038] No filtro de circuito adaptativo atual (ALF) em HEVC, dois modos de adaptação (isso é, adaptação de bloco e região) são propostos. Para o modo adaptativo de região, um quadro é dividido em 16 regiões, e cada região pode ter um conjunto de coeficientes de filtro linear (coeficientes AC e um coeficiente DC) e uma região pode compartilhar os mesmos coeficientes de filtro com outras regiões. Par ao modo com base em bloco, cada bloco de 4 x 4 deriva uma classe pela computação da métrica utilizando a informação de direção e atividade. Para cada classe, um conjunto de coeficientes de filtro linear (coeficientes AC e um coeficiente DC) pode ser utilizado e uma classe pode compartilhar os mesmos coeficientes de filtro com outras classes.
[0039] Para se suportar a sintaxe com base em LCU (ou outra sintaxe com base em partição) para os processos ALF ou SÃO, é geralmente necessário que o codificador de vídeo, o decodificador de vídeo, ou o codificador de vide e o decodificador de vídeo armazenem i) conjuntos de filtros, desvios ou ambos os filtros e os desvios para os processo ALF e SAO, isso é, informação ALF, informação SAO, ou ambas as informações ALF e SAO e ii) um mapeamento entre os conjuntos de filtros/desvios e LCUs correspondentes às quais o filtro/desvios são aplicados para realizar os processos ALF e SAO. A informação ALF, a informação SAO, ou ambas a informação ALF e SAO podem se referir geralmente, por exemplo, à informação ALF, à informação SAO ou ambas, se apresentadas separadamente ou em uma forma misturada e combinada, e se a informação inclui coeficientes, desvios ou outras informações. O mapeamento entre um conjunto de filtros/desvios e uma LCU pode incluir um ou mais dentre o exemplo a seguir.
[0040] Em um exemplo, um codificador de vídeo gera um indicador para uma LCU que indica que novos filtros/coeficientes são designados para a LCU. O indicador pode indicar que a LCU deve receber um novo conjunto de informação ALF, informação SAO, ou ambas a informação ALF e SAO, que pode incluir coeficientes de filtro, desvios ou ambos os coeficientes de filtro e os desvios. Em alguns exemplos, o indicador pode incluir adicionalmente uma identificação de um conjunto em particular, por exemplo, entre uma pluralidade de conjuntos, de informação ALF, informação SAO, ou informação ALF e SAO a ser designada para a LCU. Alternativamente, o indicador pode fazer com que um codificador ou decodificador selecione o próximo conjunto de informação ALF, informação SAO, ou ambas a informação ALF e SAO em uma lista ou pluralidade de conjuntos de informação ALF, informação SAO, ou ambas as informação ALF e SAO, de modo que o indicador indique que o codificador ou decodificador deve avançar para o próximo conjunto disponível da informação ALF, informação SAO, ou ambas a informação ALF e SAO para a LCU respectiva.
[0041] Em outro exemplo, um codificador de vídeo gera um comando de cópia para uma LCU atual que indica que a informação de filtro/desvio de uma LCU vizinha deva ser copiada para a LCU atual. Por exemplo, a informação ALF, a informação SAO, ou ambas a informação ALF e SAO, podem ser copiadas de uma LCU vizinha esquerda ou uma LCU vizinha superior para a LCU atual para uso nos processos ALF, processos SAO, ou ambos os processos ALF e SAO realizados para a LCU atual.
[0042] Em outro exemplo, um codificador de vídeo gera informação de funcionamento quando múltiplas LCUs sequenciais compartilham os mesmos filtros/desvios (isso é, o número de LCUs sequenciais de compartilhamento). Nesse exemplo, uma vez que um conjunto de informação ALF, informação SAO, ou ambas a informação ALF e SAO é especificado para uma LCU, a informação de funcionamento pode indicar o número de LCUs consecutivas que seguem a LCU respectiva e compartilham a mesma informação ALF, informação SAO, ou ambas a informação ALF e SAO. A informação de mapeamento pode seguir alguma ordem de digitalização (por exemplo, tal como uma ordem de digitalização similar à ordem de digitalização LCU/CU). Note-se que essa informação pode ser armazenada de várias formas. Por exemplo, em um exemplo, ambos os conjuntos de filtros/desvios e informação de mapeamento podem ser armazenados em cada nível de LCU. Nesse caso, a informação ALF, a informação SAO, ou a informação ALF e SAO podem ser armazenadas no nível de LCU com a informação de mapeamento. Em um exemplo alternativo, o conjunto de filtros/desvios pode ser armazenado em um APS ou em um cabeçalho de fatia, e a informação de mapeamento pode ser armazenada no cabeçalho de fatia. Em outro exemplo alternativo, o conjunto de filtros e desvios pode ser armazenado no APS ou cabeçalho de fatia, e a informação de mapeamento pode ser armazenada na LCU.
[0043] Se o conjunto de filtros e desvios e a informação de mapeamento forem armazenados no mesmo lugar (isso é, o cabeçalho de fatia), esses dois conjuntos de informação podem ser armazenado sem qualquer forma adequada. Por exemplo, de acordo com um exemplo em particular, o conjunto de filtros/desvios e a informação de mapeamento são armazenados separadamente (como ilustrado no exemplo 2 nas figuras 1 e 2). Nesse caso, o conjunto de filtros e desvios pode ser armazenado independentemente da informação de mapeamento. A informação de mapeamento pode então fazer referência ao conjunto de informação ALF, informação SAO, ou ambas a informação ALF e SAO para aplicação a LCUs em particular (ou outras partições). Em um exemplo alternativo, os conjuntos de filtros e desvio e informação de mapeamento são armazenados em uma forma intercalada (como ilustrado no exemplo 1 nas figuras 1 e 2). Nesse caso, os conjuntos de filtros ou desvios podem ser apresentados e armazenados para cada LCU ou outra partição, por exemplo, de uma forma intercalada sequencial, onde os conjuntos de filtro e desvio em particular são apresentados para LCUs respectivas, e informação de mapeamento em particular (por exemplo, comando de cópia ou de comprimento de funcionamento) é apresentada para outras LCUs.
[0044] Os processos descritos nessa descrição podem ser realizados por um codificador de vide ou um decodificador de vídeo. Por exemplo, um codificador de vídeo ou decodificador de vídeo pode armazenar tal informação para uso nos processos ALF, processos SAO, ou ambos os processos ALF e SAO de um processo de codificação de vídeo.
[0045] A figura 1 é um diagrama conceitual ilustrando um exemplo de como codificar a informação de filtro (ALF, SAO ou ambas) e a informação de mapeamento para codificação com base em LCU de tal informação. A figura 2 é um diagrama conceitual ilustrando um exemplo de como codificar a informação de filtro (ALF, SAO ou ambas) e informação de mapeamento para codificação com base em quadro ou fatia de tal informação.
[0046] Nos exemplos da figura 1 e da figura 2, ALF+SAO se refere a um exemplo no qual ALF e SAO podem ser realizados em um estágio; portanto, os dados ALF e SAO podem ser armazenados em um lugar. Essas indicações ALF+SAO podem ser substituídas por "ALF" ou SAO quando ALF ou SAO é utilizado sozinho, isso é, separadamente. Por exemplo, SAO pode ser utilizado sem ALF ou ALF pode ser utilizado sem SAO. Além disso, um conjunto de filtros ou desvios (isso é, Fi na figura 1 ou na figura 2) pode conter mais de um filtro ou desvios, por exemplo, se uma região na figura 1 ou na figura 2 utilizar mais de um filtro com base nas atividades.
[0047] A figura 1 ilustra uma pluralidade de LCUs. Em geral, ALF+SAO(F1) pode se referir a um primeiro conjunto combinado de informação ALF e SAO para uma primeira LCU. De forma similar, ALF+SAO(F2) e ALF+SAO(F3) pode se referir a segundo e terceiro conjuntos, respectivamente, da informação ALF e SAO para outras LCUs. COPY_L e COPY_U formam a informação de mapeamento que indica que a informação ALF, a informação SAO, ou ambas a informação ALF e SAO para uma LCU atual deve ser copiada a partir de, respectivamente, uma LCU vizinha esquerda ou superior (isso é, acima). DESLIGADO indica que os processos ALF, processos SAO, ou ambos os processos ALF e SAO não são aplicados a uma LCU em particular.
[0048] Na figura 1, como um exemplo, o exemplo 1 ilustra o armazenamento intercalado e a apresentação da informação ALF, informação SAO, ou informação ALF e SAO com informação de mapeamento por um codificador de vídeo, isso é, por um codificador ou decodificador de vídeo. De acordo com o exemplo 1 da figura 1, um codificador de vídeo indica que uma primeira LCU (no canto superior esquerdo) recebe, por F1, o conjunto de informação ALF, informação SAO, ou ambas as informações ALF e SAO correspondendo a ALF+SAO(F1). A segunda LCU (à direita da primeira LCU) é indicada por COPY_L como copiando sua informação ALF, informação SAO, ou ambas as informações ALF e SAO a partir do vizinho da esquerda. Dessa fora, a segunda LCU possui a mesma designação ALF, designação SAO, ou ambas as designações ALF e SAO que a primeira LCU, isso é, ALF+SAO(F1). O codificador de vídeo designa, para a terceira LCU, por F2, a informação ALF, a informação SAO, ou ambas as informações ALF e SAO em ALF+SAO(F2). A quarta LCU é especificada pelo codificador de vídeo como recebendo o comando COPY_L, que resulta na mesma informação ALF, informação SAO, ou ambas as informações ALF e SAO que a terceira LCU. A quinta LCU é então indicada como DESLIGADA. Essa apresentação da informação ALF, informação SAO, ou ambas as informações ALF e SAO de forma intercalada com a informação de mapeamento pode continuar para as LCU restantes.
[0049] Como um exemplo adicional, no exemplo 2 da figura 1, a informação ALF, informação SAO, ou ambas as informações ALF e SAO são armazenadas separadamente como F1 e F2 para referência pela informação de mapeamento. Nesse caso, o indicador NOVO indica que a LCU atual deva receber um novo conjunto de informação de filtro e desvio, por exemplo, o próximo conjunto de informação ALF, e/ou informação SAO, ou ambas a informação ALF e SAO que foram armazenadas. Para a primeira LCU, NOVO indica que ALF+SAO(F1) deve ser designada. COPY_L indica que a informação vizinha da esquerda deve ser copiada para a próxima LCU. NOVO para a terceira LCU indica que o próximo conjunto de informação de desvio de filtro, por exemplo, ALF+SAO(F2) indicado por F2, deva ser aplicada à terceira LCU. COPY_U indica que a informação vizinha superior deve ser copiada para a próxima LCU, e DESLIGADO indica que ALF, SAO, ou ambos ALF e SAO estão desligados para a LCU atual. Se o exemplo 2 pertencer à primeira fileira de LCUs, em alguns exemplos, COPY_U pode não ser aplicada. Ao invés disso, COPY_L pode ser aplicada.
[0050] No exemplo 2, NOVO indica que o próximo conjunto de informação de filtro/desvio (por exemplo, em uma pluralidade de conjuntos de filtro/desvio F1, F2, etc.) pode ser selecionado para a LCU atual. Em outros exemplos, outra informação de mapeamento ou o indicador propriamente dito pode ser configurado para fornecer uma identificação de um conjunto particular de informação de filtro/desvio entre a pluralidade de conjuntos de informação de filtro/desvio, a ser designada para uma LCU em particular. Por exemplo, o indicador pode ser codificado, ou informação de mapeamento adicional pode ser fornecida, para portar uma identificação tal como um valor de índice que específica o conjunto particular de informação ALF, informação SAO, ou ambas a informação ALF e SAO a ser designada para uma LCU em particular. O indicador pode ser um indicador de múltiplos bits que codifica um valor indicando a seleção de um dos dois ou mais conjuntos de informação de filtro/desvio, ou valor de índice adicional pode ser fornecido como um elemento de sintaxe adicional.
[0051] A figura 2 ilustra um exemplo de como codificar a informação de filtro e mapeamento para um caso de codificação com base em quadro/fatia. Diferentes conjuntos de informação ALF, informação SAO, ou ambas a informação ALF e SAO podem ser designados para partições diferentes. No exemplo 1 da figura 2, a informação de mapeamento pode ser armazenada de forma intercalada com a informação ALF, informação SAO ou ambas a informação ALF e SAO. Como ilustrado, um primeiro conjunto de filtro/desvio, indicado por ALF+SAO(F1), pode ser designado para uma partição, tal como uma LCU, e codificação por cópia, funcionamento ou ambos os tipos de codificação podem ser utilizados para aplicar o mesmo conjunto de filtro/desvios a outras partições. Por exemplo, um ou mais comandos COPY_L ou COPY_U podem ser utilizados como informação de mapeamento para aplicar um conjunto de filtro/desvios a uma partição tal como uma LCU a outras partições, tal como as partições em uma região compartilhando a mesma informação ALF, informação SAO ou ambas as informações ALF e SAO. Um segundo conjunto de filtro/desvios é ilustrado por ALF+SAO(F2). Alternativamente, ou adicionalmente, um ou mais comandos RODAR podem especificar o número de partições consecutivas compartilhando o mesmo conjunto de filtro/desvios. Os comandos de COPIAR e RODAR podem ser referidos como, coletivamente, comandos COPIAR/RODAR.
[0052] No exemplo 1 da figura 2, seguindo os comandos de COPIAR/RODAR, um conjunto de informação SAO, indicado por SAO(O1), é especificado para uma partição tal como uma LCU. Esse é um exemplo no qual a informação SAO pode ser especificada separadamente, sem a informação ALF. Nesse exemplo, um SAO(O1) pode especificar um primeiro conjunto de desvios a serem utilizados para a partição. Da mesma forma, em alguns exemplos, a informação ALF pode ser especificada separadamente, por exemplo, sem informação SAO. SAO(O2), SAO(O3), SAO(O4) podem fornecer outros conjuntos de desvios. Em alguns exemplos, O11...O1N podem se referir a um conjunto de desvios para o primeiro conjunto SAO(O1), e f11...f1M pode se referir ao conjunto de coeficientes de filtro para AF+SAO(F1). Os elementos COPIAR/RODAR podem ser armazenados para indicar a aplicação de informação de desvio SAO a outras partições. Um elemento DESLIGADO pode especificar que as funções ALF e SAO não são aplicadas a outra partição. Os elementos COPIAR/RODAR podem ser utilizados também para aplicar a condição DESLIGADA a outras partições. Além disso, conjuntos adicionais de ALF, SAO, e/ou informação ALF e SAO podem ser armazenados para aplicação a outras partições. Dessa forma, a informação de mapeamento pode ser utilizada para especificar conjuntos particulares de informação ALF, informação SAO, ou ambas a informação ALF e SAO para aplicação a partições particulares, informação de mapeamento ou ambas as informação de partição e mapeamento para especificar elementos de COPIAR e RODAR para aplicar tal informação a partições ou regiões de partições individuais.
[0053] No exemplo 1 da figura 1, tal informação ALF, informação SAO, ou ambas a informação ALF e SAO podem ser intercaladas com a informação de mapeamento. No exemplo 2 da figura 2, os conjuntos de informação de filtro, informação de desvio e informação de filtro/desvio podem ser armazenadas separadamente da informação de mapeamento. Nesse caso, a informação de mapeamento, por exemplo, NOVO, COPIAR, RODAR, DESLIGAR e similares pode fazer referência à informação ALF, informação SAO, armazenadas separadamente, ou ambas as informações ALF e SAO. Como no exemplo da figura 1, o indicador NOVO pode especificar o próximo conjunto de informação ALF, informação SAO, ou ambas as informações ALF e SAO em uma pluralidade de conjuntos de tal informação para aplicação a uma partição. Alternativamente, o indicador NOVO pode incluir ou pode ser acompanhado pela informação de identificação para um conjunto particular de tais informações a ser aplicado à partição, tal como um conjunto particular de informação de filtro, um conjunto particular de informação de desvio, o um conjunto particular que combina informação de filtro e desvio. Os elementos COPIAR e RODAR podem ser utilizados de forma similar à descrita acima para aplicar a uma partição, tal como LCU, a mesma informação ALF, informação SAO, ou ambas as informações ALF e SAO como uma partição vizinha ou aplicar a mesma informação através de um número consecutivo de partições.
[0054] A figura 3 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode ser configurado para utilizar as técnicas para realização de processos de desvio adaptativo de amostra e filtro de circuito adaptativo em um processo de codificação de vídeo de acordo com exemplos dessa descrição. Como ilustrado na figura 3, o sistema 10 inclui um dispositivo fonte 12 que transmite vídeo codificado para um dispositivo de destino 14 através de um canal de comunicação 16. Os dados de vídeo codificados também podem ser armazenados em um meio de armazenamento 34 ou um servidor de arquivo 36 e podem ser acessados pelo dispositivo de destino 14 como desejado. Quando armazenado em um meio de armazenamento ou servidor de arquivo, o codificador de vídeo 20 pode fornecer dados de vídeo codificados para outro dispositivo, tal como uma interface de rede, um disco compacto (CD), queimador de disco Blu-ray ou disco de vídeo digital (DVD) ou dispositivo de instalação de estampagem, ou outros dispositivos, para o armazenamento dos dados de vídeo codificados para o meio de armazenamento. Da mesma forma, um dispositivo separado do decodificador de vídeo 30, tal como uma interface de rede, leitora de CD ou DVD, ou similar, pode recuperar os dados de vídeo codificados de um meio de armazenamento e fornecer os dados recuperados para o decodificador de vídeo 30.
[0055] O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla variedade de dispositivos, incluindo computadores desktop, computadores notebook (isso é, laptop), computadores tablet, caixas de decodificação, aparelhos telefônicos tal como os chamados smartphones, televisões, câmeras, dispositivos de exibição, aparelhos de mídia digital, consoles de jogos de vídeo ou similares. Em muitos casos, tais dispositivos podem ser equipados para comunicação sem fio. Dessa forma, o canal de comunicação 16 pode compreender um canal sem fio, um canal com fio, ou uma combinação de canais sem e com fio adequados para transmissão de dados de vídeo codificados. De forma similar, o servidor de arquivo 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivo.
[0056] As técnicas de realização de processos de desvio adaptativo de amostra e filtro de circuito adaptativo em um processo de codificação de vídeo, de acordo com os exemplos dessa descrição, podem ser aplicadas à codificação de vídeo em suporte de qualquer um dentre uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de sequenciamento, por exemplo, através da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar a transmissão de vídeo de via única ou duas vias para suportar as aplicações de tal sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo, videotelefonia, ou dois ou mais dos mesmos.
[0057] No exemplo da figura 3, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, um modulador/demodulador 22 e um transmissor 24. No dispositivo fonte 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado previamente, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo, um sistema gráfico de computador para gerar dados de gráficos de computador como vídeo fonte, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmeras ou videotelefones. No entanto, as técnicas descritas nessa descrição podem será aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio, aplicações com fio, uma combinação de aplicações com e sem fio, ou aplicação na qual os dados de vídeo codificados são armazenados em um disco local.
[0058] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificada pode ser modulada pelo modem 22 de acordo com um padrão de comunicação, tal como o protocolo de comunicação sem fio, e transmitido para o dispositivo de destino 14 através do transmissor 24. O modem 22 pode incluir vários misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinal. O transmissor 24 pode incluir circuitos projetados para transmitir dados, incluindo amplificadores, filtros, e uma ou mais antenas.
[0059] O vídeo capturado, pré-capturado ou gerado por computador que é codificado pelo codificador de vídeo 20 também pode ser armazenado em um meio de armazenamento 34 ou um servidor de arquivo 36 para o consumo posterior. O meio de armazenamento 34 pode incluir discos Blu-ray, DVDs, CD-ROMs, memória flash, ou qualquer outro meio de armazenamento digital adequado para armazenamento de vídeo codificado. O vídeo codificado armazenado no meio de armazenamento 34 pode então ser acessado pelo dispositivo de destino 14 para decodificação e reprodução.
[0060] O servidor de filtro 36 pode ser qualquer tipo de servidor capaz de armazenar o vídeo codificado e transmitir esse vídeo codificado para o dispositivo de destino 14. Exemplo de servidores de arquivo incluem um servidor de rede (por exemplo, para um sítio da rede), um servidor FTP, dispositivos de armazenamento anexados à rede (NAS), um acionador de disco local, ou qualquer outro tipo de dispositivo capaz de armazenar os dados de vídeo codificados e transmitir os mesmos para um dispositivo de destino. A transmissão de dados de vídeo codificados do servidor de arquivo 36 pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação de ambos. O servidor de arquivo 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, Ethernet, USB, etc.), ou uma combinação de ambos que seja adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivo.
[0061] O dispositivo de destino 14, no exemplo da figura 3, inclui um receptor 26, um modem 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. O receptor 26 do dispositivo de destino 14 recebe informação através do canal 16, e o modem 28 demodula a informação para produzir um fluxo de bits demodulado para o decodificador de vídeo 30. A informação comunicada através do canal 16 pode incluir uma variedade de informações de sintaxe geradas pelo codificador de vídeo 20 para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo. Tal sintaxe pode ser incluída também com os dados de vídeo codificados armazenados no meio de armazenamento 34 ou servidor de arquivo 36. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode formar parte de um codificador-decodificador respectivo (CODEC) que é capaz de codificar ou decodificar os dados de vídeo.
[0062] O dispositivo de exibição 32 pode ser integrado com, ou externo ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para interfacear com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal como monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou qualquer outro tipo de dispositivo de exibição.
[0063] No exemplo da figura 3, o canal de comunicação 16 pode compreender qualquer meio de comunicação com ou sem fio, tal como espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão física, ou qualquer combinação de meios com e sem fio. O canal de comunicação 16 pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O canal de comunicação 16 geralmente representa qualquer meio de comunicação adequado ou coleção de diferentes meios de comunicação, para transmissão de dados de vídeo a partir do dispositivo fonte 12 para o dispositivo de destino 14, incluindo qualquer combinação adequada de meio com ou sem fio. O canal de comunicação 16 pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destino 14.
[0064] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode se conformar ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou da indústria, tal como o padrão ITU-T H.264, alternativamente referido como MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões. As técnicas dessa descrição, no entanto, não estão limitadas a qualquer padrão de codificação em particular. Outros exemplos incluem MPEG-2 e ITU-T H.263.
[0065] Apesar de não ilustrado na figura 3, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequados, ou outro hardware e software, para manusear a codificação de ambos os áudio e vídeo em uma sequencia de dados comum ou sequências de dados separadas. Se aplicável, em alguns exemplos, unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.223, ou outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0066] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador adequado, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para software em um meio legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa descrição. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo.
[0067] O codificador de vídeo 20 pode implementar qualquer uma ou todas as técnicas dessa descrição para realização dos processos de desvio adaptativo de amostra e filtro de circuito adaptativo em um processo de codificação de vídeo. Da mesma forma, o decodificador de vídeo 30 pode implementar qualquer uma ou todas as técnicas ara realização dos processos de desvio adaptativo de amostra e de filtro de circuito adaptativo em um processo de codificação de vídeo. Um codificador de vídeo, como descrito nessa descrição, pode se referir a um codificador de vídeo ou a um decodificador de vídeo. De forma similar, uma unidade de codificação de vídeo pode se referir a um codificador de vídeo ou a um decodificador de vídeo. Da mesma forma, a codificação de vídeo pode se referir à codificação ou decodificação de vídeo.
[0068] Por exemplo, um codificador de vídeo tal como o codificador de vídeo 20 ou decodificador de vídeo 30, por exemplo, pode realizar os processos de filtro de circuito adaptativo (ALF), desvio adaptativo de amostra (SAO), ou ambos o processamento ALF e SAO em um processo de codificação de vídeo. O codificador de vídeo 20 ou o decodificador de vídeo 30 pode armazenar conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO. Adicionalmente, o codificador de vídeo 20 ou decodificador de vídeo 30 podem armazenar a informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação ALF, ou informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo. Uma ou mais partições podem incluir uma ou mais unidades de codificação maiores (LCUs) do quadro de dados de vídeo. O codificador pode realizar pelo menos um dos processos ALF, processos SAO, ou ambos os processos ALF e SAO para uma das partições do quadro com base na informação ALF armazenada, informação SAO, ou com base na informação ALF e SAO armazenada, e a informação de mapeamento armazenada.
[0069] Em um exemplo, a informação de mapeamento pode incluir pelo menos um dentre (1) informação de indicação que indica se um novo filtro, um novo desvio ou ambos um novo filtro e um novo desvio devem ser designados para uma das partições para uso no processo ALF, no processo SAO, ou ambos os processos ALF e SAO, (2) copiar informação indicando se a informação ALF, a informação SAO, ou ambas as informações ALF e SAO devem ser copiadas para uma das partições a partir de outra das partições para uso no processo ALF, processo SAO, ou ambos os processos ALF e SAO, ou (3) rodar informação indicando um número de partições sequenciais que compartilham a mesma informação ALF, informação SAO, ou ambas as informações ALF e SAO. A informação de mapeamento pode incluir adicionalmente uma indicação indicando um dentre os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO a serem designadas para uma das partições associadas com a informação de indicador.
[0070] Em um exemplo, a informação de indicador pode incluir uma identificação indicando um dos conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO a serem designadas para uma das partições associadas com a informação de indicador.
[0071] A figura 4 é um diagrama em bloco ilustrando um exemplo de um codificador de vídeo 20 que pode utilizar técnicas para realizar os processos de desvio adaptativo de amostra e filtro de circuito adaptativo em um processo de codificação de vídeo como descrito nessa descrição. O codificador de vídeo 20 será descrito no contexto de codificação HEVC para fins de ilustração, mas sem limitação dessa descrição quanto a outros padrões de codificação ou métodos que podem exigir a digitalização de coeficientes de transformação. O codificador de vídeo 20 pode realizar a intra e intercodificação das CUs dentro dos quadros de vídeo. A intracodificação se baseia na predição espacial para reduzir ou remover a redundância espacial nos dados de vídeo dentro de um determinado quadro de vídeo. A intercodificação se baseia na predição temporal para reduzir ou remover a redundância temporal entre um quadro atual e os quadros codificados previamente de uma sequência de vídeo. Intramodo (modo I) pode se referir a qualquer um dos vários modos de compressão de vídeo com base espacial. Os intermodos tal como a predição unidirecional (modo P) ou predição bidirecional (modo B) podem se referir a qualquer um dos vários modos de compressão de vídeo com base temporal.
[0072] Como ilustrado na figura 4, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da figura 4, o codificador de vídeo 20 inclui uma unidade de compensação de movimento 44, uma unidade de estimativa de movimento 42, uma unidade de intrapredição 46, um armazenador temporário de quadro de referência 64, um somador 50, uma unidade de transformação 52, uma unidade de quantização 54, e uma unidade de codificação por entropia 56. A unidade de transformação 52 ilustrada na figura 4 é a unidade que aplica a transformação real ou combinações de transformação a um bloco de dados residuais, e não é confundida com o bloco de coeficientes de transformação que também podem ser referidos como uma unidade de transformação (TU) de uma CU. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também pode incluir uma unidade de quantização inversa 58, uma unidade de transformação inversa 60, um somador 62, e uma unidade SAO e ALF 43. Um filtro de desbloqueio também pode ser incluído para filtras os limites de bloco para remover artefatos de bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio filtra tipicamente a saída do somador 62.
[0073] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro de vídeo ou fatia a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo, por exemplo, as unidades de codificação maiores (LCUs). A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam a codificação interprevisível do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência para fornecer compressão temporal. A unidade de intrapredição 46 pode realizar a codificação de intrapredição do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer compressão espacial.
[0074] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base nos resultados da distorção de taxa para cada modo, e fornece o bloco intra ou interpredito resultante (por exemplo, uma unidade de predição (PU)) para o somador 50 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso em um quadro de referência. O somador 62 combina o bloco predito com os dados quantizados de forma inversa, dados transformados de forma inversa a partir da unidade de transformação inversa 60 para o bloco para reconstruir o bloco codificado, como descrito em maiores detalhes abaixo. Alguns quadros de vídeo podem ser designados como quadros I, como descrito em maiores detalhes abaixo. Alguns quadros de vídeo podem ser designados como quadros I de todos os blocos em um quadro I são codificados em um modo de intrapredição. Em alguns casos, a unidade de intrapredição 46 pode realizar a codificação por intrapredição de um bloco em um quadro P ou B, por exemplo, quando a busca de movimento realizada pela unidade de estimativa de movimento 42 não resulta em uma predição suficiente do bloco.
[0075] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceitual. A estimativa de movimento (ou busca de movimento) é o processo de geração de vetores de movimento, que estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma unidade de predição em um quadro atual com relação a uma amostra de referência de um quadro de referência. A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma unidade de predição de um quadro intercodificado pela comparação da unidade de predição com amostras de referência de um quadro de referência armazenado no armazenador de quadro de referência 64. Uma amostra de referência pode ser um bloco que é considerado combinado com a parte da CU incluindo a PU sendo codificada em termos de diferença de pixel, que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. A amostra de referência pode ocorrer em qualquer local dentro de um quadro de referência ou fatia de referência, e não necessariamente em um limite de bloco (por exemplo, unidade de codificação) do quadro ou fatia de referência. Em alguns exemplos, a amostra de referência pode ocorrer em uma posição de pixel fracionado
[0076] A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44. A parte do quadro de referência identificada por um vetor de movimento pode ser referida como uma amostra de referência. A unidade de compensação de movimento 44 pode calcular um valor de predição para uma unidade de predição de uma CU atual, por exemplo, pela recuperação da amostra de referência identificada por um vetor de movimento para a PU.
[0077] A unidade de intrapredição 46 pode intrapredizer bloco recebido, como uma alternativa à interpredição realizada pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44. A unidade de intrapredição 46 pode predizer o bloco recebido com relação aos blocos codificados previamente vizinhos, por exemplo, blocos acima, acima e para a direita, acima e para a esquerda, ou para a esquerda do bloco atual, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para os blocos. A unidade de intrapredição 46 pode ser configurada com uma variedade de diferentes modos de intrapredição. Por exemplo, a unidade de intrapredição 46 pode ser configurada com um determinado número de modos de predição direcional, por exemplo, trinta e cinco modos de predição direcional, com base no tamanho da CU sendo codificada.
[0078] A unidade de intrapredição 46 pode selecionar um modo de intrapredição, por exemplo, pelo cálculo de valores de erro para vários modos de intrapredição e selecionando um modo que resulte no menor valor de erro. Os modos de predição direcional podem incluir funções para combinar os valores de pixels espacialmente vizinhos e aplicando os valores combinados a uma ou mais posições de pixel em uma PU. Uma vez que os valores para todas as posições de pixel na PU foram calculados, a unidade de intrapredição 46 pode calcular um valor de erro para o modo de predição com base em diferenças de pixel entre a PU e o bloco recebido a ser codificado. A unidade de intrapredição 46 pode continuar a testar os modos de intrapredição até que um modo de intrapredição que resulta em um valor de erro aceitável seja descoberto. A unidade de intrapredição 46 pode então enviar a PU para o somador 50.
[0079] O codificador de vídeo 20 forma um bloco residual pela subtração dos dados de predição calculados pela unidade de compensação de movimento 48 ou a unidade de intrapredição 46 do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. O bloco residual pode corresponder a uma matriz bidimensional de valores de diferença de pixel, onde o número de valores no bloco residual é igual ao número de pixels na PU corespondendo ao bloco residual. Os valores no bloco residual podem corresponder às diferenças, isso é, erro, entre os valores de pixels colocalizados na PU e no bloco original a ser codificado. As diferenças podem ser diferenças de crominância e luminescência dependendo do tipo de bloco que é codificado.
[0080] A unidade de transformação 52 pode formar uma ou mais unidades de transformação (TUs) a partir do bloco residual. A unidade de transformação 52 seleciona uma transformação dentre uma pluralidade de transformações. A transformação pode ser selecionada com base em uma ou mais características de codificação, tal como tamanho de bloco, modo de codificação ou similar. A unidade de transformação 52 então aplica a transformação selecionada à TU, produzindo um bloco de vídeo compreendendo um conjunto bidimensional de coeficientes de transformação. A unidade de transformação 52 pode sinalizar a partição de transformação selecionada no fluxo de bits de vídeo codificado.
[0081] A unidade de transformação 52 pode enviar os coeficientes de transformação resultantes para a unidade de quantização 54. A unidade de quantização 54 pode então quantizar os coeficientes de transformação. A unidade de codificação por entropia 56 pode então realizar uma digitalização dos coeficientes de transformação quantizados na matriz de acordo com um modo de digitalização. Essa descrição descreve a unidade de codificação por entropia 56 como realizando a digitalização. No entanto, deve-se compreender que, em outros exemplos, outras unidades de processamento, tal como a unidade de quantização 54, podem realizar a digitalização.
[0082] Uma vez que os coeficientes de transformação são digitalizados no conjunto unidimensional, a unidade de codificação por entropia 56 pode aplicar a codificação por entropia tal como CAVLC, CABAC, codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), ou outra metodologia de codificação por entropia aos coeficientes.
[0083] Para realizar CAVLC, a unidade de codificação por entropia 56 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras código em VLC podem ser construídas de modo que códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Dessa forma, o uso de VLC pode alcançar uma economia de bits sobre, por exemplo, a utilização de palavras código de mesmo comprimento para cada símbolo a ser transmitido.
[0084] Para realizar CABAC, a unidade de codificação por entropia 56 pode selecionar um modelo de contexto para aplicar a um determinado contexto para codificar os símbolos a serem transmitidos. O contexto pode se referir a, por exemplo, se os valores vizinhos são diferentes de zero ou não. A unidade de codificação por entropia 56 também pode codificar por entropia elementos de sintaxe, tal como o sinal representativo da transformação selecionada. De acordo com as técnicas dessa descrição, a unidade de codificação por entropia 56 pode selecionar o modelo de contexto utilizado para codificar esses elementos de sintaxe com base em, por exemplo, uma direção de intrapredição para os modos de intrapredição, uma posição de digitalização do coeficiente correspondendo aos elementos de sintaxe, tipo de bloco, tipo de transformação, ou ambos o tipo de bloco e o tipo de transformação, entre outros fatores utilizados para a seleção de modelo de contexto.
[0085] Seguindo a codificação por entropia pela unidade de codificação por entropia 56, o vídeo codificado resultante pode ser transmitido para outro dispositivo, tal como o decodificador de vídeo 30, ou arquivado para transmissão ou recuperação posterior.
[0086] Em alguns casos, a unidade de codificação por entropia 56 ou outra unidade de codificador de vídeo 20 pode ser configurada para realizar outras funções de codificação, em adição à codificação por entropia. Por exemplo, a unidade de codificação por entropia 56 pode ser configurada para determinar os valores de padrão de bloco codificado (CBP) para as CUs e PUs. Além disso, em alguns casos, a unidade de codificação por entropia 56 pode realizar a codificação de comprimento de funcionamento dos coeficientes.
[0087] A unidade de quantização inversa 58 e a unidade de transformação inversa 60 aplicam a quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência pela adição do bloco residual a um bloco de predição de um dos quadros do armazenador de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel de subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído. A unidade SAO e ALF 43 pode realizar os processos de desvio adaptativo de amostra e filtro de circuito adaptativo de acordo com as técnicas descritas acima. O bloco de vídeo reconstruído filtrado é então armazenado no armazenador de quadro de referência 64. O bloco de vídeo reconstruído filtrado é então armazenado no armazenador de quadro de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em um quadro de vídeo subsequente.
[0088] Adicionalmente, a unidade SAO e ALF 43 pode determinar um filtro compreendendo informação ALF, informação SAO, ou ambas as informações ALF e SAO. Por exemplo, a informação ALF pode incluir coeficientes de filtro que são aplicados (por exemplo, saídas de filtro) de modo a gerar um valor filtrado para um pixel, enquanto a informação SAO pode incluir valores de desvio que são utilizados para orientar os valores de pixel. A unidade SAO e ALF 43 pode então gerar um fluxo de bits codificado que pode incluir a informação ALF, a informação SAO, ou ambas as informações ALF e SAO. A informação ALF e SAO pode ser enviada no fluxo de bits no nível de LCT ou fatia.
[0089] A figura 5 é um diagrama em bloco ilustrando um exemplo de um decodificador de vídeo 30, que decodifica uma sequência de vídeo codificada. No exemplo da figura 5, o decodificador de vídeo 30 pode incluir uma unidade de decodificação por entropia 70, uma unidade de compensação de movimento 72, uma unidade de intrapredição 74, uma unidade de quantização inversa 76, uma unidade de transformação inversa 78, um armazenador de quadro de referência 82, uma unidade SAO e ALF 79, e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente alternada à passagem de codificação descrita com relação ao codificador de vídeo 20 (ver figura 4).
[0090] A unidade de decodificação por entropia 70 realiza um processo de decodificação por entropia no fluxo de bits codificado para recuperar um conjunto unidimensional dos coeficientes de transformação. O processo de decodificação por entropia utilizado depende da codificação por entropia utilizada pelo codificador de vídeo 20 (por exemplo, CABAC, CAVLC, etc.). O processo de codificação por entropia utilizado pelo codificador pode ser sinalizado no fluxo de bits codificado ou pode ser um processo predeterminado.
[0091] Em alguns exemplos, a unidade de decodificação por entropia 70 (ou a unidade de quantização inversa 76) pode digitalizar os valores recebidos utilizando uma digitalização espelhando o modo de digitalização utilizado pela unidade de codificação por entropia 56 (ou a unidade de quantização 54) do codificador de vídeo 20. Apesar de a digitalização dos coeficientes poder ser realizada na unidade de quantização inversa 76, a digitalização será descrita para fins de ilustração como sendo realizada pela unidade de decodificação por entropia 70. Adicionalmente, apesar de ilustradas como unidades funcionais separadas para facilitar a ilustração, a estrutura e a funcionalidade da unidade de decodificação por entropia 70, a unidade de quantização inversa 76, e outras unidades do decodificador de vídeo 30 podem ser altamente integradas uma à outra.
[0092] A unidade de quantização inversa 76 quantiza de forma inversa, isso é, desquantiza, os coeficientes de transformação quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir um processo convencional, por exemplo, similar aos processos propostos para HEVC ou definidos pelo padrão de decodificação H.264. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QP calculado pelo codificador de vídeo 20 para a CU para determinar grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. A unidade de quantização inversa 76 pode quantizar de forma inversa os coeficientes de transformação antes ou depois de os coeficientes serem convertidos de um conjunto unidimensional para um conjunto bidimensional.
[0093] A unidade de transformação inversa 78 aplica uma transformação inversa aos coeficientes de transformação quantizados de forma inversa. Em alguns exemplos, a unidade de transformação inversa 78 pode determinar uma transformação inversa com base na sinalização do codificador de vídeo 20, ou pela inferência da transformação de uma ou mais características de codificação tal como tamanho de bloco, modo de codificação ou similares. Em alguns exemplos, a unidade de transformação inversa 78 pode determinar uma transformação para aplicar ao bloco atual com base em uma transformação sinalizada no nó raiz de um quadtree para uma LCU incluindo o bloco atual. Alternativamente, a transformação pode ser sinalizada na raiz de um quadtree TU para uma CU de nó folha no quadtree LCU. Em alguns exemplos, a unidade de transformação inversa 78 pode aplicar uma transformação inversa em cascata, onde a unidade de transformação inversa 78 aplica duas ou mais transformações inversas aos coeficientes de transformação do bloco atual sendo decodificado.
[0094] A unidade de intrapredição 74 pode gerar dados de predição para um bloco atual de um quadro atual com base em um modo de intrapredição sinalizado e dados dos blocos decodificados previamente do quadro atual.
[0095] Com base na direção de predição de movimento recuperada, o índice de quadro de referência, e o vetor de movimento atual calculado, a unidade de compensação de movimento produz um bloco de movimento compensado para a parte atual. Esses blocos de movimento compensado recriam essencialmente o bloco de predição utilizado para produzir os dados residuais.
[0096] A unidade de compensação de movimento 72 pode produzir os blocos de movimento compensado, realizando possivelmente a interpolação com base nos filtros de interpolação. Os identificadores para filtros de interpolação a serem utilizados para a estimativa de movimento com precisão de subpixel podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 72 pode utilizar filtros de interpolação como utilizados pelo codificador de vídeo 20 durante a codificação do bloco de vídeo para calcular valores interpolados para pixels de subinteiro de um bloco de referência. A unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 de acordo com a informação de sintaxe recebida e utilizar os filtros de interpolação para produzir blocos de predição.
[0097] Adicionalmente, a unidade de compensação de movimento 72 e a unidade de intrapredição 74, em um exemplo HEVC, podem utilizar alguma da informação de sintaxe (por exemplo, fornecida por um quadtree) para determinar os tamanhos de LCU utilizadas para codificar os quadros da sequência de vídeo codificada. A unidade de compensação de movimento 72 e a unidade de intrapredição 74 também podem utilizar informação de sintaxe para determinar a informação dividida que descreve como cada CU de um quadro de sequência de vídeo codificada é dividida (e da mesma forma, como as sub-CUs são divididas). A informação de sintaxe também pode incluir os modos indicando como cada divisão é codificada (por exemplo, intra ou interpredição, e para intracodificação de um modo de codificação por intrapredição), um ou mais quadros de referência (e/ou listas de referência contendo identificadores para os quadros de referência) para cada PU intercodificada, e outra informação para decodificar a sequência de vídeo codificada.
[0098] O somador 80 combina os blocos residuais com os blocos de predição correspondentes gerados pela unidade de compensação de movimento 72 ou a unidade de intrapredição 74 para formar os blocos decodificados. A unidade SAO e ALF 79 pode realizar as técnicas para os processos de desvio adaptativo de amostra e filtro de circuito adaptativo de acordo com as técnicas descritas acima. Se desejado, filtro de desbloqueio pode ser aplicado também para filtrar os blocos decodificados a fim de remover os artefatos de bloqueio. Os blocos de vídeo decodificados são então armazenados no armazenador de quadro de referência 82, que fornece os blocos de referência para a compensação de movimento subsequente e também produz vídeo decodificado para apresentação em um dispositivo de exibição (tal como o dispositivo de exibição 32 da figura 3). Em um exemplo, a unidade SAO e ALF 79 pode receber um fluxo de bits codificado que inclui a informação ALF, a informação SAO, ou ambas a informação ALF e SAO. O decodificador pode então interpretar o fluxo de bits codificado para selecionar o filtro correto a ser utilizado.
[0099] A figura 6 é um fluxograma ilustrando um método ilustrativo para realização os processos de filtro de circuito adaptativo (ALF), desvio adaptativo de amostra (SAO), ou ambos o processamento ALF e SAO em um processo de codificação de vídeo de acordo com um ou mais exemplos descritos nessa descrição. O método ilustrativo realiza os processos ALF, SAO ou ambos o processamento ALF e SAO em um processo de codificação de vídeo.
[0100] No método ilustrativo da figura 6, um codificador tal como um codificador de vídeo 20 ou decodificador de vídeo 30 pode armazenar os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO (600). Por exemplo, para suportar a sintaxe com base em LCU ou outra sintaxe com base em partição, um codificador de vídeo (isso é, um codificador ou decodificador de vídeo) pode armazenar os conjuntos da informação ALF, informação SAO, ou ambas, tal como conjuntos de filtros, desvios ou ambos e informação de mapeamento indicando um mapeamento entre os conjuntos de informação ALF, informação SAO, ou ambas a informação ALF e SAO e LCUs, outras partições, ou ambas as LCUs e outras partições. Um codificador de vídeo ou decodificador de vídeo pode armazenar tal informação para uso em processos ALF, processos SAO, ou ambos os processos ALF e SAO, de um processo de codificação de vídeo. O codificador de vídeo pode utilizar a informação nos processos ALF, processos SAO, ou ambos os processos ALF e SAO e codificar a informação como elementos de sintaxe em um fluxo de bits de vídeo codificado. Um decodificador de vídeo pode decodificar o fluxo de bits de vídeo para obter e armazenar os elementos de sintaxe para uso nos processos ALF, processos SAO, ou processos ALF e SAO de um processo de decodificação de vídeo essa informação pode ser organizada em uma variedade de diferentes formas, de acordo com os vários exemplos dessa descrição. Em alguns exemplos, os processos ALF, os processos SAO, ou processos ALF e SAO podem ser realizados em circuito. Em alguns exemplos, tais processos podem ser realizados pós-circuito.
[0101] No método ilustrativo da figura 6, um codificador tal como o codificador de vídeo 20 ou o decodificador de vídeo 30 pode armazenar informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação ALF, ou informação SAO para uma ou mais partições de um quadro de dados de vídeo (602). Por exemplo, a informação de mapeamento pode seguir alguma ordem de digitalização (por exemplo, tal como uma ordem de digitalização similar à ordem de digitalização LCU/CU). Essa informação pode ser armazenada em cada nível de LCU. Nesse caso, a informação ALF, a informação SAO, ou a informação ALF e SAO podem ser armazenadas no nível de LCU com a informação de mapeamento. Em outro exemplo, o conjunto de filtros/desvios pode ser armazenado em um APS ou no cabeçalho de fatia. O conjunto de filtros/desvios pode ser armazenado no APS ou cabeçalho de fatia e a informação de mapeamento pode ser armazenada na LCU.
[0102] Se o conjunto de filtros/desvios e informação de mapeamento forem armazenados no mesmo local (isso é, cabeçalho de fatia), esses dois conjuntos de informação podem ser armazenados de duas formas. Primeiro, o conjunto de filtros/desvios e a informação de mapeamento devem ser armazenados separadamente (como ilustrado no exemplo 2 nas figuras 1 e 2). Nesse caso, o conjunto de filtros/desvios pode ser armazenado independentemente da informação de mapeamento. A informação de mapeamento pode então fazer referência ao conjunto de informação ALF, informação SAO, ou ambas as informações ALF e SAO para aplicação a LCUs particulares (ou outras partições). Em segundo lugar, os conjuntos de filtros/desvio e a informação de mapeamento pode ser armazenado de uma forma intercalada (como ilustrado no exemplo 1 das figuras 1 e 2). Nesse caso, os conjuntos de filtros/desvios podem ser apresentados e armazenados para cada LCU (ou outra partição), por exemplo, de uma forma sequencial intercalada onde conjuntos de filtro/desvio em particular são apresentados para LCUs respectivas, e informação de mapeamento particular (por exemplo, comando de cópia ou comprimento de funcionamento) é apresentada para outras LCUs.
[0103] Em um codificador ilustrativo tal como o codificador de vídeo 20 ou decodificador de vídeo 30, o codificador pode armazenar ambos os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO e a informação de mapeamento como nível LCU ou elementos de sintaxe de nível de fatia. O codificador pode armazenar os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO e a informação de mapeamento em um nível LCU ou nível de fatia separadamente ou de uma forma intercalada. O codificador pode armazenar adicionalmente os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO em um conjunto de parâmetro de adaptação (APS) ou cabeçalho de fatia, e codificando a informação de mapeamento em um cabeçalho de fatia. Em um exemplo, o codificador pode armazenar os conjuntos de informação ALF, informação SAO, ou ambas as informações ALF e SAO em um conjunto de parâmetro de adaptação (APS) ou cabeçalho de fatia, e codificação da informação de mapeamento em um nível LCU.
[0104] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento com base em hardware. O meio legível por computador pode incluir o meio de armazenamento legível por computador, que corresponde a um meio tangível tal como o meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, o meio legível por computador pode geralmente corresponder a (1) meio de armazenamento legível por computador tangível que não é transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0105] A figura 7 é um fluxograma ilustrando um método ilustrativo implementado no codificador de vídeo 20 de acordo com um ou mais exemplos descritos nessa descrição. A unidade SAO e ALF 43, dentro do codificador de vídeo 20 podem determinar um filtro compreendendo informação ALF, informação SAO, ou ambas as informações ALF e SAO. Por exemplo, a informação ALF pode incluir coeficientes de filtro que são aplicados (por exemplo, saídas de filtro) de modo a gerar um valor filtrado para um pixel. A informação SAO pode incluir valores de desvio que são utilizados para orientar os valores de pixel.
[0106] A unidade SAO e ALF 43 pode então gerar um fluxo de bits codificado utilizando o filtro. Adicionalmente, o fluxo de bits codificado pode incluir a informação ALF, a informação SAO, ou ambas a informação ALF e SAO. A informação ALF e SAO pode ser enviada no fluxo de bits no LCT ou nível de fatia. Por exemplo, os coeficientes de filtro que são aplicados (por exemplo, saídas de filtro) e/ou os valores de desvio que são utilizados para orientar os valores de pixel podem ser enviados na sequência de bits. Isso pode ocorrer no nível LCT ou de fatia que pode permitir um detalhamento maior quando comparado com o envio de tal informação no nível de quadro visto que a filtragem pode ser alterada dentro de um quadro. Em alguns exemplos, um indicador pode ser enviado na LCU indicando a filtragem utilizada. Em outros exemplos, a informação de sintaxe pode ser enviada na LCU ou nível de partição.
[0107] A figura 8 é um fluxograma ilustrando um método ilustrativo implementado em um decodificador de vídeo 30 de acordo com um ou mais exemplos descritos nessa descrição. A unidade SAO e ALF 79, dentro do decodificador de vídeo 30 pode receber um fluxo de bits codificado. O fluxo de bits codificado pode incluir a informação ALF, a informação SAO, ou ambas a informação ALF e SAO. O decodificador interpreta o fluxo de bits codificado para selecionar o filtro corrigido a ser utilizado. Em outras palavras, o decodificador de vídeo 30 determina qual filtro do codificador de vídeo 20 selecionou. Adicionalmente, a unidade SAO e ALF 79 pode aplicar a informação ALF, a informação SAO ou ambas a informação ALF e SAO para decodificar a sequência de bits. Por exemplo, os coeficientes de filtro que são aplicados (por exemplo, saídas de filtro) e/ou valores de desvio que são utilizados para orientar os valores de pixel podem ser recebidos no fluxo de bits recebido. Tais exemplos permitem filtragem diferente dos blocos diferentes ao invés de exigir que todos os blocos dentro de um quadro sejam filtrados da mesma forma.
[0108] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenador de disco ótico, armazenador de disco magnético, ou outros dispositivos de armazenamento magnéticos, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um sítio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo e fibra ótica, um par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outro meio transiente, mas, ao invés disso, são direcionados para meio de armazenamento tangível não transiente. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu- ray, onde disquetes normalmente reproduzem os dados magneticamente, enquanto os discos reproduzem os dados oticamente com lasers. Combinações do acima exposto também devem ser incluídas no escopo de meio legível por computador.
[0109] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digita (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis em campo (FPGAs), ou outro conjunto de circuito lógico discreto ou integrado equivalente. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de hardware dedicado e/ou módulos de software configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0110] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Ao invés disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com o software e/ou firmware adequado.
[0111] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método para realizar processos de desvio adaptativo de amostra (SAO) em um processo de codificação de vídeo, caracterizado pelo fato de que compreende: armazenar (600) conjuntos de informação SAO, a informação SAO compreendendo dados indicativos de valores de desvio; armazenar (602) informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, em que a informação de mapeamento inclui informação de cópia; codificar os conjuntos de informação SAO e informação de mapeamento como elementos de sintaxe de nível de unidade de codificação maior (LCU), em que a informação de mapeamento inclui a informação de cópia; e realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada, em que a informação de cópia indica: se a informação SAO deve ser copiada para uma das partições a partir de outras das partições para uso nos processos SAO; e se a informação SAO deve ser copiada, a partir de que partição, de uma partição esquerda e uma partição superior, a informação SAO deve ser copiada, em que a informação de cópia compreende um comando de cópia que compreende um entre uma cópia de comando de partição esquerda e uma cópia de comando partição superior.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: gerar (702) um fluxo de bits codificado utilizando um filtro, o fluxo de bits codificado incluindo a informação SAO.
3. Método para realizar processos de desvio adaptativo de amostra (SAO) em um processo de decodificação de vídeo, caracterizado pelo fato de que compreende: armazenar (600) conjuntos de informação SAO, a informação SAO compreendendo dados indicativos de valores de desvio; armazenar (602) informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, em que a informação de mapeamento inclui informação de cópia; decodificar os conjuntos de informação SAO e a informação de mapeamento codificada como elementos de sintaxe de nível de unidade de codificação maior (LCU), em que a informação de mapeamento inclui a informação de cópia; e realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada, em que a informação de cópia indica: se a informação SAO deve ser copiada para uma das partições a partir de outras das partições para uso nos processos SAO; e se a informação SAO deve ser copiada, a partir de que partição, de uma partição esquerda e uma partição superior, a informação SAO deve ser copiada, em que a informação de cópia compreende um comando de cópia que compreende um entre uma cópia de comando de partição esquerda ou uma cópia de comando de partição superior.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente: receber (800) um fluxo de bits codificado incluindo a informação SAO; e aplicar (802) a informação SAO em um decodificador de vídeo.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que as uma ou mais partições compreendem uma ou mais unidades de codificação maiores (LCUs) do quadro dos dados de vídeo; e em que a informação de mapeamento compreende uma ou mais entre: informação de indicador que indica se um novo filtro, um novo desvio, ou tanto o novo filtro quanto o novo desvio devem ser designados para uma das partições para uso nos processos SAO; a informação de indicador incluindo adicionalmente uma identificação indicando um dos conjuntos de informação SAO, a ser designado para uma das partições associadas com a informação de indicador; informação de funcionamento indicando um número das partições sequenciais que compartilham a mesma informação SAO; e identificação indicando um dos conjuntos de informação SAO a ser designado para uma das partições associadas com a informação de indicador.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que codificar os conjuntos de informação SAO e a informação de mapeamento como elementos de sintaxe de nível de LCU compreende designar a uma primeira LCU um primeiro conjunto de informação SAO, copiar o primeiro conjunto de informação SAO para uma segunda LCU, designar a uma terceira LCU um segundo conjunto de informação SAO, copiar o segundo conjunto de informação SAO para uma quarta LCU, em que uma quinta LCU é indicada como DESLIGADA, e em que essa apresentação de informação SAO de uma forma intercalada com a informação de mapeamento continua para todas as LCUs restantes.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que os conjuntos de informação SAO e a informação de mapeamento são codificados de forma intercalada como elementos de sintaxe de nível LCU.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que compreende adicionalmente: armazenar conjuntos de informação de filtro de circuito adaptativo (ALF), em que a informação ALF inclui informação referente a coeficientes de filtro; armazenar informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação ALF para uma ou mais partições de sequência do quadro de dados de vídeo; e realizar um processo ALF para uma das partições do quadro com base na informação ALF armazenada e na informação de mapeamento armazenada; em que a informação de mapeamento compreende pelo menos uma entre: informação de indicador que indica se um novo filtro, um novo desvio, ou tanto o filtro quanto o novo desvio devem ser designados para uma das partições para uso no processo ALF; informação de cópia indicando se informação ALF deve ser copiada para uma das partições a partir de outra das partições para uso nos processos ALF; e informação de funcionamento indicando um número das partições sequenciais que compartilham a mesma informação ALF.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a informação de mapeamento inclui adicionalmente uma primeira identificação indicando um dos conjuntos de informação ALF a ser designado para uma das partições associadas com a informação de indicador; e em que a informação de indicador inclui adicionalmente uma segunda identificação indicando um dos conjuntos de informação ALF a ser designado para uma das partições associadas com a informação de indicador.
10. Método, de acordo com qualquer uma das reivindicações 8 ou 9, caracterizado pelo fato de que compreende adicionalmente: codificar os conjuntos de informação ALF como elementos de sintaxe de nível de LCU, em que a codificação é feita de forma intercalada; codificar os conjuntos de informação ALF em um conjunto de parâmetro de adaptação (APS) ou um cabeçalho de fatia, e codificar a informação de mapeamento no cabeçalho de fatia; e codificar os conjuntos de informação ALF em um conjunto de parâmetro de adaptação (APS) ou cabeçalho de fatia, e codificar a informação de mapeamento como elementos de sintaxe de nível de LCU.
11. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 10.
12. Codificador de vídeo (20) para realizar processos de desvio adaptativo de amostra (SAO) para um processo de codificação de vídeo, o codificador de vídeo caracterizado pelo fato de que compreende: meios para armazenar conjuntos de informação SAO, a informação SAO compreendendo dados indicativos de valores de desvio; meios para armazenar informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, em que a informação de mapeamento inclui informação de cópia; meios para codificar os conjuntos de informação SAO e informação de mapeamento como elementos de sintaxe de nível de unidade de codificação maior (LCU), em que a informação de mapeamento inclui a informação de cópia; e meios para realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada, em que a informação de cópia indica: se a informação SAO deve ser copiada para uma das partições a partir de outras das partições para uso nos processos SAO; e se a informação SAO deve ser copiada, a partir de que partição, de uma partição esquerda e uma partição superior, a informação SAO deve ser copiada, em que a informação de cópia compreende um comando de cópia que compreende um entre uma cópia de comando de partição esquerda e uma cópia de comando partição superior.
13. Codificador de vídeo (20), de acordo com a reivindicação 12, caracterizado pelo fato de que os meios para codificar os conjuntos de informação SAO e a informação de mapeamento como elementos de sintaxe de nível de LCU incluem meios para codificar os conjuntos de informação SAO e informação de mapeamento de uma forma intercalada como elementos de sintaxe de nível de LCU.
14. Decodificador de vídeo (30) para realizar processos de desvio adaptativo de amostra (SAO) para um processo de decodificação de vídeo, caracterizado pelo fato de que compreende: meios para armazenar conjuntos de informação SAO, a informação SAO compreendendo dados indicativos de valores de desvio; meios para armazenar informação de mapeamento que mapeia pelo menos alguns dos conjuntos de informação SAO para uma ou mais partições de sequência de um quadro de dados de vídeo, em que a informação de mapeamento inclui informação de cópia; meios para decodificar os conjuntos de informação SAO e a informação de mapeamento codificada como elementos de sintaxe de nível de LCU, em que a informação de mapeamento inclui a informação de cópia; e meios para realizar os processos SAO para uma das partições do quadro com base na informação SAO armazenada e na informação de mapeamento armazenada, em que a informação de cópia indica: se informação SAO deve ser copiada para uma das partições a partir de outras das partições para uso nos processos SAO; e se informação SAO deve ser copiada, a partir de que partição, de uma partição esquerda e uma partição superior, a informação SAO deve ser copiada, em que a informação de cópia compreende um comando de cópia que compreende um entre uma cópia de comando partição esquerda e uma cópia de comando partição superior.
15. Decodificador de vídeo (30), de acordo com a reivindicação 14, caracterizado pelo fato de que os meios para decodificar os conjuntos de informação SAO e a informação de mapeamento codificada como elementos de sintaxe de nível de LCU incluem meios para decodificar os conjuntos de informação SAO e a informação de mapeamento codificada de forma intercalada como elementos de sintaxe de nível de LCU.
BR112014012939-8A 2011-11-28 2012-11-21 Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador BR112014012939B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161564215P 2011-11-28 2011-11-28
US61/564,215 2011-11-28
US13/682,293 US9386305B2 (en) 2011-11-28 2012-11-20 Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
US13/682,293 2012-11-20
PCT/US2012/066250 WO2013081935A1 (en) 2011-11-28 2012-11-21 Largest coding unit (lcu) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding

Publications (2)

Publication Number Publication Date
BR112014012939A2 BR112014012939A2 (pt) 2017-06-13
BR112014012939B1 true BR112014012939B1 (pt) 2022-08-09

Family

ID=48466850

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014012939-8A BR112014012939B1 (pt) 2011-11-28 2012-11-21 Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador

Country Status (9)

Country Link
US (1) US9386305B2 (pt)
EP (1) EP2786568A1 (pt)
JP (1) JP6022597B2 (pt)
KR (1) KR101641808B1 (pt)
CN (1) CN103959779B (pt)
BR (1) BR112014012939B1 (pt)
IN (1) IN2014CN03592A (pt)
TW (1) TWI513278B (pt)
WO (1) WO2013081935A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
JP2014197723A (ja) * 2012-01-06 2014-10-16 ソニー株式会社 画像処理装置および方法
US20150023420A1 (en) * 2012-01-19 2015-01-22 Mitsubishi Electric Corporation Image decoding device, image encoding device, image decoding method, and image encoding method
US9282328B2 (en) * 2012-02-10 2016-03-08 Broadcom Corporation Sample adaptive offset (SAO) in accordance with video coding
AU2012203828B2 (en) * 2012-06-28 2015-12-10 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a sample adaptive offset data of encoded video data
GB2509707B (en) * 2013-01-04 2016-03-16 Canon Kk A method, device, computer program, and information storage means for encoding or decoding a video sequence
TWI496456B (zh) 2013-11-19 2015-08-11 Ind Tech Res Inst 畫面間成本計算方法及畫面間成本計算裝置
US20150237378A1 (en) * 2014-02-20 2015-08-20 Mediatek Inc. Method for controlling sample adaptive offset filtering applied to different partial regions in one frame based on different weighting parameters and related sample adaptive offset filter
CN104935927A (zh) * 2014-03-17 2015-09-23 上海京知信息科技有限公司 一种基于流水线的hevc视频序列编解码加速方法
WO2017083553A1 (en) 2015-11-10 2017-05-18 Vid Scale, Inc. Systems and methods for coding in super-block based video coding framework
MX2018006091A (es) * 2015-11-17 2018-11-09 Awei Tech Co Ltd Metodo y aparato para filtracion adaptativa de muestras para codificacion de video.
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
US11284075B2 (en) * 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding
US11159791B2 (en) * 2019-03-16 2021-10-26 Mediatek Inc. Method and apparatus for signaling adaptive loop filter parameters in video coding
WO2020204419A1 (ko) * 2019-04-03 2020-10-08 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
WO2020204414A1 (ko) * 2019-04-03 2020-10-08 엘지전자 주식회사 적응적 루프 필터를 사용하는 비디오 또는 영상 코딩
WO2020224525A1 (en) * 2019-05-03 2020-11-12 Mediatek Inc. Methods and apparatuses of syntax signaling and referencing constraint in video coding system
WO2021251744A1 (ko) * 2020-06-10 2021-12-16 엘지전자 주식회사 Aps에 대한 식별자를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
CN114615494A (zh) * 2020-12-04 2022-06-10 咪咕文化科技有限公司 一种图像处理方法、装置及设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548041B2 (en) 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter
US9078007B2 (en) 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
JP5359657B2 (ja) * 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
WO2011074924A2 (ko) 2009-12-18 2011-06-23 한국전자통신연구원 비디오 부호화/복호화 방법 및 장치
US8995527B2 (en) 2010-02-19 2015-03-31 Qualcomm Incorporated Block type signalling in video coding
WO2011113282A1 (en) 2010-03-15 2011-09-22 Mediatek Singapore Pte. Ltd. Localized in-loop filtering with multiple filters in hybrid video coding
US9465228B2 (en) * 2010-03-19 2016-10-11 Optical Biosystems, Inc. Illumination apparatus optimized for synthetic aperture optics imaging using minimum selective excitation patterns
US8837592B2 (en) 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
EP3288265B1 (en) 2010-04-26 2019-01-23 Sun Patent Trust Filtering mode for intra prediction inferred from statistics of surrounding blocks
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

Also Published As

Publication number Publication date
KR20140098209A (ko) 2014-08-07
KR101641808B1 (ko) 2016-07-21
US9386305B2 (en) 2016-07-05
US20130136167A1 (en) 2013-05-30
WO2013081935A1 (en) 2013-06-06
JP2015502112A (ja) 2015-01-19
IN2014CN03592A (pt) 2015-07-03
CN103959779B (zh) 2017-05-24
TWI513278B (zh) 2015-12-11
JP6022597B2 (ja) 2016-11-09
CN103959779A (zh) 2014-07-30
BR112014012939A2 (pt) 2017-06-13
TW201342924A (zh) 2013-10-16
EP2786568A1 (en) 2014-10-08

Similar Documents

Publication Publication Date Title
BR112014012939B1 (pt) Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador
TWI815896B (zh) 寫碼用於視訊寫碼之自適應多重轉換資訊
TWI755376B (zh) 用於視訊寫碼之濾波器之幾何轉換
BR112021003315A2 (pt) redução de compartimento codificado regular para codificação de coeficiente com o uso de limite e parâmetro de rice
BR122021011274B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitória legíveis por computador
BR112014017118B1 (pt) Determinar contextos para codificar dados de coeficiente de transformada em codificação de vídeo
BR112020024520A2 (pt) projeto e sinalização de filtro de malha adaptativo (alf) baseado em bloco
BR112016000584B1 (pt) Inicialização de parâmetro de rice para codificação de nível de coeficiente em processo de codificação de vídeo
BR112014010326B1 (pt) Codificação de vídeo intramodo
BR112015025910B1 (pt) Atualização de parâmetro rice para codificação de nível de coeficiente em processo de codificação de vídeo
BR112014008097B1 (pt) Remoção de corte de candidato a preditor de vetor de movimento para codificação de vídeo
BR112014017706B1 (pt) Sinalização de parâmetros de filtro de desbloqueio em codificação de vídeo
BR112013007302B1 (pt) Coeficientes de codificação por entropia utilizando um modelo de contexto conjunto
BR112016000863B1 (pt) Previsão residual de componente intercor
BR112015024766B1 (pt) Desabilitação da ocultação de dados de sinal na codificação de vídeo
BR112013013650B1 (pt) Método, dispositivo e meio legível por computador para codificar coeficientes associados a um bloco de dados de vídeo durante um processo de codificação de vídeo
BR112014010046B1 (pt) Método para decodificar dados de vídeo, método e dispositivo para codificar dados de vídeo e memória legível por computador
BR122020003135B1 (pt) Método e dispositivo para decodificar dados de vídeo e meio de armazenamento não transitório legível por computador
BR112014009416B1 (pt) Desblocagem de vídeo em modo de codificação intra pcm (ipcm) e sem perda
BR112014011054B1 (pt) Matrizes de quantização de sinalização para codificação de vídeo
BR112014026750B1 (pt) Codificação de parâmetro de quantização (pq) em codificação de vídeo
BR112019010547A2 (pt) indicação de uso de filtro bilateral em codificação de vídeo
BR112014001056B1 (pt) Varredura de coeficiente em codificação de vídeo
BR112013013651B1 (pt) Métodos para codificar e decodificar coeficientes associados a um bloco de dados de vídeo durante um processo de codificação de vídeo, aparelho para codificar coeficientes associados com um bloco de dados de vídeo durante um processo de codificação de vídeo e mídia legível por computador
BR112014011060B1 (pt) Número de redução de contextos para codificação aritmética binária adaptativa de contexto

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

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

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

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