BR112013007383B1 - Método e aparelho para decodificar um fluxo de bits de vídeo - Google Patents
Método e aparelho para decodificar um fluxo de bits de vídeo Download PDFInfo
- Publication number
- BR112013007383B1 BR112013007383B1 BR112013007383-7A BR112013007383A BR112013007383B1 BR 112013007383 B1 BR112013007383 B1 BR 112013007383B1 BR 112013007383 A BR112013007383 A BR 112013007383A BR 112013007383 B1 BR112013007383 B1 BR 112013007383B1
- Authority
- BR
- Brazil
- Prior art keywords
- slice
- entropy
- entropy slice
- lcu
- context
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000000638 solvent extraction Methods 0.000 claims description 36
- 238000011423 initialization method Methods 0.000 claims description 19
- 230000003044 adaptive effect Effects 0.000 claims description 13
- 230000006978 adaptation Effects 0.000 description 69
- 230000008569 process Effects 0.000 description 37
- 238000005192 partition Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 29
- 230000009466 transformation Effects 0.000 description 14
- 230000011664 signaling Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000000153 supplemental effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 101100314144 Mus musculus Tnip1 gene Proteins 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007519 figuring Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008844 regulatory mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
método e sistemas para inicialização de codificador de entropia. a invenção refere-se a um método para adaptar uma ordem de varredura de coeficiente associada ao contexto de decodificação por entropia que permite a decodificação paralela da fatia de entropia.
Description
[001] As Modalidades da presente invenção referem-se, de forma geral, à codificação de vídeo e, em particular, a algumas modalidades da presente invenção referem-se a métodos e sistemas para inicialização de codificador de entropia em codificação (encoding) de vídeo paralela e decodifi- cação de vídeo paralela.
[002] 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 Modelo de Teste sob Consideração (TMuC) JCT-VC, podem fornecer maior eficiência de codificação do que métodos e padrões antigos às custas de uma maior complexidade. Os crescentes requisitos de qualidade e requisitos de resolução 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 aprimorar as velocidades de decodificação e reduzir requisitos de memória. Adicionalmente, avanços em processadores multinúcleo podem tornar codificadores (encoders) e decodificadores que suportam uma decodificação paralela desejados.
[003] O H.264/MPEG-4 AVC [Time de Vídeo Unido de ITU-T VCEG e ISO/IEC MPEG, "H.264: Advanced video coding for generic audiovisual services," ITU-T Rec. H.264 e ISO/IEC 14496- 10 (MPEG4-Parte 10), novembro de 2007], que é incorporado aqui a título de referência em sua totalidade, é um uma especificação de codec de vídeo (codificador/decodificador) que usa predição de macrobloco seguida pela codificação de resíduo para reduzir redundância espacial e temporal em uma sequência de vídeo para eficiência na compressão.
[004] O Modelo de Teste sob Consideração (TMuC) [JCT-VC A205, "Test Model under Consideration," 16 de junho de 2010], que é incorporado aqui a título de referência em sua totalidade, é o modelo de teste inicial de JCT-VC. O TMuC, que usa uma unidade de codificação básica chamada de um bloco de árvore de codificação (CTB) que pode ter tamanhos variáveis, pode fornecer mais flexibilidade que H.264/AVC.
[005] Algumas modalidades da presente invenção compreendem métodos e sistemas para codificação (encoding) por entropia paralela. Algumas modalidades da presente invenção compreendem métodos e sistemas para decodificação por entropia paralela.
[006] Em algumas modalidades da presente invenção, um padrão de varredura pode ser inicializado no início de uma fatia de entropia.
[007] Em algumas modalidades da presente invenção, um padrão de varredura pode ser inicializado em uma unidade elementar inicial em uma linha em uma fatia de entropia.
[008] Em algumas modalidades da presente invenção, um estado associado a um cálculo de varredura adaptativo pode ser inicializado no início de uma fatia de entropia.
[009] Em algumas modalidades da presente invenção, um estado associado a um cálculo de varredura adaptativo pode ser inicializado em uma unidade elementar inicial em uma linha em uma fatia de entropia.
[010] Em algumas modalidades da presente invenção, uma ordem de varredura de coeficiente pode ser desacoplada de uma ordem de busca de contexto.
[011] Em algumas modalidades da presente invenção, uma fatia B prevista antecipadamente pode ser detectada e um contexto associado à codificação por entropia, a fatia B prevista antecipadamente pode ser iniciali- zada de acordo com um método de fatia P.
[012] Em algumas modalidades da presente invenção, um contexto pode ser inicializado com base em uma contagem binária.
[013] Em algumas modalidades da presente invenção, um contexto pode ser inicializado com base em um valor de parâmetro de quantização.
[014] O acima e outros objetivos, recursos e vantagens da invenção serão entendidos mais prontamente após levar em consideração a seguinte descrição detalhada da invenção em conjunto com os desenhos em anexo. BREVE DESCRIÇÃO DOS DESENHOS A Figura 1 é uma figuração que mostra um codificador (encoder) de vídeo H.264/AVC (técnica anterior); A Figura 2 é uma figuração que mostra um decodificador de vídeo H.264/AVC (técnica anterior); A Figura 3 é uma figuração que mostra uma estrutura de fatia exemplificativa (técnica anterior); A Figura 4 é uma figuração que mostra uma estrutura de fatia exemplificativa (técnica anterior); A Figura 5 é uma figuração que mostra uma partição de fatia exemplificativa de acordo com modalidades da presente invenção, em que uma figuração pode ser particionada em pelo menos uma fatia de reconstrução e a fatia de reconstrução pode ser particionada em mais de uma fatia de entropia; A Figura 6 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem uma fatia de entropia; A Figura 7 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem decodificação por entropia paralela de múltiplas fatias de entropia seguidas por reconstrução de fatia; A Figura 8 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem dados de predição/dados de resíduo que multiplexam ao nível de figuração para construção de fatia de entropia; A Figura 9 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem multiplexação no plano de cor ao nível de figuração para construção de fatia de entropia; A Figura 10 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem transcodificação de um fluxo de bits pela decodificação por entropia, formação de fatias de entropia e codificação por entropia; A Figura 11 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem o particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o número de binários associados a cada fatia de entropia na pluralidade de fatias de entropia não excede um número predefinido de binários; A Figura 12 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem o particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que binários podem ser associados a uma fatia de entropia até o número de binários na fatia de entropia exceder um limiar com base em um número de binários máximo predefinido; A Figura 13 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o número de binários associados a cada fatia de entropia na pluralidade de fatias de entropia não excede um número de binários predefinido e cada fatia de reconstrução contém não mais que um número de macroblocos prede- finido; A Figura 14 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem o particionamento de 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é o número de binários na fatia de entropia exceder um limiar com base em um número de binários máximo predefinido e cada fatia de reconstrução contém não mais que um número de macroblocos predefinido; A Figura 15 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o número de bits associados a cada fatia de entropia na pluralidade de fatias de entropia não excede um número de bits predefinido; A Figura 16 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem o particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que os bits podem ser associados a uma fatia de entropia até o número de bits nas fatias de entropia exceder um limiar com base em um número de bits máximo predefinido; A Figura 17 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreendem múltiplos codificadores binários; A Figura 18 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreende múltiplas unidades de adap- tação de contexto; A Figura 19 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreende múltiplos codificadores binários e múltiplas unidades de adaptação de contexto; A Figura 20 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreende o particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de uma fatia de entropia é restrito para limitar o número de binários que são operados na fatia de entropia por cada unidade de codificador de entropia restrita; A Figura 21 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem o particionamento de uma fatia de reconstrução em uma pluralidade de fatias de entropia, em que o tamanho de uma fatia de entropia é restrito para limitar o número de binários operados, na fatia de entropia, por cada unidade de codificador de entropia restrita; A Figura 22 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreende a pluralidade de decodifica- dores binários; A Figura 23 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreendem uma pluralidade de unidades de adaptação de contexto; A Figura 24 é uma figuração que retrata modalidades exemplifi- cativas da presente invenção que compreendem múltiplos decodificadores binários e múltiplas unidades de adaptação de contexto; A Figura 25 é uma figuração que mostra uma partição exemplifi- cativa de um bloco de reconstrução em uma pluralidade de fatias de entropia na qual os macroblocos dentro de uma fatia de entropia são contíguos; A Figura 26 é uma figuração que mostra uma partição exemplifi- cativa de um bloco de reconstrução em uma pluralidade de fatias de entropia na qual os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 27 é uma figuração que ilustra blocos vizinhos não contíguos usados na decodificação por entropia para uma partição exemplificati- va de um bloco de reconstrução em uma pluralidade de fatias de entropia na qual os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 28 é uma figuração que ilustra blocos vizinhos usados na decodificação por 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 fatia de entropia na qual os macroblocos dentro de uma fatia de entropia não são contíguos; A Figura 29 é uma representação figurativa de uma porção exemplificativa de um fluxo de bits exemplificativo que retrata restrições de localização de cabeçalho de fatia; A Figura 30 é uma representação figurativa de uma porção exemplificativa de um fluxo de bits exemplificativo que retrata restrições de localização de cabeçalho de fatia; A Figura 31 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um decodificador de entropia que processa uma porção restrita de um fluxo de bits para identificar um cabeçalho de fatia de entropia; A Figura 32 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um decodificador de entropia que processa uma porção restrita de um fluxo de bits para identificar um cabeçalho de fatia de entropia; A Figura 33 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um decodificador de entropia que processa uma porção restrita de um fluxo de bits para identificar um cabeçalho de fatia de entropia; A Figura 34 é uma figuração que ilustra um esquema de inicialização de tabela de contexto dentro de fatias de entropia de acordo com modalidades da presente invenção; A Figura 35 é uma figuração que ilustra adaptação de varredura em modalidades exemplificativas da presente invenção. A Figura 36 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreende um codificador (encoder) de entropia com busca de contexto desacoplado da ordem de varredura de coeficiente; A Figura 37 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem um decodificador de entropia com busca de contexto desacoplado da ordem de varredura de coeficiente; A Figura 38 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreendem adaptação de contexto com base em contagem binária; A Figura 39 é uma figuração que ilustra um particionamento exemplificativo disjunto de um número de binários processados; e A Figura 40 é um gráfico que mostra modalidades exemplificati- vas da presente invenção que compreende adaptação de contexto com base em parâmetros de quantização.
[015] As modalidades da presente invenção serão melhor entendidas com referência aos desenhos, em que partes semelhantes são designadas por números semelhantes por toda a descrição. As figuras listadas acima são expressamente incorporadas como parte desta descrição detalhada.
[016] Será prontamente entendido que os componentes da presente invenção, conforme descritos e ilustrados de forma geral nas figuras no presente documento, podem ser dispostos e projetados de uma ampla variedade de diferentes configurações. Assim, a seguinte descrição mais detalhada das modalidades dos métodos e sistemas da presente invenção não é intencionada para limitar o escopo da invenção, mas é meramente representativa das modalidades presentes preferidas da invenção.
[017] Elementos de modalidades da presente invenção podem ser incorporados em hardware, firmware e/ ou software. Enquanto modalidades exemplificativas reveladas no presente documento podem descrever somente uma dessas formas, deve ser entendido que um versado na técnica seria capaz de efetuar esses elementos em qualquer uma dessas formas enquanto permanece no escopo da presente invenção.
[018] Embora qualquer codificador/decodificador de vídeo (codec) que use codificação /decodificação por entropia possa ser acomodado pelas 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 é intencionado para a ilustração de modalidades da presente invenção e não como uma limitação.
[019] Muitas modalidades exemplificativas da presente invenção podem ser descritas em relação a um macrobloco como uma unidade elementar. Isto é intencionado para ilustração e não como uma limitação.
[020] O Pedido de Patente n° U.S. 12/058.301, intitulado "Methods and Systems for Parallel Video Encoding and Decoding", depositado em 28 de março de 2008, é incorporado aqui a título de referência em sua totalida- de. O Pedido de Patente n° U.S. 12/579.236, intitulado "Methods and Systems for Parallel Video Encoding and Decoding", depositado em 14 de outubro de 2009, é incorporado aqui a título de referência em sua totalidade.
[021] Os métodos e padrões de codificação de vídeo do estado da técnica, por exemplo, H.264/AVC e TMuC , podem fornecer maior eficiência de codificação que métodos e padrões antigos a custa de maior complexidade. O aumento de requisitos de qualidade e requisitos de resolução em métodos e padrões de codificação de vídeo também pode aumentar suas complexidades. Os decodificadores que suportam decodificação paralela podem aprimorar velocidades de decodificação e reduzir requisitos de memória. Adicionalmente, avanços em processadores multinúcleo podem fazer codifi-cadores e decodificadores que suportam decodificação paralela serem desejados. O H.264/AVC e muitos outros padrões e métodos de codificação de vídeo são com base em uma abordagem de codificação de vídeo híbrida com base em bloco, em que o algoritmo de codificação de fonte é um híbrido de interfiguração, também considerado interquadro, predição, intrafiguração, também considerado intraquadro, predição e codificação por transformada de uma predição de resíduo. A predição de interquadro pode explorar re-dundâncias temporais e intraquadro e codificação por transformada da predição de resíduo pode explorar redundâncias espaciais.
[022] A Figura 1 mostra um diagrama em blocos de um codificador de vídeo H.264/AVC exemplificativo 2. Uma figuração de entrada 4, também considerada um quadro, pode ser apresentada para codificação . Um sinal previsto 6 e um sinal de resíduo 8 podem ser produzidos, em que o sinal previsto 6 pode ser com base ou em uma predição de interquadro 10 ou uma predição de intraquadro 12. A predição de interquadro 10 pode ser determinada pela seção de compensação de movimento 14 que usa uma figuração de referência armazenada 16, também considerada como quadro de referência e informações de movimento 19 determinadas por um processo de seção de estimação de movimento 18 entre o quadro de entrada 4 e o quadro de referência 16. A predição de intraquadro 12 pode ser determinada por uma seção de predição de intraquadro 20 que usa um sinal decodificado 22. O sinal de resíduo 8 pode ser determinado pela subtração da entrada 4 da predição 6. O sinal de resíduo 8 é transformado, escalonado e quantizado por uma seção de quantização/escalonamento/transformada 24, assim, produzindo coeficientes de transformada quantizados 26. O sinal decodificado 22 pode ser gerado pela adição do sinal previsto 6 a um sinal 28 gerado por uma seção de inversão de (transformada/escalonamento/quantização) 30 pelo uso dos coeficientes de transformada quantizados 26. As informações de movimento 19 e os coeficientes de transformada quantizados 26 podem ser codificados por entropia por uma seção de codificação por entropia 32 e escritas no fluxo de bits de vídeo comprimido 34. Uma região de imagem de saída 38, por exemplo, uma porção do quadro de referência, pode ser gerada no codificador 2 por um filtro de deblocagem 36 que usa o sinal pré- filtrado reconstruído 22.
[023] A Figura 2 mostra um diagrama em blocos de um decodificador de vídeo H.264/AVC 50. Um sinal de entrada 52, também considerado um fluxo de bits, pode ser apresentado para decodificação. Os símbolos recebidos podem ser decodificados por entropia por uma seção de decodificação por entropia 54, assim, produzindo informações de movimento 56 e coeficientes de transformada escalonados quantizados 58. As informações de movimento 56 podem ser combinadas por uma seção de compensação de movimento 60 com uma porção de um quadro de referência 84 que pode residir em uma memória de quadro 64 e uma predição de interquadro 68 pode ser gerada. Os coeficientes de transformada escalonados quantizados 58 podem ser inversamente quantizados e escalonado transformados inversamente por uma seção (transformada/escalonamento/quantização) inversa 62, assim, produzindo um sinal de resíduo decodificado 70. O sinal de resíduo 70 pode ser adicionado a um sinal de predição 78: ou o sinal de predição de interquadro 68 ou um sinal de predição de intraquadro 76. O sinal de predição de intraquadro 76 pode ser previsto por uma seção de predição de intra- quadro 74 a partir de informações decodificadas previamente no quadro atual 72. O sinal combinado 72 pode ser filtrado por um filtro de deblocagem 80 e o sinal filtrado 82 pode ser escrito na memória de quadro 64.
[024] No H.264 /AVC, uma figuração de entrada é particionada em macroblocos de tamanho fixo em que cada macrobloco abrange uma área de figuração retangular de 16x16 amostras do componente de luminância e 8x8 amostras de um dos dois componentes de croma. Em outros codecs e padrões, uma unidade elementar ou unidade de codificação básica diferentes de um macrobloco, por exemplo, um bloco de árvore de codificação, pode ser usado. O processo de decodificação do padrão H.264/AVC é especificado para o processamento de unidades que são macroblocos. O decodifi- cador de entropia 54 analisa os elementos de sintaxe do fluxo de bits de vídeo comprimido 52 e os demultiplexa. O H.264/AVC especifica dois métodos alternativos de decodificação por entropia: uma técnica de baixa complexidade que é base no uso de conjuntos comutados adaptativamente pelo contexto de códigos de comprimento variável, chamado de CAVLC e o algoritmo computacionalmente mais exigente de codificação aritmética binária adapta- tivamente com base em contexto, chamado de CABAC. Em ambos os métodos de decodificação por entropia, a decodificação de um símbolo atual pode confiar em símbolos decodificados corretamente previamente e modelos de contexto atualizados adaptativamente. Em adição, diferentes informações de dados, por exemplo, informações de dados de predição, informações de dados de resíduo e diferentes planos de cor podem ser multiplexadas juntas. A demultiplexação pode não ser feita até elementos serem decodificados por entropia.
[025] Após a decodificação por entropia, um macrobloco pode ser reconstruído pela obtenção: do sinal de resíduo pela quantização inversa e pela transformada inversa e do sinal de predição ou do sinal de predição de intraquadro ou do sinal de predição de interquadro. A distorção de blocagem pode ser reduzida pela aplicação de um filtro de deblocagem a todos os ma- croblocos decodificados. Nenhum processamento pode começar até o sinal de entrada ser decodificado por entropia, assim, fazendo a decodificação por entropia um gargalo em potencial na decodificação.
[026] De forma similar, em codecs nos quais mecanismos de predição alternativos podem ser permitidos, por exemplo, predição intercamada no H.264/AVC ou predição intercamada em outros codecs escalonáveis, a decodificação por entropia pode ser necessária antes de todo o processamento no decodificador, assim fazendo da decodificação por entropia um gargalo em potencial.
[027] No H.264/AVC, uma figuração de entrada que compreende uma pluralidade de macroblocos pode ser particionada em um ou diversas fatias. Os valores das amostras na área da figuração que uma fatia representa podem ser corretamente decodificados sem o uso de dados de outras fatias, desde que as figurações de referência usadas no codificador e no de- codificador sejam idênticas. Portanto, a decodificação por entropia e reconstrução de macrobloco para uma fatia não depende de outras fatias. Em particular, o estado de codificação por entropia é reiniciado no início de cada fatia. Os dados em outras fatias são marcados como indisponíveis ao definir disponibilidade de vizinhança para ambas as decodificação por entropia e reconstrução. No H.264/AVC, as fatias podem ser decodificados por entropia e reconstruídas em paralelo. Na intrapredição e predição de vetor movimento são permitidas ao longo da fronteira de fatia. A filtragem por deblocagem pode usar informações ao longo das fronteiras de fatia.
[028] A Figura 3 uma figuração de vídeo exemplificativa 90 que compreende onze macroblocos na direção horizontal e nove macroblocos na direção vertical (nove macroblocos exemplificativos rotulados 91 a 99). A Figura 3 mostra três fatias exemplificativas: uma primeira fatia denotada "SLICE #0" 100, uma segunda fatia denotada "SLICE #1" 101 e uma terceira fatia denotada "SLICE #2" 102. Um decodificador H.264/AVC pode decodificar e reconstruir as três fatias 100, 101, 102 em paralelo. No começo do processo de decodificação/reconstrução para cada fatia, modelos de contexto são inicializados ou reiniciados e macroblocos em outras fatias são marcados como indisponíveis para tanto decodificação por entropia quanto reconstrução de macrobloco. Assim, para um macrobloco, por exemplo, o ma- crobloco rotulado 93 no "SLICE #1", macroblocos (por exemplo, macroblo- cos rotulados 91 e 92) no "SLICE #0" podem não ser usados para seleção ou reconstrução de modelo de contexto. Enquanto, para um macrobloco, por exemplo, o macrobloco rotulado 95 no "SLICE #1", outros macroblocos (por exemplo, macroblocos rotulados 93 e 94) no "SLICE #1" podem ser usados para seleção ou reconstrução de modelo de contexto. Portanto, a decodifi- cação por entropia e reconstrução de macrobloco deve proceder de forma serial dentro de uma fatia. A menos que fatias sejam definidos pelo uso de ordenação de macrobloco flexível (FMO), macroblocos dentro de uma fatia são processados na ordem de uma varredura de rasterização.
[029] A ordenação de macrobloco flexível define um grupo de fatia para modificar como uma figuração é particionada em fatias. Os macroblo- cos em um grupo de fatia são definidos por um mapa de grupo de fatia para macrobloco que é sinalizado pelo conteúdo do conjunto de parâmetros de figuração e informações adicionais nos cabeçalhos de fatia. O mapa macro- bloco para grupo de fatia consiste em um número de identificação de grupo de fatia para cada macrobloco na figuração. O número de identificação de grupo de fatia especifica para qual grupo de fatia o macrobloco associado pertence. Cada grupo de fatia pode ser particionado em uma ou mais fatias, em que uma fatia é uma sequência de macroblocos dentro do mesmo grupo de fatia que é processo na ordem de uma varredura de rasterização dentro do conjunto de macroblocos de um grupo de fatia em particular. A decodifi- cação por entropia e reconstrução de macrobloco deve proceder de forma serial dentro de uma fatia.
[030] A Figura 4 retrata uma alocação de macrobloco exemplificativa em três grupos de fatia: um primeiro grupo de fatia denotado "SLICE GROUP #0" 103, um segundo grupo de fatia denotado "SLICE GROUP #1" 104 e um terceiro grupo de fatia denotado "SLICE GROUP #2" 105. Esses grupos de fatia 103, 104, 105 podem ser associados a duas regiões em primeiro plano e uma região em segundo plano, respectivamente, na figuração 90.
[031] Algumas modalidades da presente invenção podem compreender particionamento de uma figuração em uma ou mais fatias de reconstrução, em que a fatia de reconstrução pode ser autocontida com relação aos valores das amostras na área da figuração que a fatia de reconstrução representa pode ser reconstruída corretamente sem uso dos dados a partir de outras fatias de reconstrução, desde que seja fornecido que as figurações de referência usadas sejam idênticas no codificador e no decodificador. Todos os macroblocos reconstruídos dentro de uma fatia de reconstrução podem estar disponíveis na definição de vizinhança para reconstrução.
[032] Algumas modalidades da presente invenção pode compreender particionamento de uma fatia de reconstrução em mais de uma fatia de entropia, em que uma fatia de entropia pode ser autocontida em relação aos valores de símbolos na área da figuração que a fatia de entropia representa podem ser corretamente decodificados por entropia sem o uso de data de outras fatias de entropia. Em algumas modalidades da presente invenção, o estado de codificação por entropia pode ser reiniciado no início de decodifi- caçã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 ao definir disponibilidade de vizinhança para decodificação por entropia. Em algumas modalidades da presente invenção, os macroblocos em outras fatias de entropia podem não ser usados em uma seleção de modelo de contexto de bloco atual. Em algumas modalidades da presente invenção, os modelos de contexto podem ser atualizados dentro de uma fatia de entropia. Nessas 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.
[033] O Setor de Padronização de Telecomunicações ITU, Grupo de Estudo 16 - Contribuição 405 intitulado "Entropy slices for parallel entropy decoding", Abril de 2008, é incorporado inteiramente aqui por referência no presente documento.
[034] Algumas modalidades da presente invenção pode compreender Codificação /decodificação CABAC. O Processo de codificação CABAC incluir as seguintes quatro etapas elementares: binarização; seleção de mo delo de contexto; codificação aritmética binária e atualização de probabilidade.
[035] 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 chamado de uma cadeia binária ou um símbolo binarizado. Quando um elemento de sintaxe com valor binário é dado, a etapa inicial de binarização pode ser contornada. Um elemento de sintaxe com valor binário ou um elemento de um símbolo binarizado pode ser chamado de um binário.
[036] Para cada binário, o seguinte pode ser relacionado:
[037] Seleção de modelo de contexto: Um modelo de contexto é um modelo probabilístico 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 por uma seleção de modelos disponíveis que depende das estatísticas de símbolos de dados codificados recentemente, usualmente com base nos símbolos vizinhos a esquerda e acima se disponíveis.
[038] Codificação aritmética binária: Um codificador aritmético codifica cada binário de acordo com o modelo probabilístico selecionado e é com base em subdivisão de intervalo recursiva.
[039] Atualização de probabilidade: O modelo de contexto selecionado é atualizado com base no valor codificado atual.
[040] A adaptação de contexto pode ser referir ao processo de selecionar, com base em valores de símbolos vizinhos, um estado de modelo de contexto, também chamado de um estado associado a um binário e atualizar uma distribuição probabilística de modelo atribuída aos dados símbolos. A localização dos símbolos vizinhos pode ser definida de acordo com um ga- barito de contexto.
[041] 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 inicializados ou reiniciados para modelos predefinidos.
[042] As algumas modalidades da presente invenção podem ser entendidas em relação a uma 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 exemplificativos rotulados 115 a 123). A Figura 5 mostra três fatias exemplificativas de reconstrução: uma primeira fatia de reconstrução denotada "R_SLICE #0" 111, uma segunda fatia de reconstrução denotada "R_SLICE #1" 112 e uma terceira fatia de reconstrução denotada "R_SLICE #2" 113. A Figura 5 mostra adicionalmente um particionamento da segunda fatia de reconstrução "R_SLICE #1" 112 em três fatias de entropia: uma primeira fatia de entropia denotada "E_SLICE #0" mostrada com hachura transversal 114, uma segunda fatia de entropia denotada "E_SLICE #1" mostrada com hachura vertical 115 e uma terceira fatia de entropia denotada "E_SLICE #2" mostrada com hachura em ângulo 116. Cada fatia de entropia 114, 115, 116 pode ser decodificada por entropia em paralelo.
[043] Em algumas modalidades da presente invenção, somente dados de macroblocos dentro de uma fatia de entropia podem estar disponíveis para seleção de modelo de contexto durante a decodificação por entropia da fatia de entropia. Todos os outros macroblocos podem ser marcados como indisponíveis. Para este particionamento exemplificativo, macroblocos rotulados 117 e 118 estão indisponíveis para seleção de modelo de contexto ao decodificar símbolos que correspondem à área de macrobloco rotulado 119 devido aos macroblocos rotulados 117 e 118 estarem fora da fatia de entropia que contém macrobloco 119. Entretanto, esses macroblocos 117, 118 estão disponíveis quando o macrobloco 119 é reconstruído.
[044] 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 de bits. Em algumas modalidades da presente invenção, o sinal pode compreender um indicador de fatia de entropia que pode ser denotado "entropy_slice_flag" em algumas modalidades da presente invenção.
[045] Algumas modalidades de decodificador da presente invenção podem ser descritas em relação à Figura 6. Nessas modalidades, um indicador de fatia de entropia pode ser examinado 130 e, se o indicador de fatia de entropia indica que não há 132 fatias de entropia associadas a uma figuração ou a uma fatia de reconstrução, então o cabeçalho pode ser analisado 134 como um cabeçalho de fatia regular. O decodificador de estado de entropia pode ser reiniciado 136,e as informações de vizinho para a decodifica- ção por entropia e a reconstrução pode ser definida 138. Os dados de fatia podem, então, ser decodificados por entropia 140 e a fatia pode ser reconstruída 142. Se o indicador de fatia de entropia indica que existem 146 fatias de entropia associadas a uma figuração ou uma fatia de reconstrução, então o cabeçalho pode ser analisado 148 como um cabeçalho de fatia de entropia. O decodificador de estado de entropia pode ser reiniciado 150, as informações de vizinho para decodificação por entropia podem ser definidas 152 e os dados de fatia de entropia podem ser decodificados por entropia 154. As informações de vizinho para reconstrução podem então ser definidas 156 e a fatia pode ser reconstruída 142. Após a reconstrução de fatia 142, a próxima fatia ou figuração pode ser examinada 158.
[046] Algumas modalidades alternativas de decodificador da presente invenção podem ser descritas em relação à Figura 7. Nessas modalidades, o decodificador pode ser capaz de decodificação paralela e pode definir seu próprio grau de paralelismo, por exemplo, considere um decodificador 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 menos que N fatias de entropia estão disponíveis na figuração ou fatia de reconstrução atual, o decodificador pode decodificar fatias de entropia a partir de figurações subsequentes ou fatias de reconstrução se elas estão disponíveis. Em modalidades alternativas, o decodificador pode aguardar até a figuração ou fatia de reconstrução atual ser completamente processadas antes de decodificar porções de uma figuração ou fatia de reconstrução subsequente. Após identificar 170 ate N fatias de entropia, cada uma das fatias de entropia identificadas podem ser independentemente decodificadas por entropia. A primeira fatia de entropia pode ser decodificada 172 a 176. A decodificação 172 a 176 da primeira fatia de entropia pode compreender reiniciar o estado de decodificador 172. Em algumas modalidades que compreende decodificação por entropia CABAC, o estado CABAC pode ser reiniciado. As informações de vizinho para a deco- dificação por entropia da primeira fatia de entropia podem ser definidas 174 e a primeira fatia de dados de entropia pode ser decodificada 176. Para cada uma até N fatias de entropia, essas 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 ser decodificadas.
[047] Em algumas modalidades da presente invenção, quando existem mais que N fatias de entropia, uma cadeia de decodificação pode começar a decodificação por entropia de uma próxima fatia de entropia após a decodificação por entropia completa de uma fatia de entropia. Assim, quando uma cadeia termina a decodificação por entropia de uma fatia de entropia de baixa complexidade, a cadeia pode começar a decodificação de fatias de entropia sem aguardar pelas outras cadeias para terminar sua decodifica- ção.
[048] Em algumas modalidades da presente invenção que podem acomodar um padrão ou método existente, uma fatia de entropia pode compartilhar a maioria dos atributos de uma fatia de uma fatia regular de acordo com o padrão ou método. Portanto, uma fatia de entropia pode necessitar de um cabeçalho pequeno. Em algumas modalidades da presente invenção, a fatia de entropia cabeçalho pode permitir que um decodificador identifique o início de uma fatia de entropia e um início de decodificação por entropia. Em algumas modalidades, no início de uma figuração 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 fatia de reconstrução.
[049] Em algumas modalidades da presente invenção que compreendem um codec H.264/AVC codec, uma fatia de entropia pode ser sinalizada pela adição de um novo bit "entropy_slice_flag" ao 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 Descritor u(1), ue(v) indica alguns métodos de codificação de comprimento fixo ou de comprimento variável. As modalidades da presente invenção que compreendem um "entropy_slice_flag" podem realizar eficiência de codificação aprimorada. "first_mb_in_slice" especifica o endereço do primeiro macrobloco na fatia de entropia associada ao cabeçalho de fatia de entropia. Em algumas modalidades, a fatia de entropia pode compreender uma sequência de macroblocos. "cabac_init_idc" especifica o índice para determinação da tabela de inicialização usada no processo de inicialização para o modo de contexto. Tabela 1: Tabela de Sintaxe Exemplificativa para Cabeçalho de Fatia de En tropia
[050] Em algumas modalidades da presente invenção, uma fatia de entropia pode ser atribuída um tipo de unidade de camada de abstração de rede (NAL) diferente das fatias regulares. Nessas modalidades, um decodifi- cador pode distinguir entre fatias regulares e fatias de entropia com base no tipo de unidade de NAL. Nessas modalidades, o campo de bit "entro- py_slice_flag" não é exigido.
[051] 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 de linha de base, mas o campo de bit "entropy_slice_flag" pode ser transmitido em perfis mais altos como um perfil principal, um estendido ou um profissional. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" somente pode ser transmitido em fluxos de bits associados a características maiores que um valor de característica fixo. Características exemplificativas podem incluir resolução espacial, taxa de quadro, profundidade de bit, taxa de bit e outras características de fluxo de bits. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" somente pode ser transmitido em fluxos de bits associados a resoluções espaciais maiores que 1920 x 1080 interlaçada. Em algumas modalidades da presente invenção, o campo de bit "entropy_slice_flag" somente pode ser transmitido em fluxos de bits associados a resoluções espaciais maiores que 1920 x 1080 progressiva. Em algumas modalidades da presente invenção, se o campo de bit "en- tropy_slice_flag" não é transmitido, um valor padrão pode ser usado.
[052] Em algumas modalidades da presente invenção, uma fatia de entropia pode ser construída pela alteração da 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 figuração. 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 ainda outras modalidades alternativas da presente invenção, o grupo de símbolos contidos em uma fatia de entropia pode ser multiplexado em uma combinação do acima mencionado.
[053] Algumas modalidades da presente invenção que compreendem a construção de fatia de entropia com base na multiplexação de nível de figuração podem ser entendidos 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 de resíduo 192 podem ser codificados por entropia por um codificador de predição 194 e um codificador de resíduo 196 separadamente e os dados de predição codificados e os dados de resíduo codificados podem ser multiplexados por um multiplexador de nível de figuração 198 no nível de figuração. Em algumas modalidades da presente invenção, os dados de predição para uma figuração 190 podem ser associados a uma primeira fatia de entropia e os dados de resíduo para uma figuração 192 podem ser associados a uma segunda fatia de entropia. Os dados de predição codificados e os dados de entropia codificados podem ser deco-dificados em paralelo. Em algumas modalidades da presente invenção, cada partição que compreende dados de predição ou dados de resíduo podem ser particionados em fatias de entropia que podem ser decodificados em paralelo.
[054] 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, pode ser codificado por entropia por um codificador Y 206, um codificador U 208, e um codificador V 210 separadamente e os resíduos codificado por entropia podem ser multiplexados por um multiplexador de nível de figuração 212 no nível de figuração. Em algumas modalidades da presente invenção, o resíduo de luma para uma figuração 200 pode ser associado a uma primeira fatia de entropia, o primeiro resíduo de croma para uma figuração 202 pode ser associado a uma segunda fatia de entropia e o segundo resíduo para uma figuração 204 pode ser associado a uma terceira fatia de entropia. Os dados de resíduo codificados para os três planos de cores podem ser decodificados em paralelo. Em algumas modalidades da presente invenção, cada partição que compreende dados de resíduo 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.
[055] Em algumas modalidades da presente invenção, um fluxo de bits de vídeo comprimido pode ser transcodificado para compreender fatias de entropia, permitindo desse modo decodificação de entropia paralela conforme acomodado pelas modalidades da presente invenção descritas acima. Algumas modalidades da presente invenção podem ser descrita em relação à Figura 10. Um fluxo de bits de entrada sem fatias de entropia pode ser processado figuração por figuração de acordo com a Figura 10. Nessas mo-dalidades da presente invenção, uma figuração a partir do fluxo de bits de entrada pode ser decodificada por entropia 220. Os dados que podem ser codificados, por exemplo, dados de modo, informações de movimento, informações de resíduo e outros dados, podem ser obtidos. As 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 de bits. O estado de codificador pode ser reiniciado e as informações de vizinhança definidas 226. A fatia de entropia pode ser codificada por entropia 228 e escrita para o novo fluxo de bits. Se existem dados de figuração que não foram consumidos 232 pelas fatias de entropia construídas, então, outra fatia de entropia pode ser construída 222 e o processo 224 a 230 pode continuar até que todos os dados de figuração tenham sido consumidos 234 pelas fatias de entropia construídas e, então, a próxima figuração pode ser processada.
[056] 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 que, ou pode não exceder, um número fixo de binários. Em algumas modalidades em que o codificador pode restringir o tamanho de cada fatia de entropia, o número máximo de binários pode ser sinalizado no fluxo de bits. Em modalidades alternativas em que o codificador pode restringir o tamanho de cada fatia de entropia, o número máximo de binários pode ser definido pelo ponto de conformação de nível e perfil do codificador. Por exemplo, o Anexo A da especificação de codificação de vídeo H.264/AVC pode ser estendido para compreender uma definição do número máximo de binários permitido em uma fatia de entropia.
[057] Em algumas modalidades da presente invenção, o número máximo de binários permitido em uma fatia de entropia pode ser indicado para cada ponto de conformação de nível do codificador de acordo com uma tabela, por exemplo, conforme mostrado na Tabela 2, em que Mm.n denota o número máximo de binários permitido em uma fatia de entropia para um nível ponto de conformação m.n. Tabela 2: Número Máximo de Binários por Fatia de Entropia para Cada Nível
[058] O número máximo de binários exemplificativo permitido em uma fatia de entropia é M1.1= 1.000 binários, M1.2 = 2.000 binários e M5.1 = 40.000 binários. Outro número máximo de binários exemplificativo permitido em uma fatia de entropia are, M1.1 =2.500 binários, M1.2 =4.200 binários, e M5.1 = 150.000 binários.
[059] Em algumas modalidades, um conjunto de números máximos de binários permitidos em uma fatia de entropia pode ser determinado para todos os níveis com base na taxa de bit, tamanho de imagem, número de macroblocos e outros parâmetros de codificação. Em algumas modalidades da presente invenção, o número máximo de binários permitido em uma fatia de entropia pode ser o conjunto para o mesmo número para todos os níveis. Valores exemplificativos são 38.000 binários e 120.000 binários. Em algumas modalidades da presente invenção, um codificador pode determinar uma pior das hipóteses para o número de binários associados a um macro- bloco e o codificador pode escrever os binários associados a: , macroblocos para cada fatia de entropia, em que ESLICE_MaxNumberBins pode denotar o número máximo de binários permitido em uma fatia de entropia e BinsPerMB pode denotar a pior das hipóteses para o número de binários associados a um macrobloco. Em algumas modalidades, os macroblocos podem ser selecionados em ordem de rasterização-varredura. Em modalidades alternativas, os macroblo- cos podem ser selecionados em outra ordem predefinida. Em algumas mo-dalidades, a pior das hipóteses para número de binários associados a um macrobloco pode ser um número fixo. Em modalidades alternativas, o codificador pode atualizar a pior das hipóteses para número com base em medições dos tamanhos de macroblocos processados anteriormente.
[060] Algumas modalidades da presente invenção podem ser descrita em relação à Figura 11. Nessas modalidades, um codificador pode, para uma fatia de reconstrução, particionar a fatia de reconstrução em uma pluralidade de fatia de entropia s em que no fatia de entropia pode ser maior em tamanho que um número de binários predeterminado. O codificador pode inicializar 240 em zero um contador associado ao número de binários em uma fatia de entropia atual. O valor de contador pode ser denotado A a título de ilustração 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 ma- crobloco pode corresponder a uma ordem de rasterização-varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 244 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir a conversão. O número de binários associados ao macrobloco pode ser determinado 246. O número de binários associados ao macrobloco pode incluir os binários nas cadeias de binários associados aos elementos de sintaxe não binários em adição aos elementos de sintaxe binários e o número de binários associados ao macrobloco pode ser denotado num a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 11.
[061] Se o número de binários associados ao macrobloco pode ser adicionado 248 ao número de binários já acumulados associado à fatia de entropia atual sem 249 exceder um número máximo de binários permitido para uma fatia de entropia, então, o número de binários acumulados associados à fatia de entropia atual pode ser atualizado 250 para incluir os binários associados ao macrobloco e os binários associados ao macrobloco podem ser escritos 252 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual. Os elementos de sintaxe para o próximo ma- crobloco pode ser obtido 242 e o processo de particionamento pode continuar.
[062] Se 248 a soma do número de binários associados ao macro- bloco e o número de binários já acumulados associados à fatia de entropia atual excede 253 o número máximo de binários permitido para uma fatia de entropia, então, o codificador pode iniciar 254 uma nova fatia de entropia associada à fatia de reconstrução atual e pode encerrar a fatia de entropia atual, então, o contador associado ao número de binários na nova, agora atual, fatia de entropia pode ser inicializado 256 em zero. O número de biná-rios acumulados associados à fatia de entropia atual pode ser atualizado 250 para incluir os binários associados ao macrobloco e os binários associados ao macrobloco podem ser escritos 252 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 242 e o processo de particio- namento pode continuar.
[063] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 12. Nessas 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 na fatia de entropia pode ser maior em tamanho que um número máximo de binários predeterminado. Nessas modalidades, o codificador pode associar os elementos de sintaxe de macro- bloco a uma fatia de entropia até que o tamanho da fatia de entropia alcance um limiar associado ao número máximo de binários predeterminado permitido em uma fatia de entropia. Em algumas modalidades, o limiar pode ser um percentual do número máximo de binários permitido em uma fatia de entropia. Em uma modalidade exemplificativa, o limiar pode ser 90% do número máximo de binários permitido em uma fatia de entropia, considerando que o maior número de binários esperado em um macrobloco é menor que 10% do número máximo de binários. Em outra modalidade exemplificativa, o limiar pode ser um percentual do número máximo de binários permitido em uma fatia de entropia em que o percentual pode ser com base no maior número de binários esperado em um macrobloco. Nessas modalidades, uma vez que o tamanho de uma fatia de entropia exceda um tamanho de limiar, então, outra fatia de entropia pode ser criada. O tamanho de limiar pode ser selecionado para garantir que a fatia de entropia não exceda o número máximo de binários permitida em uma fatia de entropia. Em algumas modalidades, o tamanho de limiar pode ser uma função do número máximo de binários permitido em uma fatia de entropia e uma estimativa do número máximo de binários esperado para um macrobloco.
[064] O codificador pode inicializar 270 em zero um contador associado ao número de binários em uma fatia de entropia atual. O valor de contador pode ser denotado A a título de ilustração 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 uma ordem de processamento de macrobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordem de rasterização-varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 274 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. Os binários associados ao ma- crobloco podem ser escritos 276 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual. O número de binários associados ao macrobloco pode ser determinado 278 e o número de binários acumulados associados à fatia de entropia atual pode ser atualizado 280 para incluir os binários associados ao macrobloco. Se 282 o número de binários acumulados associados à fatia de entropia atual for maior 284 que um limiar que pode ser denotado TH (MaxNumBins) com base no número máximo de binários permitido em uma fatia de entropia, então, a codificador pode iniciar 286 uma nova fatia de entropia e pode encerrar a fatia de entropia atual, então, o codificador pode inicializar 288 em zero o contador associado ao número de binários na nova, agora atual, fatia de entropia. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 272 e o processo de particio- namento pode continuar. Se o número de binários acumulados associados à fatia de entropia atual não for maior 283 que o limiar com base no número máximo de binários permitido 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.
[065] Em algumas modalidades da presente invenção, um codificador pode encerrar a fatia de reconstrução atual e iniciar uma nova fatia de reconstrução quando um número de macroblocos predeterminado foi atribuído à fatia de reconstrução atual.
[066] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 13. Nessas modalidades, um codificador pode encerrar a fatia de reconstrução atual e iniciar uma nova fatia de reconstrução quando um número de macroblocos predeterminado foi atribuído à fatia de reconstrução atual. O codificador pode inicializar 300 em zero um contador associado ao número de macroblocos em uma fatia de reconstrução atual. O valor de contador pode ser denotado AMB a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13. O codificador pode inicializar 310 em zero um contador associado ao número de binários em uma fatia de entropia atual. O valor de contador pode ser denotado ABin a título de ilustração 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 ao número de macroblocos na fatia de reconstrução atual não for menor 331 que um número máximo de macroblocos predeterminado permitido em uma fatia de reconstrução, então, uma nova fatia de entropia pode ser iniciada 332 e uma nova fatia de reconstrução pode ser iniciada 334, encerrando a fatia de reconstrução atual e fatia de entropia atual. O número máximo de macroblocos permitido em uma fatia de reconstrução pode ser denotado MaxMBperRSlice a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13.
[067] Se o valor de contador do contador associado ao número de macroblocos na fatia de reconstrução atual for menor 313 que o número máximo de macroblocos predeterminado permitido 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 macrobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordenação de rasterização-varredura. Os elementos de sintaxe não binários no macrobloco podem ser convertidos 316 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. O núme- ro de binários associados ao macrobloco pode ser determinado 318. O número de binários associados ao macrobloco podem incluir os binários nas cadeias de binários associadas aos elementos de sintaxe não binários em adição aos elementos de sintaxe binários e o número de binários associados ao macrobloco pode ser denotado num a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 13.
[068] Se o número de binários associados ao macrobloco pode ser adicionado 320 ao número de binários já acumulados associados à fatia de entropia atual sem 321 exceder um número máximo de binários permitido para uma fatia de entropia, então, o número de binários acumulados associados à fatia de entropia atual pode ser atualizado 322 para incluir os binários associados ao macrobloco, os binários associados ao macrobloco podem ser escritos 324 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual e o número de macroblocos associados à fatia de reconstrução atual pode ser incrementado 326. O número de macroblo- cos associados à fatia de reconstrução atual pode ser comparado 312 ao número máximo de macroblocos predeterminado permitido em uma fatia de reconstrução e o processo de particionamento pode continuar.
[069] Se 320 a soma do número de binários associados ao macro- bloco e o número de binários já acumulados associados à fatia de entropia atual excede 327 o número máximo de binários permitido para uma fatia de entropia, então, o codificador pode iniciar 328 uma nova, agora atual, fatia de entropia associados à fatia de reconstrução atual e o contador associado ao número de binários na fatia de entropia atual pode ser inicializado 330 em zero. O número de binários acumulados associados à fatia de entropia atual pode ser atualizado 322 para incluir os binários associados ao macrobloco, os binários associados ao macrobloco podem ser escritos 324 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual e o número de macroblocos associados à fatia de reconstrução atual pode ser incrementado 326. O número de macroblocos associados à fatia de reconstrução atual pode ser comparado 312 ao número máximo de macroblocos predeterminado permitido em uma fatia de reconstrução e o processo de particionamento pode continuar.
[070] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 14. Nessas modalidades, um codificador pode iniciar uma nova fatia de reconstrução quando um número de macroblocos predeterminado for atribuído à fatia de reconstrução atual. Nessas modalidades, o codificador pode associar os elementos de sintaxe de macrobloco a uma fatia de entropia até que o tamanho da fatia de entropia alcance um limiar associado ao número máximo de binários predeterminado permitido em uma fatia de entropia. Em algumas modalidades, o limiar pode ser um percentual do número máximo de binários permitido em uma fatia de entropia. Em uma modalidade exemplificativa, o limiar pode ser 90% do número máximo de binários permitido em uma fatia de entropia, considerando que o maior número de binários esperado em um macrobloco é menor que 1 0% do número máximo de binários. Em outra modalidade exemplificativa, o limiar pode ser um percentual do número máximo de binários permitido em uma fatia de entropia em que o percentual pode ser com base no maior número de binários esperado em um macrobloco. Nessas modalidades, uma vez que o tamanho uma fatia de entropia excede um tamanho de limiar, então, outra fatia de entropia pode ser criada. O tamanho de limiar pode ser selecionado para garantir que a fatia de entropia não exceda o número máximo de binários permitido em uma fatia de entropia. Em algumas modalidades, o tamanho de limiar pode ser uma função do número máximo de binários permitido em uma fatia de entropia e uma estimativa do número máximo de binários esperado para um macrobloco.
[071] O codificador pode inicializar 350 em zero um contador associado ao número de macroblocos em uma fatia de reconstrução atual. O valor de contador pode ser denotado AMB a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 14. O codificador pode inicializar 352 em zero um contador associado ao número de binários em uma fatia de entropia atual. O valor de contador pode ser denotado ABin a título de ilustração 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 ao número de macroblocos na fatia de reconstrução atual não for menor 373 que um número máximo de macroblocos predeterminado permitido 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. O número máximo de macroblocos permitido em uma fatia de reconstrução pode ser denotado MaxMBperRSlice a título de ilustração no restante da descrição das modalidades da presente invenção descritas em relação à Figura 14.
[072] Se o valor de contador do contador associado ao número de macroblocos na fatia de reconstrução atual for menor 355 que o número máximo de macroblocos predeterminado permitido 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 macrobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordenação de rasterização-varredura. Os elementos de sintaxe não bi- nários no macrobloco podem ser convertidos 358 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. Os binários associados ao macrobloco podem ser escritos 360 pelo codificador de entropia para o fluxo de bits e associados à fatia de entropia atual. O número de binários associados ao macrobloco pode ser determinado 362 e o número de binários acumulados associados à fatia de entropia atual pode ser atualizado 364 para incluir os binários associados ao macrobloco. Se 366 o número de binários acumulados associados à fatia de entropia atual for maior 369 que um limiar que pode ser denotado TH (MaxNumBins), com base no número máximo de binários permitido em uma fatia de entropia, então, o codificador pode iniciar 370 uma nova fatia de entropia e inicializar 372 em zero o contador associado ao número de binários em uma fatia de entropia atual. O número de macroblocos associados à fatia de reconstrução atual pode ser incrementado 368. O número de macroblocos associados à fatia de reconstrução atual pode ser comparado 354 ao número máximo de macro- blocos predeterminado permitido em uma fatia de reconstrução e o processo de particionamento pode continuar. Se o número de binários acumulados associados à fatia de entropia atual não for maior 367 que o limiar com base no número máximo de binários permitido em uma fatia de entropia, então, o número de macroblocos associados à fatia de reconstrução atual pode ser incrementado 368 e o número de macroblocos associados à fatia de reconstrução atual pode ser comparado 354 ao número máximo de macroblocos predeterminado permitido em uma fatia de reconstrução e o processo de particionamento pode continuar.
[073] 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 que um número de bits predefinido.
[074] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 15. Nessas 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 que um número predeterminado de bits. O codificador pode inicializar 400 para zerar um contador associado com o número de bits em uma fatia de entropia atual. O valor de contador pode ser denotado A para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 15. Os elementos de sintaxe para um próximo macrobloco podem ser obtidos 402. O próximo macrobloco pode ser determinado de acordo com uma ordem de processamento de ma- crobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordenação de varredura de rastei- rização. Elementos de sintaxe não binários no macrobloco podem ser convertidos 404 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. Os binários, elementos não binários convertidos e elementos binários, associados ao macrobloco podem ser apresentados ao codificador de entropia, e os binários podem ser codificados por entropia 406. O número de bits associado ao macrobloco pode ser determinado 408. O número de bits associado ao macrobloco pode ser denotado num para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 15.
[075] Se o número de bits associado ao macrobloco puder ser adicionado 410 ao número de bits já acumulados associados à atual fatia de entropia sem 411 exceder um número máximo de bits permitidos para uma fatia de entropia, então, o número de bits acumulados associados à atual fatia de entropia pode ser atualizado 412 para incluir os bits associados ao ma- crobloco, e os bits associados ao macrobloco podem ser escritos 414 ao fluxo de bits e associados à atual fatia de entropia. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 402, e o processo de partici- onamento pode continuar.
[076] Se 410 a soma do número de bits associados ao macrobloco e o número de bits já acumulados associados à atual fatia de entropia exceder 415 o número máximo 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 atual, e o contador associado ao número de bits na fatia de entropia atual pode ser inicializado 418 em zero. O número de bits acumulados associados à atual fatia de entropia pode ser atualizado 412 para incluir os bits associados ao macrobloco, e os bits associados ao macrobloco podem ser escritos 414 ao fluxo de bits e associados à atual fatia de entropia. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 402, e o processo de particionamento pode continuar.
[077] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 16. Nessas 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 que um número máximo predeterminado de bits. Nessas modalidades, o codificador pode associar elementos de sintaxe macrobloco a uma fatia de entropia até que o tamanho da fatia de entropia alcance um limiar associado ao número máximo predeterminado de bits permitido em uma fatia de entropia. Em algumas modalidades, o limiar pode ser um percentual do número máximo de bits permitidos em uma fatia de entropia. Em uma modalidade exemplificativa, o limiar pode ser 90% do número máximo de bits permitidos em uma fatia de entropia, considerando que o maior número de bits esperado em um macrobloco seja menor que 10% do número máximo de bits. Em outra modalidade exemplificativa, o limiar pode ser um percentual do número máximo de bits permitidos em uma fatia de entropia em que o percentual pode ser com base no maior número de bits esperado em um macrobloco. Nessas modalidades, visto que o tamanho de uma fatia de entropia excede um tamanho limiar, então, outra fatia de entropia pode ser criada. O tamanho limiar pode ser selecionado para assegurar que a fatia de entropia não exceda o número máximo de bits permitidos em uma fatia de entropia. Em algumas modalidades, o tamanho limiar pode ser uma função do número máximo de bits permitidos em uma fatia de entropia e uma estimativa do número máximo de bits esperado para um macrobloco.
[078] O codificador pode inicializar 440 para zerar um contador associado ao número de bits em uma fatia de entropia atual. O valor de contador pode ser denotado A para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 16. Os elementos de sintaxe para um próximo bloco podem ser obtidos 442. 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 ordenação de varredura de rasteirização. Elementos de sintaxe não binários no macro- bloco podem ser convertidos 444 em uma cadeia de binários. Os elementos de sintaxe binários podem não exige conversão. Os binários associados ao macrobloco podem ser codificados por entropia 446, e o número de binários associado ao macrobloco pode ser determinado 448. O número de bits acumulados associados à atual fatia de entropia pode ser atualizado 450 para incluir os binários associado ao macrobloco, e os binários codificados por entropia associados ao macrobloco podem ser escritos 452 ao fluxo de bits. Se 454 o número de bits acumulados associados à atual fatia de entropia for maior 456 que um limiar com base no número máximo de bits permitidos em uma fatia de entropia, então, o codificador pode iniciar 458 uma nova fatia de entropia, e inicializar 460 para zerar o contador associado ao número de bits em uma fatia de entropia atual. Os elementos de sintaxe para o próximo ma- crobloco podem ser obtidos 442, e o processo de particionamento pode continuar. Se o número de bits acumulados associados à atual fatia de entropia não for maior 455 que um limiar com base no número máximo de bits permi-tidos em uma fatia de entropia, então, os elementos de sintaxe para o próximo macrobloco podem ser obtidos 442, e o processo de particionamento pode continuar.
[079] 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 que um número predefinido de macroblocos.
[080] Em algumas modalidades da presente invenção, uma restrição sobre o número máximo de macroblocos em uma fatia de reconstrução pode ser imposta além de uma restrição sobre o tamanho de uma fatia de entropia.
[081] 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 que um número predefinido de macroblocos e a menos que um número predefinido de binários.
[082] 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 que um número predefinido de macroblocos e a menos que um número predefinido de bits.
[083] 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 que um número predefinido de macroblocos, a menos que um número predefinido de binários e a menos que um número predefinido de bits.
[084] Em algumas modalidades da presente invenção, a codificação de binário no interior de um codificador de entropia pode ser paralelizada permitindo e codificação de mais que um binário, o que pode reduzir o tempo de codificação . Essas modalidades da presente invenção podem ser entendidas em relação a um codificador de entropia exemplificativo retratado na Figura 17. Nessas modalidades, o codificador de entropia 480 pode compreender uma unidade de adaptação de contexto 482, um seletor de codifi-cador de binário com base em estado 484 e uma pluralidade de codificadores de binário, também considerados unidades codificadoras de binário, (três mostradas) 486, 488, 500 que podem operar em paralelo. Os binários 502 podem ser disponibilizados para o codificador de entropia 480 a partir de binarizador 504 que pode gerar os binários 502 a partir de símbolos de entrada 506. Os binários 502 podem ser disponibilizados para a unidade de adaptação de contexto 482 e o seletor de codificador de binário com base em estado 484. A unidade de adaptação de contexto 482 podem realizar adaptação de contexto e gerar um estado de modelo, também referido como um estado 508 que pode ser usado para selecionar um codificador de binário ao qual um binário 502 poder ser direcionado dentre os codificadores de binário 486, 488, 500. O seletor de codificador de binário com base em esta- do 484 pode selecionar o codificador de binário associado ao estado de modelo gerado 508 dentre os codificadores de binário 486, 488, 500 para codificar o binário 502. Em algumas modalidades (não mostradas), o estado gerado 508 pode ser disponibilizado para selecionar o codificador de binário. Os bits de saída 510, 512, 514 podem ser gerados pelos codificadores de binário 486, 488, 500, e os bits de saída 510, 512, 514 podem ser incorporados em um fluxo de bits. Em algumas modalidades da presente invenção, os bits de saída 510, 512, 514 podem ser carregados temporariamente e incorporados ao fluxo de bits através de concatenação. Em modalidades alternativas, os bits de saída 510, 512, 514 podem ser armazenados temporariamente e incorporados ao fluxo de bits de acordo com um esquema intercalado.
[085] De acordo com as modalidades da presente invenção descritas em relação à Figura 17, um primeiro binário pode ser enviado a um primeiro codificador de binário em resposta a um primeiro estado de modelo gerado em relação ao primeiro binário. A unidade de adaptação de contexto 482, mediante conclusão de processamento do primeiro binário, pode começar o processamento de um segundo binário, enviando o segundo binário a um segundo codificador de binário em resposta a um segundo estado de modelo gerado em relação ao segundo binário permitindo, desse modo, o proces-samento substancialmente paralelo de mais que um binário.
[086] Em modalidades alternativas da presente invenção, um codificador de entropia pode compreender uma pluralidade de unidades de adaptação de contexto que pode operar em paralelo e um único codificador de binário. Em sistemas em que as unidades de adaptação de contexto exigem tempo de processamento mais longo que o codificador de binário, uma pluralidade de unidades de adaptação de contexto que opera em paralelo pode reduzir o tempo de codificação . Algumas dessas modalidades da presente invenção podem ser entendidas em relação a um codificador de entropia exemplificativo retratado na Figura 18. Nessas 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 de binário 542. Os binários 544 podem ser disponibilizados para o codificador de entropia 530 a partir de um binarizador 546 que pode gerar os binários 544 a partir de símbolos de entrada 548. Os binários 544 podem ser disponibilizados para o seletor de unidade de adaptação de contexto 538, o seletor de estado 540 e o codificador de binário 542. O seletor de unidade de adaptação de contexto 538 pode ser usado para selecionar ou programar uma unidade de adaptação de contexto 532, 534, 536 à 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 selecionador 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 com base na sintaxe associada ao binário, por exemplo, um identificador unidade de adaptação de contexto pode ser associado a um binário que identifica a unidade de adaptação de contexto à qual o binário pode ser direcionado para processamento. Em modalidades exemplificativas alternativas, 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 com base em um protocolo de programação ou limitação de balanceamento de carga associado à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, na temporização apropriada para ser passado para o codificador de binário 542. O codificador de binário 542 pode usar o valor de estado 556 passado pelo seletor de estado 540 em codificação do binário 544. Em modalidades alternativas da presente invenção (não mostradas), o valor de estado pode não ser exigido pelo codificador de binário e, portanto, não disponibilizado para o codificador de binário. Os bits de saída 558 podem ser gerados pelo codificador de binário 542, e os bits de saída 558 podem ser incorporados a um fluxo de bits. Em algu-mas modalidades da presente invenção, os bits de saída 558 podem ser armazenados temporariamente e incorporados ao fluxo de bits através de con- catenação. Em modalidades alternativas, os bits de saída 558 podem ser armazenados temporariamente e incorporados ao fluxo de bits de acordo com um esquema intercalado.
[087] Ainda 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 uma pluralidade de codificadores de binário que podem operar em paralelo. Essas modalidades da presente invenção podem ser entendidas em relação a um codificador de entropia exemplificativo retratado na Figura 19. Nessas modalidades, o codificador de entropia 570 pode compreender uma pluralidade de unidades de adaptação de contexto (três mostradas) 572, 574, 576, um seletor de unidade de adaptação de contexto 578, um seletor de estado 580, um seletor de codificador de binário com base em estado 582 e uma pluralidade de codificadores de binário (três mostradas) 584, 586, 588. Os binários 590 podem ser disponibilizados para o codificador de entropia 570 a partir de um binari- zador 592 que pode gerar os binários 590 a partir de símbolos de entrada 594. Os binários 590 podem ser disponibilizados para o seletor de unidade de adaptação de contexto 578, o seletor de estado 580 e o seletor de codificador de binário 582. O seletor de unidade de adaptação de contexto 578 pode ser usado para selecionar ou programar, uma unidade de adaptação de contexto 572, 574, 576 à qual um binário 590 pode ser direcionado e a partir da qual um valor de estado 596, 598, 600 pode ser gerado. O valor de estado gerado pode ser selecionado pelo seletor de estado 580 na temporização apropriada para ser passado para o seletor de codificador de binário com base em estado 582. O seletor de codificador de binário com base em estado 582 pode usar o valor de estado 602 passado pelo seletor de estado 580 para selecionar um codificador de binário dentre os codificadores de binário 584, 586, 588 para o qual um binário 590 pode ser direcionado. Em modalidades alternativas (não mostradas), o valor de estado 602 pode ser disponibilizado para o codificador de binário selecionado. O codificador de binário selecionado pode usar o valor de estado 602 na codificação do binário 590. Em modalidades alternativas da presente invenção (não mostradas), o valor de estado pode não ser exigido pelo codificador de binário e, portanto, não disponibilizado para o codificador de binário. Os bits de saída 604, 606, 608 podem ser gerados pelos codificadores de binário 584, 586, 588 e os bits de saída 604, 606, 608 podem ser incorporados a um fluxo de bits. Em algumas modalidades da presente invenção, os bits de saída 604, 606, 608 podem ser armazenados temporariamente e incorporados ao fluxo de bits através de concatenação. Em modalidades alternativas, os bits de saída 604, 606, 608 podem ser armazenados temporariamente e incorporados ao fluxo de bits de acordo com um esquema intercalado.
[088] Uma modalidade exemplificativa da presente invenção pode compreender uma pluralidade de codecs de codificação de comprimento variável que podem operar em paralelo.
[089] Em uma modalidade exemplificativa da presente invenção, um codificador de binário pode compreender codificação aritmética de binário. Em outra modalidade exemplificativa da presente invenção, um codificador de binário pode compreender codificação de comprimento variável. Em ainda outra modalidade exemplificativa da presente invenção, um codificador de binário pode compreender codificação de comprimento fixo.
[090] Em geral, um codificador de entropia pode compreender Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binário, em que Nca é um número interior maior que, ou igual a um e Nbc é um número inteiro maior que, ou igual a um.
[091] 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 forma que um, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binário pode, cada um, operar em não mais que um número limitado de binários durante o processamento da fatia de entropia. As unidades de adaptação de contexto e unidades codificadoras de bi-nário com tal restrição podem ser referidas como unidades codificadoras de entropia restritas.
[092] 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 tal forma que nenhuma das Nca unidades de adaptação de contexto podem operar em mais 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 de bits, limitação de perfil, limitação de nível ou outro mecanismo normativo.
[093] 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 tal forma que nenhuma das Nbc unidades codificadoras de binário pode operar em mais 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 de bits, limitação de perfil, limitação de nível ou outro mecanismo normativo.
[094] Ainda 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 tal forma que nenhuma das Nbc unidades de adaptação de contexto pode operar em mais que Bca binários e nenhuma das Nbc unidades codificadoras de binário pode operar em mais 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 sinalizados, por exemplo, em um fluxo de bits, limitação de perfil, limitação de nível ou outro mecanismo normativo.
[095] Ainda 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 tal forma que a i-ésima Nca unidade de adaptação de contexto, denotada Nca (i), para i = 1,..., Nca, pode operar em não mais que Bca (i) binários e a i-ésima Nbc unidade codificadora de binário, Nbc (i), para i = 1,..., Nbc, pode operar em não mais 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) podem ser sinaliza- dos, por exemplo, em um fluxo de bits, limitação de perfil, limitação de nível ou outro mecanismo normativo.
[096] Algumas modalidades exemplificativas da presente invenção podem ser descritas em relação à Figura 20. Nessas 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 tal forma que uma, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binário pode operar em não mais que um número limitado de binários. O codificador pode inicializar 650 para zerar um contador, para cada unidade codificadora de entropia restrita, associada ao número de binários processados em uma fatia de entropia atual. Para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 20, o valor de contador pode ser denotado A, em que A representa um vetor com cada entrada no vetor correspondente ao número acumulado de binários processados, para a fatia de entropia atual, através de uma unidade codificadora de entropia restrita. Os elementos de sintaxe para um próximo bloco pode ser obtido 652. 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 ordenação de varredura de rasteirização. Elementos de sintaxe não binários no macrobloco podem ser convertidos 654 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. O número de binários, associado ao macrobloco, processado por cada unidade codificadora de entropia restrita pode ser determinado 656. O número de binários associado ao macrobloco pode incluir os binários nas cadeias de binários associado aos elementos de sintaxe não binários além dos ele- mentos de sintaxe de binário. Para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 20, o número de binários, associado ao macrobloco, processado por cada unidade codificadora de entropia restrita pode ser denotado num, em que num representa um vetor com cada entrada no vetor correspondente ao número de binários processados, para o macrobloco atual, através da unidade codificadora de entropia restrita.
[097] Se o número de binários associado ao macrobloco para cada unidade codificadora de entropia restrita puder ser adicionado 658 ao número de binários já acumulados, associados à atual fatia de entropia, para cada unidade codificadora de entropia restrita, sem 659 exceder um número máximo de binários permitido para qualquer unidade codificadora de entropia restrita, então, o número de binários acumulados associados à atual fatia de entropia pode ser atualizado 660 para incluir os binários associados ao ma- crobloco, e os binários associados ao macrobloco podem ser escritos 662, pelo codificador de entropia, ao fluxo de bits e associados à atual fatia de entropia. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 652, e o processo de particionamento pode continuar.
[098] Se 658 a soma do número de binários associado ao macroblo- co e o número de binários já acumulados associados à atual fatia de entropia exceder 663 o número máximo de binários permitido para qualquer unidade codificadora de entropia restrita, então, o codificador pode iniciar 664 uma nova fatia de entropia associada à fatia de reconstrução atual, e o contador associado ao número de binários na fatia de entropia atual pode ser inicializado 666 em zero. O número de binários acumulados associados à atual fatia de entropia pode ser atualizado 660 para incluir os binários associados ao macrobloco, e os binários associados ao macrobloco podem ser escritos 662, através do codificador de entropia, ao fluxo de bits e associados à atual fatia de entropia. Os elementos de sintaxe para o próximo ma- crobloco podem ser obtidos 652, e o processo de particionamento pode continuar.
[099] Algumas modalidades da presente invenção podem ser descritas em relação à Figura 21. Nessas 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 tal forma que uma, ou mais, de Nca unidades de adaptação de contexto e Nbc unidades codificadoras de binário pode operar em não mais que um número limitado de binários. O codificador pode inicializar 700 para zerar um contador, para cada unidade codificadora de entropia restrita, associada ao número de binários processados em uma fatia de entropia atual pela unidade codificadora de entropia restrita. Para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 21, o valor do contador pode ser denotado A, em que A representa um vetor com cada entrada no vetor correspondente ao número acumulado de binários processados, para a fatia de entropia atual, pela unidade codificadora de entropia restrita. Nessas modalidades, o codificador pode associar elementos de sintaxe macrobloco a uma fatia de entropia até que o número de binários processados pela unidade codificadora de entropia restrita alcança um limiar associado ao número máximo predeterminado de binários permitido para ser processado, em uma fatia de entropia, pela unidade codificadora de entropia restrita. Em algumas modalidades, o limiar pode ser um percentual do número máximo de binários permitido para ser processado, em uma fatia de entropia, pela unidade codificadora de entropia restrita. Em uma modalidade exemplificativa, o limiar pode ser 90% do número máximo de binários permitido para ser processado, em uma fatia de entropia, pela unidade codificadora de entropia restrita, considerando que o maior número de binários esperado em um macrobloco para ser processado pela unidade codificadora de entropia restrita seja menor que 10% do número máximo de binários permitido para ser processado, em uma fatia de entropia, pela unidade codificadora de entropia restrita. Em outra modalidade exemplificativa, o limiar pode ser um percentual do número máximo de binários permitido para ser processado, em uma fatia de entropia, por uma unidade codificadora de entropia restrita em que o percentual pode ser com base no maior número de binários esperado em um macroblo- co para ser processado pela unidade codificadora de entropia restrita. Nessas modalidades, visto que o tamanho de uma fatia de entropia excede um tamanho limiar, então, outra fatia de entropia pode ser criada. O tamanho do limiar pode ser selecionado para assegurar que a fatia de entropia não exceda o número máximo de binários permitido para ser processado por qualquer uma unidade codificadora de entropia restrita em uma fatia de entropia. Em algumas modalidades, o tamanho limiar pode ser uma função do número máximo de binários permitido em uma fatia de entropia e uma estimativa do número máximo de binários esperado para um macrobloco.
[0100] 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 macrobloco predefinida. Em algumas modalidades, a ordem de processamento de macrobloco pode corresponder a uma ordenação de varredura de rasterização. Elementos de sintaxe não binários no macrobloco podem ser convertidos 704 em uma cadeia de binários. Os elementos de sintaxe binários podem não exigir conversão. Os binários associados com o macrobloco podem ser escritos 706, pelo codificador de entropia, ao fluxo de bits e associados com a fatia de entropia atual. O número de binários, associado com o macrobloco, processado por cada unidade codificadora de entropia restrita pode ser determinado 708. O número de binários associado com o macrobloco pode incluir os binários nas cadeias de binários associados com os elementos de sintaxe não binários, em adição aos elementos de sintaxe binários. Para propósitos ilustrativos na parte restante da descrição das modalidades da presente invenção descrita em relação à Figura 21, o número de binários, associado com o macrobloco, processado por cada unidade codificadora de entropia restrita pode ser denotado como num, onde num representa um vetor com cada entrada no vetor que corresponde ao número de binários processados, para o macrobloco atual, por uma unidade codificadora de entropia restrita correspondente. O número de binários acumulados, associado com a fatia de entropia atual, processado por cada unidade codificadora de entropia restrita, pode ser atualizado 710 para incluir os binários associados com o macrobloco. Se 712 o número de binários acumulados, associado com a fatia de entropia atual, processado por uma unidade codificadora de entropia restrita for maior 714 que um limiar, que pode ser denotado como TH (MaxNumBins)(i) para unidade codificadora de entropia restrita i, então o codificador por iniciar 716 uma nova fatia de entropia, e inicializar 718 para zerar o contador associado com o número de binários processados por cada unidade codificadora de entropia restrita em uma fatia de entropia atual. Os elementos de sintaxe para o próximo macrobloco podem ser obtidos 702, e o processo de partici- onamento pode continuar. Se o número de binários acumulados, associado com a fatia de entropia atual, processados por uma unidade codificadora de entropia restrita não for maior 713 que o limiar, então os elementos de sintaxe para o próximo macrobloco pode ser obtido 702, e o processo de partici- onamento pode continuar.
[0101] Algumas modalidades da presente invenção podem compreender uma combinação dos critérios descritos acima para o particionamento de fatia de entropia.
[0102] Deve ser entendido que embora algumas modalidades da presente invenção possam restringir o tamanho de uma fatia de entropia como sendo menor que um primeiro tamanho predefinido, em que o tamanho da fatia de entropia pode ser igualmente restrito para não exceder um segundo tamanho predefinido. As modalidades descritas no presente documento são modalidades exemplificativas da presente invenção, e uma pessoa com habilidades comuns na técnica irá apreciar que existem modalidades equivalentes da presente invenção para restringir o tamanho de uma fatia de entropia.
[0103] Em algumas modalidades da presente invenção, iniciar uma nova fatia de entropia pode compreender terminar a fatia atual e considerar a nova fatia de entropia como a fatia de entropia atual.
[0104] Em algumas modalidades da presente invenção, a decodifica- ção de uma pluralidade de bits dentro de uma fatia de entropia pode ser pa- ralelizada dentro de um decodificador de entropia que compreende uma pluralidade de decodificadores de binário, que pode reduzir o tempo de decodi- ficação. As 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ário 762, 764, 766. Os bits 752 dentro de uma fatia de entropia e os símbolos anteriormente decodificados 754 podem ser disponibilizados para um decodificador de entropia 750. Os bits 752 podem ser disponibilizados para um seletor de decodificador de binário 756, que pode selecionar um decodificador de binário, com base em um estado de contexto 758 gerado a partir de uma unidade de adaptação de contexto 760, dentre os decodificadores de binário 762, 764, 766. A unidade de adaptação de contexto 760 pode gerar o estado de contexto 758 com base nos símbolos anteriormente decodificados 754 disponibilizados para a unidade de adaptação de contexto 760. O seletor de decodificador de binário 756 pode atribuir um decodificador de binário 762, 764, 766 com base no estado de contexto 758. O bit a ser decodificado 752 pode ser passado pelo seletor de decodifi- cador de binário 756 para ser decodificador de binário selecionado. Os de- codificadores de binário 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 simbolizador 778 que pode gerar os símbolos 754 associados com os binários 776.
[0105] Em algumas modalidades da presente invenção, a decodifica- ção de uma pluralidade de bits dentro de uma fatia de entropia pode parale- lizada dentro de um decodificador de entropia que compreende uma pluralidade de unidades de adaptação de contexto, que podem reduzir o tempo de decodificação. As modalidades exemplificativas da presente invenção podem ser entendidas em relação a um decodificador de entropia exemplifica- tivo 800, retratado na Figura 23, que compreende uma pluralidade (três mos-tradas) de unidades de adaptação de contexto 814, 816, 818. Os bits 802 dentro de uma fatia de entropia e de símbolos anteriormente decodificados 810 podem ser disponibilizados para um decodificador de entropia 800. Os bits 802 podem ser disponibilizados 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 processo 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 ao receber cada N-ésimo bit. A unidade de adaptação de contexto selecionada pode gerar um estado de contexto 820, 822, 824 com base nos símbolos anteriormente decodificados 810 disponibilizados para a unidade de adaptação de contexto selecionada. Um seletor de estado 826, no momento apropriado, pode selecionar o estado de contexto gerado associado com 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 ao 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 disponibilizado 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 simbolizador 808 que pode gerar um símbolo 810 associado com o binário decodificado 806.
[0106] Em algumas modalidades da presente invenção, a decodifica- ção de uma pluralidade de bits dentro de uma fatia de entropia pode ser pa- ralelizada dentro de um decodificador de entropia que compreende uma pluralidade de unidades de adaptação de contexto e uma pluralidade de decodi- ficadores de binário, que podem reduzir o tempo de decodificação. As 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 de- codificadores de binário 858, 860, 862. Os bits 864 dentro de uma fatia de entropia e os símbolos anteriormente decodificados 866 podem ser disponibilizados para um decodificador de entropia 850. Os bits 864 podem ser dis- ponibilizados 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 contexto para o processo de decodificação de um bit de entrada. Em algumas 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 contexto ao receber cada N- ésimo bit. A unidade de adaptação de contexto selecionada pode gerar um estado de contexto 870, 872, 874 com base nos símbolos anteriormente decodificados 866 disponibilizados para a unidade de adaptação de contexto selecionada. Um seletor de estado 876, no momento apropriado, pode selecionar o estado de contexto gerado associado com 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 ao receber cada N- ésimo bit, de acordo com o mesmo procedimento que o seletor de unidade de adaptação de contexto 868. O estado selecionado 878 pode ser disponi-bilizado para um seletor de decodificador de binário 880, que pode selecionar, com base no estado de contexto selecionado 878, um decodificador de binário 858, 860, 862. O seletor de decodificador de binário 880 pode atribuir um decodificador de binário 858, 860, 862 com base no estado de contexto 878. O bit a ser decodificado 864 pode ser passado pelo seletor de decodifi- cador de binário 880 para o decodificador de binário selecionado. Os decodi- ficadores de binário 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 simbolizador 892 que pode gerar os símbolos 866 associados com os binários 890.
[0107] 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 hachura transversal 952, a fatia de entropia 1 mostrada em branco 954 e a fatia de entropia 2 mostrada em hachura pontilhada 956. Os macroblocos dentro de cada fatia de entropia 952, 954, 956, nessa fatia de reconstrução exemplificativa 950, são contíguos.
[0108] 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: a fatia de entropia 0 mostrada em hachura transversal 962, a fatia de entropia 1 mostrada em branco 964 e a fatia de entropia 2 mostrada em hachura pontilhada 966. Os macroblocos dentro de cada fatia de entropia 962, 964, 966, nessa 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 referida como uma partição intercalada.
[0109] Em algumas modalidades da presente invenção, durante a de- codificação por entropia de um bloco atual dentro de uma fatia de entropia, o decodificador pode usar outros blocos a partir da mesma fatia de entropia para predizer as informações relacionadas à decodificação por entropia do bloco atual. Em algumas modalidades da presente invenção, durante a reconstrução de um bloco atual dentro de uma fatia de reconstrução, outros blocos da mesma fatia de reconstrução podem ser usados para predizer as informações relacionadas à reconstrução do bloco atual.
[0110] Em algumas modalidades da presente invenção em que uma fatia de reconstrução compreende uma partição intercalada, os blocos vizinhos dentro de uma fatia de entropia usada na decodificação de um bloco atual dentro da fatia de entropia podem não estar diretamente na vizinhança, ou contíguos. A Figura 27 ilustra essa situação para a partição intercalada exemplificativa retratada na Figura 26.
[0111] Na Figura 27, para um bloco atual 970 dentro de uma fatia de entropia 964, o bloco vizinho da esquerda usado para a decodificação por entropia do bloco atual 970 é o bloco vizinho da esquerda contíguo 972 dentro da fatia de entropia 964. O bloco vizinho superior usado para a decodifi- cação por entropia do bloco atual 970 é o bloco vizinho superior não contíguo 974 dentro da mesma fatia de entropia 964. Para a reconstrução do bloco atual 970, o bloco vizinho da esquerda é o bloco vizinho da esquerda 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.
[0112] Em algumas modalidades da presente invenção em que uma fatia de reconstrução compreende uma partição intercalada, pode não existir bloco vizinho apropriado, dentro de uma fatia de entropia, para ser usado na decodificação de um bloco atual dentro da fatia de entropia. A Figura 28 ilustra essa situação para a partição intercalada exemplificativa retratada na Figura 26.
[0113] Na Figura 28, para um bloco atual 980 dentro de uma fatia de entropia 964, não existe bloco vizinho da esquerda, dentro da fatia de entropia 964, para ser usado para a decodificação por entropia do bloco atual 980. O bloco vizinho superior usado para a decodificação por entropia do bloco atual 980 é o bloco vizinho superior não contíguo 982 dentro da mesma fatia de entropia 964. Para a reconstrução do bloco atual 980, o bloco vizinho da esquerda é o bloco vizinho da esquerda contíguo 984 dentro da fatia de reconstrução 960, e o bloco vizinho superior é o bloco vizinho superior contiguo 986 dentro da fatia de reconstrução 960.
[0114] Em algumas modalidades da presente invenção, um decodifi- cador pode pré-processar um fluxo de bits entrante completo para identificar as localizações das fatias de entropia. Em algumas modalidades da presente invenção, um decodificador pode pré-processar uma fatia de reconstrução inteira para identificar as localizações das fatias de entropia dentro da fatia de reconstrução. Em algumas modalidades, as localizações das fatias de entropia podem ser determinadas pela identificação das localizações dos cabeçalhos de fatia de entropia. Nessas modalidades, o decodificador pode ler os bits no fluxo de bits e os valores de código de início predefinido podem ser identificados.
[0115] Em modalidades alternativas, os cabeçalhos de fatia de entropia podem ser limitados para uma faixa de bits localizada em posições pre- definidas dentro de um fluxo de bits entrante. Em modalidades alternativas, cabeçalhos de fatia de entropia podem ser limitados para uma faixa de bytes localizada em posições predefinidas dentro de um fluxo de bits entrante. Nessas modalidades, ou alinhado por bit ou alinhado por byte, um decodifi- cador não precisa pré-processar porções significativamente grandes do fluxo de bits entrante para localizar as fatias de entropia.
[0116] Em algumas modalidades da presente invenção, um codificador pode sinalizar, no fluxo de bits, as informações de localização de fatia de entropia, também referidas como parâmetros de localização de fatia de entropia, por exemplo, informações de desvio e faixa, que podem limitar as localizações dos cabeçalhos de fatia de entropia. Em modalidades alternativas, as informações de localização de fatia de entropia podem não ser sina- lizadas no fluxo de bits, mas podem ser determinadas a partir dos parâmetros de fatia de entropia, por exemplo, um número fixo de binários permitido em qualquer dada fatia de entropia, um número fixo de bits permitido em qualquer dada fatia de entropia e outros parâmetros de fatia de entropia. Ainda em modalidades alternativas da presente invenção, as informações de localização de fatia de entropia podem ser definidas por outro meio normativo, por exemplo, as informações podem ser especificadas em uma limitação de perfil, uma limitação de nível, uma limitação de aplicação, ou outra limitação, ou as informações podem ser sinalizadas como informações suplementares ou sinalizadas por outro meio fora de alcance.
[0117] Em algumas modalidades da presente invenção, um conjunto de valores de parâmetro de localização de fatia de entropia pode ser usado para todas as fatias de entropia dentro de um fluxo 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 representados por uma porção de uma sequência. Em modalidades alternativas, os valores de parâmetro de localização de fatia de entropia podem ser definidos para cada figuração dentro de um fluxo de bits e podem ser usados para todas as fatias de entropia dentro da figuração 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 de bits e podem ser usados para todas as fatias de entropia dentro da fatia de reconstrução associada. Ainda em modalidades alternativas, sets múltiplos de valores de parâmetro de localização de fatia de entropia podem ser usados pelo decodificador. Ainda em modalidades alternativas, os valores de parâmetro de localização de fatia de entropia podem ser atribuídos para 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 podem usar um N-ésimo conjunto de valores de parâmetro de localização de fatia de entropia. Em algumas modalidades da presente invenção, os valores de parâmetro de fatia de entropia podem ser atribuídos para identificadores de quadro. Em uma modalidade exemplificativa, uma primeira figuração pode usar um primeiro conjunto de valores de parâmetro de fatia de entropia, uma segunda figuração pode usar um segundo conjunto de valores de parâmetro de fatia de entropia e, em geral, uma N-ésima figuração pode usar um N-ésimo conjunto de valores de parâmetro de localização de fatia de entropia. Em outra modalidade exemplificativa, uma figuração de um primeiro tipo pode usar um primeiro conjunto de valores de parâmetro de localização de fatia de entropia e uma figuração de um segundo tipo pode usar um segundo conjunto de valores de parâmetro de localização de fatia de entropia. Tipos exemplificativos de figurações são intrafigurações, figurações previstas e outros tipos de figurações.
[0118] Em algumas modalidades da presente invenção que compreendem um codec H.264/codec AVC, um desvio de fatia de entropia e uma faixa de fatia de entropia podem ser assinalados em um conjunto de parâmetro de sequência Carga Útil de Sequência de Byte Bruto (RBSP) ao adicionar um parâmetro de "entropy_slice_offset" e um "entropy_slice_range" ao conjunto de parâmetro de sequência. A Tabela 3 lista sintaxe de RBSP de conjunto de parâmetro de sequência exemplificativo de acordo com as mo-dalidades da presente invenção.
[0119] Em algumas modalidades da presente invenção que compre- ende um codec H.264/AVC, um desvio de fatia de entropia e uma faixa de fatia de entropia podem ser sinalizados em uma Carga Útil de Sequência de Byte Bruto (RBSP) de conjunto de parâmetro de figuração ao adicionar um parâmetro de "entropy_slice_offset" e um "entropy_slice_range" ao conjunto de parâmetro de figuração. A Tabela 4 lista a sintaxe de RBSP de conjunto de parâmetro de figuração exemplificativa de acordo com as modalidades da presente invenção.
[0120] Em algumas modalidades da presente invenção que compreendem um codec H.264/AVC, um desvio de fatia de entropia e uma faixa de fatia de entropia podem ser sinalizados em um cabeçalho de fatia ao adicionar um parâmetro de "entropy_slice_offset" e um "entropy_slice_range" ao cabeçalho de fatia. A Tabela 5 lista sintaxe de cabeçalho de fatia exemplifi- cativo de acordo com as modalidades da presente invenção.
[0121] Em algumas modalidades da presente invenção, um desvio de fatia de entropia e uma faixa de fatia de entropia podem ser indicados para cada ponto de conformação de nível do codificador de acordo com uma tabela, por exemplo, conforme mostrado na Tabela 6, onde Om.n denota o desvio de fatia de entropia para um ponto de conformação de nível m.n, e Rm.n denota a faixa de fatia de entropia para o ponto de conformação m.n. Tabela 3: Sintaxe de RBSP de Conjunto de Parâmetro de Sequência Exem- plificativo
Tabela
Tabela 4: Sintaxe de RBSP de Conjunto de Parâmetro de Figuração Exem- plificativo Tabela
Tabela 5: Tabela de Sintaxe Exemplificativa para Cabeçalho de Fatia Tabela 6: Desvio de Fatia de Entropia e Faixa de Fatia de Entropia para Cada Nível Exemplificativos
[0122] Em algumas modalidades, as informações de localização de fatia de entropia podem compreender as informações que podem limitar as localizações dos cabeçalhos de fatia de entropia. Em um exemplo, as informações de localização de fatia de entropia podem compreender um desvio, também referido como um valor e uma faixa de período ou desvio base, também referido como um valor de divergência ou desvio para um período. Uma localização de cabeçalho de fatia de entropia pode ser limitada com base no valor de desvio e o valor de faixa.
[0123] Em algumas modalidades da presente invenção, um valor de desvio e um valor de faixa podem ser definidos explicitamente. Em modalidades alternativas da presente invenção, um valor de desvio e um valor de faixa pode ser definido implicitamente como um valor de desvio mínimo e um valor de desvio máximo. Ainda em modalidades alternativas da presente invenção, um valor de desvio e um valor de faixa podem ser definidos implicitamente como um valor de desvio máximo, e a diferença entre o valor de desvio máximo e um valor de desvio mínimo. Ainda em modalidades alternativas da presente invenção, um valor de desvio e um valor de faixa podem ser definidos implicitamente como um valor de desvio mínimo, e a diferença entre o valor de desvio mínimo e um valor de desvio máximo. Em modalidades alternativas, um valor de desvio e um valor de faixa podem ser definidos implicitamente como um terceiro valor, e a diferença entre o terceiro valor e um valor de desvio máximo e um valor de desvio mínimo. Ainda em modalidades alternativas, um valor de desvio e um valor de faixa podem ser definidos através de um índice em uma tabela de consulta que contém os valores de bit máximo e mínimo correspondentes. Em algumas modalidades, um valor de desvio e um valor de faixa podem ser definidos com o uso de uma árvore de consulta com base em desvio. Em algumas modalidades, um valor de desvio e um valor de faixa podem ser definidos com o uso de indexação de minimização de custo. Uma pessoa que tem habilidades comuns na técnica irá reconhecer que existem muitos métodos conhecidos na técnica para definir implicitamente um valor de faixa e um valor de desvio, e para assegurar que um codificador e um decodificador operem com o mesmo valor para os valores de faixa e de desvio predefinidos.
[0124] Em algumas modalidades da presente invenção, sinalizar um valor de faixa pode ser opcional. Em algumas modalidades, quando um valor de faixa não é sinalizado, então o valor de faixa pode ser estabelecido para um valor predefinido. Em uma modalidade exemplificativa, o valor predefini- do pode ser zero. Em outra modalidade exemplificativa, o valor predefinido pode ser um valor inteiro diferente de zero.
[0125] Em uma modalidade exemplificativa descrita em relação à Figura 29, o cabeçalho de fatia de entropia associado com uma fatia de entropia, fatia número N dentro de uma fatia de reconstrução, pode ser limitada para iniciar após Nk - p bits a partir do início do, ou outra localização fixa dentro, cabeçalho de fatia de reconstrução, onde k denota o valor de desvio e p denota a faixa. A localização da qual os Nk - p bits podem ser medidos pode ser referida como a localização de referência. Em modalidades alternativas, uma localização de referência pode não ser associada com uma fatia de reconstrução particular e pode ser a mesma localização fixa dentro de um fluxo 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 limitação pode ser associada com um número de bytes. Embora o exemplo ilustrado em relação à Figura 29 seja descrito em termos de bits, uma pessoa que tem habilidades comuns na técnica pode apreciar as modalidades alinhadas por byte alternativas.
[0126] A Figura 29 é uma representação figurativa de uma porção exemplificativa 1000 de um fluxo de bits exemplificativo. A porção de fluxo 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 à zerésima fatia de entropia 1003, referido como o zerésimo cabeçalho de fatia de entropia, o cabeçalho de fatia de entropia que corresponde à primeira fatia de entropia 1004, referido como o primeiro cabeçalho de fatia de entropia, o cabeçalho de fatia de entropia que corresponde à segunda fatia de entropia 1005, referido como o segundo cabeçalho de fatia de entropia, o cabeçalho de fatia de entropia que corresponde à terceira fatia de entropia 1006, referido como o terceiro cabeçalho de fatia de entropia), representados por retângulos cinza sólido, e as porções remanescentes das fatias de entropia, representadas por listras pretas e brancas finas. Nesse 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 à zerésima fatia de entropia 1003 pode ser limitada para ser localizada 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 à zerésima fatia de entropia pode ser uma parte do cabeçalho de fatia de reconstrução. Isso quer dizer, o cabeçalho de fatia de reconstrução também pode servir como o cabeçalho de fatia de entropia que corresponde à zerésima fatia de entropia. Nessas modalidades, o cabeçalho de fatia de reconstrução pode compreender uma porção de reconstrução e uma porção de entropia. Em algumas modalidades da presente invenção, retratadas na Figura 29, o primeiro cabeçalho de fatia de entropia 1004 pode ser limitado para ser localizado após os k - p bits 1007 a partir da localização de referência 1001, o segundo cabeçalho de fatia de entropia 1005 pode ser limitado para ser localizado após os 2k - p bits 1008 a partir da localização de referência 1001, o segundo cabeçalho de fatia de entropia 1006 pode ser limitado para ser localizado após os 3k - p bits 1009 a partir da localização de referência 1001. Nessas modalidades, um decodificador de entropia atribuído para decodificar a fatia de entropia N pode iniciar a busca pelo cabeçalho de fatia de entropia corresponde após os Nk - p bits a partir da localização de referência 1001.
[0127] Em modalidades alternativas da presente invenção, as informações de localização de fatia de entropia podem não compreender um parâmetro de faixa. Nessas modalidades, um decodificador de entropia pode iniciar a busca pelo N-ésimo cabeçalho de fatia de entropia após os Nk bits a partir de uma localização de referência.
[0128] Em outra modalidade exemplificativa descrita em relação à Figura 30, o cabeçalho de fatia de entropia associado com a fatia de entropia, a fatia número N dentro de uma fatia de reconstrução, pode ser limitada para iniciar após os Nk - p bits a partir do início do, ou outra localização fixa dentro, cabeçalho de fatia de reconstrução, onde k denota o valor de desvio e p denota a faixa, e o cabeçalho de fatia de entropia pode ser limitado adicionalmente para estar dentro de uma faixa 2p de bits a partir da localização de início limitada. A localização da qual os Nk - p bits podem ser medidos pode ser referida como a localização de referência. Em modalidades alternativas, uma localização de referência pode não ser associada com uma fatia de reconstrução particular, e pode ser a mesma localização fixa dentro de um fluxo 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 limitação pode ser associada com um número de bytes. Embora o exemplo ilustrado em relação à Figura 30 seja descrita em termos de bits, uma pessoa que tem habilidades comuns na técnica pode apreciar as modalidades alinhadas por byte alternativas.
[0129] A Figura 30 é uma representação figurativa de uma porção exemplificativa 1020 de um fluxo de bits exemplificativo. A porção de fluxo 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 (sendo que o cabeçalho de fatia de entropia corresponde à zerésima fatia de entropia 1023, chamado de o zerésimo cabeçalho de fatia de entropia, sendo que o cabeçalho de fatia de entropia corresponde à primeira fatia de entropia 1024, chamada de a primeira fatia de entropia, sendo que o cabeçalho de fatia de entropia corresponde à segunda fatia de entropia 1025, chamada de a segunda fatia de entropia, sendo que o cabeçalho de fatia de entropia corresponde à terceira fatia de entropia 1026, chamada de a terceira fatia de entropia), representado por retângulos cinza sólido, e as porções restantes das fatias de entropia, representadas por listras preto e branco finas. 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 à zerési- ma fatia de entropia 1023 pode ser limitado a estar 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 à zerésima fatia de entropia 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 porção de reconstrução e uma porção de entropia. Em algumas modalidades da presente invenção retratadas na Figura 30, a primeira fatia de entropia 1024 pode ser limitada a estar localizada dentro de 2p bits 1031 após k - p bits 1027 da localização de referência 1021, a segunda fatia de entropia 1025 pode ser limitada a estar localizado dentro de 2p bits 1032 após 2 k - p bits 1028 da localização de referência 1021, o segundo cabeçalho de fatia de entropia 1026 pode ser limitado a estar localizado dentro de 2p bits 1033 após 3k - p bits 1029 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 da localização de referência e pode encerrar a busca após identificar o cabeçalho de fatia de entropia ou após buscar 2p bits. 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 atual bloco de reconstrução para decodificar por entropia. O decodificador de entropia pode determinar 1052 as informações de localização de fatia de entropia. Em algumas modalidades da pre sente invenção, as informações de localização de fatia de entropia, também chamadas de parâmetros de localização de fatia de entropia, podem ser sinalizadas no fluxo de bits, e o decodificador pode determinar 1052 as informações de fatia de entropia examinando-se o fluxo de bits. Em modalidades alternativas, as informações de localização de fatia de entropia podem não estar sinalizadas no fluxo de bits, mas podem ser determinadas 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 outros parâmetros de fatia de entropia. Em modalidades ainda alternativas da presente invenção, as informações de localização de fatia de entropia podem ser definidas e determinadas 1052 por outro meio normativo, por exemplo, as informações podem ser especificadas em uma limitação de perfil, uma limitação de nível, uma limitação de aplicação ou outra limitação ou as informações podem ser sinalizadas como informações suplementares ou sinalizadas por outro meio fora de alcance.
[0130] O decodificador de entropia pode calcular 1054 uma localização de início de busca de fatia de entropia antes da qual, no fluxo de bits, o cabeçalho de fatia de entropia é restrito de ter sido escrito 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 com o uso de um valor de desvio e um valor de faixa determinados a partir das informações 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 com o uso de um valor de desvio determinado a partir das informações de localização de fatia de entropia. O decodificador de entropia pode avançar 1056, no fluxo de bits, para a localização de início de busca de fatia de entropia, e pode examinar 1058 o fluxo de bits para 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.
[0131] 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 atual bloco de reconstrução para decodificar por entropia. O decodificador de entropia pode determinar 1072 as informações de localização de fatia de entropia. Em algumas modalidades da presente invenção, as informações de localização de fatia de entropia, também chamadas de parâmetros de localização de fatia de entropia, podem ser sinalizadas no fluxo de bits, e o decodificador pode determinar 1072 as informações de fatia de entropia examinando-se o fluxo de bits. Em modalidades alternativas, as informações de localização de fatia de entropia podem não estar sinalizadas no fluxo de bits, mas podem ser determinadas 1072, pelo decodi- ficador, 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, as informações de localização de fatia de entropia podem ser definidas e determinadas 1072 por outro meio normativo, por exemplo, as informações podem ser especificadas em uma limitação de perfil, uma limitação de nível, uma limitação de aplicação ou outra limitação, ou as in-formações podem ser sinalizadas como informações suplementares ou sinalizadas por outro meio fora de alcance.
[0132] O decodificador de entropia pode calcular 1074 uma localização de inicio de busca de fatia de entropia antes da qual, no fluxo de bits, o cabeçalho de fatia de entropia é restrito de ter sido escrito 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 com o uso de um valor de desvio e um valor de faixa determinados a partir das informações 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 com o uso de um valor de desvio determinado a partir das informações de localização de fatia de entropia. O decodificador de entropia pode avançar 1076, no fluxo de bits, para a localização de início de busca de fatia de entropia e pode examinar 1078 o fluxo de bits para 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.
[0133] Os bits, no fluxo de bits, podem ser examinados 1078 em sequência iniciando na dita localização de início de busca de fatia de entropia.
[0134] Se 1080 um cabeçalho de fatia de entropia é 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 é identificado 1083, então o de- codificador de entropia pode encerrar 1084 a busca. Em algumas modalidades, o decodificador de entropia pode indicar um erro quando nenhum cabeçalho de fatia de entropia é identificado 1083.
[0135] 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 atual, para decodificar por entropia. O decodificador de entropia pode determinar 1102 as informações de localização de fatia de entropia. Em algumas modalidades da presente in- venção, as informações de localização de fatia de entropia, também chamadas de parâmetros de localização de fatia de entropia, podem ser sinalizadas no fluxo de bits, e o decodificador pode determinar 1102 as informações de fatia de entropia examinando-se o fluxo de bits. Em modalidades alternativas, as informações de localização de fatia de entropia podem não estar sinalizadas no fluxo de bits, mas podem ser determinadas 1102, pelo decodi- ficador, 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, as informações de localização de fatia de entropia podem ser definidas e determinadas 1102 por outro meio normativo, por exemplo, as informações podem ser especificadas em uma limitação de perfil, uma limitação de nível, uma limitação de aplicação ou outra limitação, ou as in-formações podem ser sinalizadas como informações suplementares ou sinalizadas por outro meio fora de alcance.
[0136] O decodificador de entropia pode calcular 1104 uma localização de inicio de busca de fatia de entropia antes da qual, no fluxo de bits, o cabeçalho de fatia de entropia é restrito de ter sido escrito pelo codificador (encoder). Em algumas modalidades da presente invenção, a localização de início de busca de fatia de entropia pode ser calculada 1104 com o uso de um valor de desvio e um valor de faixa determinados a partir das informações 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 com o uso de um valor de desvio determinado a partir das informações de localização de fatia de entropia. O decodificador de entropia pode avançar 1106, no fluxo de bits, para a localização de início de busca de fatia de entropia e pode examinar 1108 o fluxo de bits para um ca-beç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.
[0137] Os bits, no fluxo de bits, podem ser examinados 1108 em sequência iniciando na dita localização de início de busca de fatia de entropia. Se 1110 um cabeçalho de fatia de entropia é identificado 1111, então o de- codificador 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 é identificado 1113, e então se 1114 um critério de busca é satisfeito 1115, o decodificador de entropia pode encerrar 1116. Um critério de busca pode fornecer um padrão pelo qual uma determinação pode ser feita se localizações válidas para o início do cabeçalho de fatia de entropia permanecem a ser buscadas ou não. Em algumas modalidades (não mostradas), um critério de busca pode ser satisfeito se localizações válidas permanecem a ser examinadas. Em modalidades alternativas, um critério de busca pode ser satisfeito se não houver localizações válidas que permaneçam a ser examinadas 1115, e a busca pode encerrar 1116. Em algumas modalidades, o decodificador de entropia pode indicar um erro quando nenhum cabeçalho de fatia de entropia é identificado 1115. Se 1114 um critério de busca não for satisfeito 1117, o exame 1108 do fluxo de bits pode continuar após avançar 1118, no fluxo de bits para a próxima localização de busca.
[0138] Em algumas modalidades da presente invenção, um critério de busca pode estar relacionado a um valor de faixa, por exemplo, a localização do início de um cabeçalho de fatia de entropia pode ser restrito a uma faixa de 2p bits centralizada em Nk, em que k denota o valor de desvio, p denota o valor de faixa e N é o número de fatia de entropia em uma fatia de reconstrução. Nestas modalidades, a localização do início de o cabeçalho de fatia de entropia associada à fatia de entropia N pode ser restrita à faixa de Nk - p a Nk + p. Em algumas modalidades, um critério de busca pode estar relacionado a uma restrição, ou restrições, no tamanho de uma fatia de entropia. Em algumas modalidades, um critério de busca pode estar relacionado a uma combinação de restrições.
[0139] Em algumas modalidades da presente invenção, um codificador pode preencher uma fatia de entropia a fim de atender uma restrição na localização do próximo cabeçalho de fatia de entropia.
[0140] Em algumas modalidades da presente invenção, um codificador pode encerrar uma fatia de entropia antes que outras restrições de tamanho de fatia de entropia sejam atendidas a fim de atender uma restrição na localização do próximo cabeçalho de fatia de entropia.
[0141] Em algumas modalidades da presente invenção, quando a última fatia de entropia em uma fatia de reconstrução não contém o número de bits (ou bytes, em uma modalidade alinhada a byte) necessário para satisfazer a restrição na localização do próximo cabeçalho de fatia de entropia, sendo que um codificador pode preencher a última fatia de entropia na fatia de reconstrução para satisfazer a restrição na localização do próximo cabeçalho de fatia de entropia.
[0142] Em modalidades alternativas, um cabeçalho de fatia de entropia pode compreender um indicador de última fatia de entropia, em que o valor do indicador de última fatia de entropia pode indicar se a fatia de entropia associada ao cabeçalho de fatia de entropia é a última fatia de entropia em uma fatia de reconstrução ou não. Em algumas modalidades, um valor zero de indicador de última fatia de entropia pode estar associado à última fatia de entropia. Em modalidades alternativas, um valor um de indicador de última fatia de entropia pode estar associado à última fatia de entropia. Em algumas modalidades, quando o valor do indicador 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 subsequente pode ser localizado imediatamente a seguir da atual fatia de entropia sem preenchimento.
[0143] Tabela 7 mostra sintaxe e semânticas exemplificativas para sinalizar um indicador de última fatia de entropia, chamado de um "next_entropy_slice_flag." Em uma modalidade exemplificativa que compreende a sintaxe e as semânticas exemplificativas mostradas na Tabela 7, o indicador "next_entropy_slice_flag" sinaliza se há fatias de entropia adicionais para uma atual fatia de reconstrução. Se o indicador "next_entropy_slice_flag" indicar que não há fatias de entropia adicionais para a atual fatia de reconstrução, então a localização do próximo cabeçalho de fatia de entropia no fluxo de bits pode não ser restrita pelos parâmetros de localização de fatia de entropia.
[0144] Em algumas modalidades da presente invenção, a localização dos cabeçalhos de fatia de entropia pode ser organizada em um formato de árvore com o nó raiz apontando para uma localização de cabeçalho de fatia de entropia. Em algumas modalidades, a localização de cabeçalho de fatia de entropia apontado pelo nó raiz pode ser relativa. Em modalidades alternativas, a localização de cabeçalho de fatia de entropia apontado pelo nó raiz pode ser absoluta. Os nós restantes da árvore podem conter distâncias de desvio referentes a seu nó parente. A árvore pode ser projetada de acordo com uma restrição de projeto, por exemplo, para reduzir um tempo médio para determinar uma localização de cabeçalho de fatia de entropia, para limi- tar um tempo na pior das hipóteses exigido para determinar uma localização de cabeçalho de fatia de entropia, para sinalizar uma ordem preferencial de decodificação de fatia de entropia, para minimizar um custo de armazenamento para a árvore e outras restrições de projeto. Em algumas modalidades, o número de crianças de cada nó na árvore pode ser controlado com base em um nível desejado de paralelismo em uma determinação de localização de cabeçalho de fatia de entropia. Tabela 7: Tabela de sintaxe exemplificativa para Indicador de última fatia de entropia
[0145] Em algumas modalidades da presente invenção, os modelos de contexto podem ser reiniciados dentro de uma fatia de entropia toda vez que uma condição de reinicialização de modelo de contexto é atendida. Em algumas dessas modalidades, os valores aos quais os modelos de contexto podem ser reiniciados podem ter como base o modelo de contexto de uma unidade elementar vizinha dentro da fatia de entropia, e se a unidade elementar vizinha não está dentro da fatia de entropia, então valores padrão podem ser usados. Em modalidades alternativas, os modelos de contexto podem ser reiniciados para os valores padrão. Em modalidades ainda alternativas, os modelos de contexto podem ser reiniciados com base em um modelo de contexto cujo identificador pode ser sinalizado no fluxo de bits, sendo que o dito identificador indica um dentre uma pluralidade de modelos de contexto predefinidos. Um modelo de contexto predefinido pode depender de um ou mais parâmetros no fluxo de bits. Em modalidades exemplificati- vas, os modelos de contexto podem ser reiniciados com base em um valor "cabac_init_idc" sinalizado, no fluxo de bits, que indica um dentre uma pluralidade de modelos de contexto predefinidos.
[0146] Em algumas modalidades, uma Tabela de contexto pode ser usada para inicializar uma pluralidade de modelos de contexto, em que uma Tabela de contexto refere-se a um conjunto de modelos de contexto. Em algumas modalidades, o conjunto de modelos de contexto em uma Tabela de contexto pode ser submetido à adaptação com base em um ou mais parâmetros no fluxo de bits, por exemplo, um parâmetro de quantização, um parâmetro tipo fatia ou outro parâmetro.
[0147] Em uma modalidade exemplificativa ilustrada na Figura 34, os modelos de contexto podem ser reiniciados, dentro de uma fatia de entropia, quando um macrobloco atual é o primeiro macrobloco em uma fileira, além de ser reiniciado no macrobloco inicial em uma fatia de entropia. A Figura 34 retrata uma fatia de reconstrução exemplificativa 1200 que contém 48 ma- croblocos 1208 a 1255 particionados em três fatias de entropia: fatia de en- tropia "0" (mostrada em hachura transversal) 1202, fatia de entropia "1" (mostrada em branco) 1204 e fatia de entropia "2" (mostrada em hachura pontilhada) 1206. A fatia de entropia "0" 1202 contém 15 macroblocos 1208 a 1222. A fatia de entropia "1" 1204 contém 17 macroblocos 1223 a 1239, e a fatia de entropia "2" 1206 contém 16 macroblocos 1240 a 1255. Os macro- blocos nos quais os modelos de contexto podem ser reiniciados são indicados com uma borda preta espessa 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 fileira 1216, 1224, 1232, 1240 e 1248.
[0148] A unidade exemplificativa, por exemplo, o macrobloco, no início de uma fatia de entropia pode ser chamado de a unidade elementar de início de fatia. Por exemplo, para as fatias de entropia 1202, 1204 e 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 fileira em uma fatia de entropia pode ser chamada de uma unidade elementar de início de fileira, por exemplo, os macroblocos 1208, 1216, 1224, 1232, 1240 e 1248 na Figura 34.
[0149] Em algumas modalidades, os modelos de contexto podem ser reiniciados com base nos modelos de contexto de um macrobloco 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 reiniciados com base nos modelos de contexto do macrobloco acima do macrobloco atual se o macrobloco acima do macrobloco atual estiver na mesma fatia de entropia, mas fixado para os valores padrão se o macrobloco acima do macrobloco atual não estiver na mesma fatia de entropia.
[0150] Em outra modalidade exemplificativa, os modelos de contexto podem ser reiniciados, dentro de uma fatia de entropia, quando uma unidade elementar atual é a primeira unidade elementar em uma fileira. Em modalidades alternativas, a condição de reinicialização de modelo de contexto pode ter como base outros critérios, por exemplo, o número de binários processados dentro da fatia de entropia, o número de bits processados dentro da fatia, a localização espacial da unidade elementar atual e outros critérios.
[0151] Em algumas modalidades da presente invenção, um indicador de reinicialização de modelo de contexto pode ser usado para indicar se os modelos de contexto podem ser reiniciados dentro de uma fatia de entropia toda vez que uma condição de reinicialização de modelo de contexto é atendida, ou não. Em algumas modalidades, o indicador de reinicialização de modelo de contexto pode estar no cabeçalho de fatia de entropia. Em modalidades alternativas, o indicador de reinicialização de modelo de contexto pode estar no cabeçalho de fatia de reconstrução. Em algumas modalidades, o indicador de reinicialização de modelo de contexto pode ser um indicador binário, e a condição de reinicialização de modelo de contexto pode ser uma condição padrão. Em modalidades alternativas, o indicador de reini- cialização de modelo de contexto pode ser um indicador de múltiplos valores que indica adicionalmente a condição de reinicialização de modelo de contexto.
[0152] Em uma modalidade exemplificativa que compreende uma co-dificação adaptativa ao contexto, por exemplo, codificação CABAC, codificação CAV2V e outra codificação adaptativa ao contexto, um iniciador "lcu_row_cabac_init_flag" pode sinalizar se uma decodificação por entropia pode ser inicializada no início da maior fileira de unidade de codificação (LCU). Em algumas modalidades, uma LCU é uma generalização do concei- to de macrobloco usado em H.264 para uma codificação de vídeo de alta eficiência (HEVC), e uma figuração é dividida em fatias, em que uma fatia é feita de uma sequência de LCUs. Em modalidades alternativas, um LCU é o maior bloco de localizações de valor de pixel que pode ser representado 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 valor de modo de predição transmitido. Em algumas modalidades da presente invenção, um valor "1" de iniciador "lcu_row_cabac_init_flag" pode sinalizar que o contexto de codificação por entropia é reiniciado. Um contexto de codificação por entropia pode representar o conjunto de todos os modelos de contexto associados ao codificador de entropia. Em algumas modalidades da presente invenção, um valor "1" de iniciador "lcu_row_cabac_init_flag" pode sinalizar que o contexto de codificação por entropia é reiniciado e o escaneamento adaptativo é reiniciado. O escaneamento adaptativo pode se referir a um processo no qual um codec adapta uma ordenação de varredura de coeficientes de transformada com base em valores de coeficiente de transformada transmitidos anteriormente. A seção 7.6.1 no documento JCTVC JCTVC-B205_draft005, que é aqui incorporado a título de referência no presente documento em sua totalidade, descreve um exemplo em que uma varredura adaptativa escolhe entre duas ordens de varredura distintas com base nos coeficientes significantes no vizinho. Em uma modalidade, o escaneamento adaptativo pode ser reiniciado no início de cada fileira de LCU escolhendo-se uma ordem de varredura predefinida. Em uma modalidade, a ordenação de escaneamento é determinada gerando-se um mapa de significância de coeficiente, e os valores de coeficiente de transformada que corresponde a valores de significância de coeficiente maiores de que um valor predeterminado pode ser transmitido antes dos valores de coeficiente de transformada que correspondem a valores de significância de coeficiente menores do que o valor predeterminado ou equivalente aos mesmos. Em uma modalidade, os valores de significân- cia de coeficiente que correspondem a valores de coeficiente de transformada que são maiores do que um valor predeterminado podem ser aumentados de modo subsequente. 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 um valor predeterminado ou equivalentes ao mesmo podem ser diminuídos de modo subsequente. O processo de escaneamento adaptativo pode ser reiniciado fixando-se o mapa signifi- cante de coeficiente a um valor predefinido. Em algumas modalidades, o valor padrão, assumido quando o indicador não é enviado, para o indicador "lcu_row_cabac_init_flag" pode ser "0". Um indicador "lcu_row_cabac_init_idc_flag" pode sinalizar se os valores de cabac_init_idc forem transmitidos no início de cada fileira de LCU. Em algumas modalidades, quando o valor do indicador "lcu_row_cabac_init_idc_flag" é "1", os valores serão transmitidos no início de cada fileira de LCU. Em algumas moda-lidades, o valor padrão, assumido quando o indicador não é enviado, para o indicador "lcu_row_cabac_init_idc_flag" pode ser "0". Em algumas modalidades, um indicador "lcu_row_cabac_init_idc_flag" pode sinalizar se um valor de cabac_init_idc é transmitido para o LCU. Em algumas modalidades, quando um valor de cabac_init_idc não é transmitido para o LCU, então o contexto de codificação por entropia é reiniciado com o uso do valor anterior para cabac_init_idc no fluxo de bit. Em algumas modalidades da presente invenção, "lcu_row_cabac_init_flag" e "lcu_row_cabac_init_idc_flag" podem ser sinalizadas 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 uma sintaxe exemplificativa para essas modalidades. Em algumas modalidades da presente invenção, "lcu_row_cabac_init_flag" e "lcu_row_cabac_init_idc_flag" podem ser sinalizadas em um cabeçalho de fatia de entropia, por exemplo, quando o valor de "entropy_slice_flag" é "1". A Tabela 8 mostra uma sintaxe de cabeçalho de fatia exemplificativa, e a Tabela 9 mostra sintaxe de dados de fatia exemplificativa (coding_unit).
Tabela 8: Tabela de sintaxe exemplificativa para sinalizar a Inicialização de Codificação por Entropia no início da Fileira d e LCU Tabela 9: Tabela de sintaxe exemplificativa para sinalizar o Contexto Inicial para o LCU
[0153] Em outra modalidade exemplificativa que compreende a codificação adaptativa ao contexto, por exemplo, codificação por CABAC, codificação por CAV2V e outra codificação adaptativa ao contexto, um indicador "mb_row_cabac_init_flag" pode sinalizar se a decodificação por entropia pode ser inicializada no primeiro macrobloco em uma fileira. Em algumas modalidades da presente invenção, um valor "1" de indicador "mb_row_cabac_init_flag" pode sinalizar que o contexto de codificação por entropia é reiniciado no início de cada fileira de macrobloco. Em modalidades alternativas da presente invenção, um valor "1" de indicador "mb_row_cabac_init_flag" pode sinalizar que o contexto de codificação por entropia é reiniciado e o escaneamento adaptativo é reiniciado no início de cada fileira de macrobloco. Em algumas modalidades, o valor padrão, assumido quando o indicador não é enviado, para o indicador "mb_row_cabac_init_flag" pode ser "0." Um indicador "mb_row_cabac_init_idc_flag" pode sinalizar se valores de cabac_init_idc serão transmitidos no início de cada fileira de macrobloco. Em algumas modalidades, quando o valor do indicador "mb_row_cabac_init_idc_flag" é "1" os valores serão transmitidos no início de cada fileira de macrobloco. Em algumas modalidades, o valor padrão, assumido quando o indicador não é enviado, para o indicador "mb_row_cabac_init_idc_flag" pode ser "0." Em algumas modalidades, um indicador "cabac_init_idc_present_flag" pode sinalizar se um valor de cabac_init_idc é transmitido para o macrobloco. Em algumas modalidades, quando um valor de cabac_init_idc não é transmitido para o macrobloco, então o contexto de codificação por entropia é reiniciado com o uso do valor anterior para cabac_init_idc no fluxo de bit. Em algumas modalidades da presente invenção, o indicador "mb_row_cabac_init_flag" e o indicador "mb_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". Em algumas modalidades da presente invenção, o indicador "mb_row_cabac_init_flag" e o indicador "mb_row_cabac_init_idc_flag" podem ser sinalizados em um cabeçalho de fatia de entropia, por exemplo, quando o valor de "entropy_slice_flag" é "1". A Tabela 10 e a Tabela 11 mostram uma sintaxe exemplificativa para essas modalidades. A Tabela 10 mostra uma sintaxe de cabeçalho de fatia exemplificativa e a Tabela 11 mos- tra uma sintaxe de dados de fatia exemplificativa (coding_unit). Tabela 10: Tabela de sintaxe exemplificativa para sinalizar a Inicialização de Codificação por Entropia no início da fileira de macrobloco Tabela 11: Tabela de sintaxe exemplificativa para sinalizar o Contexto Inicial para o Macrobloco
[0154] Em algumas modalidades da presente invenção, as localizações em um fluxo de bits das fatias de entropia podem ser assinaladas no fluxo de bits. Em algumas modalidades, um indicador pode ser usado para sinalizar que as localizações no fluxo de bits das fatias de entropia serão sinalizadas no fluxo de bits. Algumas modalidades exemplificativas podem compreender um "entropy_slice_locations_flag" que se for "verdadeiro" pode indicar que as localizações no fluxo de bits dos cabeçalhos de fatia de entropia serão assinalados no fluxo de bits. Em algumas modalidades, os dados de localização podem ser codificados de modo 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 por figuração.
[0155] Em algumas modalidades da presente invenção, as localiza- ções em um fluxo de bits das linhas de LCU podem ser sinalizadas no fluxo de bits. Em algumas modalidades, um indicador pode ser usado para sinalizar que a localização no fluxo de bits da primeira LCU em cada linha será sinalizada no fluxo de bits. Algumas modalidades exemplificativas podem compreende um "lcu_row_location_flag" que se for "verdadeiro" pode indicar que a localização no fluxo de bits da primeira LCU em cada linha será sinalizada no fluxo de bits. Em algumas modalidades, os dados de localização podem ser codificados de modo 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 por fatia de reconstrução.
[0156] A Tabela 12 mostra uma sintaxe exemplificativa para sinalizar as localizações no fluxo de bits das linhas de LCU e das fatias de entropia. Para essa sintaxe exemplificativa, as semânticas são: • "entropy_slice_locations_flag" sinaliza se a localização de ca-beçalho de fatia de entropia é transmitida. Se o valor de "entro- py_slice_locations_flag" for estabelecido a "1", então, a localização de cabeçalho de fatia de entropia é transmitida, de outra maneira, não é transmitida. O valor padrão para "entropy_slice_locations_flag" é "0" . • "num_of_entropy_slice_minus 1" 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 anterior. • "lcu_row_locations_flag" sinaliza se as informações de linha de LCU estão sendo transmitidas ou não. Se o valor de "lcu_row_locations_flag" for "1", então as informações de localização de linha de LCU são transmitidas, de outra maneira não são transmitidas. O va lor padrão para "lcu_row_locations_flag" é "0" . • num_of_lcu_rows_minus l "" 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 da linha de LCU anterior.
[0157] Em algumas modalidades da presente invenção, "lcu" na Tabela 12 pode ser substituído 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_minus 1" e "lcu_row_offset[i]" na Tabela 12 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_minus 1" e "mb_row_offset[i]", respectivamente.
Tabela 12: Tabela 12 de Sintaxe Exemplificativa para Sinalizar as Localizações no Fluxo de Bits da Primeira LCU em um Linha.
[0158] A transmissão eficaz de dados de resíduo de um codificador para um decodificador pode ser realizada sinalizando-se a localização de coeficientes de transformação de valor zero e os valores de nível dos coeficientes de transformação não zero para uma unidade elementar, por exemplo, um macrobloco. Muitos sistemas de codificação podem tentar localizar os coeficientes de transformação de valor zero na extremidade dos dados de resíduo para a unidade elementar, através disso permitindo o uso de um código de "extremidade de bloco" após o último coeficiente de transformação significante para sinalizar eficazmente que os valores de coeficiente de transformação restantes são zero.
[0159] Alguns sistemas de codificação podem rastrear as localizações dos coeficientes de transformação de valor zero nos dados de resíduo transmitidos anteriormente para uma unidade elementar processada anteriormente, que pode permitir que as localizações com os coeficientes de transformação de valor zero anteriores sejam transmitidas por ultimo nos dados de resíduo subsequentes. Alternativamente, alguns sistemas de codificação podem rastrear as localizações de coeficientes de transformação de valor não zero nos dados de resíduo transmitidos anteriormente. Embora isso possa melhorar a eficácia de codificação, torna necessário decodificar completamente os dados de resíduo anteriores a fim de decodificar os dados de resíduo atuais devido ao fato de que a codificação de dados de resíduo usa modelos de contexto, também referidos como modelos de probabilidade, que são determinados por um identificador de coeficiente de transformação que pode ser somente determinado com o conhecimento das localizações que são identificadas para serem transmitidas na extremidade dos dados de resíduo.
[0160] Por exemplo, conforme mostrado na Figura 35 , se a adaptação de varredura tiver gerado uma ordem de varredura de: S = {co- eff0,coeff10,coeff1,...} para o processo de codificação por entropia associado a uma unidade elementar atual, em que coeffi denota o i-ésimo coeficiente de transformação, então o contexto que pode ser denotado ctxt10 que corresponde ao coeff0 precisa ser buscado para codificar o coeficiente de trans- formação coeff0. Depois, o contexto ctxt10 que corresponde ao coeff10 precisa ser buscado para codificar o coeficiente de transformação coeff10 e assim por diante. Assim, uma ordem temporal na codificação das unidades elementares pode ser imposta devido à necessidade de conhecer a ordem de varredura S = {coeff0,coeff10,coeff1,...} , que não pode ser obtido até as unidades elementares anteriores terem sido codificadas.
[0161] Em algumas modalidades da presente invenção, a fim de permitir a codificação paralela de fatias de entropia, a varredura adaptativa pode ser reconfigurada para uma ordem de varredura padrão de fatia de entropia na unidade elementar de início na fatia de cada fatia de entropia, através disso permitindo separar as fatias de entropia a serem codificadas em paralelo.
[0162] Em algumas modalidades da presente invenção, uma ordem de varredura de um cálculo de varredura adaptativo pode ser estabelecida a uma ordem de varredura conhecida, também referida como uma ordem de varredura padrão de linha na unidade elementar de início na linha de cada linha de LCU dentro de uma fatia de entropia .
[0163] Em modalidades alternativas da presente invenção, a ordem de varredura de coeficiente de transformação de bloco e o modelo de contexto correspondente, também referido como contexto, que pode ser buscado para codificar um coeficiente de transformação podem ser desacoplados, através disso permitindo a codificação paralela. Nessas modalidades, um coeficiente de transformação localizado em uma primeira localização no fluxo de bits pode ser associado com base em sua localização em relação a outros coeficientes de transformação no fluxo de bits, com um contexto localizado de modo correspondente em uma ordem de busca de contexto. Nessas modalidades, uma ordem de busca de contexto que pode ser denotada F = {ctx- tA,ctxtB,ctxtC,...} em que ctxt denota um contexto que não é associado a uma localização de coeficiente de transformação no domínio de transformação, mas ao invés disso é associado à localização relativa do coeficiente de transformação no fluxo de bits pode ser predefinida . Assim, para uma ordem de varredura de coeficiente de transformação exemplificativa S = { co- eff0,coeff10,coeff1,...} , o processo de codificação pode codificar coeff0 com ctxtA, coeff10 com ctxtB, coeff1 com ctxtC e assim por diante. Nessas modalidades, o processo de codificação por entropia pode operar independente da ordem de varredura. Algumas modalidades de codificador podem ser descritas em relação à Figura 36. Um codificador pode buscar 1280 o próximo coeficiente de transformação a ser codificado e pode buscar 1282 o próximo contexto a partir de uma lista de busca predefinida de contextos. O coeficiente de transformação buscado pode ser codificado por entropia 1284 com o uso do contexto buscado e uma determinação 1286 pode ser feita quanto a se há ou não coeficientes de transformação significantes restantes para encodificar . Se houver 1287 coeficientes de transformação significan- tes restantes para serem codificados, o próximo coeficiente de transformação pode ser buscado 1280 e o processo pode continuar. Se não houver 1289, então o processo pode terminar 1290. Algumas modalidades do deco- dificador podem ser descritas em relação à Figura 37. Um decodificador pode buscar 1300 o próximo contexto e decodificar por entropia 1302 o próximo coeficiente de transformação significante do fluxo de bits com o uso do contexto buscado. O coeficiente de transformação decodificado pode ser armazenado 1304 e uma determinação 1306 pode ser feita quanto a se há ou não coeficientes de transformação significantes restantes a serem decodificados. Se houver 1307, então o próximo contexto pode ser buscado 1300 e o processo pode continuar. Se não houver 1309, então o processo pode terminar 1310.
[0164] 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 sinalizada explicitamente. No início de uma fatia de entropia, a ordem de varredura pode ser estabelecida a 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 como uma mensagem não normativa, por exemplo, uma mensagem SEI ou outra mensagem não normativa.
[0165] 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 sinalizada explicitamente. No início de uma linha de LCU em uma fatia de entropia, a ordem de varredura pode ser estabelecida a 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 como uma mensagem não normativa, por exemplo, uma mensagem SEI ou outra mensagem não normativa.
[0166] Ainda em modalidades alternativas da presente invenção, no começo de uma fatia de entropia, a ordem de varredura de coeficiente pode ser estabelecida à ordem de varredura de uma unidade elementar decodificada anteriormente. Em algumas modalidades, a ordem de varredura pode ser estabelecida à ordem de varredura usada na unidade elementar acima. Em algumas modalidades, a ordem de varredura pode ser estabelecida à ordem de varredura usada na unidade elementar acima e à direita.
[0167] Ainda em modalidades alternativas da presente invenção, no começo de uma linha de LCU em uma fatia de entropia, a ordem de varredura de coeficiente pode ser estabelecida à ordem de varredura de uma unidade elementar decodificada anteriormente. Em algumas modalidades, a ordem de varredura pode ser estabelecida à ordem de varredura usada na unidade elementar acima. Em algumas modalidades, a ordem de varredura pode ser estabelecida à ordem de varredura usada na unidade elementar acima e à direita.
[0168] Em algumas modalidades da presente invenção, uma fatia P pode ser substituída por uma fatia B prevista antecipadamente, que pode resultar em uma eficácia de compressão maior devido aos graus de liberdade maiores concedidos às fatias B e à natureza de múltiplas hipóteses das previsões B. As fatias de referência usadas em uma fatia B prevista antecipadamente são sempre de quadros/figurações temporalmente anteriores conforme distintas de uma fatia B regular em que uma referência pode ser escolhida a partir de quadros/figurações futuros e/ou passados. Assim, uma fatia B prevista antecipadamente pode compreender dados de resíduo com características estatísticas que se diferem daquelas de uma fatia B regular.
[0169] 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 para quadros B previstos antecipadamente somente. De acordo com outro aspecto da presente invenção, a inicialização do contexto pode ser adaptada com base no parâmetro de quantização que pode ser denotado QP usado para codificar os dados de vídeo atuais.
[0170] Em algumas modalidades da presente invenção, um codificador pode substituir uma fatia P com uma fatia B prevista antecipadamente e pode sinalizar a ocorrência da substituição. Em algumas modalidades da presente invenção, a sinalização pode ser explícita. Em modalidades alter- nativas da presente invenção, a sinalização pode ser implícita. Em algumas modalidades da presente invenção que compreende a sinalização explícita, um indicador pode ser enviado ao decodificador sempre que uma fatia P é substituída por uma fatia B prevista antecipadamente. Em algumas dessas modalidades, o indicador pode ser sinalizado como uma sintaxe normativa. Em modalidades alternativas, o indicador pode ser sinalizado como uma mensagem não normativa, por exemplo, uma mensagem SEI ou outra mensagem não normativa.
[0171] Em algumas modalidades da presente invenção que compreendem a sinalização implícita, uma ocorrência de uma fatia P substituída por uma fatia B prevista antecipadamente pode ser inferida em um decodificador quando as fatias de referência (quadros/ figurações) usadas na predição são todas fatias passadas (quadros/ figurações) com base na ordem em que as fatias devem ser exibidas. Em algumas modalidades, a ocorrência de uma fatia P substituída por uma fatia B prevista antecipadamente B pode ser inferida nas listas de figuração de referência, por exemplo, RefPicList0 e RefPi- cList1 em AVC contêm todas as figurações do passado e também contêm o mesmo conjunto de figurações. Em algumas modalidades, a ordem na Re- fPicList0 e na RefPicList1 não precisa ser idêntica para conter o mesmo conjunto de figurações. Em uma modalidade exemplificativa, quando a lista de figuração de referência RefPicList1 tem mais que uma entrada e a RefPi- cList1 é idêntica à lista de figuração de referência RefPicList0, então as primeiras duas entradas RefPicList1[0] e RefPicList1[ l ] podem ser comutadas .
[0172] Quando a ocorrência de uma fatia P substituída por uma fatia B prevista anteriormente é indicada, o contexto para uma fatia de entropia pode ser inicializado com o uso de um método de fatia P. Em outra modalida- de, o contexto de uma fatia pode ser inicializado com o uso de um método de fatia P.
[0173] A Tabela 13 mostra a sintaxe exemplificativa para sinalizar ex-plicitamente que o contexto inicial de uma fatia B deve ser sinalizado com o uso de um método de fatia P. Nas modalidades exemplificativas associadas à Tabela 13 , "cabac_init_P_flag" é um indicador que indica para a inicialização de codificador de entropia de fatia B se um método de fatia B ou um método de fatia P deve ser escolhido . Em algumas modalidades, se o valor do indicador "cabac_init_P_flag" for "0", então um método de fatia B é escolhido para a inicialização e se o valor do indicador "cabac_init_P_flag" for "1", então um método de fatia P é escolhido para a inicialização.
Tabela 13: Tabela de Sintaxe Exemplificativa que Mostra a Sinalização Explícita da Inicialização de fatia B Com o uso de um Método de fatia P
[0174] Em algumas modalidades da presente invenção, as situações de inicialização de contexto para uma fatia de entropia podem ter base na quantidade de binários processados por um codificador de entropia. Um codificador de entropia pode convergir mais rapidamente para as estatísticas de fonte quando inicializado corretamente. A convergência mais rápida pode resultar em menos bits sendo desperdiçados e, assim, uma eficácia de compressão maior. Em algumas modalidades da presente invenção, a quantidade de binários que pode ser transmitida pode ser estimada e quando a quantidade de binários estimada cumpre um primeiro critério, então um primeiro método de inicialização pode ser usado. Quando a quantidade de binários estimada não cumpre um primeiro critério, um segundo método de inicialização pode ser usado.
[0175] Uma modalidade exemplificativa da presente invenção pode ser entendida em relação à Figura 38. Nessas modalidades, a quantidade de binários processados pode ser estimada 1320. A quantidade estimada de binários processados, denotado Nbins, pode ser comparada 1322 a um valor limite, denotado Tbins. Conforme a quantidade de binários processados aumenta, a precisão preditiva da inicialização de contexto com base em QP pode diminuir . Uma precisão preditiva maior para a inicialização de contexto pode levar a uma eficácia de compressão melhor. Se a quantidade estimada de binários processados for 1324 maior que o valor limite, então um único valor de inicialização de contexto pode ser escolhido 1326. Se a quantidade estimada de binários processados não for 1328 maior que o valor limite, então o contexto pode ser inicializado adaptativamente 1330 com base em QP. O valor de inicialização de contexto único pode ser selecionado com base no treinamento e otimização da métrica escolhida, por exemplo, erro quadrado, entropia relativa e outras métricas de distância. Uma inicialização com base em QP adaptativa pode ser uma adaptação afim da forma CA * QP + CB , em que CA e CB são constantes . Em algumas modalidades, a quantidade de binários pode ser estimada com base na quantidade de binários processados na fatia anterior. Em algumas modalidades, a quantidade de binários pode ser estimada com base na quantidade de binários processados no quadro anterior.
[0176] Em algumas modalidades da presente invenção descritas em relação à Figura 39 , que representa pictoricamente 1340 uma faixa de quantidade de binários processados, faixas disjuntas múltiplas (três mostradas 1342, 1344, 1346) da quantidade de binários processados podem ser determinadas e descritas em relação a uma quantidade de limites (duas mostradas 1348, 1350) e o valor de inicialização de contexto pode ser selecionado com base em dentro de qual dentre as faixas 1342, 1344, 1346 a quantidade estimada de binários processados está, por exemplo, para três faixas 1342, 1344, 1346, quando Nbins < Tmin 1342, o contexto pode ser inicializado adaptativamente com base em QP, quando Tmin < Nbins < T1 1344, o contexto pode ser inicializado a um primeiro valor de contexto fixo e quando T1< Nbins 1346, o contexto pode ser inicializado a um segundo va-lor de contexto fixo diferente.
[0177] Outra modalidade exemplificativa alternativa da presente invenção pode ser entendida em relação à Figura 40. Nessa modalidade exemplificativa, o valor de QP pode ser determinado 1400 e examinado 1402 em relação a um valor limite, denotado TQP. Em geral, conforme o QP diminui a quantidade de binários processados pode aumentar. Se QP não for 1404 menos que esse valor limite, então o contexto pode ser inicializado adaptativamente 1406 com base em QP. Se o valor de QP for 1408 menos que o valor limite, então um único valor de inicialização de contexto pode ser escolhido 1410. O valor de inicialização de contexto único pode ser selecionado com base no treinamento e otimização da métrica escolhida, por exemplo, erro quadrado, entropia relativa e outras métricas de distância.
[0178] Em algumas modalidades da presente invenção, faixas disjuntas múltiplas de QP podem ser determinadas e o valor de inicialização de contexto pode ser selecionado com base em dentro de qual dentre as faixas o valor de QP está.
[0179] A Tabela 14 mostra uma comparação de desempenho de distorção de taxa para a codificação completamente intra. A primeira comparação mostrada nas duas subcolunas da coluna três é uma comparação com o uso do software H .264 /AVC Modelo de Junção (JM), versão 1 3.0, entre a codificação que usa múltiplas fatias, em que a decodificação por entropia e a reconstrução de macrobloco para uma fatia não dependem de outras fatias e a codificação que não usa nenhuma fatia. Em média, para a mesma taxa de bit, a qualidade é degradada por -0,3380 dB codificando com o uso de múltiplas fatias ao invés de não usar nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bit é aumentada por 7% codificando com o uso de múltiplas fatias ao invés de não usar nenhuma fatia.
[0180] A segunda comparação, mostrada nas duas subcolunas da coluna quatro, é uma comparação entre a codificação com o uso de uma fatia de reconstrução particionada, de acordo com as modalidades da presente invenção, em múltiplas fatias de entropia (duas linhas de macroblocos por fatia de entropia) e a codificação com o uso de JM 13.0 sem nenhuma fatia. Em média, para a mesma taxa de bit, a qualidade é degradada por -0,0860 dB com o uso de uma fatia de reconstrução com múltiplas fatias de entropia ao invés da codificação que não usa nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bit é aumentada por 1,83% pela codificação com o uso de uma fatia de reconstrução com múltiplas fatias de entropia ao invés da codificação que não usa nenhuma fatia. Tabela 14: Comparação do desempenho de distorção de taxa - codificação completamente intra
[0181] A Tabela 15 mostra uma comparação de desempenho de distorção de taxa para toda codificação IBBP. A primeira comparação mostrada nas duas subcolunas da coluna três é uma comparação com o uso do software H .264 /AVC Modelo de Junção (JM), versão 13.0, entre a codificação que usa múltiplas fatias, em que a decodificação por entropia e a reconstrução de macrobloco para uma fatia não dependem de outras fatias e a codificação que não usa nenhuma fatia. Em média, para a mesma taxa de bit, a qualidade é degradada por -0,5460 dB codificando com o uso de múltiplas fatias. Em média, para o mesmo nível de qualidade, a taxa de bit é aumen- tada por 21,41% codificando com o uso de múltiplas fatias ao invés de não usar nenhuma fatia.
[0182] A segunda comparação, mostrada nas duas subcolunas da coluna quatro, é uma comparação entre a codificação com o uso de uma fatia de reconstrução particionada, de acordo com as modalidades da presente invenção, em múltiplas fatias de entropia (duas linhas de macroblocos por fatia de entropia) e a codificação com o uso de JM 13.0 sem nenhuma fatia. Em média, para a mesma taxa de bit, a qualidade é degradada por -0,31 dB com o uso de uma fatia de reconstrução com múltiplas fatias ao invés da codificação que não usa nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bit é aumentada por 11,45% pela codificação com o uso de uma fatia de reconstrução com múltiplas fatias de entropia ao invés da codificação que não usa nenhuma fatia. Tabela 15: Comparação do desempenho de distorção de taxa - codificação IBBP
[0183] Comparando os resultados, a codificação com o uso de múltiplas fatias de entropia em uma fatia de reconstrução fornece uma economia de taxa de bit de 5,17% e 9,96% para a codificação completamente intra e IBBP, respectivamente, através da codificação com o uso de fatias, em que a decodificação por entropia e a reconstrução de macrobloco para uma fatia não depende de outras fatias, embora ambas permitam a decodificação paralela.
[0184] A Tabela 16 mostra uma comparação de desempenho de distorção de taxa para codificação completamente intra e IBBP. Nessa tabela, a comparação é uma comparação entre a codificação que não usa nenhuma fatia e a codificação que usa uma fatia de reconstrução particionada em fatias de entropia, de acordo com as modalidades da presente invenção, de 26k binários de tamanho máximo por fatia de entropia. A primeira comparação, mostrada nas duas subcolunas da coluna dois, é uma comparação que usa a codificação completamente intra. Em média, para a mesma taxa de bit, a qualidade é degradada por -0,062 dB pela codificação que usa uma fatia de reconstrução com múltiplas fatias. Em média, para o mesmo nível de qualidade, a taxa de bit é aumentada por 1,86% pela codificação com o uso de uma fatia de reconstrução com múltiplas fatias de entropia. Assim, a codificação completamente intra que usa fatias de entropia de 26k binários de tamanho máximo por fatia de entropia, há uma economia de taxa de bit média de aproximadamente 0,64% sobre essa dos tamanhos de fatia de entropia fixos de duas linhas de macroblocos.
[0185] A segunda comparação, mostrada nas duas subcolunas da coluna três, é uma comparação que usa a codificação IBBP. Em média, para a mesma taxa de bit, a qualidade é degradada por 0,022 dB com o uso de uma fatia de reconstrução com múltiplas fatias ao invés da codificação que não usa nenhuma fatia. Em média, para o mesmo nível de qualidade, a taxa de bit é aumentada por 0,787% pela codificação com o uso de uma fatia de reconstrução com múltiplas fatias de entropia ao invés da codificação que não usa nenhuma fatia. Assim, a codificação IBBP que usa fatias de entropia de 26k binários de tamanho máximo por fatia de entropia, há uma economia de taxa de bit média de aproximadamente 10,66% sobre essa dos tamanhos de fatia de entropia fixos de duas linhas de macroblocos. Tabela 16: Comparação do desempenho de distorção de taxa - codificação completamente intra e IBBP que usa fatias de entropia com menos que 26k binários por fatia de entropia
[0186] 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 é menos que uma quantidade máxima de binários pode fornecer uma economia de taxa de bit considerável sobre as fatias de entropia de uma quantidade fixa de macroblocos .
[0187] Embora os gráficos e diagramas nas figuras possam mostrar uma ordem específica de execução, é entendido que a ordem de execução pode se diferir dessa que é retratada. Por exemplo, a ordem de execução dos blocos pode ser alterada em relação à ordem mostrada. Também, como um exemplo adicional, dois ou mais blocos mostrados em sucessão em uma figura podem ser executados concomitantemente ou com ocorrência parcial. É entendido por aqueles versados na técnica que software, hardware e/ou firmware podem ser criados por um versado na técnica para executar as várias funções lógicas descritas no presente documento.
[0188] Algumas modalidades da presente invenção podem compreender um produto de programa de computador que compreende um meio de armazenamento legível por computador que tem instruções armazenadas no mesmo / em que pode ser usado para programar um sistema de computação para realizar quaisquer recursos e métodos descritos no presente documento. Os meios de armazenamento legíveis por computador exemplifica- tivos podem incluir, porém sim limitação, dispositivos de memória flash, meios de armazenamento de disco, por exemplo, disquetes, discos ópticos, discos magneto-ópticos, Discos Versáteis Digitais (DVDs), Discos Compactos (CDs), microunidades e outros meios de armazenamento de disco, Memória de Somente Leitura (ROMs), Memória de Somente Leitura Programável (PROMs), Memória de Somente Leitura Programável Apagável (EPROMS), Memória de Somente Leitura Programável Eletricamente Apagável (EEPROMs) , Memória de Acesso Aleatório (RAMS), Memória de Acesso Aleatório de Vídeo (VRAMs), Memória de Acesso Aleatório Dinâmica (DRAMs) e qualquer tipo de meio ou dispositivo adequado para armazenar instruções e/ou dados.
[0189] Os termos e expressões que foram empregados no relatório descritivo antecedente são usados no mesmo como termos de descrição e não de limitação e não há nenhuma intenção no uso de tais termos e expressões de excluir a equivalência dos recursos mostrados e descritos ou porções dos mesmos, sendo reconhecido que o escopo da invenção é definido e limitado somente pelas reivindicações que seguem.
Claims (12)
1. Método para decodificar um fluxo de bits de vídeo, CARACTERIZADO pelo fato de que compreende: decodificar, em um cabeçalho de fatia associado a uma imagem, um primeiro elemento de sintaxe com um valor inteiro indicando um número dentre uma pluralidade de fatias de entropia definindo uma primeira fatia, em que cada uma das fatias de entropia contém uma pluralidade de maiores unidades de codificação (LCUs); decodificar um segundo elemento de sintaxe no cabeçalho da fatia indicando um deslocamento com um índice i, em que o índice i tem como intervalo de 0 ao valor inteiro do primeiro elemento de sintaxe menos 1 e o deslocamento indica, em uma unidade de bytes, uma distância entre (i) uma fatia de entropia dentre a pluralidade de fatias de entropia na primeira fatia no fluxo de bits de vídeo e (ii) uma fatia de entropia que precede a uma fatia de entropia dentre a pluralidade de fatias de entropia no fluxo de bits de vídeo; decodificar um terceiro elemento de sintaxe no cabeçalho de fatia indicando um tipo de fatia da primeira fatia; em circunstâncias onde o terceiro elemento de sintaxe indica que o tipo de fatia da primeira fatia é uma fatia B, decodificar um sinalizador no cabeçalho de fatia indicando um método de inicialização de um contexto de Codificação Aritmética Binária Adaptativa Contextual (CABAC), em que em circunstâncias onde o sinalizador decodificado indica um primeiro valor, inicializar o contexto CABAC usando um primeiro método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia B, e em circunstâncias onde o sinalizador decodificado indica um segundo valor, inicializar o contexto CABAC utilizando um segundo método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia B; em circunstâncias onde o terceiro elemento de sintaxe indica o tipo de fatia da primeira fatia é uma fatia P, inicializar o contexto CABAC usando um método de inicialização dentre os primeiro e segundo métodos de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia P; e em circunstâncias onde o terceiro elemento de sintaxe indica o tipo de fatia da primeira fatia é uma fatia I, inicializar o contexto CABAC utilizando um terceiro método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia I, em que o terceiro método de inicialização é diferente do primeiro método de inicialização e do segundo método de inicialização.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o fluxo de bits é decodificado utilizando um método de inicialização dentre os primeiro e o segundo métodos de inicialização com base, pelo menos em parte, no sinalizador decodificado indicando um valor dentre o primeiro e o segundo valor.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que decodificar o fluxo de bits usando um método de inicialização dentre os primeiro e o segundo métodos de inicialização inclui decodificar elementos de sintaxe codificados por CABAC de uma LCU dentre a pluralidade de LCUs com o contexto CABAC inicializados usando o um método de inicialização dentre o primeiro e o segundo método de inicialização.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que os elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica o particionamento da uma LCU.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que os elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica modos de predição do particio- namento da uma LCU.
6. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica coeficientes de transformada do particionamento da uma LCU.
7. Aparelho para decodificar um fluxo de bits de vídeo, CARACTE-RIZADO pelo fato de que compreende: pelo menos um processador; pelo menos uma memória, incluindo instruções, a memória e as ins-truções configuradas para, trabalhando com o processador, fazer com que o aparelho execute pelo menos o seguinte: decodificação, em um cabeçalho de fatia associado a uma imagem, de um primeiro elemento de sintaxe com um valor inteiro indicando um número dentre uma pluralidade de fatias de entropia definindo uma primeira fatia, em que cada uma das fatias de entropia contém uma pluralidade de maiores unidades de codificação (LCUs); decodificação de um segundo elemento de sintaxe no cabeçalho da fatia indicando um deslocamento com um índice i, em que o índice i tem como intervalo de 0 ao valor inteiro do primeiro elemento de sintaxe menos 1 e o deslocamento indica, em uma unidade de bytes, uma distância entre (i) uma fatia de entropia dentre a pluralidade de fatias de entropia na primeira fatia no fluxo de bits de vídeo e (ii) uma fatia de entropia que precede a uma fatia de entropia dentre a pluralidade de fatias de entropia no fluxo de bits de vídeo; decodificação de um terceiro elemento de sintaxe no cabeçalho de fatia indicando um tipo de fatia da primeira fatia; em circunstâncias onde o terceiro elemento de sintaxe indica que o tipo de fatia da primeira fatia é uma fatia B, decodificação de um sinalizador no cabeçalho de fatia indicando um método de inicialização de um contexto de Codificação Aritmética Binária Adaptativa Contextual (CABAC), em que em circunstâncias onde o sinalizador decodificado indica um primeiro valor, inicialização do contexto CABAC usando um primeiro método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia B, e em circunstâncias onde o sinalizador decodificado indica um segundo valor, inicialização do contexto CABAC utilizando um segundo método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia B; em circunstâncias onde o terceiro elemento de sintaxe indica o tipo de fatia da primeira fatia é uma fatia P, inicialização do contexto CA- BAC usando um método de inicialização dentre os primeiro e segundo métodos de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia P; e em circunstâncias onde o terceiro elemento de sintaxe indica o tipo de fatia da primeira fatia é uma fatia I, inicialização do contexto CA- BAC utilizando um terceiro método de inicialização na primeira LCU de cada fatia de entropia dentre a pluralidade de fatias de entropia na fatia I, em que o terceiro método de inicialização é diferente do primeiro método de inicialização e do segundo método de inicialização.
8. Aparelho, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a memória e as instruções são configuradas para, trabalhando com o processador, fazer com que o aparelho decodifique o fluxo de bits utilizando um método de inicialização dentre os primeiro e o segundo métodos de inicialização com base, pelo menos em parte, no sinalizador decodificado indicando um valor dentre o primeiro e o segundo valor.
9. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o processador de decodificação de hardware está configurado para decodificar elementos de sintaxe codificados por CABAC de uma LCU dentre a pluralidade de LCUs com o contexto CABAC inicializados usando o um método de inicialização dentre o primeiro e o segundo método de inicialização.
10. Aparelho, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que os elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica o particionamento da uma LCU.
11. Aparelho, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que os elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica modos de predição do par- ticionamento da uma LCU.
12. Aparelho, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que elementos de sintaxe codificados por CABAC da uma LCU incluem um elemento de sintaxe que indica coeficientes de transformada do particionamento da uma LCU.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/896,778 US9313514B2 (en) | 2010-10-01 | 2010-10-01 | Methods and systems for entropy coder initialization |
US12/896,778 | 2010-10-01 | ||
PCT/JP2011/073156 WO2012043887A1 (en) | 2010-10-01 | 2011-09-30 | Methods and systems for entropy coder initialization |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112013007383A2 BR112013007383A2 (pt) | 2016-07-12 |
BR112013007383B1 true BR112013007383B1 (pt) | 2021-11-30 |
Family
ID=45889811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112013007383-7A BR112013007383B1 (pt) | 2010-10-01 | 2011-09-30 | Método e aparelho para decodificar um fluxo de bits de vídeo |
Country Status (4)
Country | Link |
---|---|
US (4) | US9313514B2 (pt) |
JP (3) | JP5551829B2 (pt) |
BR (1) | BR112013007383B1 (pt) |
WO (1) | WO2012043887A1 (pt) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014043906A1 (en) * | 2012-09-24 | 2014-03-27 | Intel Corporation | Histogram segmentation based local adaptive filter for video encoding and decoding |
US6882685B2 (en) * | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
US8942289B2 (en) * | 2007-02-21 | 2015-01-27 | Microsoft Corporation | Computational complexity and precision control in transform-based digital media codec |
US9172968B2 (en) | 2010-07-09 | 2015-10-27 | Qualcomm Incorporated | Video coding using directional transforms |
WO2012011860A1 (en) * | 2010-07-21 | 2012-01-26 | Telefonaktiebolaget L M Ericsson (Publ) | Picture coding and decoding |
US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
US20120163457A1 (en) * | 2010-12-28 | 2012-06-28 | Viktor Wahadaniah | Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus |
US10992958B2 (en) * | 2010-12-29 | 2021-04-27 | Qualcomm Incorporated | Video coding using mapped transforms and scanning modes |
JP2012151576A (ja) * | 2011-01-18 | 2012-08-09 | Hitachi Ltd | 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置 |
US9215473B2 (en) | 2011-01-26 | 2015-12-15 | Qualcomm Incorporated | Sub-slices in video coding |
US8798139B1 (en) | 2011-06-29 | 2014-08-05 | Zenverge, Inc. | Dual-pipeline CABAC encoder architecture |
US9258565B1 (en) * | 2011-06-29 | 2016-02-09 | Freescale Semiconductor, Inc. | Context model cache-management in a dual-pipeline CABAC architecture |
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 |
US9060173B2 (en) * | 2011-06-30 | 2015-06-16 | Sharp Kabushiki Kaisha | Context initialization based on decoder picture buffer |
US20130101047A1 (en) * | 2011-10-19 | 2013-04-25 | Sony Corporation | Context reduction of significance map coding of 4x4 and 8x8 transform coefficient in hm4.0 |
US9584819B2 (en) | 2011-10-24 | 2017-02-28 | Qualcomm Incorporated | Grouping of tiles for video coding |
US9124895B2 (en) | 2011-11-04 | 2015-09-01 | Qualcomm Incorporated | Video coding with network abstraction layer units that include multiple encoded picture partitions |
US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
US9253481B2 (en) | 2012-01-13 | 2016-02-02 | Qualcomm Incorporated | Determining contexts for coding transform coefficient data in video coding |
US9332259B2 (en) | 2012-01-18 | 2016-05-03 | Qualcomm Incorporated | Indication of use of wavefront parallel processing in video coding |
US9654772B2 (en) | 2012-01-19 | 2017-05-16 | Qualcomm Incorporated | Context adaptive entropy coding with a reduced initialization value set |
US9866829B2 (en) | 2012-01-22 | 2018-01-09 | Qualcomm Incorporated | Coding of syntax elements that correspond to coefficients of a coefficient block in video coding |
US9838684B2 (en) * | 2012-04-11 | 2017-12-05 | Qualcomm Incorporated | Wavefront parallel processing for video coding |
HUE051172T2 (hu) * | 2012-04-13 | 2021-03-01 | Ge Video Compression Llc | Kis késleltetésû képkódolás |
KR20240070581A (ko) | 2012-06-29 | 2024-05-21 | 지이 비디오 컴프레션, 엘엘씨 | 비디오 데이터 스트림 개념 |
US9485506B2 (en) | 2012-09-11 | 2016-11-01 | Texas Instruments Incorporated | Method and system for constraining slice header processing overhead in video coding |
US10477208B2 (en) * | 2012-09-24 | 2019-11-12 | Intel Corporation | Histogram segmentation based local adaptive filter for video encoding and decoding |
US10785482B2 (en) | 2012-09-24 | 2020-09-22 | Texas Instruments Incorporated | Method and system for constraining tile processing overhead in video coding |
CN104584554B (zh) * | 2012-09-26 | 2018-07-31 | 威勒斯媒体国际有限公司 | 图像解码方法、图像编码方法、图像解码装置、图像编码装置及图像编解码装置 |
KR101517806B1 (ko) * | 2014-02-18 | 2015-05-06 | 전자부품연구원 | 영상 복호화 방법 및 이를 적용한 영상 기기 |
US20170019679A1 (en) * | 2015-07-15 | 2017-01-19 | Mediatek Inc. | Hybrid video decoding apparatus for performing hardware entropy decoding and subsequent software decoding and associated hybrid video decoding method |
EP3264763A1 (en) | 2016-06-29 | 2018-01-03 | Thomson Licensing | Method and apparatus for improved significance flag coding using simple local predictor |
US10264264B2 (en) * | 2016-09-24 | 2019-04-16 | Apple Inc. | Multi-bin decoding systems and methods |
JP6767691B2 (ja) * | 2016-10-18 | 2020-10-14 | パナソニックIpマネジメント株式会社 | 画像符号化方法、伝送方法および画像符号化装置 |
US10218979B2 (en) * | 2016-11-01 | 2019-02-26 | Cisco Technology, Inc. | Entropy coding state segmentation and retention |
CN110731083A (zh) * | 2017-02-23 | 2020-01-24 | 真实网络公司 | 视频编码***和方法中的编码块位流结构和语法 |
US10869062B2 (en) * | 2017-12-21 | 2020-12-15 | Qualcomm Incorporated | Probability initialization and signaling for adaptive arithmetic coding in video coding |
US10869060B2 (en) * | 2018-01-30 | 2020-12-15 | Google Llc | Efficient context model computation design in transform coefficient coding |
US10506242B2 (en) * | 2018-01-30 | 2019-12-10 | Google Llc | Efficient context model computation design in transform coefficient coding |
US10638133B2 (en) * | 2018-01-31 | 2020-04-28 | Qualcomm Incorporated | Delta quantization parameter (QP) coding options for video |
EP3837835A1 (en) | 2018-09-18 | 2021-06-23 | Huawei Technologies Co., Ltd. | Coding method, device, system |
JP7355829B2 (ja) | 2018-09-18 | 2023-10-03 | 華為技術有限公司 | ビデオエンコーダ、ビデオデコーダ、及び対応する方法 |
CN113994679B (zh) * | 2019-06-21 | 2024-07-12 | 北京字节跳动网络技术有限公司 | 关于上下文编解码二进制位的数量的限制 |
EP4002277A4 (en) * | 2019-08-14 | 2023-02-22 | LG Electronics Inc. | POINT CLOUD DATA TRANSMITTING DEVICE, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING DEVICE AND POINT CLOUD DATA RECEIVING METHOD |
KR102423498B1 (ko) * | 2019-08-14 | 2022-07-22 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
CN114503588A (zh) * | 2019-10-05 | 2022-05-13 | 北京字节跳动网络技术有限公司 | 基于级别的视频编解码工具的信令通知 |
US11758193B2 (en) * | 2019-11-04 | 2023-09-12 | Hfi Innovation Inc. | Signaling high-level information in video and image coding |
KR102423499B1 (ko) | 2020-01-07 | 2022-07-22 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
TWI809523B (zh) * | 2020-10-06 | 2023-07-21 | 弗勞恩霍夫爾協會 | 對一序列資訊值進行算術編碼之算術編碼器與進行算數解碼之算數解碼器及用以算術編碼與解碼一序列資訊值之方法及實行該等方法之電腦程式 |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0614317A3 (en) | 1993-03-05 | 1995-01-25 | Sony Corp | Decoding video signals. |
JPH08116534A (ja) | 1994-10-18 | 1996-05-07 | Seiko Epson Corp | 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法 |
US6351570B1 (en) * | 1997-04-01 | 2002-02-26 | Matsushita Electric Industrial Co., Ltd. | Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding |
JPH11231849A (ja) * | 1997-11-04 | 1999-08-27 | Matsushita Electric Ind Co Ltd | 画像合成装置 |
US6404817B1 (en) | 1997-11-20 | 2002-06-11 | Lsi Logic Corporation | MPEG video decoder having robust error detection and concealment |
US6563953B2 (en) | 1998-11-30 | 2003-05-13 | Microsoft Corporation | Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock |
US6970510B1 (en) | 2000-04-25 | 2005-11-29 | Wee Susie J | Method for downstream editing of compressed video |
US8401084B2 (en) | 2002-04-01 | 2013-03-19 | Broadcom Corporation | System and method for multi-row decoding of video with dependent rows |
JP3807342B2 (ja) * | 2002-04-25 | 2006-08-09 | 三菱電機株式会社 | デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法 |
US7305036B2 (en) | 2002-05-14 | 2007-12-04 | Broadcom Corporation | System and method for entropy code preprocessing |
US7813431B2 (en) * | 2002-05-20 | 2010-10-12 | Broadcom Corporation | System, method, and apparatus for decoding flexibility ordered macroblocks |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US7630440B2 (en) * | 2003-05-28 | 2009-12-08 | Broadcom Corporation | Context adaptive binary arithmetic code decoding engine |
US20040258162A1 (en) | 2003-06-20 | 2004-12-23 | Stephen Gordon | Systems and methods for encoding and decoding video data in parallel |
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 |
US7286710B2 (en) | 2003-10-01 | 2007-10-23 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Coding of a syntax element contained in a pre-coded video signal |
US7379608B2 (en) | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
JP4241417B2 (ja) * | 2004-02-04 | 2009-03-18 | 日本ビクター株式会社 | 算術復号化装置、および算術復号化プログラム |
US7586924B2 (en) * | 2004-02-27 | 2009-09-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream |
US7843997B2 (en) | 2004-05-21 | 2010-11-30 | Broadcom Corporation | Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data |
US7480335B2 (en) | 2004-05-21 | 2009-01-20 | Broadcom Corporation | Video decoder for decoding macroblock adaptive field/frame coded video data with spatial prediction |
US20060013318A1 (en) | 2004-06-22 | 2006-01-19 | Jennifer Webb | Video error detection, recovery, and concealment |
JP4470613B2 (ja) | 2004-06-29 | 2010-06-02 | 富士通株式会社 | 画像復号装置及び画像符号化装置 |
DE102004049156B4 (de) | 2004-10-08 | 2006-07-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom |
EP1813117A1 (en) * | 2004-11-04 | 2007-08-01 | Koninklijke Philips Electronics N.V. | Method and device for processing coded video data |
WO2006051796A1 (en) | 2004-11-09 | 2006-05-18 | Matsushita Electric Industrial Co., Ltd. | Two step arithmetic decoding with conversion into an intermediate format |
US7630565B2 (en) | 2004-11-30 | 2009-12-08 | Lsi Corporation | Parallel video encoder with whole picture deblocking and/or whole picture compressed as a single slice |
US20060126744A1 (en) | 2004-12-10 | 2006-06-15 | Liang Peng | Two pass architecture for H.264 CABAC decoding process |
US20060176953A1 (en) | 2005-02-04 | 2006-08-10 | Nader Mohsenian | Method and system for video encoding with rate control |
US7636395B2 (en) | 2005-03-14 | 2009-12-22 | Nokia Corporation | Method and device for splicing video data in compressed domain |
US7525456B2 (en) | 2005-04-15 | 2009-04-28 | Qpixel Technology, Inc. | Methods for adaptively selecting entropy encoding modes |
KR100746007B1 (ko) | 2005-04-19 | 2007-08-06 | 삼성전자주식회사 | 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더 |
KR20070006445A (ko) * | 2005-07-08 | 2007-01-11 | 삼성전자주식회사 | 하이브리드 엔트로피 부호화, 복호화 방법 및 장치 |
US7061410B1 (en) | 2005-07-18 | 2006-06-13 | Lsi Logic Corporation | Method and/or apparatus for transcoding between H.264 CABAC and CAVLC entropy coding modes |
KR100779173B1 (ko) | 2005-07-20 | 2007-11-26 | 한국전자통신연구원 | 폴리페이즈 다운 샘플링기반 리던던트 슬라이스 코딩 방법및 그 방법을 이용하는 코덱 |
CN100584025C (zh) * | 2005-08-04 | 2010-01-20 | 华为技术有限公司 | 一种基于内容自适应的算术解码***及装置 |
US8416850B2 (en) | 2005-10-14 | 2013-04-09 | Nec Corporation | Image encoding method, device using the same, and computer program |
JP2007166192A (ja) | 2005-12-13 | 2007-06-28 | Toshiba Corp | 情報処理装置、制御方法およびプログラム |
US7983343B2 (en) | 2006-01-12 | 2011-07-19 | Lsi Corporation | Context adaptive binary arithmetic decoding for high definition video |
JP4799191B2 (ja) | 2006-01-27 | 2011-10-26 | 富士フイルム株式会社 | 通信端末、通信システムおよび通信方法 |
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 |
US20070230567A1 (en) | 2006-03-28 | 2007-10-04 | Nokia Corporation | Slice groups and data partitioning in scalable video coding |
JP2007300455A (ja) | 2006-05-01 | 2007-11-15 | Victor Co Of Japan Ltd | 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法 |
US7949054B2 (en) | 2006-06-01 | 2011-05-24 | Microsoft Corporation | Flexible data organization for images |
US8306125B2 (en) | 2006-06-21 | 2012-11-06 | Digital Video Systems, Inc. | 2-bin parallel decoder for advanced video processing |
US7262722B1 (en) | 2006-06-26 | 2007-08-28 | Intel Corporation | Hardware-based CABAC decoder with parallel binary arithmetic decoding |
US8275045B2 (en) * | 2006-07-12 | 2012-09-25 | Qualcomm Incorporated | Video compression using adaptive variable length codes |
ATE479284T1 (de) | 2006-07-13 | 2010-09-15 | Qualcomm Inc | Videokodierung mit feinkörniger skalierbarkeit anhand von zyklisch ausgerichteten fragmenten |
US8000388B2 (en) | 2006-07-17 | 2011-08-16 | Sony Corporation | Parallel processing apparatus for video compression |
US7937397B2 (en) | 2006-08-22 | 2011-05-03 | Fuji Xerox Co., Ltd. | Apparatus and method for term context modeling for information retrieval |
WO2008023968A1 (en) * | 2006-08-25 | 2008-02-28 | Lg Electronics Inc | A method and apparatus for decoding/encoding a video signal |
SG140508A1 (en) | 2006-08-31 | 2008-03-28 | St Microelectronics Asia | Multimode filter for de-blocking and de-ringing |
JP5042568B2 (ja) | 2006-09-07 | 2012-10-03 | 富士通株式会社 | Mpegデコーダ及びmpegエンコーダ |
JP5039142B2 (ja) * | 2006-10-25 | 2012-10-03 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | 品質スケーラブルな符号化方法 |
US7460725B2 (en) | 2006-11-09 | 2008-12-02 | Calista Technologies, Inc. | System and method for effectively encoding and decoding electronic information |
JP5045950B2 (ja) | 2006-12-14 | 2012-10-10 | 日本電気株式会社 | 映像符号化方法、映像符号化装置および映像符号化プログラム |
JP5026092B2 (ja) | 2007-01-12 | 2012-09-12 | 三菱電機株式会社 | 動画像復号装置および動画像復号方法 |
US20080181298A1 (en) | 2007-01-26 | 2008-07-31 | Apple Computer, Inc. | Hybrid scalable coding |
US8411734B2 (en) | 2007-02-06 | 2013-04-02 | Microsoft Corporation | Scalable multi-thread video decoding |
US8422552B2 (en) * | 2007-03-29 | 2013-04-16 | James Au | Entropy coding for video processing applications |
US7925099B2 (en) | 2007-04-03 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Universal-denoiser context-modeling component and context-modeling method |
US7813538B2 (en) | 2007-04-17 | 2010-10-12 | University Of Washington | Shadowing pipe mosaicing algorithms with application to esophageal endoscopy |
WO2008143747A2 (en) * | 2007-05-16 | 2008-11-27 | Thomson Licensing | Methods and apparatus for the use of slice groups in decoding multi-view video coding (mvc) information |
JPWO2008142956A1 (ja) * | 2007-05-21 | 2010-08-05 | 日本電気株式会社 | 映像符号化装置、映像符号化方法および映像符号化プログラム |
US8571104B2 (en) * | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
US8428133B2 (en) * | 2007-06-15 | 2013-04-23 | Qualcomm Incorporated | Adaptive coding of video block prediction mode |
US7710296B2 (en) | 2007-09-19 | 2010-05-04 | Texas Instruments Incorporated | N-bin arithmetic coding for context adaptive binary arithmetic coding |
US8938009B2 (en) | 2007-10-12 | 2015-01-20 | Qualcomm Incorporated | Layered encoded bitstream structure |
KR101211432B1 (ko) * | 2007-12-27 | 2012-12-12 | 보드 오브 트러스티즈 오브 미시건 스테이트 유니버시티 | 적응적 비디오 전송을 위한 채널용량 추정 및 코딩 레이트 조정 방법과, 그를 이용한 비디오 전송/수신 장치 |
US8542748B2 (en) * | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
US7656320B2 (en) | 2008-04-10 | 2010-02-02 | Red Hat, Inc. | Difference coding adaptive context model using counting |
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 | ソニー株式会社 | 算術復号装置 |
TWI376959B (en) * | 2008-05-02 | 2012-11-11 | Novatek Microelectronics Corp | Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner |
US9042457B2 (en) | 2008-06-10 | 2015-05-26 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding apparatus and image coding apparatus wth parallel decoding |
US8331446B2 (en) * | 2008-08-31 | 2012-12-11 | Netlogic Microsystems, Inc. | Method and device for reordering video information |
US7932843B2 (en) * | 2008-10-17 | 2011-04-26 | Texas Instruments Incorporated | Parallel CABAC decoding for video decompression |
EP2182732A1 (en) | 2008-10-28 | 2010-05-05 | Panasonic Corporation | Switching between scans in image coding |
TWI428023B (zh) | 2008-11-18 | 2014-02-21 | Ind Tech Res Inst | 解碼方法及裝置 |
US9467699B2 (en) * | 2008-12-03 | 2016-10-11 | Hfi Innovation Inc. | Method for performing parallel coding with ordered entropy slices, and associated apparatus |
JP5421609B2 (ja) * | 2009-02-17 | 2014-02-19 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
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 |
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 |
-
2010
- 2010-10-01 US US12/896,778 patent/US9313514B2/en active Active
-
2011
- 2011-09-30 JP JP2013514446A patent/JP5551829B2/ja active Active
- 2011-09-30 WO PCT/JP2011/073156 patent/WO2012043887A1/en active Application Filing
- 2011-09-30 BR BR112013007383-7A patent/BR112013007383B1/pt active IP Right Grant
-
2014
- 2014-05-21 JP JP2014105101A patent/JP5856650B2/ja active Active
-
2015
- 2015-12-02 JP JP2015235638A patent/JP6147320B2/ja active Active
-
2016
- 2016-01-15 US US14/996,547 patent/US10341662B2/en active Active
-
2019
- 2019-05-15 US US16/412,522 patent/US10659786B2/en active Active
-
2020
- 2020-04-21 US US16/854,024 patent/US10999579B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
BR112013007383A2 (pt) | 2016-07-12 |
JP2016029857A (ja) | 2016-03-03 |
US20190281301A1 (en) | 2019-09-12 |
JP2014158303A (ja) | 2014-08-28 |
US20200296379A1 (en) | 2020-09-17 |
JP5551829B2 (ja) | 2014-07-16 |
US20120082218A1 (en) | 2012-04-05 |
JP5856650B2 (ja) | 2016-02-10 |
US10999579B2 (en) | 2021-05-04 |
US10341662B2 (en) | 2019-07-02 |
JP6147320B2 (ja) | 2017-06-14 |
US20170078668A1 (en) | 2017-03-16 |
US9313514B2 (en) | 2016-04-12 |
WO2012043887A1 (en) | 2012-04-05 |
US10659786B2 (en) | 2020-05-19 |
JP2013543284A (ja) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10999579B2 (en) | Methods and systems for decoding a video bitstream | |
US10931951B2 (en) | Context initialization based on slice header flag and slice type | |
JP6541274B2 (ja) | 動画像シーケンスの動画像フレームを復号する復号方法および装置 | |
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 | |
US11647197B2 (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/105 (2014.01), H04N |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/09/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |