BR112014011060B1 - Número de redução de contextos para codificação aritmética binária adaptativa de contexto - Google Patents

Número de redução de contextos para codificação aritmética binária adaptativa de contexto Download PDF

Info

Publication number
BR112014011060B1
BR112014011060B1 BR112014011060-3A BR112014011060A BR112014011060B1 BR 112014011060 B1 BR112014011060 B1 BR 112014011060B1 BR 112014011060 A BR112014011060 A BR 112014011060A BR 112014011060 B1 BR112014011060 B1 BR 112014011060B1
Authority
BR
Brazil
Prior art keywords
partition
video data
context
video
range
Prior art date
Application number
BR112014011060-3A
Other languages
English (en)
Other versions
BR112014011060A8 (pt
BR112014011060A2 (pt
Inventor
Marta Karczewicz
Joel Sole Rojals
Wei-Jung Chien
Original Assignee
Velos Media International Limited
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48223670&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BR112014011060(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Velos Media International Limited filed Critical Velos Media International Limited
Publication of BR112014011060A2 publication Critical patent/BR112014011060A2/pt
Publication of BR112014011060A8 publication Critical patent/BR112014011060A8/pt
Publication of BR112014011060B1 publication Critical patent/BR112014011060B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

número de redução de contextos para codificação aritmética binária adaptativa ao contexto. uma redução no número de binarizações e/ou contextos usados na codificação aritmética binária adaptativa ao contexto (cabac) para codificação de vídeo é proposta. em particular, esta descrição propõe técnicas que podem diminuir o número de contextos usados no cabac por até 56. um método para codificar dados de vídeo compreende: determinar um tipo de partição para um modo de predição para um bloco de dados de vídeo; codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando codificação aritmética binária adaptativa ao contexto (cabac) com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e codificar uma faixa de tamanho de partição do elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando cabac no modo by-pass. o tipo de partição é uma partição assimétrica. a faixa de tipo de partição indica se a partição assimétrica é verticalmente particionada ou horizontalmente particionada. a faixa de tamanho de partição indica se uma primeira partição é um quarto de um tamanho do bloco de dados de vídeo ou se a primeira partição é três-quartos do tamanho do bloco de dados de vídeo. aparelho para codificação e método e aparelho para decodificação são também descritos.

Description

[0001] Este pedido reivindica o benefício de do Pedido Provisório U.S. No. 61/557,325, depositado em 8 de novembro de 2011, e Pedido Provisório U.S. No. 61/561,911, depositado em 20 de novembro de 2011, ambos os quais são aqui incorporados por referência na sua totalidade.
Campo da Invenção
[0002] Esta divulgação refere-se à codificação de vídeo, e em particular a codificação aritmética binária adaptativa de contexto (CABAC) utilizada na codificação de vídeo.
Descrição da Técnica Anterior
[0003] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de broadcast digital direta, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, e-books, digital câmeras, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, videogames, telefones celulares ou de rádio por satélite, os chamados "smart fones", dispositivos de videoconferência, dispositivos de streaming de vídeo, e assim por diante. Dispositivos de vídeo digitais implementam técnicas de compressão de vídeo, tais como aquelas descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em fase de desenvolvimento e extensão de tais padrões. Os dispositivos de vídeo pode transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de forma mais eficiente através da implementação de tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo executam predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, uma imagem de vídeo, ou uma porção de uma imagem de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos em árvore, unidades de codificação (CUs) e/ou nós de codificação. Blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando a predição espacial em relação às amostras de referência em blocos vizinhos na mesma imagem. Blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem pode usar predição espacial em relação a amostras de referência em blocos vizinhos da mesma imagem ou predição temporal com relação a amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros e imagens de referência podem ser referidas como quadros de referência.
[0005] Predição espacial ou temporal resulta em um bloco de predição para um bloco a ser codificado. Dados residuais representam as diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco de predição, e os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para a compressão adicional, os dados residuaispodem ser transformados do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidimensional, podem ser varridos, a fim de produzir um vetor unidimensional de coeficientes de transformada, e codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
Sumário
[0006] De um modo geral, esta divulgação descreve técnicas para codificação aritmética binária adaptativa de contexto (CABAC) em um processo de codificação de vídeo. Em particular, esta divulgação propõe a redução do número de contextos CABAC usados para um ou mais elementos de sintaxe, exemplos não limitativos dos quais incluem pred_type, merge _idx, inter_jpred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greaterl_flag, e coeff_abs_level_greater2_flag. As modificações podem reduzir até 56 contextos com insignificantes alterações de eficiência de codificação. As reduções de contexto propostas para os elementos de sintaxe podem ser utilizadas isoladamente ou em qualquer combinação.
[0007] Em um exemplo da divulgação, um método para codificação de vídeo pode incluir determinar um primeiro tipo de predição para o bloco de dados de vídeo em uma fatia P, representar o primeiro tipo de predição como um elemento de sintaxe de tipo de predição de fatia P, determinar um segundo o tipo de predição para o bloco de dados de vídeo em uma fatia B, representar o segundo tipo de predição como um elemento de sintaxe de tipo de predição de fatia B, determinar uma binarização de fatia P para o elemento de sintaxe de tipo de predição de fatia P, determinar uma Binarização de fatia B para o elemento de sintaxe de tipo de predição de fatia B, em que o elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B são determinados usando a mesma lógica de binarização, e codificar os dados de vídeo com base nas binarizações do elemento de sintaxe de tipo de predição de fatia P e do elemento de sintaxe de tipo de predição de fatia B.
[0008] Em um outro exemplo da divulgação, um método para decodificação de vídeo pode incluir mapear um elemento de sintaxe de tipo de predição de fatia P binarizado para um tipo de predição usando um mapeamento de binarização para um bloco de dados de vídeo em uma fatia P, mapear um elemento de sintaxe de tipo de predição de fatia B binarizado para um tipo de predição usando o mesmo mapeamento de binarização para um bloco de dados de vídeo em uma fatia B, e decodificar os dados de vídeo com base nos tipos de predição mapeados.
[0009] Em um outro exemplo da divulgação, um método para codificação de dados de vídeo compreende determinar um tipo de partição para um modo de predição para o bloco de dados de vídeo, codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando CABAC com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e codificar uma faixa de tamanho de partição do elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando CABAC no modo de bypass.
[0010] Em um outro exemplo da divulgação, um método para decodificação de dados de vídeo compreende receber um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo que foi codificado utilizando CABAC, o elemento de sintaxe de tipo de predição incluindo de uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho da partição, decodificar a faixa de tipo de partição do elemento de sintaxe de tipo de predição usando codificação aritmética binária adaptativa de contexto com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e decodificar a faixa de tamanho de partição do elemento de sintaxe de tipo de predição usando CABAC no modo de bypass.
[0011] Em outro exemplo da divulgação, um método para codificação de dados de vídeo compreende codificação de um flag de bloco codificado de croma Cb para um bloco de dados de vídeo usando CABAC, em que a codificação do flag de bloco codificado de croma Cb compreende o uso de um conjunto de contexto incluindo um ou mais contextos como parte do CABAC, e codificar um flag de bloco codificado de croma Cr usando CABAC, em que a codificação do flag de bloco codificado de croma Cr compreende usar o mesmo conjunto de contexto como o flag de bloco codificado de croma Cb como parte do CABAC.
[0012] Esta divulgação descreve também as técnicas acima em termos de aparelhos configurados para executar as técnicas, bem como em termos de um meio de armazenamento legível por computador armazenando instruções que, quando executadas, fazem com que um ou mais processadores executem as técnicas.
[0013] Os detalhes de um ou mais exemplos são estabelecidos nos desenhos anex0s e descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição das Figuras
[0014] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar as técnicas descritas nesta divulgação.
[0015] A figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar que pode implementar as técnicas descritas nesta divulgação.
[0016] A figura 3 é um diagrama de blocos que ilustra um decodificador de vídeo exemplar que pode implementar as técnicas descritas nesta divulgação.
[0017] A figura 4 é um desenho conceitual mostrando ambos tipos de partição quadrado e não quadrado.
[0018] A figura 5 um desenho conceitual que mostra os tipos de partição assimétrica.
[0019] A figura 6 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação.
[0020] A figura 7 é um fluxograma que ilustra um método para decodificação de vídeo exemplar da divulgação.
[0021] A figura 8 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação.
[0022] A figura 9 é um fluxograma que ilustra um método para decodificação de vídeo exemplar da divulgação.
[0023] A figura 10 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação.
Descrição Detalhada da Invenção
[0024] Esta divulgação descreve técnicas para acodificação de dados, tais dados de vídeo. Em particular, a divulgação descreve técnicas que podem promover a codificação eficiente de dados de vídeo usando processos de codificação de entropia adaptativa de contexto. Mais especificamente, esta divulgação propõe a redução do número de contextos CABAC utilizados para codificar os elementos de sintaxe, como por exemplo, pred_type, merge_idx, inter_jpred_flag, ref_idx_lx, cbf_cb, cbf_cr,coeff_abs_level_greaterl_flag, e coeff_abs_level_greater2_flag. As modificações reduzem até 56 contextos com insignificantes alterações de eficiência de codificação. Esta divulgação descreve a codificação de vídeo para fins de ilustração. No entanto, as técnicas descritas nesta divulgação podem ser aplicadas a outros tipos de codificação de dados também.
[0025] A figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplar 10, que pode ser configurado para utilizar técnicas de codificação aritmética binária adaptativa de contexto (CABAC) de acordo com os exemplos da presente divulgação. Como mostrado na figura 1, o sistema 10 inclui dispositivo de origem 12 que transmite vídeo codificado para o dispositivo de destino 14 via canal de comunicação 16. Dados de vídeo codificados também podem ser armazenados no meio de armazenamento 34 ou servidor de arquivo 36 e pode ser acessado pelo dispositivo de destino 14 se desejado. Quando armazenado em um meio de armazenamento ou servidor de arquivo, codificador de vídeo 20 pode prover dados de vídeo codificados para outro dispositivo, tal como uma interface de rede, um disco compacto (CD), Blu-ray ou disco de vídeo digital (DVD) virgem ou dispositivo facilidade de gravação ou outros dispositivos, para armazenar os dados de vídeo codificados no meio de armazenamento. Da mesma forma, um dispositivo separado do decodificador de vídeo 30, tal como uma interface de rede, CD ou um leitor de DVD, ou outros semelhantes, pode recuperar os dados de vídeo codificados de um meio de armazenamento e, prover os dados recuperados para o decodificador de vídeo 30.
[0026] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer de uma grande variedade de dispositivos, incluindo computadores desktop, notebook (ou seja, laptop) computadores, tablets, set-top boxes, aparelhos telefônicos, tais como os chamados smart fones, televisores, câmeras, dispositivos de vídeo, reprodutores de mídia digital, consoles de jogos de vídeo, ou similares. Em muitos casos, tais dispositivos podem ser equipados para a comunicação sem fio. Assim, a comunicação do canal 16 pode compreender um canal sem fio, um canal com fio, ou uma combinação de canais com ou sem fio adequados para a transmissão de dados de vídeo codificado. Da mesma forma, servidor de arquivo 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão de dados padrão, incluindo acesso à Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequada para o acesso a dados de vídeo codificados armazenados em um servidor de arquivo.
[0027] Técnicas para CABAC, de acordo com exemplos dessa divulgação, podem ser aplicadas a codificação de vídeo em suporte a qualquer um de uma variedade de aplicações multimídia, como transmissões de TV através do ar, transmissões de televisão por cabo, transmissões de televisão via satélite, transmissões de vídeo por streaming, por exemplo, através da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar uma transmissão de vídeo de uma via ou de duas vias para suportar aplicações como streaming de vídeo, reprodução de vídeo, broadcast de vídeo e/ou telefonia de vídeo.
[0028] No exemplo da figura 1, dispositivo de origem 12 inclui fonte de vídeo 18, codificador de vídeo 20, modulador / demodulador 22 e transmissor 24. No dispositivo de origem 12, fonte de vídeo 18 pode incluir uma fonte, como um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente, uma interface de transmissão de vídeo para receber vídeo de um provedor de conteúdo de vídeo, e/ou um sistema de gráfico de computador para gerar dados de gráficos de computação como a fonte de vídeo, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 é uma câmera de vídeo, dispositivo de origem 12 e dispositivo de destino 14 podem formar os chamados celulares com câmeras ou telefones com vídeo. No entanto, as técnicas descritas nesta divulgação podem ser aplicáveis à codificação de vídeo, em geral, e podem ser aplicadas para aplicações sem fio e/ou com fio, ou aplicação em que os dados de vídeo codificados são armazenados em um disco local.
[0029] O vídeo gerado por computador, capturado, ou pré-capturado pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificado pode ser modulada através de um modem 22, de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de destino 14 via transmissor 24. Modem 22 pode incluir vários misturadores, filtros, amplificadores ou outros componentes projetados para a modulação do sinal. O transmissor 24 pode incluir circuitos destinados à transmissão de dados, incluindo amplificadores, filtros, e uma ou mais antenas.
[0030] O vídeo gerado por computador, capturado, ou pré-capturado que é codificado pelo codificador de vídeo 20 pode também ser armazenado no meio de armazenamento de 34 ou servidor de arquivo 36 para consumo posterior. Meio de armazenamento 34 pode incluir discos Blu-ray, DVDs, CD- ROMs, memória flash, ou qualquer outra mídia de armazenamento digital adequada para o armazenamento de vídeo codificado. O vídeo codificado armazenado no meio de armazenamento 34 pode então ser acessado pelo dispositivo de destino 14 para decodificação e reprodução. Embora não mostrado na figura 1, em alguns exemplos, o meio de armazenamento 34 e/ou o servidor de arquivo 36 pode armazenar a saída do transmissor 24.
[0031] O servidor de arquivo 36 pode ser qualquer tipo de servidor capaz de armazenar vídeo codificado e transmitir vídeo codificado para dispositivo de destino 14. Servidores de arquivo exemplares incluem um servidor de web (por exemplo, para um site), um servidor de FTP, dispositivos de armazenamento conectados à rede (NAS), uma unidade de disco local, ou qualquer outro tipo de dispositivo capaz de armazenar dados de vídeo codificado e transmiti-lo a um dispositivo de destino. A transmissão de dados de vídeo codificado do servidor de arquivo 36 pode ser uma transmissão de fluxo contínuo, uma transmissão de download, ou uma combinação de ambos. O servidor de arquivo 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão de dados padrão, incluindo acesso à Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, Ethernet, USB, etc.), ou uma combinação de ambos que é adequada para o acesso a dados de vídeo codificados armazenados em um servidor de arquivo.
[0032] Dispositivo de destino 14, no exemplo da figura 1, inclui receptor 26, modem 28, decodificador de vídeo 30, e dispositivo de exibição 32. Receptor 26 do dispositivo de destino 14 recebe informações através do canal 16, e modem 28 demodula as informações para produzir um fluxo de bits demodulado para o decodificador de vídeo 30. As informações comunicadas sobre o canal 16 podem incluir uma variedade de informações de sintaxe geradas pelo codificador de vídeo 20 para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo. Essa sintaxe também pode ser incluída com os dados de vídeo codificados armazenados no meio de armazenamento de 34 ou servidor de arquivo 36. Cada um do codificador de vídeo 20 e decodificador de vídeo 30 pode fazer parte de um respectivo codificador-decodificador (CODEC), que é capaz de codificação ou decodificação de dados de vídeo.
[0033] O dispositivo de vídeo 32 pode ser integrado com ou externo a, o dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para interagir com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 mostra dados de vídeo decodificados para um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição, tais como um display de cristal líquido (LCD), uma tela de plasma, um diodo emissor de luz orgânica (OLED), ou um outro tipo de dispositivo de exibição.
[0034] No exemplo da figura 1, a canal de comunicação 16 pode compreender qualquer meio de comunicação com ou sem fio, tal como uma espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas, ou qualquer combinação de meios de comunicação com e sem fio. Canal de comunicação 16 pode formar parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área ampla, ou uma rede global, tal como a Internet. Canal de comunicação 16 geralmente representa qualquer meio de comunicação adequado, ou coleção de diferentes meios de comunicação, para a transmissão de dados de vídeo do dispositivo de origem 12 para o dispositivo de destino 14, incluindo qualquer combinação adequada dos meios de comunicação com ou sem fio. Canal de comunicação 16 pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0035] O codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com um padrão de compressão de vídeo, como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento pela Joint Collaboration Team on Video Coding (JCT-VC) de ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG). Um projeto recente do padrão HEVC, referido como "HEVC Working Draft 6" ou "WD6", é descrito no documento JCTVC-H1003, Bross et al., “High efficiency video coding (HEVC) text especification draft 6”, Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SGl6 WP3 e ISO/IEC JTC1/SC29/WG11, 8° Encontro: San Jose, Califórnia, EUA, em fevereiro de 2012, que, a partir de 1 de junho de 2012 está disponível para download a partir de http://phenix.int- evry.fr/jct/doc_end_user/documents/8_San%20Jose/wgll/JCTVC- H1003-v22.zip.
[0036] Em alternativa, codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com outros padrões de propriedade ou industriais, tais como o padrão ITU-T H.264, alternativamente conhecido como MPEG-4 Parte 10, Codificação de Vídeo Avançada (AVC), ou a extensão de tais padrões. As técnicas da presente divulgação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos incluem MPEG-2 e ITU-T H.263.
[0037] Embora não mostrado na figura 1, em alguns aspectos, codificador de vídeo 20 e decodificador de vídeo 30 podem cada um ser integrado com um codificador e decodificador de áudio, e podem incluir unidades apropriadas MUX-DEMUX, ou outro hardware e software, para lidar com a codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se for o caso, em alguns exemplos, as unidades MUX-DEMUX podem estar de acordo com o protocolo de multiplexador ITU H.223, ou outros protocolos, como o Protocolo de Datagrama de Usuário (UDP).
[0038] O codificador de vídeo 20 e o decodificador de vídeo 30 cada um deles pode ser implementado como qualquer um de uma variedade de conjunto de circuitos codificadores adequado, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASIC), arranjos de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são aplicadas parcialmente em software, um dispositivo pode armazenar instruções de software em um meio legível por computador adequado, não transitório e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta divulgação. Cada um do codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais transdutores ou decodificadores, cada um dos quais pode ser integrado como parte de um codificador / decodificador combinado (CODEC) em um respectivo dispositivo.
[0039] O codificador de vídeo 20 pode implementar qualquer ou todas as técnicas desta divulgação para CABAC em um processo de codificação de vídeo. Da mesma forma, decodificador de vídeo 30 pode implementar qualquer uma ou todas estas técnicas para CABAC em um processo de codificação de vídeo. Um codificador de vídeo, como descrito nesta divulgação, pode referir-se a um codificador de vídeo ou um decodificador de vídeo. Da mesma forma, uma unidade de codificação de vídeo pode referir-se a um codificador de vídeo ou um decodificador de vídeo. Da mesma forma, a codificação de vídeo pode referir-se a codificação de vídeo ou decodificação de vídeo.
[0040] Em um exemplo da divulgação, o codificador de vídeo 20 pode ser configurado para determinar um primeiro tipo de predição para o bloco de dados de vídeo em uma fatia P, representar o primeiro tipo de predição como um elemento de sintaxe de tipo de predição de fatia P, determinar um segundo tipo de predição para um bloco de dados de vídeo em uma fatia B, representar o segundo tipo de predição como um elemento de sintaxe de tipo de predição de fatia B, determinar uma binarização de fatia P para o elemento de sintaxe de tipo de predição de fatia P, determinar um Binarização de fatia B para o elemento de sintaxe de tipo de predição de fatia B, em que o elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B são determinados usando a mesma lógica de binarização, e codificar os dados de vídeo com base nas binarizações do elemento de sintaxe de tipo de predição de fatia P e do elemento de sintaxe de tipo de predição de fatia B.
[0041] Em um outro exemplo da divulgação, decodificador de vídeo 30 pode ser configurado para mapear um elemento de sintaxe de tipo de predição de fatia P binarizado para um tipo de predição usando um mapeamento de binarização para um bloco de dados de vídeo em uma fatia P, mapear um elemento de sintaxe de tipo de predição de fatia B binarizado para um tipo de predição usando o mesmo mapeamento de binarização para um bloco de dados de vídeo em uma fatia B, e decodificar os dados de vídeo, com base nos tipos de predição mapeados.
[0042] Em um outro exemplo da divulgação, o codificador de vídeo 20 pode ser configurado para determinar um tipo de partição para um modo de predição para o bloco de dados de vídeo, codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando CABAC com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e codificar uma faixa de tamanho de partição do elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando CABAC no modo de bypass.
[0043] Em um outro exemplo da divulgação, decodificador de vídeo 30 pode ser configurado para receber um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo que foi codificado utilizando CABAC, o elemento de sintaxe de tipo de predição incluindo de uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho da partição, decodificar a faixa de tipo de partição do elemento de sintaxe de tipo de predição usando CABAC com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e decodificar a faixa de tipo de tamanho de predição do elemento de sintaxe de tipo de predição usando CABAC no modo de bypass.
[0044] Em outro exemplo da divulgação, tanto de codificador de vídeo 20 quanto o decodificador de vídeo 30 podem ser configurados para codificar um flag de bloco codificado de croma Cb de um bloco de dados de vídeo usando CABAC, em que a codificação do flag de bloco codificado de croma Cb compreende usar um conjunto de contexto, incluindo um ou mais contextos como parte do CABAC e codificar um flag de bloco codificado de croma Cr usando CABAC, em que a codificação do flag de bloco codificado de croma Cr compreende usar o mesmo conjunto de contexto como o flag de bloco codificado de croma Cb como parte do CABAC.
[0045] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um dispositivo de codificação de vídeo referido como o modelo de teste HEVC (HM). O HM presume vários recursos adicionais de dispositivos de codificação de vídeo relativos a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 provê nove modos de codificação de intrapredição, o HM pode prover até trinta e três modos de codificação de intrapredição. A seção seguinte irá discutir alguns aspectos do HM em mais detalhes.
[0046] De um modo geral, o modelo de funcionamento da HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos em árvore ou unidades de codificação maiores (LCU) que incluem ambas as amostras de luminância e crominância. Um bloco em árvore tem um efeito semelhante ao de um macrobloco do padrão H.264. Uma fatia inclui uma série de blocos em árvore consecutivos em ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada bloco em árvore pode ser dividido em unidades de codificação (CUs) de acordo com um quadtree. Por exemplo, um bloco em árvore, como um nó de raiz do quadtree, pode ser dividido em quatro nós filhos, e cada nó filho por sua vez pode ser um nó pai e ser dividido em mais quatro nós filho. Um nó filho definitivo, final, como um nó de folha do quadtree, compreende um nó de codificação, ou seja, um bloco de vídeo codificado. Dados de sintaxe associados a um fluxo de bits codificado podem definir um número máximo de vezes que um bloco em árvore pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação.
[0047] A CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU geralmente corresponde a um tamanho do nó de codificação e deve tipicamente ser de forma quadrada. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco em árvore com um máximo de 64x64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais unidades de tradução. Dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Modos de particionamento podem diferir entre se a CU é pulada ou codificada em modo direto, codificada em modo de intrapredição, ou codificada em modo de interpredição. A PU pode ser dividida para ser não quadrada em forma. Dados de sintaxe associados a uma CU podem também descrever, por exemplo, o particionamento da CU em uma ou mais unidades de tradução de acordo com um quadtree. A TU pode ser quadrada ou não quadrada em formato.
[0048] O padrão emergente HEVC permite transformadas de acordo com as TUs, que podem ser diferentes para diferentes CU. As TUs são tipicamente medidas com base no tamanho da PU dentro de uma determinada CU definida para uma LCU particionada, embora isso possa não ser sempre o caso. As TUs tipicamente são do mesmo tamanho ou menor do que As PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades menores usando uma estrutura quadtree conhecida como "árvore quad residual" (RQT). Os nós folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantizados.
[0049] De um modo geral, uma PU refere-se a dados relacionados com o processo de predição. Por exemplo, quando a PU é modo intracodificado, a PU pode incluir dados que descrevem um modo de intrapredição para a PU. Como outro exemplo, quando a PU é modo intercodificado, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, um quarto de precisão de pixel ou um oitavo de precisão de pixel), uma imagem de referência para a qual o vetor de movimento aponta, e/ou uma lista de imagens de referência (por exemplo, lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0050] Em geral, uma TU é utilizada para processos de transformada e quantização. Uma dada CU tendo uma ou mais PUs pode também incluir uma ou mais unidades de transformada (TU). Na sequência de predição, o codificador de vídeo 20 pode calcular valores residuais a partir do bloco de vídeo identificado pelo nó de codificação de acordo com a PU. O nó de codificação é então atualizado para referenciar os valores residuais, em vez de o bloco de vídeo original. Os valores residuais compreendem valores de diferença de pixels que podem ser transformados em coeficientes de transformada, quantizados, e digitalizados usando as transformadas e outras informações de transformada especificadas nas TUs para produzir coeficientes de transformada em série para codificação de entropia. O nó de codificação pode mais uma vez ser atualizado para se referir a esses coeficientes de transformada em série. Esta divulgação tipicamente usa o termo "bloco de vídeo" para se referir a um nó de codificação de uma CU. Em alguns casos específicos, essa divulgação pode também usar o termo "bloco de vídeo" para se referir a um bloco em árvore, ou seja, LCU, ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0051] Uma sequência de vídeo, tipicamente inclui uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreve uma série de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. Codificador de vídeo 20 tipicamente opera em blocos de vídeo dentro de fatias de vídeo individuais, a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixados ou variados, e podem variar em tamanho de acordo com um padrão de codificação especificado.
[0052] Como um exemplo, o HM suporta predição em vários tamanhos de PU. Assumindo-se que o tamanho de uma CU particular seja 2Nx2N, o HM suporta intrapredição em tamanhos de PU de 2Nx2N ou NxN, e inter-predição em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta particionamento assimétrico para interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. No particionamento assimétrico, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A porção da CU correspondente à partição de 25% é indicada por um "n" seguido por uma indicação de "Cima", "Baixo", "Esquerda" ou "Direita". Assim, por exemplo, "2NxnU" refere-se a uma CU de 2Nx2N que é particionada horizontalmente com uma PU de 2Nx0.5N na parte superior e uma PU de 2Nx1,5N na parte inferior.
[0053] A figura 4 é um desenho conceitual mostrando ambos tipos de partição quadrado não quadrado para intrapredição e interpredição. A partição 102 é uma partição 2Nx2N e pode ser utilizada tanto para aintrapredição e interpredição. A partição 104 é umapartição NxN e pode ser utilizada tanto para aintrapredição e interpredição. A partição 106 é umapartição 2NxN e é atualmente usada em HEVC parainterpredição. A partição 108 é uma partição Nx2N e é atualmente usada em HEVC para interpredição.
[0054] A figura 5 um desenho conceitual que mostra os tipos de partição assimétrica. A partição 110 é uma partição 2NxnU e é usada atualmente em HEVC para interpredição. A partição 112 é uma partição 2NxnD e éusada atualmente em HEVC para interpredição. A partição 114 é uma partição nLx2N e é usada atualmente em HEVC parainterpredição. A partição 116 é uma partição nRx2N e éusada atualmente em HEVC para interpredição.
[0055] Nesta divulgação, "NxN" e "N por N" podem ser utilizados indiferentemente para designar as dimensões de pixels de um bloco de vídeo, em termos de dimensões vertical e horizontal, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 tem 16 pixels em uma direção vertical (Y = 16) e 16 pixels na direção horizontal (x = 16). Da mesma forma, um bloco NxN geralmente tem N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor inteiro não negativo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não necessitam necessariamente de ter o mesmo número de pixels na direção horizontal que na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0056] Após intra-codificação preditiva ou inter- preditiva usando as PUs de uma UC, codificador de vídeo 20 pode calcular dados residuais aos quais as transformadas especificadas pelas TUs da UC são aplicadas. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição correspondentes as CUs. Codificador de vídeo 20 pode formar os dados residuais para a CU e, em seguida, transformar os dados residuais para produzir coeficientes de transformada.
[0057] Depois de todas as transformadas para produzir coeficientes de transformada, codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, proporcionando a compressão adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para um valor de m bits durante quantização, onde n é maior do que m.
[0058] Em alguns exemplos, codificador de vídeo 20 pode utilizar uma ordem de verificação predefinida para varredura os coeficientes de transformada quantizados para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, codificador de vídeo 20 pode realizar uma varredura adaptativa. Depois de varrer coeficientes de transformada quantizados para formar um vetor unidimensional, codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto baseada em sintaxe (SBAC), codificação de Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. Codificador de vídeo 20 pode também codificar por entropia elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0059] Para executar CABAC, codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto para um símbolo a ser transmitido. O contexto pode referir-se, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. Para executar CAVLC, codificador de vídeo 20 pode selecionar um código de comprimento variável de um símbolo a ser transmitido. Palavras de código em VLC podem ser construídas de tal forma que os códigos relativamente curtos correspondem a símbolos mais prováveis, enquanto os códigos mais longos correspondem aos símbolos menos prováveis. Neste modo, o uso de VLC pode conseguir uma economia de bit através de, por exemplo, o uso das palavras de código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto atribuído ao símbolo.
[0060] Esta divulgação está relacionada a técnicas de codificadores de entropia para codificação aritmética binária adaptativa de contexto (CABAC) ou outros codificadores de entropia, tal como codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou codificadores relacionados. A codificação aritmética é uma forma de codificação de entropia usada em muitos algoritmos de compressão que têm alta eficiência de codificação, porque é capaz de mapear símbolos para palavras de código de comprimento não inteiro. Um exemplo de um algoritmo de codificação aritmética é codificação aritmética binária adaptativa de contexto (CABAC) utilizada em H.264/AVC.
[0061] De um modo geral, codificar símbolos de dados usando CABAC envolve um ou mais das seguintes etapas:(1) Binarização: Se um símbolo a ser codificado é de valor não binário, ele é mapeado para uma sequência das assim chamadas "faixa". Cada faixa pode ter um valor de "0" ou "1".(2) Atribuição de Contexto: Cada faixa (no modo regular) é atribuída a um contexto. Um modelo de contexto determina como um contexto para uma certa faixa é calculado com base nas informações disponíveis para a faixa, como valores de símbolos previamente codificados ou número de faixa.(3) Codificação de faixa: Faixas são codificadas com um codificador aritmético. Para codificar uma faixa, o codificador aritmético requer como entrada uma probabilidade do valor da faixa, ou seja, a probabilidade de que o valor da faixa é igual a "0", e uma probabilidade de que o valor da faixa é igual a "1". A probabilidade (estimada) de cada contexto é representada por um valor inteiro chamado um "estado de contexto". Cada contexto tem um estado, e, assim, o estado (ou seja, a probabilidade estimada) é o mesmo para faixas atribuídas a um contexto, e difere entre contextos. (4) Atualização de estado: A probabilidade (estado) para um contexto selecionado é atualizada com base no valor codificado real da faixa (por exemplo, se o valor de faixa era "1", a probabilidade de "1’s" é aumentada).
[0062] Deve ser notado que a codificação de entropia de particionamento de intervalo de probabilidade (PIPE) usa princípios semelhantes aos de codificação aritmética, e, portanto, pode também utilizar as técnicas desta divulgação.
[0063] CABAC em H.264/AVC e HEVC usa estados, e cada estado está implicitamente relacionado a uma probabilidade. Existem variantes de CABAC, em que uma probabilidade de um símbolo ("0" ou "1") é usada diretamente, ou seja, a probabilidade (ou uma versão inteira dela) é o estado. Por exemplo, essas variantes de CABAC são descritas em “Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor” JCTVC-A114, 1st JCT-VC Meeting, Dresden, DE, April 2010, referido como “JCTVC-A114” doravante, e A. Alshin and E. Alshina, “Multi-parameter probability update for CABAC,” JCTVC-F254, 6th JCT-VC Meeting, Torino, IT, July 2011, referido como “JCTVC-F254” doravante.
[0064] Nesta divulgação, é proposta uma redução no número de binarizações e/ou contextos utilizados em CABAC. Em particular, esta divulgação propõe técnicas que podem reduzir os contextos de número utilizados em CABAC em até 56. Com 56 contextos menos, os resultados experimentais mostram 0,00%, 0,01% e -0,13% alterações na taxa de bit- distorção (BD) em alta eficiência intra somente, acesso aleatório e condições de teste de baixo retardo, respectivamente. Como tal, uma redução no número de contextos necessários reduz as necessidades de armazenamento em ambos o codificador e o decodificador, sem afetar significativamente a eficiência da codificação.
[0065] Nesta divulgação, uma redução no número de contextos CABAC utilizados para os elementos de sintaxe, pred_type, merge_idx, inter_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag, e coeff_abs_level_greater2_flag, é proposto. As modificações reduzem até 56 contextos com insignificantes alterações de eficiência de codificação. As reduções de contexto propostas para os elementos de sintaxe acima podem ser utilizadas isoladamente ou em qualquer combinação.
[0066] O elemento de sintaxe pred_type inclui um modo de predição (pred_mode_flag) e um tipo de partição (part_mode) para cada unidade de codificação. O elemento de sintaxe pred_mode_flag igual a 0 especifica que a unidade de codificação atual está codificada no modo de interpredição. O elemento de sintaxe pred_mode_flag igual a 1, indica que a unidade de codificação atual está codificada no modo de intrapredição. O elemento de sintaxe part_mode especifica o modo de particionamento da unidade de codificação atual.
[0067] O elemento de sintaxe merge_idx [x0] [y0] especifica o índice candidato de fusão da lista de candidatos de fusão onde x0, y0 especificam a localização (x0, y0) amostra luma superior esquerda do bloco de predição considerado em relação a amostra luma superior esquerda da imagem. Quando merge_idx [x0] [y0] não está presente, infere-se que seja igual a 0. Uma lista de candidatos de fusão é uma lista de unidades de codificação adjacentes a uma unidade atual a partir da qual as informações de movimento podem ser copiadas.
[0068] O elemento de sintaxe inter_pred_flag [x0] [y0] especifica se uni-predição, ou bi-predição é usada para a unidade de predição atual. Os índices de matriz x0, y0 especificam a localização (x0, y0) da amostra luma superior esquerda do bloco de predição considerado em relação a amostra luma superior esquerda da imagem.
[0069] O elemento de sintaxe ref_idx_lx refere-se à imagem de referência específica dentro de uma lista de imagens de referência.
[0070] Os elementos de sintaxe, cbf_cb e cbf_cr indicam se ou não blocos de transformada de croma (Cb e Cr, respectivamente) contêm coeficientes de transformada diferentes de zero. O elemento de sintaxe cbf_cb [x0] [y0] [trafoDepth] igual a 1 especifica que o bloco de transformada Cb contém um ou mais níveis de coeficiente de transformada não igual a 0. Os índices de matriz x0, y0 especificam a localização (x0, y0) da amostra luma superior esquerda do bloco de transformada considerado em relação a amostra luma superior esquerda da imagem. O índice de matriz trafoDepth especifica o nível de subdivisão atual de uma unidade de codificação em blocos com o objetivo de codificação de transformada. O índice de matriz trafoDepth é igual a 0 para os blocos que correspondem a unidades de codificação. Quando cbf_cb [x0] [y0] [trafoDepth] não está presente e o modo de predição não é intrapredição, o valor de cbf_cb [x0] [y0] [trafoDepth] é inferido para ser igual a 0.
[0071] O elemento de sintaxe cbf_cr [x0] [y0] [trafoDepth] igual a 1 especifica que o bloco de transformada Cr contém um ou mais níveis de coeficiente de transformada não igual a 0. Os índices de matriz x0, y0 especificam a localização (x0, y0) da amostra luma superior esquerda do bloco de transformada considerado em relação a amostra luma superior esquerda da imagem. O índice de matriz trafoDepth especifica o nível de subdivisão atual de uma unidade de codificação em blocos com o objetivo de codificação de transformada. O índice de matriz trafoDepth é igual a 0 para os blocos que correspondem a unidades de codificação. Quando cbf_cr [x0] [y0] [trafoDepth] não está presente e o modo de predição não é intrapredição, o valor de cbf_cr [x0] [y0] [trafoDepth] é inferido para ser igual a 0.
[0072] O elemento de sintaxe coeff_abs_level_greaterl_flag[n] especifica para a posição de varredura n se existem níveis de coeficiente de transformada maiores que 1. Quando coeff_abs _level_greater1_flag[n] não está presente, pode-se inferir para ser igual a 0.
[0073] O elemento de sintaxe coeff_abs_level_greater2_flag[n] especifica para a posição de varredura n se existem níveis de coeficiente de transformada maiores que 2. Quando coeff_abs_level_greater2_flag[n] não está presente, pode-se inferir para ser igual a 0.
[0074] Em uma proposta para HEVC, diferentes binarizações no elemento de sintaxe pred_type são utilizadas nas fatias P e B, como mostrado na Tabela 1. Esta divulgação propõe a utilização das mesmas binarizações para as fatias P e B. Exemplos são mostrados nas Tabelas 24. A Tabela 5 mostra o impacto no desempenho de codificação na fatia P em condições de teste comuns (por exemplo, ver F. Bossen, “Common test conditions and software reference configurations,” JCTVC-F900).Tabela 1. Binarização para pred type em umaproposta para HEVC
Figure img0001
[0075] Como pode ser visto na Tabela 1, Fatias I(por exemplo, fatias que incluem apenas blocos intrapreditos), incluem dois tipos diferentes de predição (pred_type). Uma sequência de faixa (binarização) é usada para um bloco intrapredito com um tipo de partição 2Nx2N, e outra sequência de faixa é utilizada para um bloco intrapredito com um tipo de partição NxN. Como mostrado na Tabela 1, a sequência de faixa utilizada para Fatias I é são dependente do tamanho da CU.
[0076] Para fatias P e B, na Tabela 1, as diferentes sequências de faixa são utilizadas para cada valor de pred_type. Mais uma vez, o valor do pred_type depende de ambos os modos de predição (interpredição ou intrapredição) e o tipo de partição usada. Para Fatias P e B, a sequência de faixa real usada ainda depende do tamanho da UC a ser codificada e se interpredição está habilitada para um tamanho de bloco 4x4.
[0077] A primeira coluna sob a sequência de faixa se aplica para os casos em que a função logarítmica do tamanho da CU da CU sendo codificada é maior do que a função logarítmica do tamanho mínimo permissível da CU. De acordo com um exemplo em HEVC, a primeira coluna de sequências de faixa é utilizada se cLog2CUSize> Log2MinCUsize. A função logarítmica é utilizada para criar um número menor de modo que um índice consecutivo menor possa ser usado.
[0078] Se a função logarítmica do tamanho da CU da CU sendo codificada é equivalente à função logarítmica do tamanho mínimo permitido da CU (isto é, cLog2CUSize == Log2MinCUSize), então uma das colunas 2 e 3 sob a sequência de faixa na Tabela 1 é usada para selecionar a binarização. A coluna 2 é usada quando a função logarítmica do tamanho da CU da CU sendo codificada é equivalente a 3 e interpredição para uma CU 4x4 não é habilitada (isto é, cLog2CUSize == 3&& !inter_4x4_enabled_flag). A coluna 3 é utilizada quando a função logarítmica do tamanho da CU da CU sendo codificada é maior do que 3, ou quando interpredição para uma CU 4x4 é habilitada (isto é, cLog2CUSize> 3||inter_4x4_enabled_flag).
[0079] A Tabela 2 mostra exemplos de binarizações onde fatias P e B usam as mesmas sequências de faixa, de acordo com um ou mais exemplos descritos nesta divulgação. Como mostrado na Tabela 2, as fatias P usam as mesmas binarizações utilizadas para fatias B na Tabela 1. Desta forma, não é necessário armazenar e usar um conjunto separado de contextos para ambas as fatias P e B. Como tal, o número total de contextos necessários para codificar o elemento de sintaxe pred_type é reduzido. Além disso, apenas um mapeamento (em vez de dois) entre a lógica de sequência de faixa (apresentada nas colunas (1) - (3)) e a sequência de faixa real necessita de ser armazenado.Tabela 2. Binarização para pred type em um exemplo da divulgação
Figure img0002
[0080] A Tabela 3 abaixo mostra um outro exemplode uma binarização para pred_type. Neste exemplo, fatias B usam as mesmas binarizações que as fatias P da Tabela 1. Tabela 4 abaixo mostra um exemplo adicional, onde fatias P e fatias B usam as mesmas binarizações. As Tabelas 2-4 são apenas para mostrar exemplos de binarizações compartilhadas entre as fatias P e B. Qualquer binarização ou regras de binarização podem ser usadas de modo que os elementos de sintaxe pred_type para ambas as fatias B e P compartilhem as mesmas binarizações.
[0081] Codificador de vídeo 20 e decodificador de vídeo 30 podem armazenar as mesmas regras de mapeamento e tabelas de mapeamento (por exemplo, como mostrado nas Tabelas 2-4) para uso com ambas as fatias P e B. Codificação e decodificação CABAC podem ser aplicadas ao elemento de sintaxe pred_type usando estes mapeamentos.
[0082] Deste modo, o codificador de vídeo 20 pode ser configurado para determinar um primeiro tipo de predição para o bloco de dados de vídeo em uma fatia P, representar o primeiro tipo de predição como um elemento de sintaxe de tipo de predição de fatia P, determinar um segundo tipo de predição para um bloco de dados de vídeo em uma fatia B, representar o segundo tipo de predição como um elemento de sintaxe de tipo de predição de fatia B, determinar uma binarização de fatia P para o elemento de sintaxe de tipo de predição de fatia P, determinar uma binarização de fatia B para o elemento de sintaxe de tipo de predição de fatia B, em que o elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B são determinados usando a mesma lógica de binarização, e codificar os dados de vídeo com base nas binarizações do elemento de sintaxe de tipo de predição de fatia P e do elemento de sintaxe de tipo de predição de fatia B.
[0083] Codificador de vídeo 20 pode ser adicionalmente configurado para binarizar o elemento de sintaxe de tipo de predição de fatia P com a binarização de fatia P determinada, binarizar o elemento de sintaxe de tipo de predição de fatia B com binarização de fatia B determinada, aplicar codificação aritmética binária adaptativa de contexto (CABAC) no elemento de sintaxe de tipo de predição de fatia P binarizado e aplicar codificação aritmética binária adaptativa de contexto (CABAC) no elemento de sintaxe de tipo de predição de fatia B binarizado.
[0084] Da mesma forma, decodificador de vídeo 30 pode ser configurado para mapear um elemento de sintaxe de tipo de predição de fatia P binarizado para um tipo de predição usando um mapeamento de binarização para um bloco de dados de vídeo em uma fatia P, mapear um elemento de sintaxe de tipo de predição de fatia B binarizado para um tipo de predição usando o mesmo mapeamento de binarização para um bloco de dados de vídeo em uma fatia B, e decodificar os dados de vídeo com base nos tipos de predição mapeados.
[0085] O decodificador de vídeo 30 pode ser adicionalmente configurado para receber um elemento de sintaxe de tipo de predição de fatia P codificado pela codificação aritmética binária adaptativa de contexto que indica o tipo de predição para o bloco de dados de vídeo em uma fatia P, receber um elemento de sintaxe de tipo de predição de fatia B codificado pela codificação aritmética binária adaptativa de contexto que indica o tipo de predição para o bloco de dados de vídeo em uma fatia B, decodificar o elemento de sintaxe de tipo de predição de fatia P para produzir o elemento de sintaxe de tipo de predição de fatia P binarizado, e decodificar o elemento de sintaxe de tipo de predição de fatia B para produzir o elemento de sintaxe de tipo de predição de fatia B binarizado.Tabela 3. Binarização para pred type em outroexemplo da divulgação
Figure img0003
Figure img0004
[0086] A Tabela 5 abaixo mostra o desempenho de codificação usando a binarização compartilhada por fatias P e B mostradas na Tabela 2. Como pode ser visto na Tabela 5, pouca ou nenhuma eficiência de codificação se perde usando os binarizações compartilhadas. P HE de baixo retardo (Alta eficiência) é uma condição de teste comum para binarizações de fatia (P) unidirecionalmente preditas. Classes A-E representam diferentes resoluções de quadros. Classe A é uma resolução 2k x 4k. Classe B é uma resolução 1920 x 1080. Classe C é uma resolução WVGA. Classe D é uma resolução WQVGA. Classe E é uma resolução 720p. Uma mudança de 0,1 a 0,2 por cento em condição de teste P HE de baixo retardo é geralmente considerada como sendo insignificante.Tabela 5. Desempenho de codificação parabinarização unificada sobre pred type
Figure img0005
Figure img0006
[0087] Opcionalmente, as mesmas binarizações (não se limitando às Tabelas 2-4) para o tipo de predição (inclui tamanho de predição e/ou modo de predição) podem ser compartilhadas em dois e mais diferentes tipos de fatias de interpredição. As fatias de interpredição podem incluir, mas não estão limitadas a:a. Fatia P: Fatia suporta apenas predição de movimento unidirecionalb. Fatia B: fatia suporta predição de movimento unidirecional e bidirecionalc. Em codificação de vídeo escalável: camada de aprimoramento pode compartilhar as mesmas binarizações com a camada de base.d. Em codificação multivista: pontos de vista diferentes podem compartilhar as mesmas binarizações.
[0088] Quando o particionamento assimétrico está habilitado, quatro contextos, igualmente distribuídos em dois conjuntos de contexto, são utilizados para CABAC nas duas últimas faixas para sinalizar o elemento de sintaxe pred_type para partições assimétricas (isto é, PART_2NxnU, PART_2NxnD, PAPvT_nLx2N, PART_nRx2N). Dependendo de se a partição está dividida ao longo da direção horizontal ou na direção vertical, um conjunto de contexto é aplicado. A segunda e última faixa (ou seja, a faixa de tipo de partição; part_mode) especifica se a CU atual tem partições simétricas ou partições assimétricas. A última faixa (ou seja, a faixa de tamanho de partição; part_mode) especifica se o formato da primeira partição é um quarto ou três quartos do tamanho da CU. A Tabela 6 mostra um exemplo de contextos do penúltimo (tipo de partição) e último (tamanho de partição) para o elemento de sintaxe pred_type.Tabela 6. Contextos para Últimas Duas Faixas da sintaxe de elemento Pred Type
Figure img0007
[0089] Esta divulgação propõe a utilização de um contexto para a penúltima faixa (ou seja, a faixa de tipo de partição) e usar o modo de bypass na última faixa (ou seja, a faixa de tamanho de partição). Como resultado, o número de contextos é reduzido de 4 para 1. A Tabela 7 mostra um exemplo de contexto utilizado de acordo com este exemplo de divulgação. A Tabela 8 mostra o desempenho de codificação associada com as alterações propostas. Alta eficiência de acesso aleatório (HE) é uma condição de teste com intervalos de acesso aleatório. B HE de baixo retardo é uma condição de teste que permite a predição bidirecional. Tabela 7. Contextos para Últimas Duas Faixas da sintaxe de elemento Pred Type de acordo com um exemplo desta divulgação.
Figure img0008
Tabela 8. Desempenho de codificação do métodoproposto para pred_type
Figure img0009
[0090] Deste modo, de acordo com este exemplo, ocodificador de vídeo 20 pode ser configurado para determinar um tipo de partição para um modo de predição para o bloco de dados de vídeo, codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo utilizando codificação aritmética binária adaptativa de contexto com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e codificar uma faixa de tamanho de partição de uma sintaxe de tipo de predição para o bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto no modo de bypass.
[0091] Do mesmo modo, de acordo com este exemplo, decodificador de vídeo 30 pode ser configurado para receber um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo que foi codificado utilizando codificação aritmética binária adaptativa de contexto (CABAC), o elemento de sintaxe de tipo de predição incluindo uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho de partição, decodificar a faixa de tipo de partição do elemento de sintaxe de tipo de predição usando codificação aritmética binária adaptativa de contexto com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e decodificar a faixa de tamanho de partição da sintaxe de tipo de predição para um bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto no modo de bypass.
[0092] Em um outro exemplo, ao codificar um tipo de partição retangular, o modo de bypass ou um único contexto pode ser utilizado para a posição que indica se o modo de partição é PART_nLx2N ou PART_nRx2N, ou se o modo é PART_2NxnU, PART_2NxnD. Usar o modo de bypass ou um único contexto, é aplicável, pois a chance de um ou outro modo de partição ser usado é cerca de 50%. Também opcionalmente, o modo de bypass ou um único contexto pode ser utilizado para a posição que indica se o modo é uma partição simétrica ou partição assimétrica.
[0093] O próximo exemplo de divulgação refere-se à sinalização em um modo de "fusão" de interpredição. No modo de fusão, o codificador instrui um decodificador, através de sinalização fluxo de bits de sintaxe predição, para copiar um vetor de movimento, o índice de referência (identificação de uma imagem de referência, em uma determinada lista de imagens de referência, para a qual o vetor de movimento aponta) e a direção de predição de movimento (que identifica a lista de imagens de referência (Lista 0 ou Lista 1), ou seja, em termos de se o quadro de referência temporal precede ou segue o quadro atualmente) a partir de um vetor de movimento candidato selecionado para uma porção atual da imagem que deve ser codificada. Isto é conseguido através de sinalização no fluxo de bits de um índice em uma lista de vetor de movimento candidato identificando o vetor de movimento candidato selecionado (isto é, o indicador candidato de preditor de vetor de movimento (MVP) espacial particular ou candidato de MVP temporal).
[0094] Assim, para o modo de fusão, a sintaxe de predição pode incluir um flag identificando o modo (neste caso, modo de "fusão") e um índice (mege_idx) identificando o candidato de vetor de movimento selecionado. Em alguns casos, o vetor de movimento candidato está em uma porção causal em referência à porção atual. Isto é, o vetor de movimento candidato terá já sido decodificado pelo decodificador. Como tal, o decodificador terá já recebido e/ou determinado o vetor de movimento, o índice de referência e direção de predição de movimento para a porção causal. Como tal, o decodificador pode simplesmente obter o vetor de movimento, o índice de referência e direção de predição de movimento associados com a porção causal da memória e copiar estes valores como a informação de movimento para a porção atual. Para reconstruir um bloco no modo de fusão, o decodificador obtém o bloco de predição usando a informação de movimento derivada para a porção atual e adiciona os dados residuais ao bloco preditivo para reconstruir o bloco codificado.
[0095] Em HM4.0, um dos cinco candidatos de fusão são sinalizados, quando a PU atual está em modo de fusão. Um código unário truncado é utilizado para representar o elemento de sintaxe merge_idx. Em uma proposta de HEVC, por CABAC, cada faixa usa um contexto. Esta divulgação propõe o uso de um contexto repetidamente em todas as quatro faixas, como mostrado na Tabela 9.Tabela 9. Contextos para Últimas Duas Faixas da sintaxe de elemento Pred Type
Figure img0010
[0096] A Tabela 10 mostra o desempenho de codificação associado a este exemplo.Tabela 10. Desempenho de codificação do método proposto em merge idx
Figure img0011
Figure img0012
[0097] Opcionalmente, mais de um contexto pode ser utilizado na codificação do índice de fusão, com algumas faixas compartilhando o mesmo contexto e algumas faixas utilizando outros contextos. Como um exemplo, apenas as faixas consecutivas compartilham o mesmo contexto. Por exemplo, bin2 e bin3 podem compartilhar um contexto; bin2 e bin4 não podem compartilhar o mesmo contexto, a menos que bin3 também esteja compartilhando o contexto.
[0098] Como outro exemplo, suponha que o número total de faixas do índice de fusão seja N (primeira faixa é Bin0, a última faixa é bin N1). Limites Y, thresi, i = 1,..., y, são usados para determinar o compartilhamento de contexto na codificação de índice de fusão. Neste exemplo, as seguintes regras indicam como contextos são compartilhados entre faixa:1. 0<Y<N (há menos limites de faixas)2. Thresl<thresl+13. 0<thres14. Thresy = N 5. Binj irá compartilhar um contexto onde i = {thresy, thresi+1 = 1}
[0099] Com base nesses padrões, o método anterior, em que um contexto é usado repetidamente em todas as quatro faixas, pode ser visto como um caso onde N = 4, Y = 1, thres1 = 4. Portanto, faixa 0 a faixa 3 estão compartilhando o mesmo contexto.
[0100] Um outro exemplo inclui a definição de N =4, Y = 2, thres1 = 2, thres2 = 4. Neste exemplo, bin0 e bin1 compartilham os mesmos contextos e bin2 e bin3 compartilham os mesmos contextos.
[0101] O flag de inter-predição {inter_pred_flag) especifica se uni-predição, ou bi-predição é usado para o PU atual. Em alguns exemplos, o índice de contexto para o flag de interpredição é igual à profundidade de CU atual. Como existem quatro possíveis profundidades de CU (0-3), existem quatro possíveis contextos para a codificação de inter_pred_flag.
[0102] Esta descrição propõe que o índice de contexto utilizado para selecionar um contexto para a codificação de inter_pred_flag é igual à profundidade de CU atual (por exemplo, o nível de decomposição quadtree para CUs), mas é limitado a um limite escolhido (isto é, é o menor da profundidade de CU atual ou um limite). O limite pode ser escolhido para ser 2 em um exemplo. Alternativamente, o índice de contexto pode ser igual à profundidade de CU máxima menos a profundidade de CU atual e limitado a um limite escolhido. Alternativamente, uma tabela de mapeamento predefinida pode ser projeta para selecionar índice de contexto por uma determinada profundidade de CU. A tabela de mapeamento pode ser implementada como um conjunto de lógica. Como resultado, 3 contextos são utilizados para codificar o elemento de sintaxe inter_pred_flag.
[0103] A Tabela 11 mostra o desempenho de codificação quando a tabela de inicialização é alterada, mas o número de contextos não é alterado. A Tabela 12 mostra o desempenho de codificação da técnica proposta, que reduz o número de contextos de 4 para 3.Tabela 11. Desempenho de Codificação de HM4.0 com inicialização CABAC modificado inter jpred flag.
Figure img0013
Tabela 12. Desempenho de codificação da técnicade redução de contexto proposta em inter pred Jlag.
Figure img0014
[0104] O índice de quadro de referência {ref_idx_lx) é sinalizado usando um código unário truncado em relação ao quadro de referência ativo na lista associada (por exemplo, lista 0 ou lista 1). Três contextos são usados para codificar o índice de quadro de referência. Um contexto para faixa 0, um contexto para faixa 1, e um contexto é usado no resto das faixas. Tabela 13 mostra um exemplo de atribuições de contexto para as faixas do código unário para ref_idx_lx.Tabela 13. Atribuição de contexto para faixas deref idx lx.
Figure img0015
Figure img0016
[0105] Esta descrição propõe usar dois contextos para codificar o código unário para ref_idx_lx; um contexto na faixa 0 e outro contexto no resto das faixas. A tabela 14 mostra um exemplo de atribuição de contexto para as faixas do código unário para ref_idx_lx de acordo com este exemplo da divulgação. A tabela 15 mostra o desempenho e codificação associado com as modificações propostas.Tabela 14 Atribuição de contexto para faixas de ref idx lx
Figure img0017
Tabela 15. Desempenho de codificação do método proposto em ref idx lx.
Figure img0018
Figure img0019
[0106] Para os elementos de sintaxe de flag de bloco codificado de croma (cbf_cb e cbf_cr), dois conjuntos de contexto diferentes (5 contextos em cada conjunto de contexto) são utilizados para CABAC. O índice do contexto atual utilizado em cada conjunto é igual à profundidade de transformada atual associada com flag de bloco codificado de croma sendo codificado. Tabela 16 mostra os conjuntos de contexto para flags de bloco codificado de croma cbf_cb e cbf cr.
Figure img0020
[0107] Esta descrição propõe que cbf_cb e cbf_crcompartilhem um conjunto de contexto. O índice do contexto atual usado em cada conjunto pode ainda ser igual à profundidade de transformada atual associada com o flag de bloco codificado de croma sendo codificado. A tabela 17 mostra os conjuntos de contexto para os flags de bloco codificados de croma cbf_cb e cbf_cr de acordo com exemplos desta divulgação. A tabela 18 mostra o desempenho de codificação associado com as modificações propostas.Tabela 17. Conjuntos de Contexto para cbf cb e cbf cr de acordo com exemplos dessa divulgação
Figure img0021
Tabela 18. Desempenho de codificação do método proposto em cbf cb e cbf cr.
Figure img0022
Figure img0023
[0108] Desta forma, de acordo com este exemplo, ambos o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar um flag de bloco codificado de croma Cb para um bloco de dados de vídeousando a codificação aritmética binária adaptativa de contexto (CABAC), em que CABAC usa um conjunto de contexto, incluindo um ou mais contextos, e codifica um flag de bloco codificado de croma Cr usando CABAC, em que CABAC usa o mesmo conjunto de contexto como o flag de bloco codificado de croma Cb. Codificador de vídeo 20 e o decodificador de vídeo 30 podem ser adicionalmente configurados para selecionar um contexto a partir de um ou mais contextos de base em uma profundidade de transformada de uma unidade de transformada associada com o bloco de dados de vídeo.
[0109] Em uma proposta de HEVC, existem doze conjuntos de contexto, tanto para ambos os coeff_abs_level_greaterl_flag e coeff_abs_level_greater2_flag. O coeff_abs_level_greater2_flag indica se um coeficiente de transformada tem um valor absoluto maior que 1. O coeff_abs_level_greater2_flag indica se um coeficiente de transformada tem um valor absoluto maior que 2. Os conjuntos de contexto são igualmente designados para o componente de luminância e de crominância, isto é, 6 conjuntos de contexto para luma e 6 contextos para croma. Cada conjunto de contexto consiste em 5 contextos. O índice do conjunto de contexto, ctxSet, é selecionado com base na coeff_abs_level_greater1_flag, o índice do contexto dentro de um conjunto de contexto, greater1Ctx, é determinado com base nos últimos até um máximo de 4. O índice de contexto pode ser representado como: ctxldx_level_greaterl = (ctxSet * 5) + Min (4, greater1Ctx)
[0110] Para coeff_abs_level_greater2_flag, o índice do contexto dentro de um conjunto de contexto, greater2Ctx, baseia-se no número de coeff_abs_level_greaterl_flag sendo um com um máximo de 4, O índice de contexto pode ser representado como:ctxldx_level_greater2 = (ctxSet * 5) + min (4, greater2Ctx) (2)greater1Ctx com base no número para coeficientes significativos e o número dos coeficientes que são maiores do que 1. Por outro lado, greater2Ctx com base no número para coeficientes que são maiores do que 1.
[0111] Em alguns exemplos, um número diferente de contextos pode ser utilizado em diferentes conjuntos de contexto, incluindo, por exemplo:1. Conjuntos de contexto para o nível maior do que 1 ou para o nível maior do que 2 podem ter número diferente de contextos. Por exemplo, o conjunto de contexto 0 e 3 poderia ter 5 contextos e o resto dos conjuntos de contexto poderiam ter dois contextos. 2. Conjuntos de contexto para coeficiente de luminância pode ter um número diferente de contextos comparado aos conjuntos de contexto para o componente de croma. Por exemplo, o conjunto de contexto 0 para luma pode ter 5 contextos e o conjunto de contexto 0 para croma poderia ter 4 contextos.3. Conjunto de contexto para o nível maior do que 1 pode ter um número diferente de contextos do que o conjunto de contexto para o nível maior do que 2. Por exemplo, o conjunto de contexto 0 para nível maios do que 1 poderia ter 5 contextos e conjunto de contexto 0 para nível maior do que 2 poderia ter apenas 3 contextos.
[0112] Em outros exemplos, um número diferente de conjuntos de contexto pode ser usado para codificação maior do que 1 ou maior do que 2, incluindo, por exemplo:1. Conjuntos de contexto para coeficiente de luminância podem ter um número diferente de conjuntos de contextos para os conjuntos de contexto utilizados para o componente de croma. Por exemplo, o luma poderia usar 6 contextos e o croma poderia usar 4 contextos.2. Conjuntos de contexto para maior do que 1 podem ter um número diferente de conjuntos de contexto para os conjuntos de contexto utilizados maiores do que 2. Por exemplo, o maior do que 1 poderia usar 6 contextos e maior do que 2 poderia utilizar 4 contextos.
[0113] Opcionalmente, uma métrica é usada para determinar quais contextos estão sendo usados em um conjunto de contexto e o intervalo de valor da métrica é maior do que o número de contextos no conjunto e contexto. Em um tal aspecto, um contexto pode ser associado a um ou mais valores da métrica. O compartilhamento de contexto é de preferência limitado a valores contínuos. Por exemplo, sendo o valor da métrica y. y = 2 está associado com o contexto 3, e y = 1 e y = 4 também podem ser associados com o contexto 3. No entanto, se y = 3 é associado ao contexto 4, y = 4 não pode ser associado com o contexto 3.
[0114] Por exemplo, para o coeff_abs_level_greater1_flag, conjunto de contexto 0 e 3 têm 5 contextos e conjunto de contexto 1, 2, 4 e 5 têm 2 contextos. Para coeff_abs_level_greater2_flag, conjunto de contexto 0, 1 e 2 têm 5 contextos e conjunto de contexto 3, 4 e 5 têm 2 contextos. Ele pode ser representado como:ctxIdx_level_greater1 = ( ctxSet * 5 ) +Min( Thres_ greater1 , greater1Ctx ) (3)if ctxSet =0 or ctxSet =3, Thres_ greater1 = 4; otherwise, Thres_ greater1 = 1.ctxIdx_level_greater2 = ( ctxSet * 5 ) +Min(Thres_ greater2, greater2Ctx ) (4)se ctxSet <3, Thres_ greater2 = 4;caso contrário, Thres_ greater2 = 1 casocontrário, Thres_ greater2 = 1Thres_greater1 e Thres_greater2 podem ser escolhidos de forma diferente com base nas seguintes situações:1. Componente de luma ou croma2. Conjuntos de contexto
[0115] Como outro exemplo, para o coeff_abs_level_greater1_flag, conjunto de contexto 0 e 3 têm 5 contextos e conjunto de contexto 1, 2, 4 e 5 têm 3 contextos. Para coeff_abs_level_greater2_flag, conjunto de contexto 0,1 e 2 têm 5 contextos e conjunto de contexto 3, 4 e 5 têm 2 contextos. Ele pode ser representado como:ctxIdx_level_greater1 = ( ctxSet * 5 ) +greater1Ctx_mapped (3)ctxIdx_level_greater2 = ( ctxSet * 5 ) +greater2Ctx_mapped (4)
[0116] Em tais exemplos, o mapa pode ser como mostrado nas Tabelas 19 e 20:Tabela 19
Figure img0024
[0117] As tabelas de inicialização de CABAC de coeff_abs_level_greater1_flag e coeff_abs_level_greater2_flag também são modificadas para o conjuntos de contexto para Thres_greater1 ou Thres_greater2 igual a 1. As modificações movem a inicialização do quinto contexto para frente para ser a inicialização do segundo contexto. Este método proposto reduz o número de contextos 120-78. Tabela 21. Desempenho de codificação do método proposto em coeff abs level greaterl flag e coeff abs level greater2 flag.
Figure img0025
Figure img0026
[0118] A Tabela 21 lista o número de contextos para todos os elementos de sintaxe mencionados nas seções anteriores. A redução total é de 56 contextos.
Figure img0027
Figure img0028
[0119] A figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20, que pode aplicar as técnicas descritas nesta divulgação. Codificador de vídeo 20 pode realizar intra e inter-codificação de blocos de vídeo em fatias de vídeo. Intracodificação se baseia na predição espacial para reduzir ou eliminar a redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. Intercodificação depende de predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros ou imagens de uma sequência de vídeo adjacente. Intramodo (modo I) pode referir-se a qualquer um dos vários modos de compressão espaciais. Intermodos, tais como predição unidirecional (modo P) ou bipredição (modo B), podem se referir a qualquer um dos vários modos de compressão temporal.
[0120] No exemplo da figura 2, codificador de vídeo 20 inclui uma unidade de particionamento 35, unidade de predição 41, memória de imagem de referência 64, somador 50, unidade de transformada 52, unidade de quantização 54, e unidade de codificação de entropia 56. A unidade de predição 41 inclui a unidade de estimação de movimento 42, unidade de compensação de movimento 44 e unidade de intrapredição 46. Para reconstrução do bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, unidade de transformada inversa 60, e o somador 62. Um filtro de desbloqueio (não mostrado na figura 2) também pode ser incluído para filtrar fronteiras dos blocos para remover artefatos de bloqueio de vídeo reconstruído. Se for o caso, o filtro de desbloqueio que tipicamente filtra a saída do somador 62. Filtros de loop adicionais (em loop ou pós-loop) também podem ser usados em adição ao filtro de desbloqueio.
[0121] Como mostrado na figura 2, codificador de vídeo 20 recebe dados de vídeo, e a unidade de particionamento 35 particiona os dados em blocos de vídeo. Esta partição pode também incluir divisão em fatias, telhas, ou outras unidades maiores, bem como particionamento bloco de vídeo, por exemplo, de acordo com uma estrutura de quadtree de LCUs e CUs. Codificador de vídeo 20 geralmente ilustra os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em vários blocos de vídeo (e, possivelmente, em conjuntos de blocos de vídeo referidos como telhas). Unidade de predição 41 pode selecionar um de uma pluralidade de possíveis modos de codificação, tal como um de uma pluralidade de modos de intracodificação ou um de uma pluralidade de modos de intercodificação, para o bloco de vídeo atual, com base em resultados de erro (por exemplo, a taxa de codificação e o nível de distorção). Unidade de predição 41 pode prover o bloco intra ou inter-codificado resultante para o somador 50 para gerar blocos de dados residuais e para o somador 62 para reconstruir o bloco codificado para ser utilizado como imagem de referência.
[0122] Unidade de intrapredição 46 dentro da unidade de predição 41 pode realizar a codificação intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou uma fatia como o bloco atual a ser codificado para prover compressão espacial. Unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de predição 41 realizam a codificação interpreditiva do bloco de vídeo atual em relação a um ou mais blocos preditivos em uma ou mais imagens de referência para prover compressão temporal.
[0123] A unidade de estimação de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB (P/B generalizada). Unidade de estimação de movimento 42 e unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. Estimação de movimento, realizada pela unidade de estimação de movimento 42, é o processo de geração de vetores de movimento, que estimam movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro ou imagem de vídeo atual em relação a um bloco de predição dentro de uma imagem de referência.
[0124] Um bloco de predição é um bloco que se encontra de modo a aproximar a PU do bloco de vídeo para ser codificada em termos de diferença de pixels, que pode ser determinada pela soma da diferença absoluta (SAD), soma de diferença quadrada (SSD) ou outros indicadores de diferença. Em alguns exemplos, codificador de vídeo 20 pode calcular valores para posições de pixel subinteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixels fracionários da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode executar uma busca de movimento em relação às posições de pixel completo e posições de pixel fracionário e emitir um vetor de movimento com precisão de pixel fracionário.
[0125] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando a posição da PU com a posição de um bloco de predição de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e unidade de compensação de movimento 44.
[0126] Compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimação de movimento, possivelmente realizando interpolações de precisão de subpixel. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagem de referência. Codificador de vídeo 20 forma um bloco de vídeo residual, subtraindo os valores de pixel do bloco de predição dos valores de pixel do bloco de vídeo atual a ser codificado, formando os valores de diferença de pixels. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir ambos componentes de diferença de croma e luma. O somador 50 representa o componente ou componentes que realizam esta operação de subtração. Unidade de compensação de movimento 44 pode também gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para utilização pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0127] A unidade de intrapredição 46 pode intrapredizer um bloco atual, como uma alternativa para a interpredição realizada pela unidade de estimação de movimento 42 e a unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intrapredição 46 pode determinar um modo de intrapredição a ser usado para codificar um bloco atual. Em alguns exemplos, unidade de intrapredição 46 pode codificar um bloco atual utilizando vários modos de intrapredição, por exemplo, durante passagens de codificação separadas, e unidade de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição apropriado para usar a partir dos modos testados. Por exemplo, a unidade de intrapredição 46 pode calcular os valores das taxas de distorção usando uma análise da taxa de distorção para os vários modos de intrapredição testados, e selecionar o modo de intrapredição tendo as melhores características de taxa de distorção entre os modos testados. A análise da frequência de distorção determina geralmente uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usados para produzir o bloco codificado. Unidade de intrapredição 46 pode calcular a partir as razões das distorções e das taxas para os vários blocos codificados para determinar qual modo de intrapredição apresenta o melhor valor da taxa de distorção para o bloco.
[0128] Em qualquer caso, depois de selecionar um modo de intrapredição para um bloco, a unidade de intrapredição 46 pode proporcionar informação indicativa do modo de intrapredição selecionado para o bloco para unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar a informação que indica o modo de intrapredição selecionado de acordo com as técnicas desta divulgação. Codificador de vídeo 20 pode incluir nos dados de configuração de fluxo de bits transmitidos, que pode incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição modificadas (também referidas como tabelas de mapeamento de palavras de código), definições de contextos de codificação para vários blocos, e indicações de um modo de intrapredição mais provável, uma tabela de índice de modo de intrapredição, e uma tabela de índice de modo de intrapredição modificada para usar para cada um dos contextos.
[0129] Após a unidade de predição 41 gerar o bloco de predição para o bloco de vídeo atual, quer através de interpredição ou intrapredição, codificador de vídeo 20 forma um bloco de vídeo residual, subtraindo o bloco preditivo do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados a unidade de transformada 52. Unidade de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais usando uma transformada, tal como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar. A unidade de transformada 52 pode converter os dados de vídeo residuais de um domínio de pixel para um domínio de transformada, tal como um domínio de frequências.
[0130] Unidade de transformada 52 pode enviar coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantifica os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando um parâmetro de quantização. Em alguns exemplos, unidade de quantização 54 pode, em seguida, realizar uma varredura da matriz incluindo coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura. Como um exemplo, as técnicas de codificação descritas nesta divulgação podem ser realizadas total ou parcialmente pela unidade de codificação de entropia 56. No entanto, aspectos da presente divulgação não são tão limitados. Por exemplo, as técnicas de codificação descritas nesta divulgação podem ser realizadas por um componente do codificador de vídeo 20 não mostrado na figura 2, tal como um processador ou qualquer outro componente. Em alguns exemplos, as técnicas de codificação da presente divulgação podem ser realizadas por uma das outras unidades ou módulos representados na figura 2. Em ainda outros exemplos, as técnicas de codificação da presente divulgação podem ser realizadas por uma combinação de unidades de módulos do codificador de vídeo 20. Deste modo, o codificador de vídeo 20 pode ser configurado para realizar as técnicas exemplares descritas nesta divulgação.
[0131] Após a quantização, a unidade de codificação de entropia 56 codifica por entropia coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), com base em codificação de sintaxe aritmética binária adaptativa de contexto (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia. Após a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30 ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. Unidade de codificação de entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que está sendo codificada.
[0132] Em um exemplo da descrição, a unidade de codificação de entropia 56 pode ser configurada para determinar um primeiro tipo de predição para o bloco de dados de vídeo em uma fatia P, representar o primeiro tipo de predição como um elemento de sintaxe de tipo de predição de fatia P, determinar um segundo tipo de predição para um bloco de dados de vídeo em uma fatia B, representar o segundo tipo de predição como um elemento de sintaxe de tipo de predição de fatia B, determinar uma binarização de fatia P para o elemento de sintaxe de tipo de predição de fatia P, determinar uma binarização de fatia B para o elemento de sintaxe de tipo de predição de fatia B, em que o elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B são determinados usando a mesma lógica de binarização, e codificar os dados de vídeo com base nas binarizações de elemento de sintaxe de tipo de predição de fatia P e no elemento de sintaxe de tipo de predição de fatia B.
[0133] Em um outro exemplo da descrição, a unidade de codificação de entropia 56 pode ser configurada para determinar um tipo de partição para um modo de predição para o bloco de dados de vídeo, codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e codificar uma faixa de tamanho de partição de uma sintaxe de tipo de predição para o bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto no modo de bypass.
[0134] Em outro exemplo da divulgação, unidade de codificação de entropia 56 pode ser configurada para codificar um flag de bloco codificado de croma Cb para um bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto (CABAC), em que CABAC utiliza um conjunto de contexto, incluindo uma ou mais contextos e codifica um flag de bloco codificado de croma Cr usando CABAC, em que CABAC usa o mesmo conjunto de contexto que o flag de bloco codificado de croma Cb. Codificador de vídeo 20 e o decodificador de vídeo 30 podem ser adicionalmente configurados para selecionar um contexto a partir de um ou mais contextos baseados em uma profundidade de transformada de uma unidade de transformada associada com o bloco de dados de vídeo.
[0135] Unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio do pixel para utilização posterior como um bloco de referência da imagem de referência. Unidade de compensação de movimento 44 pode calcular um bloco de referência, adicionando o bloco residual a um bloco de predição de uma das imagens de referência dentro de uma das listas de imagem de referência. Unidade de compensação de movimento 44 pode também aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores dos pixels subinteiros para utilização na estimação de movimento. Somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado por movimento produzido pela unidade de compensação de movimento 44, para produzir um bloco de referência para armazenamento na memória de imagem de referência 64. O bloco de referência pode ser utilizado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 na forma de um bloco de referência para interpredizer um bloco em um quadro ou imagem de vídeo posterior.
[0136] A figura 3 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo 30 que pode implementar as técnicas descritas nesta divulgação. No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 80, unidade de predição 81, unidade de quantização inversa 86, unidade de transformada inversa 88, somador 90, e memória de imagem de referência 92. A unidade de predição 81 inclui a unidade de compensação de movimento 82 e unidade de intrapredição 84. O codificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita com relação ao codificador de vídeo 20, da figura 2.
[0137] Durante o processo de decodificação, decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificado e elementos de sintaxe associados a partir do codificador de vídeo 20. A unidade de decodificação de entropia 80 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento, e outros elementos de sintaxe. A unidade de decodificação de entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para unidade de predição 81. Decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0138] Como um exemplo, as técnicas de codificação descritas nesta divulgação podem ser realizadas total ou parcialmente pela unidade de decodificação de entropia 80. No entanto, aspectos da presente divulgação não são tão limitados. Por exemplo, as técnicas de codificação descritas nesta divulgação podem ser realizadas por um componente de decodificador de vídeo 30 não mostrado na figura 3, tal como um processador ou qualquer outro componente. Em alguns exemplos, as técnicas de codificação da presente divulgação podem ser realizadas por uma das outras unidades ou módulos representados na figura 3. Em ainda outros exemplos, as técnicas de codificação da presente divulgação podem ser realizadas por uma combinação de unidades e módulos de decodificador de vídeo 30. Desta forma, o decodificador de vídeo 30 pode ser configurado para realizar as técnicas exemplares descritas nesta divulgação.
[0139] Em um exemplo da descrição, a unidade de decodificação de entropia 80 pode ser configurada para mapear um elemento de sintaxe de tipo de predição de fatia P binarizado para um tipo de predição usando um mapeamento de binarização para um bloco de dados de vídeo em uma fatia P, mapear uma fatia B binarizada de elemento de sintaxe de tipo de predição para um tipo de predição, usar o mesmo mapeamento de binarização para um bloco de dados de vídeo em uma fatia B, e decodificar os dados de vídeo, com base nos tipos de predição mapeados.
[0140] Em um exemplo da descrição, a unidade de decodificação de entropia 80 pode ser configurada para receber um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo que foi codificado utilizando codificação aritmética binária adaptativa de contexto (CABAC), o elemento de sintaxe de tipo de predição incluindo uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho da partição, decodificar a faixa de tipo de partição do elemento de sintaxe de tipo de predição usando codificação aritmética binária adaptativa de contexto com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição, e decodificar a faixa de tamanho de partição da sintaxe de tipo de predição para um bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto no modo de bypass.
[0141] Em outro exemplo da divulgação, a unidade de decodificação de entropia 80 pode ser configurada para codificar um flag de bloco codificado de croma Cb para um bloco de dados de vídeo usando o codificação aritmética binária adaptativa de contexto (CABAC), em que CABAC utiliza um conjunto de contexto, incluindo uma ou mais contextos e codifica um flag de bloco codificado de croma Cr usando CABAC, em que CABAC usa o mesmo conjunto de contexto que o flag de bloco codificado de croma Cb. Codificador de vídeo 20 e o decodificador de vídeo 30 podem ser adicionalmente configurados para selecionar um contexto de um ou mais contextos baseados em uma profundidade de transformada a de uma unidade de transformada associada com o bloco de dados de vídeo.
[0142] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 84 da unidade de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual, com base em um modo de intrapredição sinalizado e dados a partir de blocos do quadro ou imagem atual previamente decodificado. Quando o quadro de vídeo é codificado como uma fatia intercodificada (ou seja, B, P ou GPB) a unidade de compensação de movimento 82 da unidade de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual, com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 80. Os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. Decodificador de vídeo 30 pode construir as listas de quadros de referência, lista 0 e lista 1, utilizando técnicas de construção padrão com base em imagens de referência armazenadas na memória de imagem de referência 92.
[0143] A unidade de compensação de movimento 82 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual analisando os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual que está sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza algum dos elementos de sintaxe recebidos para determinar o modo de predição (por exemplo, intra ou interpredição) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, estado de interpredição para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0144] Unidade de compensação de movimento 82 pode também realizar a interpolação com base em filtros de interpolação. Unidade de compensação de movimento 82 pode usar como filtros de interpolação utilizados pelo codificador de vídeo 20 durante a codificação de blocos de vídeo para calcular os valores interpolados para pixels subinteiros de blocos de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20, a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos preditivos.
[0145] Unidade de quantização inversa 86 quantifica inversamente, ou seja, desquantifica, coeficientes de transformada quantizados preditos no fluxo de bits e decodificados pela unidade de decodificação de entropia 80. O processo de quantização inversa pode incluir a utilização de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa que deve ser aplicado. A unidade de transformada inversa 88 aplica transformada inversa, por exemplo, uma DTC inversa, uma transformada inversa de número inteiro, ou conceitualmente semelhante ao processo de transformada inversa, aos coeficientes de transformada, a fim de produzir blocos residuais no domínio do pixel.
[0146] Após a unidade de compensação de movimento 82 gerar o bloco de predição para o bloco de vídeo atual, com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais a partir da unidade de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. Somador 90 representa o componente ou componentes que executam esta operação de soma. Se desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados, a fim de remover artefatos de bloqueio. Outros filtros de loop (ou no loop de codificação ou depois do loop de codificação) também podem ser usados para suavizar as transições de pixel, ou de outra forma melhorar a qualidade do vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados na memória de imagem de referência 92, que armazena imagens de referência utilizadas para compensação de movimento subsequente. Memória de imagem de referência 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como dispositivo de exibição 32 da figura 1.
[0147] A figura 6 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação. O método da figura 6 pode ser implementado pelo codificador de vídeo 20. Codificador de vídeo 20 pode ser configurado para determinar um primeiro tipo de predição para um bloco de dados de vídeo em uma fatia P (602), e para representar o primeiro tipo de predição como um elemento de sintaxe de tipo de predição de fatia P (604). Codificador de vídeo 20 pode ser adicionalmente configurado para determinar um segundo tipo de predição para o bloco de dados de vídeo em uma fatia B (606), e representar o segundo tipo de predição como um elemento de sintaxe de tipo de predição de fatia B (608). O elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B especificam um modo de predição e um tipo de partição. O modo de predição pode incluir uma de interpredição e intrapredição. O tipo de partição pode incluir uma das partições simétricas e partições assimétricas.
[0148] Codificador de vídeo 20 pode ser adicionalmente configurado para determinar uma binarização de fatia P para o elemento de sintaxe de tipo de predição de fatia P (610), e para determinar a binarização de fatia B para o elemento de sintaxe de tipo de predição de fatia B, em que o elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B são determinados usando a mesma lógica de binarização (612). Codificador de vídeo 20 pode, em seguida, codificar os dados de vídeo com base nas binarizações do elemento de sintaxe de tipo de predição de fatia P e do elemento de sintaxe de tipo de predição de fatia B (614).
[0149] A codificação dos dados de vídeo pode compreender binarizar o elemento de sintaxe de tipo de predição de fatia P com as binarizações de fatia P determinada, binarizar o elemento de sintaxe de tipo de predição de fatia B com os determinados binarizações de fatia B, aplicando codificação aritmética binária adaptativa de contexto (CABAC) ao elemento de sintaxe de tipo de predição de fatia P binarizado e codificação aritmética binária adaptativa de contexto (CABAC) ao elemento de sintaxe de tipo de predição de fatia B binarizado.
[0150] A figura 7 é um fluxograma que ilustra um método para decodificação de vídeo exemplar da divulgação. O método da figura 7 pode ser implementado pelo decodificador de vídeo 30. Decodificador de vídeo 30 pode ser configurado para receber um elemento de sintaxe de tipo de predição de fatia P codificado por aritmética binária adaptativa de contexto que indica o tipo de predição para o bloco de dados de vídeo em uma fatia P (702), e para receber um elemento de sintaxe de tipo de predição de fatia B codificado por aritmética binária adaptativa de contexto que indica o tipo de predição para o bloco de dados de vídeo em uma fatia B (704). O elemento de sintaxe de tipo de predição de fatia P e o elemento de sintaxe de tipo de predição de fatia B especificam um modo de predição e um tipo de partição. O modo de predição pode incluir uma das interpredição e intrapredição. O tipo de partição pode incluir uma das partições simétricas e partições assimétricas.
[0151] O decodificador de vídeo 30 pode ser adicionalmente configurado para decodificar o elemento de sintaxe de tipo de predição de fatia P para a produção de um elemento de sintaxe de tipo de predição de fatia P binarizado (706), e para decodificar o elemento de sintaxe de tipo de predição de fatia B para produzir um elemento de sintaxe de tipo de predição de fatia B binarizado (708). O decodificador de vídeo 30 pode ser adicionalmente configurado para mapear o elemento de sintaxe de tipo de predição de fatia P binarizado para um tipo de predição usando um mapeamento de binarização para um bloco de dados de vídeo em uma fatia P (710), e para mapear o elemento de sintaxe de tipo de predição de fatia B binarizado para um tipo de predição usando o mesmo mapeamento de binarização para um bloco de dados de vídeo em uma fatia B (712). Decodificador de vídeo 30 pode, em seguida decodificar os dados de vídeo com base nos tipos de predição mapeados (714).
[0152] A figura 8 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação. O método da figura 8 pode ser implementado pelo codificador de vídeo 20. O codificador de vídeo 20 pode ser configurado para determinar um tipo de partição para um modo de predição para o bloco de dados de vídeo (802) e para codificar uma faixa de tipo de partição de um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando codificação aritmética binária adaptativa de contexto (CABAC) com um único contexto (804). O único contexto é o mesmo para qualquer tipo de partição. Em um exemplo, o tipo de partição é uma partição assimétrica e a faixa de tipo de partição indica se a partição assimétrica é particionada verticalmente ou particionada horizontalmente. Por exemplo, a faixa de tamanho de partição indica se uma primeira partição é um quarto do tamanho do bloco de dados de vídeo ou se a primeira partição é de três quartos do tamanho do bloco de dados de vídeo.
[0153] O codificador de vídeo 20 pode ser adicionalmente configurado para codificar uma faixa de tamanho de partição do elemento de sintaxe de tipo de predição para o bloco de dados de vídeo usando CABAC no modo de bypass (806).
[0154] A figura 9 é um fluxograma que ilustra um método para decodificação de vídeo exemplar da divulgação. O método da figura 9 pode ser implementado pelo decodificador de vídeo 30. Decodificador de vídeo 30 pode ser configurado para receber um elemento de sintaxe de tipo de predição para o bloco de dados de vídeo que foi codificado utilizando codificação aritmética binária adaptativa de contexto (CABAC), o elemento de sintaxe de tipo de predição, incluindo uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho da partição (902). Em um exemplo, o tipo de partição é uma partição assimétrica e a faixa de tipo de partição indica se a partição assimétrica é particionada verticalmente ou particionada horizontalmente. Por exemplo, a faixa de tamanho de partição indica se uma primeira partição é um quarto do tamanho do bloco de dados de vídeo ou se a primeira partição é de três quartos do tamanho do bloco de dados de vídeo.
[0155] O decodificador de vídeo 30 pode ser adicionalmente configurado para decodificar a faixa de tipo de partição do elemento de sintaxe de tipo de predição usando CABAC com um único contexto, em que o único contexto é o mesmo para qualquer tipo de partição (904), e para decodificar a faixa de tamanho de partição do elemento de sintaxe de tipo de predição usando CABAC no modo de bypass (906).
[0156] A figura 10 é um fluxograma que ilustra um método para codificação de vídeo exemplar da divulgação. O método da figura 10 pode ser implementado por qualquer codificador de vídeo 20 ou decodificador de vídeo. Para os fins da figura 10, codificador de vídeo 20 e decodificador de vídeo 30 serão referidos, coletivamente, como um codificador de vídeo. De acordo com as técnicas da figura 10, um codificador de vídeo pode ser configurado para codificar um flag de bloco codificado de croma Cb para um bloco de dados de vídeo usando a codificação aritmética binária adaptativa de contexto (CABAC), em que a compreende o uso de um conjunto de contexto, incluindo um ou mais contextos como parte de CABAC (1002) e codificar um flag de bloco codificado de croma Cr usando CABAC, em que a codificação do flag de bloco codificado de croma Cr compreende usar o mesmo conjunto de contexto que o flag de bloco codificado de croma Cb como parte de CABAC (1004). Em um exemplo, o conjunto de contexto inclui 5 contextos.
[0157] Em um exemplo opcional da divulgação, um codificador de vídeo pode ser adicionalmente configurado para selecionar um contexto de um ou mais contextos asseados em uma profundidade de transformada de uma unidade de transformada associada com o bloco de dados de vídeo (1006).
[0158] Ao funcionar como um encodificador de vídeo, um codificador de vídeo pode ser adicionalmente configurado para sinalizar o Flag de bloco codificado de croma Cb codificado em um fluxo de bits de vídeo codificado, e sinalizar o Flag de bloco codificado de croma Cr codificado no fluxo de bits de vídeo codificado. Ao funcionar como um decodificador de vídeo, um codificador de vídeo pode ser adicionalmente configurado para receber o flag de bloco codificado de croma Cb codificado em um fluxo de bits de vídeo codificado, e receber o flag de bloco codificado de croma Cr codificado no fluxo de bits de vídeo codificado.
[0159] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas, como um ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Mídia legível por computador pode incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível, tal como mídia de armazenamento de dados ou mídia de comunicação, incluindo qualquer meio que facilita a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Deste modo, meios legíveis por computador podem geralmente corresponder a (1) meios de armazenamento legíveis por computador tangíveis que são não transitórios ou (2) um meio de comunicação, tal como um sinal ou onda de portadora. Meios de armazenamento de dados podem ser qualquer meio de comunicação disponível, que pode ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções de código, e/ou estruturas de dados para a execução das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[0160] A título de exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem incluir RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que pode ser usado para armazenar o código de programa desejado, sob a forma de instruções ou estruturas de dados, e que pode ser acessado por um computador. Além disso, qualquer conexão é corretamente considerada um meio legível por computador. Por exemplo, se as instruções são transmitidas a partir de um site, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, tais como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, tais como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve ser entendido, no entanto, que meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas de portadora, sinais, ou outras mídia transiente, mas são em vez disso direcionados para os meios de armazenamento reais não transitórios. Disco e disquete, como aqui utilizado, incluem disco compacto (CD), disco laser, disco óptico, disco digital versátil (DVD), disquete e disco Blu-ray, onde disquetes geralmente reproduzem dados magneticamente, enquanto que discos reproduzem dados opticamente com lasers. Combinações dos anteriores também devem ser incluídas no âmbito de meios legíveis por computador.
[0161] As instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), arranjo de lógica programáveis em campo (FPGA), ou outro equivalente integrado ou circuitos lógicos discretos. Por conseguinte, o termo "processador", tal como aqui utilizado pode referir-se a qualquer estrutura anterior ou em qualquer outra estrutura adequada para a aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de um hardware dedicado e/ou módulos de software configurado para codificação e decodificação, ou incorporada em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0162] As técnicas da presente divulgação podem ser implementadas em uma vasta variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar os aspectos funcionais de dispositivos configurados para executar as técnicas divulgadas, mas não precisam necessariamente de realização por diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por um conjunto de unidades de hardware interoperativos, incluindo um ou mais processadores, como descrito acima, em conjunto com o software e/ou firmware adequado.
[0163] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do âmbito das seguintes reivindicações.

