BR112014011334B1 - Método para decodificar um quadro de vídeo - Google Patents

Método para decodificar um quadro de vídeo Download PDF

Info

Publication number
BR112014011334B1
BR112014011334B1 BR112014011334-3A BR112014011334A BR112014011334B1 BR 112014011334 B1 BR112014011334 B1 BR 112014011334B1 BR 112014011334 A BR112014011334 A BR 112014011334A BR 112014011334 B1 BR112014011334 B1 BR 112014011334B1
Authority
BR
Brazil
Prior art keywords
entropy
slice
encoder
flag
slices
Prior art date
Application number
BR112014011334-3A
Other languages
English (en)
Other versions
BR112014011334A2 (pt
Inventor
Kiran Misra
Christopher A. Segall
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
Application filed by Velos Media International Limited filed Critical Velos Media International Limited
Publication of BR112014011334A2 publication Critical patent/BR112014011334A2/pt
Publication of BR112014011334B1 publication Critical patent/BR112014011334B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

INICIALIZAÇÃO DE CONTEXTO BASEADA EM MEMÓRIA TEMPORÁRIA DE AMORTECIMENTO. A presente invenção refere-se a um método para decodificar um quadro de vídeo de uma sequência de vídeo que compreende: (a) receber um cabeçalho de fatia; (b) identificar um tipo de fatia; (c) receber um primeiro sinalizador que indica um método de inicialização usado para inicializar um contexto; e (d) inicializar o contexto associado ao tipo de fatia usando um dentre um primeiro método de inicialização, um segundo método de inicialização e um terceiro método de inicialização.

Description

CAMPO DATÉCNICA
[0001] Modalidades da presente invenção se referem geralmente à codificação de vídeo e, em particular, algumas modalidades da presente invenção se referem a técnicas para inicialização de contexto.
ANTECEDENTES DA TÉCNICA
[0002] Os métodos e padrões de codificação de vídeo do estado da técnica, por exemplo, H.264/MPEG-4 AVC (H.264/AVC) e JCT-VC Modelo de Teste Sob Consideração (TMuC), podem fornecer maior eficiência de codificação do que métodos e padrões mais antigos à custa de maior complexidade. O aumento em exigências de qualidade e exigências de reso-lução em codificação de vídeo métodos e padrões também pode aumentar sua complexidade. Decodificadores que suportam decodificação paralela podem melhorar velocidade de decodificação e reduzir exigências de memó-ria. Adicionalmente, avanços em processadores multinúcleo podem tornar codificadores e decodificadores que suportam decodificação paralela dese-jável.
[0003] H.264/MPEG-4 AVC [Equipe da Junta de Vídeo de ITU- T VCEG e ISO/IEC MPEG, "H.264: Codificação de vídeo avançada para serviços audiovisuais genéricos", ITU-T Rec. H.264 e ISO/IEC 14496-10 (MPEG4 - Parte 10), Novembro de 2007], que é incorporado por referência integralmente neste documento, é uma especificação codec de vídeo (codifi- cador/decodificador) que usa predição de macrobloco seguida por codificação residual para reduzir redundância temporal e espacial em uma sequência de vídeo para eficiência de compressão.
[0004] O Modelo de Teste Sob Consideração (TMuC) [JCT-VC A205, "Modelo de Teste Sob Consideração" de 16 de junho de 2010], que é incorporado por referência integralmente neste documento, é o modelo de teste inicial de JCT-VC. TMuC, usando uma unidade básica de codificação chamada um bloco de árvore de codificação (CTB) que pode ter tamanhos variáveis, pode fornecer mais flexibilidade do que o H.264/AVC.
SUMÁRIO DA INVENÇÃO
[0005] Um aspecto da invenção fornece um método para decodificar um quadro de vídeo de uma sequência de vídeo que compreende: (a) receber um cabeçalho de fatia; (b) identificar um tipo de fatia; (c) receber um primeiro sinalizador que indica um método de inicialização usado para inicializar um contexto; e (d) inicializar o dito contexto associado ao dito tipo de fatia usando um dentre um primeiro método de inicialização, um segundo método de inicialização e um terceiro método de inicialização.
[0006] Os objetivos, recursos, e vantagens acima e outros da invenção serão mais prontamente entendidos após a consideração da des-crição detalhada da invenção a seguir tomada em conjunto com os dese-nhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
[0007] A Figura 1 é uma imagem que mostra um codificador de vídeo H.264/AVC (técnica anterior); A Figura 2 é uma imagem que mostra um decodificador de vídeo H.264/AVC (técnica anterior); A Figura 3 é uma imagem que mostra uma estrutura de fatia exem- plificativa (técnica anterior); A Figura 4 é uma imagem que mostra uma estrutura de grupo de fatias exemplificativo (técnica anterior); A Figura 5 é uma imagem que mostra uma partição de fatia exempli- ficativa de acordo com modalidades da presente invenção, em que uma imagem pode ser particionada em pelo menos uma fatia de reconstrução e uma fatia de reconstrução pode ser particionada em mais do que uma fatia de entropia; A Figura 6 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem uma fatia de entropia; A Figura 7 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem decodificação de entropia paralela de múltiplas fatias de entropia seguidas por reconstrução da fatia; A Figura 8 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem multiplexação de dados de predição / dados residuais no nível de imagem para construção de fatia de entropia; A Figura 9 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem multiplexação no plano de cor no nível de imagem para construção de fatia de entropia; A Figura 10 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem transcodificação de um fluxo contínuo de bits por decodificação de entropia, formação de fatias de entropia e codificação de entropia; A Figura 11 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que a quantidade de binários associados a cada fatia de entropia na pluralidade de fatias de entropia não excede uma quantidade predefinida de binários; A Figura 12 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que os binários podem ser associados a uma fatia de entropia até que a quantidade de binários na fatia de entropia exceda um limite baseado em uma quantidade máxima predefi- nida de binários; A Figura 13 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que a quantidade de binários associados a cada fatia de entropia na pluralidade de fatias de entropia não excede uma quantidade predefinida de binários e cada fatia de reconstrução contém não mais do que uma quantidade predefinida de macroblo- cos; A Figura 14 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que os binários podem ser associados a uma fatia de entropia até que a quantidade de binários na fatia de entropia exceda um limite baseado em uma quantidade máxima predefi- nida de binários e cada fatia de reconstrução contém não mais do que uma quantidade predefinida de macroblocos; A Figura 15 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que a quantidade de bits associados a cada fatia de entropia na pluralidade de fatias de entropia não excede uma quantidade predefinida de bits; A Figura 16 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que bits podem ser associados a uma fatia de entropia até que a quantidade de bits nas fatias de entropia exceda um limite baseado em uma quantidade máxima predefinida de bits; A Figura 17 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem múltiplos codificadores binários; A Figura 18 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem múltiplas unidades de adaptação de contexto; A Figura 19 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem múltiplos codificadores binários e múltiplas unidades de adaptação de contexto; A Figura 20 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de uma fatia de entropia é restrito para limitar a quantidade de binários que são operados, na fatia de entropia, por cada unidade de codificação de entropia restrita; A Figura 21 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de uma fatia de entropia é restrito para limitar a quantidade de binários que são operados, na fatia de entropia, por cada unidade de codificação de entropia restrita; A Figura 22 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem uma pluralidade de decodificadores de binários; A Figura 23 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem uma pluralidade de unidades de adaptação de contexto; A Figura 24 é uma imagem que retrata modalidades exemplificativas da presente invenção que compreendem múltiplos decodificadores de binários e múltiplas unidades de adaptação de contexto; A Figura 25 é uma imagem que mostra uma partição exemplificativa de um bloco de reconstrução em uma pluralidade de fatias de entropia nas quais os macroblocos dentro de uma fatia de entropia são contíguos; A Figura 26 é uma imagem que mostra uma partição exemplificativa de um bloco de reconstrução em uma pluralidade de fatias de entropia nas quais os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 27 é uma imagem que ilustra blocos vizinhos não contíguos, usados em decodificação de entropia, para uma partição exemplificati- va de um bloco de reconstrução em uma pluralidade de fatias de entropia nas quais os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 28 é uma imagem que ilustra blocos vizinhos usados em decodificação de entropia e reconstrução de um bloco dentro de uma fatia de entropia para uma partição exemplificativa de um bloco de reconstrução em uma pluralidade de fatias de entropia nas quais os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 29 é uma representação pictórica de uma parte exemplifica- tiva de um fluxo contínuo de bits exemplificativo que retrata restrições de localização de cabeçalho de fatia de entropia; A Figura 30 é uma representação pictórica de uma parte exemplifica- tiva de um fluxo contínuo de bits exemplificativo que retrata restrições de localização de cabeçalho de fatia de entropia; A Figura 31 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem um decodificador de entropia que processa uma parte restrita de um fluxo contínuo de bits para identificar um cabeçalho de fatia de entropia; A Figura 32 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem um decodificador de entropia que processa uma parte restrita de um fluxo contínuo de bits para identificar um cabeçalho de fatia de entropia; A Figura 33 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem um decodificador de entropia que processa uma parte restrita de um fluxo contínuo de bits para identificar um cabeçalho de fatia de entropia; A Figura 34 é uma imagem que ilustra um esquema de inicialização de tabela de contexto exemplificativa dentro de fatias de entropia de acordo com modalidades da presente invenção; A Figura34A é uma imagem que ilustra adaptação de varredura em modalidades exemplificativas da presente invenção. A Figura 35 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem um codificador de entropia com busca de contexto desacoplada da ordem de varredura de coeficiente; A Figura 36 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem um decodificador de entropia com busca de contexto desacoplada da ordem de varredura de coeficiente; A Figura 37 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreendem adaptação de contexto baseada em contador de binário; A Figura 38 é uma imagem que ilustra um particionamento separado exemplificativo de uma quantidade de binários processada; A Figura 39 é um gráfico que mostra modalidades exemplificativas da presente invenção que compreende adaptação de contexto baseada em parâmetro de quantização; A Figura 40 ilustra uma técnica de inicialização de contexto; A Figura 41 ilustra outra técnica de inicialização de contexto; e A FIGURA 42 ilustra uma técnica de inicialização de contexto. A FIGURA 43 ilustra uma técnica de inicialização. A FIGURA 44 ilustra uma técnica de inicialização. A FIGURA 45 ilustra uma técnica de inicialização. A FIGURA 46 ilustra uma técnica de inicialização.
DESCRIÇÃO DE MODALIDADES
[0008] As modalidades da presente invenção serão melhor entendidas por referência aos desenhos, em que partes semelhantes são designadas por numerais semelhantes do começo ao fim. As figuras listadas acima são incorporadas expressamente como parte desta descrição detalhada.
[0009] Será prontamente entendido que os componentes da presente invenção, como descritos em geral e ilustrados nas figuras neste documento, podem ser dispostos e projetados em uma ampla variedade de configurações diferentes. Portanto, a descrição mais detalhada a seguir das modalidades dos métodos e sistemas da presente invenção não é destinada a limitar o escopo da invenção, mas é meramente representativa das modalidades presentemente preferidas da invenção.
[0010] Elementos de modalidades da presente invenção podem ser incorporados em hardware, firmware e/ou software. Embora as modalidades exemplificativas reveladas neste documento possam apenas descrever uma destas formas, deve ser entendido que um indivíduo versado na técnica deve ser capaz de efetuar estes elementos em qualquer destas formas embora permanecendo dentro do escopo da presente invenção.
[0011] Embora qualquer codificador/decodificador (codec) de vídeo que usa codificação/decodificação de entropia possa ser acomodado por modalidades da presente invenção, muitas modalidades exemplificativas da presente invenção serão ilustradas em relação a um codificador H.264/AVC e um decodificador H.264/AVC. Isto é entendido como uma ilustração de modalidades da presente invenção e não como uma limitação.
[0012] Muitas modalidades exemplificativas da presente invenção podem ser descritas em relação a um macrobloco como uma unidade elementar. Isto é entendido como uma ilustração e não como uma limitação.
[0013] O Documento de Patente Norte Americano de No. 12/058.301, intitulado "Methods and Systems for Parallel Video Encoding and Decoding", depositado em 28 de março de 2008, é incorporado por referência integralmente neste documento. O Documento de Patente Norte Americano de No. 12/579.236, intitulado "Methods and Systems for Parallel Video Encoding and Decoding", depositado em 14 de outubro de 2009, é incorporado por referência integralmente neste documento.
[0014] Os métodos e padrões do estado da técnica de codificação de vídeo, por exemplo, H.264/AVC e TMuC, podem fornecer maior eficiência de codificação do que métodos e padrões mais antigos à custa de maior complexidade. Exigências de qualidade e exigências de resolução crescentes em métodos e padrões de codificação de vídeo também podem aumentar sua complexidade. Os decodificadores que suportam decodifica- ção paralela podem melhorar a velocidade de decodificação e reduziras exigências de memória. Adicionalmente, os avanços em processadores multi- núcleo podem tornar desejáveis codificadores e decodificadores que suportam decodificação paralela.
[0015] O H.264/AVC, e muitos outros padrões e métodos de codificação de vídeo, são baseados em uma abordagem de codificação de vídeo híbrida baseada em blocos, em que o algoritmo de codificação de fonte é um híbrido de predição de imagem inter, também considerada interqua- dro, predição de imagem intra, também considerada intraquadro, e codificação de transformada de uma predição residual. Predição interquadro pode explorar redundâncias temporais, e codificação intraquadro e de transformada da predição residual pode explorar redundâncias espaciais.
[0016] A Figura 1 mostra um diagrama de blocos de um codificador de vídeo H.264/AVC 2 exemplificativo. Uma imagem de entrada 4, também considerada um quadro, pode ser apresentada para codificação. Um sinal predito 6 e um sinal residual 8 podem ser produzidos, em que o sinal predito 6 pode ser baseado em qualquer dentre uma predição interqua- dro 10 ou uma predição intraquadro 12. A predição interquadro 10 pode ser determinada pela seção de compensação de movimento 14 usando uma imagem de referência armazenada 16, também considerada quadro de referência, e informação de movimento 19 determinada por um processo de seção de estimativa de movimento 18 entre o quadro de entrada 4 e o quadro de referência 16. A predição intraquadro 12 pode ser determinada por uma seção de predição intraquadro 20 usando um sinal codificado 22. O sinal residual 8 pode ser determinado subtraindo a entrada 4 da predição 6. O sinal residual 8 é transformado, escalonado e quantizado por uma seção de transformação/escalonamento/quantização 24, para deste modo produzir coeficientes transformados quantizados 26. O sinal codificado 22 pode ser gerado adicionando o sinal predito 6 a um sinal 28 gerado por um seção de (transformação/escalonamento/quantização) inversa 30 usando os coeficientes transformados quantizados 26. A informação de movimento 19 e os coeficientes transformados quantizados 26 pode ser codificada por entropia por uma seção de codificação de entropia de 32 e gravada para o fluxo contínuo de bits de vídeo comprimido 34. Uma região de imagem de saída 38, por exemplo, uma parte do quadro de referência, pode ser gerada no codificador 2 por um filtro de desblocagem 36 usando o sinal pré-filtrado reconstruído 22.
[0017] A Figura 2 mostra um diagrama de blocos de um decodi- ficador de vídeo H.264/AVC exemplificativo 50. Um sinal de entrada 52, também considerado um fluxo contínuo de bits, pode ser apresentado para decodificação. Os símbolos recebidos podem ser decodificados por entropia por uma seção de decodificação de entropia 54, para deste modo produzir informação de movimento 56 e coeficientes transformados, escalonados e quan- tizados 58. A informação de movimento 56 pode ser combinada por uma seção de compensação de movimento 60 com uma parte de um quadro de referência 84 que pode residir na memória de quadro 64, e pode ser gerada uma predição interquadro 68. Os coeficientes transformados, escalonados e quantizados 58 podem ser inversamente quantizados, escalonados e inversamente transformados por uma seção de (transforma- ção/escalonamento/quantização) inversa 62, para deste modo produzir um sinal residual decodificado 70. O sinal residual 70 pode ser adicionado a um sinal de predição 78: ou o sinal de predição interquadro 68 ou um sinal de predição intraquadro 76. O sinal de predição intraquadro 76 pode ser predito por uma seção de predição intraquadro 74 a partir de informação de codificada previamente no quadro corrente 72. O sinal combinado 72 pode ser filtrado por um filtro de desblocagem 80 e o sinal filtrado 82 pode ser gravado para a memória de quadro 64.
[0018] Em H.264/AVC, uma imagem de entrada é particionada em macroblocos de tamanho fixo, em que cada macrobloco cobre uma área de imagem retangular de 16x16 amostras do componente luma e 8x8 amostras de cada um dos dois componentes croma. Em outros codecs e padrões, pode ser usada uma unidade elementar, ou unidade básica de codificação, diferente de um macrobloco, por exemplo, um bloco de árvore de codificação. O processo de decodificação do padrão H.264/AVC é especificado para unidades de processamento que são macroblocos. O decodificador de entropia 54 analisa os elementos de sintaxe do fluxo contínuo de bits de vídeo comprimido 52 e demultiplexa os mesmos. O H.264/AVC especifica dois métodos alternativos de decodificação de entropia: uma técnica de baixa com- plexidade que é baseada no uso de conjuntos comutados adaptativamente por contexto de códigos de tamanho variável, referenciados como CAVLC, e o algoritmo com maior demanda computacional de codificação aritmética binária adaptativamente baseada em contexto, referenciada como CABAC. Em ambos os métodos de decodificação de entropia, a decodificação de um símbolo corrente pode depender de símbolos decodificados correta e previamente e modelos de contexto atualizados adaptativamente. Adicionalmente, informações de dados diferentes, por exemplo, informação de dados de predição, informação de dados residuais e planos de cor diferentes, podem ser multiplexadas conjuntamente. A demultiplexação pode não ser feita até que os elementos sejam decodificados por entropia.
[0019] Após a decodificação de entropia, um macrobloco pode ser reconstruído obtendo: o sinal residual através de quantização inversa e a transformada inversa, e o sinal de predição, ou o sinal de predição intraqua- dro ou o sinal de predição interquadro. A distorção de blocagem pode ser reduzida aplicando um filtro de desblocagem para cada macrobloco decodificado. Nenhum processamento pode começar até o sinal de entrada ser decodificado por entropia, deste modo tornando a decodificação de entropia um gargalo potencial na decodificação.
[0020] De maneira similar, em codecs em que podem ser permitidos mecanismos de predição alternativos, por exemplo, predição inter- camada em H.264/AVC ou predição intercamada em outros codecs escalonáveis, a decodificação de entropia pode ser requisito antes de todos os processamentos no decodificador, deste modo tornando a decodificação de entropia um gargalo potencial.
[0021] Em H.264/AVC, uma imagem de entrada que compreende uma pluralidade de macroblocos pode ser particionada em uma ou diversas fatias. Os valores das amostras na área da imagem que uma fatia representa podem ser corretamente decodificados sem o uso de dados de outras fatias desde que as imagens de referência usadas no codificador e no decodificador sejam idênticas. Portanto, a decodificação de entropia e re-construção de macrobloco para uma fatia não depende de outras fatias. Em particular, o estado de codificação de entropia é reinicializado no início de cada fatia. Os dados em outras fatias são marcados como indisponíveis quando definindo disponibilidade de vizinhança tanto para decodificação como reconstrução de entropia. Em H.264/AVC, as fatias podem ser decodificadas por entropia e reconstruídas em paralelo. Nenhuma predição intra e vetor de movimento são permitidos através do limite da fatia. A filtragem de desblocagem pode usar informação através de fatia limites.
[0022] A Figura 3 mostra uma imagem de vídeo exemplificativa 90 que compreende onze macroblocos na direção horizontal e nove macro- blocos na direção vertical (nove macroblocos exemplificativos rotulados 91 a 99). A Figura 3 mostra três fatias exemplificativas: uma primeira fatia denotada "FATIA #0" 100, uma segunda fatia denotada "FATIA #1" 101 e uma terceira fatia denotada "FATIA #2" 102. Um decodificador H.264/AVC pode decodificar e reconstruir as três fatias 100, 101, 102 em paralelo. No início do processo de decodificação / reconstrução para cada fatia, modelos de contexto são inicializados ou reinicializados e macroblocos em outras fatias são marcados como indisponíveis tanto para decodificação de entropia como para reconstrução de macrobloco. Portanto, para um macrobloco, por exemplo, o macrobloco rotulado 93, na "FATIA #1", os macroblocos (por exemplo, macroblocos rotulados 91 e 92) na "FATIA #0" não podem ser usados para seleção ou reconstrução de modelo de contexto. Enquanto que, para um macrobloco, por exemplo, o macrobloco rotulado 95, na "FATIA #1", outros macroblocos (por exemplo, macroblocos rotulados 93 e 94) na "FATIA #1" podem ser usados para seleção ou reconstrução de modelo de contexto. Portanto, a decodificação de entropia e a reconstrução de macrobloco têm que prosseguir serialmente dentro de uma fatia. A menos que as fatias sejam definidas usando ordenação flexível de macrobloco (FMO), os macro- blocos dentro de uma fatia são processados na ordem de um rastreamento.
[0023] A ordenação flexível de macrobloco define um grupo de fatias para modificar como uma imagem é particionada em fatias. Os macro- blocos em um grupo de fatias são definidos por um mapa de agrupamento de macrobloco para fatia, que é sinalizado pelo conteúdo do conjunto de parâmetros de imagem e informação adicional nos cabeçalhos de fatia. O mapa de agrupamento de macrobloco para fatia consistir em um número de identificação de grupo de fatias para cada macrobloco na imagem. O número de identificação de grupo de fatias especifica a qual grupo de fatias o ma- crobloco associado pertence. Cada grupo de fatias pode ser particionado em uma ou mais fatias, em que uma fatia é uma linha de macroblocos dentro do mesmo grupo de fatias que é processado na ordem de um rastreamento dentro do conjunto de macroblocos de um grupo de fatias particular. A deco- dificação e reconstrução de entropia de macrobloco têm que prosseguir serialmente dentro de uma fatia.
[0024] A Figura 4 retrata uma alocação exemplificativa de ma- crobloco em três grupos de fatias: um primeiro grupo de fatias denotado "GRUPO DE FATIAS #0" 103, um segundo grupo de fatias denotado "GRUPO DE FATIAS #1" 104 e um terceiro grupo de fatias denotado "GRUPO DE FATIAS #2" 105. Estes grupos de fatias 103, 104, 105 podem ser associados a duas regiões de primeiro plano e uma região de plano de fundo, respectivamente, na imagem 90.
[0025] Algumas modalidades da presente invenção podem compreender particionar uma imagem em uma ou mais fatias de reconstrução, em que uma fatia de reconstrução que pode ser independente no que diz respeito aos valores das amostras na área da imagem que a fatia de re-construção representa pode ser corretamente reconstruída sem o uso de dados de outras fatias de reconstrução, desde que as imagens de referência usadas sejam idênticas no codificador e no decodificador. Todos os macro- blocos reconstruídos dentro de uma fatia de reconstrução podem ficar disponíveis na definição de vizinhança para reconstrução.
[0026] Algumas modalidades da presente invenção podem compreender particionar uma fatia de reconstrução em mais do que uma fatia de entropia, em que uma fatia de entropia que pode ser independente no que diz respeito a valores de símbolos na área da imagem que a fatia de entropia representa pode ser corretamente decodificada por entropia sem o uso de dados de outras fatias de entropia. Em algumas modalidades da presente invenção, o estado de codificação de entropia pode ser reinicializado no início da decodificação de cada fatia de entropia. Em algumas modalidades da presente invenção, os dados em outras fatias de entropia podem ser marcados como indisponíveis quando definindo disponibilidade de vizinhança para decodificação de entropia. Em algumas modalidades da presente invenção, os macroblocos em outras fatias de entropia não podem ser usados em uma seleção de modelo de contexto do bloco corrente. Em algumas modalidades da presente invenção, os modelos de contexto podem ser atualizados apenas dentro de uma fatia de entropia. nestas modalidades da presente invenção, cada decodificador de entropia associado a uma fatia de entropia pode manter seu próprio conjunto de modelos de contexto.
[0027] O Documento ITU Telecommunication Standardization Sector, Grupo de Estudo 16 - Contribuição 405 intitulado " Entropy slices for parallel entropy decoding", de abril de 2008, é incorporado neste documento integralmente por referência.
[0028] Algumas modalidades da presente invenção podem compreender codificação/decodificação CABAC. O processo de codificação CABAC inclui as seguintes quatro etapas elementares: binarização; seleção de modelo de contexto; codificação aritmética binária; e atualização de probabilidade.
[0029] [Binarização]: Um símbolo com valor não binário (por exemplo, um coeficiente de transformada, um vetor de movimento, ou outros dados de codificação) é convertido em um código binário, também referenciado como uma sequência de caracteres binários ou um símbolo binarizado. Quando um elemento de sintaxe com valor binário é dado, a etapa inicial de binarização pode ser evitada. Um elemento de sintaxe com valor binário ou um elemento de um símbolo binarizado podem ser referenciados como um binário.
[0030] Para cada binário, pode ser realizado o seguinte: [Seleção de modelo de contexto]: Um modelo de contexto é um modelo de probabilidade para um ou mais binários. O modelo de contexto compreende, para cada binário, a probabilidade do binário ser um "1" ou um "0”. O modelo pode ser escolhido para uma seleção de modelos disponíveis dependendo das estatísticas de símbolos de dados codificados recentemente, usualmente baseado nos símbolos na vizinhança à esquerda e acima, se disponíveis. [Codificação aritmética binária]: Um codificador aritmético codifica cada binário de acordo com o modelo de probabilidade selecionado e é baseado em subdivisão recursiva de intervalo. [Atualização de probabilidade]: O modelo de contexto selecionado é atualizado baseado nos valores reais codificados.
[0031] Adaptação de contexto pode se referir ao processo de seleção, baseado em valores de símbolos vizinhos, um estado de modelo de contexto, também referenciado como um estado, associado a um binário e atualizar uma distribuição de probabilidade de modelo atribuída aos dados símbolos. A localização dos símbolos vizinhos pode ser definida de acordo com um gabarito de contexto.
[0032] Em algumas modalidades da presente invenção que compreendem codificação/decodificação CABAC, no início da decodificação de uma fatia de entropia, todos os modelos de contexto podem ser inicializa- dos ou reinicializados para modelos predefinidos.
[0033] Algumas modalidades da presente invenção podem ser entendidas em relação à Figura 5. A Figura 5 mostra um quadro de vídeo exemplificativo 110 que compreende onze macroblocos na direção horizontal e nove macroblocos na direção vertical (nove macroblocos rotulados exem- plificativos 115 a 123). A Figura 5 mostra três fatias de reconstrução exem- plificativas: uma primeira fatia de reconstrução denotada "R_FATIA #0" 111, uma segunda fatia de reconstrução denotada "R_FATIA #1" 112 e uma terceira fatia de reconstrução denotada "R_FATIA #2" 113. A Figura 5 mostra adicionalmente um particionamento da segunda fatia de reconstrução "R_FATIA #1" 112 em três fatias de entropia: uma primeira fatia de entropia denotada "E_FATIA #0" mostrada em hachurado em cruz 114, uma segunda fatia de entropia denotada "E_FATIA #1" mostrada em hachurado vertical 115 e um terceira fatia de entropia denotada "E_FATIA #2" mostrada em hachurado diagonal 116. Cada fatia de entropia 114, 115, 116 pode ser decodificada por entropia em paralelo.
[0034] Em algumas modalidades da presente invenção, apenas dados de macroblocos dentro de uma fatia de entropia podem ficar disponíveis para seleção de modelo de contexto durante decodificação de entropia da fatia de entropia. Todos os outros macroblocos podem ser marcados como indisponíveis. Para este particionamento exemplificativo, os macroblocos rotulados 117 e 118 ficam indisponíveis para seleção de modelo de contexto quando decodificando símbolos que correspondem à área de macrobloco rotulada 119 devido aos macroblocos rotulados 117 e 118 estarem fora da fatia de entropia que contém o macrobloco 119. Entretanto, estes macroblo- cos 117, 118 ficam disponíveis quando o macrobloco 119 é reconstruído.
[0035] Em algumas modalidades da presente invenção, um processo determina se um macrobloco pertence à mesma fatia de reconstrução que o macrobloco corrente. Algumas modalidades da invenção determinam se o macrobloco pertence à mesma fatia de reconstrução que o macrobloco corrente determinando se o macrobloco e macrobloco corrente estão na mesma fatia de entropia. Algumas modalidades da invenção determinam se o macrobloco pertence à mesma fatia de reconstrução que o macrobloco corrente determinando se o macrobloco corrente está em uma fatia de entropia. Algumas modalidades da invenção determinam se o ma- crobloco pertence à mesma fatia de reconstrução que o macrobloco corrente determinando se a informação que descreve a fatia que contém o macroblo- co é igual à informação que descreve a fatia que contém o macrobloco corrente. Em algumas modalidades da invenção, o macrobloco e o macrobloco corrente são determinados como estando na mesma fatia de reconstrução quando as três modalidades prévias são verdadeiras.
[0036] Em algumas modalidades da presente invenção, um codificador pode determinar se particionar ou não uma fatia de reconstrução em fatias de entropia, e o codificador pode sinalizar a decisão no fluxo contínuo de bits. Em algumas modalidades da presente invenção, o sinal pode compreender um sinalizador de fatia de entropia, que pode ser denotado "entropy_slice_flag" em algumas modalidades da presente invenção.
[0037] Algumas modalidades de decodificador da presente invenção podem ser descritas em relação à Figura 6. Nestas modalidades, um sinalizador de fatia de entropia pode ser examinado 130, e se o sinalizador de fatia de entropia indica que não existem 132 fatias de entropia associadas com uma imagem, ou com uma fatia de reconstrução, então o cabeçalho pode ser analisado 134 como um cabeçalho de fatia regular. O estado do decodificador de entropia pode ser reinicializado 136, e a informação de vizinhança para a decodificação de entropia e a reconstrução pode ser definida 138. Os dados de fatia então podem ser decodificados por entropia 140, e a fatia pode ser reconstruída 142. Se o sinalizador de fatia de entropia indica que existem 146 fatias de entropia associadas com uma imagem, ou com uma fatia de reconstrução, então o cabeçalho pode ser analisado 148 como um cabeçalho de fatia de entropia. O estado do decodificador de entropia pode ser reinicializado 150, a informação de vizinhança para a decodificação de entropia pode ser definida 152 e os dados de fatia de entropia podem ser decodificados por entropia 154. A informação de vizinhança para a reconstrução pode então ser definida 156, e a fatia pode ser reconstruída 142. Após a reconstrução da fatia 142, a próxima fatia, ou imagem, pode ser examinada 158.
[0038] Algumas modalidades alternativas de decodificador da presente invenção podem ser descritas em relação à Figura 7. Nestas modalidades, o decodificador pode ser capaz de decodificação paralela e pode definir seu próprio grau de paralelismo, por exemplo, considerar um decodifi- cador que compreende a capacidade de decodificar N fatias de entropia em paralelo. O decodificador pode identificar 170 N fatias de entropia. Em algumas modalidades da presente invenção, se estiverem disponíveis menos do que N fatias de entropia na imagem, ou fatia de reconstrução corrente, o de- codificador pode decodificar fatias de entropia de imagens, ou fatias de reconstrução subsequentes, se as mesmas estiverem disponíveis. Em modalidades alternativas, o decodificador pode esperar até que a imagem, ou fatia de reconstrução corrente, seja processada completamente antes de decodi- ficar partes de uma imagem, ou fatia de reconstrução subsequente. Após identificar 170 até N fatias de entropia, cada uma das fatias de entropia iden-tificadas pode ser decodificada independentemente por entropia. Uma primeira fatia de entropia pode ser decodificada 172 a 176. A decodificação 172 a 176 da primeira fatia de entropia pode compreender reinicializar o estado do decodificador 172. Em algumas modalidades que compreendem de- codificação de entropia CABAC, o estado CABAC pode ser reinicializado. A informação de vizinhança para a decodificação de entropia da primeira fatia de entropia pode ser definida 174, e os dados da primeira fatia de entropia podem ser decodificados 176. Para cada uma das até N fatias de entropia, estas etapas podem ser realizadas (178 a 182 para a N-ésima fatia de entropia). Em algumas modalidades da presente invenção, o decodificador pode reconstruir 184 as fatias de entropia quando todas as fatias de entropia são decodificadas por entropia. Em modalidades alternativas da presente invenção, o decodificador pode começar a reconstrução 184 após uma ou mais fatias de entropia serem decodificadas.
[0039] Em algumas modalidades da presente invenção, quando existem mais do que N fatias de entropia, uma tarefa de decodificação pode começar a decodificar por entropia uma próxima fatia de entropia em consequência do término de decodificação de entropia de uma fatia de entropia. Portanto quando uma tarefa termina a decodificar por entropia uma fatia de entropia de baixa complexidade, a tarefa pode começar a decodificar fatias de entropia adicionais sem esperar que outras tarefas terminem sua decodi- ficação.
[0040] Em algumas modalidades da presente invenção que podem acomodar um padrão ou método existente, uma fatia de entropia pode compartilhar a maior parte dos atributos de fatia de uma fatia regular de acordo com o padrão ou método. Portanto, uma fatia de entropia pode requerer um cabeçalho pequeno. Em algumas modalidades da presente invenção, o cabeçalho de fatia de entropia pode permitir que um decodificador identifique o início de uma fatia de entropia e inicie a decodificação de entropia. Em algumas modalidades, no início de uma imagem, ou de uma fatia de reconstrução, o cabeçalho de fatia de entropia pode ser o cabeçalho regular, ou um cabeçalho de reconstrução de fatia.
[0041] Em algumas modalidades da presente invenção que compreendem um codec H.264/AVC, uma fatia de entropia pode ser sinalizada adicionando um novo bit, "entropy_slice_flag" para o cabeçalho de fatia existente. A Tabela 1 lista a sintaxe para um cabeçalho de fatia de entropia de acordo com modalidades da presente invenção, em que C indica Categoria e o Descritor u(1), ue(v) indicam algum métodos de codificação de tamanho fixo ou de tamanho variável. As modalidades da presente invenção que compreendem um "entropy_slice_flag" podem obter eficiência de codificação melhorada.
[0042] "first_mb_in_slice" especifica o endereço do primeiro macrobloco na fatia de entropia associada com o cabeçalho de fatia de entropia. Em algumas modalidades, a fatia de entropia pode compreender uma linha de macroblocos.
[0043] "cabac_init_idc" especifica o índice para determinar a tabela de inicialização usada no processo de inicialização para o modo de contexto.
Figure img0001
Figure img0002
Tabela 1: Tabela de Sintaxe Exemplificativa para Cabeçalho de Fatia de Entropia
[0044] Em algumas modalidades da presente invenção, para uma fatia de entropia pode ser atribuído um tipo de unidade de camada de abstração de rede (NAL) diferente das fatias regulares. Nestas modalidades, um decodificador pode distinguir entre fatias regulares e fatias de entropia baseado no tipo de unidade de NAL. Nestas modalidades, o campo de bit "entropy_slice_flag" não é requerido.
[0045] Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" pode não ser transmitido em todos os perfis. Em algumas modalidades da presente invenção, o campo de bit "entro- py_slice_flag" pode não ser transmitido em um perfil básico, mas o campo de bit "entropy_slice_flag" pode ser transmitido em perfis maiores tal como um perfil principal, estendido ou profissional. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" pode ser transmitido apenas em fluxos contínuos de bits associados a características maiores do que um valor característico fixo. Características exemplificativas podem incluir resolução espacial, taxa de quadro, profundidade do bit, taxa de bit e outras características de fluxo contínuo de bits. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" pode ser transmitido apenas em fluxos contínuos de bits associados a resoluções espaciais maiores do que 1920x1080 entrelaçado. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" pode ser transmitido apenas em fluxos contínuos de bits associados a resoluções espaciais maiores do que 1920x1080 progressivo. Em algumas modalidades da presente invenção, se o campo de bit "entropy_slice_flag" não for transmitido, pode ser usado um valor-padrão.
[0046] Em algumas modalidades da presente invenção, uma fatia de entropia pode ser construída alterando a multiplexação de dados. Em algumas modalidades da presente invenção, o grupo de símbolos contidos em uma fatia de entropia pode ser multiplexado no nível de macrobloco. Em modalidades alternativas da presente invenção, o grupo de símbolos contidos em uma fatia de entropia pode ser multiplexado no nível de imagem. Em outras modalidades alternativas da presente invenção, o grupo de símbolos contidos em uma fatia de entropia pode ser multiplexado por tipo de dados. Em modalidades ainda alternativas da presente invenção, o grupo de símbolos contidos em uma fatia de entropia pode ser multiplexado em uma combinação dos acima.
[0047] Algumas modalidades da presente invenção que compreendem construção de fatia de entropia baseada em multiplexação no nível de imagem podem ser entendidas em relação à Figura 8 e à Figura 9. Em algumas modalidades da presente invenção mostradas na Figura 8, os dados de predição 190 e os dados residuais 192 podem ser codificados por entropia por um codificador de predição 194 e um codificador residual 196 separadamente e os dados de predição codificados e os dados residuais codificados podem ser multiplexados no nível de imagem por um multiplexador no nível de imagem 198. Em algumas modalidades da presente invenção, os dados de predição para uma imagem 190 podem ser associados a uma primeira fatia de entropia, e os dados residuais para uma imagem 192 podem ser associados a uma segunda fatia de entropia. Os dados de predição codificados e os dados de entropia codificados podem ser decodificados em paralelo. Em algumas modalidades da presente invenção, cada partição que compreende dados de predição ou dados residuais pode ser particionada em fatias de entropia que podem ser decodificadas em paralelo.
[0048] Em algumas modalidades da presente invenção mostradas na Figura 9, o resíduo de cada plano de cor, por exemplo, o resíduo de luma 200 e os dois resíduos de croma 202, 204, podem ser codificados por entropia por um codificador Y 206, um codificador U 208, e um codificador V 210 separadamente e os resíduos codificados por entropia pode ser multi- plexados por um multiplexador no nível de imagem 212 no nível de imagem. Em algumas modalidades da presente invenção, o resíduo de luma para uma imagem 200 pode ser associado a uma primeira fatia de entropia. O primeiro resíduo de croma para uma imagem 202 pode ser associado a uma segunda fatia de entropia, e o segundo resíduo para uma imagem 204 pode ser associado a uma terceira fatia de entropia. Os dados residuais codificados para os três planos de cor podem ser decodificados em paralelo. Em algumas modalidades da presente invenção, cada partição que compreende dados residuais de plano de cor pode ser particionado em fatias de entropia que podem ser decodificadas em paralelo. Em algumas modalidades da presente invenção, o resíduo de luma 200 pode ter relativamente mais fatias de entropia comparado aos resíduos de croma 202, 204.
[0049] Em algumas modalidades da presente invenção, um fluxo contínuo de bits de vídeo comprimido pode ser transcodificado para compreender fatias de entropia, para deste modo permitir decodificação de entropia paralela quando acomodado por modalidades da presente invenção descritas acima. Algumas modalidades da presente invenção podem ser descritas em relação à Figura 10. Um fluxo contínuo de bits de entrada sem fatias de entropia pode ser processado imagem por imagem de acordo com A Figura 10. Nestas modalidades da presente invenção, uma imagem da fluxo contínuo de bits de entrada pode ser decodificada por entropia 220. Os dados que tiverem sido codificados, por exemplo, dados de modo, informação de movimento, informação de resíduo e outros dados, podem ser obtidos. Fatias de entropia podem ser construídas 222 uma de cada vez a partir dos dados. Um cabeçalho de fatia de entropia que corresponde a uma fatia de entropia pode ser inserido 224 em um novo fluxo contínuo de bits. O estado do decodificador pode ser reinicializado e a informação de vizinhança definida 226. A fatia de entropia pode ser codificada por entropia 228 e gravada para o novo fluxo contínuo de bits. Se existirem dados de imagem que não tiverem sido consumidos 232 pelas fatias de entropia construídas, então pode ser construída outra fatia de entropia 222, e o processo 224-230 pode continuar até que todos os dados de imagem tenham sido consumidos 234 pelas fatias de entropia construídas, e então a próxima imagem pode ser processada.
[0050] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia em que o tamanho de cada fatia de entropia pode ser menor do que, ou pode não exceder, uma quantidade de binários fixa. Em algumas modalidades em que o codificador pode restringir o tamanho de cada fatia de entropia, a quantidade máxima de binários pode ser sinalizada no fluxo contínuo de bits. Em modalidades alternativas em que o codificador pode restringir o tamanho de cada fatia de entropia, a quantidade máxima de binários pode ser definida pelo perfil e ponto de conformidade de nível do codificador. Por exemplo, Anexo A da especificação de codificação de vídeo H.264/AVC pode ser estendido para compreender uma definição da quantidade máxima de binários permitida em uma fatia de entropia.
[0051] Em algumas modalidades da presente invenção, a quantidade máxima de binários permitida em uma fatia de entropia pode ser indicada para cada ponto de conformidade de nível do codificador de acordo com uma tabela, por exemplo, como mostrado na Tabela 2, onde Mm.n denota a quantidade máxima de binários permitida em uma fatia de entropia para um ponto de . conformidade de nível m.n.
Figure img0003
Tabela 2: Quantidade máxima de binários por Fatia de entropia para cada Nível
[0052] Quantidade máxima de binários permitida exemplificativa em uma fatia de entropia são M1 1 = 1,000 binários, M12 = 2,000 binários, ..., e M5.1 = 40, 000 binários. Outras quantidades máximas de binários permitidas exemplificativas em uma fatia de entropia são M1.1 = 2, 500 binários, M1.2 = 4, 200 binários, ..., e M5.1 = 150, 000binários.
[0053] Em algumas modalidades, um conjunto de quantidade máxima de binários permitida em uma fatia de entropia pode ser determinado para todos os níveis baseado em taxa de bit, tamanho da imagem, quan- tidade de macroblocos e outros parâmetros de codificação. Em algumas modalidades da presente invenção a quantidade máxima de binários permitida em uma fatia de entropia pode ser o conjunto para a mesma quantidade para todos os níveis. Valores exemplificativo são 38.000 binários e 120.000 binários.
[0054] Em algumas modalidades da presente invenção, um co- dificador pode determinar um pior caso de quantidade de binários associa- dos a um macrobloco, e o codificador pode gravar os binários associados ESLICE MaxNumberBins com
Figure img0004
onde ESLICE _ MaxNumberBins pode denotar a quantidade máxima de biná- rios permitida em uma fatia de entropia e BinsPerMB pode denotar o pior ca-so de quantidade de binários associados a um macrobloco. Em algumas modalidades, os macroblocos podem ser selecionados em ordem de varre-dura. Em modalidades alternativas, os macroblocos podem ser selecionados em outra ordem predefinida. Em algumas modalidades, o pior caso de quan-tidade de binários associados a um macrobloco pode ser uma quantidade fixa. Em modalidades alternativas, o codificador pode atualizar o pior caso de quantidade baseado em medições dos tamanhos de macroblocos pro-cessados previamente.
[0055] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 11. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia em que nenhuma fatia de entropia pode ser maior em tamanho do que uma quantidade predeterminada de binários. O codificador pode inicializar 240 para zero um contador associado à quantidade de binários em uma fatia de entropia corrente. O valor de contador pode ser denotado A para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 11. Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 242. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de macrobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordem de varredura. Elementos de sintaxe não binários no macrobloco podem ser convertidos 244 para uma sequência de caracteres binários. Elementos de sintaxe binários podem não requerer conversão. A quantidade de binários associados ao macrobloco pode ser determinada 246. A quantidade de binários associados ao macrobloco pode incluir os binários nas sequências de caracteres binários associadas com os elementos de sintaxe não binários adicionalmente aos elementos de sintaxe binários, e a quantidade de binários associados ao macrobloco pode ser denotada num para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 11.
[0056] Se a quantidade de binários associados ao macrobloco pode ser adicionada 248 à quantidade de binários já acumulados associados à fatia de entropia corrente sem 249 exceder uma quantidade máxima de binários permitida para uma fatia de entropia, então a quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 250 para incluir os binários associados ao macrobloco, e os binários associados ao macrobloco podem ser gravados 252, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 242, e o processo de particionamento pode continuar.
[0057] Se 248 a soma da quantidade de binários associados ao macrobloco e a quantidade de binários já acumulados associados à fatia de entropia corrente exceder 253 a quantidade máxima de binários permitida para uma fatia de entropia, então o codificador pode iniciar 254 uma nova fatia de entropia associada com a fatia de reconstrução corrente e pode terminar a fatia de entropia corrente. Então o contador associado à quantidade de binários na nova, agora corrente, fatia de entropia pode ser inicializado 256 para zero. A quantidade de binários associados acumulados com a fatia de entropia corrente pode ser atualizado 250 para incluir os binários associados ao macrobloco, e os binários associados ao macrobloco podem ser gravados 252, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 242, e o processo de particionamento pode continuar.
[0058] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 12. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia em que nenhuma fatia de entropia pode ser maior em tamanho do que uma quantidade máxima de binários predeterminada. Nestas modalidades, o codificador pode associar elementos de sintaxe de macrobloco a uma fatia de entropia até o tamanho da fatia de entropia alcançar um limite associado à quantidade máxima de binários permitida predeterminada em uma fatia de entropia. Em algumas modalidades, o limite pode ser uma porcentagem da quantidade máxima de binários permitida em uma fatia de entropia. Em uma modalidade exemplificativa, o limite pode ser 90% da quantidade máxima de binários permitida em uma fatia de entropia, supondo que a maior quantidade de binários esperada em um macrobloco é menor do que 10% da quantidade máxima de binários. Em outra modalidade exemplificativa, o limite pode ser uma porcentagem da quantidade máxima de binários permitida em uma fatia de entropia em que a porcentagem pode ser baseada na maior quantidade de binários esperada em um macrobloco. Nestas modalidades, uma vez que o tamanho de uma fatia de entropia ex- ceda um tamanho limite, então pode ser criada outra fatia de entropia. O tamanho limite pode ser selecionado para assegurar que a fatia de entropia não exceda a quantidade máxima de binários permitida em uma fatia de entropia. Em algumas modalidades, o tamanho limite pode ser uma função da quantidade máxima de binários permitida em uma fatia de entropia e uma estimativa da quantidade máxima de binários esperada para um macrobloco.
[0059] O codificador pode inicializar 270 para zero um contador associado à quantidade de binários em uma fatia de entropia corrente. O valor de contador pode ser denotado A para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 12. Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 272. O próximo macrobloco pode ser determinado de acordo com ordem de processamento de macroblocos definida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordem de varredura. Elementos de sintaxe não binários no macroblo- co podem ser convertidos 274 para uma sequência de caracteres binários. Elementos de sintaxe binários podem não requerer conversão. Os binários associados ao macrobloco podem ser gravados 276, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. A quantidade de binários associados ao macrobloco pode ser determinada 278, e a quantidade de binários associados acumulados com a fatia de entropia corrente pode ser atualizada 280 para incluir os binários associados ao macrobloco. Se 282 a quantidade de binários acumulados associados à fatia de entropia corrente for maior 284 do que um limite, que pode ser denotado TH (MaxNumBins), baseado na quantidade máxima de binários permitida em uma fatia de entropia, então o codificador pode iniciar 286 uma nova fatia de entropia e pode terminar a fatia de entropia corrente. Então o codificador pode inicializar 288 para zero o contador associado à quantidade de binários na nova, agora corrente, fatia de entropia. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 272, e o processo de partici- onamento pode continuar. Se a quantidade de binários acumulados associados à fatia de entropia corrente não for maior 283 do que o limite baseado na quantidade máxima de binários permitida em uma fatia de entropia, então os elementos de sintaxe para o próximo macrobloco podem ser obtidos 272, e o processo de particionamento pode continuar.
[0060] Em algumas modalidades da presente invenção, um codificador pode terminar a fatia de reconstrução corrente e iniciar uma nova fatia de reconstrução quando uma quantidade de macroblocos predeterminada tiver sido atribuída à fatia de reconstrução corrente.
[0061] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 13. Nestas modalidades, um codificador pode terminar a fatia de reconstrução corrente e iniciar uma nova fatia de reconstrução quando uma quantidade de macroblocos predeterminada tiver sido atribuída à fatia de reconstrução corrente. O codificador pode inicializar 300 para zero um contador associado à quantidade de macroblocos em uma fatia de reconstrução corrente. O valor do contador pode ser denotado AMB para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13. O codificador pode ini- cializar 310 para zero um contador associado à quantidade de binários em uma fatia de entropia corrente. O valor de contador pode ser denotada ABin para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13. Se 312 o valor de contador do contador associado à quantidade de macroblocos na fatia de reconstrução corrente não for menor 331 do que uma quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, então uma nova fatia de entropia pode ser iniciada 332 e uma nova fatia de re- construção pode ser iniciada 334, terminando a fatia de reconstrução corrente e a fatia de entropia corrente. A quantidade máxima de macroblocos permitida em uma fatia de reconstrução pode ser denotada MaxMBperRSlice para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13.
[0062] Se o valor de contador do contador associado à quantidade de macroblocos na fatia de reconstrução corrente for menor 313 do que a quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, então os elementos de sintaxe para um próximo macrobloco podem ser obtidos 314. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de macroblocos pre- definida. Em algumas modalidades, a ordem de processamento de macro- bloco pode corresponder a uma ordem de varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 316 para uma sequência de caracteres binários. Os elementos de sintaxe binários podem não requerer conversão. A quantidade de binários associados ao macrobloco pode ser determinada 318. A quantidade de binários associados ao macro- bloco pode incluir os binários nas sequências de caracteres binários associadas aos elementos de sintaxe não binários adicionalmente aos elementos de sintaxe binários, e a quantidade de binários associados ao macrobloco pode ser denotada num para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13.
[0063] Se a quantidade de binários associados ao macrobloco pode ser adicionada 320 para a quantidade de binários já acumulados associados à fatia de entropia corrente sem 321 exceder uma quantidade máxima de binários permitida para uma fatia de entropia, então a quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 322 para incluir os binários associados ao macrobloco, os binários as- sociados ao macrobloco podem ser gravados 324, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente, e a quantidade de macroblocos associados à fatia de reconstrução corrente pode ser incrementada 326. A quantidade de macroblocos associados à fatia de reconstrução corrente pode ser comparada 312 à quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, e o processo de particionamento pode continuar.
[0064] Se 320 a soma da quantidade de binários associados ao macrobloco e a quantidade de binários já acumulados associados à fatia de entropia corrente exceder 327 a quantidade máxima de binários permitida para uma fatia de entropia, então o codificador pode iniciar 328 uma nova, agora corrente, fatia de entropia associada à fatia de reconstrução corrente, e o contador associado à quantidade de binários na fatia de entropia corrente pode ser inicializado 330 para zero. A quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 322 para incluir os binários associados ao macrobloco, os binários associados ao macroblo- co podem ser gravados 324, pelo codificador de entropia, para o fluxo contínuo de bits e associado à fatia de entropia corrente, e a quantidade de ma- croblocos associados à fatia de reconstrução corrente pode ser incrementada 326. A quantidade de macroblocos associados à fatia de reconstrução corrente pode ser comparada 312 à quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, e o processo de particionamento pode continuar.
[0065] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 14. Nestas modalidades, um codificador pode iniciar uma nova fatia de reconstrução quando uma quantidade de macroblo- cos predeterminada tiver sido atribuída à fatia de reconstrução corrente. Nestas modalidades, o codificador pode associar elementos de sintaxe de macrobloco a uma fatia de entropia até o tamanho da fatia de entropia alcançar um limite associado à quantidade máxima de binários permitida predeterminada em uma fatia de entropia. Em algumas modalidades, o limite pode ser uma porcentagem da quantidade máxima de binários permitida em uma fatia de entropia. Em uma modalidade exemplificativa, o limite pode ser 90% da quantidade máxima de binários permitida em uma fatia de entropia, supondo que a maior quantidade de binários esperada em um macrobloco seja menor do que 10% da quantidade máxima de binários. Em outra modalidade exemplificativa, o limite pode ser uma porcentagem da quantidade máxima de binários permitida em uma fatia de entropia em que a porcentagem pode ser baseada na maior quantidade de binários esperada em um macrobloco. Nestas modalidades, uma vez que o tamanho de uma fatia de entropia exceda um tamanho limite, então outra fatia de entropia pode ser criada. O tamanho limite pode ser selecionado para assegurar que a fatia de entropia não exceda a quantidade máxima de binários permitida em uma fatia de entropia. Em algumas modalidades, o tamanho limite pode ser uma função da quantidade máxima de binários permitida em uma fatia de entropia e de uma estimativa da quantidade máxima de binários esperada para um macrobloco.
[0066] O codificador pode inicializar 350 para zero um contador associado à quantidade de macroblocos em uma fatia de reconstrução corrente. O valor de contador pode ser denotado AMB para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 14. O codificador pode inicializar 352 para zero um contador associado à quantidade de binários em um fatia de entropia corrente. o valor de contador pode ser denotado ABin para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 14. Se 354 o valor de contador do contador associado à quantidade de macroblocos na fatia de reconstrução corrente não for menor 373 do que uma quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, então uma nova fatia de entropia pode ser iniciada 374, e uma nova fatia de reconstrução pode ser iniciada 376. A quantidade máxima de macroblocos permitida em uma fatia de reconstrução pode ser denotada MaxMBperRSlice para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 14.
[0067] Se o valor de contador do contador associado à quantidade de macroblocos na fatia de reconstrução corrente for menor 355 do que a quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, então os elementos de sintaxe para um próximo macrobloco podem ser obtidos 356. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de macroblocos pre- definida. Em algumas modalidades, a ordem de processamento de macro- bloco pode corresponder a uma ordem de varredura. Elementos de sintaxe não binários no macrobloco podem ser convertidos 358 para uma sequência de caracteres binários. Os elementos de sintaxe binários podem não requerer conversão. Os binários associados ao macrobloco podem ser gravados 360, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. A quantidade de binários associados ao macro- bloco pode ser determinada 362, e a quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 364 para incluir os binários associados ao macrobloco. Se 366 a quantidade de binários acumulados associados à fatia de entropia corrente for maior 369 do que um limite, que pode ser denotado TH(MaxNumBins), baseado na quantidade máxima de binários permitida em uma fatia de entropia, então o codificador pode iniciar 370 uma nova fatia de entropia, e inicializar 372 para zero o con- tador associado à quantidade de binários em um fatia de entropia corrente. A quantidade de macroblocos associados à fatia de reconstrução corrente pode ser incrementada 368. A quantidade de macroblocos associados à fatia de reconstrução corrente pode ser comparada 354 à quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, e o processo de particionamento pode continuar. Se a quantidade de binários acumulados associados à fatia de entropia corrente não for maior 367 do que o limite baseado na quantidade máxima de binários permitida em uma fatia de entropia, então a quantidade de macroblocos associados à fatia de reconstrução corrente pode ser incrementada 368, e a quantidade de ma- croblocos associados à fatia de reconstrução corrente pode ser comparada 354 à quantidade máxima de macroblocos permitida predeterminada em uma fatia de reconstrução, e o processo de particionamento pode continuar.
[0068] Em modalidades alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que cada fatia de entropia pode ser associada a não mais do que uma quantidade predefinida de bits.
[0069] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 15. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia em que nenhuma fatia de entropia pode ser maior em tamanho do que uma quantidade predeterminada de bits. O codificador pode inicializar 400 para zero um contador associado à quantidade de bits em uma fatia de entropia corrente. O valor de contador pode ser denotado A para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 15. Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 402. O próximo ma- crobloco pode ser determinado de acordo com uma ordem de processamen- to de macroblocos predefinida. Em algumas modalidades, a ordem de pro-cessamento de macrobloco pode corresponder a uma ordem de varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 404 para uma sequência de caracteres binários. Elementos de sintaxe binários podem não requerer conversão. Os binários, elementos não binários e elementos binários convertidos, associados ao macrobloco podem ser apresentados para o codificador de entropia, e os binários podem ser codificados por entropia 406. A quantidade de bits associados ao macrobloco pode ser determinada 408. A quantidade de bits associados ao macrobloco pode ser denotada num para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 15.
[0070] Se a quantidade de bits associados ao macrobloco puder ser adicionada 410 à quantidade de bits já acumulados associados à fatia de entropia corrente sem 411 exceder uma quantidade máxima de bits permitidos para uma fatia de entropia, então a quantidade de bits acumulados associados à fatia de entropia corrente pode ser atualizada 412 para incluir os bits associados ao macrobloco, e os bits associados ao macroblo- co podem ser gravados 414 para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 402, e o processo de particionamento pode continuar.
[0071] Se 410 a soma da quantidade de bits associados ao macrobloco e a quantidade de bits já acumulados associados à fatia de entropia corrente exceder 415 a quantidade máxima de bits permitidos para uma fatia de entropia, então o codificador pode iniciar 416 uma nova fatia de entropia associada à fatia de reconstrução corrente, e o contador associado à quantidade de bits na fatia de entropia corrente pode ser inicializado 418 para zero. A quantidade de bits acumulados associados à fatia de entropia corrente pode ser atualizada 412 para incluir os bits associados ao macro- bloco, e os bits associados ao macrobloco podem ser gravados 414 para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 402, e o processo de particionamento pode continuar.
[0072] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 16. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia em que nenhuma fatia de entropia pode ser maior em tamanho do que uma quantidade predeterminada máxima de bits. Nestas modalidades, o codificador pode associar os elementos de sintaxe de macrobloco a uma fatia de entropia até o tamanho da fatia de entropia alcançar um limite associado à quantidade predeterminada máxima de bits permitidos em uma fatia de entropia. Em algumas modalidades, o limite pode ser uma porcentagem da quantidade máxima de bits permitidos em uma fatia de entropia. Em uma modalidade exemplificativa, o limite pode ser 90% da quantidade máxima de bits permitidos em uma fatia de entropia, supondo que a maior quantidade de bits esperada em um macrobloco for menor do que 10% da quantidade máxima de bits. Em outra modalidade exemplificati- va, o limite pode ser uma porcentagem da quantidade máxima de bits permitidos em uma fatia de entropia em que a porcentagem pode ser baseada na maior quantidade de bits esperada em um macrobloco. Nestas modalidades, uma vez que o tamanho de uma fatia de entropia exceda um tamanho limite, então outra fatia de entropia pode ser criada. O tamanho limite pode ser selecionado para assegurar que a fatia de entropia não exceda a quantidade máxima de bits permitidos em uma fatia de entropia. Em algumas modalidades, o tamanho limite pode ser uma função da quantidade máxima de bits permitidos em uma fatia de entropia e de uma estimativa da quantidade má-xima de bits esperada para um macrobloco.
[0073] O codificador pode inicializar 440 para zero um contador associado à quantidade de bits em uma fatia de entropia corrente. O valor de contador pode ser denotado A para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 16. Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 442. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de macroblocos predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordem de varredura. Os elementos de sintaxe não binários no macro- bloco podem ser convertidos 444 para uma sequência de caracteres binários. Os elementos de sintaxe binários podem não requerer conversão. Os binários associados ao macrobloco podem ser codificados por entropia 446, e a quantidade de binários associados ao macrobloco pode ser determinada 448. A quantidade de bits acumulados associados à fatia de entropia corrente pode ser atualizada 450 para incluir os binários associados ao macroblo- co, e os binários codificados por entropia associados ao macrobloco podem ser gravados 452 para o fluxo contínuo de bits. Se 454 a quantidade de bits acumulados associados à fatia de entropia corrente for maior 456 do que um limite baseado na quantidade máxima de bits permitidos em uma fatia de entropia, então o codificador pode iniciar 458 uma nova fatia de entropia, e inicializar 460 para zero o contador associado à quantidade de bits em um fatia de entropia corrente. Os elementos de sintaxe para o próximo macro- bloco podem ser obtidos 442, e o processo de particionamento pode continuar. Se a quantidade de bits acumulados associados à fatia de entropia corrente não for maior 455 do que um limite baseado na quantidade máxima de bits permitidos em uma fatia de entropia, então os elementos de sintaxe para o próximo macrobloco podem ser obtidos 442, e o processo de partici- onamento pode continuar.
[0074] Em modalidades alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que cada fatia de entropia pode ser associada a não mais do que uma quantidade predefinida de macroblocos.
[0075] Em algumas modalidades da presente invenção, uma restrição na quantidade máxima de macroblocos em uma fatia de reconstrução pode ser imposta adicionalmente a uma restrição no tamanho de uma fatia de entropia.
[0076] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito a menos do que uma quantidade predefinida de macroblocos e a menos do que uma quantidade predefinida de binários.
[0077] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito a menos do que uma quantidade predefinida de macroblocos e a menos do que uma quantidade predefinida de bits.
[0078] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito a menos do que uma quantidade predefinida de macroblocos, a menos do que uma quantidade predefinida de binários e a menos do que uma quantidade predefinida de bits.
[0079] Em algumas modalidades da presente invenção, a codificação de binário dentro de um codificador de entropia pode ser paralelizada para permitir codificação paralela de mais do que um binário, o que pode reduzir o tempo de codificação. Estas modalidades da presente invenção podem ser entendidas em relação a um codificador de entropia exemplifica- tivo retratado na Figura 17. Nestas modalidades, o codificador de entropia 480 pode compreender uma unidade de adaptação de contexto 482, um se- letor de codificador baseado em estado 484 e uma pluralidade de codificadores binários, também considerados unidades codificadoras de binários, (três mostradas) 486, 488, 500 que podem operar em paralelo. Os binários 502 podem ser tornados disponíveis para o codificador de entropia 480 de um binarizador 504 que pode gerar os binários 502 de símbolos de entrada 506. Os binários 502 podem ser tornados disponíveis para a unidade de adaptação de contexto 482 e para o seletor de codificador baseado em estado 484. A unidade de adaptação de contexto 482 pode realizar adaptação de contexto e gerar um estado modelo, também referenciado como um estado, 508 que pode ser usado para selecionar um codificador binário para o qual um binário 502 pode ser direcionado dentre os codificadores binários 486, 488, 500. O seletor de codificador baseado em estado 484 pode selecionar o codificador binário associado ao estado modelo gerado 508 dentre os codificadores binários 486, 488, 500 para codificar o binário 502. Em algumas modalidades (não mostradas), o estado gerado 508 pode ser tornado disponível para o codificador binário selecionado. Os bits de saída 510, 512, 514 podem ser gerados pelos codificadores binários 486, 488, 500, e os bits de saída 510, 512, 514 podem ser incorporados em um fluxo contínuo de bits. Em algumas modalidades da presente invenção, os bits de saída 510, 512, 514 podem ser armazenados em memória temporária de amortecimento e incorporados ao fluxo contínuo de bits por concatenação. Em modalidades alternativas, os bits de saída 510, 512, 514 podem ser armazenados em memória temporária de amortecimento e incorporados ao fluxo contínuo de bits de acordo com um esquema de entrelaçamento.
[0080] De acordo com modalidades da presente invenção des- critas em relação à Figura 17, um primeiro binário pode ser enviado para um primeiro codificador binário em resposta a um primeiro estado modelo gerado em relação ao primeiro binário. A unidade de adaptação de contexto 482, em consequência do término do processamento do primeiro binário, pode começar o processamento de um segundo binário, enviando o segundo binário para um segundo codificador binário em resposta a um segundo estado modelo gerado em relação ao segundo binário, para deste modo permitir processamento substancialmente paralelo de mais do que um binário.
[0081] Em modalidades alternativas da presente invenção, um codificador de entropia pode compreender uma pluralidade de unidades de adaptação de contexto que podem operar em paralelo e um codificador binário único. Em sistemas em que as unidades de adaptação de contexto requerem tempo de processamento mais longo do que o codificador binário, uma pluralidade de unidades de adaptação de contexto operando em paralelo pode reduzir o tempo de codificação. Algumas destas modalidades da presente invenção podem ser entendido em relação a um codificador de entropia exemplificativo retratado na Figura 18. Nestas modalidades, o codificador de entropia 530 pode compreender uma pluralidade de unidades de adaptação de contexto (três mostradas) 532, 534, 536, um seletor de unidade de adaptação de contexto 538, um seletor de estado 540 e um codificador binário 542. Os binários 544 podem ser tornados disponíveis para o codificador de entropia 530 de um binarizador 546 que pode gerar os binários 544 de símbolos de entrada 548. Os binários 544 podem ser tornados dis-poníveis para o seletor de unidade de adaptação de contexto 538, o seletor de estado 540 e o codificador binário 542. O seletor de unidade de adaptação de contexto 538 pode ser usado para selecionar, ou para agendar, uma unidade de adaptação de contexto 532, 534, 536 para a qual um binário 544 pode ser direcionado e a partir da qual um valor de estado 550, 552, 554 pode ser gerado. Em algumas modalidades exemplificativas, o seletor de unidade de adaptação de contexto 538 pode selecionar uma unidade de adaptação de contexto dentre as unidades de adaptação de contexto 532, 534, 536 baseado na sintaxe associada ao binário, por exemplo, um identificador de unidade de adaptação de contexto pode ser associado a um binário que identifica a unidade de adaptação de contexto para a qual o binário pode ser direcionado para processamento. Em modalidades alternativas exempli- ficativas, o seletor de unidade de adaptação de contexto 538 pode selecionar uma unidade de adaptação de contexto dentre as unidades de adaptação de contexto 532, 534, 536 baseado em um protocolo de agendamento ou restrição de balanceamento de carga associados às unidades de adaptação de contexto 532, 534, 536. Em algumas modalidades, o valor de estado gerado pode ser selecionado pelo seletor de estado 540, de acordo com o critério usado no seletor de unidade de adaptação de contexto 538, no sincronismo apropriado para ser passado para o codificador binário 542. O codificador binário 542 pode usar o valor de estado 556 passado pelo seletor de estado 540 na codificação do binário 544. Em modalidades alternativas da presente invenção (não mostradas), o valor de estado pode não ser requerido pelo codificador binário e, portanto, não ser tornado disponível para o codificador binário. Os bits de saída 558 podem ser gerados pelo codificador binário 542, e os bits de saída 558 podem ser incorporados em um fluxo contínuo de bits. Em algumas modalidades da presente invenção, os bits de saída 558 podem ser armazenados em memória temporária de amortecimento e incorporados ao fluxo contínuo de bits por concatenação. Em modalidades alternativas, os bits de saída 558 podem ser armazenados em memória temporária de amortecimento e incorporados no fluxo contínuo de bits de acordo com um esquema de entrelaçamento.
[0082] Em modalidades ainda alternativas da presente inven- ção, um codificador de entropia pode compreender uma pluralidade de uni- dades de adaptação de contexto que podem operar em paralelo e uma plu- ralidade de codificadores binários que pode operar em paralelo. Estas moda- lidades da presente invenção podem ser entendidas em relação a um codifi- cador de entropia exemplificativo retratado na Figura 19. Nestas modalida- des, o codificador de entropia 570 pode compreender uma pluralidade de unidades de adaptação de contexto (três mostradas) 572, 574, 576, um sele- tor de unidade de adaptação de contexto 578, um seletor de estado 580, um seletor de codificador baseado em estado 582 e uma pluralidade de codifi- cadores binários (três mostrados) 584, 586, 588. Os binários 590 podem ser tornados disponíveis para o codificador de entropia 570 de um binarizador 592 que pode gerar os binários 590 a partir de símbolos de entrada 594. Os binários 590 podem ser tornados disponíveis para o seletor de unidade de adaptação de contexto 578, o seletor de estado 580 e o seletor de codifica- dor de binário 582. O seletor de unidade de adaptação de contexto 578 pode ser usado para selecionar, ou para agendar, uma unidade de adaptação de contexto 572, 574, 576 para a qual um binário 590 pode ser direcionado e a partir da qual pode ser gerado um valor de estado 596, 598, 600. O valor de estado gerado pode ser selecionado pelo seletor de estado 580 no sincro- nismo apropriado para ser passado para o seletor de codificador baseado em estado 582. O seletor de codificador baseado em estado 582 pode usar o valor de estado 602 passado pelo seletor de estado 580 para selecionar um codificador binário dentre os codificadores binários 584, 586, 588 para os quais um binário 590 pode ser direcionado. Em modalidades alternativas (não mostradas), o valor de estado 602 pode ser tornado disponível para o codificador binário selecionado. O codificador binário selecionado pode usar o valor de estado 602 na codificação do binário 590. Em modalidades alter- nativas da presente invenção (não mostradas), o valor de estado pode não ser requerido pelo codificador binário e, portanto, não ser tornado disponível para o codificador binário. Os bits de saída 604, 606, 608 podem ser gera- dos pelos codificadores binários 584, 586, 588 e os bits de saída 604, 606, 608 podem ser incorporados a um fluxo contínuo de bits. Em algumas moda- lidades da presente invenção, os bits de saída 604, 606, 608 podem ser ar- mazenados em memória temporária de amortecimento e incorporados no fluxo contínuo de bits por concatenação. Em modalidades alternativas, os bits de saída 604, 606, 608 podem ser armazenados em memória temporá- ria de amortecimento e incorporados no fluxo contínuo de bits de acordo com um esquema de entrelaçamento
[0083] Uma modalidade exemplificativa da presente invenção pode compreender uma pluralidade de codecs de codificação de tamanho variável que podem operar em paralelo.
[0084] Em uma modalidade exemplificativa da presente invenção, um codificador binário pode compreender codificação aritmética binária. Em outra modalidade exemplificativa da presente invenção, um codificador binário pode compreender codificação de tamanho variável. Em ainda outra modalidade exemplificativa da presente invenção, um codificador binário pode compreender codificação de tamanho fixo.
[0085] Em geral, um codificador de entropia pode compreender Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binários, onde Nca é um inteiro maior do que, ou igual a, um e Nbc é um inteiro maior do que, ou igual a, um.
[0086] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que uma, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binários possam cada uma operar em não mais do que uma quantidade limitada de binários durante o processamento da fatia de entropia. As unidades de adaptação de contexto e as unidades codificadoras de binários com esta restrição podem ser referenciadas como unidades de codificação de entropia restritas.
[0087] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que nenhuma das Nca unidades de adaptação de contexto possa operar em mais do que Bca binários durante o processamento de uma fatia de entropia. Em algumas modalidades da presente invenção, o valor de Bca pode ser sinalizado, por exemplo, em um fluxo contínuo de bits, restrição de perfil, restrição de nível ou outro mecanismo normativo.
[0088] Em modalidades alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que nenhuma das Nbc unidades codificadoras de binários possa operar em mais do que Bbc binários durante o processamento de uma fatia de entropia. Em algumas modalidades da presente invenção, o valor de Bbc pode ser sinalizado, por exemplo, em um fluxo contínuo de bits, restrição de perfil, restrição de nível ou outro mecanismo normativo.
[0089] Em modalidades ainda alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que nenhuma das Nca unidades de adaptação de contexto possa operar em mais do que Bca binários e nenhuma das Nbc unidades codificadoras de binários possa operar em mais do que Bbc binários durante o processamento de uma fatia de entropia. Em algumas modalidades da presente invenção, o valor de Bbc e o valor de Bca podem ser sinali- zados, por exemplo, em um fluxo contínuo de bits, restrição de perfil, restrição de nível ou outro mecanismo normativo.
[0090] Em modalidades ainda alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que a i-ésima Nca unidade de adaptação de contexto, denotada Nca (i), para i = 1,...,Nca, possa operar em não mais do que Bca (i) binários e a i-ésima Nbc unidade codificadora de binário, Nbc (i), para i = 1,., Nbc, possa operar em não mais do que Bbc (i) binários durante o processamento de uma fatia de entropia. Em algumas modalidades da presente invenção, os valores do Bbc (i) e os valores do Bca (i) possam ser sinalizados, por exemplo, em um fluxo contínuo de bits, restrição de perfil, restrição de nível ou outro mecanismo normativo.
[0091] Algumas modalidades exemplificativas da presente invenção podem ser descritas em relação à Figura 20. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que uma, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binários possam operar em não mais do que uma quantidade limitada de binários. O codificador pode inicializar 650 para zero um contador, para cada unidade de codificação de entropia restrita, associado à quantidade de binários processados em uma fatia de entropia corrente. Para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 20, o valor de contador pode ser denotado A , onde A representa um vetor com cada entrada no vetor correspondendo à quantidade acumulada de binários processados, para a fatia de entropia corrente, por uma unidade de codificação de entropia restrita. Os elementos de sinta- xe para um próximo macrobloco podem ser obtidos 652. O próximo macro- bloco pode ser determinado de acordo com uma ordem de processamento de macroblocos predefinida. Em algumas modalidades, a ordem de processamento de macroblocos pode corresponder a uma ordem de varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 654 para uma sequência de caracteres binários. Os elementos de sintaxe binários podem não requerer conversão. A quantidade de binários, associados ao macrobloco, processados por cada unidade de codificação de entropia restrita pode ser determinada 656. A quantidade de binários associados ao macrobloco pode incluir os binários nas sequências de caracteres binários associados aos elementos de sintaxe não binários adicionalmente aos elementos de sintaxe binários. Para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 20, a quantidade de binários, associados ao macrobloco, processados por cada unidade de codificação de entropia restrita pode ser denotada num , onde num representa um vetor com cada entrada no vetor correspondendo à quantidade de binários processados, para o macrobloco corrente, por uma unidade de codificação de entropia restrita.
[0092] Se a quantidade de binários associados ao macrobloco para cada unidade de codificação de entropia restrita puder ser adicionada 658 para a quantidade de binários já acumulados, associados à fatia de entropia corrente, para cada unidade de codificação de entropia restrita, sem 659 exceder uma quantidade máxima de binários permitida para qualquer unidade de codificação de entropia restrita, então a quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 660 para incluir os binários associados ao macrobloco, e os binários associados ao macrobloco podem ser gravados 662, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elemen- tos de sintaxe para o próximo macrobloco podem ser obtidos 652, e o processo de particionamento pode continuar.
[0093] Se 658 a soma da quantidade de binários associados ao macrobloco e a quantidade de binários já acumulados associados à fatia de entropia corrente exceder 663 a quantidade máxima de binários permitida para qualquer unidade de codificação de entropia restrita, então o codificador pode iniciar 664 uma nova fatia de entropia associada à fatia de reconstrução corrente, e o contador associado à quantidade de binários na fatia de entropia corrente pode ser inicializado 666 para zero. A quantidade de binários acumulados associados à fatia de entropia corrente pode ser atualizada 660 para incluir os binários associados ao macrobloco, e os binários associados ao macrobloco podem ser gravados 662, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 652, e o processo de particionamento pode continuar.
[0094] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 21. Nestas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de cada fatia de entropia pode ser restrito de modo que uma, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binários possam operar em não mais do que uma quantidade limitada de binários. O codificador pode inicializar 700 para zero um contador, para cada unidade de codificação de entropia restrita, associada à quantidade de binários processados em uma fatia de entropia corrente pela unidade de codificação de entropia restrita. Para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 21, o valor de contador pode ser denotado A , onde A representa um vetor com cada entrada no vetor correspondendo à quantidade acumulada de binários processados, para a fatia de entropia corrente, por uma unidade de codificação de entropia restrita. Nestas modalidades, o codificador pode associar elementos de sintaxe de macrobloco a uma fatia de entropia até a quantidade de binários processados por uma unidade de codificação de entropia restrita alcançar um limite associado à quantidade máxima de binários permitida predeterminada para ser processada, em uma fatia de entropia, pela unidade de codificação de entropia restrita. Em algumas modalidades, o limite pode ser uma porcentagem da quantidade máxima de binários permitida para ser processada, em uma fatia de entropia, pela unidade de codificação de entropia restrita. Em uma modalidade exemplificativa, o limite pode ser 90% da quantidade máxima de binários permitida para ser processada, em uma fatia de entropia, pela unidade de codificação de entropia restrita, supondo que a maior quantidade de binários esperada em um macrobloco para ser processada pela unidade de codificação de entropia restrita seja menor do que 10% da quantidade máxima de binários permitida para ser processado, em uma fatia de entropia, pela unidade de codificação de entropia restrita. Em outra modalidade exemplificativa, o limite pode ser uma porcentagem da quantidade máxima de binários permitida para ser processada, em uma fatia de entropia, por uma unidade de codificação de entropia restrita em que a porcentagem pode ser baseada na maior quantidade de binários esperada em um macro- bloco para ser processada pela unidade de codificação de entropia restrita. Nestas modalidades, uma vez que o tamanho de uma fatia de entropia exceda um tamanho limite, então outra fatia de entropia pode ser criada. O tamanho limite pode ser selecionado para assegurar que a fatia de entropia não exceda a quantidade máxima de binários permitida para ser processada por qualquer unidade de codificação de entropia restrita em uma fatia de entropia. Em algumas modalidades, o tamanho limite pode ser uma função da quantidade máxima de binários permitida em uma fatia de entropia e uma estimativa da quantidade máxima de binários esperada para um macrobloco.
[0095] Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 702. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de macroblocos predefinida. Em algumas modalidades, a ordem de processamento de macroblocos pode corresponder a uma ordem de varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 704 para uma sequência de caracteres binários. Os elementos de sintaxe binários podem não requerer conversão. Os binários associados ao macrobloco podem ser gravados 706, pelo codificador de entropia, para o fluxo contínuo de bits e associados à fatia de entropia corrente. A quantidade de binários, associados ao macro- bloco, processados por cada unidade de codificação de entropia restrita pode ser determinada 708. A quantidade de binários associados ao macroblo- co pode incluir os binários nas sequências de caracteres binários associados aos elementos de sintaxe não binários adicionalmente aos elementos de sintaxe binários. Para propósitos ilustrativos no restante da descrição das modalidades da presente invenção descritas em relação à Figura 21, a quantidade de binários, associados ao macrobloco, processados por cada unidade de codificação de entropia restrita pode ser denotada num , onde num representa um vetor com cada entrada no vetor correspondendo à quantidade de binários processados, para o macrobloco corrente, por uma unidade de codificação de entropia restrita correspondente. A quantidade de binários acumulados, associados à fatia de entropia corrente, processados por cada unidade de codificação de entropia restrita pode ser atualizada 710 para incluir os binários associados ao macrobloco. Se 712 a quantidade de binários acumulados, associados à fatia de entropia corrente, processados por uma unidade de codificação de entropia restrita for maior 714 do que um limite, que pode ser denotada TH (MaxNumBins)(i) para a unidade de codifi-cação de entropia restrita i, então o codificador pode iniciar 716 uma nova fatia de entropia, e inicializar 718 para zero o contador associado à quantidade de binários processados por cada unidade de codificação de entropia restrita em um fatia de entropia corrente. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 702, e o processo de particionamen- to pode continuar. Se a quantidade de binários acumulados, associados à fatia de entropia corrente, processados por uma unidade de codificação de entropia restrita não for maior 713 do que o limite, então os elementos de sintaxe para o próximo macrobloco podem ser obtidos 702, e o processo de particionamento pode continuar.
[0096] Algumas modalidades da presente invenção podem compreender uma combinação dos critérios descritos acima para particio- namento de fatia de entropia.
[0097] Deve ser entendido que embora algumas modalidades da presente invenção possam restringir o tamanho de uma fatia de entropia para ser menor do que um primeiro tamanho predefinido, em que o tamanho da fatia de entropia possa ser equivalentemente restrito para não exceder um segundo tamanho predefinido. As modalidades descritas neste documento são modalidades exemplificativas da presente invenção, e um indivíduo com conhecimentos comuns na técnica avaliará que existem modalidades equivalentes da presente invenção para restringir o tamanho de uma fatia de entropia.
[0098] Em algumas modalidades da presente invenção, iniciar uma nova fatia de entropia pode compreender terminar a fatia corrente e considerar a nova fatia de entropia a fatia de entropia corrente.
[0099] Em algumas modalidades da presente invenção, a de- codificação de uma pluralidade de bits dentro de uma fatia de entropia pode ser paralelizada dentro de um decodificador de entropia que compreende uma pluralidade de decodificadores de binários, o que pode reduzir o tempo de decodificação. Modalidades exemplificativas da presente invenção podem ser entendidas em relação a um decodificador de entropia exemplificativo 750, retratado na Figura 22, que compreende uma pluralidade (três mostrados) de decodificadores de binários 762, 764, 766. Os bits 752 dentro de uma fatia de entropia e símbolos decodificados previamente 754 podem ser tornados disponíveis para um decodificador de entropia 750. Os bits 752 podem ser tornados disponíveis para um seletor de decodificador de binário 756 que pode selecionar um decodificador de binário, baseado em um estado de contexto 758 gerado a partir de uma unidade de adaptação de contexto 760, dentre os decodificadores de binários 762, 764, 766. A unidade de adaptação de contexto 760 pode gerar o estado de contexto 758 baseada nos símbolos decodificados previamente 754 tornados disponíveis para a unidade de adaptação de contexto 760. O seletor de decodificador de binário 756 pode designar um decodificador de binário 762, 764, 766 baseado no estado de contexto 758. O bit para ser decodificado 752 pode ser passado pelo seletor de decodificador de binário 756 para o decodificador de binário selecionado. Os decodificadores de binários 762, 764, 766 podem gerar binários decodificados 768, 770, 772 que podem ser multiplexados por um multiplexador 774 e os binários multiplexados 776 podem ser enviados para um gerador de símbolos 778 que pode gerar os símbolos 754 associados aos binários 776.
[00100] Em algumas modalidades da presente invenção, a de- codificação de uma pluralidade de bits dentro de uma fatia de entropia pode ser paralelizada dentro de um decodificador de entropia que compreende uma pluralidade de unidades de adaptação de contexto, o que pode reduzir o tempo de decodificação. Modalidades exemplificativas da presente inven- ção podem ser entendidas em relação a um decodificador de entropia exemplificativo 800, retratado na Figura 23, que compreende uma pluralidade (três mostrados) de unidades de adaptação de contexto 814, 816, 818. Os bits 802 dentro de uma fatia de entropia e símbolos decodificados previamente 810 podem ser tornados disponíveis para um decodificador de entropia 800. Os bits 802 podem ser tornados disponíveis para um seletor de unidade de adaptação de contexto 812 que pode selecionar a partir de uma pluralidade de unidades de adaptação de contexto 814, 816, 818 uma unidade de adaptação de contexto para o processamento de decodificação de um bit de entrada. Em algumas modalidades da presente invenção, o seletor de unidade de adaptação de contexto 812 pode selecionar a N-ésima unidade de adaptação de contexto quando receber cada N-ésimo bit. A unidade de adaptação de contexto selecionada pode gerar um estado de contexto 820, 822, 824 baseada nos símbolos decodificados previamente 810 tornados disponíveis para a unidade de adaptação de contexto selecionada. Um seletor de estado 826, no sincronismo apropriado, pode selecionar o estado de contexto gerado associado a um bit de entrada. Em algumas modalidades da presente invenção, o seletor de estado 826 pode selecionar a N- ésima unidade de adaptação de contexto quando receber cada N-ésimo bit de acordo com o mesmo procedimento que o seletor de unidade de adaptação de contexto 812. O estado selecionado 828 pode ser tornado disponível para o decodificador de binário 804. O decodificador de binário 804 pode decodificar o bit 802 e enviar o binário decodificado 806 para um gerador de símbolos 808 que pode gerar um símbolo 810 associado ao binário decodificado 806.
[00101] Em algumas modalidades da presente invenção, a de- codificação de uma pluralidade de bits dentro de uma fatia de entropia pode ser paralelizada dentro de um decodificador de entropia que compreende uma pluralidade de unidades de adaptação de contexto e uma pluralidade de decodificadores de binários, o que pode reduzir o tempo de decodificação. Modalidades exemplificativas da presente invenção podem ser entendidas em relação a um decodificador de entropia exemplificativo 850, retratado na Figura 24, que compreende uma pluralidade (três mostradas) de unidades de adaptação de contexto 852, 854, 856 e uma pluralidade (três mostrados) de decodificadores de binários 858, 860, 862. Os bits 864 dentro de uma fatia de entropia e símbolos decodificados previamente 866 podem ser tor- nados disponíveis para um decodificador de entropia 850. Os bits 864 po- dem ser tornados disponíveis para um seletor de unidade de adaptação de contexto 868 que pode selecionar a partir da pluralidade de unidades de adaptação de contexto 852, 854, 856 uma unidade de adaptação de contex- to para o processamento de decodificação de um bit de entrada. Em algu- mas modalidades da presente invenção, o seletor de unidade de adaptação de contexto 868 pode selecionar a N-ésima unidade de adaptação de con- texto quando receber cada N-ésimo bit. A unidade de adaptação de contexto selecionada pode gerar um estado de contexto 870, 872, 874 baseada nos símbolos decodificados previamente 866 tornados disponíveis para a unida- de de adaptação de contexto selecionada. Um seletor de estado 876, no sin- cronismo apropriado, pode selecionar o estado de contexto gerado associa- do a um bit de entrada. Em algumas modalidades da presente invenção, o seletor de estado 876 pode selecionar a N-ésima unidade de adaptação de contexto quando receber cada N-ésimo bit de acordo com o mesmo proce- dimento que o seletor de unidade de adaptação de contexto 868. O estado selecionado 878 pode ser tornado disponível para um seletor de decodifica- dor de binário 880, que pode selecionar, baseado no estado de contexto se- lecionado 878, um decodificador de binário 858, 860, 862. O seletor de de- codificador de binário 880 pode designar um decodificador de binário 858, 860, 862 baseado no estado de contexto 878. O bit para ser decodificado 864 pode ser passado pelo seletor de decodificador de binário 880 para o decodificador de binário selecionado. Os decodificadores de binários 858, 860, 862 podem gerar binários decodificados 882, 884, 886 que podem ser multiplexados por um multiplexador 888 e os binários multiplexados 890 podem ser enviados para um gerador de símbolos 892 que pode gerar os símbolos 866 associados aos binários 890.
[00102] Em algumas modalidades da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que os macroblocos dentro de uma fatia de entropia são contíguos. A Figura 25 retrata uma fatia de reconstrução exemplificativa 950 particionada em três fatias de entropia: a fatia de entropia 0 mostrada em hachurado em cruz 952, a fatia de entropia 1 mostrada em branco 954 e fatia de entropia 2 mostrada em hachurado pontilhado 956. Os macroblocos dentro de cada fatia de entropia 952, 954, 956, nesta fatia de reconstrução exemplificativa 950, são contíguos.
[00103] Em modalidades alternativas da presente invenção, um codificador pode particionar uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que os macroblocos dentro de uma fatia de entropia podem não ser contíguos. A Figura 26 retrata uma fatia de reconstrução exemplificativa 960 particionada em três fatias de entropia: fatia de entropia 0 mostrada em hachurado em cruz 962, fatia de entropia 1 mostrada em ha- churado branco 964 e fatia de entropia 2 mostrada em hachurado pontilhado 966. Os macroblocos dentro de cada fatia de entropia 962, 964, 966, nesta fatia de reconstrução exemplificativa 960, não são contíguos. Uma partição de uma fatia de reconstrução em que os macroblocos dentro de uma fatia de entropia não são contíguos pode ser referenciada como uma partição entrelaçada.
[00104] Em algumas modalidades da presente invenção, durante a decodificação de entropia de um bloco corrente dentro de uma fatia de entropia, o decodificador pode usar outros blocos da mesma fatia de entropia para predizer informação relacionada à decodificação de entropia do bloco corrente. Em algumas modalidades da presente invenção, durante a reconstrução de um bloco corrente dentro de uma fatia de reconstrução, outros blocos da mesma fatia de reconstrução podem ser usados para predizer informação relacionada à reconstrução do bloco corrente.
[00105] Em algumas modalidades da presente invenção nas quais uma fatia de reconstrução compreende uma partição entrelaçada, os blocos vizinhos dentro de uma fatia de entropia usados na decodificação de um bloco corrente dentro da fatia de entropia podem não ser diretamente vizinhos, ou contíguos. A Figura 27 ilustra esta situação para a partição entrelaçada exemplificativa retratada na Figura 26.
[00106] Em A Figura 27, para um bloco corrente 970 dentro de uma fatia de entropia 964, o bloco vizinho esquerdo usado para decodifica- ção de entropia do bloco corrente 970 é o bloco vizinho esquerdo contíguo 972 dentro da fatia de entropia 964. O bloco vizinho superior usado para de- codificação de entropia do bloco corrente 970 é o bloco vizinho superior não contíguo 974 dentro da mesma fatia de entropia 964. Para a reconstrução do bloco corrente 970, o bloco vizinho esquerdo é o bloco vizinho esquerdo contíguo 972 dentro da fatia de reconstrução 960, e o bloco vizinho superior é o bloco vizinho superior contíguo 976 dentro da fatia de reconstrução 960.
[00107] Em algumas modalidades da presente invenção nas quais uma fatia de reconstrução compreende uma partição entrelaçada, pode não haver nenhum bloco vizinho apropriado dentro de uma fatia de entropia para ser usado na decodificação de um bloco corrente dentro da fatia de entropia. A Figura 28 ilustra esta situação para a partição entrelaçada exem- plificativa retratada na Figura 26.
[00108] Em A Figura 28, para um bloco corrente 980 dentro de uma fatia de entropia 964, não existe nenhum bloco vizinho esquerdo dentro da fatia de entropia 964 para ser usado para decodificação de entropia do bloco corrente 980. O bloco vizinho superior usado para decodificação de entropia do bloco corrente 980 é o bloco vizinho superior não contíguo 982 dentro da mesma fatia de entropia 964. Para reconstrução do bloco corrente 980, o bloco vizinho esquerdo é o bloco vizinho esquerdo 984 contíguo dentro da fatia de reconstrução 960, e o bloco vizinho superior é o bloco vizinho superior contíguo 986 dentro da fatia de reconstrução 960.
[00109] Em algumas modalidades da presente invenção, um de- codificador pode pré-processar um fluxo contínuo de bits de entrada comple-to para identificar as localizações das fatias de entropia. Em algumas moda-lidades da presente invenção, um decodificador pode pré-processar uma fatia de reconstrução inteira para identificar as localizações das fatias de en-tropia dentro da fatia de reconstrução. Em algumas modalidades, as locali-zações das fatias de entropia podem ser determinadas identificando as loca-lizações dos cabeçalhos de fatia de entropia. Nestas modalidades, o decodi- ficador pode ler os bits no fluxo contínuo de bits e os valores de código de início predefinidos podem ser identificados.
[00110] Em modalidades alternativas, os cabeçalhos de fatia de entropia podem ser restritos a uma amplitude de bits localizados em posições predefinidas dentro de um fluxo contínuo de bits de entrada. Em moda-lidades alternativas, os cabeçalhos de fatia de entropia podem ser restritos a uma amplitude de bytes localizada em posições predefinidas dentro de um fluxo contínuo de bits de entrada. Nestas modalidades, ou o alinhada por bit ou o alinhada por byte, um decodificador não precisa pré-processar partes significativamente grandes do fluxo contínuo de bits de entrada para localizar as fatias de entropia.
[00111] Em algumas modalidades da presente invenção, um codificador pode sinalizar, no fluxo contínuo de bits, informação de localização de fatia de entropia, também referenciada como parâmetros de localização de fatia de entropia, por exemplo, informação de deslocamento e amplitude, que pode restringir as localizações dos cabeçalhos de fatia de entropia. Em modalidades alternativas, a informação de localização de fatia de entropia pode não ser sinalizada no fluxo contínuo de bits, mas pode ser determinada a partir de parâmetros de fatia de entropia, por exemplo, uma quantidade fixa de binários permitida em qualquer dada fatia de entropia, uma quantidade fixa de bits permitida em qualquer dada fatia de entropia e outros parâmetros de fatia de entropia. Em modalidades ainda alternativas da presente invenção, a informação de localização de fatia de entropia pode ser definida por outros meios normativos, por exemplo, a informação pode ser especificada em uma restrição de perfil, uma restrição de nível, uma restrição de aplicação, ou outra restrição, ou a informação pode ser sinalizada como informação suplementar ou sinalizada por outros meios fora do alcance.
[00112] Em algumas modalidades da presente invenção, um conjunto de valores de parâmetro de localização de fatia de entropia podem ser usados para todas as fatias de entropia dentro de um fluxo contínuo de bits. Em modalidades alternativas, os valores de parâmetro de localização de fatia de entropia podem ser definidos para um grupo de pixels representado por uma parte de uma sequência. Em modalidades alternativas, os valores de parâmetro de localização de fatia de entropia podem ser definidos para cada imagem dentro de um fluxo contínuo de bits e podem ser usados para todas as fatias de entropia dentro da imagem associada. Em modalidades alternativas, os valores de parâmetro de localização de fatia de entropia podem ser definidos para cada fatia de reconstrução dentro de um fluxo con- tínuo de bits e podem ser usados para todas as fatias de entropia dentro da fatia de reconstrução associada. Em modalidades ainda alternativas, múltiplos conjuntos de valores de parâmetro de localização de fatia de entropia podem ser usados pelo decodificador. Em modalidades ainda alternativas, os valores de parâmetro de localização de fatia de entropia podem ser atribuídos a identificadores de fatia de entropia, por exemplo, um primeiro cabeçalho de fatia de entropia pode usar um primeiro conjunto de valores de parâmetro de localização de fatia de entropia, um segundo cabeçalho de fatia de entropia pode usar um segundo conjunto de valores de parâmetro de localização de fatia de entropia e, em geral, um N-ésimo cabeçalho de fatia de entropia pode usar um N-ésimo conjunto de valores de parâmetro de localização de fatia de entropia. Em algumas modalidades da presente invenção, valores de parâmetros de fatia de entropia podem ser atribuídos a identificadores de quadro. Em uma modalidade exemplificativa, uma primeira imagem pode usar um primeiro conjunto de valores de parâmetros de fatia de entropia, uma segunda imagem pode usar um segundo conjunto de valores de parâmetros de fatia de entropia e, em geral, uma N-ésima imagem pode usar um N-ésimo conjunto de valores de parâmetro de localização de fatia de entropia. Em outra modalidade exemplificativa, uma imagem de um primeiro tipo pode usar um primeiro conjunto de valores de parâmetro de localização de fatia de entropia e uma imagem de um segundo tipo pode usar um segundo conjunto de valores de parâmetro de localização de fatia de entropia. Tipos exemplificativos de imagens são imagens intra, imagens preditas e outros tipos de imagens.
[00113] Em algumas modalidades da presente invenção que compreendem um codec H.264/AVC, um deslocamento de fatia de entropia e uma amplitude de fatia de entropia podem ser sinalizados em um conjunto de parâmetros de sequência de Carga Útil Bruta de Sequência de Byte (RBSP) adicionando um parâmetro "entropy_slice_offset" e um "entro- py_slice_range" ao conjunto de parâmetros de sequência. A Tabela 3 lista sintaxe de conjunto de parâmetros de sequência de RBSP exemplificativo de acordo com modalidades da presente invenção.
[00114] Em algumas modalidades da presente invenção que compreendem um codec H.264/AVC, um deslocamento de fatia de entropia e uma amplitude de fatia de entropia podem ser sinalizados em um conjunto de parâmetros de imagem de Carga Útil Bruta de Sequência de Byte (RBSP) adicionando um parâmetro "entropy_slice_offset" e um "entro- py_slice_range" ao conjunto de parâmetros de imagem. A Tabela 4 lista sintaxe de conjunto de parâmetros de imagem de RBSP exemplificativa de acordo com modalidades da presente invenção.
[00115] Em algumas modalidades da presente invenção que compreendem um H codec.264/AVC, um deslocamento de fatia de entropia e uma amplitude de fatia de entropia podem ser sinalizados em um cabeçalho de fatia adicionando um parâmetro "entropy_slice_offset" e um "entro- py_slice_range" ao cabeçalho de fatia. A Tabela 5 lista sintaxe de cabeçalho de fatia exemplificativa de acordo com modalidades da presente invenção.
[00116] Em algumas modalidades da presente invenção, um deslocamento de fatia de entropia e uma amplitude de fatia de entropia podem ser indicados para cada ponto de conformidade de nível do codificador de acordo com uma tabela, por exemplo, como mostrado na Tabela 6, onde Om.n denota o deslocamento de fatia de entropia para um ponto de conformidade de nível m.n e Rm.n denota a amplitude de fatia de entropia para um ponto de conformidade m.n.
Figure img0005
Figure img0006
Tabela 3: Tabela de Sintaxe de Conjunto de parâmetros de sequência de RBSP Exemplificativa
Figure img0007
Tabela 4: Tabela de Sintaxe de Conjunto de parâmetros de imagem de RBSP Exemplificativa
Figure img0008
Figure img0009
Figure img0010
Tabela 5: Tabela de Sintaxe de Cabeçalho de fatia Exemplificativa
Figure img0011
Tabela 6: Deslocamento de fatia de entropia e Amplitude de fatia de entropia Exemplificativos para cada Nível
[00117] Em algumas modalidades, a informação de localização de fatia de entropia pode compreender informação que pode restringir as localizações dos cabeçalhos de fatia de entropia. Em um exemplo, a infor-mação de localização de fatia de entropia pode compreender um desloca-mento, também referenciado como um valor de período ou deslocamento de base, e uma amplitude, também referenciada como um valor de desvio ou deslocamento para um período. Uma localização de cabeçalho de fatia de entropia pode ser restrita baseada no valor de deslocamento e no valor de amplitude.
[00118] Em algumas modalidades da presente invenção, um valor de deslocamento e um valor de amplitude podem ser definidos explicitamente. Em modalidades alternativas da presente invenção, um valor de des-locamento e um valor de amplitude podem ser definidos implicitamente como um valor de deslocamento mínimo e um valor de deslocamento máximo. Em modalidades ainda alternativas da presente invenção, um valor de desloca-mento e um valor de amplitude podem ser definidos implicitamente como um valor de deslocamento máximo e a diferença entre o valor de deslocamento máximo e um valor de deslocamento mínimo. Em modalidades ainda alter-nativas da presente invenção, um valor de deslocamento e um valor de am-plitude podem ser definidos implicitamente como um valor de deslocamento mínimo e a diferença entre o valor de deslocamento mínimo e um valor de deslocamento máximo. Em modalidades alternativas, um valor de desloca-mento e um valor de amplitude podem ser definidos implicitamente como um terceiro valor e a diferença entre o terceiro valor e um valor de deslocamento máximo e um valor de deslocamento mínimo. Em modalidades ainda alter-nativas, um valor de deslocamento e um valor de amplitude podem ser defi-nidos através de um índice em uma tabela de pesquisa que contém os valo-res de bit mínimo e máximo correspondentes. Em algumas modalidades, um valor de deslocamento e um valor de amplitude podem ser definidos usando uma árvore de pesquisa baseada em deslocamento. Em algumas modalida-des, um valor de deslocamento e um valor de amplitude podem ser definidos usando indexação de minimização de custo. Um indivíduo com conhecimen-tos comuns na técnica reconhecerá que existem muitos métodos conhecidos na técnica para definição implícita de um valor de amplitude e de um valor de deslocamento e para assegurar que um codificador e um decodificador operem com o mesmo valor para os valores de deslocamento e amplitude predefinidos.
[00119] Em algumas modalidades da presente invenção, a sina-lização de um valor de amplitude pode ser opcional. Em algumas modalida-des, quando um valor de amplitude não é sinalizado, então o valor de ampli-tude pode ser determinado para um valor predefinido. Em uma modalidade exemplificativa, o valor predefinido pode ser zero. Em outra modalidade exemplificativa, o valor predefinido pode ser um valor inteiro diferente de ze-ro.
[00120] Em uma modalidade exemplificativa descrita em relação à Figura 29, o cabeçalho de fatia de entropia associado a uma o número de fatia da fatia de entropia N dentro de uma fatia de reconstrução, pode ser restrito a iniciar após Nk - p bits do início de, ou outra localização fixa dentro de, o cabeçalho de fatia de reconstrução, onde kdenota o valor de des-locamento e p denota a amplitude. A localização a partir da qual os Nk - p bits podem ser medidos pode ser referenciada como a localização de refe-rência. Em modalidades alternativas, uma localização de referência pode não ser associada a uma fatia de reconstrução particular e pode ser a mes-ma localização fixa dentro de um fluxo contínuo de bits para todas as fatias de entropia. Em modalidades alternativas, o cabeçalho de fatia de entropia pode ser alinhado por byte, e a restrição pode ser associada a uma quanti-dade de bytes. Embora o exemplo ilustrado em relação à Figura 29 seja descrito em termos de bits, um indivíduo com conhecimentos comuns na técnica pode avaliar as modalidades alinhadas por byte alternativas.
[00121] A Figura 29 é uma representação pictórica de uma parte exemplificativa 1000 de um fluxo contínuo de bits exemplificativo. A parte do fluxo contínuo de bits 1000 compreende um cabeçalho de fatia de reconstru-ção 1002, representado por um retângulo preto sólido, quatro cabeçalhos de fatia de entropia (o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero 1003, referenciado como o cabeçalho de fatia de entropia zero, o cabeçalho de fatia de entropia que corresponde à primeira fatia de entropia 1004, referenciado como o primeiro cabeçalho de fatia de entropia, o cabe-çalho de fatia de entropia que corresponde à segunda fatia de entropia 1005, referenciado como o segundo cabeçalho de fatia de entropia, o cabeçalho de fatia de entropia que corresponde à terceira fatia de entropia 1006, referenciado como o terceiro cabeçalho de fatia de entropia), representados por retângulos cinza sólidos, e as partes remanescentes das fatias de entropia, representadas por faixas finas pretas e brancas. Neste exemplo, a localização de referência pode ser o início 1001 do cabeçalho de fatia de reconstrução 1002. Em algumas modalidades da presente invenção, o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero 1003 pode ser restrito a ficar localizado imediatamente após o cabeçalho de fatia de reconstrução 1002. Em algumas modalidades da presente invenção, o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero pode ser uma parte do cabeçalho de fatia de reconstrução. Ou seja, o cabeçalho de fatia de reconstrução também pode servir como o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero. nestas modalidades, o cabeçalho de fatia de reconstrução pode compreender uma parte de reconstrução e uma parte de entropia. Em algumas modalidades da presente invenção retratadas na Figura 29, o primeiro cabeçalho de fatia de entropia 1004 pode ser restrito a ficar localizada após k - p bits 1007 da localização de referência 1001, o segundo cabeçalho de fatia de entropia 1005 pode ser restrito a ficar localizado após 2k - p bits 1008 a partir da localização de referência 1001, o segundo cabeçalho de fatia de entropia 1006 pode ser restrito a ficar localizada após 3k - p bits 1009 a partir da localização de referência 1001. Nestas modalidades, um decodificador de entropia designado ara decodificar a fatia de entropia N pode começar a buscar o cabeçalho de fatia de entropia correspondente após Nk - p bits a partir da localização de referência 1001.
[00122] Em modalidades alternativas da presente invenção, a in-formação de localização de fatia de entropia pode não compreender uma parâmetro de amplitude. Nestas modalidades, um decodificador de entropia pode começar a buscar o N-ésimo cabeçalho de fatia de entropia após Nkbits a partir de uma localização de referência.
[00123] Em outra modalidade exemplificativa descrita em relação à Figura 30, o cabeçalho de fatia de entropia associado ao número de fatia da fatia de entropia N dentro de uma fatia de reconstrução, pode ser restrito a iniciar após Nk - p bits a partir do início, ou outra localização fixa dentro, do cabeçalho de fatia de reconstrução, onde kdenota o valor de deslocamento e p denota a amplitude, e o cabeçalho de fatia de entropia pode adi-cionalmente ser restrito a ficar dentro de uma amplitude de bits 2p a partir da localização de início restrita. A localização a partir da qual os Nk - p bits podem ser medidos pode ser referenciada como a localização de referência. Em modalidades alternativas, uma localização de referência pode não ser associada a uma fatia de reconstrução particular e pode ser a mesma locali-zação fixa dentro de um fluxo contínuo de bits para todas as fatias de entro-pia. Em modalidades alternativas, o cabeçalho de fatia de entropia pode ser alinhado por byte, e a restrição pode ser associada a uma quantidade de bytes. Embora o exemplo ilustrado em relação à Figura 30 seja descrito em termos de bits, um indivíduo com conhecimentos comuns na técnica pode avaliar as modalidades alternativas alinhadas por byte.
[00124] A Figura 30 é uma representação pictórica de uma parte exemplificativa 1020 de um fluxo contínuo de bits exemplificativo. A parte de fluxo contínuo de bits 1020 compreende um cabeçalho de fatia de reconstru-ção 1022, representado por um retângulo preto sólido, quatro cabeçalhos de fatia de entropia (o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero 1023, referenciado como o cabeçalho de fatia de entropia zero, o cabeçalho de fatia de entropia que corresponde à primeira fatia de entropia 1024, referenciado como o primeiro cabeçalho de fatia de entropia, o cabe-çalho de fatia de entropia que corresponde à segunda fatia de entropia 1025, referenciado como o segundo cabeçalho de fatia de entropia, o cabeçalho de fatia de entropia que correspondem à terceira fatia de entropia 1026, refe-renciados como o terceiro cabeçalho de fatia de entropia), representado por retângulos cinza sólidos, e as partes remanescentes das fatias de entropia, representadas por faixas finas pretas e brancas. Neste exemplo, a localiza-ção de referência pode ser o início 1021 do cabeçalho de fatia de reconstru-ção 1022. Em algumas modalidades da presente invenção, o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero 1023 pode ser res-trito a ficar localizado imediatamente após o cabeçalho de fatia de reconstru-ção 1022. Em algumas modalidades da presente invenção, o cabeçalho de fatia de entropia que corresponde à fatia de entropia zero pode ser uma parte do cabeçalho de fatia de reconstrução. Nestas modalidades, o cabeçalho de fatia de reconstrução pode compreender uma parte de reconstrução e uma parte de entropia. Em algumas modalidades da presente invenção retratadas na Figura 30, o primeiro cabeçalho de fatia de entropia 1024 pode ser restrito a ficar localizado dentro de 2p bits 1031 após k - p bits 1027 a partir da localização de referência 1021, o segundo cabeçalho de fatia de entropia 1025 pode ser restrito a ficar localizado dentro de 2p bits 1032 após 2k - p bits 1028 a partir da localização de referência 1021, o segundo cabeçalho de fatia de entropia 1026 pode ser restrito a ficar localizado dentro de 2p bits 1033 após 3k - p bits 1029 a partir da localização de referência 1021. Nestas modalidades, um decodificador de entropia atribuído para decodificar a fatia de entropia N pode começar a buscar pelo cabeçalho de fatia de entropia correspondente após Nk - p bits a partir da localização de referência e pode terminar a busca após identificar o cabeçalho de fatia de entropia ou após buscar 2p bits.
[00125] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 31. Nestas modalidades, um decodificador de entropia pode receber 1050 um número de fatia de entropia que indica o número da fatia de entropia no bloco de reconstrução corrente para decodifi-car por entropia. O decodificador de entropia pode determinar 1052 a infor-mação de localização de fatia de entropia. Em algumas modalidades da pre-sente invenção, a informação de localização de fatia de entropia, também referenciada como parâmetros de localização de fatia de entropia, pode ser sinalizada no fluxo contínuo de bits, e o decodificador pode determinar 1052 a informação de fatia de entropia examinado o fluxo contínuo de bits. Em modalidades alternativas, a informação de localização de fatia de entropia pode não ser sinalizada no fluxo contínuo de bits, mas pode ser determinada 1052, pelo decodificador, a partir de parâmetros de fatia de entropia, por exemplo, uma quantidade fixa de binários permitida em qualquer dada fatia de entropia, uma quantidade fixa de bits permitida em qualquer dada fatia de entropia e outro parâmetros de fatia de entropia. Em modalidades ainda al-ternativas da presente invenção, a informação de localização de fatia de en-tropia pode ser definida e determinada 1052 por outros meios normativos, por exemplo, a informação pode ser especificada em uma restrição de perfil, uma restrição de nível, uma restrição de aplicação, ou outra restrição, ou a informação pode ser sinalizada como informação suplementar ou sinalizada por outros meios fora do alcance.
[00126] O decodificador de entropia pode calcular 1054 uma lo-calização de início de busca de fatia de entropia antes da qual, no fluxo con-tínuo de bits, o cabeçalho de fatia de entropia é restrito de ter sido gravado pelo codificador. Em algumas modalidades da presente invenção, a localiza-ção de início de busca de fatia de entropia pode ser calculada 1054 usando um valor de deslocamento e um valor de amplitude determinados a partir da informação de localização de fatia de entropia. Em modalidades alternativas da presente invenção, a localização de início de busca de fatia de entropia pode ser calculada 1054 usando um valor de deslocamento determinado a partir da informação de localização de fatia de entropia. O decodificador de entropia pode avançar 1056, no fluxo contínuo de bits, para a localização de início de busca de fatia de entropia, e pode examinar 1058 o fluxo contínuo de bits por um cabeçalho de fatia de entropia. Em algumas modalidades da presente invenção, um cabeçalho de fatia de entropia pode ser indicado por um código de início.
[00127] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 32. Nestas modalidades, um decodificador de entropia pode receber 1070 um número de fatia de entropia que indica o número da fatia de entropia no bloco de reconstrução corrente para decodifi-car por entropia. O decodificador de entropia pode determinar 1072 a infor-mação de localização de fatia de entropia. Em algumas modalidades da pre-sente invenção, a informação de localização de fatia de entropia, também referenciada como parâmetros de localização de fatia de entropia, pode ser sinalizada no fluxo contínuo de bits, e o decodificador pode determinar 1072 a informação de fatia de entropia examinado o fluxo contínuo de bits. Em modalidades alternativas, a informação de localização de fatia de entropia pode não ser sinalizada no fluxo contínuo de bits, mas pode ser determinada 1072, pelo decodificador, a partir de parâmetros de fatia de entropia, por exemplo, uma quantidade fixa de binários permitida em qualquer dada fatia de entropia, uma quantidade fixa de bits permitida em qualquer dada fatia de entropia e outros parâmetros de fatia de entropia. Em modalidades ainda alternativas da presente invenção, a informação de localização de fatia de entropia pode ser definida e determinada 1072 por outros meios normativos, por exemplo, a informação pode ser especificada em uma restrição de perfil, uma restrição de nível, uma restrição de aplicação, ou outra restrição, ou a informação pode ser sinalizada como informação suplementar ou sinalizada por outros meios fora do alcance.
[00128] O decodificador de entropia pode calcular 1074 uma lo-calização de início de busca de fatia de entropia antes da qual, no fluxo con-tínuo de bits, o cabeçalho de fatia de entropia é restrito de ter sido gravado pelo codificador. Em algumas modalidades da presente invenção, a localiza-ção de início de busca de fatia de entropia pode ser calculada 1074 usando um valor de deslocamento e um valor de amplitude determinados a partir da informação de localização de fatia de entropia. Em modalidades alternativas da presente invenção, a localização de início de busca de fatia de entropia pode ser calculada 1074 usando um valor de deslocamento determinado a partir da informação de localização de fatia de entropia. O decodificador de entropia pode avançar 1076, no fluxo contínuo de bits, para a localização de início de busca de fatia de entropia e pode examinar 1078 o fluxo contínuo de bits por um cabeçalho de fatia de entropia. Em algumas modalidades da presente invenção, um cabeçalho de fatia de entropia pode ser indicado por um código de início.
[00129] Os bits, no fluxo contínuo de bits, podem ser examinados 1078 em sequência iniciando na localização de início de busca de fatia de entropia. Se 1080 um cabeçalho de fatia de entropia for identificado 1081, então o decodificador de entropia pode decodificar por entropia 1082 a fatia de entropia associada ao cabeçalho de fatia de entropia identificado. Se 1080 um cabeçalho de fatia de entropia não for identificado 1083, então o decodificador de entropia pode terminar 1084 a busca. Em algumas modali-dades, o decodificador de entropia pode indicar um erro quando nenhum cabeçalho de fatia de entropia é identificado 1083.
[00130] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 33. Nestas modalidades, um decodificador de entropia pode receber 1100 um número de fatia de entropia que indica o número da fatia de entropia, no bloco de reconstrução corrente para decodi-ficar por entropia. O decodificador de entropia pode determinar 1102 a in-formação de localização de fatia de entropia. Em algumas modalidades da presente invenção, a informação de localização de fatia de entropia, também referenciada como parâmetros de localização de fatia de entropia, pode ser sinalizada no fluxo contínuo de bits, e o decodificador pode determinar 1102 a informação de fatia de entropia examinado o fluxo contínuo de bits. Em modalidades alternativas, a informação de localização de fatia de entropia pode não ser sinalizada no fluxo contínuo de bits, mas pode ser determinado 1102, pelo decodificador, de parâmetros de fatia de entropia, por exemplo, uma quantidade fixa de binários permitida em qualquer dada fatia de entro-pia, uma quantidade fixa de bits permitida em qualquer dada fatia de entro-pia e outro parâmetros de fatia de entropia. Em modalidades ainda alternati-vas da presente invenção, a informação de localização de fatia de entropia pode ser definida e determinada 1102 por outros meios normativos, por exemplo, a informação pode ser especificada em uma restrição de perfil, uma restrição de nível, uma restrição de aplicação, ou outra restrição, ou a informação pode ser sinalizada como informação suplementar ou sinalizada por outros meios fora do alcance.
[00131] O decodificador de entropia pode calcular 1104 uma lo-calização de início de busca de fatia de entropia antes da qual, no fluxo con-tínuo de bits, o cabeçalho de fatia de entropia é restrito de ter sido gravada pelo codificador. Em algumas modalidades da presente invenção, a localiza-ção de início de busca de fatia de entropia pode ser calculada 1104 usando um valor de deslocamento e um valor de amplitude determinados a partir da informação de localização de fatia de entropia. Em modalidades alternativas da presente invenção, a localização de início de busca de fatia de entropia pode ser calculada 1104 usando um valor de deslocamento determinado a partir da informação de localização de fatia de entropia. O decodificador de entropia pode avançar 1106, no fluxo contínuo de bits, para a localização de início de busca de fatia de entropia e pode examinar 1108 o fluxo contínuo de bits por um cabeçalho de fatia de entropia. Em algumas modalidades da presente invenção, um cabeçalho de fatia de entropia pode ser indicado por um código de início.
[00132] Os bits, no fluxo contínuo de bits, podem ser examinados 1108 em sequência iniciando na localização de início de busca de fatia de entropia. Se 1110 um cabeçalho de fatia de entropia for identificado 1111, então o decodificador de entropia pode decodificar por entropia 1112 a fatia de entropia associada ao cabeçalho de fatia de entropia identificado. Se 1110 um cabeçalho de fatia de entropia não for identificado 1113, então se 1114 um critério de busca for satisfeito 1115, o decodificador de entropia pode terminar 1116. O critério de busca pode fornecer um padrão pelo qual uma determinação pode ser feita como para se, ou não, permanecem locali-zações válidas remanescentes a serem pesquisadas para o início de cabe-çalho de fatia de entropia. Em algumas modalidades (não mostradas), um critério de busca pode ser satisfeito se localizações válidas permanecem localizações válidas remanescentes a serem pesquisadas. Em modalidades alternativas, um critério de busca pode ser satisfeito se não existirem locali-zações válidas remanescentes a serem examinadas 1115, e a busca pode terminar 1116. Em algumas modalidades, o decodificador de entropia pode indicar um erro quando nenhum cabeçalho de fatia de entropia for identifica-do 1115. Se 1114 o critério de busca não for satisfeito 1117, o exame 1108 do fluxo contínuo de bits pode continuar após avançar 1118, no fluxo contí- nuo de bits para a próxima localização de busca.
[00133] Em algumas modalidades da presente invenção, o critério de busca pode ser relacionado a um valor de amplitude, por exemplo, a localização do início de um cabeçalho de fatia de entropia pode ser restrito a uma amplitude de 2p bits centralizada em Nk, onde kdenota o valor de deslocamento, pdenota o valor de amplitude e N é o número de fatia de entropia dentro de uma fatia de reconstrução. Nestas modalidades, a locali-zação do início do cabeçalho de fatia de entropia associado à fatia de entro-pia N pode ser restrito à amplitude Nk - p a Nk + p.
[00134] Em algumas modalidades, o critério de busca pode ser relacionado a uma restrição, ou restrições, ao tamanho de uma fatia de en-tropia. Em algumas modalidades, o critério de busca pode ser relacionado a uma combinação de restrições.
[00135] Em algumas modalidades da presente invenção, um co-dificador pode complementar uma fatia de entropia a fim de encontrar uma restrição na localização do próximo cabeçalho de fatia de entropia.
[00136] Em algumas modalidades da presente invenção, um co-dificador pode terminar uma fatia de entropia antes de outras restrições de tamanho de fatia de entropia serem atendidas a fim de encontrar uma restrição na localização da próxima cabeçalho de fatia de entropia.
[00137] Em algumas modalidades da presente invenção, quando a última fatia de entropia dentro de uma fatia de reconstrução não contém a quantidade de bits (ou bytes, em uma modalidade alinhada em byte) neces-sária para satisfazer a restrição na localização do próximo cabeçalho de fatia de entropia, um codificador pode complementar a última fatia de entropia dentro da fatia de reconstrução para satisfazer a restrição na localização do próximo cabeçalho de fatia de entropia.
[00138] Em modalidades alternativas, um cabeçalho de fatia de entropia pode compreender um sinalizador de última fatia de entropia, em que o valor do sinalizador de última fatia de entropia pode indicar se a fatia de entropia associada ao cabeçalho de fatia de entropia é ou não a última fatia de entropia em uma fatia de reconstrução. Em algumas modalidades, um valor de zero do sinalizador de última fatia de entropia pode ser associa-do à última fatia de entropia. Em modalidades alternativas, um valor de um do sinalizador de última fatia de entropia pode ser associado à última fatia de entropia. Em algumas modalidades, quando o valor do sinalizador de última fatia de entropia indica que a fatia de entropia é a última fatia de entropia em uma fatia de reconstrução, então o cabeçalho de fatia de entropia subse-quente pode ficar localizado imediatamente em seguida à fatia de entropia corrente sem complementação.
[00139] A Tabela 7 mostra sintaxe e semântica exemplificativos para a sinalização de um sinalizador de última fatia de entropia, referenciado como um "next_entropy_slice_flag". Em uma modalidade exemplificativa que compreende a sintaxe e semântica exemplificativos mostrados na Tabela 7, o sinalizador "next_entropy_slice_flag" sinaliza se existem fatias de entropia adicionais para uma fatia de reconstrução corrente. Se o sinalizador "next_entropy_slice_flag" indica que não existem fatias de entropia adicio-nais para a fatia de reconstrução corrente, então a localização do próximo cabeçalho de fatia de entropia no fluxo contínuo de bits pode não ser restrito pelos parâmetros de localização de fatia de entropia.
[00140] Em algumas modalidades da presente invenção, a loca-lização dos cabeçalhos de fatia de entropia pode ser organizada em um for-mato de árvore com o nó raiz apontando para uma localização de cabeçalho de fatia de entropia. Em algumas modalidades, a localização do cabeçalho de fatia de entropia apontada pelo nó raiz pode ser relativa. Em modalidades alternativas, a localização do cabeçalho de fatia de entropia apontada pelo nó raiz pode ser absoluta. Os nós remanescentes da árvore podem conter distâncias de deslocamento com respeito a seu nó pai. A árvore pode ser projetada de acordo com uma restrição de projeto, por exemplo, reduzir um tempo médio para determinar a localização do cabeçalho de fatia de entro-pia, limitar um tempo requerido de caso anterior para determinar a localiza-ção do cabeçalho de fatia de entropia, sinalizar uma ordem preferida de de- codificação de fatia de entropia, para minimizar um custo de armazenamento para a árvore e outras restrições de projeto. Em algumas modalidades, a quantidade de filhos de cada nó na árvore pode ser controlada baseado em um nível de paralelismo desejado na determinação da localização do cabe-çalho de fatia de entropia.
Figure img0012
Tabela 7: Tabela de Sintaxe de Sinalizador de Última Fatia de En-tropia Exemplificativa
[00141] Em algumas modalidades da presente invenção, os mo- delos de contexto podem ser reinicializados dentro de uma fatia de entropia sempre que uma condição de modelo de contexto reinicializado for encon-trada. Em algumas destas modalidades, os valores para os quais os modelos de contexto podem ser reinicializados podem ser baseados no modelo de contexto de uma unidade elementar vizinha dentro da fatia de entropia, e se a unidade elementar vizinha não estiver dentro da fatia de entropia, então valores padrão podem ser usados. Em modalidades alternativas, os modelos de contexto podem ser reinicializados para valores padrão. Em modalidades ainda alternativas, os modelos de contexto podem ser reinicializados basea-dos em um modelo de contexto cujo identificador pode ser sinalizado dentro do fluxo contínuo de bits, em que o identificador indica um de uma pluralida-de de modelos de contexto predefinidos. Um modelo de contexto predefinido pode depender de um, ou mais, parâmetros no fluxo contínuo de bits. Em modalidades exemplificativas, os modelos de contexto podem ser reiniciali-zados baseados em um sinalizado valor "cabac_init_idc", dentro do fluxo contínuo de bits, que indica um de uma pluralidade de modelos de contexto predefinidos.
[00142] Em algumas modalidades, pode ser usada uma tabela de contexto para inicializar uma pluralidade de modelos de contexto, em que uma tabela de contexto se refere a um conjunto de modelos de contexto. Em algumas modalidades, o conjunto de modelos de contexto em uma tabela de contexto pode passar por adaptação baseado em um, ou mais, parâmetros no fluxo contínuo de bits, por exemplo, um parâmetro de quantização, um parâmetro de tipo de fatia ou outro parâmetro.
[00143] Em uma modalidade exemplificativa ilustrada na Figura 34, os modelos de contexto podem ser reinicializados, dentro de uma fatia de entropia, quando um macrobloco corrente é o primeiro macrobloco em uma linha, adicionalmente a ser reinicializado no macrobloco inicial em uma fatia de entropia. A Figura 34 retrata uma fatia de reconstrução exemplificati- va 1200 que contém 48 macroblocos 1208 a 1255 particionada em três fatias de entropia: fatia de entropia "0" (mostrada em hachurado em cruz) 1202, fatia de entropia "1" (mostrada em branco) 1204 e fatia de entropia "2" (mos-trada em hachurado pontilhado) 1206. A fatia de entropia "0" 1202 contém 15 macroblocos 1208 a 1222. A fatia de entropia "1" 1204 contém 17 macro- blocos 1223 a 1239, e a fatia de entropia "2" 1206 contém 16 macroblocos 1240 a 1255. Os macroblocos nos quais os modelos de contexto podem ser reinicializados são indicados com uma borda preta grossa 1260 a 1266 e são aqueles macroblocos 1208, 1223, 1240 no início de cada fatia de entropia e o primeiro macrobloco em cada linha 1216, 1224, 1232, 1240, 1248.
[00144] A unidade elementar, por exemplo, o macrobloco, no início de uma fatia de entropia pode ser referenciado como a unidade elementar de início de fatia. Por exemplo, para as fatias de entropia 1202, 1204, 1206 na fatia de reconstrução exemplificativa 1200 na Figura 34, as respectivas unidades elementares de início de fatia são 1208, 1223 e 1240. Uma unidade elementar que é a primeira unidade elementar em uma linha em uma fatia de entropia pode ser referenciada como uma unidade elementar de início de linha, por exemplo, os macroblocos 1208, 1216, 1224, 1232, 1240 e 1248 na Figura 34.
[00145] Em algumas modalidades, os modelos de contexto podem ser reinicializados baseados nos modelos de contexto de um macroblo- co vizinho se o macrobloco vizinho estiver dentro da fatia de entropia e valores padrão se o macrobloco vizinho não estiver dentro da fatia de entropia. Por exemplo, os modelos de contexto podem ser reinicializados baseados nos modelos de contexto do macrobloco acima do macrobloco corrente se o macrobloco acima do macrobloco corrente estiver na mesma fatia de entro-pia, mas determinar valores padrão se o macrobloco acima do macrobloco corrente não estiver na mesma fatia de entropia.
[00146] Em outra modalidade exemplificativa, os modelos de contexto podem ser reinicializados, dentro de uma fatia de entropia, quando uma unidade elementar corrente é a primeira unidade elementar em uma linha. Em modalidades alternativas, a condição de modelo de contexto reini-cializado pode ser baseada em outros critérios, por exemplo, a quantidade de binários processados dentro da fatia de entropia, a quantidade de bits processados dentro da fatia, a localização espacial da unidade elementar corrente e outro critério.
[00147] Em algumas modalidades da presente invenção, um si-nalizador de reinicialização de modelo de contexto pode ser usado para indi-car se os modelos de contexto podem ou não ser reinicializados dentro de uma fatia de entropia sempre que uma condição de modelo de contexto rei-nicializado for encontrada. Em algumas modalidades, o sinalizador de reini- cialização de modelo de contexto pode ficar no cabeçalho de fatia de entro-pia. Em modalidades alternativas, o sinalizador de reinicialização de modelo de contexto pode ficar no cabeçalho de fatia de reconstrução. Em algumas modalidades, o sinalizador de reinicialização de modelo de contexto pode ser um sinalizador binário, e a condição de modelo de contexto reinicializado pode ser uma condição padrão. Em modalidades alternativas, o sinalizador de reinicialização de modelo de contexto pode indicar adicionalmente por um sinalizador multivalorado a condição de modelo de contexto reinicializado.
[00148] Em uma modalidade exemplificativa que compreende codificação adaptativa ao contexto, por exemplo, codificação CABAC, codifi-cação CAV2V e outra codificação adaptativa ao contexto, um sinalizador "lcu_row_cabac_init_flag" pode sinalizar se a decodificação de entropia pode ser inicializada no início da maior linha de unidade de codificação (LCU). Em algumas modalidades, uma LCU é uma generalização do conceito de macro- bloco usado no H.264 para codificação de vídeo de alta eficiência (HEVC), e uma imagem é dividida em fatias, em que uma fatia é composta de uma linha de LCUs. Em modalidades alternativas, uma LCU é o maior bloco de locali-zações de valor de pixel que pode ser representada com um único, valor de modo transmitido. Em modalidades alternativas, um LCU é o maior bloco de localizações de valor de pixel que pode ser representado com um único, va-lor de modo de predição transmitido. Em algumas modalidades da presente invenção, um valor de "1" do sinalizador "lcu_row_cabac_init_flag" pode sinalizar que o contexto de codificação de entropia é reinicializado. Um contexto de codificação de entropia pode representar o conjunto de todos os modelos de contexto associados a um codificador de entropia. Em algumas modalidades da presente invenção, um valor de "1" do sinalizador "lcu_row_cabac_init_flag" pode sinalizar que o contexto de codificação de entropia é reinicializado e a varredura adaptativa é reinicializada. Varredura adaptativa pode se referir a um processo no qual um codec adapta uma ordenação de varredura de coeficientes de transformada baseado em valores de coeficiente de transformada transmitidos previamente. A seção 7.6.1 no documento JCTVC- B205_draft005 do JCTVC, o qual é incorporado por referência neste documento integralmente, esboça um exemplo onde a varredura adaptativa escolhe entre duas ordens de varredura distintas baseada nos coeficientes significativos na vizinhança. Em uma modalidade, a varredura adaptativa pode ser reinicializada no início de cada linha de LCU escolhendo uma ordem de varredura predefinida. Em uma modalidade, a ordenação de varredura é determinada gerando um mapa de significância de coeficiente, e os valores de coeficiente de transformada que correspondem a valores de significância de coeficiente maiores do que um valor pré-determinado podem ser transmitidos antes dos valores de coeficiente de transformada que correspondem a valores de significância de coeficiente menores do que ou iguais ao valor pre- determinado. Em uma modalidade, os valores de significância de coeficiente que correspondem a valores de coeficiente de transformada que são maiores do que um valor predeterminado podem ser aumentados subsequentemente. Em uma modalidade alternativa, os valores de significância de coeficiente que correspondem a valores de coeficiente de transformada que são menores do que ou iguais a um valor predeterminado podem ser diminuídos subsequentemente. O processo de varredura adaptativa pode ser reinicializado determinando o mapa de significância de coeficiente para um valor predefinido. Em algumas modalidades, o valor padrão, assumido quando o sinalizador não é enviado, para o sinalizador "lcu_row_cabac_init_flag" pode ser "0". Um sinalizador "lcu_row_cabac_init_idc_flag" pode sinalizar se os valores de cabac_init_idc serão transmitidos no início de cada linha de LCU. Em algumas modalidades, quando o valor do sinalizador "lcu_row_cabac_init_idc_flag" é "1" os valores serão transmitidos no início de cada linha de LCU. Em algumas modalidades, o valor padrão, assumido quando o sinalizador não é enviado, para o sinalizador "lcu_row_cabac_init_idc_flag" pode ser "0". Em algumas modalidades, um sinalizador "cabac_init_idc_present_flag" pode sinalizar se um valor cabac_init_idc é transmitido para a LCU. Em algumas modalidades, quando um valor de cabac_init_idc não é transmitido para a LCU então o contexto de codificação de entropia é reinicializado usando o valor precedente para cabac_init_idc no fluxo contínuo de bits. Em algumas modalidades da presente invenção, "lcu_row_cabac_init_flag" e "lcu_row_cabac_init_idc_flag" podem ser sinalizados em um cabeçalho de fatia regular, por exemplo, quando o valor de "entropy_slice_flag" é "0". A Tabela 8 e a Tabela 9 mostram sintaxes exemplificativas para estas modali-dades. Em algumas modalidades da presente invenção, "lcu_row_cabac_init_flag" e "lcu_row_cabac_init_idc_flag" podem ser sinali-zados em um cabeçalho de fatia de entropia, por exemplo, quando o valor de "entropy_slice_flag" é "1". A Tabela 8 mostra sintaxe de cabeçalho de fatia exemplificativa, e a Tabela 9 mostra sintaxe de dados de fatia exempli- ficativa (coding_unit).
Figure img0013
Tabela 8: Tabela de Sintaxe Exemplificativa para Sinalizar a Inicialização de Codificação de Entropia no Início da Linha da LCU
Figure img0014
Tabela 9: Tabela de Sintaxe Exemplificativa para Sinalizar o Contex-to Inicial para a LCU
[00149] Em outra modalidade exemplificativa que compreende codificação adaptativa ao contexto, por exemplo, codificação CABAC, codificação CAV2V e outra codificação adaptativa ao contexto, um sinalizador "mb_row_cabac_init_flag" pode sinalizar se a decodificação de entropia pode ser inicializada no primeiro macrobloco em uma linha. Em algumas modalidades da presente invenção, um valor de "1" do sinalizador "mb_row_cabac_init_flag" pode sinalizar que o contexto de codificação de entropia é reinicializado no início de cada linha de macroblocos. Em modalidades alternativas da presente invenção, um valor de "1" do sinalizador "mb_row_cabac_init_flag" pode sinalizar que o contexto de codificação de entropia é reinicializado e a varredura adaptativa é reinicializada no início de cada linha de macroblocos. Em algumas modalidades, o valor padrão, assumido quando o sinalizador não é enviado, para o sinalizador
Figure img0015
Figure img0016
Tabela 10: Tabela de Sintaxe Exemplificativa para Sinalizar a Inicia- lização de Codificação de Entropia no Início da Linha de Macroblocos
Figure img0017
Figure img0018
Tabela 11: Tabela de Sintaxe Exemplificativa para Sinalizar o Con-texto Inicial para o Macrobloco
[00150] Em algumas modalidades da presente invenção, as lo-calizações, em um fluxo contínuo de bits, das fatias de entropia podem ser sinalizadas no fluxo contínuo de bits. Em algumas modalidades, um sinalizador pode ser usado para sinalizar que as localizações, no fluxo contínuo de bits, das fatias de entropia serão sinalizadas no fluxo contínuo de bits. Algumas modalidades exemplificativas podem compreender um "entro- py_slice_locations_flag" que se "verdadeiro" pode indicar que as localizações, no fluxo contínuo de bits, dos cabeçalhos de fatia de entropia serão sinalizadas no fluxo contínuo de bits. Em algumas modalidades, a localização dados pode ser codificada de forma diferente. Em algumas modalidades, os dados de localização podem ser enviados em cada fatia de reconstrução. Em modalidades alternativas, os dados de localização podem ser enviados uma vez a cada imagem.
[00151] Em algumas modalidades da presente invenção, as lo-calizações, em um fluxo contínuo de bits, da linha de LCUs podem ser sina-lizadas no fluxo contínuo de bits. Em algumas modalidades, um sinalizador pode ser usado para sinalizar que a localização, no fluxo contínuo de bits, da primeira LCU em cada linha será sinalizada no fluxo contínuo de bits. Algumas modalidades exemplificativas podem compreender um "lcu_row_localização_flag" que se "verdadeiro" pode indicar que a localiza-ção, no fluxo contínuo de bits, da primeira LCU em cada linha será sinaliza- da no fluxo contínuo de bits. Em algumas modalidades, os dados de locali-zação podem ser codificados de forma diferente. Em algumas modalidades, os dados de localização podem ser enviados em cada fatia de entropia. Em modalidades alternativas, os dados de localização podem ser enviados uma vez a cada fatia de reconstrução.
[00152] As Tabelas 12A a 12C mostram sintaxes exemplificati- vas para a sinalização das localizações, no fluxo contínuo de bits, das linhas de LCU e nas fatias de entropia. Para esta sintaxe exemplificativa, as se-mânticas são: "entropy_slice_locations_flag" sinaliza se a localização do cabeçalho de fatia de entropia é transmitido. Se o valor de "entro- py_slice_locations_flag" é determinado para "1", então a localização do ca-beçalho de fatia de entropia é transmitido, caso contrário o mesmo não é transmitido. O valor padrão para o "entropy_slice_locations_flag" é "0". "num_of_entropy_slice_minus1" sinaliza a quantidade de fatias de entropia na fatia de reconstrução menos 1. "entropy_slice_offset [i] " indica o deslocamento da i-ésima fatia de entropia da fatia de entropia prévia. "lcu_row_locations_flag" sinaliza se a informação de localização de linha de LCU está sendo transmitida ou não. Se o valor de "lcu_row_locations_flag" é "1", então a informação de localização de linha de LCU é transmitida, caso contrário a mesma não é transmitida. O valor pa-drão para "lcu_row_locations_flag" é "0". "num_of_lcu_rows_minus1" sinaliza a quantidade de linhas de LCU na fatia de entropia menos 1. "lcu_row_offset [i] " indica o deslocamento da i-ésima linha de LCU a partir da linha de LCU prévia.
[00153] Em algumas modalidades da presente invenção, "lcu" nas Tabelas 12A a 12C pode ser substituída por "macrobloco". Por exemplo, "first_lcu_in_slice", "lcu_row_cabac_init_flag", "lcu_row_cabac_init_idc_flag", "lcu_row_locations_flag", "lcu_row_locations ()", "num_of_lcu_rows_minus1", e "lcu_row_offset[i]" em Tabela 12A a 12C podem ser substituídos por "first_mb_in_slice", "mb_row_cabac_init_flag", "mb_row_cabac_init_idc_flag", "mb_row_locations_flag", "mb_row_locations ()", "num_of_mb_rows_minus1", e "mb_row_offset[i]", respectivamente.
Figure img0019
Figure img0020
Figure img0021
<Tabela 12C> Tabelas 12A a 12C: Tabelas de Sintaxe Exemplificativas para Sinalizar as Localizações, no Fluxo Contínuo de Bits, da Primeira LCU em uma Linha
[00154] Em algumas modalidades da presente invenção, as lo-calizações em um fluxo contínuo de bits de codificador de entropia inicializa-ção podem ser sinalizadas no fluxo contínuo de bits. Em algumas modalida-des, um sinalizador pode ser usado para sinalizar que a localização, no fluxo contínuo de bits, da inicialização do codificador de entropia pode ser sinali-zada no fluxo contínuo de bits. A inicialização do codificador de entropia de-fine uma localização no fluxo contínuo de bits onde um codificador de entro-pia é inicializado para um estado predefinido tanto no codificador como no decodificador. Em algumas modalidades, o codificador de entropia é iniciali- zado usando um processo de inicialização que resulta em qualquer saída subsequente do codificador de entropia ser alinhada a uma fronteira de byte. Em algumas modalidades, o codificador de entropia é inicializado usando um processo de inicialização que resulta em qualquer saída subsequente do codificador de entropia ser alinhado com uma fronteira de bit. Aqui, bit repre-senta um único binário valor em um fluxo contínuo de bits, e byte representa uma unidade que é igual a um múltiplo de bits. Por exemplo, 8 bits tipica-mente são equivalentes a um byte. Algumas modalidades exemplificativas podem compreender um "entropy_locations_flag" que se "verdadeiro" pode indicar que a localização, no fluxo contínuo de bits, a inicialização do codifi-cador de entropia será sinalizada no fluxo contínuo de bits. Em algumas mo-dalidades, os dados de localização podem ser codificados de forma diferen-te. Em algumas modalidades, os dados de localização podem ser enviados em cada fatia de entropia. Em modalidades alternativas, os dados de locali-zação podem ser enviados uma vez a cada fatia de reconstrução. Em moda-lidades alternativas, os dados de localização podem ser enviados uma vez a cada fatia.
[00155] As Tabelas 18A a 18B mostram sintaxes exemplificati- vas para a sinalização das localizações, no fluxo contínuo de bits, da iniciali-zação do codificador de entropia. Para esta sintaxe exemplificativa, as se-mânticas são: (1) "entropy_input_point_flag" sinaliza se as localizações de iniciali-zação do codificador de entropia são pré-enviadas no fluxo contínuo de bits. Se o valor de "entropy_input_point_flag" é determinado para "1", então as localizações de inicialização do codificador de entropia são pré-enviadas no fluxo contínuo de bits. Em algumas modalidades, estas localizações de inici-alização do codificador de entropia correspondem ao início de uma fatia de entropia. Em algumas modalidades, estas localizações de inicialização de codificador de entropia do codificador de entropia correspondem ao início de um azulejo, que é uma fatia retangular. Em algumas modalidades, estas lo-calizações de inicialização do codificador de entropia correspondem ao início de uma linha de LCU. Em algumas modalidades, estas localizações de inicialização do codificador de entropia correspondem ao início de um subfluxo, que é definido como um conjunto de linhas de LCU. O valor padrão para o "entropy_input_point_flag" é "0". (2) "num_of_entropy_locations_minus1" sinaliza a quantidade de lo-calizações de inicialização do codificador de entropia menos 1. (3) "entropy_locations_offset [i] " indica o deslocamento da i-ésima localização de inicialização de codificador de entropia a partir a localização de inicialização de codificador de entropia prévia. (4) "entropy_point_locations_flag" sinaliza se a localização de inicia-lização de ponto de entrada de codificador de entropia está sendo transmiti-da ou não. se o valor de "entropy_point_locations_flag" é "1", então a locali-zação de inicialização de ponto de entrada de codificador de entropia é transmitido, caso contrário o mesmo não é transmitido. O valor padrão para "entropy_point_locations_flag" é "0".
Figure img0022
Figure img0023
<Tabela 18B> Tabelas 18A e 18B: Tabela de Sintaxe Exemplificativa para Sinalizar as Localizações, no Fluxo Contínuo de Bits
[00156] As Tabelas 19A e 19B mostram sintaxes exemplificati- vas para a sinalização das localizações, no fluxo contínuo de bits, da iniciali-zação do codificador de entropia. Para esta sintaxe exemplificativa, as se-mânticas são: (1) "entropy_input_point_flag" sinaliza se as localizações de iniciali-zação do codificador de entropia são pré-enviadas no fluxo contínuo de bits. Se o valor de "entropy_input_ponit_flag" for determinado para "1", então as localizações de inicialização do codificador de entropia são pré-enviadas no fluxo contínuo de bits. Em algumas modalidades, estas localizações de inici-alização do codificador de entropia correspondem ao início de uma fatia de entropia. Em algumas modalidades, estas localizações de inicialização de codificador de entropia do codificador de entropia correspondem ao início de um azulejo, que é uma fatia retangular. Em algumas modalidades, estas lo-calizações de inicialização do codificador de entropia correspondem ao início de um linha de LCU. Em algumas modalidades, estas localizações de inicia-lização do codificador de entropia correspondem ao início de um subfluxo, que é definido como um conjunto de linhas de LCU. O valor padrão para o "entropy_input_point_flag" é "0". (2) "num_of_first_entropy_locations_minus1" sinaliza a quantidade das localizações de inicialização do codificador de entropia menos 1. (3) "num_of_first_entropy_locations_minus1" sinaliza a quantidade das localizações de inicialização do codificador de entropia menos 1 para um primeiro processo de inicialização do codificador de entropia. (4) "num_of_segundo_entropy_locations_minus1" sinaliza a quanti-dade das localizações de inicialização do codificador de entropia menos 1 para um segundo processo de inicialização do codificador de entropia. (5) "entropy_locations_offset [i] " indica o deslocamento da i-ésima localização de inicialização de codificador de entropia a partir da localização de inicialização de codificador de entropia prévia. "entro- py_point_locations_flag" sinaliza se a localização de inicialização de ponto de entrada de codificador de entropia está sendo transmitida ou não. Se o valor de "entropy_point_locations_flag" é "1", então a localização de iniciali-zação de ponto de entrada de codificador de entropia é transmitida, caso contrário a mesma não é transmitido. o valor padrão para "entro- py_point_locations_flag" é "0".
Figure img0024
Figure img0025
<Tabela 19B> Tabelas 19A e 19B: Tabela de Sintaxe Exemplificativa das Lo-calizações, no Fluxo Contínuo de Bits
[00157] Em uma modalidade da invenção, entro- py_locations_offset [i] é sinalizado de acordo com o alinhamento do primeiro processo de inicialização de codificador de entropia para um conjunto de valores para o índice i, e entropy_locations_offset [i] é sinalizado de acordo com o alinhamento do segundo processo de inicialização de codificador de entropia para um segundo conjunto de valores para o índice i. Por exemplo, entropy_locations_offset [i] pode ser sinalizado de acordo com o alinhamento do primeiro processo de inicialização de codificador de entropia quando o mesmo é um inteiro múltiplo de num_of_segundo_entropy_locations_minus1+1. Alternativamente, entro py_locations_offset [i] pode ser sinalizado de acordo com o alinhamento do primeiro processo de inicialização de codificador de entropia quando i+N for um inteiro múltiplo de num_of_segundo_entropy_locations_minus1+1, onde N é definido nesta modalidade e é um inteiro valor. Em uma modalidade, quando entropy_slice_locations_offset[i] é sinalizado de acordo com o ali-nhamento do primeiro processo de inicialização de codificador de entropia e entropy_slice_locations_offset[i+1] é sinalizado de acordo com o alinhamento do segundo processo de inicialização do codificador de entropia, a locali-zação identificada por entropy_slice_locations_offset[i] é mapeado a partir do alinhamento do primeiro processo de inicialização de codificador de entropia para o alinhamento do segundo processo de inicialização de codificador de entropia antes a derivação da localização de inicialização do codificador de entropia que corresponde ao entropy_slice_locations_offset[i+1]. Para o caso em que o primeiro processo de inicialização é alinhado por byte, e o segundo processo de inicialização é alinhado por bit, a localização alinhada por byte é convertida para uma localização alinhada por bit. Por exemplo, a localização alinhada por byte pode ser multiplicada pela quantidade de bits em um byte. Para o caso em que o primeiro processo de inicialização é alinhado por bit, e o segundo processo de inicialização é alinhado por byte, a localização alinhada por bit é convertida para uma localização alinhada por byte. Por exemplo, a localização alinhada por bit pode ser dividida pela quantidade de bits em um byte. Para este exemplo, a divisão pode denotar divisão inteira. Alternativamente, para este exemplo, a divisão pode denotar uma operação de deslocamento à direita. Para o exemplo de converter uma localização alinhada por bit para uma localização alinhada por byte, o processo pode adicionalmente incluir adicionar um deslocamento seguindo a operação de divisão descrita acima. Para o caso em que a representação do fluxo contí-nuo de bits de entropy_locations_offset[i] é sinalizado adicionalmente no flu- xo contínuo de bits, a representação de entropy_locations_offset[i] pode ser dependente do processo de inicialização de codificador de entropia que cor-responde à localização de inicialização do codificador de entropia entro- py_locations_offset[i]. Por exemplo, quando a representação do fluxo contí-nuo de bits é sinalizada como N bits (onde N é um inteiro para esta modali-dade) para um primeiro processo de inicialização de codificador de entropia que é alinhado por byte, pode ser usada uma representação de fluxo contí-nuo de bits de M bits (onde M é um inteiro para esta modalidade) para a re-presentação do fluxo contínuo de bits para uma segunda inicialização do processo de codificador de entropia. Aqui, a relação entre M e N pode ser igual à relação do alinhamento do primeiro processo de inicialização e do segundo processo de inicialização. Em outras palavras, se o primeiro pro-cesso de inicialização é alinhado por byte e o segundo processo de iniciali-zação é alinhado por bit, a relação entre M e N pode ser a mesma que a re-lação da quantidade de bits em um byte.
[00158] A transmissão eficiente de dados residuais a partir de um codificador para um decodificador pode ser obtida pela sinalização da localização de coeficientes de transformada de valor zero e os valores de nível dos coeficientes de transformada diferentes de zero para uma unidade elementar, por exemplo, um macrobloco. Muitos sistemas de codificação podem tentar pra localizar os coeficientes de transformada de valor zero no final dos dados residuais para a unidade elementar, para deste modo permitir o uso de um código de "fim de bloco" após o último coeficiente de trans-formada significativo para sinalizar com eficiência que os valores de coefici-ente de transformada remanescentes são zero.
[00159] Alguns sistemas de codificação podem rastrear as loca-lizações de coeficientes de transformada de valor zero nos dados residuais previamente transmitidos para uma unidade elementar previamente proces- sada, o que pode permitir que as localizações com coeficientes de transfor-mada de valor zero prévios sejam transmitidos por último em dados residuais subsequentes. Alternativamente, alguns sistemas de codificação podem rastrear as localizações de coeficientes de transformada diferentes de zero nos dados residuais transmitidos previamente. Embora isto possa melhorar a eficiência de codificação, isto faz com que seja necessário decodificar com-pletamente dados residuais prévios a fim de decodificar dados residuais cor-rentes devido ao fato de que a codificação de dados residuais usa modelos de contexto, também referenciados como modelos de probabilidades, que são determinados por um identificador de coeficiente de transformada que pode ser determinado apenas com o conhecimento das localizações que são identificadas como sendo transmitidas no final dos dados residuais.
[00160] Por exemplo, como mostrado na Figura 34A, se a adaptação de varredura tiver gerado uma ordem de varredura de: S = {coeff0,coeff10,coeff1,..} para o processo de codificação de entropia associado a uma unidade elementar corrente, onde coeffi denota o i-ésimo coeficiente de transformada, então o contexto, que pode ser denotado ctxt0 , que corresponde a coeff0 precisa ser buscado para codificar o coeficiente de transformada coeff0 . A seguir o contexto ctxt10 , que corresponde a coeff10 precisa ser buscado para codificar o coeficiente de transformada coeff10 , e assim por diante. Portanto, uma ordenação temporal na codificação das uni-dades elementares pode ser forçado devido à necessidade de conhecer a ordem de varredura S = {coeff0,coeff10,coeff1,..\, a qual não pode ser obtida até que unidades elementares prévias tenham sido codificadas.
[00161] Em algumas modalidades da presente invenção, a fim de permitir codificação paralela de fatias de entropia, a varredura adaptativa pode ser reinicializada para uma ordem de varredura padrão de fatia de en-tropia na unidade elementar de início de fatia de cada fatia de entropia, para deste modo permitir que fatias de entropia separadas sejam codificadas em paralelo.
[00162] Em algumas modalidades da presente invenção, uma ordem de varredura de um cálculo de varredura adaptativa possa ser determinada para uma ordem de varredura conhecida, também referenciada como uma sequência padrão, nas unidades elementares de início de sequência de cada linha de LCU dentro de uma fatia de entropia.
[00163] Em modalidades alternativas da presente invenção, o ordem de varredura de coeficiente de transformada de bloco e o modelo de contexto correspondente, também referenciado como contexto, o qual pode ser buscado para codificar um coeficiente de transformada pode ser desaco- plado, para deste modo permitir codificação paralela. Nestas modalidades, um coeficiente de transformada localizado em uma primeira localização no fluxo contínuo de bits pode ser associado, baseado em its localização relativa aos outros coeficientes de transformada no fluxo contínuo de bits, com um contexto localizada correspondentemente em uma ordem de busca de contexto. nestas modalidades, uma ordem de busca de contexto, que pode ser denotada F = {ctxtA,ctxtB,ctxtC,...}, onde ctxt, denota um contexto que não é associado a uma localização de coeficiente de transformada no domínio de transformada, mas em vez disso é associado à localização relativa do coeficiente de transformada no fluxo contínuo de bits, pode ser predefinida. Portanto, para uma ordem de varredura de coeficiente de transformada exemplificativa S = {coeff0,coeff10,coeff1,..}, o processo de codificação pode codificar o coeff0 com ctxtA , coeff10 com ctxtB , coeff1 com ctxtC e assim por diante. Nestas modalidades, o processo de codificação de entropia pode operar independentemente da ordem de varredura. Algumas modalidades de codificador podem ser descritas em relação à Figura 35. Um codificador pode buscar 1280 o próximo coeficiente de transformada a ser codificado e pode buscar 1282 o próximo contexto, a partir de uma lista de busca de con-textos predefinida. O coeficiente de transformada buscado pode ser codifi-cado por entropia 1284 usando o contexto buscado, e pode ser feita uma determinação 1286 da existência ou não de coeficientes de transformada significativos remanescentes para codificar. Se existirem 1287 coeficientes de transformada significativos remanescentes a serem codificados, o próximo coeficiente de transformada significativo pode ser buscado 1280, e o processo pode continuar. Se não existirem 1289, então o processo pode terminar 1290. Algumas modalidades de decodificador podem ser descritas em relação à Figura 36. Um decodificador pode buscar 1300 o próximo con-texto e decodificar por entropia 1302 o próximo coeficiente de transformada significativo a partir do fluxo contínuo de bits usando o contexto buscado. O coeficiente de transformada decodificado pode ser armazenado 1304, e pode ser feita uma determinação 1306 da existência ou não coeficientes de transformada significativos remanescentes para decodificar. Se existirem 1307, então o próximo contexto pode ser buscado 1300, e o processo pode continuar. Se não existirem 1309, então o processo pode terminar 1310.
[00164] Em modalidades alternativas da presente invenção, uma ordem de varredura de coeficiente pode ser restrita a um subconjunto de todas as combinações de varredura possíveis e pode ser explicitamente si-nalizada. no início de uma fatia de entropia, a ordem de varredura pode ser determinada para uma ordem de varredura sinalizada. Em algumas modali-dades, a ordem de varredura pode ser sinalizada como uma sintaxe norma-tiva. Em modalidades alternativas, a ordem de varredura pode ser sinalizada com uma mensagem não normativa, por exemplo, uma mensagem SEI ou outra mensagem não normativa.
[00165] Em modalidades alternativas da presente invenção, uma ordem de varredura de coeficiente pode ser restrita a um subconjunto de todas as combinações de varredura possíveis e pode ser explicitamente si-nalizada. no início de uma linha de LCU em uma fatia de entropia, a ordem de varredura pode ser determinada para uma ordem de varredura sinalizada. Em algumas modalidades, a ordem de varredura pode ser sinalizada como uma sintaxe normativa. Em modalidades alternativas, a ordem de varredura pode ser sinalizada com uma mensagem não normativa, por exemplo, a mensagem SEI ou outra mensagem não normativa.
[00166] Em modalidades ainda alternativas da presente invenção, no início de uma fatia de entropia, a ordem de varredura de coeficiente pode ser determinada para a ordem de varredura de uma unidade elementar decodificada previamente. Em algumas modalidades, a ordem de varredura pode ser determinada para a ordem de varredura usada na unidade elemen-tar acima. Em modalidades alternativas, a ordem de varredura pode ser de-terminada para a ordem de varredura usada na unidade elementar acima e à direita.
[00167] Em modalidades ainda alternativas da presente invenção, no início de uma linha de LCU em uma fatia de entropia, a ordem de varredura de coeficiente pode ser determinada para a ordem de varredura de uma unidade elementar previamente decodificada. Em algumas modalidades, a ordem de varredura pode ser determinada para a ordem de varredura usada na unidade elementar acima. Em modalidades alternativas, a ordem de varredura pode ser determinada para a ordem de varredura usada na unidade elementar acima e à direita.
[00168] Com referência à FIGURA 42, em algumas modalidades da presente invenção, pode ser aplicado um método de inicialização de contexto para fatias P às fatias B preditas anteriormente, o que pode resultar em uma maior eficiência de compressão devido aos maiores graus de liberdade proporcionados para fatias B e a natureza multi-hipótese de predições B. As fatias de referência usadas em uma fatia B predita anteriormente são sempre de quadros / imagens temporalmente anteriores como distinguido a partir de uma fatia B regular em que uma referência pode ser escolhida a partir de quadros / imagens temporalmente futuros e/ou passados. Portanto, uma fatia B predita anteriormente pode compreender dados residuais com caracte-rísticas estatísticas que diferem daquelas de uma fatia B regular. Como ilus-trado na FIGURA 42, a técnica pode receber fatias B, fatias P, e fatias I e baseada no tipo de fatia recebida, uma técnica de inicialização de contexto é selecionada. Adicionalmente, no caso de uma fatia B predita anteriormente é usada a técnica de inicialização de contexto para a fatia P. Mais especifica-mente, são realizadas as seguintes etapas: 4301: um tipo de fatia pode ser decodificada a partir de fluxo contí-nuo de bits; 4302: É determinado se o tipo de fatia é fatia B ou não; 4303: se o tipo de fatia for fatia B (Sim em 4302), então é determina-do se a fatia é predita anteriormente. Se a fatia for predita anteriormente, então o contexto é inicializado com uma segunda técnica de inicialização, caso contrário o contexto é inicializado com uma primeira técnica de iniciali-zação; 4304: se o tipo de fatia não for fatia B (Não em 4302), então é de-terminado se o tipo de fatia é fatia P ou não. Se o tipo de fatia for fatia P, então o contexto é inicializado com a segunda técnica de inicialização; e 4305: se o tipo de fatia não for fatia P (Não em 4304), é determinado se o tipo de fatia é fatia I ou não. Se o tipo de fatia for fatia I, o contexto é inicializado com uma terceira técnica de inicialização.
[00169] De acordo com um aspecto da presente invenção, uma distribuição de probabilidade inicial usada para inicializar um codificador de entropia pode ser gerada treinando apenas quadros B preditos adiantados. De acordo com outro aspecto da presente invenção, a inicialização do con-texto pode ser adaptada baseada no parâmetro de quantização, que pode ser denotado QP , usado para codificar os dados de vídeo correntes.
[00170] Em algumas modalidades da presente invenção, um co-dificador alternativamente pode aplicar um método de inicialização de con-texto às fatias P as fatias B preditas anteriormente e pode sinalizar a ocor-rência da alternância. Em algumas modalidades da presente invenção, a sinalização pode ser explícita. Em modalidades alternativas da presente in-venção, a sinalização pode ser implícita. Em algumas modalidades da pre-sente invenção que compreendem a sinalização explícita, um sinalizador pode ser enviado para o decodificador sempre que uma fatia P for substituída por uma fatia B predita anteriormente. Em algumas destas modalidades, o sinalizador pode ser sinalizado como uma sintaxe normativa. Em modali-dades alternativas, o sinalizador pode ser sinalizado dentro de uma mensa-gem não normativa, por exemplo, uma mensagem SABE ou outra mensagem não normativa.
[00171] Com referência à FIGURA 40, em algumas modalidades da presente invenção, um método de inicialização de contexto para fatias P pode ser aplicado a fatias B uni-preditas, o que pode resultar em uma maior eficiência de compressão devido aos maiores graus de liberdade proporcio-nados para fatias B. As fatias de referência usadas em uma fatia B uni- predita são uma parte de quaisquer quadros / imagens temporalmente ante-riores ou quadros / imagens temporalmente posteriores. Portanto, uma fatia B uni-predita pode compreender dados residuais com características estatísticas diferentes daqueles de uma fatia B bidirecional. Temporalmente pode se referir à ordem de exibição das imagens / quadros decodificados. Como ilustrado na FIGURA 40, a técnica pode receber fatias B, fatias P, e fatias I e baseada no tipo de fatia recebida, é selecionada uma técnica de inicialização de contexto. Adicionalmente, no caso de uma fatia B uni-predita é usada a técnica de inicialização de contexto para a fatia P. Mais especificamente, as seguintes etapas são realizadas: 4101: um tipo de fatia pode ser decodificado a partir do fluxo contí-nuo de bits; 4102: É determinado se o tipo de fatia é fatia B ou não; 4103: Se o tipo de fatia for fatia B (Sim em 4102), então é determi-nado se a fatia é predita anteriormente ou posteriormente, mas não ambas. Se a fatia é predita anteriormente ou posteriormente, mas não ambas, então o contexto é inicializado com uma segunda técnica de inicialização, caso contrário o contexto é inicializado com uma primeira técnica de inicialização; 4104: Se o tipo de fatia não for fatia B (Não em 4102), então é de-terminado se o tipo de fatia é fatia P ou não. Se o tipo de fatia for fatia P, então o contexto é inicializado com a segundo técnica de inicialização; e 4105: Se o tipo de fatia não for fatia P (Não em 4104), é determinado se o tipo de fatia é fatia I ou não. Se o tipo de fatia for fatia I, o contexto é inicializado com uma terceira técnica de inicialização.
[00172] Com referência à FIGURA 41, em algumas modalidades da presente invenção, uma fatia B predita anteriormente pode ser inicializa- da de uma maneira diferente de uma fatia B predita posteriormente e/ou uma fatia B predita bidirecional, o que pode resultar em uma maior eficiência de compressão devido aos diferentes graus de liberdade proporcionados para fatias B. As fatias de referência usadas em uma fatia B predita anteriormente são uma parte de quadros / imagens temporalmente anteriores. Portanto, uma fatia B predita anteriormente pode compreender dados residuais com características estatísticas diferentes daquelas de uma fatia B posterior e/ou bidirecional. Temporalmente pode se referir à ordem de exibição das imagens / quadros decodificados. Como ilustrado na FIGURA 41, a técnica pode receber fatias B, fatias P, e fatias I e baseada no tipo de fatia recebida, é selecionada uma técnica de inicialização de contexto. Adicionalmente, no caso de uma fatia B predita anteriormente pode ser usada uma técnica de inicialização de contexto diferente das fatias B, fatias P, e fatias I. Mais es-pecificamente, as seguintes etapas são realizadas: 4201: um tipo de fatia pode ser decodificado a partir do fluxo contí-nuo de bits; 4202: É determinado se o tipo de fatia é fatia B ou não; 4203: Se o tipo de fatia for fatia B (Sim em 4202), então é determi-nado se a fatia é predita anteriormente ou não. Se a fatia for predita anteri-ormente, então o contexto é inicializado com uma quarta técnica de iniciali-zação, caso contrário o contexto é inicializado com uma primeira técnica de inicialização; 4204: Se o tipo de fatia não for fatia B (Não em 4202), então é de-terminado se o tipo de fatia é fatia P ou não. Se o tipo de fatia for fatia P, então o contexto é inicializado com a segunda técnica de inicialização; e 4205: Se o tipo de fatia não for fatia P (Não em 4204), é determinado se o tipo de fatia é fatia I ou não. Se o tipo de fatia for fatia I, o contexto é inicializado com uma terceira técnica de inicialização.
[00173] O método de inicialização de contexto pode consistir em determinar valores de um codificador de entropia que são necessários para a operação do codificador de entropia. Por exemplo, uma primeira estimativa de probabilidade pode ser determinada para um codificador de entropia que usa estimativas de probabilidade para dados de codificação, tal como em um codificador aritmético. O método de inicialização de contexto pode usar uma técnica de inicialização para determinar os valores. Em uma modalidade, um primeiro método de inicialização corresponde a usar uma primeira tabela de valores pré-computados para determinar os valores. De maneira similar, um segundo método de inicialização corresponde a usar uma segunda tabela de valores pré-computados para determinar os valores. Em outra modalidade, um primeiro método de inicialização usa uma primeira tabela de valores pré- computados que são projetados para quadros que usam mais do que uma predição entre quadros para determinar os valores, onde o(s) quadro(s) usa- do(s) para predição ambos precedem e seguem temporalmente o quadro corrente quando ordenados em ordem de exibição. Um segundo método de inicialização usa uma segunda tabela de valores pré-computados que são projetados a partir de quadros que usam mais do que uma predição entre quadros para determinar os valores, onde os quadros usados para predição temporalmente precedem ou seguem temporalmente, mas não ambos pre-cedem temporalmente e seguem temporalmente o quadro corrente quando ordenados em ordem de exibição. Um terceiro método de inicialização usa uma terceira tabela de valores pré-computados que são projetados para quadros que usam no máximo uma predição entre quadros para determinar os valores. Um quarto método de inicialização usa uma quarta tabela de va-lores pré-computados que são projetados para quadros que não usam predi-ção entre quadros para determinar os valores.
[00174] Em um modalidade da invenção, RefPicList0 contém uma lista de quadros decodificados previamente que são exibidos antes da exibição do quadro corrente seguida por uma lista de quadros decodificados previamente que são exibidos subsequentes à exibição do quadro corrente e RefPicList1 contém uma lista de quadros decodificados previamente que são exibidos subsequentes à exibição do quadro corrente seguida por uma lista de quadros decodificados previamente que são exibidos antes da exibição do quadro corrente. Nesta modalidade, a condição (2) acima é verdadeira para uma fatia B unidirecional uma vez que a quantidade de quadros decodi-ficados previamente que são exibidos subsequentes à exibição do quadro corrente é zero, ou a quantidade de quadros decodificados que são exibidos antes da exibição do quadro corrente é zero. Em outra modalidade da inven-ção, PicOrderCnt denota a ordem de exibição dos quadros decodificados. Nesta modalidade, a condição (3) acima é verdadeira para uma fatia B unidi- recional uma vez que os quadros decodificados são todos exibidos antes da exibição do quadro corrente ou subsequentes à exibição do quadro corrente.
[00175] Em algumas modalidades da presente invenção que compreende sinalização implícita, uma ocorrência de um método de iniciali-zação de contexto para fatias P aplicado a fatia B predita anteriormente, pode ser inferido em um decodificador quando as fatias de referência (quadros / imagens) usadas em predição são todas as fatias passadas (quadros / imagens) baseadas na ordem na qual as fatias devem ser exibidas. Em al-gumas modalidades, a ocorrência de uma fatia P substituída por uma fatia B unidirecional pode ser inferida quando as seguintes condições são verdadei-ras: (1) a lista de imagem de referência RefPicList1 tem uma ou mais entra-das, (2) as listas de imagem de referência RefPicList1 e RefPicList0 contém o mesmo conjunto de imagens, e (3) todos os quadros nas listas de imagem de referência RefPicList1 e RefPiList0 têm PicOrderCnt menor do que o Pi- cOrderCnt do quadro corrente, onde PicOrderCnt indica a ordem de exibição do quadros em ordem ascendente. Em algumas modalidades, a ocorrência de uma fatia P substituída por uma fatia B unidirecional pode ser inferida quando as seguintes condições são verdadeiras: (1) a lista de imagem de referência RefPicList1 tem uma ou mais entradas, (2) as listas de imagem de referência RefPicList1 e RefPicList0 contêm o mesmo conjunto de imagens, e (3) todos os quadros nas listas de imagem de referência RefPicList1 e Re- fPiList0 têm PicOrderCnt maiores do que o PicOrderCnt do quadro corrente, onde PicOrderCnt indica a ordem de exibição do quadros em ordem ascen-dente. Em algumas modalidades, a ocorrência de uma fatia P substituída por uma fatia B unidirecional pode ser inferida quando as seguintes condições são verdadeiras: (1) a lista de imagem de referência RefPicList1 tem uma ou mais entradas, e (2) o primeiro quadro na lista de imagem de referência Re- fPicList1 e o primeiro quadro na RefPicList0 têm PicOrderCnt menores (ou maiores) do que o PicOrderCnt do quadro corrente, onde PicOrderCnt indica a ordem de exibição do quadros em ordem ascendente. Em algumas moda-lidades, a ocorrência de uma fatia P substituída por uma fatia B unidirecional pode ser inferida quando as seguintes condições são verdadeiras: (1) a lista de imagem de referência RefPicList1 tem mais do que uma entrada, e (2) os quadros [0,N] na lista de imagem de referência RefPicList1 e os quadros [0,N] na RefPicList0 têm PicOrderCnt menores (ou maiores) do que o PicOr- derCnt do quadro corrente, onde PicOrderCnt indica a ordem de exibição do quadros em ordem ascendente. Em algumas modalidades, a ocorrência de uma fatia P substituída por um unidirecional fatia B pode ser inferida quando as seguintes condições são verdadeiras: (1) a lista de imagem de referência RefPicList1 tem uma ou mais entradas, (2) o primeiro quadro na lista de imagem de referência RefPicList1 é o mesmo que o segundo quadro na lista de imagem de referência RefPicList0, (3) o segundo quadro na lista de ima-gem de referência RefPicList1 é o mesmo que o primeiro quadro na lista de imagem de referência RefPicList0, (4) os quadros [0,N] na lista de imagem de referência RefPicList1 e os quadros [0,N] na RefPicList0 têm PicOrderCnt menores (ou maiores) do que o PicOrderCnt do quadro corrente, onde Pi- cOrderCnt indica a ordem de exibição do quadros em ordem ascendente. Em algumas modalidades a ordem na RefPicList0 e na RefPicList1 não precisa ser idêntica para conter o mesmo conjunto de imagens. Em uma modalidade exemplificativa, quando a lista de imagem de referência RefPicList1 tem mais do que uma entrada e RefPicList1 é idêntica à lista de imagem de referência RefPicLis0, então as duas primeiras entradas RefPicList1 [0] e Re- fPicList1[1] podem ser trocadas. N pode se referir a menos do que a quanti-dade total de quadros / imagens na lista de imagem de referência. O PicOr- derCnt também pode se referir a uma ordem de exibição relativa em uma memória temporária de amortecimento de decodificador de imagem.
[00176] Quando a ocorrência de uma fatia P substituída por uma fatia B predita anteriormente é indicada, o contexto para uma fatia de entropia pode ser inicializado usando um método de fatia P. Em outra modalidade, o contexto de uma fatia pode ser inicializado usando um método de fatia P.
[00177] A Tabela 13 mostra sintaxe exemplificativa para sinalizar explicitamente que o contexto inicial de uma fatia B deve ser inicializado usando um método de fatia P. nas modalidades exemplificativas associadas à Tabela 13, "cabac_init_P_flag" é um sinalizador que indica, para codifica-dor de entropia inicialização de fatia B, se deve ser escolhido um método de fatia B ou um método de fatia P. Em algumas modalidades, se o valor do sinalizador "cabac_init_P_flag" é "0, " então é escolhido um método de fatia B para inicialização, e se o valor do sinalizador "cabac_init_P_flag" é "1, " então é escolhido um método de fatia P para inicialização.
Figure img0026
Figure img0027
Figure img0028
Tabela 13: Tabela de Sintaxe Exemplificativa Mostrando Sinalização Explícita de Inicialização de Fatia B Usando um Método de Fatia P
Figure img0029
Figure img0030
Tabela 17: Tabela de Sintaxe Exemplificativa Mostrando Sinalização Explícita de Inicialização
[00178] Com referência à FIGURA 43, em algumas modalidades da presente invenção, uma fatia B predita anteriormente ou um fatia B predita posteriormente pode ser inicializada de uma maneira diferente de uma fatia B predita bidirecional, e de uma maneira dependente de um sinalizador de inicialização. Isto pode resultar em maior eficiência de compressão devido aos diferentes graus de liberdade proporcionados para fatias B e fatias P. As fatias de referência usadas em uma fatia B predita anteriormente são uma parte de quadros / imagens temporalmente anteriores. Portanto, uma fatia B predita anteriormente pode compreender dados residuais com características estatísticas diferentes daquelas de uma fatia B posterior e/ou bidirecional. Temporalmente pode se referir à ordem de exibição das imagens / quadros decodificados. Como ilustrado na FIGURA 43, a técnica pode receber fatias B, fatias P, fatias I, e um sinalizador de inicialização. Baseada no tipo de fatia recebido e no valor do sinalizador de inicialização, é selecionada uma técnica de inicialização.
[00179] Em uma modalidade da FIGURA 43, o sinalizador de ini- cialização é o sinalizador cabac_init_idc na Tabela A. nas modalidades exemplificativas associadas à Tabela 17, "cabac_init_idc" é um sinalizador que indica que é selecionado um método de inicialização alternativo. Quan-do "cabac_init_idc" é determinado igual a um valor de 0, então é selecionado um método de inicialização padrão. Quando "cabac_init_idc" é determinado igual a um valor de 1, então é selecionado um método de inicialização alter-nativo. Em uma modalidade alternativa da invenção, cabac_init_idc é um conjunto de sinalizadores binários que controla a seleção do método de ini-cialização. Nesta modalidade, um dos sinalizadores neste conjunto é usado para selecionar entre um método de inicialização padrão e um método de inicialização alternativo. Em uma modalidade alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica o codificador de entropia. Em uma modalidade ainda alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica se o sinalizador de inicia-lização é transmitido no fluxo contínuo de bits e entropy_coding_mode_flag não indica o codificador de entropia. É antecipado que o entro- py_coding_mode_flag pode consistir em um primeiro sinalizador que indica o codificador de entropia e um segundo sinalizador que indica se o sinalizador de inicialização é transmitido no fluxo contínuo de bits. Quando o entro- py_coding_mode_flag consistir em mais do que um primeiro sinalizador, o entropy_coding_mode_flag é verdadeiro quando os sinalizadores associados ao entropy_coding_mode_flag são todos verdadeiros. Em outra modalidade da invenção, o entropy_coding_mode_flag pode ser verdadeiro apenas para um primeiro codificador de entropia. Por exemplo, o dito primeiro codificador de entropia pode ser o codificador de entropia CABAC.
[00180] Com referência à FIGURA 44, em algumas modalidades da presente invenção, uma fatia B predita anteriormente pode ser inicializa- da de uma maneira diferente de uma fatia B predita posteriormente e/ou uma fatia B predita bidirecional, e de uma maneira dependente de um sinalizador de inicialização. Isto pode resultar em maior eficiência de compressão devido aos diferentes graus de liberdade proporcionados para fatias B e fatias P. As fatias de referência usadas em uma fatia B predita anteriormente são uma parte de quadros / imagens temporalmente anteriores. Portanto, uma fatia B predita anteriormente pode compreender dados residuais com características estatísticas diferentes de aquelas de uma fatia B posterior e/ou bidirecional. Temporalmente pode se referir à ordem de exibição das imagens / quadros decodificados. Como ilustrado na FIGURA 44, a técnica pode receber fatias B, fatias P, fatias I e um sinalizador de inicialização. Baseada no tipo de fatia recebido e no valor do sinalizador de inicialização, é selecionada uma técnica de inicialização.
[00181] Em uma modalidade da FIGURA 44, o sinalizador de ini-cialização é o sinalizador cabac_init_idc na Tabela 17. nas modalidades exemplificativas associadas à Tabela 17, "cabac_init_idc" é um sinalizador que indica que é selecionado um método de inicialização alternativo. Quan-do "cabac_init_idc" é determinado igual a um valor de 0, então é selecionado um método de inicialização padrão. Quando "cabac_init_idc" é determinado igual a um valor de 1, então é selecionado um método de inicialização alter-nativo. Em uma modalidade alternativa, cabac_init_idc é um conjunto de si-nalizadores binários que controla a seleção do método de inicialização. nesta modalidade, um dos sinalizadores é usado para selecionar entre um método de inicialização padrão e um método de inicialização alternativo. Em uma modalidade alternativa da invenção, entropy_coding_mode_flag é um sinalizador que indica o codificador de entropia. Em uma modalidade ainda alternativa da invenção, entropy_coding_mode_flag é um sinalizador que indica se o sinalizador de inicialização é transmitido no fluxo contínuo de bits e entro- py_coding_mode_flag não indica o codificador de entropia. É antecipado que o entropy_coding_mode_flag pode consistir em um primeiro sinalizador que in-dica o codificador de entropia e um segundo sinalizador que indica se o sina-lizador de inicialização é transmitido no fluxo contínuo de bits. Quando o en- tropy_coding_mode_flag consistir em mais do que um primeiro sinalizador, o entropy_coding_mode_flag é verdadeiro quando os sinalizadores associados ao entropy_coding_mode_flag são todos verdadeiros. Em outra modalidade da invenção, o entropy_coding_mode_flag pode ser verdadeiro apenas para um primeiro codificador de entropia. Por exemplo, o dito primeiro codificador de entropia pode ser o codificador de entropia CABAC.
[00182] Com referência à FIGURA 45, em algumas modalidades da presente invenção, pode ser aplicado um método de inicialização para fatias P às fatias B preditas anteriormente, e o método de inicialização pode ser dependente de um sinalizador de inicialização. Isto pode resultar em maior eficiência de compressão devido aos diferentes graus de liberdade proporcionados para fatias B e a natureza multi-hipótese de predições B. As fatias de referência usadas em uma fatia B predita anteriormente são sempre de quadros / imagens temporalmente anteriores como distinguido a partir de uma fatia B regular em que uma referência pode ser escolhida a partir de quadros / imagens temporalmente futuros e/ou passados. Portanto, a fatia B predita anteriormente pode compreender dados residuais com características estatísticas diferentes daquelas de uma fatia B posterior e/ou bidirecional. Temporalmente pode se referir à ordem de exibição das imagens / quadros decodificados. Como ilustrado na FIGURA 45, a técnica pode receber fatias B, fatias P, fatias I e um sinalizador de inicialização. Baseada no tipo de fatia recebido e no valor do sinalizador de inicialização, é selecionada uma técnica de inicialização.
[00183] Em uma modalidade da FIGURA 45, o sinalizador de ini-cialização é o sinalizador cabac_init_idc na Tabela 17. nas modalidades exemplificativas associadas à Tabela 17, "cabac_init_idc" é um sinalizador que indica que é selecionado um método de inicialização alternativo. Quan-do "cabac_init_idc" é determinado igual a um valor de 0, então é selecionado um método de inicialização padrão. Quando "cabac_init_idc" é determinado igual a um valor de 1, então é selecionado um método de inicialização alter-nativo. Em uma modalidade alternativa da invenção, cabac_init_idc é um conjunto de sinalizadores binários que controla a seleção do método de ini-cialização. nesta modalidade, um dos sinalizadores é usado para selecionar entre um método de inicialização padrão e um método de inicialização alter-nativo. Em uma modalidade alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica o codificador de entropia. Em uma modalidade ainda alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica se o sinalizador de inicia-lização é transmitido no fluxo contínuo de bits e entropy_coding_mode_flag não indica o codificador de entropia. É antecipado que o entro- py_coding_mode_flag pode consistir em um primeiro sinalizador que indica o codificador de entropia e um segundo sinalizador que indica se o sinalizador de inicialização é transmitido no fluxo contínuo de bits. Quando o entro- py_coding_mode_flag consistir em mais do que um primeiro sinalizador, o entropy_coding_mode_flag é verdadeiro quando os sinalizadores associados ao entropy_coding_mode_flag são todos verdadeiros. Em outra modalidade da invenção, o entropy_coding_mode_flag pode ser verdadeiro apenas para um primeiro codificador de entropia. Por exemplo, o dito primeiro codificador de entropia pode ser o codificador de entropia CABAC.
[00184] Com referência à FIGURA 46, em algumas modalidades da presente invenção, um método de inicialização para fatias P pode ser aplicado a fatias B e um método de inicialização para fatias B pode ser apli-cado às fatias P, e o método de inicialização pode ser dependente de um sinalizador de inicialização. Isto pode resultar em maior eficiência de com-pressão devido aos diferentes graus de liberdade proporcionados pelo sina-lizador de inicialização. Como ilustrado na FIGURA 46, a técnica pode rece-ber fatias B, fatias P, fatias I e um sinalizador de inicialização. Baseado no tipo de fatia recebido e no valor do sinalizador de inicialização, é selecionada uma técnica de inicialização. Adicionalmente, no caso de um primeiro valor do sinalizador de inicialização, um primeiro método de inicialização é usado para fatias P e um segundo método de inicialização é usado para fatias B. no caso de um segundo valor do sinalizador de inicialização, o primeiro método de inicialização é usado para fatias B e o segundo método de inicialização é usado para fatias P.
[00185] Em uma modalidade da FIGURA 46, o sinalizador de ini-cialização é o sinalizador cabac_init_idc na Tabela 17. Nas modalidades exemplificativas associadas à Tabela 17, "cabac_init_idc" é um sinalizador que indica que é selecionado um método de inicialização alternativo. Quan-do "cabac_init_idc" é determinado igual a um valor de 0, então é selecionado um método de inicialização padrão. Quando "cabac_init_idc" é determinado igual a um valor de 1, então é selecionado um método de inicialização alter-nativo. Em uma modalidade alternativa da invenção, cabac_init_idc é um conjunto de sinalizadores binários que controla a seleção do método de ini-cialização. Nesta modalidade, um dos sinalizadores é usado para selecionar entre um método de inicialização padrão e um método de inicialização alter-nativo. Em uma modalidade alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica o codificador de entropia. Em uma modalidade ainda alternativa da invenção, entro- py_coding_mode_flag é um sinalizador que indica se o sinalizador de inicia-lização é transmitido no fluxo contínuo de bits e entropy_coding_mode_flag não indica o codificador de entropia. É antecipado que o entro py_coding_mode_flag pode consistir em um primeiro sinalizador que indica o codificador de entropia e um segundo sinalizador que indica se o sinalizador de inicialização é transmitido no fluxo contínuo de bits. Quando o entro- py_coding_mode_flag consistir em mais do que um primeiro sinalizador, o entropy_coding_mode_flag é verdadeiro quando os sinalizadores associados ao entropy_coding_mode_flag são todos verdadeiros. Em outra modalidade da invenção, o entropy_coding_mode_flag pode ser verdadeiro apenas para um primeiro codificador de entropia. Por exemplo, o dito primeiro codificador de entropia pode ser o codificador de entropia CABAC.
[00186] Em algumas modalidades da presente invenção, a inicia-lização de estado de contextos para uma fatia de entropia pode ser baseada na quantidade de binários processados por um codificador de entropia. Um codificador de entropia pode convergir mais rapidamente para as estatísticas-fonte quando inicializado corretamente. Convergência mais rápida pode resultar em menos bits sendo desperdiçados e, portanto maior eficiência de compressão. Em algumas modalidades da presente invenção, a quantidade de binários que podem ser transmitidos pode ser estimada, e quando a quantidade de binários estimada encontra um primeiro critério, então pode ser usado um primeiro método de inicialização. Quando a quantidade de bi-nários estimada não encontra o primeiro critério, pode ser usado um segundo método de inicialização.
[00187] Uma modalidade exemplificativa da presente invenção pode ser entendida em relação à Figura 37. Nestas modalidades, a quantidade de binários processados pode ser estimada 1320. A quantidade estimada de binários processados, denotada Nbins, pode ser comparada 1322 a um valor limite, denotado Tbins. Quando a quantidade de binários processados aumenta a precisão preditiva de inicialização de contexto baseada em QP pode diminuir. Uma precisão preditiva para inicialização de contexto maior pode levar a melhor eficiência de compressão. Se a quantidade esti-mada de binários processados for 1324 maior do que o valor limite, então pode ser escolhido um único valor de inicialização de contexto 1326. Se a quantidade estimada de binários processados não for 1328 maio do que o valor limite, então o contexto pode ser inicializado adaptativamente 1330 baseado em QP. O único valor de inicialização de contexto pode ser seleci-onado baseado em treinamento e otimização da métrica escolhida, por exemplo, erro quadrático, entropia relativa e outras métricas de distância. Uma inicialização adaptativa baseada em QP pode ser uma adaptação afim da forma CA * QP + CB, onde CA e CB são constantes. Em algumas modali-dades, a quantidade de binários pode ser estimada baseada na quantidade de binários processados na fatia prévia. Em modalidades alternativas, a quantidade de binários pode ser estimada baseada na quantidade de biná-rios processados no quadro prévio.
[00188] Em algumas modalidades da presente invenção descritas em relação à Figura 38, que representa de forma pictórica 1340 uma amplitude de quantidade de binários processados, amplitudes desmembradas múltiplas (três mostradas 1342, 1344, 1346) de quantidade de binários processados podem ser determinadas e descritas em relação a uma quantidade de limites (dois mostrados 1348, 1350), e o valor de inicialização de contexto pode ser selecionado baseado em dentro de qual das amplitudes 1342, 1344, 1346 a quantidade estimada de binários processados cai, por exemplo, para as três amplitudes 1342, 1344, 1346, quando Nbins < Tmin 1342, o contexto pode ser inicializado adaptativamente baseado em QP, quando Tmin < Nbins < T1 1344, o contexto pode ser inicializado para um primeiro valor de contexto fixo e quando T1 < Nbins 1346, o contexto pode ser inicializado para um segundo valor de contexto fixo diferente.
[00189] Outra modalidade alternativa exemplificativa da presente invenção pode ser entendida em relação à Figura 39. nesta modalidade exemplificativa, o valor de QP pode ser determinado 1400 e examinado 1402 em relação a um valor limite, denotado TQP. Em geral, quando QP diminui a quantidade de binários processados pode aumentar. Se QP não for 1404 menor do que aquele valor limite, então o contexto pode ser inicializado adaptativamente 1406 baseado em QP. Se o valor de QP for 1408 menor do que o valor limite, então um único valor de inicialização de contexto pode ser escolhido 1410. O único valor de inicialização de contexto pode ser selecio-nado baseado em treinamento e otimização da métrica escolhida, por exem-plo, erro quadrático, entropia relativa e outras métricas de distância.
[00190] Em algumas modalidades da presente invenção, amplitudes desmembradas múltiplas de QP podem ser determinadas, e o valor de inicialização de contexto pode ser selecionado baseado em dentro de qual das amplitudes o valor de QP cai.
[00191] A Tabela 14 mostra uma comparação de taxa de distorção de performance para codificação totalmente intra. A primeira comparação, mostrada nas duas subcolunas da coluna três, é uma comparação, usando o H.264/AVC software Joint Model (JM), versão 13.0, entre codificação usando múltiplas fatias, em que a decodificação de entropia e reconstrução de macrobloco para uma fatia não dependem de outras fatias, e codificação não usando nenhuma fatia. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.3380 dB codificação usando múltiplas fatias sobre não usando nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentado por 7% por codificação usando múltiplas fatias sobre não usando nenhuma fatia.
[00192] A segunda comparação, mostrada nas duas subcolunas da coluna quatro, é uma comparação entre a codificação usando uma fatia de reconstrução particionada, de acordo com modalidades da presente in- venção, em múltiplas fatias de entropia (duas linhas de macroblocos por fatia de entropia) e codificação usando JM 13.0 sem nenhuma fatia. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.0860 dB usando uma fatia de reconstrução com múltiplas fatias de entropia sobre codificação não usando nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentada por 1.83% por codificação usando uma fatia de reconstrução com múltiplas fatias de entropia sobre codificação não usando nenhuma fatia.
Figure img0031
Tabela 14: Comparação de taxa de distorção de performance - codi-ficação totalmente intra
[00193] A Tabela 15 mostra uma comparação de taxa de distorção de performance para codificação IBBP. A primeiro comparação, mostra- da nas duas subcolunas da coluna três, é uma comparação, usando o sof-tware H.264/AVC Joint Model (JM), versão 13.0, entre codificação usando múltiplas fatias, em que decodificação de entropia e reconstrução de macro- bloco para uma fatia não dependem de outras fatias, e codificação não usando nenhuma fatia. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.5460 dB codificação usando múltiplas fatias. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentada por 21.41% por codificação usando múltiplas fatias sobre não usando nenhuma fatia.
[00194] A segunda comparação, mostrada nas duas subcolunas da coluna quatro, é uma comparação entre codificação usando uma fatia de reconstrução particionada, de acordo com modalidades da presente inven-ção, em múltiplas fatias de entropia (duas linhas de macroblocos por fatia de entropia) e codificação usando JM 13.0 sem nenhuma fatia. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.31 dB usando uma fatia de reconstrução com múltiplas fatias de entropia sobre codificação não usando nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentada por 11,45% por codificação usando uma fatia de re-construção com múltiplas fatias de entropia sobre codificação não usando nenhuma fatia.
Figure img0032
Figure img0033
Tabela 15: Comparação de taxa de distorção de performance - codi-ficação IBBP
[00195] Comparando os resultados, a codificação usando múltiplas fatias de entropia em uma fatia de reconstrução fornece uma economia de taxa de bits de 5.17% e 9.96% para codificação totalmente intra e IBBP, respectivamente, sobre a codificação usando fatias, em que a decodificação de entropia e reconstrução de macrobloco para uma fatia não depende de outras fatias, embora ambas permitam decodificação paralela.
[00196] A Tabela 16 mostra uma comparação de performance de taxa de distorção para codificação totalmente intra e IBBP. Nesta tabela, a comparação é uma comparação entre codificação não usando nenhuma fatia e codificação usando uma fatia de reconstrução particionada em fatias de entropia, de acordo com modalidades da presente invenção, de tamanho máximo de 26k binários por fatia de entropia. A primeira comparação, mos-trada nas duas subcolunas da coluna dois, é uma comparação usando codi-ficação totalmente intra. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.062 dB por codificação usando uma fatia de reconstrução com múltiplas fatias de entropia. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentada por 1.86% por codificação usando uma fatia de reconstrução com múltiplas fatias de entropia. Portanto, para codificação totalmente intra usando fatias de entropia de tamanho máximo de 26k binários por fatia de entropia, existe uma economia média de taxa de bits de aproximadamente 0.64 % sobre aquela de tamanhos de fatia de entropia fixa de duas linhas de macroblocos.
[00197] A segunda comparação, mostrada nas duas subcolunas da coluna três, é uma comparação usando codificação IBBP. Em média, para a mesma taxa de bits, a qualidade é degradada por -0.022 dB usando uma fatia de reconstrução com múltiplas fatias de entropia sobre a codificação não usando nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bits é aumentada por 0.787% pela codificação usando uma fatia de reconstrução com múltiplas fatias de entropia sobre a codificação não usando nenhuma fatia. Portanto, para codificação IBBP usando fatias de entropia de tamanho máximo de 26k binários por fatia de entropia, existe uma economia média de taxa de bits de aproximadamente 10.66 % sobre aquela de tamanhos de fatia de entropia fixa de duas linhas de macroblocos.
Figure img0034
Tabela 16: Comparação de performance de taxa de distorção – codiPetição 870200086339, de 10/07/2020, pág. 135/142 ficação totalmente intra e IBBP usando fatias de entropia com menos do que 26k binários por fatia de entropia
[00198] O uso de fatias de entropia permite a decodificação paralela, e o particionamento de codificador de uma fatia de reconstrução em fatias de entropia, em que cada fatia de entropia é menor do que uma quantidade máxima de binários pode fornecer economia considerável de taxa de bits sobre fatias de entropia de uma quantidade fixa de macroblocos.
[00199] Embora os gráficos e diagramas nas figuras possam mostrar uma ordem de execução específica, é entendido que a ordem de execução pode diferir daquela que é retratada. Por exemplo, a ordem de execução dos blocos pode ser mudada relativa à ordem mostrada. Também, como um exemplo adicional, dois ou mais blocos mostrados em sucessão em uma Figura podem ser executados concorrentemente, ou com concorrência parcial. É entendido pelos indivíduos com conhecimentos comuns na técnica que podem ser criados software, hardware e/ou firmware por um indivíduo com conhecimentos comuns na técnica para executar as várias funções lógicas descritas neste documento.
[00200] Algumas modalidades da presente invenção podem compreender um produto de programa de computador que compreende um meio de armazenamento legível por computador contendo instruções arma-zenadas no mesmo / as quais podem ser usadas para programar um sistema computacional para realizar qualquer dos recursos e métodos descritos neste documento. Mídias legíveis por computador exemplificativas podem incluir, mas não são limitadas a, dispositivos de memória flash, mídia de ar-mazenamento de disco, por exemplo, discos flexíveis, discos óticos, discos magneto-óticos, discos Versáteis Digitais (DVDs), Discos Compactos (CDs), microacionadores e outra mídia de armazenamento de disco, Memória So-mente de Leitura (ROMs), Memória Somente de Leitura Programável (PROMs), Memória Somente de Leitura Apagável (EPROMS), Memória So-mente de Leitura Apagável Eletronicamente (EEPROMs), Memória de Acesso Randômico (RAMS), Memória de Acesso Randômico de Vídeo (VRAMs), Memória de Acesso Randômico Dinâmica (DRAMs) e qualquer tipo de mídia ou dispositivo adequado para armazenar instruções e/ou dados.
[00201] Algumas modalidades da presente invenção compreendem métodos e sistemas para codificação paralela de entropia. Algumas modalidades da presente invenção compreendem métodos e sistemas para decodificação paralela de entropia.
[00202] Em algumas modalidades da presente invenção, um padrão de varredura pode ser inicializado no início de uma fatia de entropia.
[00203] Em algumas modalidades da presente invenção, um padrão de varredura pode ser inicializado em uma unidade elementar inicial em uma sequência em uma fatia de entropia.
[00204] Em algumas modalidades da presente invenção, um estado associado a um cálculo de varredura adaptativa pode ser inicializado no início de uma fatia de entropia.
[00205] Em algumas modalidades da presente invenção, um estado associado a um cálculo de varredura adaptativa pode ser inicializado em uma unidade elementar inicial em uma sequência em uma fatia de entropia.
[00206] Em algumas modalidades da presente invenção, uma ordem de varredura de coeficiente pode ser desacoplada de uma ordem de busca de contexto.
[00207] Em algumas modalidades da presente invenção, uma fatia B predita anteriormente pode ser detectada e um contexto associado a codificar por entropia a fatia B predita anteriormente pode ser inicializado de acordo com um método de fatia P.
[00208] Em algumas modalidades da presente invenção, um contexto pode ser inicializado baseado em contador binário.
[00209] Em algumas modalidades da presente invenção, um contexto pode ser inicializado baseado em valor de parâmetro de quantiza- ção.
[00210] Um aspecto da invenção fornece um método para decodificar um quadro de vídeo de uma sequência de vídeo que compreende: (a) receber uma fatia em um decodificador de vídeo; (b) identificar se a dita fatia é ou uma fatia B predita anteriormente ou uma fatia B predita posteriormente, e não ambas uma fatia B predita an-teriormente e posteriormente; (c) inicializar, usando uma técnica de fatia P, um contexto associado à dita fatia.
[00211] De acordo com outro aspecto, a dita identificação com-preende apenas a dita fatia B predita posteriormente.
[00212] De acordo com outro aspecto, a dita identificação é baseada em: (1) uma primeira lista que identifica imagens de referência ter pelo menos uma entrada, (2) a dita primeira lista e uma segunda lista que identificam imagens de referência contêm o mesmo conjunto das ditas imagens, (3) todas as imagens na dita primeira lista e na dita segunda lista devem ser exibidas antes de uma fatia corrente.
[00213] De acordo com outro aspecto, a dita identificação é baseada em: (1) uma primeira lista que identifica imagens de referência ter pelo menos uma entrada, (2) a dita primeira lista e uma segunda lista que identificam imagens de referência contêm o mesmo conjunto de imagem, (3) todas as imagens na dita primeira lista e na dita segunda lista devem ser exibidas após uma fatia corrente.
[00214] De acordo com outro aspecto, a dita identificação é ba seada em: (1) uma primeira lista que identifica imagens de referência ter pelo menos uma entrada, (2) a dita primeira lista e uma segunda lista que iden-tificam imagens de referência contêm um conjunto de imagens não coexten- sivo, e o dito conjunto de imagens não coextensivo é para ser exibido antes de uma fatia corrente.
[00215] De acordo com outro aspecto, a dita identificação é baseada em: (1) uma primeira lista que identifica imagens de referência ter pelo menos uma entrada, (2) a dita primeira lista e uma segunda lista que identificam imagens de referência contêm um conjunto de imagens não coexten- sivo, e o dito conjunto de imagens não coextensivo é para ser exibido após uma fatia corrente.
[00216] De acordo com outro aspecto, a dita identificação é baseada em: (1) uma primeira lista que identifica imagens de referência ter pelo menos uma entrada, (2) uma primeira imagem de referência na dita primeira lista é a mesma que uma segunda imagem de referência em uma segunda lista, (3) uma primeira imagem de referência na dita segunda lista é a mesma que uma segunda imagem de referência na dita primeira lista, (4) a dita primeira lista e uma segunda lista que identificam imagens de referência contêm um conjunto de imagens não coextensivo, e o dito conjunto de imagens não coextensivo é para ser exibido antes de uma fatia corrente.
[00217] Outro aspecto da invenção fornece um método para decodificar um quadro de vídeo em uma sequência de vídeo que compreende: (a) receber uma fatia em um decodificador de vídeo; (b) identificar se a dita fatia é uma fatia B predita anteriormente; (c) inicializar, usando uma técnica diferente daquela usada para qualquer de uma fatia B, uma fatia P, e uma fatia I, um contexto associado à dita fatia.
[00218] Os termos e expressões que foram empregados na esPetição 870200086339, de 10/07/2020, pág. 139/142 pecificação acima são usados ali como termos de descrição e não de limita- ção, e não existe nenhuma intenção com o uso destes termos e expressões de excluir equivalência dos recursos mostrados e descritos ou partes dos mesmos, deve ser entendido que o escopo da invenção é definido e limitado apenas pelas reivindicações a seguir.

Claims (3)

1. Método para decodificar um quadro de vídeo, o método CARAC-TERIZADO pelo fato de que compreende: receber um fluxo de bits de dados de vídeo codificados; decodificar, a partir do fluxo de bits, um elemento de sintaxe indicati-vo de um tipo de fatia de uma fatia; quando o tipo de fatia indica um tipo de fatia B ou um tipo de fatia P, decodificar, a partir do fluxo de bits, um sinalizador que é utilizado para de-terminar um método de inicialização de contexto de codificação aritmética binária adaptativa (CABAC) para o tipo de fatia B ou o tipo de fatia P; e inicializar um contexto CABAC associado ao tipo de fatia, em que em um caso que o tipo de fatia indica o tipo de fatia B e um valor do sinalizador é igual a um primeiro valor, um contexto CABAC associado ao tipo de fatia B é inicializado por um primeiro método de inicialização, em um caso que o tipo de fatia indica que o tipo de fatia B e o valor do sinalizador é igual a um segundo valor, um contexto CABAC associado ao tipo de fatia B é inicializado por um segundo método de inicialização, em um caso que o tipo de fatia indica o tipo de fatia P e o valor do sinalizador é igual ao primeiro valor, um contexto CABAC associado ao tipo de fatia P é inicializado pelo segundo método de inicialização, e em um caso que o tipo de fatia indica um tipo de fatia I, um contexto CABAC associado ao tipo de fatia I é inicializado por um terceiro método de inicialização.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pe-lo fato de que compreende ainda: decodificar o quadro de vídeo; e exibir o quadro de vídeo decodificado.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pe-lo fato de que compreende ainda: decodificar o fluxo de bits dos dados de vídeo codificados; e exibir os dados de vídeo decodificados.
BR112014011334-3A 2011-11-10 2012-11-09 Método para decodificar um quadro de vídeo BR112014011334B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/294,100 2011-11-10
US13/294,100 US9338465B2 (en) 2011-06-30 2011-11-10 Context initialization based on decoder picture buffer
PCT/JP2012/007220 WO2013069306A1 (en) 2011-11-10 2012-11-09 Context initialization based on decoder picture buffer

Publications (2)

Publication Number Publication Date
BR112014011334A2 BR112014011334A2 (pt) 2017-05-02
BR112014011334B1 true BR112014011334B1 (pt) 2022-04-26

Family

ID=48289553

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014011334-3A BR112014011334B1 (pt) 2011-11-10 2012-11-09 Método para decodificar um quadro de vídeo

Country Status (8)

Country Link
US (6) US9338465B2 (pt)
EP (4) EP4380157A3 (pt)
JP (1) JP6162113B2 (pt)
CN (1) CN103931183B (pt)
BR (1) BR112014011334B1 (pt)
ES (1) ES2728443T3 (pt)
IN (1) IN2014CN03605A (pt)
WO (1) WO2013069306A1 (pt)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI457875B (zh) * 2009-02-19 2014-10-21 Prime View Int Co Ltd 顯示裝置及其製造方法
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
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
US20130114691A1 (en) * 2011-11-03 2013-05-09 Qualcomm Incorporated Adaptive initialization for context adaptive entropy coding
US9883185B2 (en) 2011-12-29 2018-01-30 Lg Electronics Inc. Method for encoding and decoding image based on entry point in bitstream and apparatus using same
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
KR102261939B1 (ko) * 2012-03-22 2021-06-07 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
FR2988960A1 (fr) * 2012-03-29 2013-10-04 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
KR102351132B1 (ko) 2012-06-26 2022-01-13 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
EP2868094A1 (en) * 2012-06-29 2015-05-06 Telefonaktiebolaget LM Ericsson (PUBL) Apparatus and methods thereof for video processing
US9485506B2 (en) * 2012-09-11 2016-11-01 Texas Instruments Incorporated Method and system for constraining slice header processing overhead in video coding
US10785482B2 (en) 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
SG11201500846TA (en) 2012-09-26 2015-05-28 Panasonic Ip Corp America Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
US9319702B2 (en) * 2012-12-03 2016-04-19 Intel Corporation Dynamic slice resizing while encoding video
US9270991B2 (en) 2013-01-07 2016-02-23 Qualcomm Incorporated Inter-layer reference picture generation for HLS-only scalable video coding
US10045032B2 (en) 2013-01-24 2018-08-07 Intel Corporation Efficient region of interest detection
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
EP3050294A4 (en) * 2013-09-27 2017-08-09 Qualcomm Incorporated Residual coding for depth intra prediction modes
CN105723712B (zh) * 2013-10-14 2019-06-28 韩国电子通信研究院 基于多层的图像编码/解码方法和设备
US20170041621A1 (en) * 2013-12-18 2017-02-09 Telefonaktiebolaget L M Ericsson (Publ) Methods, decoder and encoder for managing video sequences
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
JP6717562B2 (ja) * 2015-02-06 2020-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
US10027989B2 (en) * 2015-05-06 2018-07-17 Integrated Device Technology, Inc. Method and apparatus for parallel decoding
JP2016218721A (ja) 2015-05-20 2016-12-22 ソニー株式会社 メモリ制御回路およびメモリ制御方法
US20160360236A1 (en) * 2015-06-04 2016-12-08 Mediatek Inc. Method and Apparatus for Entropy Transcoding
US10446071B2 (en) 2016-03-31 2019-10-15 Samsung Electronics Co., Ltd. Device and method of using slice update map
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
EP3577899A4 (en) * 2017-01-31 2020-06-17 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SCALING TRANSFORM COEFFICIENT LEVEL VALUES
US11109041B2 (en) * 2019-05-16 2021-08-31 Tencent America LLC Method and apparatus for video coding
US11425376B2 (en) 2019-08-23 2022-08-23 Apple Inc. Image signal encoding/decoding method and apparatus therefor
US12022126B2 (en) * 2019-11-22 2024-06-25 Sharp Kabushiki Kaisha Systems and methods for signaling tiles and slices in video coding
WO2021204137A1 (en) 2020-04-07 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Clipping operation for reference picture wrap around
CN115428457A (zh) 2020-04-09 2022-12-02 抖音视界有限公司 基于颜色格式的自适应参数集的约束
CN115486064A (zh) 2020-04-10 2022-12-16 抖音视界有限公司 标头语法元素和自适应参数集的使用
WO2021209061A1 (en) 2020-04-17 2021-10-21 Beijing Bytedance Network Technology Co., Ltd. Presence of adaptation parameter set units
WO2021222036A1 (en) 2020-04-26 2021-11-04 Bytedance Inc. Conditional signaling of video coding syntax elements
JP2023524000A (ja) * 2020-05-19 2023-06-08 グーグル エルエルシー 品質正規化ビデオコード変換のための動的パラメータ選択

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12579A (en) 1855-03-27 peters
US5830108A (en) 1996-01-03 1998-11-03 Alimed, Inc. Contracture means and method
US6970510B1 (en) 2000-04-25 2005-11-29 Wee Susie J Method for downstream editing of compressed video
US7369612B2 (en) 2000-12-11 2008-05-06 Sony Corporation Video decoder and method for using the same
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
KR100664936B1 (ko) 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
CN101662683B (zh) * 2005-04-14 2012-05-30 汤姆森特许公司 空间可缩放视频解码方法和空间可缩放视频解码器
EP1775954A1 (en) 2005-10-14 2007-04-18 Thomson Licensing Method and apparatus for reconstructing a video frame for spatial multi-layer video sequence
EP1806930A1 (en) * 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
FR2898754B1 (fr) * 2006-03-17 2008-06-13 Thales Sa Procede de protection de donnees multimedia au moyen de couches d'abstraction reseau (nal) supplementaires
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
PL2008460T3 (pl) 2006-03-30 2017-10-31 Lg Electronics Inc Sposób i urządzenie do dekodowania/kodowania sygnału wideo
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
WO2007148907A1 (en) 2006-06-19 2007-12-27 Lg Electronics, Inc. Method and apparatus for processing a vedeo signal
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
JP5649105B2 (ja) * 2007-01-11 2015-01-07 トムソン ライセンシングThomson Licensing 符号化のための装置及び方法並びに復号化のための装置及び方法
CN100527842C (zh) * 2007-01-26 2009-08-12 清华大学 基于背景的运动估计编码方法
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
EP2227020B1 (en) * 2007-09-28 2014-08-13 Dolby Laboratories Licensing Corporation Video compression and transmission techniques
EP2215844A2 (en) * 2007-10-15 2010-08-11 Nokia Corporation Motion skip and single-loop encoding for multi-view video content
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 ソニー株式会社 算術復号装置
EP2347595A1 (fr) * 2008-10-15 2011-07-27 France Telecom Procede et dispositif de codage d'une sequence d'image mettant en oeuvre des blocs de taille differente, signal, support de donnees, procede et dispositif de decodage, et programmes d'ordinateur correspondants
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
JP4962476B2 (ja) 2008-11-28 2012-06-27 ソニー株式会社 算術復号装置
US8693539B2 (en) * 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
EP2424240A4 (en) * 2009-04-22 2013-04-10 Lg Electronics Inc METHOD FOR MODIFYING REFERENCE COPY LISTS FOR A MORE VIEWED VIDEO
US9179161B2 (en) 2009-05-20 2015-11-03 Nissim Nissimyan Video encoding
WO2011064673A1 (en) 2009-11-30 2011-06-03 France Telecom Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames
TW201121331A (en) * 2009-12-10 2011-06-16 Novatek Microelectronics Corp Picture decoder
KR101348613B1 (ko) * 2009-12-23 2014-01-10 한국전자통신연구원 영상의 부호화/복호화 장치 및 그 방법
CN103119849B (zh) * 2010-04-13 2017-06-16 弗劳恩霍夫应用研究促进协会 概率区间分割编码器和译码器
US20110310966A1 (en) * 2010-06-18 2011-12-22 Texas Instruments Incorporated Syntax element decoding
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US9008176B2 (en) * 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US9215473B2 (en) * 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
CA2807959C (en) * 2011-07-29 2018-06-12 Panasonic Corporation Video encoding method, video decoding method, video encoding apparatus, video decoding apparatus, and video encoding/decoding apparatus
EP2568711A1 (en) * 2011-09-12 2013-03-13 Thomson Licensing Methods and devices for selective format-preserving data encryption
US9288508B2 (en) * 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US9654772B2 (en) * 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
JP6465465B2 (ja) 2012-03-23 2019-02-06 メスベン リミテッド シャワーヘッド

Also Published As

Publication number Publication date
US10531091B2 (en) 2020-01-07
US20160212431A1 (en) 2016-07-21
CN103931183A (zh) 2014-07-16
EP2777280A1 (en) 2014-09-17
US20170026649A1 (en) 2017-01-26
US9491471B2 (en) 2016-11-08
EP2777280A4 (en) 2015-12-16
EP3518539A1 (en) 2019-07-31
EP3952311A1 (en) 2022-02-09
IN2014CN03605A (pt) 2015-10-16
JP6162113B2 (ja) 2017-07-12
EP4380157A2 (en) 2024-06-05
BR112014011334A2 (pt) 2017-05-02
US20130003830A1 (en) 2013-01-03
US11412226B2 (en) 2022-08-09
WO2013069306A1 (en) 2013-05-16
EP2777280B1 (en) 2019-03-20
EP4380157A3 (en) 2024-09-18
US10205948B2 (en) 2019-02-12
US20210144383A1 (en) 2021-05-13
US9338465B2 (en) 2016-05-10
CN103931183B (zh) 2017-09-08
EP3952311B1 (en) 2024-06-05
ES2728443T3 (es) 2019-10-24
US20200162740A1 (en) 2020-05-21
US20190208207A1 (en) 2019-07-04
US10931951B2 (en) 2021-02-23
EP3518539B1 (en) 2021-10-06
JP2014535178A (ja) 2014-12-25

Similar Documents

Publication Publication Date Title
US10999579B2 (en) Methods and systems for decoding a video bitstream
BR112014011334B1 (pt) Método para decodificar um quadro de vídeo
US9338472B2 (en) Context initialization based on decoder picture buffer
US8344917B2 (en) Methods and systems for context initialization in video coding and decoding
US20120014429A1 (en) Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US20120014431A1 (en) Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US11973950B2 (en) Context initialization based on slice header flag and slice type

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/13 (2014.01), H04N 19/159 (2014.01), H04N

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

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