BR112012020733B1 - Sinalização de tipo de bloco em codificação de vídeo - Google Patents

Sinalização de tipo de bloco em codificação de vídeo Download PDF

Info

Publication number
BR112012020733B1
BR112012020733B1 BR112012020733-4A BR112012020733A BR112012020733B1 BR 112012020733 B1 BR112012020733 B1 BR 112012020733B1 BR 112012020733 A BR112012020733 A BR 112012020733A BR 112012020733 B1 BR112012020733 B1 BR 112012020733B1
Authority
BR
Brazil
Prior art keywords
video
syntax element
prediction
indicative
data
Prior art date
Application number
BR112012020733-4A
Other languages
English (en)
Other versions
BR112012020733A2 (pt
Inventor
Rahul P. Panchal
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 BR112012020733A2 publication Critical patent/BR112012020733A2/pt
Publication of BR112012020733B1 publication Critical patent/BR112012020733B1/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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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

Landscapes

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

Abstract

sinalização de tipo de bloco em codificação de vídeo. em um exemplo, essa descrição descreve as técnicas de codificação e decodificação de vídeo aplicáveis à previsão bidirecional. para sinalização a partir de um codificador para um decodificador de um tipo de bloco para um bloco de vídeo, um codificador pode transmitir para o decodificador dois ou mais elementos de sintaxe separados, onde um dos dois ou mais elementos de sintaxe separados identifica uma tamanho de partição para o bloco de vídeo e outro dois ou mais elementos de sintaxe separados identifica uma direção de previsão para uma partição do bloco de vídeo. os elementos de sintaxe separados podem ser codificados e transmitidos individualmente a partir do codificador para o decodificador.

Description

Esse pedido reivindica os benefícios do pedido provisório U.S. No. 61/306.261, depositado em 19 de fevereiro de 2010, que é incorporado aqui por referência em sua totalidade.
Campo Técnico
A descrição se refere à codificação de video e, mais particularmente, às técnicas de codificação de video que utilizam previsão bidirecional.
Fundamentos
Capacidades de multimídia digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digitais, dispositivos de comunicação sem fio, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tipo tablet, câmeras digitais, dispositivos de gravação digital, dispositivos de jogos de video, consoles de jogos de video, telefones de rádio via satélite ou celulares, aparelhos de reprodução de midia digital, e similares. Dispositivos de multimídia digitais podem implementar as técnicas de codificação de video tal como MPEG-2, ITU-H.263, MPEG-4 ou ITU-H.264/MPEG- 4 Parte 10, Codificação de Video Avançada (AVC), para transmitir e receber ou armazenar e recuperar dados de video digital de forma mais eficiente. As técnicas de codificação de video podem realizar a compressão de video através de previsão espacial e temporal para reduzir ou remover a redundância inerente às sequências de video. Novos padrões de video tal como o padrão de codificação de video de alta eficiência (HEVC), que está sendo desenvolvido por um Time de Colaboração Conjunto em Codificação de Video (JCT-VC) estabelecido pelo Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG) e Grupo de Especialistas em Codificação de Video ITU-T (VCEG), continuam a emergir e evoluir.
Na codificação de video, a compressão inclui frequentemente previsão espacial, estimativa de movimento e compensação de movimento. A intracodificação se baseia em previsão espacial e codificação de transformação, tal como a transformação de coseno discreta (DCT), para reduzir ou remover a redundância espacial entre blocos de video dentro de um determinado quadro de video. A intercodificação se baseia em previsão temporal e codificação de transformação para reduzir ou remover a redundância temporal entre os blocos de video de quadros de video sucessivos de uma sequência de video. Os quadros intracodifiçados ("quadros I") são frequentemente utilizados como pontos de acesso randômico além de referências para a intercodificação de outros quadros. Os quadros I, no entanto, exibem tipicamente menos compressão do que os outros quadros.
Para a intercodificação, um codificador de video realiza a estimativa de movimento para rastrear o movimento de blocos de video coincidentes entre dois ou mais quadros adjacentes ou outras unidades de informação de vídeo que incluem blocos de video codificados, tal como fatias de quadros. Os quadros intercodifiçados podem incluir quadros de previsão ("quadros P") que podem incluir blocos de vídeo previstos a partir de um quadro anterior, e quadros de previsão bidirecionais ("quadros B") que podem incluir blocos de vídeo previstos a partir de um quadro anterior e um quadro subsequente de uma sequência de vídeo. Os termos quadros P e quadros B são de alguma forma históricos no sentido de as técnicas de codificação prematuras limitarem a precisão nas direções específicas. Formatos de codificação e padrões mais recentes podem não limitar a direção de previsão dos quadro P ou quadros B. Dessa forma, o termo "bidirecional" agora se refere à previsão com base em duas ou mais listas de dados de referência independentemente da relação temporal de tais dados de referência com relação aos dados sendo codificados.
Consistente com os novos padrões de video tal como ITU H.264, por exemplo, a previsão bidirecional pode ser baseada em duas listas diferentes que não precisam necessariamente ter dados que residam temporariamente antes e depois do bloco de video atual. Em outras palavras, os blocos de video B podem ser previstos a partir de duas listas de dados, que podem corresponder aos dados de dois quadros anteriores, dois quadros subsequentes, ou um quadro anterior e um quadro subsequente. Em contraste, os blocos de video P são previstos com base em uma lista, isso é, uma estrutura de dados, que pode corresponder a um quadro de previsão, por exemplo, um quadro anterior e um quadro subsequente.
Para blocos d video P e B, a estimativa de movimento gera vetores de movimento que indicam o deslocamento dos blocos de video com relação aos blocos de video de previsão correspondentes nos quadros de referência de previsão ou outras unidades de referência. A compensação de movimento utiliza os vetores de movimento para gerar os blocos de video de previsão a partir dos quadros de referência de previsão ou unidades de referência. Depois da compensação de movimento, um bloco de video residual é formado pela subtração do bloco de video de previsão do bloco de video original a ser codificado. O codificador de video normalmente aplica os processos de transformação, quantização e codificação por entropia para reduzir ainda mais a taxa de bits associada com a comunicação do bloco residual. As unidades I e P são comumente utilizadas para definir blocos de referência para a intercodificação de unidades P e B.
Sumário
Essa descrição descreve as técnicas de codificação e decodificação de video aplicáveis à previsão bidirecional. Na previsão bidirecional, um bloco de video é codificado e decodificado de forma previsível com base em duas listas diferentes de dados de referência de previsão. Em um aspecto dessa descrição, as técnicas são descritas para sinalização de um codificador para um decodificador de um tipo de bloco para um bloco de video, onde a sinalização do tipo de bloco inclui a sinalização em separado de um tamanho de divisão para o bloco de video, uma primeira direção de previsão para o bloco de vídeo, e, em alguns casos, uma segunda direção de previsão para o bloco de vídeo. As técnicas da presente descrição podem utilizar elementos de sintaxe separados para sinalização do tamanho de divisão, a primeira direção de previsão, e a segunda direção de previsão. Adicionalmente, as técnicas são descritas para sinalização de um tipo de sub-bloco de um codificador para um decodificador, onde a sinalização do tipo de sub-bloco também pode incluir sinalização em separado de um tamanho de divisão e uma direção de previsão utilizando elementos de sintaxe separados. Os elementos de sintaxe separados podem ser individualmente codificados e transmitidos do codificador para o decodificador.
Em um exemplo, essa descrição descreve um método de codificação de um bloco de vídeo bidirecional (bloco de vídeo B) . 0 método compreende a geração de primeiros dados de previsão par ao bloco de vídeo B; a geração de segundos dados de previsão para o bloco de vídeo B; seleção de um dos primeiros dados de previsão e segundos dados de previsão com base em uma ou mais métricas de distorção de taxa; com base nos dados de previsão selecionados, a geração de um primeiro elemento de sintaxe indicativo de um tamanho de divisão para o bloco de video B; com base nos dados de previsão selecionados, geração de um segundo elemento de sintaxe separado do primeiro elemento de sintaxe e indicativo de uma direção de previsão para uma divisão do bloco de video B; e, envio dos primeiro e segundo elementos de sintaxe.
Em outro exemplo, essa descrição descreve um codificador de vídeo para codificar um bloco de vídeo bidirecional (bloco de vídeo B) . O codificador de vídeo compreende uma ou mais unidades de previsão configuradas para gerar os primeiros dados de previsão para o bloco de vídeo B e segundos dados de previsão para o bloco de vídeo B; uma unidade de análise de distorção de taxa configurada para selecionar um dos primeiros dados de previsão e segundos dados de previsão a serem incluídos na sequência de bits; e, uma ou mais unidades de previsão configuradas para gerar um primeiro elemento de sintaxe indicativo de um tamanho de divisão para ob loco de vídeo B com base nos dados de previsão selecionados, e para gerar um primeiro elemento de sintaxe indicativo de uma direção de previsão para o bloco de vídeo B com base nos dados de previsão selecionados.
Em outro exemplo, essa descrição descreve um meio de armazenamento legível por computador compreendendo instruções que mediante execução em um processador fazem com que o processador realize a codificação de um bloco de vídeo bidirecional (bloco de vídeo B). A codificação compreende: a geração de primeiros dados de previsão para o bloco de vídeo B; a geração de segundos dados de previsão para o bloco de vídeo B; a seleção de um dos primeiros dados de previsão e segundos dados de previsão com base em uma ou mais métricas de distorção de taxa; geração de um primeiro elemento de sintaxe indicativo de um tamanho de divisão para o bloco de video B com base nos dados de previsão selecionados; a geração de um segundo elemento de sintaxe separado do primeiro elemento d sintaxe e indicativo de uma direção de previsão para uma divisão do bloco de video B com base nos dados de previsão selecionados; e envio dos primeiro e segundo elementos de sintaxe.
Em outro exemplo, essa descrição descreve um dispositivo para codificação de um bloco de video bidirecional (bloco de video B) . O dispositivo compreende meios para a geração de dados de previsão para o bloco de video B; meios para a geração de segundos dados de previsão para o bloco de video B; meios para a seleção de um dos primeiros dados de previsão e segundos dados e previsão com base em uma ou mais métricas de distorção de taxa; meios para a geração de um primeiro elemento de sintaxe indicativo de um tamanho de divisão para ob loco de video B com base nos dados de previsão selecionados; e meios para a geração de um segundo elemento de sintaxe separado do primeiro elemento de sintaxe e indicativo de uma direção de previsão para uma divisão do bloco de video B com base nos dados de previsão selecionados; e meios para enviar os primeiro e segundo elementos de sintaxe.
Em outro exemplo, essa descrição descreve um método de decodificação de um bloco de video bidirecional (bloco de video B) . O método compreende o recebimento de dados de video codificados; o recebimento, nos dados de video codificados, de um primeiro elemento de sintaxe indicativo de um tamanho de divisão utilizado para codificar o bloco de video B e um segundo elemento de sintaxe indicativo de uma direção de previsão utilizada para codificar o bloco de video B, onde o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe; e, decodificação do bloco de video B com base pelo menos em parte no primeiro elemento de sintaxe recebido e no segundo elemento de sintaxe.
Em outro exemplo, essa descrição descreve um decodificador de video para decodificar um bloco de video bidirecional (bloco de video B) . O decodificador de video compreende uma unidade de previsão configurada para receber os dados de video codificados, os dados de video codificados compreendendo um primeiro elemento de sintaxe indicativo de um tamanho de divisão utilizado para codificar o bloco de video B e um segundo elemento de sintaxe indicativo de uma direção de previsão utilizada para codificar o bloco de video B, onde o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe; uma unidade de compensação de movimento configurada para decodificar o bloco de video B com base no primeiro elemento de sintaxe recebido e no segundo elemento de sintaxe.
Em outro tempo, essa descrição descreve um meio de armazenamento legivel por computador compreendendo instruções que mediante execução em um processador fazem com que o processador realize a decodificação de um bloco de video B. A decodificação compreende o recebimento de dados de video codificados; o recebimento, nos dados de video codificados, de um primeiro elemento de sintaxe indicativo de um tamanho de divisão utilizado para codificar o bloco de video B e um segundo elemento de sintaxe indicativo de uma direção de previsão utilizada para codificar o bloco de video B, onde o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe; e, a decodificação do bloco de video B com base pelo menos em parte no primeiro elemento de sintaxe e no segundo elemento de sintaxe.
Em outro exemplo, essa descrição descreve um dispositivo para decodificação de um bloco de video B. O dispositivo compreende meios para receber dados de video codificados; meios para receber um primeiro elemento de sintaxe indicativo de um tamanho de divisão utilizado para codificar o bloco de video B e um segundo elemento de sintaxe indicativo de uma direção de previsão utilizada para codificar o bloco de video B, onde o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe; e, meios para decodificar o bloco de video B com base pelo menos em parte no primeiro elemento de sintaxe recebido e no segundo elemento de sintaxe.
As técnicas descritas nessa descrição podem ser implementadas em hardware, software, firmware ou combinações dos mesmos. Se implementadas em hardware, um aparelho pode ser criado com um circuito integrado, um processador, uma lógica discreta, ou qualquer combinação dos mesmos. Se implementadas em software, o software pode ser executado em um ou mais processadores, tal como um microprocessador, um circuito integrado especifico de aplicativo (ASIC), um conjunto de porta programável em campo (FPGA), ou processador de sinal digital (DSP). O software que executa as técnicas pode ser inicialmente armazenado em um meio de armazenamento legivel por computador tangivel e carregado e executado no processador.
Os detalhes de um ou mais aspectos da descrição são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens das técnicas descritas nessa descrição serão aparentes a partir da descrição e dos desenhos, e a partir das reivindicações.
Breve Descrição dos Desenhos
A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de video ilustrativo que pode implementar técnicas dessa descrição;
A figura 2 é um diagrama em bloco ilustrando um exemplo de um codificador de video que pode realizar as técnicas consistentes com essa descrição;
A figura 3 é um diagrama em bloco ilustrando um exemplo de uma unidade de compensação de movimento em maiores detalhes;
A figura 4 é um diagrama em bloco ilustrando um exemplo de um decodificador de video que pode realizar as técnicas consistentes com essa descrição;
A figura 5 é um fluxograma ilustrando um exemplo de um processo realizado por um codificador de video consistente com essa descrição;
A figura 6 é um fluxograma ilustrando um exemplo de um processo realizado por um decodif icador de video consistente com essa descrição.
Descrição Detalhada
Essa descrição descreve as técnicas de codificação e decodificação de video aplicáveis à precisão bidirecional. Na previsão bidirecional, um bloco de video é codificado e decodificado de forma prevista com base em duas listas diferentes de dados de referência de previsão. Em um aspecto dessa descrição, as técnicas são descritas para sinalização de um codificador para um decodificador de um tipo de bloco para um bloco de video, onde a sinalização do tipo de bloco inclui a sinalização em separado de um tamanho de divisão para o bloco de video, uma primeira direção de previsão par ao bloco de video e, em alguns casos, uma segunda direção de previsão para o bloco de video. As técnicas da presente descrição podem utilizar elementos de sintaxe separados para sinalização do tamanho de divisão, a primeira direção de previsão e a segunda direção de previsão. Adicionalmente, as técnicas são descritas para sinalização a partir de um codificador para um decodificador de um tipo de bloco, onde a sinalização do tipo de sub-bloco também pode incluir a sinalização em separado de um tamanho de divisão e uma direção de previsão utilizando elementos de sintaxe separados. Os elementos de sintaxe separados podem ser individualmente codificados e transmitidos a partir do codificador para o decodificador.
Os elementos de sintaxe separados, como utilizados nessa descrição, se referem geralmente a uma pluralidade de elementos de sintaxe para sinal, de um codificador para um decodificador, uma pluralidade de partes de informação, tal como tamanhos de divisão e direções de previsão. Em contraste, um elemento de sintaxe conjunto se refere a um único elemento de sintaxe que é utilizado para sinalizar uma pluralidade de partes de informação de um codificador para um decodificador. Por exemplo, em contraste com os esquemas de codificação existentes onde um elemento de sintaxe conjunto pode ser utilizado para sinalizar ambos um tamanho de divisão e uma direção de previsão, as técnicas dessa descrição incluem a utilização de um primeiro elemento de sintaxe para sinalizar o tamanho de divisão e um segundo elemento de sintaxe separado para sinalizar a direção de previsão. Em alguns casos, um elemento de sintaxe conjunto pode ser também um elemento de sintaxe separado com relação a outro elemento de sintaxe. Por exemplo, um elemento de sintaxe conjunto utilizado para sinalizar uma primeira direção de previsão e uma segunda direção de previsão pode ser um elemento de sintaxe separado com relação a um elemento de sintaxe sendo utilizado para sinalizar um tamanho de divisão. Como será discutido em maiores detalhes abaixo, os elementos de sintaxe separados podem ser codificados e processados independentemente um do outro. Por exemplo, dois elementos de sintaxe separados podem sofrer dois processo de codificação por entropia diferentes antes de serem transmitidos.
Um esquema de codificação que utiliza elementos de sintaxe separados para sinalização de tamanho de divisão e direção de previsão pode ser mais facilmente estendido para uso com tamanhos de bloco de video maiores em comparação com um esquema de codificação que utiliza os elementos de sintaxe conjuntos. Por exemplo, a introdução de um novo tamanho de bloco de video ou novo tamanho de divisão em um esquema de codificação que utiliza elementos de sintaxe conjuntos pode exigir a introdução de mais elementos de sintaxe novos em comparação com um esquema de codificação que sinaliza separadamente o tamanho de divisão e a direção de previsão como descrito nessa descrição. Adicionalmente, a utilização de elementos de sintaxe separados em comparação com um elemento de sintaxe em conjunto pode resultar em ganhos de eficiência de codificação devido à codificação por entropia aperfeiçoada em alguns casos.
A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de video ilustrativo 10 que pode implementar as técnicas dessa descrição. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que transmite video codificado para um dispositivo de destino 16 através de um canal de comunicação 15. O dispositivo fonte 12 e o dispositivo de destino 16 podem compreender qualquer um dentre uma faixa ampla de dispositivos. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 16 compreendem dispositivos de comunicação sem fio, tal como um aparelho sem fio, chamado de rádiotelefone via satélite ou celular, ou quaisquer dispositivos que possam comunicar informação de video através de um canal de comunicação 15, que pode ou não ser sem fio. As técnicas dessa descrição, no entanto, que se referem aos tipos de bloco de sinalização e tipos de sub- bloco para unidades B a partir de um codificador para um decodificador, não são necessariamente limitadas às aplicações ou configurações sem fio.
No exemplo da figura 1, o dispositivo fonte 12 pode incluir uma fonte de video 20, um codificador de video 22, um modulador/demodulador (modem) 23, e um transmissor 24. O dispositivo de destino 16 pode incluir um receptor 26, um modem 27, um decodificador de video 28 e um dispositivo de exibição 30. De acordo com essa descrição, o codificador de video 22 do dispositivo fonte 12 pode ser configurado para gerar elementos de sintaxe separados para indicar um tamanho de divisão, uma primeira direção de previsão, e uma segunda direção para um bloco de video, e, adicionalmente, para gerar elementos de sintaxe separados para indicar um tamanho de divisão e uma direção de previsão para um sub-bloco. Os elementos de sintaxe separados podem ser codificados e transmitidos individualmente do codificador de video 22 para o decodificador de video 28. 0 decodificador de video 28 pode receber elementos de sintaxe separados indicando a seleção. De acordo, o decodificador de video 28 pode realizar a decodificação de video adequada com base nos elementos de sintaxe recebidos.
O sistema ilustrado 10 da figura 1 é meramente um exemplo. As técnicas de sinalização dessa descrição podem ser realizadas por qualquer dispositivo de codificação que suporte a previsão compensada de movimento bidirecional. O dispositivo fonte 12 e o dispositivo de destino 16 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo fonte 12 gera os dados de video codificados para transmissão para o dispositivo de destino 16. Em alguns casos, os dispositivos 12, 16 podem operar de uma forma substancialmente simétrica de modo que, cada um dos dispositivos 12, 16 inclua componentes de codificação e decodificação de video. Dessa forma, o sistema 10 pode suportar a transmissão de video de uma via ou duas vias, entre os dispositivos de video 12, 16, por exemplo, para sequenciamento de video, reprodução de video, difusão de video ou telefonia de video.
A fonte de video 20 do dispositivo fonte 12 pode incluir um dispositivo de captura de video, tal como uma câmera de video, um arquivo de video contendo video capturado previamente, ou uma alimentação de video de um provedor de conteúdo de video. Como uma alternativa adicional, a fonte de video 20 pode gerar dados com base em gráficos de computador como video fonte, ou uma combinação de video ao vivo, video arquivado, e video gerador por computador. Em alguns casos, se a fonte de video 20 for uma câmera de video, dispositivo fonte 12 e dispositivo de destino 16 podem formar os chamados telefones de câmera ou videotelefones. Em cada caso, o video capturado, pré- capturado ou gerado por computador pode ser codificado por codificador de video 22. A informação de video codificada pode então ser modulada por modem 23 de acordo com um padrão de comunicação, por exemplo, tal como CDMA, OFDM ou outra técnica ou padrão de comunicação e transmitida para o dispositivo de destino 16 através do transmissor 24. O modem 23 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.
O receptor 25 do dispositivo de destino 16 recebe informação através do canal 15, e o modem 27 demodula a informação. A informação comunicada através do canal 15 pode incluir informação definida pelo codificador de video 22, que pode ser utilizada pelo decodificador de video 28 consistente com essa descrição. 0 dispositivo de exibição 30 exibe os dados de video decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal com um tubo de raio cátodo, um dispositivo de cristal liquido (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.
No exemplo da figura 1, o canal de comunicação 15 pode compreender qualquer meio de comunicação com ou sem fio, tal como o espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão fisicas, ou qualquer combinação de midia com ou sem fio. De acordo, o modem 23 e o transmissor 24 podem suportar muitos protocolos sem fio possiveis, protocolos com fio ou protocolos com ou sem fio. 0 canal de comunicação 15 pode formar parte de uma rede com base em pacote, tal como uma rede de área local (LAN) , uma rede de área ampla (WAN), ou uma rede global, tal como a Internet, compreendendo uma interconexão de uma ou mais redes. O canal de comunicação 15 geralmente representa qualquer meio de comunicação adequado, ou coleção de diferentes midias de comunicação, para transmissão de dados de video a partir do dispositivo fonte 12 para o dispositivo de destino 16. 0 canal de comunicação 15 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 dispositivo de destino 16.
O codificador de video 22 e o decodificador de video 28 pode operar de acordo com um padrão de compressão de video, tal como o padrão ITU-T H.265 recém criado. As técnicas dessa descrição, no entanto, não são limitados a qualquer padrão de codificação em particular. Apesar de não ilustrado na figura 1, em alguns aspectos, o codificador de video 22 e o decodificador de video 28 podem, cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos o áudio e o video em uma sequência de dados comum ou sequências de dados separadas. Se aplicável, as unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.233 ou outros protocolos tal como o protocolo de datagrams de usuário (UDP).
O codificador de video 22 e o decodificador de video 28 podem, cada um, ser implementados como um ou mais microprocessadores, processadores de sinal digital (DSPs), ASIC, FPGA, lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Cada codificador de video 22 e decodificador de video 28 pode ser incluido em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) em um dispositivo móvel respectivo, dispositivo de assinante, dispositivo de difusão, servidor ou similar.
Uma sequência de video inclui tipicamente uma série de quadros de video. O codificador de video 20 opera em blocos de video dentro de quadros de video individuais a fim de codificar os dados de video. Em um exemplo, um bloco de video pode corresponder a um macrobloco ou uma divisão de um macrobloco. Os macroblocos são urn tipo de bloco de video definido pelo padrão ITU H.264 e outros padrões. Os macroblocos se referem tipicamente a blocos de dados de 16x16, apesar de o termo também ser comumente utilizado para se referir genericamente a qualquer bloco de video de tamanho NxN. O padrão ITU-T H.264 suporta a intraprevisão em vários tamanhos de bloco, tal como 16x16, 8x8, 4x4 para componentes luma, e 8x8 para componentes croma, além da interprevisão em vários tamanhos e bloco, tal como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 e 4x4 para componentes luma e tamanhos escalonados correspondentes para componentes croma. Nessa descrição, "NxN" se refere às dimensões de pixel do bloco em termos de dimensões vertical e horizontal, por exemplo, pixels de 16x16. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical e 16 pixels em uma direção horizontal. Da mesma forma, um bloco NxN geralmente terá N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro positivo. Os pixels em um bloco podem ser dispostos em fileiras e colunas.
O padrão ITU H.265 emergente define novos termos para blocos de video. Em particular, com ITU H.265, os blocos de video (ou partições dos mesmos) podem ser referidos como "unidades codificadas". Com o padrão ITU-T H.265, as maiores unidades codificadas (LUCs) podem ser divididas em unidades codificadas menores (Cus) de acordo com um esquema de divisão de quadtree, e as diferentes Cus que são definidas no esquema podem ser adicionalmente divididas em unidades de previsão (Pus). As LCUs, Cus e Pus são todos blocos de video dentro do significado dessa descrição. Outros tipos de blocos de video também podem ser utilizados, consistentes com o padrão ITU H.265 ou outros padrões de codificação de video. Dessa forma, a frase "blocos de vídeo" se refere a qualquer tamanho de bloco de video.
Os blocos de video podem ter tamanhos fixos ou variáveis, e podem diferir em tamanho de acordo com um padrão de codificação especificado. Cada quadro de vídeo pode incluir uma pluralidade de fatias. Cada fatia pode incluir uma pluralidade de blocos de vídeo, que podem ser dispostos em divisões, também referidas como sub-blocos. De açodo com o esquema de divisão quadtree referido acima, uma primeira CU de N/2xN/2 pode ser um sub-blocos de uma LCU NxN, uma segunda CU N/4xN/4 também pode ser um sub-bloco da primeira CU. Uma PU N/8xN/8 pode ser um sub-bloco da segunda CU. De forma similar, como um exemplo adicional, os tamanhos de bloco que são inferiores a 16x16 podem ser referidos como partições de um bloco de vídeo de 16x16 ou como sub-blocos do bloco de vídeo de 16x16. Da mesma forma, para um bloco NxN, os tamanhos de bloco inferiores a NxN podem ser referidos como partições ou sub-blocos do bloco NxN. Os blocos de vídeo podem compreender blocos de dados de pixel no domínio de pixel, ou blocos de coeficientes de transformação no domínio de transformação, por exemplo, seguindo a aplicação de uma transformação tal como DCT, uma transformação de inteiro, uma transformação de wavelet, ou uma transformação conceitualmente similar aos dados de bloco de vídeo residuais representando as diferenças de pixel entre os blocos de vídeo codificados e os blocos de vídeo de previsão. Em alguns casos, um bloco de vídeo pode compreender blocos de coeficientes de transformação quantizados no domínio de transformação.
Blocos de vídeo menores podem fornecer melhor resolução e podem ser utilizados para localizações de um quadro de vídeo que incluem níveis altos de detalhamento. Blocos de vídeo maiores podem fornecer maior eficiência de codificação, e podem ser utilizados para localizações de um quadro de video que incluem um baixo nivel de detalhamento. Uma fatia pode ser considerada uma pluralidade de blocos e/ou sub-blocos de video. Cada fatia pode ser uma série decodificável independentemente de blocos de video de um quadro de video. Alternativamente, os quadros propriamente ditos podem ser uma série decodificável de blocos de video, ou outras partes de um quadro podem ser definidas como uma série decodificável de blocos de video. 0 termo "série de blocos de video" pode se referir a qualquer parte independentemente decodificável de um quadro de video tal como todo o quadro, uma fatia de um quadro, um grupo de imagens (GOP) também referido como uma sequência, ou outra unidade independentemente decodificável definida de acordo com as técnicas de codificação aplicáveis.
Seguindo a codificação de previsão interna, e seguindo quaisquer transformações (tal como uma transformação de inteiro 4x4 ou 8x8 ou uma DCT), a quantização pode ser realizada. A quantização se refere geralmente a um processo no qual os coeficientes são quantizados para reduzir possivelmente a quantidade de dados utilizada para representar os coeficientes. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Depois da quantização, a codificação por entropia pode ser realizada, por exemplo, de acordo com a codificação de comprimento variável adaptativa de conteúdo (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), ou outra metodologia de codificação por entropia.
As técnicas dessa descrição são especificamente aplicáveis aos blocos de video B que fazem uso da previsão bidirecional, que pode incluir a previsão bidirecional ponderada e a previsão bidirecional não ponderada. Nessa descrição, o termo "unidades B" será utilizado para fazer referência geralmente a qualquer tipo de unidades B, que podem incluir quadros B, fatias B ou possivelmente outras unidades de video que incluem pelo menos alguns blocos de video B.
Como mencionado acima, a previsão bidirecional é a previsão chamada de "blocos de video B" com base em duas listas diferentes de dados. Os blocos de video B utilizam duas listas de imagens de referência previamente codificadas, lista 0 e lista 1. Essas duas listas podem conter, cada uma, imagens codificadas no passado e/ou no futuro em ordem temporal. Os blocos de video B podem ser previstos em uma dentre várias formas; previsão compensada por movimento de uma imagem de referência da lista 0, previsão compensada por movimento de uma imagem de referência de lista 1 ou prevista compensada por movimento da combinação de ambas as imagens de referência da lista 0 e da lista 1. Para se obter a combinação de ambas as imagens de referência de lista 0 e lista 1, duas áreas de referência de movimento compensado são obtidas a partir da imagem de referência da lista 0 e da lista 1, respectivamente.
Os blocos de video B podem ser previstos a partir de duas listas de dados de dois quadros anteriores, duas listas de dados de quadros subsequentes, ou uma lista de dados de um quadro anterior e uma de um quadro subsequente. Apesar de a lista 0 e a lista 1 não correlacionarem necessariamente com uma direção temporal particular, a seleção de se realiza o movimento compensado pela lista 0, lista 1 ou ambas as listas 0 e 1 é comumente referido como direção de previsão. Em contraste com os blocos de video B, os blocos de video P são previstos com base em uma lista, que pode corresponder a um quadro de previsão, por exemplo, um quadro anterior ou um quadro subsequente. Os quadros B e os quadros P podem ser mais geralmente referidos como unidades P e unidades B. As unidades P e as unidades B também podem ser realizadas em unidades menores, tal como fatias de quadros ou partes de quadros. As unidades B podem incluir blocos de video B, blocos de video P ou blocos de video I. As unidades P podem incluir blocos de video P ou blocos de video I. As unidades I podem incluir apenas os blocos de video I.
Os blocos de video B utilizando previsão bidirecional (isso é, ambas as listas 0 e 1) podem ser codificados utilizando-se previsão bidirecional ponderada ou previsão bidirecional não ponderada. A previsão bidirecional ponderada se refere à previsão bidirecional que permite fatores de ponderação designados para as duas listas diferentes. Cada lista pode compreender um conjunto de dados associados com um quadro de previsão ou outra série de blocos de video. Na previsão bidirecional ponderada, uma lista pode ser ponderada mais pesadamente na geração de dados de previsão. Se uma das listas possuir dados que são mais similares ao bloco de video sendo codificado, por exemplo, então essa lista pode ser ponderada mais pesadamente do que a outra lista.
Para diferentes tipos de previsão bidirecional ponderada de acordo com ITU-T H.264, por exemplo, o codificador de video 22 e o decodificador de video 28 podem, geralmente, suportar três tipos diferentes de modos de previsão. Um primeiro modo de previsão, referido como "previsão ponderada padrão" se refere à previsão ponderada na qual os fatores de ponderação associados com as duas ou mais listas diferentes são pré-definidos por alguma configuração padrão. A previsão ponderada padrão, em alguns casos, pode designar ponderações iguais para cada uma das listas, apesar de a ponderação desigual também poder ser pré-definida para um modo de previsão de ponderação padrão.
Um segundo modo de previsão, referido como "previsão ponderada implicita" se refere à previsão ponderada na qual os fatores de ponderação associados com as duas ou mais listas diferentes são definidos com base em fatores mais implicitos associados com os dados. Por exemplo, os fatores de ponderação implicita podem ser definidos pelas posições temporais relativas dos dados em duas listas diferentes com relação aos dados sendo codificados de forma prevista. Em ambas a previsão ponderada padrão e a ponderada implicita, os fatores de ponderação não são incluidos na sequência de bits. Ao invés disso, o decodificador de video 28 pode ser programado para conhecer os fatores de ponderação (de forma padrão) ou podem ser programados para conhecer como se derivar os fatores de ponderação (de forma implicita).
Um terceiro modo de previsão, referido com "previsão ponderada explicita" se refere a uma previsão ponderada na qual os fatores de ponderação são dinamicamente definidos como parte do processo de codificação e codificados em sequência de bits. A previsão ponderada explicita é diferente da previsão ponderada padrão e a previsão ponderada implicita nesse aspecto, por exemplo, a previsão ponderada explicita resulta em fatores de ponderação que são codificados como parte da sequência de bits.
Esses três modos de previsão bidirecional ponderados são meramente apresentados para fornecer o contexto para técnicas de sinalização descritas nessa descrição. É contemplado, no entanto, que as técnicas dessa descrição podem ser implementadas também em conjunto com previsão ou modos bidirecionais não ponderados de previsão bidirecional ponderada além do que foi descrito. Por exemplo, é contemplado que as técnicas dessa descrição podem ser implementadas utilizando-se todos os vários modos de previsão bidirecional no padrão H.265.
O codificador de video 22 pode selecionar um tamanho de bloco de video e um tamanho de divisão que resulte em métricas de distorção de taxa favoráveis. De acordo com um aspecto dessa descrição, o codificador de video 22 pode determinar uma direção de previsão para uma divisão do bloco de video. Se a previsão bidirecional for escolhida, o codificador de video 22 pode determinar adicionalmente um dos modos de previsão bidirecional ponderada acima para a divisão do bloco de video. Para selecionar os tamanhos de bloco de video que resultam em métricas de distorção de taxa favoráveis, as métricas de distorção de taxa podem ser analisadas para blocos de video grandes (por exemplo, 32x32, 64x64, ou maiores) e blocos de video pequenos (por exemplo, 16x16 ou menores) com esquemas de divisão diferentes (isso é, tamanhos de divisão diferentes). Como será ilustrado adicionalmente abaixo, um bloco de video NxN pode ser dividido em uma única divisão NxN, duas divisões N/2xN, duas divisões NxN/2, ou quatro divisões N/2xN/2. Em alguns casos, uma divisão pode ser adicionalmente dividida.
Um codificador pode comparar as métricas de distorção de taxa entre blocos de video de tamanhos diferentes e esquemas de divisão, tal como blocos de video 16x16 com múltiplos esquemas de divisão, blocos de video de 32x32 com múltiplos esquemas de divisão, e blocos de video de 64x64 com múltiplos esquemas de divisão, para uma série codificada de blocos de video, tal como um quadro ou uma fatia. O codificador pode então selecionar o tamanho de bloco de video e o esquema de divisão que resulte na melhor distorção de taxa e codificar o bloco de video utilizando o tamanho de bloco de video selecionado, isso é, o tamanho de bloco de video com a melhor distorção de taxa.
A seleção pode ser baseada na codificação do quadro ou fatia em três ou mais passos, por exemplo um primeiro passo utilizando blocos de video de 16x16 pixels, um segundo passo utilizando blocos de video de 32x32 pixels, e um terceiro passo utilizando blocos de video de 64x64 pixels, e comparando as métricas de distorção de taxa para cada passo. Dessa forma, um codificador pode aperfeiçoar a distorção de taxa pela variação do tamanho de bloco de video e esquema de divisão e seleção de tamanho de bloco de video e esquema de divisão que resulte na melhor distorção de taxa ou distorção de taxa ideal para uma determinada série de blocos de video, tal como uma fatia ou quadro. 0 codificador pode transmitir adicionalmente a informação de sintaxe para a série de blocos de video, por exemplo, como parte de um cabeçalho de quadro ou um cabeçalho de fatia, que identifica o tamanho dos blocos de video utilizados na série de blocos de video. Em um cabeçalho de bloco, o codificador pode transmitir adicionalmente elementos de sintaxe separados que identificam o esquema de divisão utilizado e a direção de previsão para cada divisão de bloco. SE um bloco for dividido em 4 sub-blocos, o codificador pode transmitir em um cabeçalho de sub-bloco elementos de sintaxe separados que identificam o esquema de divisão para o sub-bloco e uma direção de previsão.
Estendendo-se esses conceitos para a terminologia emergente para H.265, a seleção pode ser baseada na codificação de quadro ou fatia em três ou mais passos, por exemplo, um primeiro passo utilizando LCUs de 16x16, um segundo passo utilizando LCUs de 32x32, e um terceiro passo utilizando LUCs de 64x64, e comparando as métricas de distorção de taxa para cada passo. Dessa forma, um codificador pode aperfeiçoar a distorção de taxa pela variação do tamanho de LCU e esquema de divisão e seleção de tamanho de LCU e esquema de divisão que resulta na melhor distorção de taxa ou distorção de taxa ideal para uma determinada série de blocos de video, tal como uma fatia ou quadro. 0 codificador pode transmitir adicionalmente a informação de sintaxe para a série de blocos de video, por exemplo, como parte de um cabeçalho de quadro ou um cabeçalho de fatia, que identifica o tamanho da LCU utilizado na série de blocos de video. Em um cabeçalho LCU, o codificador pode transmitir adicionalmente elementos de sintaxe separados que identificam o esquema de divisão utilizado para a LCU e a direção de previsão para cada divisão da LCU. Se uma LCU for dividida em 4 Cus, o codificador pode transmitir em um cabeçalho CU elementos de sintaxe separados que identificam o esquema de divisão para a CU e uma direção de previsão.
Para alguns quadros ou fatias de video, os blocos de video grandes podem apresentar as economias de taxa de bit substanciais e produzir dessa forma os melhores resultados de distorção de taxa, com uma distorção relativamente baixa. Para outros quadros ou fatias de video, no entanto, blocos de video menores podem apresentar menos distorção, superando a taxa de bits na análise de custo de distorção de taxa. Dessa forma, em casos diferentes, 64x64, 32x32 ou 16x16 podem ser adequados para os quadros de video ou fatias de video diferentes, por exemplo, dependendo do conteúdo e complexidade de video. De forma similar, os esquemas de divisão diferentes também podem ser adequados para diferentes blocos de video dependendo do conteúdo de video e sua complexidade.
Dois ou mais elementos de sintaxe separados podem ser gerados e codificados em uma sequência de bits a fim de identificar um tamanho de divisão para o bloco de video e uma ou mais direções de previsão para as divisões. O dispositivo 12 transmite dois ou mais elementos de sintaxe separados para o decodificador 28. O decodificador 28 pode decodificar e interpretar os elementos de sintaxe, e com base nos elementos de sintaxe, o decodificador 28 pode reconstruir o bloco de video.
A figura 2 é um diagrama em bloco ilustrando um exemplo de um codificador de video 50 que pode realizar as técnicas consistentes com essa descrição. O codificador de video 50 pode corresponder ao codificador de video 22 do dispositivo fonte 12, ou um codificador de video de um dispositivo diferente. O codificador de video 50 pode realizar intra ou intercodificação de blocos dentro dos quadros de video, apesar de os componentes intracodificação não serem ilustrados na figura 2 por motivos de facilidade de ilustração. A intracodificação se baseia em previsão espacial para redução ou remoção de redundância espacial em video dentro de um determinado quadro de video. A intercodificação se baseia na previsão temporal para redução ou remoção de redundância temporal em video dentro dos quadros adjacentes de uma sequência de video. Intramodo (modo I) pode se referir ao modo de compressão com base espaço e intermodos tal como previsão (modo P) ou bidirecional (modo B) podem se referir aos modos de compressão com base em tempo.
Como ilustrado na figura 2, o codificador de video 50 recebe um bloco de video atual dentro de um quadro de video ou fatia a ser codificado. No exemplo da figura 2, o codificador de video 50 inclui a unidade de previsão 31, que inclui a unidade de estimativa de movimento 32 e a unidade de compensação de movimento 35, uma memória 34, um somador 48, uma unidade de transformação 38, uma unidade de quantização 40 e uma unidade de codificação por entropia 46. Para a reconstrução de bloco de video, o codificador de video 50 também inclui uma unidade de quantização invertida 42, uma unidade de transformação invertida 44, e um somador 51. 0 codificador de video 50 também pode incluir um filtro de desbloqueio (não ilustrado) para filtrar os limites de bloco para remover os artefatos de bloqueio do video reconstruído. Se desejado, o filtro de desbloqueio filtrará tipicamente a saida do somador 51.
Durante o processo de codificação, o codificador de video 50 recebe um bloco de video para ser codificado, e a unidade de estimativa de movimento 32 a unidade de compensação de movimento 35 realizam a codificação interprevisivel. A unidade de estimativa de movimento 32 e a unidade de compensação de movimento 35 podem ser altamente integradas dentro da unidade de previsão 31, mas são ilustradas separadamente para fins de ilustração. A estimativa de movimento é tipicamente considerada o processo de geração de vetores de movimento, que estimam o movimento dos blocos de video. Um vetor de movimento, por exemplo, pode indicar o deslocamento de um bloco de previsão dentro de um quadro de previsão (ou outra série de blocos de video) com relação ao bloco atual sendo codificado dentro do quadro atual (ou outra série de blocos de video). A compensação de movimento é tipicamente considerada o processo de recolhimento ou geração de bloco de previsão com base no vetor de movimento determinado pela estimativa de movimento. Novamente, a unidade de estimativa de movimento 32 e a unidade de compensação de movimento 35 podem ser funcionalmente integradas. Para fins de demonstração, as técnicas descritas nessa descrição são descritas como sendo realizadas pela unidade de compensação de movimento 35, mas mais geralmente, podem ser realizadas por qualquer parte da unidade de previsão 31.
A unidade de estimativa de movimento 32 seleciona o vetor de movimento adequado para o bloco de video a ser codificado pela comparação do bloco de video com os blocos de video de uma ou mais séries de previsão dos blocos de video (por exemplo, um quadro anterior e/ou futuro em termos de tempo ou temporalmente). A unidade de estimativa de movimento 32 pode, como um exemplo, selecionar um vetor de movimento para um quadro B de várias formas. Em uma forma, a unidade de estimativa de movimento 32 pode selecionar um quadro anterior ou futuro de um primeiro conjunto de quadros (referidos como lista 0) e determinar um vetor de movimento utilizando apenas esse quadro anterior ou posterior da lista 0. Alternativamente, a unidade de estimativa de movimento 32 pode selecionar um quadro anterior ou posterior de um segundo conjunto de quadros (referidos como lista 1) e determinar um vetor de movimento apenas utilizando esse quadro anterior ou posterior da lista 1. Em outro exemplo, a unidade de estimativa de movimento 32 pode selecionar um primeiro quadro a partir da lista 0 e um segundo quadro a partir da lista 1 e selecionar um ou mais vetores de movimento do primeiro quadro da lista 0 e do segundo quadro da lista 1. Essa terceira forma de previsão pode ser referida como estimativa de movimento de previsão dupla. O vetor de movimento selecionado para qualquer lista determinada pode apontar para um bloco de video de previsão que é mais similar ao bloco de video sendo codificado, por exemplo, como definido por uma métrica tal como a soma da diferença absoluta (SAD) ou soma da diferença quadrada (SSD) dos valores de pixel do bloco de previsão com relação aos valores de pixel do bloco sendo codificado.
Em um exemplo, se a unidade de estimativa 32 selecionar a estimativa de movimento bidirecional para um bloco de video, três algoritmos de previsão dupla compensados por movimento ou modos podem ser utilizados para prever um quadro B ou partes do mesmo, tal como blocos de video, macro blocos, LCUs, CUs e PUs ou qualquer outra parte contigua e/ou discreta de um quadro B. Um primeiro algoritmo ou modo de previsão dupla de movimento compensado que seja comumente referido como uma previsão ponderada padrão, pode envolver a aplicação de ponderações padrão a cada bloco de video identificado do primeiro quadro da lista 0 e do segundo quadro da lista 1. As ponderações padrão podem ser programadas de acordo com o padrão, e são frequentemente selecionadas para serem iguais à previsão ponderada padrão. Os blocos ponderados dos primeiro e segundo quadros são então adicionados e divididos pelo número total de quadros utilizados para prever o quadro B, por exemplo, dois nesse caso.
As unidades B utilizam duas listas de imagens de referência previamente codificadas, lista 0 e lista 1. Essas duas listas podem conter, cada uma, imagens codificadas passadas e/ou futuras em ordem temporal. Os blocos em uma unidade B podem ser previstos em uma dentre várias formas: previsão de movimento compensado a partir de uma imagem de referência de lista 0, previsão de movimento compensado a partir de uma imagem de referência de lista 1, ou previsão de movimento compensado a partir da combinação de imagens de referência de lista 0 e lista 1. Para se obter a combinação de ambas as imagens de referência de lista 0 e lista 1, duas áreas de referência de movimento compensado são obtidas a partir da imagem de referência de lista 0 e lista 1, respectivamente. Sua combinação será utilizada para prever o bloco atual.
Como mencionado, as unidades B podem permitir três tipos de previsão ponderada. Por motivos de simplicidade, apenas a previsão de avanço na previsão unidirecional é ilustrada abaixo, apesar de a previsão retroativa também poder ser utilizada. A previsão de ponderação padrão pode ser definida pelas seguintes equações para a previsão unidirecional e previsão bidirecional, respectivamente. Previsão unidirecional: pred(i,j)=pred0(i,j) Previsão bidirecional: pred(i,j) = (pred0(i,j) + predl(i,j) + 1) >> 1 onde pred0(i,j) e predl(i,j) são dados de previsão da lista 0 e lista 1.
A previsão de ponderação implicita pode ser definida pelas equações a seguir para previsão unidirecional e previsão bidirecional, respectivamente. Previsão unidirecional: pred(i,j)=pred0(i,j) Previsão bidirecional: pred(i,j) = (pred0(i,j) * w0 + predl(i,j) * wl + 32) >> 6
Nesse caso, cada previsão é escalonada por um fator de ponderação WO ou wl, onde w0 e wl são calculados com base na posição temporal relativa das imagens de referência da lista 0 e lista 1.
A previsão ponderada explicita pode ser definida pelas equações a seguir para previsão unidirecional e previsão bidirecional, respectivamente. Previsão unidirecional: pred(i,j) = (pred0(i,j) * w0 + 2r-1) >> r + ol Previsão bidirecional: pred(i,j) = (pred0(i,j) * w0 + predl (i,j) * wl + 2r) » (r + 1) + ( (ol + o2 + 1) » D
Nesse caso, os fatores de ponderação são determinados pelo codificador e transmitidos no cabeçalho de fatia, e ol e o2 são desvios de imagem para as imagens de referência de lista 0 e lista 1, respectivamente.
A Tabela 1 abaixo ilustra 23 tipos de blocos diferentes (rotulados 0 a 22) para codificação de um bloco de video 16x16 de uma unidade B, apesar de o mesmo conceito poder ser estendido para um bloco de video NxN. A coluna rotulada "tipo de bloco" ilustra uma anotação abreviada separada do número de tipo de bloco para identificação do tipo de bloco. A coluna rotulada "tamanho de divisão" identifica como o bloco de video é dividido (D-16xl6, 16x16, 8x16, 16x8, ou 8x8). Para os tipos de bloco que utilizam o modo direto (D-16xl6), nenhum vetor de movimento, e, dessa forma, nenhuma direção de previsão é sinalizado do codificador para o decodificador visto que o vetor de movimento é determinado no decodificador com base nos blocos de vídeo vizinhos. Para os tipos de bloco que incluem uma divisão (isso é, tamanhos de partição de 16x16), a coluna rotulada "Previsão DirO" identifica a direção de previsão para uma parição. Para tipos de bloco que incluem duas partições (isso é, tamanhos de partição de 8x16 e 16x8), a coluna rotulada "Previsão DirO" identifica uma direção de previsão para a primeira partição, e a coluna rotulada "Previsão Dirl" identifica uma direção de previsão para a segunda partição. Como discutido acima, as direções de previsão incluem a utilização de apenas a lista 0 (LO), apenas a lista 1 (LO), e a estimativa de movimento de previsão dupla (Bi) utilizando ambas a lista 0 e a lista 1.
Figure img0001
Figure img0002
Figure img0003
Tabela 1
Ao invés de cada um dos 23 tipos de bloco acima possuirem um único elemento de sintaxe (isso é, 23 elementos de sintaxe diferentes), as técnicas da presente descrição incluem a utilização de elementos de sintaxe separados para cada tamanho de partição, direção de previsão 0, e direção de previsão 1. De acordo, os 23 tipos de bloco acima podem ser representados como uma combinação de 5 tamanhos de partição (D-16xl6, 16x16, 8x16, 16x8 e 8x8) e 3 direções de previsão (LO, L1 e Bi). Dessa forma, utilizando-se a opção 12 como um exemplo, para um bloco de video com partição de 16x8 onde a primeira partição é prevista utilizando-se a lista 0 e a segunda partição é prevista utilizando-se ambas a lista 0 e a lista 1, três elementos de sintaxe separados podem ser gerados. O primeiro elemento de sintaxe pode identificar a partição 16x8; o segundo elemento de sintaxe pode identificar a lista 0 (LO) e o terceiro elemento de sintaxe pode identificar a previsão bidirecional (Bi).
O tipo de bloco 22 da Tabela 1 corresponde ao bloco de video 16x16 sendo dividido em 4 sub-blocos de 8x8, caso no qual cada sub-bloco pode utilizar seu próprio esquema de partição. Portanto, em resposta ao recebimento de um elemento de sintaxe indicando a partição 8x8 para um bloco de video de 16x16, um codificador de video saberá procurar por sintaxe adicional em um cabeçalho de sub-bloco para indicar um tipo de sub-bloco. Como com os exemplos de tipo de bloco acima, o tipo de sub-bloco pode ser sinalizado utilizando-se dois ou mais elementos de sintaxe separados. Para um sub-bloco de 8x8, indicando um tamanho de partição e direção de previsão para as partições do sub- bloco, um primeiro elemento de sintaxe pode identificar o tamanho de partição e um segundo elemento de sintaxe pode identificar a direção de previsão. A Tabela 2 abaixo ilustra um exemplo de tipos de sub-bloco (rotulados 0 a 13) que podem ser utilizados para um sub-bloco de 8x8. A coluna rotulada "No. de tipo de sub-bloco" fornece um número para cada tipo de sub-bloco, enquanto a coluna rotulada "tipo de sub-bloco" fornece uma anotação abreviada para o tipo de sub-bloco. A coluna rotulada "tamanho de divisão" identifica um esquema de partição para o sub-bloco, e a coluna rotulada "Dir de previsão" identifica uma direção de previsão para as partições do sub-bloco.
Figure img0004
Figure img0005
Tabela 2
Em algumas implementações, como no exemplo da Tabela 2, ambas as partições 8x4 do sub-bloco podem utilizar a mesma direção de previsão. Por exemplo, ambas as partições do sub-bloco tipo 4 da Tabela 2 possuem a mesma direção de previsão (LO). Em outras implementações, no entanto, partições diferentes de um sub-bloco podem possuir, cada uma, uma direção de previsão singular, similar à Tabela 1, mas com partições menores.
Um bloco de video pode ter múltiplos niveis de partição. Por exemplo, uma fatia ou quadro pode conter um elemento de sintaxe no cabeçalho de fatia ou cabeçalho de quadro indicando que a fatia ou quadro possui um tamanho LCU de 64x64. Cada LCU, sinalizada em um cabeçalho LCU, pode ter elementos de sintaxe separados indicando um tamanho de partição e uma ou duas direções de previsão para partições da LCU, ou o cabeçalho LCU pode ter um elemento de sintaxe indicando que a LCU é dividida em 4 CUs de 32x32. Cada CU de 32x32, sinalizada em um cabeçalho CU, pode então possuir elementos de sintaxe separados indicando um tamanho de partição e uma ou duas direções de previsão das partições, ou pode ter um elemento de sintaxe indicando que a CU 32x32 é dividida adicionalmente em 4 CUs de 16x16. Da mesma forma, cada cabeçalho CU de 16x16 pode ter elementos de sintaxe separados indicando um tamanho de partição e uma ou mais direções de previsão ou um elemento de sintaxe indicando a divisão adicional.
Como com os tipos de bloco discutidos na Tabela 1, os tipos de sub-bloco da Tabela 2 podem ser sinalizados utilizando-se elementos de sintaxe separados. Ao invés de cada um dos 13 tipos de bloco acima possuírem um único elemento de sintaxe (isso é, 13 elementos de sintaxe diferentes), as técnicas da presente descrição incluem o uso de elementos de sintaxe separados para cada tamanho de partição e direção de previsão. De acordo, os 13 tipos de bloco acima podem ser representados como uma combinação de 5 tamanhos de parição (D-8x8, 8x8, 4x8, 8x4 e 4x4) e as 3 direções de previsão (LO, Ll, Bi). Dessa forma, utilizando a opção 7 como um exemplo, para um sub-bloco de video com 4x8 partições onde as partições devem ser previstas utilizando-se a lista 1, dois elementos de sintaxe separados podem ser gerados. O primeiro elemento de sintaxe pode identificar a partição de 4x8, e o segundo elemento de sintaxe pode identificar a lista 1 (Ll).
Uma vez que os dados de previsão desejados são identificados pela unidade de compensação de movimento 35, como descrito aqui, o codificador de video 50 forma um bloco de video residual pela subtração dos dados de previsão do bloco de video original sendo codificado. O somador 48 representa o componente ou componentes que realizam essa operação de subtração. A unidade de transformação 38 aplica uma transformação, tal como DCT ou uma transformação conceitualmente similar, ao bloco residual, produzindo um bloco de video compreendendo os coeficientes de bloco de transformação residual. A unidade de transformação 38, por exemplo, pode realizar outras transformações, tal com as definidas pelo padrão de codificação, que são conceitualmente similares à DCT. As transformações de wavelet, as transformações de inteiro, as transformações de sub-banda ou outros tipos de transformações também podem ser utilizadas. Em qualquer caso, a unidade de transformação 38 aplica a transformação ao bloco residual, produzindo um bloco de coeficientes de transformação residual. A transformação pode converter a informação residual de um domínio de pixel em um domínio de frequência.
A unidade de quantização 40 quantiza os coeficientes de transformação residual para reduzir ainda mais a taxa de bit. Depois da quantização, a unidade de codificação por entropia 46 codifica por entropia os coeficientes de transformação quantizados. A unidade de codificação por entropia 46 codifica por entropia adicionalmente os elementos de sintaxe gerados pela unidade de compensação de movimento 35. Por exemplo, a unidade de codificação por entropia 46 pode realizar CAVLC, CABAC, ou qualquer outra metodologia de codificação por entropia. Visto que os elementos de sintaxe gerados pela unidade de compensação de movimento 35 são separados, cada elemento de sintaxe pode sofrer um processo de codificação por entropia diferente. Por exemplo, a unidade de codificação por entropia 46 pode manter as estatísticas pela aplicação de CAVLC aos elementos de sintaxe para tamanhos de partição e estatísticas separadas para aplicação de CAVLC aos elementos de sintaxe para direções de previsão. Depois da codificação por entropia pela unidade de codificação por entropia 46, o vídeo codificado pode ser transmitido para outro dispositivo ou arquivado para transmissão ou recuperação posterior. A sequência de bits codificada pode incluir blocos residuais codificados por entropia, vetores de movimento para tais locos, e outra sintaxe tal como a sintaxe descrita aqui.
A unidade de quantização invertida 42 e a unidade de transformação invertida 44 aplicam a quantização invertida e transformação invertida, respectivamente, para reconstruir o bloco residual no dominio de pixel, por exemplo, para uso futuro como bloco de referência da forma descrita acima. O somador 51 adiciona o bloco residual reconstruído ao bloco de previsão de movimento compensado produzido pela unidade de movimento compensado 35 para produzir um bloco de video reconstruído para armazenamento na memória 34. O bloco de video reconstruído pode ser utilizado pela unidade de estimativa de movimento 32 e unidade de compensação de movimento 35 como um bloco de referência para intercodificar um bloco de um quadro de video subsequente.
A figura 3 é um diagrama em bloco ilustrando um exemplo da unidade de compensação de movimento 35 da figura 2 em maiores detalhes. Como discutido acima, a unidade de compensação de movimento 35 pode ser altamente integrada com a unidade de estimativa de movimento 32 dentro da unidade de previsão 31. Portanto, deve-se compreender que a divisão da funcionalidade entre unidade de estimativa de movimento 32 e unidade de compensação de movimento 35 nessa descrição é para fins de explicação apenas. Como ilustrado no exemplo da figura 3, a unidade de compensação de movimento 35 acopla a memória 34, que armazena primeiro e segundo conjuntos de unidades de referência ou quadros de referência como a lista 0 52a e lista 1 52b. Adicionalmente, a memória 34 pode armazenar os dados de video atuais 53 codificados. A memória 34 pode compreender uma estrutura de memória compartilhada, ou possivelmente várias memórias diferentes, unidades de armazenamento, armazenadores ou outros tipos de armazenamento que facilite o armazenamento de quaisquer dados discutidos aqui. A lista 0 52a e a lista 1 52b são dados associados com duas unidades de previsão diferentes, por exemplo, dados de dois quadros diferentes ou fatias ou macroblocos, de acordo com a previsão bidirecional. Novamente, a previsão bidirecional não é necessariamente limitada a quaisquer direções de previsão, e, dessa forma a lista 0 52a e a lista 1 52b podem armazenar dados de dois quadros anteriores ou fatias, dois quadros ou fatias subsequentes, ou um quadro anterior ou fatia e um quadro ou fatia subsequente. Adicionalmente, em alguns casos, a lista 0 52a e/ou a lista 1 52b podem, cada uma, incluir dados associados com múltiplos quadros, fatias, ou blocos de video. A lista 0 52a e/ou lista 1 52b são simplesmente dois conjuntos diferentes de possíveis dados de previsão, e cada lista pode incluir um quadro ou fatia, ou vários quadros, fatias ou blocos de video em qualquer direção relativa ao bloco de video atual sendo codificado.
Como ilustrado na figura 3, a unidade de compensação de movimento 35 inclui uma unidade de previsão ponderada padrão 54, uma unidade de previsão ponderada implicita 56, e uma unidade de previsão ponderada explicita 58 para determinação de um tipo de previsão bidirecional a ser utilizada para codificação de uma partição de um bloco de video. A unidade de compensação de movimento 35 inclui adicionalmente uma unidade de previsão de lista 0 60 e uma unidade de previsão de lista 1 62 para determinação de se a previsão de avanço (lista 0, por exemplo), ou a previsão de retrocesso (lista 1, por exemplo) devem ser utilizadas para codificação de um bloco de video. Como mencionado anteriormente, a previsão bidirecional pode não ser limitada a direções temporais especificas. Portanto, enquanto os termos avanço e retrocesso quando da discussão de previsão ainda são utilizados de forma comum para fazer referência a duas listas diferentes, as duas listas não possuem necessariamente qualquer direção temporal especifica. As unidades 54, 56 e 58 podem realizar respectivamente a previsão ponderada padrão, a previsão ponderada implicita e a previsão ponderada explicita como descrito aqui. A unidade de análise de distorção de taxa (R-D) 64 pode selecionar um dentre os dados de previsão ponderada dentre essas possibilidades ou pode selecionar um dentre os dados de previsão da lista 0 ou dados de previsão de lista 1, e pode implementar técnicas dessa descrição para facilitar o processo de seleção.
A unidade de compensação de movimento 35 também pode incluir uma unidade de arredondamento que faz com que uma ou mais das unidades 54, 56, 58, 60 e 62 gere versões arredondadas e não arredondadas dos dados de previsão ponderada respectivos e uma unidade de cálculo de desvio, que calcula o desvio como uma diferença entre uma média dos valores de bloco de video de um bloco sendo codificado e uma média de valores de bloco de video do bloco de previsão. Para fins de simplicidade, a unidade de arredondamento e a unidade de desvio não são ilustradas na figura 3.
A unidade de análise R-D 64 pode analisar os diferentes dados de previsão das unidades 54, 56, 58, 60 e 62 e pode selecionar os dados de previsão que geram os melhores resultados em termos de qualidade ou em termos de taxa e distorção. Dependendo de várias preferências de implementação, a unidade de análise R-D pode ser configurada para equilibrar os interesses da taxa de codificação (isso é, o número de bits) e nivel de qualidade de imagem. A unidade de análise R-D 64 envia os dados de previsão selecionados, que podem ser subtraidos do bloco de video sendo codificado através do somador 48 (figura 2).
Como discutido acima, em adição à análise de que tipo de dados de previsão gera os melhores resultados, a unidade de análise R-D 64 também pode analisar qual tamanho de unidade codificada e que tipo de partição para a unidade codificada gera os melhores resultados.
Elementos de sintaxe podem ser utilizados para informar um decodificador sobre a forma ou método que a unidade de compensação de movimento 35 utilizou para codificar os dados, e, dessa forma, a forma e método que o decodificador deve utilizar para gerar os dados de previsão ponderada. De acordo com a presente descrição, os elementos de sintaxe podem incluir elementos de sintaxe separados para sinalizar um tamanho de partição e uma direção de previsão. Se a previsão bidirecional for selecionada, os elementos de sintaxe, por exemplo, podem indicar adicionalmente se a previsão ponderada padrão, implícita ou explicita deve ser utilizada. Se a previsão ponderada explicita for utilizada, os elementos de sintaxe podem identificar adicionalmente os fatores de ponderação e o desvio, que novamente podem ser fatores ponderados e desvio associados com a previsão ponderada explicita, ou podem ser fatores ponderados que foram na verdade definidos pela unidade de previsão ponderada padrão 54 ou unidade de previsão ponderada implícita 56 com a adição de desvio da unidade de cálculo de desvio 62.
A figura 4 é um diagrama em bloco ilustrando um decodificador de video ilustrativo 70, que pode realizar as técnicas de decodificação alternada para as técnicas de codificação descritas acima. 0 decodificador de video 70 pode incluir uma unidade de decodificação por entropia 72, uma unidade de previsão 75, uma unidade de quantização invertida 76, uma unidade de transformação invertida 78, uma memória 74 e um somador 79. A unidade de previsão 7 5 pode incluir uma unidade de compensação de movimento (MC) 88, além dos componentes de previsão espacial, que não são ilustrados por motivos de simplicidade e facilidade de ilustração.
O decodificador de video 70 pode receber dados de video codificados, e dois ou mais elementos de sintaxe separados que indicam um tamanho de partição e uma direção de previsão. Com base nos dois ou mais elementos de sintaxe separados, a unidade MC 8 6 da unidade de previsão 7 5 pode gerar dados de previsão ponderados que dependem de duas ou mais listas de dados, como descrito aqui. O decodificador de video 70 pode decodificar os dados de video utilizando os dados de previsão ponderados, por exemplo, pela invocação de somador 79 para adicionar os dados de previsão ponderada (por exemplo, um bloco de previsão) para dados residuais (por exemplo, um bloco residual).
Em geral, a unidade de decodificação por entropia 72 recebe uma sequência de bits codificada e decodifica por entropia a sequência de bits para gerar os coeficientes quantizados, informação de movimento e outros elementos de sintaxe. De acordo com as técnicas dessa descrição, os outros elementos de sintaxe podem incluir dois ou mais elementos de sintaxe separados sinalizando um tamanho de partição e uma direção de previsão. A informação de movimento (por exemplo, vetores de movimento) e outra sintaxe são enviadas para a unidade de previsão 75 para uso na geração de dados de previsão. A unidade de previsão 75 realiza a previsão bidirecional consistente com essa descrição, e implementando possivelmente o padrão, a previsão ponderada implicita ou explicita de acordo com os elementos de sintaxe recebidos. Os elementos de sintaxe podem identificar o tipo de previsão ponderada que deve ser utilizada, coeficientes e desvios se a previsão ponderada explicita for utilizada, e como discutido previamente, pode incluir dois ou mais elementos de sintaxe separados identificando um tamanho de partição e uma direção de previsão.
Os coeficientes quantizados são enviados a partir da unidade de decodificação por entropia 72 para a unidade de quantização invertida 76, que realiza a quantização invertida. A unidade de transformação invertida 78 então realiza a transformação invertida dos coeficientes desquantizados de volta para o dominio de pixel para gerar um bloco residual. O somador 79 combina os dados de previsão (por exemplo, um bloco de previsão) gerados pela unidade de previsão 75 com o bloco residual da unidade de transformação invertida 78 para criar um bloco de video reconstruído, que pode ser armazenado na memória 7 4 e/ou enviado a partir do decodificador de video 70 como saida de video decodificada.
A figura 5 é um fluxograma ilustrando um processo ilustrativo realizado . por um codificador de video consistente com essa descrição. A figura 5 será descrita a partir da perspectiva do codificador de video 50 da figura 2. Como ilustrado na figura 5, a unidade de compensação de movimento 35 gera primeiros dados de previsão ponderados (501), e gera segundos dados de previsão ponderados (502). A unidade de compensação de movimento 35 então seleciona os dados de previsão a partir dos primeiro e segundo dados de previsão ponderados com base em uma análise de distorção de taxa (503) . Em particular, a unidade de compensação de movimento 35 pode determinar as métricas de custo para os primeiro e segundo dados de previsão ponderada que quantificam e equilibram a taxa de codificação e a qualidade de codificação associadas com os primeiro e segundo dados de previsão ponderada, e pode selecionar os dados de previsão com o menor custo em termos de taxa e distorção. O codificador de video 50 pode então codificar dados de video com base nos dados de previsão selecionados (504) . Por exemplo, o codificador de video 50 pode invocar o somador 48 para subtrair os dados de previsão selecionados a partir dos dados de video sendo codificados, e então invocar a unidade de transformação 38 para transformar, a unidade de quantização 40 para quantizar e a unidade de codificação por entropia 46 para codificar por entropia os coeficientes residuais transformados e quantizados. Nesse caso, a unidade de compensação de movimento 35 pode gerar dois ou mais elementos de sintaxe separados para indicar um tamanho de partição e uma direção de previsão para os dados de previsão e pode enviar tais elementos de sintaxe para a unidade de codificação por entropia 46 para inclusão na sequência de bits codificada (505) . 0 processo da figura 5 pode ser realizado para uma pluralidade de blocos de video B dentro de uma fatia ou quadro ou outra série de blocos de video, e também pode ser realizado para sub-blocos de blocos de video B. Por exemplo, o processo da figura 5 pode ser realizado para qualquer uma dentre LCU, CU ou PU.
A figura 6 é um fluxograma ilustrando um processo ilustrativo realizado por um decodificador de video consistente com essa descrição. A figura 6 será descrita a partir da perspectiva do decodificador de video 70 da figura 4. Como ilustrado na figura 6, o decodificador de video recebe dados de video codificados (601), e recebe dois ou mais elementos de sintaxe separados que indicam um tamanho de partição e uma direção de previsão que foi utilizada para codificar os dados de video (602) . Em particular, a unidade de decodificação por entropia 72 pode receber uma sequência de bits codificada que inclui os dados de video e dois ou mais elementos de sintaxe separados. Seguindo a decodificação por entropia, a unidade de decodificação por entropia 72 pode enviar elementos de sintaxe para a unidade de previsão 75, que inclui dois ou mais elementos de sintaxe separados que indicam um tamanho de partição e uma direção de previsão que foram utilizados para codificar os dados de video, os vetores de movimento e possivelmente outra sintaxe.
A unidade de previsão 75 invoca a unidade de compensação de movimento 86 para a decodificação de previsão com base em bloco. Em se fazendo isso, a unidade de compensação de movimento 86 gera dados de previsão ponderada com base em dois ou mais elementos de sintaxe separados indicando o tamanho de partição e a direção de previsão (603) . O decodificador de video 70 pode então decodificar os dados de video utilizando os dados de previsão ponderados (604). Em particular, o decodificador de video 7 0 pode invocar o somador 7 9 para combinar os dados de previsão ponderados (por exemplo, um bloco de previsão) com os dados de video residuais (por exemplo, um bloco residual) a fim de gerar uma reconstrução dos dados de video (por exemplo, um bloco de video reconstruído). O processo da figura 6 pode ser realizado por uma pluralidade de blocos de video B dentro de uma fatia ou quadro ou outra série de blocos de video e também pode ser realizado para sub-blocos de blocos de video B. Por exemplo, o processo da figura 5 pode ser realizado para qualquer um dentre uma LCU, CU ou PU.
As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, e circuito integrado (IC) ou um conjunto de ICs (isso é, um conjunto de chips). Quaisquer componentes, módulos ou unidades foram descritos fornecidos para enfatizar os aspetos funcionais e não exigem necessariamente a realização por diferentes unidades de hardware. As técnicas descritas aqui também podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Quaisquer características descritas como módulos, unidades ou componentes podem ser implementadas juntas em um dispositivo lógico integrado ou separadamente como dispositivos lógicos discretos porém interoperacionais. Em alguns casos, várias características podem ser implementadas como um dispositivo de circuito integrado, tal como um chip ou chipset de circuito integrado.
Se implementadas em software, as técnicas podem ser realizadas pelo menos em parte por um meio legivel por computador compreendendo instruções que, quando executadas em um processador, realizam um ou mais dos métodos descritos acima. 0 meio legivel por computador pode compreender um meio de armazenamento legivel por computador e pode formar parte de um produto de programa de computador, que pode incluir materiais de empacotamento. 0 meio de armazenamento legivel por computador pode compreender memória de acesso randômico (RAM), tal como memória de acesso aleatório dinâmica sincronizada (SDRAM), memória de leitura apenas (ROM), memória de acesso randômico não volátil (NVRAM), memória de leitura apenas programável e eletricamente eliminável (EEPROM), memória FLASH, midia de armazenamento de dados magnético ou ótico, e similares. As técnicas podem adicionalmente ou alternativamente ser realizadas pelo menos em parte por um meio de comunicação legivel por computador que porta ou comunica um código na forma de instruções ou estruturas de dados e que pode ser acessado, lido e/ou executado por um computador.
O código ou instruções podem ser executados por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, um circuito integrado especifico de aplicativo (ASIC(, um conjunto lógico programável em campo (FGPA), 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 módulos de software dedicados ou módulos de hardware configurados para codificação e decodificação, ou incorporados em um codec de video combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
A descrição também contempla qualquer um dentre uma variedade de dispositivos de circuito integrado que incluem um conjunto de circuito para implementar uma ou mais das técnicas descritas nessa descrição. Tal conjunto de circuito pode ser fornecido em um único chip de circuito integrado ou em vários chips de circuito integrado interoperacionais em um chamado chipset. Tais dispositivos de circuito integrado podem ser utilizados em uma variedade de aplicações, algumas das quais pode incluir o uso em dispositivos de comunicação sem fio, tal como aparelhos de telefonia móvel.
Várias modalidades da invenção foram descritas. Essas e outras modalidades estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método de codificação de um bloco de vídeo bidirecional, bloco de vídeo B, o método CARACTERIZADO por compreender: usar predição bidirecional para gerar (501, 502) primeiros dados de previsão e segundos dados de previsão para o bloco de vídeo B; selecionar (503) um dos primeiros dados de previsão e segundos dados de previsão com base em uma ou mais métricas de distorção de taxa; com base nos dados de previsão selecionados, gerar (505) um primeiro elemento de sintaxe indicativo de um tamanho de partição para o bloco de vídeo B, e o qual não é indicativo de uma direção de previsão; com base nos dados de previsão selecionados, gerar (505) um segundo elemento de sintaxe separado do primeiro elemento de sintaxe e indicativo de uma direção de previsão para a ou cada partição do bloco de vídeo B, em que o segundo elemento de sintaxe não é indicativo de um quadro de referência, ou, gerar uma pluralidade de segundos elementos de sintaxe, separados do primeiro elemento de sintaxe, e respectivamente indicativo de uma direção de previsão respectiva para partições respectivas do bloco de vídeo B em que a pluralidade de segundos elementos de sintaxe não são indicativas de um quadro de referência, em que a direção de previsão é selecionada de um grupo de direções de previsão compreendendo uma primeira lista, uma segunda lista ou ambas as primeira e segunda listas; e enviar os primeiro e segundo elementos de sintaxe.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO por selecionar um dos primeiros dados de previsão e segundos dados de previsão compreender a avaliação de uma ou mais métricas de distorção de taxa para cada um dos primeiros dados de previsão e segundos dados de previsão, e em que uma ou mais métricas de distorção de taxa são baseadas pelo menos em parte em uma taxa de codificação e uma qualidade de codificação associada com cada um dos primeiros dados de previsão e segundos dados de previsão.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO por gerar os primeiros dados de previsão compreender determinar um primeiro vetor de movimento e gerar os segundos dados de previsão compreender determinar um segundo vetor de movimento, em que gerar o segundo elemento de sintaxe é preferivelmente baseado pelo menos em parte em qual dos primeiro vetor de movimento ou segundo vetor de movimento corresponde aos dados de previsão selecionados.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO por gerar os primeiros dados de previsão compreender determinar um primeiro tamanho de partição e gerar os segundos dados de previsão compreender determinar um segundo tamanho de partição, em que gerar o primeiro elemento de sintaxe é baseado pelo menos em parte em qual dos primeiro tamanho de partição ou segundo tamanho de partição corresponde aos dados de previsão selecionado.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO por enviar os primeiro e segundo elementos de sintaxe compreender: a saída de uma primeira pluralidade de bits indicativos do primeiro elemento de sintaxe; e a saída de uma segunda pluralidade de bits indicativos do segundo elemento de sintaxe, as ditas primeira e segunda pluralidades de bits sendo independentes uma da outra.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo bloco de vídeo B compreender uma partição ou duas partições, e em que a pluralidade de segundos elementos de sintaxe compreende um segundo elemento de sintaxe e um terceiro elementos de sintaxe, o segundo elemento de sintaxe sendo indicativo de uma primeira direção de previsão para uma primeira partição do bloco de vídeo B, e o terceiro elemento de sintaxe sendo indicativo de uma segunda direção de previsão para uma segunda partição do bloco de vídeo B.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender adicionalmente: realizar um processo de codificação por entropia no primeiro elemento de sintaxe, e preferivelmente realizar um segundo processo de codificação por entropia no segundo elemento de sintaxe.
8. Dispositivo para codificação de um bloco de vídeo B, o dispositivo CARACTERIZADO por compreender: meios para gerar, usando predição bidirecional, primeiros dados de previsão e segundos dados de previsão para o bloco de vídeo B; meios para selecionar um dos primeiros dados de previsão e segundos dados de previsão com base em uma ou mais métricas de distorção de taxa; meios para gerar, com base nos dados de previsão selecionados, um primeiro elemento de sintaxe indicativo de um tamanho de partição para o bloco de vídeo B, e o qual não é indicativo de uma direção de previsão; meios para gerar um segundo elemento de sintaxe separado do primeiro elemento de sintaxe e indicativo de uma direção de previsão para a ou cada partição do bloco de vídeo B com base nos dados de previsão selecionados, em que o segundo elemento de sintaxe não é indicativo de um quadro de referência, ou, gerar uma pluralidade de segundos elementos de sintaxe, separados do primeiro elemento de sintaxe, e respectivamente indicativo de uma direção de previsão respectiva para partições respectivas do bloco de vídeo B em que a pluralidade de segundos elementos de sintaxe não são indicativas de um quadro de referência, em que a direção de previsão é selecionada de um grupo de direções de previsão compreendendo uma primeira lista, uma segunda lista ou ambas as primeira e segunda listas; e meios para enviar os primeiro e segundo elementos de sintaxe.
9. Método de decodificação de um bloco de vídeo B, o método CARACTERIZADO por compreender: receber (601) dados de vídeo codificados; receber (602), nos dados de vídeo codificados, um primeiro elemento de sintaxe indicativo de um tamanho de partição utilizado para codificar o bloco de vídeo B, e o qual não é indicativo de uma direção de previsão; receber (602) nos dados de vídeo codificados: um segundo elemento de sintaxe, separado do primeiro elemento de sintaxe, e indicativo de uma direção de previsão utilizada para codificar a ou cada partição do bloco de vídeo B, em que o segundo elemento de sintaxe não é indicativo de um quadro de referência, ou uma pluralidade de segundos elementos de sintaxe, separada do primeiro elemento de sintaxe, e respectivamente indicativa de uma direção de previsão respectiva para respectivas partições do bloco de vídeo B, em que a pluralidade de segundos elementos de sintaxe não é indicativa de um quadro referência, em que o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe, em que a direção de previsão é selecionada de um grupo de direções de previsão compreendendo uma primeira lista, uma segunda lista ou ambas as primeira e segunda listas; e decodificar (604) o bloco de vídeo B com base pelo menos em parte no primeiro elemento de sintaxe recebido e no segundo elemento de sintaxe.
10. Método, de acordo com a reivindicação 9, CARACTERIZADO por decodificar o bloco de vídeo B compreender gerar dados de previsão com base pelo menos em parte no primeiro elemento de sintaxe e no segundo elemento de sintaxe.
11. Método, de acordo com a reivindicação 9, CARACTERIZADO por receber o primeiro elemento de sintaxe e o segundo elemento de sintaxe compreender: receber uma primeira pluralidade de bits indicativos do primeiro elemento de sintaxe; e receber uma segunda pluralidade de bits indicativos do segundo elemento de sintaxe, as ditas primeira e segunda pluralidades de bits sendo independentes uma da outra.
12. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo bloco de vídeo B compreender uma partição ou duas partições, e em que a pluralidade de segundos elementos de sintaxe compreende um segundo elemento de sintaxe e um terceiro elementos de sintaxe, o segundo elemento de sintaxe sendo indicativo de uma primeira direção de previsão para uma primeira partição do bloco de vídeo B, e o terceiro elemento de sintaxe sendo indicativo de uma segunda direção de previsão usada para codificar uma segunda partição do bloco de vídeo B.
13. Método, de acordo com a reivindicação 9, CARACTERIZADO por compreender adicionalmente: realizar um processo de decodificação por entropia no primeiro elemento de sintaxe, e preferivelmente realizar um segundo processo de decodificação por entropia no segundo elemento de sintaxe.
14. Dispositivo para decodificação de um bloco de vídeo B, o dispositivo CARACTERIZADO por compreender: meios para receber dados de vídeo codificados; meios para receber um primeiro elemento de sintaxe indicativo de um tamanho de partição utilizado para codificar o bloco de vídeo B, e o qual não é indicativo de uma direção de previsão; meios para receber nos dados de vídeo codificados: um segundo elemento de sintaxe, separado do primeiro elemento de sintaxe, e indicativo de uma direção de previsão utilizada para codificar a ou cada partição do bloco de vídeo B, em que o segundo elemento de sintaxe não é indicativo de um quadro de referência, ou uma pluralidade de segundos elementos de sintaxe, separada do primeiro elemento de sintaxe, e respectivamente indicativa de uma direção de previsão respectiva para respectivas partições do bloco de vídeo B, em que a pluralidade de segundos elementos de sintaxe não é indicativa de um quadro referência, em que o primeiro elemento de sintaxe é separado do segundo elemento de sintaxe, em que a direção de previsão é selecionada de um grupo de direções de previsão compreendendo uma primeira lista, uma segunda lista ou ambas as primeira e segunda listas; e meios para decodificar o bloco de vídeo B com base pelo menos em parte no primeiro elemento de sintaxe recebido e no segundo elemento de sintaxe.
15. Memória CARACTERIZADA por compreender instruções que ao serem executadas em um processador fazem com que o processador realize as etapas de codificação ou decodificação de um bloco de vídeo bidirecional, bloco de vídeo B, do método conforme definido em qualquer uma das reivindicações 1 a 7 ou 9 a 13.
BR112012020733-4A 2010-02-19 2011-02-18 Sinalização de tipo de bloco em codificação de vídeo BR112012020733B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US30626110P 2010-02-19 2010-02-19
US61/306,261 2010-02-19
US13/029,967 2011-02-17
US13/029,967 US8995527B2 (en) 2010-02-19 2011-02-17 Block type signalling in video coding
PCT/US2011/025506 WO2011103482A1 (en) 2010-02-19 2011-02-18 Block type signalling in video coding

Publications (2)

Publication Number Publication Date
BR112012020733A2 BR112012020733A2 (pt) 2016-04-26
BR112012020733B1 true BR112012020733B1 (pt) 2021-12-21

Family

ID=44476475

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012020733-4A BR112012020733B1 (pt) 2010-02-19 2011-02-18 Sinalização de tipo de bloco em codificação de vídeo

Country Status (11)

Country Link
US (1) US8995527B2 (pt)
EP (1) EP2537344B1 (pt)
JP (1) JP5642806B2 (pt)
KR (1) KR101384077B1 (pt)
CN (1) CN102783150B (pt)
BR (1) BR112012020733B1 (pt)
DK (1) DK2537344T3 (pt)
ES (1) ES2757703T3 (pt)
HU (1) HUE047076T2 (pt)
TW (1) TWI493964B (pt)
WO (1) WO2011103482A1 (pt)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101791078B1 (ko) 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
US9307262B2 (en) * 2011-01-13 2016-04-05 Texas Instruments Incorporated Methods and systems for facilitating multimedia data encoding utilizing configured buffer information
US10362327B2 (en) 2011-01-14 2019-07-23 Sony Corporation B-picture syntax change for generalized bi-prediction in high efficiency video coding (HEVC)
CN103444181B (zh) 2011-04-12 2018-04-20 太阳专利托管公司 运动图像编码方法、运动图像编码装置、运动图像解码方法、运动图像解码装置及运动图像编码解码装置
US9247266B2 (en) 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
KR102015674B1 (ko) 2011-05-24 2019-08-28 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 화상 복호 장치, 및, 화상 부호화 복호 장치
EP2717575B1 (en) 2011-05-27 2018-10-10 Sun Patent Trust Image decoding method and image decoding device
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
KR101539312B1 (ko) 2011-05-27 2015-07-24 미디어텍 인크. 비디오 프로세싱에 대한 라인 버퍼 감소를 위한 방법 및 장치
CA2834191C (en) 2011-05-31 2019-04-09 Panasonic Corporation Video encoding method, video encoding device, video decoding method, video decoding device, and video encoding/decoding device
SG194746A1 (en) 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
US20130003850A1 (en) 2011-06-30 2013-01-03 Toshiyasu Sugio Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
EP2741499A4 (en) 2011-08-03 2014-12-10 Panasonic Ip Corp America VIDEO CODING METHOD, VIDEO CODING METHOD, VIDEO CODING DEVICE, VIDEO ENCODING DEVICE AND VIDEO ENCODING / DECODING DEVICE
HUE043274T2 (hu) * 2011-09-14 2019-08-28 Samsung Electronics Co Ltd Eljárás predikcióegység (PU) dekódolására ennek méretén alapulva
AU2012309008A1 (en) * 2011-09-16 2013-11-07 Mediatek Singapore Pte. Ltd. Method and apparatus for prediction mode and partition mode syntax coding for coding units in HEVC
US9332283B2 (en) * 2011-09-27 2016-05-03 Broadcom Corporation Signaling of prediction size unit in accordance with video coding
KR101999869B1 (ko) 2011-10-19 2019-07-12 선 페이턴트 트러스트 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 및, 화상 복호 장치
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9247258B2 (en) 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
MX346477B (es) 2011-10-28 2017-03-22 Samsung Electronics Co Ltd Método para inter-predicción y dispositivo para el mismo, y método para compensación de movimiento y dispositivo para el mismo.
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
JP2013102297A (ja) * 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
TWI523497B (zh) * 2011-11-10 2016-02-21 Sony Corp Image processing apparatus and method
US9386305B2 (en) * 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
CN104067623A (zh) * 2012-01-19 2014-09-24 三菱电机株式会社 运动图像解码装置、运动图像编码装置、运动图像解码方法以及运动图像编码方法
SG10201505821WA (en) 2012-01-30 2015-08-28 Samsung Electronics Co Ltd Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area
WO2013115942A1 (en) * 2012-02-01 2013-08-08 Vidyo, Inc. Techniques for multiview video coding
JP6012014B2 (ja) * 2012-03-30 2016-10-25 サン パテント トラスト 画像符号化方法および画像復号方法
CN104365101B (zh) * 2012-04-15 2019-04-19 三星电子株式会社 用于确定用于帧间预测的参考图像的方法及设备
US10356459B2 (en) * 2013-07-22 2019-07-16 Sony Corporation Information processing apparatus and method
WO2015062002A1 (en) * 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
WO2015152608A2 (ko) * 2014-03-31 2015-10-08 삼성전자 주식회사 서브블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
US9883187B2 (en) 2015-03-06 2018-01-30 Qualcomm Incorporated Fast video encoding method with block partitioning
KR20180008445A (ko) * 2015-06-10 2018-01-24 삼성전자주식회사 적응적 가중치 예측을 위한 신택스 시그널링을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
US10244249B2 (en) 2015-09-21 2019-03-26 Qualcomm Incorporated Fixed point implementation of range adjustment of components in video coding
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
CN114827599A (zh) * 2016-02-03 2022-07-29 Oppo广东移动通信有限公司 运动图像解码装置、编码装置、以及预测图像生成装置
CA3037685C (en) * 2016-09-20 2023-03-28 Bae Keun Lee Method and apparatus for processing video signal
CN110832859B (zh) * 2017-07-11 2022-02-25 华为技术有限公司 一种基于模板匹配的解码方法及装置
WO2019167849A1 (en) * 2018-02-28 2019-09-06 Sharp Kabushiki Kaisha Systems and methods for partitioning regions of a picture for video coding using different coding unit sizes
TW202029755A (zh) * 2018-09-26 2020-08-01 美商Vid衡器股份有限公司 視訊編碼雙預測
AU2019354653B2 (en) * 2018-10-02 2023-04-27 Interdigital Vc Holdings, Inc. Generalized bi-prediction and weighted prediction
CN113574877A (zh) * 2019-03-12 2021-10-29 现代自动车株式会社 用于有效地对残差块编码的方法和装置
CN112004091B (zh) * 2020-07-31 2021-08-03 浙江大华技术股份有限公司 帧间预测方法及其相关装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
JP2007503775A (ja) 2003-08-26 2007-02-22 トムソン ライセンシング ハイブリッド・イントラ・インター符号化ブロックを符号化する方法及び装置
KR100965881B1 (ko) * 2003-10-10 2010-06-24 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
JP4031455B2 (ja) * 2004-03-29 2008-01-09 株式会社東芝 画像符号化装置
US7894530B2 (en) 2004-05-07 2011-02-22 Broadcom Corporation Method and system for dynamic selection of transform size in a video decoder based on signal content
JP4889231B2 (ja) 2005-03-31 2012-03-07 三洋電機株式会社 画像符号化方法および装置、画像復号方法
KR100728031B1 (ko) 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
EP2036360B1 (en) * 2006-06-30 2019-11-13 Telecom Italia S.p.A. Method, apparatus and system for robust video transmission with auxiliary information channel
US8457200B2 (en) * 2006-07-07 2013-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
US8250618B2 (en) * 2006-09-18 2012-08-21 Elemental Technologies, Inc. Real-time network adaptive digital video encoding/decoding
FR2906433B1 (fr) * 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
US8213511B2 (en) 2007-04-30 2012-07-03 Texas Instruments Incorporated Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction
US8422803B2 (en) * 2007-06-28 2013-04-16 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US8432968B2 (en) 2007-10-15 2013-04-30 Qualcomm Incorporated Scalable video coding techniques for scalable bitdepths
KR101566564B1 (ko) * 2007-10-16 2015-11-05 톰슨 라이센싱 기하학적으로 분할된 수퍼 블록들의 비디오 인코딩 및 디코딩 방법 및 장치
US9967590B2 (en) * 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US8811484B2 (en) * 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US8483285B2 (en) 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8

Also Published As

Publication number Publication date
TW201143447A (en) 2011-12-01
JP2013520882A (ja) 2013-06-06
ES2757703T3 (es) 2020-04-29
CN102783150B (zh) 2015-11-25
TWI493964B (zh) 2015-07-21
KR101384077B1 (ko) 2014-04-10
CN102783150A (zh) 2012-11-14
US20110206123A1 (en) 2011-08-25
BR112012020733A2 (pt) 2016-04-26
JP5642806B2 (ja) 2014-12-17
EP2537344B1 (en) 2019-08-21
WO2011103482A1 (en) 2011-08-25
KR20120118507A (ko) 2012-10-26
DK2537344T3 (da) 2019-11-11
EP2537344A1 (en) 2012-12-26
US8995527B2 (en) 2015-03-31
HUE047076T2 (hu) 2020-04-28

Similar Documents

Publication Publication Date Title
BR112012020733B1 (pt) Sinalização de tipo de bloco em codificação de vídeo
JP5752771B2 (ja) ビデオコーディングのためのテンプレートマッチング
KR101355332B1 (ko) 비디오 코딩에서 단방향성 예측 및 양방향성 예측을 위한 상이한 가중치들
TWI392370B (zh) 使用大的巨區塊之視訊編碼
BR112021004492A2 (pt) codificação por transformada múltipla adaptativa
TWI488506B (zh) 使用大的巨區塊之視訊編碼
TWI419567B (zh) 使用大的巨區塊之視訊編碼
KR101135293B1 (ko) 비디오 블록 헤더 정보의 적응적 코딩
ES2663691T3 (es) Selección eficiente de modo de predicción
KR101377883B1 (ko) 비디오 인코딩에서 넌-제로 라운딩 및 예측 모드 선택 기법들
BR112018006408B1 (pt) Predição intra de vídeo melhorada usando combinação de predição dependente de posição para codificação de vídeo
BR112016015998B1 (pt) Sinalização de resolução de vetor de movimento adaptativa para codificação de vídeo
BR112019027071A2 (pt) intra-predição aperfeiçoada em codificação de vídeo
JP2013520875A (ja) ビデオコーディングのための適応動き解像度
BR112013022516B1 (pt) Modulação de código de pulso quantizada em codificação de vídeo
BR112013024187B1 (pt) Modo de fusão bi-preditivo com base em vizinhos uni-preditivos em 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
WO2011002813A1 (en) Video coding based on first order prediction and pre-defined second order prediction mode
BR112016015453B1 (pt) Suporte de camada base de codec diferente em codificação de vídeo de várias camadas
TW202203650A (zh) 解碼圖片緩衝器(dpb)操作和存取單元定界符(aud)
US20150103909A1 (en) Multi-threaded video encoder

Legal Events

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

Ipc: H04N 19/577 (2014.01), H04N 19/109 (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]
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 18/02/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.