Claims (10)

1. Método para codificar (804) dados de vídeo CARACTERIZADO pelo fato de que compreende:determinar (802) como tipo de partição uma partição assimétrica para um modo de predição para um bloco de dados de vídeo;codificar (804) uma faixa de tipo de partição de um elemento de sintaxe usando codificação aritmética binária adaptativa ao contexto (CABAC) com um único contexto, o elemento de sintaxe indicando como o bloco de dados de vídeo é particionado, em que o elemento de sintaxe compreende uma sequência binária, em que a faixa de tipo de partição indica se o bloco de dados de vídeo é particionado simetricamente ou particionado assimetricamente, em que a faixa de tipo de partição é a penúltima faixa da sequência binária, em que o único contexto é o mesmo para qualquer partição assimétrica, e em que o único contexto é um modelo de probabilidade; ecodificar (806) uma faixa de tamanho de partição do elemento de sintaxe usando CABAC em modo bypass.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a faixa de tamanho de partição é a última faixa da sequência binária, e em que a faixa de tamanho de partição indica se uma primeira partição é um quarto de um tamanho do bloco de dados de vídeo ou se a primeira partição é três quartos do tamanho do bloco de dados de vídeo.
3. Método para decodificar dados de vídeo CARACTERIZADO pelo fato de que compreende:receber (902) um elemento de sintaxe para um bloco de dados de vídeo que foi codificado usando codificação aritmética binária adaptativa ao contexto (CABAC), o elemento de sintaxe indicando como o bloco de dados de vídeo é particionado, o elemento de sintaxe incluindo uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho de partição;decodificar (904) a faixa de tipo de partição do elemento de sintaxe usando CABAC com um único contexto, em que o elemento de sintaxe compreende uma sequência binária, em que a faixa de tipo de partição indica se o bloco de dados de vídeo é particionado simetricamente ouparticionado assimetricamente, em que a faixa de tipo de partição é a penúltima faixa da sequência binária, em que o único contexto é o mesmo para qualquer partição assimétrica , e em que o único contexto é um modelo de probabilidade; e decodificar (906) a faixa de tamanho de partição do elemento de sintaxe usando CABAC em modo bypass; e determinar (802) como tipo de partição uma partição assimétrica para um modo de predição para o bloco de dados de vídeo com base na faixa de tipo de partição decodificada e na faixa de tamanho de partição decodificada.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a faixa de tamanho de partição é a última faixa da sequência binária, e em que a faixa de tamanho de partição indica se uma primeira partição é um quarto do tamanho do bloco de dados de vídeo ou se a primeira partição é três quartos do tamanho do bloco de dados de vídeo.
5. Aparelho (20) configurado para codificar dados de vídeo, o aparelho CARACTERIZADO pelo fato de que compreende:uma memória configurada para armazenar um bloco de dados de vídeo; eum codificador de vídeo configurado para: determinar como tipo de partição uma partição assimétrica para um modo de predição para o bloco de dados de vídeo;codificar uma faixa de tipo de partição de um elemento de sintaxe usando codificação aritmética binária adaptativa ao contexto (CABAC) com um único contexto, o elemento de sintaxe indicando como o bloco de dados de vídeo é particionado, em que o elemento de sintaxe compreende uma sequência binária, em que a faixa de tipo de partição indica se o bloco de dados de vídeo é particionado simetricamente ou particionado assimetricamente, em que a faixa de tipo de partição é a penúltima faixa da sequência binária, em que o único contexto é o mesmo para qualquer partição assimétrica, e em que o único contexto é um modelo de probabilidade; ecodificar uma faixa de tamanho de partição do elemento de sintaxe usando CABAC em modo bypass.
6. Aparelho, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a faixa de tamanho de partição é a última faixa da sequência binária, e em que a faixa de tamanho de partição indica se uma primeira partição é um quarto de um tamanho do bloco de dados de vídeo ou se a primeira partição é três quartos do tamanho do bloco de dados de vídeo.
7. Aparelho (30) configurado para decodificar dados de vídeo, o aparelho CARACTERIZADO pelo fato de que compreende:uma memória configurada para armazenar um bloco de dados de vídeo; eum decodificador de vídeo configurado para:receber um elemento de sintaxe para o bloco de dados de vídeo que foi codificado usando codificação aritmética binária adaptativa ao contexto (CABAC), o elemento de sintaxe indicando como o bloco de dados de vídeo é particionado, o elemento de sintaxe incluindo uma faixa de tipo de partição representando um tipo de partição e uma faixa de tamanho de partição representando um tamanho de partição;decodificar a faixa de tipo de partição do elemento de sintaxe usando CABAC com um único contexto, em que o elemento de sintaxe compreende uma sequência binária, em que a faixa de tipo de partição indica se o bloco de dados de vídeo é particionado simetricamente ou particionado assimetricamente, em que a faixa de tipo de partição é a penúltima faixa da sequência binária, em que o único contexto é o mesmo para qualquer partição assimétrica, e em que o único contexto é um modelo de probabilidade; edecodificar a faixa de tamanho de partição do elemento de sintaxe usando CABAC em modo bypass; edeterminar como tipo de partição uma partição assimétrica para um modo de predição para o bloco de dados de vídeo com base na faixa de tipo de partição decodificada e na faixa de tamanho de partição decodificada.
8. Aparelho, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a faixa de tamanho de partição é a última faixa da sequência binária, e em que a faixa de tamanho de partição indica se uma primeira partição é um quarto do tamanho do bloco de dados de vídeo ou se a primeira partição é três quartos do tamanho do bloco de dados de vídeo.
9. Meio de armazenamento legível por computador CARACTERIZADO pelo fato de que armazena instruções que, quando executadas, fazem com que um ou mais processadores configurados para codificar dados de vídeo realizem o método conforme definido em qualquer uma das reivindicações 1 ou 2.
10. Meio de armazenamento legível por computador CARACTERIZADO pelo fato de que armazena instruções que, quando executadas, fazem com que um ou mais processadores configurados para decodificar dados de vídeo realizem o método conforme definido em qualquer uma das reivindicações 3 ou 4.
BR112014011060-3A 2011-11-08 2012-10-05 Número de redução de contextos para codificação aritmética binária adaptativa de contexto BR112014011060B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161557325P 2011-11-08 2011-11-08
US61/557,325 2011-11-08
US201161561911P 2011-11-20 2011-11-20
US61/561,911 2011-11-20
US13/645,308 US9451287B2 (en) 2011-11-08 2012-10-04 Context reduction for context adaptive binary arithmetic coding
US13/645,308 2012-10-04
PCT/US2012/059095 WO2013070354A1 (en) 2011-11-08 2012-10-05 Number of contexts reduction for context adaptive binary arithmetic coding

