BR102013001124A2 - Ocultação de múltiplos bits de sinal dentro de uma unidade transformada - Google Patents

Ocultação de múltiplos bits de sinal dentro de uma unidade transformada Download PDF

Info

Publication number
BR102013001124A2
BR102013001124A2 BR102013001124-0A BR102013001124A BR102013001124A2 BR 102013001124 A2 BR102013001124 A2 BR 102013001124A2 BR 102013001124 A BR102013001124 A BR 102013001124A BR 102013001124 A2 BR102013001124 A2 BR 102013001124A2
Authority
BR
Brazil
Prior art keywords
coefficients
coefficient
fact
zero
encoding
Prior art date
Application number
BR102013001124-0A
Other languages
English (en)
Other versions
BR102013001124B1 (pt
Inventor
Wang Jing
He Dake
Yu Xiang
Original Assignee
Blackberry Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Blackberry Limited filed Critical Blackberry Limited
Publication of BR102013001124A2 publication Critical patent/BR102013001124A2/pt
Publication of BR102013001124B1 publication Critical patent/BR102013001124B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data

Landscapes

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

Abstract

ocultação de múltiplos bits de sinal dentro de uma unidade transformada métodos de codificação e decodificação para dados de vídeo são descritos para codificar ou decodificar coeficientes para uma unidade transformada. em particular, os bits de sinal para os cmeficientes diferentes de zero são codificados usando ocultação de bits de sinal. dois ou mais conjuntos de coeficientes são definidos para a unidade transformada e um bit de sinal pode ser ocultado para cada conjunto, sujeito ã satisfação de um teste de limiar. os conjuntos podem corresponder a grupos de coeficientes que são usados de outro modo em codificação e decodificação de mapa de significância de múltiplos níveis.

Description

(54) Título: OCULTAÇÃO DE MÚLTIPLOS BITS DE SINAL DENTRO DE UMA UNIDADE TRANSFORMADA (51) Int. Cl.: H04N 19/467; H04N 19/48 (30) Prioridade Unionista: 20/01/2012 EP 12151973.0 (73) Titular(es): BLACKBERRY LIMITED (72) Inventor(es): JING WANG; DAKE HE; XIANG YU (85) Data do Início da Fase Nacional:
16/01/2013 (57) Resumo: OCULTAÇÃO DE MÚLTIPLOS BITS DE SINAL DENTRO DE UMA UNIDADE TRANSFORMADA Métodos de codificação e decodificação para dados de vídeo são descritos para codificar ou decodificar coeficientes para uma unidade transformada. Em particular, os bits de sinal para os cmeficientes diferentes de zero são codificados usando ocultação de bits de sinal. Dois ou mais conjuntos de coeficientes são definidos para a unidade transformada e um bit de sinal pode ser ocultado para cada conjunto, sujeito ã satisfação de um teste de limiar. Os conjuntos podem corresponder a grupos de coeficientes que são usados de outro modo em codificação e decodificação de mapa de significância de múltiplos níveis.
Figure BR102013001124A2_D0001
1/39
OCULTAÇÃO DE MÚLTIPLOS BITS DE SINAL DENTRO DE UMA UNIDADE TRANSFORMADA
AVISO DE DIREITOS AUTORAIS
Uma parte da revelação deste documento e materiais 5 acompanhantes contém material para o qual é feita uma reivindicação para direitos autorais. 0 proprietário dos direitos autorais não tem objeção para a reprodução por fac-símile de qualquer um de o documento de patente ou a revelação de patente, tal como ele aparece nos arquivos ou gravações do Escritório de Marcas e Patentes, mas reserva todos os outros direitos autorais sejam quais forem.
CAMPO
O presente pedido de uma maneira geral diz respeito a compactação de dados e, em particular, a métodos e dispositivos para ocultação de bits de sinal ao codificar e decodificar dados de vídeo residuais.
ANTECEDENTES
Compactação de dados ocorre em diversos contextos. Ela é usada muito comumente em redes de comunicações e de computadores para armazenar, transmitir e reproduzir informação de forma eficiente. Ela encontra aplicação particular na codificação de imagens, áudio e vídeo. Vídeo apresenta um desafio significativo para compactação de dados por causa da grande quantidade de dados exigidos para cada quadro de vídeo e da velocidade com que codificação e decodificação frequentemente necessitam ocorrer. O estado corrente da técnica para codificação de vídeo é o padrão de codificação de vídeo ITU-T H.264/AVC. Ele define diversos perfis diferentes para aplicações diferentes, incluindo o perfil Principal, perfil de Linha de Base e outros. Um
Petição 870180047879, de 05/06/2018, pág. 6/44
2/39 padrão de codificação de video de próxima geração está atualmente em desenvolvimento por meio uma iniciativa de junção de MPEG-ITU denominada de Codificação de Video de Alta Eficiência (HEVC). A iniciativa pode resultar eventualmente em um padrão de codificação de video referido comumente como MPEG-H.
Existem diversos padrões para codificar/decodificar imagens e videos, incluindo ο H.264, que usam processos de codificação baseada em blocos. Nestes processos, a imagem ou quadro é dividido em blocos, tipicamente de 4x4 ou 8x8, e os blocos são transformados espectralmente em coeficientes, quantificados e codificados por entropia. Em muitos casos, os dados sendo transformados não são os dados de pixel reais, mas são dados residuais seguindo uma operação de predição. Predições podem ser intraquadro, isto é, de bloco para bloco dentro do quadro/imagem, ou interquadros, isto é, entre quadros (também chamada de predição de movimento). É esperado que o MPEG-H também terá estes recursos.
Ao transformar espectralmente dados residuais, muitos destes padrões prescrevem o uso de uma transformada discreta de cosseno (DCT) ou alguma variante da mesma. Os coeficientes DCT resultantes são então quantificados usando um quantificador para produzir coeficientes de domínio da transformada quantificados, ou índices.
O bloco ou matriz de coeficientes de domínio da transformada quantificados (algumas vezes referida como uma unidade transformada) é então codificado por entropia usando um modelo de contexto particular. Em H.264/AVC e no trabalho em desenvolvimento corrente para o MPEG-H, os
Petição 870180047879, de 05/06/2018, pág. 7/44
3/39 coeficientes de transformada quantificados são codificados ao (a) codificar uma última posição de coeficiente significativa indicando a localização do último coeficiente diferente de zero na unidade transformada, (b) codificar um mapa de significância indicando as posições na unidade transformada (outra além da última posição de coeficiente significativa) que contêm coeficientes diferentes de zero, (c) codificar a magnitudes dos coeficientes diferentes de zero, e (d) codificar os sinais dos coeficientes diferentes de zero. Esta codificação dos coeficientes de transformada quantificados frequentemente ocupa 30%-80% dos dados codificados no fluxo de bits.
Unidades transformadas tipicamente são de tamanho NxN. Tamanhos comuns incluem 4x4, 8x8, 16x16 e 32x32, embora outros tamanhos sejam possíveis, incluindo tamanhos não quadrados em algumas modalidades, tais como 8x32 ou 32x8. O sinal de cada coeficiente diferente de zero em um bloco é codificado usando um bit de sinal para cada coeficiente diferente de zero.
SUMÁRIO
O presente pedido descreve métodos e codificadores/decodificadores para codificar e decodificar dados de vídeo residuais usando ocultação de bits de sinal. Em algumas das modalidades, o codificador e decodificador podem usar mapas de significância de múltiplos níveis para codificar sinalizações de coeficientes significativos. Um bit de sinal de pelo menos um coeficiente para cada subconjunto dos coeficientes na unidade transformada pode ser ocultado usando uma técnica de paridade. Em alguns casos, os subconjuntos de coeficientes correspondem aos
Petição 870180047879, de 05/06/2018, pág. 8/44
4/39 grupos de coeficientes usados nos mapas de múltiplos níveis usados, por exemplo, em codificação e decodificação de mapa de signif icância. Em pelo menos um caso, os mapas de múltiplos níveis são usados com unidades transformadas maiores, tais como as UTs de 16x16 e de 32x32. Em alguns casos, mapas de múltiplos níveis são usados com UTs de 8x8, UTs não quadradas e UTs de outros tamanhos. A técnica de ocultação de bits de sinal pode ser usada para aqueles subconjuntos de coeficientes que contenham mais que um número limite de coeficientes diferentes de zero. Em algumas modalidades, a técnica de ocultação de bits de sinal baseada em subconjuntos também pode ser usada com UTs mesmo se elas não usarem codificação de mapa de significância de múltiplos níveis, particularmente se a codificação de coeficiente significativo da UT for implementada de forma modular para subconjuntos das sinalizações de coeficientes significativos.
Em um aspecto, o presente pedido descreve um método de decodificar um fluxo de bits de vídeo codificado ao reconstruir coeficientes para uma unidade transformada, o fluxo de bits codificando dois ou mais conjuntos de bits de sinal para a unidade transformada, cada conjunto correspondendo a um respectivo conjunto de coeficientes para a unidade transformada, em que cada bit de sinal indica o sinal de um coeficiente diferente de zero correspondente dentro do respectivo conjunto. O método inclui, para cada um dos dois ou mais conjuntos de bits de sinal, somar um valor absoluto dos coeficientes para o respectivo conjunto correspondendo a esse conjunto de bits de sinal para obter um valor de paridade; e designar um
Petição 870180047879, de 05/06/2018, pág. 9/44
5/39 sinal para um dos coeficientes dentro do respectivo conjunto com base em se o valor de paridade é par ou ímpar.
Em um outro aspecto, o presente pedido descreve um método de codificar um fluxo de bits de vídeo ao codificar bits de sinal para coeficientes para uma unidade transformada. O método inclui, para cada um de dois ou mais conjuntos de coeficientes para a unidade transformada, somar um valor absoluto dos coeficientes para esse conjunto para obter um valor de paridade; determinar que um sinal de um dos coeficientes nesse conjunto não corresponde ao valor de paridade; e ajustar um nível de um coeficiente nesse conjunto por um a fim de mudar o valor de paridade para corresponder ao sinal de um dos coeficientes.
Em um aspecto adicional, o presente pedido descreve codificadores e decodificadores configurados para implementar tais métodos de codificação e decodificação.
Também em um aspecto adicional, o presente pedido descreve mídias legíveis por computador não transitórias armazenando instruções de programa executáveis computador que, quando processador para executar executadas, configuram os métodos descritos por um de codificação e/ou decodificação.
Outros aspectos e recursos do presente pedido serão entendidos pelas pessoas de conhecimento comum na técnica a partir de uma análise da descrição a seguir de exemplos em combinação com as figuras anexas.
DESCRIÇÃO RESUMIDA DOS DESENHOS Será feita agora referência, a título de exemplo, aos desenhos anexos que mostram modalidades de exemplo do presente pedido, e em que:
Petição 870180047879, de 05/06/2018, pág. 10/44
6/39
A figura 1 mostra, em forma de diagrama de blocos, um codificador para codificar video;
A figura 2 mostra, em forma de diagrama de blocos, um decodificador para decodificar video;
A figura 3 mostra um exemplo de uma ordem de varredura de múltiplos níveis para uma unidade transformada de 16x16;
A figura 4 mostra uma unidade transformada de 16x16 de exemplo particionada em grupos de coeficientes numerados em ordem de varredura em nível de grupo em sentido contrário;
A figura 5 mostra um exemplo de uma unidade transformada em que quatro grupos de grupos de coeficientes são formados para ocultação de bits de sinal;
A figura 6 ilustra um outro exemplo de um agrupamento de grupos de coeficientes para ocultação de bits de sinal;
A figura 7 mostra também um outro exemplo de um agrupamento de grupos de coeficientes para ocultação de bits de sinal;
A figura 8 ilustra um exemplo de formar dinamicamente conjuntos de coeficientes para ocultação de bits de sinal;
A figura 9 mostra, em forma de fluxograma, um processo de exemplo para ocultação de bits de sinal;
A figura 10 mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um codificador; e
A figura 11 mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um decodificador.
Números similares de referência podem ter sido usados em diferentes figuras para denotar componentes similares. DESCRIÇÃO DE MODALIDADES DE EXEMPLO
Na descrição que se segue algumas modalidades de exemplo são descritas com referência para o padrão H.264
Petição 870180047879, de 05/06/2018, pág. 11/44
7/39 para codificação de video e/ou para o padrão MPEG-H em desenvolvimento. Os versados na técnica entenderão que o presente pedido não está limitado ao H.264/AVC ou ao MPEGH, mas pode ser aplicável a outros padrões de codificação/decodificação de video, incluindo possíveis futuros padrões, padrões de codificação de múltiplas visualizações, padrões de codificação de vídeo escaláveis e padrões de codificação de vídeo reconfiguráveis.
Na descrição que se segue, quando se referindo a vídeo 10 ou imagens, os termos quadro, imagem, fatia, ladrilho e grupo de fatias retangulares podem ser usados um pouco de modo permutável. Os versados na técnica compreenderão que, no caso do padrão H.264, um quadro pode conter uma ou mais fatias. Também deve ser percebido que certas operações de codificação/decodificação são executadas em uma base de quadro por quadro, algumas são executadas em uma base de fatia por fatia, algumas em imagem por imagem, algumas em ladrilho por ladrilho e algumas por grupo de fatias retangulares, dependendo das exigências particulares ou terminologia do padrão de codificação de imagem ou vídeo aplicável. Em qualquer modalidade particular, o padrão de codificação de imagem ou vídeo aplicável pode determinar se as operações descritas a seguir são executadas em conexão com quadros e/ou fatias e/ou imagens e/ou ladrilhos e/ou grupos de fatias retangulares, tal como pode ser o caso. Desta maneira, os versados na técnica entenderão, considerando a presente revelação, se operações ou processos particulares descritos neste documento e referências particulares para quadros, fatias, imagens, ladrilhos, grupos de fatias retangulares são aplicáveis a
Petição 870180047879, de 05/06/2018, pág. 12/44
8/39
quadros, fatias, imagens, ladrilhos, grupos de fatias
retangulares, ou alguns ou todos esses para uma dada
modalidade. Isto também se aplica para unidades
transformadas, unidades de codificação, grupos de unidades 5 de codificação, etc., tal como se tornará aparente considerando a descrição a seguir.
presente pedido descreve processos e dispositivos de exemplo para codificar e decodificar bits de sinal para os coeficientes diferentes de zero de uma unidade transformada. Os coeficientes diferentes de zero são identificados por meio de um mapa de significância. Um mapa de significância é um bloco, matriz, grupo ou conjunto de sinalizações que mapeia para, ou corresponde a, uma unidade transformada ou uma unidade definida de coeficientes (por exemplo, diversas unidades transformadas, uma parte de uma unidade transformada, ou uma unidade de codificação). Cada sinalização indica se a posição correspondente na unidade transformada ou na unidade especificada contém um coeficiente diferente de zero ou não. Em padrões existentes, estas sinalizações podem ser referidas como sinalizações de coeficientes significativos. Em padrões existentes, existe uma sinalização por coeficiente do coeficiente DC para o último coeficiente significativo em uma ordem de varredura, e a sinalização é um bit que é zero se o coeficiente correspondente for zero e é estabelecida para um se o coeficiente correspondente for diferente de zero. A expressão mapa de signif icância tal como usada neste documento é pretendida para se referir a uma matriz ou conjunto ordenado de sinalizações de coeficientes significativos para uma unidade transformada, tal como será
Petição 870180047879, de 05/06/2018, pág. 13/44
9/39 entendido a partir da descrição a seguir, ou uma unidade definida de coeficientes, o que ficará claro a partir do contexto das aplicações.
Será entendido, considerando a descrição a seguir, que 5 a estrutura de codificação e decodificação de múltiplos níveis pode ser aplicada em certas situações, e essas
situações podem ser determinadas a partir de informação
lateral tal como tipo de conteúdo de vídeo (vídeo natural
ou gráficos tal como identificado em sequência, imagem ou
cabeçalhos de fatias). Por exemplo, dois níveis podem ser usados para vídeo natural, e três níveis podem ser usados para gráficos (o que tipicamente é muito mais esparso). Também é uma outra possibilidade fornecer uma sinalização em um de a sequência, imagem ou cabeçalhos de fatias para indicar se a estrutura tem um, dois ou três níveis, permitindo assim ao codificador a flexibilidade de escolher a estrutura mais apropriada para o presente conteúdo. Em uma outra modalidade, a sinalização pode representar um tipo de conteúdo, o qual seria associado com o número de níveis. Por exemplo, um conteúdo de tipo gráfico pode caracterizar três níveis.
Referência agora é feita para figura 1, a qual mostra, em forma de diagrama de blocos, um codificador 10 para codificar vídeo. Referência também é feita para a figura 2, a qual mostra um diagrama de blocos de um decodificador 50 para decodificar vídeo. Será percebido que cada um de o codificador 10 e o decodificador 50 descritos neste documento pode ser implementado em um dispositivo de computação de aplicação específica ou de uso geral, contendo um ou mais elementos de processamento e memória.
Petição 870180047879, de 05/06/2018, pág. 14/44
10/39
As operações executadas pelo codificador 10 ou pelo decodif icador 50, tal como pode ser o caso, podem ser implementadas por meio de circuito integrado de aplicação específica, por exemplo, ou por meio de instruções de programa armazenadas executáveis por um processador de uso geral. O dispositivo pode incluir software adicional, incluindo, por exemplo, um sistema de operação para controlar funções básicas de dispositivo. A faixa de dispositivos e plataformas dentro da qual o codificador 10 ou o decodificador 50 pode ser implementado será percebida pelas pessoas de conhecimento comum na técnica considerando a descrição a seguir.
O codificador 10 recebe uma fonte de vídeo 12 e produz um fluxo de bits codificado 14. O decodificador 50 recebe o fluxo de bits codificado 14 e produz um quadro de vídeo decodificado 16. O codificador 10 e o decodificador 50 podem ser configurados para operar em conformidade com diversos padrões de compressão de vídeo. Por exemplo, o codificador 10 e o decodificador 50 podem ser compatíveis com H.264/AVC. Em outras modalidades, o codificador 10 e o decodificador 50 podem estar de acordo com outros padrões de compressão de vídeo, incluindo evoluções do padrão H.264/AVC, tal como o MPEG-H.
O codificador 10 inclui um preditor espacial 21, um seletor de modo de codificação 20, o processador de transformada 22, o quantificador 24, e o codificador de entropia 26. Tal como será percebido pelas pessoas de conhecimento comum na técnica, o seletor de modo de codificação 20 determina o modo de codificação apropriado para a fonte de vídeo, por exemplo, se o objeto
Petição 870180047879, de 05/06/2018, pág. 15/44
11/39 quadro/fatia é do tipo I, P, ou B, e se unidades de codificação particulares (por exemplo, macroblocos, unidades de codificação, etc.) dentro do quadro/fatia são inter ou intracodifiçadas. 0 processador de transformada 22 executa uma transformada nos dados de domínio espacial. Em particular, o processador de transformada 22 aplica uma transformada baseada em blocos para converter dados de domínio espacial para componentes espectrais. Por exemplo, em muitas modalidades uma transformada discreta de cosseno (DCT) é usada. Outras transformadas, tais como uma transformada discreta de seno ou outras podem ser usadas em alguns casos. A transformada baseada em blocos é executada em uma unidade de codificação, macrobloco ou em base de sub-bloco, dependendo do tamanho dos macroblocos ou unidades de codificação. No padrão H.264, por exemplo, um macrobloco 16x16 típico contém dezesseis blocos de transformada 4x4 e o processo DCT é executado nos blocos 4x4. Em alguns casos, os blocos de transformada podem ser de 8x8, significando que existem quatro blocos de transformada por macrobloco. Também em outros casos, os blocos de transformada podem ter outros tamanhos. Em alguns casos, um macrobloco 16x16 pode incluir uma combinação não se sobrepondo de blocos de transformada 4x4 e 8x8.
Aplicar a transformada baseada em blocos a um bloco de dados de pixel resulta em um conjunto de coeficientes de domínio da transformada. Um conjunto neste contexto é um conjunto ordenado em que os coeficientes têm posições de coeficiente. Em alguns casos o conjunto de coeficientes de domínio da transformada pode ser considerado como um bloco ou matriz de coeficientes. Na descrição neste
Petição 870180047879, de 05/06/2018, pág. 16/44
12/39 documento as frases um conjunto de coeficientes de domínio da transformada e um bloco de coeficientes de domínio da transformada são usadas de modo permutável e são pretendidas para indicar um conjunto ordenado de coeficientes de domínio da transformada.
conjunto de coeficientes de domínio da transformada é quantificado pelo quantificador 24. Os coeficientes quantificados e informação associada são então codificados pelo codificador de entropia 26.
O bloco ou matriz de coeficientes de domínio da transformada quantificados pode ser referido neste documento como uma unidade transformada (UT) . Em alguns casos, a UT pode não ser quadrada, por exemplo, uma transformada de quadratura não quadrada (NSQT).
Quadros/fatias intracodifiçados (isto é, tipo I) são codificados sem referência para outros quadros/fatias. Em outras palavras, eles não empregam predição temporal. Entretanto quadros intracodifiçados contam com predição espacial dentro do quadro/fatia, tal como ilustrado na figura 1, pelo preditor espacial 21. Isto é, ao codificar um bloco particular os dados no bloco podem ser comparados aos dados de pixels próximos dentro de blocos já codificados para esse quadro/fatia. Usando um algoritmo de predição, os dados de fonte do bloco podem ser convertidos em dados residuais. O processador de transformada 22 codifica então os dados residuais. O padrão H.264, por exemplo, prescreve nove modos de predição espacial para blocos de transformada 4x4. Em algumas modalidades, cada um dos nove modos pode ser usado para processar independentemente um bloco, e então otimização de taxaPetição 870180047879, de 05/06/2018, pág. 17/44
13/39 distorção é usada para selecionar o melhor modo.
padrão H.264 também prescreve o uso de predição/compensação de movimento para tirar proveito de predição temporal. Desta maneira, o codificador 10 tem um laço de realimentação que inclui um desquantificador 28, o processador de transformada inversa 30 e o processador de desagrupamento 32. O processador de desagrupamento 32 pode incluir um processador de desagrupamento e um processador de filtragem. Estes elementos espelham o processo de decodificação implementado pelo decodificador 50 para reproduzir o quadro/fatia. Um armazenamento de quadros 34 é usado para armazenar os quadros reproduzidos. Desta maneira, a predição de movimento é baseada em quais serão os quadros reconstruídos no decodificador 50 e não nos quadros originais, os quais podem diferir dos quadros reconstruídos por causa da compressão com perdas envolvida em codificação/decodificação. Um preditor de movimento 36 usa os quadros/fatias armazenados no armazenamento de quadros 34 como quadros/fatias de fonte para comparação a um quadro corrente para o propósito de identificar blocos similares. Desta maneira, para macroblocos ou unidades de codificação para as quais predição de movimento é aplicada, os dados de fonte que o processador de transformada 22 codifica são os dados residuais que resultam do processo de predição de movimento. Por exemplo, eles podem incluir informação com relação ao quadro de referência, um deslocamento espacial ou vetor de movimento e dados de pixel residuais que representam as diferenças (se alguma) entre o bloco de referência e o bloco corrente. Informação com relação ao quadro de referência e/ou vetor de movimento
Petição 870180047879, de 05/06/2018, pág. 18/44
14/39 pode não ser processada pelo processador de transformada 22 e/ou quantificador 24, mas em vez disto pode ser fornecida para o codificador de entropia 26 para codificação como parte do fluxo de bits juntamente com os coeficientes quantificados.
Os versados na técnica perceberão os detalhes e possíveis variações para implementar codificadores de vídeo.
decodificador 50 inclui um decodificador de entropia
52, o desquantificador 54, o processador de transformada inversa 56, o compensador espacial 57 e o processador de desagrupamento 60. O processador de desagrupamento 60 pode incluir processadores de desagrupamento e de filtragem. Um armazenamento temporário de quadros 58 fornece quadros reconstruídos para uso por um compensador de movimento 62 ao aplicar compensação de movimento. O compensador espacial 57 representa a operação de recuperar os dados de vídeo para um bloco intracodifiçado particular de um bloco decodificado anteriormente.
O fluxo de bits 14 é recebido e decodificado pelo decodificador de entropia 52 para recuperar os coeficientes quantificados. Informação lateral também pode ser recuperada durante o processo de decodificação de entropia, algumas das quais podem ser fornecidas para o laço de compensação de movimento para uso em compensação de movimento, se aplicável. Por exemplo, o decodificador de entropia 52 pode recuperar informação de vetores de movimento e/ou de quadro de referência para macroblocos intercodifiçados.
Os coeficientes quantificados são então
Petição 870180047879, de 05/06/2018, pág. 19/44
15/39 desquantifiçados pelo desquantificador 54 para produzir os coeficientes de domínio da transformada, os quais são então submetidos a uma transformada inversa pelo processador de transformada inversa 56 para recriar os dados de vídeo.
Será percebido que, em alguns casos, tal como com um macrobloco intracodifiçado ou unidade de codificação, os dados de vídeo recriados são os dados residuais para uso em compensação espacial em relação a um bloco decodificado anteriormente dentro do quadro. 0 compensador espacial 57 gera os dados de vídeo a partir dos dados residuais e de dados de pixel de um bloco decodificado anteriormente. Em outros casos, tais como macroblocos intercodifiçados ou unidades de codificação, os dados de vídeo recriados pelo processador de transformada inversa 56 são os dados residuais para uso em compensação de movimento em relação a um bloco de referência de um quadro diferente. Compensação tanto espacial quanto de movimento podem ser referidas neste documento como operações de predição.
O compensador de movimento 62 localiza um bloco de referência dentro do armazenamento temporário de quadros 58 especificado para um macrobloco intercodifiçado ou unidade de codificação particular. Ele faz assim com base na informação de quadro de referência e vetor de movimento especificado para o macrobloco intercodifiçado ou unidade de codificação. Ele então fornece os dados de pixel de bloco de referência para combinação com os dados residuais para chegar aos dados de vídeo reconstruídos para essa unidade de codificação/macrobloco.
Um processo de desagrupamento/filtragem pode então ser aplicado a um quadro/fatia reconstruído, tal como indicado
Petição 870180047879, de 05/06/2018, pág. 20/44
16/39 pelo processador de desagrupamento 60. Após desagrupamento/filtragem, o quadro/fatia é produzido como o quadro de vídeo decodificado 16, por exemplo, para exibição em um dispositivo de exibição. Será entendido que a máquina de reprodução de vídeo, tal como um computador, aparelho conversor de sinais, reprodutor de DVD ou Blu-Ray e/ou dispositivo de mão móvel, pode armazenar temporariamente quadros decodificados em uma memória antes da exibição de em um dispositivo de saída.
É esperado que codificadores e decodificadores compatíveis com MPEG-H terão muitos destes mesmos recursos ou recursos similares.
Codificação e Decodificação de Coeficientes de Domínio da
Transformada Quantificados
Tal como observado anteriormente, a codificação de entropia de um bloco ou conjunto de coeficientes de domínio da transformada quantificados inclui codificar o mapa de significância (por exemplo, um conjunto de sinalizações de coeficientes significativos) para esse bloco ou conjunto de coeficientes de domínio da transformada quantificados. O mapa de signif icância é um mapeamento binário do bloco indicando em quais posições (a partir da posição DC para a última posição de coeficiente significativo) coeficientes diferentes de zero aparecem. O mapa de significância pode ser convertido em um vetor de acordo com a ordem de varredura (a qual pode ser vertical, horizontal, diagonal, ziguezague ou em qualquer outra ordem de varredura prescrevida pelo padrão de codificação aplicável). A varredura tipicamente é feita na ordem inversa, isto é, iniciando com o último coeficiente significativo e
Petição 870180047879, de 05/06/2018, pág. 21/44
17/39 trabalhando de volta através do mapa significativo na direção contrária até que a sinalização de coeficiente significativo no canto superior esquerdo em [0,0] seja alcançada. Na presente descrição, a expressão ordem de varredura é pretendida para significar a ordem em que sinalizações, coeficientes ou grupos, tal como pode ser o caso, são processados e pode incluir ordens que sejam referidas coloquialmente como ordem de varredura inversa.
Cada sinalização de coeficiente significativo é então 10 codificada por entropia usando o esquema de codificação adaptativo a contexto aplicável. Por exemplo, em muitas aplicações um esquema de codificação aritmética binária adaptativa a contexto (CABAC) pode ser usado.
Com mapas de significância de 16x16 e 32x32, o 15 contexto para uma sinalização de coeficiente significativo é (em muitos casos) com base em valores de sinalização de coeficiente significativo vizinhos. Entre os contextos usados para mapas de significância de 16x16 e 32x32, existem certos contextos dedicados para a posição de bit em [0,0] e (em algumas implementações de exemplo) para posições de bit vizinhas, mas muitas das sinalizações de coeficientes significativos adotam um de quatro ou cinco contextos que dependem dos valores acumulativos de sinalizações de coeficientes significativos vizinhos.
Nestes casos, a determinação do contexto correto para uma sinalização de coeficiente significativo depende de determinar e somar os valores das sinalizações de coeficientes significativos em localizações vizinhas (tipicamente cinco localizações, mas pode ser mais ou menos em alguns casos).
Petição 870180047879, de 05/06/2018, pág. 22/44
18/39
Os níveis de coeficiente significativo para aqueles coeficientes diferentes de zero podem então ser codificados. Em uma implementação de exemplo, os níveis podem ser codificados ao primeiro codificar um mapa daqueles coeficientes diferentes de zero tendo um nível de valor absoluto maior que um. Um outro mapa pode então ser codificado daqueles coeficientes diferentes de zero tendo um nível maior que dois. 0 valor ou nível de qualquer um dos coeficientes tendo um valor absoluto maior que dois é então codificado. Em alguns casos, o valor codificado pode ser o valor real menos três.
O sinal dos coeficientes diferentes de zero também é codificado. Cada coeficiente diferente de zero tem um bit de sinal indicando se o nível desse coeficiente diferente de zero é negativo ou positivo. Uma proposta foi feita para ocultar o bit de sinal para o primeiro coeficiente na unidade transformada: Clare, Gordon e outros, Sign Data Hiding, JCTVC-G271, 7th Meeting, Genebra, 21 a 30 de novembro de 2011. De acordo com esta proposta o sinal do primeiro coeficiente na unidade transformada é codificado por meio da paridade da soma de coeficientes quantificados na unidade transformada. No caso em que a paridade não corresponde ao sinal real do primeiro coeficiente, então o codificador deve ajustar o nível de um dos coeficientes para cima ou para baixo por 1 a fim de ajustar a paridade. RDOQ é para ser usado para determinar qual coeficiente deve ser ajustado e em qual direção.
Algum trabalho anterior focalizou em usar mapas de significância de múltiplos níveis. Referência agora é feita para a figura 3, a qual mostra uma unidade transformada de
Petição 870180047879, de 05/06/2018, pág. 23/44
19/39
16x16 100 com uma ordem de varredura diagonal de múltiplos níveis ilustrada. A unidade transformada 100 está particionada em dezesseis grupos de coeficientes ou conjuntos de sinalizações de coeficientes significativos
4x4 contíguos. Dentro de cada grupo de coeficientes, uma ordem de varredura diagonal é aplicada dentro do grupo, em vez de através da unidade transformada 100 inteira. Os conjuntos ou grupos de coeficientes propriamente ditos são processados em uma ordem de varredura, a qual nesta implementação de exemplo também é uma ordem de varredura diagonal. Será notado que a ordem de varredura neste exemplo está ilustrada em ordem de varredura inversa; isto é, a ordem de varredura está mostrada progredindo do grupo de coeficientes inferior direito em uma direção diagonal para baixo e para a esquerda para o grupo de coeficientes superior esquerdo. Em algumas implementações a mesma ordem de varredura pode ser definida na outra direção; isto é, progredindo em uma direção diagonal para a direita e para cima e quando aplicada durante codificação ou decodificação pode ser aplicada em uma ordem de varredura inversa.
O uso de mapas de significância de múltiplos níveis envolve a codificação de um mapa de significância de nível LI ou mais alto que indica que grupos de coeficientes contendo sinalizações de coeficientes significativos diferentes de zero podem ser esperados, e que grupos de coeficientes contêm sinalizações de coeficientes significativos todas iguais a zero. Os grupos de coeficientes que podem ser esperados como contendo sinalizações de coeficientes significativos diferentes de
Petição 870180047879, de 05/06/2018, pág. 24/44
20/39 zero têm suas sinalizações de coeficientes significativos codificadas, enquanto que os grupos de coeficientes que contêm sinalizações de coeficientes significativos todas iguais a zero não são codificados (a não ser que eles sejam grupos que são codificados por causa de uma exceção de caso especial porque eles são supostos para conter pelo menos uma sinalização de coeficiente significativo diferente de zero) . Cada grupo de coeficientes tem uma sinalização de grupo de coeficientes significativos (a não ser que um caso especial se aplique em que esse grupo de coeficientes tem uma sinalização de um valor suposto, tal como o grupo contendo o último coeficiente significativo, o grupo esquerdo superior, etc.).
O uso de mapas de significância de múltiplos níveis facilita o processamento modular de dados residuais para codificação e decodificação.
UTs maiores apresentam uma oportunidade para ocultar múltiplos bits de sinal. A UT pode ser dividida ou particionada em conjuntos de coeficientes diferentes de zero e um bit de sinal pode ser ocultado para cada conjunto de coeficientes diferentes de zero usando a paridade da soma de coeficientes diferentes de zero nesse conjunto. Em uma modalidade, o conjunto de coeficientes diferentes de zero pode ser criado para corresponder aos grupos de coeficientes definidos para mapas de significância de múltiplos níveis.
Um único limiar pode ser usado para determinar se é para ocultar um bit de sinal para um certo conjunto de coeficientes diferentes de zero, independente do tipo de dados. Em um exemplo, o teste de limiar é baseado no número
Petição 870180047879, de 05/06/2018, pág. 25/44
21/39 de coeficientes entre o primeiro coeficiente diferente de zero e o último coeficiente diferente de zero no conjunto. Isto é, se existe pelo menos um número limite de coeficientes entre os primeiro e último coeficientes diferentes de zero no conjunto. Em um outro exemplo, o teste pode ser baseado em existir pelo menos um número limite de coeficientes diferentes de zero no conjunto. Também em uma outra modalidade, o teste pode ser baseado na soma dos valores absolutos dos coeficientes diferentes de zero no conjunto excedendo um limiar. Também em uma modalidade adicional, uma combinação destes testes pode ser aplicada; isto é, deve existir pelo menos um número mínimo de coeficientes no conjunto e o valor absoluto acumulativo dos coeficientes deve exceder um valor limiar. Variações nestes testes de limiar também podem ser empregadas.
Referência agora é feita para a figura 4, a qual mostra uma unidade transformada 120 de exemplo de 16x16. A unidade transformada 120 está dividida em grupos de coeficientes 4x4, isto é, dezesseis conjuntos de coeficientes. Os grupos de coeficientes estão numerados 1, 2, 3,... 16 na ordem em que eles são processados, por exemplo, ordem de varredura diagonal inversa.
Em uma primeira modalidade, cada grupo de coeficientes é um conjunto de coeficientes para o propósito de ocultação de bits de sinal. Isto é, cada grupo de coeficientes é testado contra um limiar para determinar se o grupo de coeficientes é adequado para ocultação de bits de sinal. Tal como observado anteriormente, o teste pode ser que o grupo de coeficientes contém pelo menos um número mínimo de coeficientes entre o primeiro coeficiente diferente de zero
Petição 870180047879, de 05/06/2018, pág. 26/44
22/39 e último coeficiente diferente de zero dentro desse grupo de coeficientes.
Em uma segunda modalidade, os conjuntos de coeficientes para ocultação de bits de sinal são formados ao agrupar grupos de coeficientes. A figura 5 mostra uma UT de 16x16 140 na qual está ilustrado um agrupamento de exemplo de grupos de coeficientes em quatro conjuntos de coeficientes. Neste exemplo, cada conjunto de coeficientes para o propósito de ocultação de bits de sinal contém quatro grupos de coeficientes. Os quatro grupos de coeficientes em cada conjunto são grupos consecutivos na ordem de varredura. Por exemplo, o primeiro conjunto de coeficientes 142 contém os grupos de coeficientes 16, 15, e 13. O segundo conjunto de coeficientes 144 contém os grupos de coeficientes 12, 11, 10 e 9. O terceiro conjunto de coeficientes 146 contém os grupos de coeficientes 8, 7, e 5. Finalmente, o quarto conjunto de coeficientes 148 contém os grupos de coeficientes 4, 3, 2 e 1. Nesta modalidade, um bit de sinal pode ser ocultado para cada conjunto de coeficientes. Isto é, até quatro bits de sinal podem ser ocultados por UT 140.
Para cada conjunto de coeficientes 142, 144, 146, 148, o número de coeficientes entre o primeiro e o último coeficiente diferente de zero (ou o número de coeficientes diferentes de zero, ou o valor total acumulativo desses coeficientes) é testado contra o limiar para determinar se é para ocultar um bit de sinal para esse conjunto. A paridade da soma de valores absolutos desses coeficientes no conjunto é o mecanismo através do qual bit de sinal é ocultado. Se a paridade não corresponder ao sinal a ser
Petição 870180047879, de 05/06/2018, pág. 27/44
23/39 ocultado, então a paridade é ajustada ao ajustar o nível de um dos coeficientes no conjunto.
A figura 6 ilustra uma terceira modalidade de conjuntos de coeficientes para ocultação de bits de sinal com uma UT de 16x16 150. Nesta modalidade, os conjuntos são formados de novo com base em grupos de coeficientes, mas os conjuntos não contêm necessariamente o mesmo número de coeficientes ou de grupos de coeficientes. Por exemplo, nesta ilustração cinco conjuntos de coeficientes estão definidos. O primeiro conjunto 152 contém os grupos de coeficientes 1 a 6. O segundo conjunto 154 contém quatro grupos de coeficientes: 7, 8, 9 e 10. O terceiro conjunto
156 contém os grupos de coeficientes 11, 12 e 13. O quarto conjunto 158 contém os grupos de coeficientes 14 e 15. O quinto conjunto 159 contém somente o grupo de coeficientes superior esquerdo 16. Será percebido que esta modalidade permite conjuntos de coeficientes maiores em áreas da unidade transformada 150 nas quais provavelmente existem poucos coeficientes diferentes de zero, e conjuntos de coeficientes menores nas áreas da unidade transformada 150 em que coeficientes diferentes de zero são mais comuns. Deve ser notado que as modalidades indicadas anteriormente podem se aplicar à UT de 32x32 ou de maiores tamanhos assim como a uma UT de tamanho 8x8 desde que uma estrutura de grupos de coeficientes seja aplicada a essas UTs.
A figura 7 ilustra uma quarta modalidade, em que conjuntos de coeficientes para ocultação de bits de sinal dentro de uma unidade transformada 160 de 8x8 são formados sem aderir à estrutura de grupos de coeficientes. A unidade transformada de 8x8 pode ter ou não particionamento de
Petição 870180047879, de 05/06/2018, pág. 28/44
24/39 grupos de coeficientes para o propósito de codificação de mapa de significância. Em qualquer caso, nesta modalidade uma varredura diagonal baseada em unidade transformada é usada para processar os coeficientes para codificação e ocultação de bits de sinal. Neste caso, os conjuntos de coeficientes são formados para agrupar coeficientes consecutivos na ordem de varredura. Por exemplo, nesta ilustração a unidade transformada 160 está agrupada em quatro conjuntos de coeficientes, cada um contendo 16 coeficientes consecutivos na ordem de varredura. Os grupos estão identificados por 162, 164, 166 e 168 na figura 7.
Também em uma outra modalidade, os conjuntos de coeficientes podem não aderir à ordem de varredura. Isto é, cada conjunto pode incluir alguns coeficientes de posições de maior frequência na unidade transformada e alguns coeficientes de posições de menor frequência na unidade transformada. Todos os coeficientes nestes conjuntos podem ser não necessariamente adjacentes na ordem de varredura.
A figura 8 mostra uma quinta modalidade, em que conjuntos de coeficientes para ocultação de bits de sinal dentro de uma unidade transformada de 16x16 170 são formados dinamicamente, usando a estrutura de grupos de coeficientes e a ordem de varredura. Nesta modalidade, em vez de um conjunto fixado de coeficientes predefinidos com base no tamanho de unidade transformada e na ordem de varredura, o codificador e o decodificador formam os conjuntos ao seguir a ordem de varredura e qualquer quantidade rastreamento é comparada com um valor limiar até que o valor limiar seja satisfeito. Uma vez que o limiar é satisfeito, então um bit de sinal é ocultado para o grupo
Petição 870180047879, de 05/06/2018, pág. 29/44
25/39 de coeficientes que o codificador ou decodificador está então processando.
Como um exemplo, a figura 8 ilustra um último coeficiente significativo dentro do grupo de coeficientes [2, 2] . Na ordem de varredura, o codificador e decodificador então se deslocam para os grupos de coeficientes [1, 3], [3, 0] e [2, 1], sucessivamente.
Enquanto processando coeficientes no grupo de coeficientes [2, 1], o limiar é satisfeito. Desta maneira, o bit de sinal para o último coeficiente diferente de zero a ser processado na ordem de varredura inversa no grupo de coeficientes [2, 1] (o coeficiente diferente de zero mais superior à esquerda no grupo) é ocultado na paridade do valor absoluto acumulativo de coeficientes do último coeficiente significativo para e incluindo todos os coeficientes no grupo de coeficientes corrente [2, 1]. O teste de limiar neste exemplo pode ser baseado em existir um número mínimo de coeficientes diferentes de zero, ou o valor absoluto dos coeficientes exceder algum valor limiar.
O número de referência 174 indica uma operação de ocultação de bit de sinal com relação ao 'último' ou coeficiente superior mais à esquerda em um grupo de coeficientes particular.
Em uma sexta modalidade, ocultação de bits de sinal é feita com base em grupos de coeficientes, e os critérios usados para determinar se um grupo de coeficientes é adequado para ocultação de bits de sinal são ajustados dinamicamente de acordo com os grupos de coeficientes decodificados anteriormente. Como um exemplo, se o grupo de coeficientes imediatamente à direita ou o grupo de
Petição 870180047879, de 05/06/2018, pág. 30/44
26/39 coeficientes imediatamente abaixo tiver um coeficiente diferente de zero, o grupo de coeficientes corrente é determinado como sendo adequado para ocultação de bits de sinal desde que ele contenha um mínimo de dois coeficientes diferentes de zero. 0 grupo de coeficientes também pode ser determinado como sendo adequado se ele contiver pelo menos um número mínimo de coeficientes entre o primeiro coeficiente diferente de zero e o último coeficiente diferente de zero dentro desse grupo de coeficientes, tal 10 como descrito em algumas das modalidades acima.
Será percebido que em algumas das modalidades expostas anteriormente, um bit de sinal pode ser ocultado em um grupo de coeficientes com base em um valor de paridade que conta com coeficientes em um outro grupo de coeficientes.
Em outras palavras, o valor de sinal de um coeficiente em um grupo de coeficientes pode ser ocultado na paridade por meio de uma mudança de nível para um coeficiente em um outro grupo de coeficientes.
Além disso, será percebido em que em algumas das modalidades expostas anteriormente, um bit de sinal ocultado em um conjunto de coeficientes pode ser de um elemento de sintaxe diferente tal como uma sinalização de diferença de vetor de movimento (por exemplo, mvd_sign_flag).
No lado de codificador, a decisão é tomada com relação a qual coeficiente ajustar a fim de ocultar um bit de sinal em um caso onde o valor de paridade não corresponde ao sinal. Onde o valor de paridade necessita ser ajustado, um nível de coeficiente deve ser aumentado ou diminuído por 1 a fim de mudar a paridade.
Petição 870180047879, de 05/06/2018, pág. 31/44
27/39
Em uma modalidade, a primeira etapa no processo de ajustar um nível de coeficiente é determinar uma faixa de pesquisa, isto é, uma posição inicial e uma posição final na ordem de varredura. Os coeficientes dentro desta faixa são então avaliados e um é selecionado para ser mudado. Em uma modalidade exemplar, a faixa de pesquisa pode ser do primeiro coeficiente diferente de zero ao último coeficiente na ordem de varredura.
Com o uso de mapas de signif icância de múltiplos 10 níveis, a posição final para uma faixa de pesquisa para um subconjunto pode ser mudada para utilizar a informação de nível de bloco. Especificamente, se um subconjunto contiver exatamente o último coeficiente diferente de zero na UT inteira, (o assim chamado de último global, ou último 15 coeficiente significativo), a faixa de pesquisa pode ser estabelecida tal como do primeiro coeficiente diferente de zero para o último coeficiente diferente de zero. Para outros subconjuntos, a faixa de pesquisa pode ser estendida para uma faixa do primeiro coeficiente diferente de zero para o final do sub-bloco corrente.
Em uma modalidade, a posição inicial pode ser estendida para incluir condicionalmente coeficientes não quantificados à frente do primeiro coeficiente quantificado diferente de zero. Especificamente, considerar todos os coeficientes antes da quantificação. Coeficientes não quantificados que têm o mesmo sinal que o sinal a ser ocultado serão incluídos na pesquisa. Para coeficientes não
quantificados da posição zero para a posição do primeiro
coeficiente quantificado diferente de zero, o custo de
30 mudar um coeficiente quantificado de zero para um será
Petição 870180047879, de 05/06/2018, pág. 32/44
28/39 avaliado e testado na pesquisa.
Uma outra questão no processo para ajustar um nível de coeficiente é definir o cálculo de custo usado para avaliar o impacto de um ajuste. Quando complexidade computacional é uma preocupação, o custo pode ser baseado na distorção e taxa pode não ser considerada, em cujo caso a pesquisa é para minimizar a distorção. Por outro lado, quando complexidade computacional não é uma preocupação que prevalece, o custo pode incluir tanto a taxa quanto distorção a fim de minimizar o custo de distorção de taxa.
Se RDOQ for capacitado, então RDOQ pode ser usado para ajustar o nível. Entretanto, em muitos casos, a complexidade computacional de RDOQ pode ser indesejável e RDOQ pode não ser capacitado. Desta maneira, em algumas modalidades uma análise de taxa-distorção simplificada pode ser aplicada ao codificador para implementar a ocultação de bits de sinal.
Cada coeficiente coeficiente entre o primeiro diferente de zero no conjunto e o último coeficiente diferente de zero no conjunto pode ser testado ao calcular aproximadamente distorção a partir de aumentar o coeficiente por 1 e de diminuir o coeficiente por 1. Em termos gerais, o valor de coeficiente de u tem um valor real de u + δ. A distorção é dada por (õq)2. Se esse coeficiente u for ajustado para cima por 1 para u+1, então a distorção resultante pode ser estimada como:
q2 (1 - 2δ)
Se o coeficiente u for ajustado para baixo por 1 para u-1, então a distorção resultante pode ser estimada como:
q2 (1 + 2δ)
Petição 870180047879, de 05/06/2018, pág. 33/44
29/39
Será reconhecido que para o caso intercodif içado a distorção de quantificação δ está na faixa de [-1/6 a +5/6] quando RDOQ está desligado. No caso de blocos intracodifiçados, a distorção de quantificação δ está na faixa de [-1/3 a +2/3] quando RDOQ está desligado. Quando RDOQ está ligado, a faixa de δ variará. Entretanto, o cálculo indicado acima de aumento de distorção ainda é válido, independente da faixa de δ.
O codificador também pode fazer estimativas grosseiras com relação a custo de taxa para os vários coeficientes usando um conjunto de regras lógicas, isto é, uma métrica de custo de taxa predefinida. Por exemplo, a métrica de custo de taxa predefinida, em uma modalidade, pode incluir:
u+1 (u/0 e u/-l) —> 0,5 bit u-1 (u/0 e u/+l) -0,5 bit u = 1 ou -1 e mudado para 0 -1-0,5-0,5 bits u = 0 e mudado para 1 ou -1 U 1+0,5+0,5 bits onde o custo de uma sinalização de sinal é estimado para ser 1 bit, o custo de uma sinalização de coeficiente significativo é estimado para ser 0,5 bit, e o aumento de custo de u para u+1 é estimado para ser 0,5 bit.
Outras regras ou estimativas podem ser usadas em outras modalidades.
Referência agora é feita para a figura 9, a qual mostra um processo de exemplo 200 para decodificar dados de vídeo com ocultação de bits de sinal baseada em grupos coeficientes. O processo 200 é baseado na segunda modalidade descrita anteriormente. Após analisar a descrição, alterações e modificações para o processo 200 para implementar outras modalidades descritas serão
Petição 870180047879, de 05/06/2018, pág. 34/44
30/39 percebidas pelas pessoas de conhecimento comum na técnica.
Um valor limiar é estabelecido na operação 202. Em algumas modalidades, este valor limiar pode ser predeterminado ou pré-configurado dentro do decodificador.
Em outras modalidades, este valor pode ser extraído do fluxo de bits de dados de vídeo codificado. Por exemplo, o valor limiar pode estar no cabeçalho de imagem ou em uma outra localização dentro do fluxo de bits.
Na operação 204, o decodificador identifica a primeira 10 posição diferente de zero no grupo de coeficientes corrente, isto é, conjunto de coeficientes, e a última posição diferente de zero no grupo de coeficientes corrente, na ordem de varredura. Ele então determina o número de coeficientes, na ordem de varredura, entre os primeiro e último coeficientes diferentes de zero no grupo de coeficientes.
Na operação 206, o decodificador decodifica bits de sinal do fluxo de bits. Ele decodifica um bit de sinal para cada coeficiente diferente de zero no grupo de coeficientes exceto para o coeficiente diferente de zero superior mais à esquerda no grupo de coeficientes (o último coeficiente diferente de zero na ordem de varredura inversa) . Os bits de sinal são aplicados aos seus respectivos coeficientes diferentes de zero. Por exemplo, se a convenção aplicável for que um bit de sinal de zero é positivo e um bit de sinal de um é negativo, então para todos os bits de sinal estabelecidos para um o nível de coeficiente correspondente é tornado negativo.
Na operação 208, o decodificador avalia se o número de coeficientes entre o primeiro coeficiente diferente de zero
Petição 870180047879, de 05/06/2018, pág. 35/44
31/39 e o último coeficiente diferente de zero na ordem de varredura no grupo de coeficientes excede o limiar. Se não, ocultação de bits de sinal não foi então usada no codificador, assim na operação 210 o decodificador decodifica o bit de sinal para o coeficiente diferente de zero superior mais à esquerda (último na ordem de varredura inversa) e o aplica ao nível de coeficiente. Se o número de coeficientes satisfizer o limiar, então na operação 212 o decodificador avalia se o valor absoluto da soma dos coeficientes no grupo de coeficientes é par ou ímpar, isto é, sua paridade. Se par, então o sinal do coeficiente diferente de zero superior mais à esquerda é positivo e o decodificador não necessita ajustá-lo. Se ímpar, então o sinal do coeficiente diferente de zero superior mais à esquerda é negativo, assim na operação 214 ele torna esse coeficiente negativo.
Na operação 216, o decodificador determina se ele terminou processamento dos grupos de coeficientes. Se assim, o processo 200 termina. De outro modo, ele se desloca para o próximo grupo de coeficientes na ordem de varredura de grupos na operação 218 e retorna para a operação 204.
Em uma outra modalidade, o tamanho do conjunto de coeficientes pode ser reduzido para um único coeficiente.
Isto é, a ocultação de bits de sinal pode ser ocultação de sinal baseada em um único coeficiente. Nesta modalidade, cada coeficiente é testado para verificar se sua informação de sinal é para ser ocultada. Um teste de exemplo é comparar a magnitude do nível de coeficiente com um dado limiar. Coeficientes tendo um nível maior que o limiar têm
Petição 870180047879, de 05/06/2018, pág. 36/44
32/39 seus bits de sinal ocultados; de outro modo, codificação/decodificação de bit de sinal de convenção é usada.
Para aplicar a ocultação de bits de sinal no caso de 5 um único coeficiente, a informação de sinal é comparada à paridade do nivel de coeficiente. Como um exemplo, paridade par pode corresponder a sinal positivo e impar pode corresponder a negativo. 0 codificador ajusta então o nivel se o nivel não corresponder ao sinal. Será percebido que esta técnica implica em que acima do valor limiar todos os níveis negativos são ímpares e todos os níveis positivos são pares. Em um sentido isto pode ser considerado, de fato, uma modificação do tamanho de etapa de quantificação para coeficientes tendo uma magnitude maior que o limiar.
Uma sintaxe de exemplo para implementar ocultação de bits de sinal é fornecida a seguir. Esta sintaxe de exemplo é apenas uma implementação possível. Neste exemplo, a ocultação de bits de sinal é aplicada em uma base de grupo de coeficientes, e o teste de limiar é baseado no número de coeficientes do primeiro coeficiente diferente de zero no grupo de coeficientes para o último coeficiente diferente de zero no grupo de coeficientes. Uma sinalização denotada por sign_data_hinding é enviada no cabeçalho de imagem para indicar se ocultação de bits de sinal está ligada. Se ela estiver capacitada, então o cabeçalho também contém o parâmetro tsig, o qual é o valor limiar. Sintaxe de exemplo é exposta a seguir:
pic parameter set rbsp(){ Descritor
pic parameter set id ue (v)
Petição 870180047879, de 05/06/2018, pág. 37/44
33/39
seq parameter set id ue (v)
sign data hinding u(l)
if( sign data hinding ){
tsig u(4)
}
entropy coding synchro u(v)
cabac istate reset flag u(l)
if( entropy coding synchro )
num substreams minusl ue (v)
• · ·
pseudocódigo seguinte ilustra uma implementação de exemplo de ocultação de bits de sinal baseada em grupo de coeficientes:
residual coding cabac( xO, yO, log2TrafoWidth, log2TrafoHeight, scanldx, cldx ) { Descritor
last significant coeff x prefix ae (v)
last significant coeff y prefix ae (v)
if ( last significant coeff x prefix > 3 )
last significant coeff x suffix ae (v)
if( last significant coeff y prefix > 3 )
last significant coeff y suffix ae (v)
numCoeff = 0
do {
Petição 870180047879, de 05/06/2018, pág. 38/44
34/39
xC = ScanOrder[log2TrafoWidth ][ log2TrafoHeight ] [ scanldx ] [ numCoeff ][ 0 ]
yC = ScanOrder[ log2TrafoWidth ] [ log2TrafoHeight ] [ scanldx ] [ numCoeff ][ 1 ]
numCoeff++
} while( ( xC != LastSignificantCoeffX ) | | ( yC ! = LastSignificantCoeffY ) )
numLastSubset = (numCoeff - 1) >> 4
for( i = numLastSubset; i >= 0; i- - ) {
offset = i << 4
if( max( log2TrafoWidth, log2TrafoHeight ) > 3) {
...... omitted
} else {
...... omitted
}
firstNZPosInCG = 1«4 ;
lastNZPosInCG = - 1 ;
for( n = 15; n >= 0; n- - ) {
xC = ScanOrder[ log2TrafoWidth ][ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 0 ]
yC = ScanOrder[ log2TrafoWidth ] [ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 1 ]
if( significant coeff flag[ xC ] [
Petição 870180047879, de 05/06/2018, pág. 39/44
35/39
yc ] ) {
coeff abs levei greaterl flag[ n ] ae (v)
if( lastNZPosInCG ==-l)
lastNZPosInCG = n
firstNZPosInCG = n
}
}
signHidden = lastNZPosInCG - firstNZPosInCG + 1 >= tsig
for( n = 15; n >= 0; n- - ) {
if ( coeff abs levei greaterl flag[ n ] )
coeff abs levei greater2 flag[ n ] ae (v)
}
for( n = 15; n >= 0; n- - ) {
xC = ScanOrder[ log2TrafoWidth ][ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 0 ]
yC = ScanOrder[ log2TrafoWidth ][ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 1 ]
if( significant coeff flag[ xC ] [ yc ] ) {
if(!sign data hinding || !signHidden || n != firstNZPosInCG)
coeff sign flag[ n ] ae (v)
else
Petição 870180047879, de 05/06/2018, pág. 40/44
36/39
coeff sign flag[n] = 0 ;
}
}
sumAbs = 0 ;
for( n = 15; n >= firstNZPosInCG; n- - ) {
if( coeff abs levei greater2 flag[ n ] )
coeff abs levei minus3[ n ] ae (v)
xC = ScanOrder[ log2TrafoWidth ] [ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 0 ]
yC = ScanOrder[ log2TrafoWidth ] [ log2TrafoHeight ] [ scanldx ] [ n + offset ] [ 1 ]
if ( significant coeff flag[ xC ] [ yc ] ) {
transCoeffLevel[ xO ][ yO ][ cldx ] [ xC ] [ yC ] = ( coeff abs levei minus3[ n ] + 3 ) * ( 1 - 2 * coeff sign flag[ n ] )
if(sign data hinding && signHidden)
sumAbs += coeff abs levei minus3[n]+3
} else
transCoeffLevel[ xO ][ yO ][ cldx ][ xC ][ yC ] = 0
}
if(sign data hinding && signHidden
Petição 870180047879, de 05/06/2018, pág. 41/44
37/39
&& (sumAbs%2 == 1))
transCoeffLevel[xO][yO][cldx][xC][yC] transCoeffLevel[xO][yO][cldx][xC][yC]
}
}
Referência agora é feita para a figura 10, a qual mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um codificador 900. O codificador 900 inclui um processador 902, a memória 904 e uma aplicação de codificação 906. A aplicação de codificação 906 pode incluir um programa de computador ou aplicação armazenada na memória 904 e contendo instruções para configurar o processador 902 para executar operações tais como essas descritas neste documento. Por exemplo, a aplicação de codificação 906 pode codificar e produzir fluxos de bits codificados de acordo com os processos descritos neste documento. Será entendido que a aplicação de codificação 906 pode ser armazenada em uma mídia legível por computador, tal como um disco compacto, dispositivo de memória flash, memória de acesso aleatório, unidade rígida, etc.
Referência agora também é feita para a figura 11, a qual mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um decodificador 1000. O decodificador 1000 inclui um processador 1002, uma memória
1004 e uma aplicação de decodificação 1006. A aplicação de decodificação 1006 pode incluir um programa de computador ou aplicação armazenada na memória 1004 e contendo instruções para configurar o processador 1002 para executar
Petição 870180047879, de 05/06/2018, pág. 42/44
38/39 operações tais como essas descritas neste documento. A aplicação de decodificação 1006 pode incluir um decodificador de entropia configurado para reconstruir resíduos com base, pelo menos em parte, em reconstruir sinalizações de coeficientes significativos, tal como descrito neste documento. Será entendido que a aplicação de decodificação 1006 pode ser armazenada em uma mídia legível por computador, tal como um disco compacto, dispositivo de memória flash, memória de acesso aleatório, unidade rígida, etc.
Será percebido que o decodificador e/ou codificador de acordo com o presente pedido pode ser implementado em diversos dispositivos de computação, incluindo, sem limitação, servidores, computadores de uso geral programados adequadamente, dispositivos de codificação e reprodução de áudio/vídeo, aparelhos conversores de sinal de televisão, equipamento de difusão de televisão e dispositivos móveis. O decodificador ou codificador pode ser implementado por meio de software contendo instruções para configurar um processador para executar as funções descritas neste documento. As instruções de software podem ser armazenadas em qualquer memória legível por computador não transitória adequada, incluindo CDs, RAM, ROM, Memória flash, etc.
Será entendido que o codificador descrito neste documento e o módulo, rotina, processo, encadeamento, ou outro componente de software implementando o método/processo descrito para configurar o codificador pode ser concretizado usando técnicas e linguagens de programação de computador padrões. O presente pedido não
Petição 870180047879, de 05/06/2018, pág. 43/44
39/39 está limitado a processadores, linguagens de computador, convenções de programação de computador, estruturas de dados e outros tais detalhes de implementação particulares. Os versados na técnica reconhecerão que os processos descritos podem ser implementados como uma parte de código executável por computador armazenado na memória volátil ou não volátil, como parte de um chip integrado de aplicação específica (ASIC), etc.
Certas adaptações e modificações das modalidades descritas podem ser feitas. Portanto, as modalidades discutidas anteriormente são consideradas para ser ilustrativas e não restritivas.
Petição 870180047879, de 05/06/2018, pág. 44/44
1/4

Claims (15)

  1. REIVINDICAÇÕES
    1. Método de decodificar um fluxo de bits de vídeo codificado ao reconstruir coeficientes para uma unidade transformada, o fluxo de bits codificando dois ou mais conjuntos de bits de sinal para a unidade transformada, cada conjunto de bits de sinal correspondendo a um respectivo conjunto de coeficientes para a unidade transformada, em que cada bit de sinal indica o sinal de um coeficiente diferente de zero correspondente dentro do respectivo conjunto, o método caracterizado pelo fato de que compreende:
    para cada um dos dois ou mais conjuntos de bits de sinal, somar um valor absoluto dos coeficientes para o respectivo conjunto correspondendo a esse conjunto de bits de sinal para obter um valor de paridade; e designar um sinal para um dos coeficientes dentro do respectivo conjunto com base em se o valor de paridade é par ou ímpar.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada um dos respectivos conjuntos de coeficientes corresponde a um respectivo bloco de coeficientes 4x4.
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada um dos respectivos conjuntos de coeficientes corresponde a um grupo de respectivos blocos de coeficientes 4x4, e em que os blocos de coeficientes em cada um dos grupos são blocos consecutivos em uma ordem de varredura de nível de bloco.
  4. 4. Método, de acordo com qualquer uma das
    2/4 reivindicações 1, 2 ou 3, caracterizado pelo fato de que o método compreende adicionalmente determinar que o número de coeficientes dentro do respectivo conjunto de coeficientes entre um primeiro coeficiente diferente de zero e o último coeficiente diferente de zero em uma ordem de varredura excede um valor limiar.
  5. 5. Método, de acordo com qualquer uma das reivindicações 1, 2, 3 ou 4, caracterizado pelo fato de que designar inclui tornar o um dos coeficientes negativo se o valor de paridade for ímpar e deixar o um dos coeficientes positivo se o valor de paridade for par.
  6. 6. Decodificador para decodificar um fluxo de bits de dados codificados para reconstruir coeficientes para uma
    unidade transformada, o decodificador caracterizado pelo fato de que compreende: um ] processador; uma memória; e uma aplicação de decodificação armazenada na memória e contendo instruções para configurar o processador para executar o método de acordo com qualquer uma das
    reivindicações 1 a 5.
  7. 7. Método de codificar um fluxo de bits de vídeo ao codificar bits de sinal para coeficientes para uma unidade transformada, o método caracterizado pelo fato de que compreende:
    para cada um de dois ou mais conjuntos de coeficientes para a unidade transformada, somar um valor absoluto dos coeficientes para esse conjunto para obter um valor de paridade;
    determinar que um sinal de um dos coeficientes
    3/4 nesse conjunto não corresponde ao valor de paridade; e ajustar um nível de um coeficiente nesse conjunto por um a fim de mudar o valor de paridade para corresponder ao sinal de um dos coeficientes.
  8. 8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que compreende ainda, para cada um dos dois ou mais conjuntos de coeficientes, codificar bits de sinal para todos os coeficientes diferentes de zero nesse conjunto exceto para o um dos coeficientes.
  9. 9. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que cada um dos dois ou mais conjuntos de coeficientes compreende um respectivo bloco de coeficientes 4x4.
  10. 10. Método, de acordo com a reivindicação 7 ou reivindicação 8, caracterizado pelo fato de que cada um dos conjuntos de coeficientes corresponde a um grupo de respectivos blocos de coeficientes 4x4, e em que os blocos de coeficientes em cada um dos grupos são blocos consecutivos em uma ordem de varredura de nível de bloco.
  11. 11. Método, de acordo com qualquer uma das reivindicações 7, 8, 9 ou 10, caracterizado pelo fato de que o método compreende adicionalmente determinar que o número de coeficientes dentro do conjunto de coeficientes entre um primeiro coeficiente diferente de zero e o último coeficiente diferente de zero em uma ordem de varredura excede um valor limiar.
  12. 12. Método, de acordo com qualquer uma das reivindicações 7, 8, 9, 10 ou 11, caracterizado pelo fato de que ajustar um nível inclui selecionar o coeficiente no conjunto para ser ajustado usando otimização de taxa4/4 distorção.
  13. 13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a otimização de taxadistorção usa uma métrica de custo predefinida para avaliar um custo de taxa.
  14. 14. Codificador para codificar um fluxo de bits de vídeo ao codificar dados de sinal para coeficientes para uma unidade transformada, o codificador caracterizado pelo fato de que compreende:
    um processador; uma memória; e uma aplicação de codificação armazenada na memória e contendo instruções para configurar o processador para executar o método de acordo com qualquer uma das reivindicações 7 a 13.
  15. 15. Mídia legível por processador não transitória, caracterizada pelo fato de que armazena instruções executáveis por processador que, quando executadas, configuram um ou mais processadores para executar o método de acordo com qualquer uma das reivindicações 1, 2, 3, 4 ou 5 e 7, 8, 9, 10, 11, 12 ou 13.
    1/11
    EKL_I
    2/11
    Fl<5. 2
    3/11 xC
    Ο 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    100
BR102013001124-0A 2012-01-20 2013-01-16 Método de decodificar um fluxo de bits de vídeo codificado, codificador para codificar um fluxo de bits de vídeo e mídia legível por processador não transitória BR102013001124B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12151973.0 2012-01-20
EP12151973.0A EP2618572B1 (en) 2012-01-20 2012-01-20 Multiple sign bit hiding within a transform unit

Publications (2)

Publication Number Publication Date
BR102013001124A2 true BR102013001124A2 (pt) 2018-07-31
BR102013001124B1 BR102013001124B1 (pt) 2022-04-19

Family

ID=45491487

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013001124-0A BR102013001124B1 (pt) 2012-01-20 2013-01-16 Método de decodificar um fluxo de bits de vídeo codificado, codificador para codificar um fluxo de bits de vídeo e mídia legível por processador não transitória

Country Status (11)

Country Link
EP (5) EP3399753B1 (pt)
JP (1) JP5537681B2 (pt)
KR (1) KR101538837B1 (pt)
CN (2) CN105959697B (pt)
AU (1) AU2013200325B2 (pt)
BR (1) BR102013001124B1 (pt)
CA (1) CA2801767C (pt)
ES (1) ES2776925T3 (pt)
MX (1) MX2013000711A (pt)
SG (1) SG192360A1 (pt)
TW (1) TWI524780B (pt)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2982447A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982446A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3399753B1 (en) * 2012-01-20 2019-12-11 Velos Media International Limited Multiple sign bit hiding within a transform unit
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US9456210B2 (en) * 2013-10-11 2016-09-27 Blackberry Limited Sign coding for blocks with transform skipped
US9264724B2 (en) 2013-10-11 2016-02-16 Blackberry Limited Sign coding for blocks with transform skipped
KR102218196B1 (ko) * 2013-10-28 2021-02-23 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
JP6401290B2 (ja) 2014-04-01 2018-10-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 多層構造化コーディングユニットのデータ隠蔽のための方法および装置
CN106416254B (zh) * 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
CN106162201B (zh) * 2015-03-26 2019-02-15 北京君正集成电路股份有限公司 一种基于符号位分组的图像数据压缩方法及装置
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
CA3014271C (en) 2016-02-12 2020-10-20 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
KR102210230B1 (ko) * 2016-02-12 2021-01-29 후아웨이 테크놀러지 컴퍼니 리미티드 스캔 순서 선택을 위한 방법 및 장치
CN105898300B (zh) * 2016-05-06 2019-03-26 西安电子科技大学 一种基于恢复变换系数的改进变换系数符号位隐藏方法
US10911773B2 (en) 2016-05-13 2021-02-02 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector difference coding and decoding
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
WO2019127003A1 (zh) * 2017-12-26 2019-07-04 富士通株式会社 图像编码方法、装置以及电子设备
WO2019156469A1 (ko) * 2018-02-09 2019-08-15 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
JP7085009B2 (ja) * 2018-03-07 2022-06-15 華為技術有限公司 マルチ符号ビット隠蔽及び残差符号予測を和合する方法及び装置
EP3738311A1 (en) * 2018-03-07 2020-11-18 Huawei Technologies Co., Ltd. Method and apparatus for residual sign prediction in transform domain
EP3738309A1 (en) * 2018-03-07 2020-11-18 Huawei Technologies Co., Ltd. Method and apparatus for detecting blocks suitable for multiple sign bit hiding
IL281629B2 (en) * 2018-09-21 2024-01-01 Guangdong Oppo Mobile Telecommunications Corp Ltd A method of encoding/decoding image signals and a device therefor
WO2023277451A1 (ko) * 2021-07-01 2023-01-05 세종대학교 산학협력단 부호 비트 숨김을 이용한 비디오 부호화 및 복호화 방법
WO2024008060A1 (en) * 2022-07-05 2024-01-11 Mediatek Inc. Method and apparatus of dependent quantization for video coding
WO2024060099A1 (zh) * 2022-09-21 2024-03-28 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570924B1 (en) * 1998-11-20 2003-05-27 Interval Research Corp Low cost video compression using fast, modified Z-coding of wavelet pyramids
EP1297709A1 (en) * 2000-06-14 2003-04-02 Koninklijke Philips Electronics N.V. Color video encoding and decoding method
EP1636995B1 (en) * 2003-06-25 2010-06-02 Thomson Licensing Encoding method and apparatus for insertion of watermarks in a compressed video bitstream
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
CN1893663A (zh) * 2005-09-02 2007-01-10 华为技术有限公司 多媒体通信的传输保护方法
KR20110106403A (ko) * 2009-01-27 2011-09-28 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
FR2982446A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3399753B1 (en) * 2012-01-20 2019-12-11 Velos Media International Limited Multiple sign bit hiding within a transform unit

Also Published As

Publication number Publication date
EP3094094A1 (en) 2016-11-16
EP3644611A1 (en) 2020-04-29
CN105959697A (zh) 2016-09-21
KR101538837B1 (ko) 2015-07-22
BR102013001124B1 (pt) 2022-04-19
EP4258663A3 (en) 2023-12-20
MX2013000711A (es) 2014-01-09
SG192360A1 (en) 2013-08-30
CN105959697B (zh) 2019-04-05
KR20130085977A (ko) 2013-07-30
EP3399753B1 (en) 2019-12-11
JP2013150323A (ja) 2013-08-01
TW201340717A (zh) 2013-10-01
AU2013200325B2 (en) 2014-12-04
JP5537681B2 (ja) 2014-07-02
CN103220515B (zh) 2016-06-29
EP3094094B1 (en) 2018-03-28
ES2776925T3 (es) 2020-08-03
EP3399753A1 (en) 2018-11-07
EP2618572A1 (en) 2013-07-24
CN103220515A (zh) 2013-07-24
CA2801767A1 (en) 2013-07-20
EP2618572B1 (en) 2016-08-24
EP4258663A2 (en) 2023-10-11
TWI524780B (zh) 2016-03-01
EP3644611B1 (en) 2023-09-06
CA2801767C (en) 2016-05-17

Similar Documents

Publication Publication Date Title
BR102013001124A2 (pt) Ocultação de múltiplos bits de sinal dentro de uma unidade transformada
US11786596B2 (en) Multiple sign bit hiding within a transform unit
US9900597B2 (en) Multi-level significance maps for encoding and decoding
US9584812B2 (en) Methods and devices for context set selection
WO2013113088A1 (en) Methods and devices for context modeling to enable modular processing
EP2590409B1 (en) Multi-level significance maps for encoding and decoding
TWI533705B (zh) 用於內容脈絡集選擇之方法及裝置
US9172962B2 (en) Methods and systems for pipelining within binary arithmetic coding and decoding
CA2801095A1 (en) Methods and devices for context modeling to enable modular processing
CA2800119C (en) Methods and systems for pipelining within binary arithmetic coding and decoding

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: BLACKBERRY LIMITED (CA)

B25G Requested change of headquarter approved

Owner name: BLACKBERRY LIMITED (CA)

B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

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 16/01/2013, OBSERVADAS AS CONDICOES LEGAIS.