Publications (3)

Publication Number Publication Date
BR112014011060A2 BR112014011060A2 (pt) 2017-06-13
BR112014011060A8 BR112014011060A8 (pt) 2017-06-20
BR112014011060B1 true BR112014011060B1 (pt) 2021-07-13

Family

ID=48223670

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112014011065-4A BR112014011065B1 (pt) 2011-11-08 2012-10-05 Número de redução de contexto para codificação aritmética binária adaptativa ao contexto
BR112014011063-8A BR112014011063B1 (pt) 2011-11-08 2012-10-05 Redução de contexto para codificação aritmética binária adaptativa de contexto
BR112014011060-3A BR112014011060B1 (pt) 2011-11-08 2012-10-05 Número de redução de contextos para codificação aritmética binária adaptativa de contexto

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR112014011065-4A BR112014011065B1 (pt) 2011-11-08 2012-10-05 Número de redução de contexto para codificação aritmética binária adaptativa ao contexto
BR112014011063-8A BR112014011063B1 (pt) 2011-11-08 2012-10-05 Redução de contexto para codificação aritmética binária adaptativa de contexto

Country Status (21)

Country Link
US (5) US9288508B2 (pt)
EP (4) EP3442126A1 (pt)
JP (3) JP5964448B2 (pt)
KR (3) KR101633200B1 (pt)
CN (3) CN104040900B (pt)
AU (3) AU2012336323B2 (pt)
BR (3) BR112014011065B1 (pt)
CA (3) CA2854822C (pt)
DK (2) DK2777160T5 (pt)
ES (3) ES2549145T3 (pt)
HK (2) HK1198401A1 (pt)
HU (2) HUE027592T2 (pt)
IL (7) IL232288A (pt)
IN (3) IN2014CN03460A (pt)
MY (4) MY166487A (pt)
PL (2) PL2777160T3 (pt)
PT (2) PT2777160E (pt)
RU (1) RU2602380C2 (pt)
SG (3) SG11201401682YA (pt)
WO (3) WO2013070353A1 (pt)
ZA (2) ZA201404184B (pt)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084511A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Simplified entropy coding for sub-block based motion information list
WO2011146451A1 (en) * 2010-05-20 2011-11-24 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
WO2013039692A1 (en) * 2011-09-16 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
EP2763414B1 (en) 2011-09-29 2020-09-23 Sharp Kabushiki Kaisha Image decoding device and image decoding method for performing bi-prediction to uni-prediction conversion
US10110891B2 (en) 2011-09-29 2018-10-23 Sharp Kabushiki Kaisha Image decoding device, image decoding method, and image encoding device
CN108235015A (zh) * 2011-11-08 2018-06-29 三星电子株式会社 用于对视频进行解码的设备
US9288508B2 (en) * 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
MY172302A (en) * 2012-04-15 2019-11-21 Samsung Electronics Co Ltd Method and apparatus for determining reference images for inter-prediction
EP3361734B1 (en) * 2012-07-02 2019-12-11 Samsung Electronics Co., Ltd. Entropy coding of a video and entropy decoding of a video
JP6341426B2 (ja) * 2012-09-10 2018-06-13 サン パテント トラスト 画像復号化方法および画像復号化装置
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
WO2015006281A2 (en) * 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc
US9571858B2 (en) 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
EP3033886B1 (en) * 2013-11-27 2021-01-06 HFI Innovation Inc. Method of video coding using prediction based on intra picture block copy
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
US20180091810A1 (en) * 2015-03-23 2018-03-29 Lg Electronics Inc. Method for processing video signal and device therefor
CN106375762B (zh) * 2015-07-22 2019-05-24 杭州海康威视数字技术股份有限公司 参考帧数据压缩方法及其装置
KR102471209B1 (ko) * 2016-09-20 2022-11-25 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
FR3064145A1 (fr) * 2017-03-16 2018-09-21 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
WO2019083393A1 (en) * 2017-10-27 2019-05-02 Huawei Technologies Co., Ltd. METHODS AND APPARATUSES FOR SIGNALING PARTITIONING INFORMATION FOR IMAGE ENCODING AND DECODING
CN111819857A (zh) * 2018-03-14 2020-10-23 联发科技股份有限公司 用于视频编解码的优化分割结构的方法和装置
CN111937404B (zh) * 2018-03-26 2023-12-15 寰发股份有限公司 一种用于视频编码器或解码器的视频编解码方法及装置
CN117119195A (zh) 2018-03-29 2023-11-24 弗劳恩霍夫应用研究促进协会 变换系数块编码
HUE061846T2 (hu) 2018-06-15 2023-08-28 Lg Electronics Inc Eljárás és berendezés CABAC-alapú entrópiás kódoláshoz
CN117714717A (zh) 2018-09-10 2024-03-15 华为技术有限公司 视频解码方法及视频解码器
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
EP3866473A4 (en) * 2018-10-09 2023-02-15 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS, AND VIDEO ENCODING METHOD AND APPARATUS
WO2020094049A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Extensions of inter prediction with geometric partitioning
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
KR20210130809A (ko) * 2019-03-05 2021-11-01 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 하이브리드 비디오 코딩 도구를 위한 사용 사례 기반 컨텍스트 모델 선택
AU2020256658A1 (en) 2019-04-12 2021-10-28 Beijing Bytedance Network Technology Co., Ltd. Most probable mode list construction for matrix-based intra prediction
WO2020221372A1 (en) * 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
CN114051735A (zh) 2019-05-31 2022-02-15 北京字节跳动网络技术有限公司 基于矩阵的帧内预测中的一步下采样过程
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
EP3963885A4 (en) 2019-06-05 2022-12-14 Beijing Bytedance Network Technology Co., Ltd. DETERMINING CONTEXT FOR MATRIX-BASED INTRAPREDICTION
US11146823B2 (en) 2019-06-25 2021-10-12 Qualcomm Incorporated Signalling chroma quantization parameter (QP) mapping tables
WO2021041156A1 (en) * 2019-08-23 2021-03-04 Tencent America LLC Method and apparatus for video coding
WO2021068922A1 (en) * 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Deblocking of blocks coded in geometry partition mode
CN115211125A (zh) 2020-03-03 2022-10-18 字节跳动有限公司 视频编解码中的低频不可分变换信令通知

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735775B1 (en) 1995-03-31 2003-05-14 Canon Kabushiki Kaisha Image processing apparatus and method
US7466843B2 (en) * 2000-07-07 2008-12-16 Pryor Timothy R Multi-functional control and entertainment systems
US6961055B2 (en) 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
CN1874509B (zh) * 2001-09-14 2014-01-15 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和系统
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
CN101043626B (zh) 2002-07-15 2010-06-09 株式会社日立制作所 动态图像编码方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
GB2401502B (en) 2003-05-07 2007-02-14 British Broadcasting Corp Data processing
EP1625488A2 (en) 2003-05-20 2006-02-15 Lego A/S Method and system for manipulating a digital representation of a three-dimensional object
US7769088B2 (en) 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
DE102004059978B4 (de) 2004-10-15 2006-09-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz und zum Decodieren einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Restwerte-Prädiktion sowie ein Computerprogramm und ein computerlesbares Medium
KR100664936B1 (ko) 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
WO2006124885A2 (en) 2005-05-12 2006-11-23 Kylintv, Inc. Codec for iptv
RU2371881C1 (ru) 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
JP2009500941A (ja) 2005-07-08 2009-01-08 エルジー エレクトロニクス インコーポレイティド 情報を圧縮/圧縮解除するためにビデオ信号のコーディング情報をモデリングする方法
US7894523B2 (en) 2005-09-05 2011-02-22 Lg Electronics Inc. Method for modeling coding information of a video signal for compressing/decompressing coding information
WO2007034601A1 (ja) 2005-09-20 2007-03-29 Mitsubishi Electric Corporation 画像符号化方法および画像復号方法、画像符号化装置および画像復号装置、並びに画像符号化ビットストリーム及び記録媒体
GB0524983D0 (en) 2005-12-07 2006-01-18 Imagination Tech Ltd Recompression and decompression of a data stream for rate smoothing
JP2008193627A (ja) * 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
US9299120B2 (en) 2007-03-23 2016-03-29 Thomson Licensing Llc Modifying a coded bitstream
KR20100014552A (ko) 2007-03-23 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
JP4513841B2 (ja) 2007-08-28 2010-07-28 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
US9521433B2 (en) 2007-09-06 2016-12-13 Nec Corporation Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8594366B2 (en) * 2008-08-19 2013-11-26 Thomson Licensing Context-based adaptive binary arithmetic coding (CABAC) video stream compliance
US8831087B2 (en) 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
WO2011002914A1 (en) 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
US7961122B1 (en) 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
CN102148997A (zh) * 2010-02-04 2011-08-10 成都市世嘉电子实业有限公司 高性能cabac编码器设计方法
KR101750046B1 (ko) * 2010-04-05 2017-06-22 삼성전자주식회사 트리 구조에 따른 부호화 단위에 기반한 인루프 필터링을 수반하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
CN102231830B (zh) 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
RU2604680C2 (ru) * 2011-07-11 2016-12-10 Сан Пэтент Траст Способ декодирования изображений, способ кодирования изображений, устройство декодирования изображений, устройство кодирования изображений и устройство кодирования и декодирования изображений
WO2013039692A1 (en) * 2011-09-16 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
US9288508B2 (en) 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding

Also Published As

Publication number Publication date
IL232287A (en) 2017-11-30
CA2854822C (en) 2017-06-13
US9277241B2 (en) 2016-03-01
WO2013070355A1 (en) 2013-05-16
BR112014011060A8 (pt) 2017-06-20
IL269614B (en) 2020-10-29
IL232286A0 (en) 2014-06-30
JP2014535243A (ja) 2014-12-25
JP2015502076A (ja) 2015-01-19
US20130114672A1 (en) 2013-05-09
EP2777162B1 (en) 2015-08-19
IL269614A (en) 2019-11-28
WO2013070353A1 (en) 2013-05-16
SG11201401687XA (en) 2014-06-27
IL232286B (en) 2018-02-28
CN104040900B (zh) 2017-05-24
PT2777162E (pt) 2015-10-27
JP5847958B2 (ja) 2016-01-27
US9237358B2 (en) 2016-01-12
CA2854814A1 (en) 2013-05-16
ES2698552T3 (es) 2019-02-05
EP3442126A1 (en) 2019-02-13
HUE026070T2 (en) 2016-05-30
US9172976B2 (en) 2015-10-27
EP2777160A1 (en) 2014-09-17
HK1199152A1 (en) 2015-06-19
CA2854814C (en) 2017-06-13
MY168697A (en) 2018-11-29
CA2854830C (en) 2017-02-21
AU2012336234A1 (en) 2014-05-29
ES2550803T3 (es) 2015-11-12
ES2549145T3 (es) 2015-10-23
KR20140098116A (ko) 2014-08-07
IL255321B (en) 2018-04-30
ZA201404184B (en) 2022-11-30
IL232287A0 (en) 2014-06-30
IN2014CN03388A (pt) 2015-07-03
MY189724A (en) 2022-02-28
US9451287B2 (en) 2016-09-20
CN104040900A (zh) 2014-09-10
PL2777162T3 (pl) 2016-01-29
CN103999367A (zh) 2014-08-20
IL232288A0 (en) 2014-06-30
BR112014011063A8 (pt) 2017-06-20
PT2777160E (pt) 2015-12-07
KR101633199B1 (ko) 2016-06-23
CN103988437A (zh) 2014-08-13
RU2014123373A (ru) 2015-12-20
IN2014CN03460A (pt) 2015-07-03
IL232288A (en) 2017-05-29
US20140355669A1 (en) 2014-12-04
IL255321A0 (en) 2017-12-31
WO2013070354A1 (en) 2013-05-16
RU2602380C2 (ru) 2016-11-20
RU2014123366A (ru) 2015-12-20
IL258565B (en) 2019-01-31
IL264122A (en) 2019-02-28
BR112014011065A2 (pt) 2017-06-13
JP5847957B2 (ja) 2016-01-27
EP2777160B1 (en) 2015-08-26
EP2777161A1 (en) 2014-09-17
IL264122B (en) 2019-10-31
EP2777160B9 (en) 2019-03-27
CA2854830A1 (en) 2013-05-16
KR20140098117A (ko) 2014-08-07
SG11201401685UA (en) 2014-08-28
KR101633201B1 (ko) 2016-06-23
EP2777162A1 (en) 2014-09-17
BR112014011063B1 (pt) 2021-07-20
DK2777160T3 (en) 2015-12-07
US9288508B2 (en) 2016-03-15
ES2550803T9 (es) 2019-05-17
HUE027592T2 (en) 2016-11-28
IN2014CN03430A (pt) 2015-07-03
JP5964448B2 (ja) 2016-08-03
MY166487A (en) 2018-06-27
BR112014011063A2 (pt) 2017-06-13
BR112014011065A8 (pt) 2021-05-18
MY167205A (en) 2018-08-13
CN103988437B (zh) 2017-03-01
AU2012336324B2 (en) 2016-03-31
BR112014011065B1 (pt) 2021-10-05
KR20140098118A (ko) 2014-08-07
IL258565A (en) 2018-05-31
US20130114671A1 (en) 2013-05-09
CN103999367B (zh) 2017-03-29
US20140355681A1 (en) 2014-12-04
AU2012336324A1 (en) 2014-05-29
AU2012336323B2 (en) 2015-12-10
EP2777161B1 (en) 2018-10-03
JP2015502075A (ja) 2015-01-19
CA2854822A1 (en) 2013-05-16
AU2012336234B2 (en) 2015-12-10
PL2777160T3 (pl) 2016-01-29
DK2777160T5 (da) 2019-05-20
DK2777162T3 (en) 2015-11-30
RU2014122998A (ru) 2015-12-20
US20130114673A1 (en) 2013-05-09
SG11201401682YA (en) 2014-06-27
ZA201404182B (en) 2016-07-27
AU2012336323A1 (en) 2014-05-29
KR101633200B1 (ko) 2016-06-23
HK1198401A1 (en) 2015-04-17
BR112014011060A2 (pt) 2017-06-13

Similar Documents

Publication Publication Date Title
BR112014011060B1 (pt) Número de redução de contextos para codificação aritmética binária adaptativa de contexto
ES2892964T3 (es) Inicialización de predictor de paleta y fusión para codificación de vídeo
ES2864623T3 (es) Codificación de parámetros de cuantificación (QP) en codificación de video
KR101825793B1 (ko) 컨텍스트 적응 멀티-레벨 유의도 코딩을 위한 컨텍스트 도출
US20130195199A1 (en) Residual quad tree (rqt) coding for video coding
BR112014017364B1 (pt) Aperfeiçoamento de rendimento para codificação de nível de coeficiente cabac
BR122020003135B1 (pt) Método e dispositivo para decodificar dados de vídeo e meio de armazenamento não transitório legível por computador
KR20150003327A (ko) 변환 계수 코딩
BR112017016159B1 (pt) Contextos para unidades de árvore de codificação grandes
BR112015016230B1 (pt) Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo
KR20150036169A (ko) 타일들 및 파면 병렬 프로세싱
KR20160032249A (ko) 비디오 코딩에서의 변환들
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
KR20140131525A (ko) 병렬 모션 추정 범위 사이즈의 묵시적 도출

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

B15K Others concerning applications: alteration of classification

Ipc: H04N 19/60 (2014.01), H03M 7/40 (2006.01), H04N 19

B15K Others concerning applications: alteration of classification

Ipc: H03M 7/40 (2006.01), H04N 19/60 (2014.01), H04N 19

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]
B350 Update of information on the portal [chapter 15.35 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 05/10/2012, OBSERVADAS AS CONDICOES LEGAIS.

B25A Requested transfer of rights approved

Owner name: QUALCOMM INCORPORATED (US)