BRPI0811626B1 - Método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador - Google Patents

Método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador Download PDF

Info

Publication number
BRPI0811626B1
BRPI0811626B1 BRPI0811626-1A BRPI0811626A BRPI0811626B1 BR PI0811626 B1 BRPI0811626 B1 BR PI0811626B1 BR PI0811626 A BRPI0811626 A BR PI0811626A BR PI0811626 B1 BRPI0811626 B1 BR PI0811626B1
Authority
BR
Brazil
Prior art keywords
alternative
encoding
watermark
image
value
Prior art date
Application number
BRPI0811626-1A
Other languages
English (en)
Inventor
Jeffrey Adam Bloom
Dekun Zou
Original Assignee
Contentarmor
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
Priority claimed from PCT/US2007/023172 external-priority patent/WO2008118145A1/en
Application filed by Contentarmor filed Critical Contentarmor
Publication of BRPI0811626A2 publication Critical patent/BRPI0811626A2/pt
Publication of BRPI0811626B1 publication Critical patent/BRPI0811626B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • G06T1/0035Output size adaptive watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23892Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0053Embedding of the watermark in the coding stream, possibly without decoding; Embedding of the watermark in the compressed domain

Abstract

método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador várias implementações são fornecidas, por exemplo, para a determinação do dado com impressão de marca d'água, execução da impressão da marca d'água, e processamento da impressão de marca d'água. pelo menos, uma implementação imprime a marca d'água no fluxo de bits em padrão avc fazendo uso da codificação por entropia no padrão cavlc. o dado com impressão de marca d'água pode ser determinado em um estágio de pré-processamento e armazenado para uso posterior em um fluxo de bits com marca d'água. um método acessa (810) o dado codificado de extensão variável incluindo-se uma codificação de informação identificando uma referência real utilizada para codificação prognosticada de uma imagem. a codificação da informação apresenta um valor particular. o método determina (830) um valor alternativo que seja diferente do valor particular, de modo que o valor alternativo consista de uma codificação de informação alternativa identificando uma referência diferente da atual referência. o valor alternativo é para uso na impressão de marca d'água do dado codificado de extensão variável.

Description

“MÉTODO E DISPOSITIVO IMPRIMIR MARCA D'ÁGUA EM DADOS CODIFICADOS DE EXTENSÃO VARIÁVEL, FLUXO CONTÍNUO DE DADOS CODIFICADOS DE EXTENSÃO VARIÁVEL E MÍDIA LEGÍVEL POR PROCESSADOR”
Referência Correlata a Pedidos Relacionados
Este pedido reivindica o benefício de cada um dos seguintes documentos: (1) Pedido Provisório N° de Série 60/934634, intitulado “Modifying a Coded Bitstream”, e depositado em 14 de Junho, 2007 (Documento Jurídico PU070137), e (2) Pedido PCT N° PCT/US2007/023172, intitulado “Modifying a Coded Bitstream”, depositado em 2 de Novembro, 2007 (Documento Jurídico PU070063). Cada um desses pedidos de prioridade é incorporado no presente relatório em sua totalidade.
FUNDAMENTOS
Campo Técnico
Pelo menos, uma das implementações descritas neste relatório diz respeito a codificação.
Descrição do Estado Anterior da Técnica
Tipicamente, uma impressão de marca d'água envolve modificar-se uma porção dos dados de tal maneira que a marca d'água possa vir a ser detectada posteriormente. Vários tipos diferenciados de dados podem ser marcados assim, incluindo-se dados codificados. Entretanto, os esquemas de codificação estão progredindo e os mecanismos existentes para a modificação dos dados codificados podem não fornecer as condições de capacitação para impressão das marcas d'água desejáveis para tais esquemas de codificação avançados.
SUMÁRIO
De acordo com um aspecto generalizado, o dado codificado de extensão variável é acessado para a inclusão de codificação de informação identificando uma referência real utilizada para codificação de prognóstico de uma imagem, tendo a codificação da informação um valor particular. Um valor alternativo é determinado de maneira diferenciada do valor particular, de modo que o valor alternativo consista de uma codificação de informação alternativa que identifica uma referência diferente da referência real. O valor alternativo é destinado para uso de impressão de uma marca d'água no dado codificado de extensão variável.
De acordo com outro aspecto genérico, um decodificador de entropia é destinado para decodificação do dado codificado de extensão variável incluindo-se uma codificação de informação identificando uma referência real usada para codificação de prognóstico de uma imagem. A codificação da informação assume um valor particular. Um gerador de marca d'água é acoplado junto ao decodificador de entropia destinado a determinação de um valor alternativo diferente do valor particular, de modo que o valor alternativo consista de uma codificação de informação alternativa identificando uma referência diferenciada da referência
Petição 870190017582, de 21/02/2019, pág. 12/69
2/42 real. O valor alternativo destina-se para uso de impressão de uma marca d'água em dado codificado de extensão variável.
De acordo com outro aspecto genérico, o dado com marca d'água é destinado para uso em dado codificado de extensão variável para impressão de marca d'água que inclua uma codificação da informação identificando uma referência real utilizada para codificação de prognóstico de uma imagem. A codificação da informação assume um valor particular. O dado com marca d'água inclui um valor alternativo que é diferente daquele valor particular, de maneira que o valor alternativo consista de uma codificação da informação alternativa que identifica uma referência diferente da referência real. O valor alternativo apresenta-se como uma substituição para o valor particular para uso de impressão de uma marca d'água no dado codificado de extensão variável.
De acordo com outro aspecto genérico, o dado codificado de extensão variável é acessado com a inclusão de uma codificação da informação identificando uma referência real para prognóstico codificado de uma imagem. A codificação da informação assume um valor particular. Um valor alternativo é acessado sendo diferente do valor particular, de maneira que, o valor alternativo consista de uma codificação da informação alternativa identificando uma referência diferente da referência real. O valor alternativo é inserido no dado codificado de extensão variável na forma de uma substituição ao valor particular junto a marca d'água da imagem.
De acordo com outro aspecto genérico, o dado codificado de extensão variável representa a codificação de uma imagem. O dado codificado de extensão variável inclui uma codificação de informação identificando uma referência alternativa que seja diferente da atual referência usada para codificação de prognóstico da imagem. A informação identificando a referência alternativa provêm uma marca d'água para a imagem.
De acordo com outro aspecto genérico, decodifica-se o dado codificado de extensão variável para codificação de uma imagem. O dado codificado de extensão variável inclui uma codificação de informação identificando uma referência alternativa que é diferente de uma atual referência utilizada no prognóstico codificado de uma imagem. A informação identificando a referência alternativa fornece uma marca d'água para a imagem.
De acordo com outro aspecto genérico, uma imagem em domínio pixel inclui um fator detectável advindo de uma marca d'água de uma codificação de extensão variável de um ou mais elementos de sintaxe a partir de um prognóstico de codificação da imagem. A codificação de extensão variável inclui uma codificação de informação identificando uma referência alternativa que seja diferente de uma atual referência utilizada na codificação de prognóstico da imagem. Com a informação identificando a referência alternativa fornecendo a marca d'água para a imagem.
De acordo com outro aspecto genérico, a codificação de um prognóstico de uma
Petição 870190017582, de 21/02/2019, pág. 13/69
3/42 versão de marca d'água de uma imagem consiste de uma codificação de extensão variável. O dado codificado de extensão variável inclui o indicador de uma referência momentânea sendo utilizada na codificação da versão da imagem possuindo marca d'água e um indicador de um resíduo resultante. A versão da imagem possuindo marca d'água apresenta uma ca5 racterística detectável que fornece uma marca d'água. A característica detectável resulta da (1) modificação de uma codificação de extensão variável prévia de uma codificação de prognóstico anterior da imagem, a codificação de prognóstico anterior tendo como base uma referência anterior e incluindo informação identificando a referência anterior, sendo que a modificação inclui distorção da informação de maneira a indicar uma referência alternativa 10 fornecendo a característica detectável para a imagem, e (2) decodificação da codificação de extensão variável anterior e o codificação de prognóstico anterior da imagem para a produção da versão da imagem com marca d'água aonde encontra-se presente a característica detectável.
De acordo, com outro aspecto genérico, a informação é acessada identificando uma 15 localização no dado codificado de extensão variável aonde uma codificação de extensão variável da informação encontra-se localizada. A informação identifica, pelo menos, uma das duas referências associadas com um prognóstico de codificação de uma imagem. A codificação da informação é acessada em uma localização no dado codificado de extensão variável. Determina-se, com base na codificação da informação, aonde, pelo menos, duas refe20 rências são identificadas. A informação de carga útil é determinada com base em um resultado determinando-se, pelo menos, qual das duas referências será identificada.
De acordo com outro aspecto genérico, uma imagem em domínio pixel é acessada incluindo um fator detectável advindo de uma marca d'água de uma codificação de extensão variável de um ou mais elementos de sintaxe a partir da codificação de prognóstico da ima25 gem. A codificação de extensão variável inclui uma codificação de informação identificando uma referência alternativa que seja diferente de uma referência real utilizado no prognóstico de codificação da imagem. A informação identificando a referência alternativa provêm a marca d'água para a imagem. A detecção do metadado é acessada indicando uma localização na imagem em domínio pixel aonde localiza-se o fator detectável. A imagem em domí30 nio pixel na localização é analisada para a determinação de um valor para o fator detectável.
A detecção adicional de metadado é acessada indicando um valor de comparação para o fator detectável. O valor determinado para o fator detectável é comparado com o valor de comparação. A informação de carga útil é determinada com base em um resultado comparativo.
Os detalhes referentes a uma ou mais implementações são estabelecidos nos de- senhos de acompanhamento e pela descrição a seguir. Mesmo se descritas em uma maneira particular, deve estar claro que as implementações podem ser configuradas ou personifiPetição 870190017582, de 21/02/2019, pág. 14/69
4/42 cadas em várias maneiras. Por exemplo, uma implementação pode ser executada na forma de um método, ou personificada na forma de uma aparelhagem configurada para desempenho de um conjunto de operações, ou personificada na forma de uma aparelhagem armazenando instruções para o desempenho de um conjunto de operações, ou personificada como 5 um sinal. Outros aspectos e fatores tornar-se-ão aparentes a partir da descrição detalhada a seguir considerada em conjunto com os desenhos de acompanhamento e as reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
A Figura 1 consiste de um diagrama de blocos de uma implementação para impressão de marca d'água em um fluxo codificado por entropia.
A Figura 2 compreende de um diagrama de blocos apresentando uma ordenação de operações utilizadas na modificação de um fluxo de bits codificado.
A Figura 3 ilustra quatro modos de prognóstico.
A Figura 4, incluídas as Figura 4a e Figura 4b, consiste de uma tabela apresentando tipos de macroblocos para um padrão particular, e apresentando informação adicional 15 que é determinada pelos tipos de macro blocos.
A Figura 5 consiste de uma tabela mostrando uma codificação exponencial Golomb fornecida em um padrão particular.
A Figura 6 consiste de um fluxograma de uma implementação para a determinação de valores de detecção para modos de prognóstico interno alternativos.
A Figura 7 consiste de um fluxograma de uma implementação para a determinação de metadado com impressão de marca d'água.
A Figura 8 consiste de um fluxograma de uma implementação para a determinação de valores alternativos para um indicador de referência.
A Figura 9 consiste de um fluxograma de uma implementação para inserção de va25 lores de reposição.
A Figura 10 consiste de um fluxograma de uma implementação para inserção de valores alternativos para um indicador de referência.
A Figura 11 consiste de um fluxograma de uma implementação para identificação de uma carga útil advinda dos dados com marca d'água.
A Figura 12 consiste de um fluxograma de uma implementação para identificação de uma carga útil a partir do dado de imagem com marca d'água.
A Figura 13 consiste de um diagrama de blocos de uma implementação referente a conteúdo com impressão de marca d'água e com detecção de uma carga útil.
DESCRIÇÃO DETALHADA
Ocorrem aplicações de impressão de marca d'água em meios de multimídias aonde a impressão de marca d'água deve modificar um fluxo de bits codificado por entropia para obtenção de um fluxo de bits apresentando a marca d'água que permanecerá satisfazendo
Petição 870190017582, de 21/02/2019, pág. 15/69
5/42 tanto o esquema de codificação por entropia quanto o formato de dado inerente (ou seja, o padrão de compressão). Frequentemente, é necessário ainda que o processo de impressão de marca d'água não venha a introduzir artefatos perceptíveis no dado de multimídia e que a carga útil embutida seja recuperável mesmo após haver a descompressão e processamen5 to. Para muitas aplicações o processo de impressão de marca d'água pode apresentar acesso a alguns dados meta embutidos que foram, normalmente, pré-computados em uma análise ou estágio de pré-processamento. Pelo menos uma implementação descrita neste relatório refere-se ao processo de impressão, a geração de tal metadado embutido para aquele processo de impressão, e a recuperação da carga útil embutida referente aquele 10 processo de impressão.
Pelo menos, uma implementação fornece uma marca d'água junto a um fluxo de bits do tipo H.264/MPEG-4AVC através da modificação de um fluxo de bits codificado por entropia diretamente sem a necessidade de decodificação e recodificação entrópica. A modificação fornece a marca d'água. Em um tal tipo de implementação, o código por entropia 15 consiste de um esquema de codificação conhecido como Codificação de Extensão Variável Adaptativa com Base no Contexto (CAVLC), com ampla utilização no padrão tipo H.264/MEPG-4 AVC (“AVC”).
O padrão AVC é referenciado ainda pela Organização Internacional para a Padronização/Comissão Internacional Eletrotécnica do Grupo-4 de Especialistas em Imagens Mó20 veis (MPEG-4) Parte 10 para Padrão de Codificação de Vídeo Avançado (AVC) /Recomendação H.264 pela União Internacional de Telecomunicações, Setor de Telecomunicações (ITU-T). O padrão CAVLC pode ser também empregado em extensões ao padrão AVC. Um primeiro tipo de tal extensão consiste de uma extensão (Annex G) de codificação de vídeo escalonável (“SVC”) referida como a extensão AVC de codificação de vídeo esca25 lonável H.264/MEPG-4 (a “extensão SVC”). Um segundo tipo de extensão consiste de uma extensão (Annex H) de vídeo de multi visualização (“MVC”) referida como a extensão AVC, MVC H.264/MPEG-4 (a “extensão MVC”).
Em, pelo menos, uma implementação envolvendo o padrão AVC, um macrobloco é codificado com prognóstico e os elementos de sintaxe da codificação com prognóstico são 30 codificados por entropia posteriormente, utilizando-se o padrão CAVLC. Para prognóstico interno, diferenciadamente do prognóstico intermediário, um macrobloco é codificado com prognóstico sem o recurso de outras imagens. Ou seja, sem a utilização de imagens referenciais. Em lugar disso, o macrobloco é codificado com prognóstico em função dele próprio ou em função de outro macrobloco presente na mesma imagem (uma imagem pode consis35 tir, por exemplo, de um quadro ou um campo). Um dos elementos de sintaxe referente aos macroblocos com prognóstico interno consiste de um tipo de macrobloco, vindo a indicar o modo de prognóstico interno bem como outras informações. Em pelo menos uma implemenPetição 870190017582, de 21/02/2019, pág. 16/69
6/42 tação, o tipo de macrobloco (o tipo macrobloco “antigo”) para um macrobloco é alterado para um novo tipo de macrobloco, de maneira que seja indicado um modo diferente de prognóstico interno para um macrobloco 16x16 em particular. Contudo, todas as outras informações indicadas pelo tipo de macrobloco antigo permanecem inalteradas. Além do mais, o novo tipo de macrobloco (o elemento de sintaxe) compreende o padrão CAVLC codificado utilizando a mesma quantidade de bits empregada na codificação do tipo de macrobloco antigo.
A mudança acima nos tipos de macroblocos pode ser feita para embutir-se uma marca d'água no dado. Além disso, a determinação da reposição do tipo de macrobloco e a correspondente reposição de bits CAVLC podem ser feitas fora de serviço, e então, posteriormente quando o conteúdo (por exemplo, o dado de vídeo) for acessado, a reposição de bits CAVLC pode ser realizada em uma maneira eficiente em tempo real não havendo necessidade de decodificação de entropia. Outras implementações, entretanto, desempenham toda ou parte da reposição após a decodificação ter sido realizada, tanto durante o processo de determinação da informação de reposição, ou em um estágio subsequente.
Em muitas aplicações existe a necessidade de um mercado crescente para impressão de marca d'água em um fluxo de vídeo comprimido. Abordagens anteriores procediam a descompressão do fluxo, aplicando a impressão da marca d'água no domínio pixel, e então, recomprimindo o dado no domínio pixel modificado. Um avanço inicial foi o de usar a informação a partir do fluxo comprimido original para simplificação da recompressão. Isto veio a ser melhorado com técnicas que parcialmente descomprimiam o fluxo através de aplicação da decodificação de entropia e análise do fluxo de bits codificado. Após a decodificação de entropia, os algoritmos com impressão de marca d'água trabalhavam diretamente nos elementos de sintaxe, caracterizados pelos coeficientes e vetores de movimento. Após o fluxo ter sido modificado para representação do dado com marca d'água, aplicava-se a codificação por entropia. Faz-se a descrição de várias implementações contidas neste relatório, em que, pelo menos, algumas das quais aplicam a impressão de marca d'água em um fluxo de bits codificado por entropia diretamente sem as etapas de recodificação e decodificação de entropia.
A impressão de marca d'água junto a um fluxo CAVLC de acordo com, pelo menos, parte da implementação descrita envolve a mudança de um elemento de sintaxe codificado no fluxo CAVLC. Em regra, a mudança de um elemento de sintaxe codificado irá originar uma mudança na extensão de bits codificado. Pelo menos, uma implementação endereça a situação em que a extensão de bits codificados é mantida constante, porém outras implementações possibilitam a que a extensão dos bits codificados varie.
Pelo menos, parte deste relatório concentra-se na maneira como se faz a geração de metadados para obtenção de se embutir uma impressão de marca d'água no encadeamento. Pelo menos, uma implementação altera o modo de prognóstico interno, sendo robusPetição 870190017582, de 21/02/2019, pág. 17/69
7/42 ta para várias modificações do fluxo de bits. Outras implementações podem modificar a codificação no padrão CAVLC de coeficientes de resíduos. Uma vantagem da modificação do modo de prognóstico interno é que através da mudança de uma quantidade relativamente pequena de bits (por exemplo, 7 bits em uma implementação descrita abaixo) em um fluxo 5 de bits de padrão CAVLC, uma mudança ampla e detectável (embora não perceptível) pode ser fornecida para um dado bloco. Tal mudança pode também ser projetada de maneira que seja robusta a alterações no fluxo de bits codificado. Por exemplo, caso o fluxo de bits codificado seja decodificado e daí recodificado utilizando diferentes parâmetros (por exemplo, tamanhos de blocos, ou modos para blocos individuais), o fluxo de bits apresentar-se-á po10 tencialmente completamente diferente, mas pode-se esperar que alterações originais venham a ser detectadas através de análise dos valores pixels decodificados.
Fornece-se uma breve discussão do padrão CAVLC e da Impressão de Marca d'Água para atendimento quanto a compreensão de várias implementações. Frequentemente, estas discussões são de caráter específico. Contudo, elas não pretendem ser completas e, 15 ainda, cada detalhe nestas discussões pode não necessariamente se aplicar a todas as implementações descritas neste relatório. Além disso, estas discussões incluem muito material que é do conhecimento de especialistas na área. Entretanto, estas discussões irão invariavelmente incluir material, ou então a organização do material, de aspecto inovativo, muito embora tais circunstâncias não possam ser salientadas especificamente. Estas discussões 20 não pretendem limitar o alcance da aplicação. Em contrário, estas discussões proporcionam um ou mais contextos específicos, de muitos contextos possíveis, atendendo o leitor na compreensão das implementações.
Fornece-se adiante uma discussão do padrão CAVLC. A etapa final em muitos métodos de compressão de vídeo consiste de menor perda da codificação por entropia do dado 25 comprimido. No padrão AVC, o padrão CAVLC é habitualmente utilizado para codificação por entropia. O padrão CAVLC é uma técnica de codificação bem conhecida e faz parte de uma classe de técnicas de codificação referenciadas como códigos de extensão variável. Em regra, os códigos de extensão variável, em contraste, por exemplo, com os códigos de extensão fixa, designam palavras de código de menor extensão junto aos valores de ele30 mentos de sintaxe que apresentem, ou sejam aguardados apresentar, uma taxa mais elevada de ocorrência. O padrão CAVLC em regra proporciona uma designação separada, entre as palavras códigos e os valores dos elementos de sintaxe, para cada tipo de elemento de sintaxe. Os códigos de extensão variável compreendem de uma classe de códigos que se insere dentro da família de códigos por entropia. Os códigos aritméticos, incluindo o CABAC 35 (Codificação Aritmética Binária Adaptativa com Base no Contexto) são outros tipos de classes de códigos que se inserem dentro da família de códigos por entropia. Apresenta-se adiante uma breve discussão do campo genérico de marcas d'água e mais especificamente a
Petição 870190017582, de 21/02/2019, pág. 18/69
8/42 área inclusa neste campo aonde as implementações dizem referência. Os especialistas com conhecimentos na área de marcas d'água são familiarizados com grande parte da informação prestada neste relatório.
A frase “impressão digital de marca d'água”, da forma usada no relatório presente, refere-se, tipicamente a métodos que modificam um trabalho de arte (tipicamente uma imagem, uma sequência de imagem contínua, ou um clipe de áudio) de acordo com algum dado de carga útil, de modo que as seguintes condições sejam satisfeitas:
1. A versão modificada do trabalho é, perceptualmente, indistinguível em relação a versão original do trabalho, e
2. O dado de carga útil pode ser recuperado a partir da versão modificada do trabalho em um tempo posterior.
Uma subclasse de métodos de marcas d'água digital, referenciada como “marca d'água digital robusta”, introduz uma terceira condição:
3. O dado de carga útil pode ser recuperado a partir de uma versão distorcida da versão modificada do trabalho, aonde a distorção pode ter sido introduzida pelo processamento comum do sinal e manuseio do sinal aonde o trabalho modificado possa ter sido manuseado (por exemplo, compressão, filtragem para redução de ruído, acentuações de cor) ou a distorção pode ter sido introduzida intencionalmente em função de uma tentativa em contrário de tornar o dado de carga útil irrecuperável.
Ocorrem muitas aplicações de marcas d'água digitais robustas incluindo-se, sem se estar limitado, as seguintes:
1. Identificação do Titular: a carga útil da marca d'água identifica o titular de um trabalho.
2. Controle de Cópia: a carga útil de marca d'água indica um direito autoral associ- ado com um trabalho. Os dispositivos para a visualização, duplicação, registro, impressão, distribuição, ou qualquer outra ação podem recuperar o dado de carga útil e restringir a ação para os que possuam autorização ao direito autoral.
3. Rastreio da Transação: a carga útil de marca d'água identifica o recipiente a quem a cópia de um trabalho foi legitimamente distribuída. Isto pode ser útil quando se legi- timando os recipientes que não receberam os direitos a fazerem distribuições adicionais do trabalho. Caso um trabalho não-autorizado seja descoberto, o titular do conteúdo original pode recuperar a carga útil a partir da cópia não-autorizada e identificar o recipiente responsável pelo uso não-autorizado.
Os especialistas na área irão identificar que ocorrem muitas outras aplicações de 35 marcas d'água digitais robustas.
A impressão de marca d'água pode ser realizada na “faixa de base” ou junto aos trabalhos comprimidos. O grupo de imagens na faixa de base ou sequências de imagens
Petição 870190017582, de 21/02/2019, pág. 19/69
9/42 contínuas consistem, por exemplo, de representações no domínio pixel. Os trabalhos de áudio na faixa de base consistem, por exemplo, de amostragens de áudio. Algumas aplicações necessitam da impressão de marcas d'água de um trabalho comprimido. Nesta situação, a saída consiste também de um trabalho comprimido. A etapa derradeira de compres5 são compreende, tipicamente, a codificação por entropia e a primeira etapa de descompressão consiste tipicamente de decodificação de entropia. O processo de codificação/decodificação entrópico dá-se tipicamente sem perdas, mas o processo de compressão inclui um processo de perdas. Uma abordagem para a impressão de marca d'água de um trabalho comprimido é inicialmente se aplicar a decodificação de entropia, e daí aplicar a 10 descompressão para obter-se uma representação da faixa de base. A representação da faixa de base é marcada com marca d'água e o trabalho resultante com esta marca d'água é comprimido e codificado por entropia. Esta abordagem pode consumir bastante tempo resultando na degradação perceptível da qualidade devido a recompressão.
Para se melhorar a qualidade perceptual e para se reduzir a computação necessá15 ria, informações advindas do trabalho comprimido original, tal como vetores de movimento, decisões de modo, fatores de qualidade, e outros tipos de informações, podem ser salvas durante a descompressão e utilizadas durante a recompressão. Isto significa que a recompressão não precisa realizar nenhuma estimativa de movimento (economizando assim tempo e serviço computacional) e o uso dos fatores de quantização originais e decisões de mo20 dos pode resultar no melhoramento da qualidade perceptual.
Vem surgindo uma classe de algoritmos de impressão de marcas d'água denominada de “impressão de marca d'água em domínio comprimido”. Estes métodos podem ser vistos desempenhando uma “decodificação parcial” antes da presença da impressão de marca d'água, em troca da “plena decodificação” anteriormente descrita. Neste caso, o tra25 balho comprimido é primeiramente decodificado por entropia para exposição dos elementos de sintaxe do trabalho comprimido. Estes podem incluir coeficientes (blocos DCT (transformada discreta de coseno) ou coeficientes de comprimentos de onda, por exemplo), vetores de movimento, tipos de imagens, modos de prognóstico, e muitos outros elementos de sintaxe. O algoritmo para impressão de marca d'água modifica diretamente alguns daqueles 30 elementos de sintaxe. Finalmente, os elementos de sintaxe modificados são codificados por entropia para obtenção do trabalho comprimido modificado.
Pelo menos, uma implementação descrita neste relatório insere-se dentro de uma nova classe de algoritmos de impressão de marcas d'água que poderia ser denominada como “impressão de marcas d'água em fluxo codificado por entropia”. Estes métodos modi35 ficam diretamente um fluxo codificado por entropia, de acordo com o ilustrado na Figura 1.
Com referência a Figura 1, um sistema 100 desempenha a impressão de marca d'água. O sistema 100 pode ser considerado também como um processo. O fluxo original
Petição 870190017582, de 21/02/2019, pág. 20/69
10/42 comprimido é modificado diretamente pela modificação de fluxo 102, de acordo com a carga útil, e a saída consiste do fluxo comprimido 103 marcado resultante. A carga útil pode ser, por exemplo, o número em série do elemento de conteúdo (por exemplo, um DVD), o modelo do elemento, ou outra informação desejada a ser utilizada para posterior identificação.
Informa-se o processo de modificação de fluxo em função (1) do local aonde são feitas todas as mudanças e (2) aonde todas as mudanças atuais são feitas. O processo de modificação de fluxo é informado quanto a esta informação através do metadado que pode ser gerado durante um estágio de pré-processamento 104.
O metadado 105 é gerado pela decodificação por entropia 106 (e possivelmente por 10 decodificações adicionais caso sejam utilizadas múltiplas camadas de codificação) do fluxo comprimido original, gerando-se uma marca d'água 108. O metadado identifica as localizações no interior do fluxo aonde as mudanças são para serem feitas (ou seja, aonde será gerada a impressão da marca d'água), indicando como o fluxo deverá ser alterado em resposta a diferentes símbolos na carga útil. As implementações constantes da Figura 1 são 15 descritas em função do metadado gerado através de uma análise dos elementos de sintaxe decodificados do trabalho comprimido. Um aspecto desafiador de um método de impressão de marca d'água consiste na geração do metadado. A descrição adiante explica como isto pode ser feito para uma ou mais implementações.
O parágrafo anterior e a Figura 1 sugerem que possa ocorrer um estágio de pré20 processamento 104. Prático se faz salientar-se a situação em que ocorrem três eventualidades relevantes. A primeira eventualidade é quando/onde o fluxo de bits comprimido é analisado para a geração de alguns metadados. A segunda eventualidade é onde/quando parte ou a totalidade dos metadados gerados na primeira eventualidade são utilizados juntamente com uma específica sequência de símbolos, conhecida como a carga útil, para modificação 25 do fluxo de bits. A terceira eventualidade é onde/quando parte (ou a totalidade ou nenhum) dos metadados gerados na primeira oportunidade é utilizada para análise de um fluxo de bits modificado, de uma sequência de imagens continuadas obtidas pela descompressão do fluxo de bits modificado, ou de uma versão distorcida da sequência de imagens continuadas obtidas pela descompressão do fluxo de bits modificado, A finalidade desta análise, na ter30 ceira oportunidade, é a de se recuperar a carga útil.
De modo a entender-se o contexto, considera-se a primeira eventualidade vindo a ocorrer antes da distribuição de um trabalho, a segunda eventualidade vindo a ocorrer durante a duplicação quando a carga útil utilizada para cada cópia identifica de forma única aquela cópia, e a terceira eventualidade ocorrendo após uma cópia não-autorizada do traba35 lho ter sido encontrada, em cuja oportunidade recupera-se a carga útil com a revelação de quais das cópias distribuídas foi a fonte de origem da cópia não-autorizada. Este exemplo é só para ilustração, e não pretende sugerir quaisquer limitações junto a aplicação desses
Petição 870190017582, de 21/02/2019, pág. 21/69
11/42 conceitos. Além disso, enquanto pode haver requisitos específicos referentes a aplicação, não existe qualquer imposição técnica que a primeira eventualidade (o processamento) e a segunda eventualidade (embutir-se a marca d'água) venham a ser diferentes. De fato, todas as três “eventualidades” podem ser idênticas.
Exemplos adicionais são referenciados a Figura 1. O estágio de pré-processamento pode ser executado durante a autorização de um filme para eventual fornecimento, por exemplo. Em um cenário, desempenha-se um processo para identificação de localizações de elementos codificados pelos quais tenham sido determinados valores de reposição aceitáveis. Os resultados daquele processo são armazenados (por exemplo, as localizações de 10 tais elementos codificados e os valores de reposição aceitáveis) no metadado que é incluído com o filme codificado. Para este exemplo, consideremos dois casos. Em um caso, cada entrada do metadado identifica uma localização no fluxo de bits e um valor de reposição aceitável. Em um segundo caso, dois valores de reposição aceitáveis são identificados em cada entrada de metadado.
A modificação de fluxo pode ser executada durante a reprodução do filme, aonde, por exemplo, o número de série do elemento (por exemplo, um reprodutor de software, um reprodutor de periféricos de linha, ou um reprodutor de DVD) pode ser utilizado como a carga útil. A carga útil é utilizada, por exemplo, para determinar se deve ser realizada a reposição dos elementos codificados identificados. Por exemplo, caso uma simples alternativa 20 aceitável seja providenciada no metadado, então um numeral “1” na sequência da carga útil pode indicar que o valor original foi substituído com o valor alternativo, e um numeral “0” pode indicar que o valor original foi mantido. Como forma de outro exemplo, todas as localizações identificadas podem ser substituídas, e a carga útil pode indicar quais dos dois valores de reposição providenciados (referentes a cada localização) devam ser usados. Por 25 exemplo, um “0” pode indicar o uso da primeira reposição, enquanto um “1” pode indicar o uso da segunda reposição. Observe-se que as palavras “alternativa” e “reposição” são empregadas com frequência de forma intercambiada nesta aplicação. Ainda, a alternativa (ou reposição) pode se referir a uma variedade de itens, dependendo do contexto. A alternativa pode, por exemplo, consistir de um valor alternativo para um elemento de sintaxe ou um 30 valor alternativo para bits codificados representando um valor ou um elemento de sintaxe.
A recuperação da carga útil pode ser executada em uma localização geográfica que não esteja relacionada com localizações geográficas aonde tenha ocorrido a modificação do fluxo. Em outras palavras, a modificação de fluxo pode ocorrer em Toledo, Ohio e a recuperação da carga útil se realizar em Burbank, Califórnia. O fator essencial é ter-se acesso a 35 um documento contendo o dado com base em um fluxo modificado. Por exemplo, um fluxo modificado pode ser copiado eletronicamente e disposto em um DVD gravável, ou um fluxo modificado pode ser apresentado e então gravado novamente e codificado, e daí colocado
Petição 870190017582, de 21/02/2019, pág. 22/69
12/42 em um DVD gravável. Caso este DVD gravável seja adquirido, então este DVD gravável pode ser analisado para a recuperação da carga útil. A recuperação da carga útil pode ser assistida com o metadado de detecção (mostrado na Figura 1). O metadado de detecção pode indicar, por exemplo, as localizações no fluxo de dados aonde a informação de marca 5 d'água faz-se embutida, bem como os valores de reposição aceitáveis. O metadado de detecção pode também, ou alternativamente, indicar, por exemplo, uma localização no interior de uma imagem (por exemplo, quadro ou campo) aonde a informação de marca d'água esteja voltada para a produção de uma mudança detectável no dado em domínio pixel. Neste último cenário, o metadado de detecção pode indicar também as mudanças aguardadas 10 conforme explicado adiante. O metadado de detecção pode ser produzido na mesma oportunidade que foi produzido o metadado com marca d'água (embutida), ou em um estágio diferente.
Uma “marca d'água” pode se referir, por exemplo, ao dado embutido que substitui o dado original em um fluxo de dados. Uma “marca d'água” pode ainda, ou alternativamente, 15 referir-se ao efeito que é produzido em uma imagem de vídeo exibida, decodificada no conjunto de imagens resultantes com faixa de base do dado de reposição embutido no fluxo de dados. Assim, a “marca d'água” pode se referir a um ou mais dados embutidos ou ao efeito produzido no dado de faixa de base resultante (por exemplo, uma imagem ou um clipe de áudio). Por exemplo, o efeito produzido pode ser uma mudança na luminância de um ma20 crobloco que seja detectável, porém não perceptível ao observador.
Considera-se em seguida uma discussão quanto aos dados com base no padrão CAVLC embutidos em um fluxo de bits codificados no padrão AVC. Uma maneira de obtenção de marca d'água é a de que o fluxo comprimido alterado representa ainda um fluxo válido (permanece dentro do padrão de compressão específico). Este requisito deve ser satis25 feito quando a técnica de compressão faz uso de uma técnica de codificação por entropia com extensão variável. Este é o caso para o padrão AVC com CAVLC. O elemento de sintaxe alterado (ou seja, modificado) será codificado utilizando o padrão CAVLC, e esses bits CAVLC modificados irão substituir os valores originais codificados no padrão CAVLC no fluxo de bits. Estes bits podem apresentar a mesma extensão (mesmo números de bits) co30 mo a codificação CAVLC do elemento de sintaxe não-modificado, ou podem ter uma extensão diferente. Contudo, se a extensão é a mesma ou não, não existe efeito na precisão referente aos demais bits CAVLC, devido que a codificação no padrão CAVLC de um elemento de sintaxe não depende nas codificações anteriores ou subsequentes do elemento de sintaxe.
Nas várias implementações descritas, ocorrem duas etapas genéricas modificando um fluxo de bits codificado pelo padrão CAVLC, mas as etapas podem ser executadas em qualquer ordem. Na discussão destas etapas, faz-se referência a “Etapa 1” e “Etapa 2”, mas
Petição 870190017582, de 21/02/2019, pág. 23/69
13/42 estes números de etapas não querem representar ou impor qualquer ordem específica ou particular quanto ao desempenho das mesmas. As Figuras 2a e 2b incluem diagramas de bloco 200 e 210 com cada qual apresentando estas duas etapas genéricas.
Fornecido um fluxo de bits no padrão AVC codificado no padrão CAVLC, a Etapa 1 deve construir um mapeamento (202) a partir do elemento alvo junto ao bloco codificado original. Em uma implementação prática, isto é feito através da decodificação do fluxo de bits e manutenção do rastreio de cujos bits de fluxo de bits tenham produzido quais elementos de sintaxe. Por exemplo, um decodificador CAVLC pode ser aplicado junto ao fluxo de bits comprimido para exposição dos elementos de sintaxe.
A Etapa 2 consiste na busca de um ou mais valores alternativos aceitáveis para o elemento alvo (204). Uma forma de buscar-se os valores alternativos aceitáveis é a de se examinar todos os valores alternativos possíveis e determinar quais, se houver algum, são aceitáveis. Cada valor de sintaxe alternativo possível compreende uma codificação CAVLC gerando os bits alternativos. Em regra, todos os valores de sintaxe alternativos possíveis compreendem de “valores alternativos aceitáveis”. Entretanto, várias implementações introduzem um ou mais critérios adicionais.
Um desses critérios consiste na extensão de codificação CAVLC. Devido ao padrão CAVLC ser uma codificação de extensão variável, alguns valores de sintaxe alternativos irão alterar a extensão da codificação CAVLC. Isto é aceitável em algumas implementações, 20 mas outras implementações impõem um requisito em que a extensão de codificação CAVLC permanece idêntica antes ou depois da presença da marca d'água. Outros critérios relacionam-se, por exemplo, com a fidelidade e capacidade de detecção, conforme discutido adiante.
Duas ordenações diferentes destas duas etapas 202, são detalhadas nas Figuras 25 2a e 2b, respectivamente. Observe-se que na Figura 2b, o mapeamento e a designação na Etapa 1 (202) é somente requerido em referência aos elementos alvo aonde, pelo menos, um valor de sintaxe alternativo tenha sido descoberto na Etapa 2 (204).
O padrão de compressão de vídeo AVC, como a maioria dos padrões de compressão de vídeo, alcança a compressão através do prognóstico de valores em um bloco de 30 pixels a partir de valores em um ou mais blocos de pixels previamente codificados. A diferença entre o prognóstico e os valores atuais, frequentemente se denomina de resíduo, que é então transformado e quantizado. O bloco ou blocos utilizados para o prognóstico, os blocos de referência, podem advir da mesma imagem ou de diferentes imagens. Os blocos cujos blocos de referência advêm da mesma imagem são denominados de blocos codificados 35 internamente (Intracoded) ou simplesmente blocos internos. Neste caso, o prognóstico é frequentemente denominado prognóstico interno.
Para as amostras de luminância, todo um macrobloco 16x16 pode ser predito interPetição 870190017582, de 21/02/2019, pág. 24/69
14/42 namente tanto no seu todo ou podendo ser dividido em sub-blocos 8x8 ou mesmo subblocos 4x4. Cada sub-bloco irá então consistir em um prognóstico interno independente. Para prognóstico interno de luminância 16x16, define-se como padrão quatro modos. Para os sub-blocos 8x8, 4x4, nove modos são definidos para cada tipo de bloco. O codificador seleciona o modo de prognóstico para cada bloco que minimiza a diferença entre um bloco de prognóstico e os atuais valores do pixel.
Para simplificar a matéria, discute-se no presente relatório somente o prognóstico interno 16x16. Para este prognóstico interno 16x16, quatro modos são definidos conforme ilustrado na Figura 3:
1. O Modo 0 (vertical) 310 - Extrapolação a partir de amostras superiores (H). Neste modo, os pixels da vizinhança fronteiriços à borda superior de um bloco são utilizados como um prognóstico para todos os pixels nas colunas correspondentes do bloco. Ou seja, para uma dada coluna no bloco 16x16, o pixel fronteiriço no bloco adjacente verticalmente superior é utilizado como o prognóstico para toda a coluna.
2. Modo 1 (horizontal) 320 - Extrapolação a partir de amostras à esquerda (V). Neste modo, os pixels da vizinhança fronteiriços à borda esquerda de um bloco são utilizados como um prognóstico para todos os pixels nas linhas correspondentes do bloco. Ou seja, para uma dada linha no bloco 16x16, o pixel fronteiriço no bloco adjacente horizontalmente à esquerda é utilizado como o prognóstico para toda a linha.
3. Modo 2 (DC)330 - Média de amostras superiores do lado esquerdo (H + V). Neste modo, os pixels da vizinhança fronteiriços a borda esquerda de um bloco, e os pixels da vizinhança fronteiriços a borda esquerda do bloco são ponderados para a determinação da média. O valor médio é a partir daí utilizado na forma de prognóstico para todos os pixels do bloco. Ou seja, a média é determinada a partir de todos os pixels fronteiriços no bloco adjacente horizontalmente à esquerda e no bloco adjacente verticalmente superior. A média desses pixels é então usada na forma de prognóstico para todos os pixels do bloco. Cada pixel no bloco irá apresentar o mesmo prognóstico.
4. Modo 3 (Plano) 340 - Um plano linear é adequado junto as amostras superior e do lado esquerdo H e V. Neste modo, define-se um plano. O plano é baseado em todos os pixels fronteiriços no bloco adjacente horizontalmente à esquerda e todos os pixels fronteiriços no bloco adjacente verticalmente superior. O plano proporciona o prognóstico para cada pixel no bloco.
Observe-se que os modos para prognóstico interno 8x8 e 4x4 podem ser modificados em uma maneira análoga as modificações descritas neste relatório referentes aos modos de prognóstico interno 16x16. E ainda, todos os três tamanhos de blocos utilizam sintaxe adicional que está sujeita a modificação em uma maneira análoga a modificação do modo.
Petição 870190017582, de 21/02/2019, pág. 25/69
15/42
Para a decodificação de um bloco, o bloco previsto é gerado com os pixels disponíveis dos blocos nas vizinhanças decodificados anteriormente na forma especificada pelo modo de prognóstico interno do bloco corrente. Então, os valores residuais do pixel decodificado são adicionados ao bloco prognosticado. O resultado consiste no bloco de pixels finais decodificado.
B = P + R (3-1) aonde B compreende o bloco decodificado final de valores de pixel, e P compreende o bloco prognosticado, e R compreende o bloco de resíduos decodificado.
A ideia básica da utilização de prognóstico interno para marca d'água nesta implementação compreende a mudança do modo de prognóstico interno de um para outro, enquanto não se efetuando a modificação do dado residual. Ou seja, o resíduo R, é deixado sem qualquer alteração embora ele possa não mais se constituir em um resíduo preciso para o novo bloco prognosticado. O resultado da alteração do modo de prognóstico consistirá em um bloco de prognóstico diferente (referenciado como o Pw). Resultando em que o bloco de pixel decodificado final (agora referenciado como o Bw) será diferente do que poderia ter sido (ou seja, B). Então, Bw = Pw + R, aonde Bw não é igual a B.
A diferença entre o bloco original de valores de pixels decodificados (B) e o bloco impresso com a marca d'água de valores de pixels (Bw), representado por AB, será idêntica a diferença entre o bloco de pixels prognosticado original (P) e o bloco prognosticado com a marca d'água de valores de pixels (Pw), representada por AP.
AB =ΔP aonde ΔB=Bw - B e ΔP=Pw-P (3-2) com o subscrito “w” indicando a versão com marca d'água de cada valor.
Através da mudança do modo de prognóstico interno de um macrobloco, os pixels daquele bloco serão alterados por AB. Para esta alteração ser a apropriada para impressão da marca d'água, será preciso, pelo menos, nesta implementação que os três requisitos abaixo (R1-R3) sejam satisfeitos:
R1: a mudança deve ser detectável a partir do grupo de imagens reconstruído,
R2: a mudança deve ser imperceptível no grupo de imagens reconstruído, e
R3: a detecção deve ser robusta em função de um conjunto pré-definido de distorções de sinal.
Para esta finalidade, faz-se a avaliação quanto a suscetibilidade de cada possível mudança selecionando-se somente aquelas mudanças que venham a satisfazer estes requisitos.
A segunda condição pode ser interpretada de várias maneiras. Requerer-se que o grupo de imagens reconstruído apresente alta qualidade visual ou que elas não possam ser distinguidas do grupo original de imagens sem a marca, ou que a capacidade perceptiva das mudanças se enquadre abaixo de algum limite que possa estar ligado com a aplicação.
Petição 870190017582, de 21/02/2019, pág. 26/69
16/42
Existem muitas formas das pessoas julgarem a fidelidade de uma marca d'água. Para a finalidade deste relatório, permitiu-se que qualquer medida apropriada de fidelidade fosse aplicada analisando-se, tanto se positivamente ou não, ou a que extensão, a mudança proposta veio a satisfazer os requisitos quanto a fidelidade da aplicação.
O acesso ao requisito de fidelidade (R2) pode ser feito de várias maneiras. Para um dado elemento alvo, precisa-se de se acessar ou se prognosticar o impacto percentual da reposição de seu valor original com cada um dos valores alternativos. Relembrando que este acessamento ou prognosticação terá pleno acesso a todos os elementos de sintaxe do fluxo comprimido e poderá fazer com que estes prognostiquem o efeito maquiador do grupo de imagens subsequente e a sensitividade da capacidade visual humana ou do sistema auditivo (no caso do vídeo, ocupa-se do sistema visual humano) junto as modificações. Os detalhes de tal prognóstico são bem conhecidos para os especialistas da área de modelagem da percepção. Os modelos de percepção são amplamente mencionados tanto na literatura de compressão quanto na literatura referente a impressão de marcas d'água.
Em acréscimo a utilização de prognósticos computacionais no domínio comprimido da capacidade de percepção, pode-se ter o luxo de ser-se capaz de descomprimir-se plenamente o fluxo junto a uma sequência de imagens continuadas de faixa de base. Este pode ser o caso, por exemplo, quando a análise vier a ser executada na forma de um préprocesso. Neste caso, os prognósticos computacionais podem examinar o dado de pixel atual. Isto pode levar a prognósticos mais precisos da capacidade perceptível. Além disso, pode-se ser capaz de acesso a capacidade perceptível de reposição de um valor de elemento de sintaxe original com um valor alternativo através da descompressão do fluxo original para a obtenção de uma sequência de imagens continuadas referenciais fazendo-se em seguida a reposição do valor do elemento de sintaxe com o fluxo resultante alternativo e descomprimido, para a obtenção de uma segunda sequência de imagens continuadas. Muitas técnicas bem conhecidas podem ser usadas para o acesso à capacidade de percepção das diferenças entre duas sequências de imagens continuadas.
Finalmente, tem-se o luxo de poder-se concentrar em aspectos subjetivos. Um observador humano pode acessar a capacidade perceptiva da diferença entre a sequência de imagens continuadas referenciais e a sequência de imagens continuadas modificadas. As análises humanas podem ter acesso ao nível de atendimento de uma modificação ao Requisito R2 para uma dada aplicação.
Esses são alguns dos métodos que podem ser empregados na determinação de quais mudanças possíveis nos elementos de sintaxe satisfarão o Requisito R2.
Considera-se agora o primeiro Requisito R1 a partir de um ponto de vista genérico.
Assume-se a utilização do valor de sintaxe alternativo para elemento de sintaxe alvo induzindo-se alguma mudança mensurável quando o fluxo modificado é posteriormente desPetição 870190017582, de 21/02/2019, pág. 27/69
17/42 comprimido para uma sequência de imagens continuadas. Ocorre, em regra, dois tipos de mudanças mensuráveis que podem ser induzidas, “direta” e “indiretamente”.
Com as “mudanças diretas” o elemento de sintaxe corresponde diretamente a um artefato mensurável da sequência de imagens continuadas. Por exemplo, a modificação de 5 um coeficiente DC de bloco de luminância irá resultar diretamente em uma mudança mensurável na luminância média do bloco descomprimido correspondente. Com as “mudanças indiretas”, por outro lado, o artefato medido na sequência de imagens está relacionado somente de forma indireta com a modificação no fluxo. Por exemplo, a modificação de um vetor de movimento irá resultar no bloco errado sendo utilizado como um prognóstico, e irá 10 levar ao dado de pixel incorreto no correspondente bloco de descompressão. Pode ser difícil se determinar qual vetor de movimento foi o utilizado, mas o uso de um vetor de movimento diferente pode impactar outros artefatos mensuráveis. O vetor de movimento pode ser utilizado para viabilizar um bloco reconstruído com uma luminância média mais alta ou baixa.
A mudança mensurável do requisito R1 pode atender na identificação das localiza15 ções fazendo se notar quais mudanças foram efetuadas de maneira a se recuperar a carga útil. Isto é particularmente útil quando uma cópia pirateada é obtida. Através da “visualização” das mudanças que forma efetuadas, a fonte da cópia pirateada pode ser obtida.
Em uma implementação se determina quais elementos de sintaxe de vetor de movimento apresentam, pelo menos, dois valores de sintaxe alternativos, de modo que a utili20 zação de um dos valores de sintaxe alternativos irá viabilizar um bloco reconstruído com luminância média mais elevada e, o uso de um valor de sintaxe alternativo diferente irá viabilizar um bloco reconstruído com luminância média mais baixa. Os blocos codificados de bits correspondendo a codificação no padrão CAVLC de cada um desses dois valores alternativos, juntamente com a localização do bit no interior do fluxo CALVC, são enviados na 25 forma de metadados a serem impressos. Com base no valor do bit de carga útil correspondente, o componente de impressão embutida irá substituir o bloco original de bits com o bloco de bits correspondendo aquele outro bloco alternativo de bits.
Por exemplo, o componente que embute a impressão escolhe ou seleciona o bloco de bits associado com o valor de sintaxe que reduz a luminância média no bloco correspon30 dente caso o bit de carga útil seja um “0”, escolhendo o bloco de bits associado com o valor de sintaxe que aumenta a luminância média no bloco correspondente caso o bit de carga útil seja “1”. Claramente será necessário, pelo menos, um elemento alvo satisfazendo todos os requisitos para cada bit de carga útil que deva ser embutida.
O metadado pode conter também o número do quadro e o número do bloco na se35 quência de imagens continuadas descomprimidas aonde será induzida a mudança na luminância. Para robusteza adicional, o estágio de pré-processamento pode ainda armazenar a luminância média original do bloco no metadado. Esta informação pode ser utilizada ao
Petição 870190017582, de 21/02/2019, pág. 28/69
18/42 tempo da recuperação (por exemplo, decodificação) para a identificação do bloco modificado e fazer a comparação de sua luminância média com o valor original armazenado no metadado. No exemplo fornecido, uma luminância média que seja mais alta do que o valor original significará que o bit de carga útil correspondente será “1” e que a luminância média 5 que seja mais baixa do que o valor original significará que o bit de carga útil correspondente será “0”.
Para esta implementação, o primeiro e terceiro requisitos (de que a mudança seja robustamente detectável) condicionarão o estabelecimento de um bom fator que possa ser confiavelmente medido no grupo de imagens decodificado e que possa ser modificado atra10 vés da alteração do modo de prognóstico interno de um macrobloco. Um fator desse tipo compreende da luminância média do macrobloco. Cada mudança no modo de prognóstico interno irá resultar em uma mudança, AB, nos valores de pixels decodificados. Observe-se que AB, em regra, consiste de uma matriz de valores (ou seja, AB é também um bloco), e a magnitude da média pode variar a partir de um modo para outro. O sinal da mudança (por 15 exemplo, o valor médio para AB) pode ser utilizado para codificar dado (embutir). Ainda mais, a magnitude da mudança pode ser utilizada como uma indicação da robustez aguardada da mudança, com uma larga magnitude indicando maior robustez contra quaisquer modificações junto ao fluxo de bits codificado. Medidas mais sofisticadas de robustez encontram-se disponíveis e podem ser utilizadas.
Uma segunda característica que pode ser utilizada para satisfazer R1 e R2 consiste da variância do bloco de pixels reconstruídos. O modo DC (modo 2) é diferente dos outros três modos de prognóstico interno no sentido de que todos os valores de pixels 16x16 são prognosticados com um único valor, representando a média dos pixels de referência. Espera-se que um codificador AVC venha a atualizar este modo quando um bloco é de natureza 25 regular.
Caso altere-se o modo do modo 2 para um dos três modos restantes, pode-se aguardar que a variância do bloco resultante (Bw) aumente com relação ao bloco original “B”. Por outro lado, caso um codificador escolha os modos 0,1, ou 3, é aguardado que este bloco apresente uma flutuação mais alta antes de mais nada (em comparação com a situação 30 aonde o modo 2 foi inicialmente escolhido). Através da mudança do modo de prognóstico interno dos modos 0,1, ou 3 para o modo 2, a variância deste bloco Bw, normalmente, irá diminuir com relação a variância de “B”. Novamente, o AB associado com uma mudança de modo de prognóstico interno pode resultar em um aumento ou diminuição na variância do bloco reconstruído Bw, e a magnitude da mudança da variância pode variar dependendo dos 35 modos iniciantes e de finalização. O sinal da mudança da variância pode ser usado para codificar dados (embuti-los). Além disso, a magnitude da mudança da variância pode ser usada como uma indicação da robustez esperada da mudança, com uma grande magnitude
Petição 870190017582, de 21/02/2019, pág. 29/69
19/42 indicando uma maior robustez contra modificações adicionais junto ao fluxo de bits codificado. Medidas mais sofisticadas de robustez encontram-se disponíveis e podem ser utilizadas.
Discute-se em seguida uma implementação para mudança do modo de prognóstico interno através do tipo de macrobloco. No AVC, o modo de prognóstico interno 16x16 de um 5 macrobloco é especificado no campo de tipo-mb. O campo de tipo-mb especifica também outros parâmetros sobre este bloco, tal como o padrão-bloco-codificado.
Com referência a Figura 4, uma tabela 400 lista os tipos de macroblocos (“tiposmb”) por fatias I e fornece uma lista de valores tipo-mb 410 com seus significados. Esta tabela 400, retirada diretamente do tipo padrão, é utilizada nesta implementação para encon10 trar os valores tipo-mb 410 que alteram o modo de prognóstico interno 420 sem a alteração dos padrões-bloco-codificado 430 e 440 ou o tamanho do bloco de prognóstico 445.
De maneira a se preservar a sintaxe à parte da alteração feita no modo de prognóstico interno 420, a mudança do tipo-mb 410 fica circunscrita aos valores que diferem somente no modo de prognóstico interno 420. Por exemplo, um tipo-mb original de 11(veja a linha 15 450) indica que o modo de prognóstico interno 420 é 2(DC) e que o padrão-bloco-codificado para saturação 430 e lúmens 440 é 2 e 0, respectivamente. Este tipo-mb 410 pode ser alterado para 9, 10, ou 12 para a mudança do modo de prognóstico interno 420 sem a alteração dos padrões-bloco-codificado 430 e 440 ou tamanho do bloco de prognóstico 445.
O tipo-mb consiste de entropia codificada no fluxo de bits. Caso seja utilizada a co20 dificação por entropia no padrão CAVLC, o tipo-mb é codificado com o código exponencialGolomb. O código Exponencial-Golomb consiste de um esquema de codificação de extensão variável. Algumas aplicações especiais, tal como a impressão de marca d'água de discos DVDs autorizados, necessitam de que o dado de reposição (por exemplo, VLC) apresente exatamente a mesma extensão do dado original (por exemplo VLC). Neste caso, so25 mente os tipos-mb que apresentem a mesma quantidade de bits (por exemplo, VLC) podem ser usados para repõem o tipo-mb original.
Com referência a Figura 5, uma tabela 500 consiste de uma tabela de codificação Exponencial-Golomb, listando o formato de cadeia de bits 510 (coluna do lado esquerdo) e a correspondente gama de valores do código Exponencial-Golomb 520 (coluna do lado direi30 to). A tabela 500 é tomada diretamente do padrão. A partir desta tabela 500, encontra-se que, utilizando-se o exemplo acima, um tipo-mb de 9 necessita de 7 bits. Isto pode ser determinado notando-se, primeiramente, que o tipo-mb de 9 ocorre na faixa 520, dada através da quarta entrada 530 da coluna 520 do lado direito, que apresenta o valor de “7-14”. Então, observa-se que a entrada 530 correspondente (a quarta) da coluna 510 do lado esquerdo 35 apresenta 7 bits, que são 0 0 0 1 x2 x1 x0 . X2 x1 x0 podem ser designados, por exemplo, em ordem, com o 000 sendo designado junto ao valor 7 e, 111 sendo designado junto ao valor 14.
Petição 870190017582, de 21/02/2019, pág. 30/69
20/42
Consequentemente, nesta implementação aonde a extensão da cadeia CAVLC deva permanecer a mesma antes e após a impressão da marca d'água, o tipo-mb pode ser somente reposto por um outro tipo-mb necessitando também de 7 bits. Neste caso, os tiposmb 9,10, e 12 inserem-se na mesma faixa (7-14) necessitando todos de 7 bits. Assim, os 5 tipos-mb 9, 10, e 12 são todos possíveis candidatos a reposição dos tipos-mb. Desta maneira, combina-se as extensões de bits VLC da Figura 5 com os tipos de macroblocos da Figura 4 para a determinação de quais tipos-mb podem ser utilizados para a reposição do tipomb original. As regras a seguir são reforçadas com a metodologia apresentada abaixo:
1. O tipo-mb alternativo deve diferir somente em referência ao modo de prognóstico 10 interno.
2. O tamanho da cadeia de bits correspondente ao tipo-mb alternativo dever ser a mesma daquela correspondendo ao tipo-mb original (caso seja necessária uma extensão constante de bits).
Na seção anterior, foi sugerido que uma mudança potencial deveria ser avaliada 15 com relação a seu impacto no que se refere a fidelidade do grupo de imagens reconstruído e quanto a robustez de sua capacidade de detecção. Nesta seção descreve-se um método combinando aqueles dois efeitos convergindo para um único valor de custo e fazendo-se o emprego deste valor de custeio na seleção de quais mudanças devem ser postas em prática.
Com referência novamente a Figura 1, a entrada do pré-processamento consiste do fluxo de bits codificado no padrão AVC. A saída compreende o metadado com a impressão da marca d'água. A primeira das etapas no processamento do fluxo compreende na identificação de cada bloco codificado internamente, o modo de prognóstico interno do mesmo podendo ter sido, potencialmente, modificado. Para cada um destes blocos codificados in25 ternamente, identifica-se todos os modos de prognóstico interno alternativos que satisfazem o requisito de extensão de bit (caso a aplicação requeira a extensão constante de bits), e que satisfazem a primeira regra acima de que os tipos-mb alternativos correspondentes diferem somente no modo de prognóstico interno. Assumindo uma medida de detecção particular (tal como, por exemplo, a média da luminância, ou a variância de um bloco, conforme já 30 discutido anteriormente), uma etapa adicional consiste em se aglutinar o valor de detecção original e todos os valores de detecção alternativos. Um “valor de detecção” compreende de um valor (um número) da medida de detecção resultante a partir da codificação. Por exemplo, o valor da média da luminância para um bloco. Um valor de detecção alternativo consiste do valor resultado a partir da utilização de cada um dos modos de prognóstico interno 35 alternativos.
Com referência a Figura 6, um processo 600 ilustra uma modalidade para a determinação dos valores de detecção quando a luminância média é utilizada na forma de uma
Petição 870190017582, de 21/02/2019, pág. 31/69
21/42 medida de detecção. Um ou mais valores de detecção podem ser determinados para um dado bloco. Por exemplo, caso ocorram várias alternativas múltiplas para um dado bloco, um valor de detecção pode ser determinado para cada alternativa. As implementações típicas realizam a otimização entre os valores de detecção determinados. Tal otimização pode 5 incluir, por exemplo, a seleção da melhor alternativa para cada bloco, e daí fazer-se a seleção das dez melhores entre o punhado destas melhores alternativas. Este exemplo resulta na tomada de dez blocos com os melhores valores de detecção, aonde os “melhores” são determinados de acordo com uma medida selecionada, por exemplo. Uma outra implementação considera, para um dado bloco, pares de alternativas, e seleciona o melhor par para 10 cada bloco, conforme a explicação dada a seguir.
O processo 600 inclui o cálculo da luminância média de um bloco codificado 610 de prognóstico interno. Este é o valor de detecção original, e a luminância média pode ser calculada a partir da soma do prognóstico e do resíduo decodificado, conforme já discutido com relação a Equação 3-1.
Então, o processo 600 inclui o cálculo da luminância média do bloco codificado de prognóstico interno para cada modo de prognóstico interno alternativo 620. A operação 620 utiliza o modo alternativo para prognóstico. A luminância média pode ser calculada utilizando-se, por exemplo, o prognóstico com ou sem o dado residual existente.
O processo 600 armazena o número do quadro (ou, mais genericamente, o número 20 de imagem), a localização do bloco, e todas as luminâncias médias 630. Estas luminâncias médias incluem a luminâncias médias resultantes dos modos de prognósticos internos alternativos (operação 620).
O processo 600 prossegue para o bloco codificado 640 de prognóstico interno seguinte e repete as operações 610-630. O processo 600 é realizado para todos os blocos 25 codificados de prognósticos internos em uma dada imagem. Outras implementações, naturalmente, não necessitam de serem tão exaustivas. Observe-se que um bloco codificado de prognóstico interno pode ser, por exemplo, um bloco advindo de uma imagem codificada internamente (por exemplo, um quadro I), ou um bloco advindo de uma imagem codificada externamente (por exemplo, um quadro P), caso aquele bloco esteja codificado internamen30 te.
Utilizando-se a informação aglutinada no processo 600, uma implementação pode assumir uma determinação de forma direta em função de quais localizações e quais valores de reposição alternativos deveriam ser empregados para o fornecimento da impressão de marca d'água. Podem ser usados vários processos de decisão. Abaixo discute-se uma im35 plementação de tal processo. A implementação discutida abaixo faz uso, por exemplo, da informação aglutinada no processo 600 para selecionar localizações e valores alternativos que satisfazem, por exemplo, os requisitos R1, R2, e R3 listados anteriormente.
Petição 870190017582, de 21/02/2019, pág. 32/69
22/42
As propriedades essenciais para uma marca d'água consistem tipicamente na robustez (o R3 acima) e na fidelidade (o R2 acima). A fidelidade é também referida como a capacidade de imperceptibilidade. Frequentemente, estas duas propriedades, robustez e fidelidade se contradizem. No sentido de se especificar um balanço entre ambas se introduz 5 um método analítico.
Faz-se CF representar o custo por fidelidade. Com CF sendo definido de maneira que quanto mais visível a marca d'água maior o valor. O objetivo sendo o de efetuar mudanças que apresentem um custo muito baixo em relação a fidelidade. Outros métodos se apresentam para a medição de Cf, e um usuário pode selecionar o método/medida que melhor 10 se adapte a uma aplicação em particular - sendo a presente implementação independente da seleção.
Assume-se que CR representa o custo por robustez. Com o CR sendo definido de modo que as mudanças resultantes na maior fraqueza da robustez apresentem um custo por robustez mais elevado. A robustez mais enfraquecida significa, por exemplo, que as 15 mudanças podem ter se tornado indetectáveis com maior facilidade. Por exemplo, caso uma imagem seja decodificada e o dado de pixel seja filtrado, algumas mudanças podem se tornar enfraquecidas e possivelmente tornarem-se indetectáveis. Uma vez mais, salienta-se que se está em busca de um custo menor quanto a robustez.
Para cada mudança alternativa, calcula-se tanto o custo por fidelidade quanto o 20 custo por robustez associados com a efetivação da mudança. Procede-se a combinação destes dois custos para obter-se um custo total para realização da mudança. O custo total é calculado da seguinte forma:
C = oCf+ PCr aonde, normalmente ajuda bastante restringir-se a condição α+β=1. Neste caso po25 de-se escrever que
C= aCF+ (1 -α) Cr .
O parâmetro α restringido a faixa de 0 a 1, é utilizado para controlar a transição entre a fidelidade e a robustez. Um valor maior de α impõe maior ênfase na fidelidade, enquanto que um valor mais baixo de α impõe ênfase na robustez. Para um dado α, o custo C para 30 cada modo de prognóstico alternativo pode ser calculado. Aqueles para os quais os valores de C excedem um limite podem ser descartados.
Para satisfazer o R2 acima, que representa o requisito quanto a imperceptibilidade, uma implementação adicional pode ser usada, por exemplo, um nível limite para CF. Por exemplo, em uma implementação, o valor de Cf para um modo de prognóstico alternativo é 35 comparado com um limite. Caso o valor de CF seja maior do que o limite, então o modo de prognóstico alternativo não será aceito como uma possível reposição para o modo original de prognóstico.
Petição 870190017582, de 21/02/2019, pág. 33/69
23/42
Em uma implementação particular que faz uso da formulação de custos acima, são utilizados macroblocos 16x16. Em um macrobloco 16x16 de prognóstico interno, ocorrem três modos de prognóstico interno alternativos disponíveis e o modo original. Para este exemplo, assume-se que todos os valores do modo de prognóstico interno diferentes consis5 tem de alternativas válidas no sentido de que podem alterar o modo para qualquer outro sem alterarem os padrões-bloco-codificados ou a extensão de bit codificada (caso seja necessária a extensão de bit constante). Uma revisão das Figuras 4-5 irá revelar que esta consideração nem sempre é satisfeita, mas a consideração é útil para finalidades de clareza e simplicidade da discussão presente. Além disso, assume-se que a medida de detecção con10 siste da luminância média do bloco.
Para se embutir um bit de dado, dois modos de prognóstico podem ser selecionados: um primeiro modo será usado para representar um bit '1', e um segundo modo será usado para representar um bit '0'. Assume-se um modo de prognóstico resultando em uma luminância média inferior que será utilizado para representar o bit '0' e um modo de prognós15 tico resultando em uma luminância média maior que será utilizado para representar o bit '1'.
Então, decorrem seis possíveis pares de combinações : {(P1 =(modo 0, modo 1), P2= (modo 0, modo 2), P3=(modo 0, modo 3), P4=(modo 1, modo 2), P5= (modo 1, modo 3), P6= (modo 2, modo 3)}. (Observe-se que algumas dessas combinações tornar-se-ão indisponíveis caso alguns dos modos de prognósticos não consistam de alternativas válidas). Neste caso, pre20 cisa-se fazer o cálculo dos custos por fidelidade e robustez, CF e CR, associados com a seleção de cada combinação de pares. Aqueles custos podem ser então utilizados para a comparação de cada um dos requisitos de aplicação. Para cada combinação de par, o CF e CR são avaliados da forma como segue adiante.
Assumindo que B representa o bloco de pixels original. Assume-se que AB0 e AB1 25 representam as diferenças de pixels entre o bloco com a marca d'água e o bloco original caso o bit '0' ou o bit '1' apresentem-se embutidos, respectivamente. Caso o modo de prognóstico interno original seja utilizado para representar um bit '0' ou um '1', o AB é simplesmente só zeros. Em tal caso, o custo por fidelidade depende somente no outro modo que é selecionado. Assumindo-se que existam pares disponíveis de K, o custo por fidelidade de K 30 pares pode ser obtido por:
Cfpk= F(B,AB0,AB1) (4-1) aonde a função F(.) incorpora qualquer medida de fidelidade conforme discutida anteriormente (por exemplo, o modelo de Watson) e k é um índice funcionando de 1 até K. Tipicamente, esta função de fidelidade irá avaliar AB0 e AB1 independentemente, obtendo-se 35 um valor de custo para fidelidade para cada qual, vindo a retornar o maior entre os dois valores, representando a “pior” fidelidade das duas ou a soma dos dois valores. A medida da fidelidade pode ser também, em parte ou no total, uma medida subjetiva baseada na avaliaPetição 870190017582, de 21/02/2019, pág. 34/69
24/42 ção do usuário.
Assumindo que Lo e Li representam a luminância (um valor simples nesta implementação) do bloco, caso o bit '0' ou o bit '1' apresentem-se embutidos, respectivamente. Assumindo que BlkSz representa o tamanho do bloco de prognóstico interno. O custo da robustez pode ser medido como uma função de L0L1, e BlkSz. Para uma dada luminância (ou mudança de luminância), um tamanho de bloco maior pode ser fornecido para o aumento da robustez. O custo por robustez de K pares pode ser obtido através da fórmula:
CRPk = G (L0,L1,BlkSz) (4-2) aonde a função G(.) consiste de qualquer medida de robustez conforme discutida acima (por exemplo, a magnitude da mudança da variância ou da mudança da luminância média). Novamente, uma típica medida da robustez irá avaliar a robustez de cada mudança independentemente e retornar o maior dos dois custos ou a soma dos dois custos.
Finalmente, o custo final da impressão de marca d'água referente a este par será: Ck= aCFPk + pCRPk (4-3)
Uma vez que o custo associado com cada par tenha sido calculado, o par com o custo mínimo pode ser selecionado para aquele bloco com o custo correspondente podendo ser designado para C, o custo da mudança no bloco.
C = min(Ck) onde k = 1...K (4-4)
Uma vez que o custo de impressão de marca d'água de cada bloco tenha sido estabelecido, o processo de seleção de bloco pode simplesmente pegar os blocos apresentando os menores custos para impressão de marca d'água com base no requisito de carga útil. Por exemplo, caso ocorram 10 bits de carga útil, então os 10 blocos com o menor custo por impressão de marca d'água podem ser selecionados. Os 10 bits de carga útil deste exemplo podem ser gerados, por exemplo, através da codificação de um ou mais símbolos de carga útil para o aumento da robustez. Outra implementação não faz a codificação dos símbolos/informação de carga útil para o aumento da robustez, mas meramente representam a informação de carga útil na forma binária como bits de carga útil.
Referindo-se novamente a implementação da Figura 1, o metadado embutido na impressão de marca d'água 105 contém os bits deslocados identificando a localização aonde, no fluxo de bits, cada modificação irá ocorrer e os valores a serem usados no caso de que o bit de carga útil seja um '0' ou um '1'. Assim, quando se mantendo rastreio de uma mudança alternativa, rastreia-se a localização de bits no fluxo AVC de entrada aonde o código VLC descrevendo o atual tipo-mb pode ser encontrado. Mantém-se ainda rastreio da cadeia de bits especifica (a partir da tabela da Figura 5) que é utilizada para representar cada mudança alternativa. Assim, após a seleção (talvez com base na minimização do custo total), o sistema apode escrever o metadado embutido 105. Para cada entrada neste arquivo, existe um bit deslocado e duas cadeias de bits (por exemplo, as cadeias de bits VLC),
Petição 870190017582, de 21/02/2019, pág. 35/69
25/42 uma para cada um dos dois possíveis bits de carga útil, '0' e '1'.
Além do mais, o estágio de pré-processamento escreve o metadado de detecção (também apresentado na Figura 1). Isto inclui o número de quadro (ou, mais genericamente, o número da imagem) e a localização do bloco de cada mudança, bem como, as luminâncias aguardadas (ou outra medida de detecção) do bloco marcado com marca d'água, caso ele represente o bit '0' e '1'. Ainda, observa-se que as implementações podem incluir o metadado embutido na metadado de detecção possibilitando a detecção da presença da informação da impressão de marca d'água em um fluxo antes da decodificação.
Conforme já sugerido, a detecção pode ser realizada ao nível do fluxo de bits, em vista da ou na adição quanto ao desempenho da detecção à cada nível de pixel. Através da análise de um fluxo de bits, pode ser determinado quais bits de carga útil encontram-se embutidos na maneira projetada pelos bits deslocados. Contudo, conforme anteriormente discutido, caso o fluxo de bits tenha sido processado, por exemplo, pela decodificação e então, pela recodificação, o fluxo de bits resultante (codificado) pode ser completamente diferente do fluxo de bits original (codificado). Por exemplo, a recodificação pode utilizar (conforme já indicado) diferentes modos ou tamanhos de blocos. Em tal situação, a detecção da marca d'água a partir de um fluxo de bits pode ser impossível, mas a detecção da marca d'água a partir dos pixels (após a decodificação do novo fluxo de bits) é possível caso a marca d'água seja robusta o bastante.
Com referência a Figura 7, um processo 700 fornece uma implementação que determina o metadado com impressão de marca d'água (impressão embutida e detecção) para macroblocos codificados de prognóstico interno 16x16 utilizando uma abordagem por custo. O processo 700 inclui os fatores básicos do processo 600. Ou seja, o processo 700 de determinação do metadado com marca d'água para macroblocos que inclui a determinação de valores de detecção para aqueles macroblocos.
O processo 700 pode ser executado, por exemplo, para um dado conjunto de macroblocos em uma imagem, ou para todos macroblocos em uma imagem, ou para todos os macroblocos em uma sequência de imagens. Na discussão a seguir do processo 700, assume-se uma implementação em que o processo 700 é realizado para todos os macroblocos em uma imagem.
O processo 700 inclui um enlace (710) sobre todos os macroblocos 16x16 na imagem, desempenhando um conjunto de operações (720-750) para cada macrobloco 16x16 fazendo uso de um modo de prognóstico interno 16x16 (ver, por exemplo, Figura 4). O conjunto de operações inclui as operações 720-750.
Para cada macrobloco utilizando um modo de prognóstico interno 16x16, os possíveis modos de prognósticos internos alternativos, caso haja algum, são determinados (720). Em uma implementação, os alternativos devem satisfazer os requisitos de que os padrões
Petição 870190017582, de 21/02/2019, pág. 36/69
26/42 de blocos codificados (430 e 44) e o tamanho do bloco de prognóstico (445) permaneçam iguais, e a extensão do bit codificado do tipo de macrobloco (410) permaneça a mesma (veja a Figura 5).
Para cada possível modo de prognóstico interno alternativo ou grupo de modos, determina-se (730) o custo total. Em uma implementação, a determinação do custo total envolve o cálculo do custo por fidelidade e o custo por robustez utilizando a sequência de equações descrita anteriormente. Um grupo de modos pode consistir, por exemplo, de um par de modos conforma já discutido, ou alguma outra combinação de modos.
O melhor modo de prognóstico interno alternativo possível, ou grupo de modos, é determinado (740). Em uma implementação, determina-se o melhor utilizando-se uma função de minimização tal conforme a equação 4-4 acima, que faz a seleção do par com o custo total mínimo. Outras implementações fazem uso de funções diferentes para a determinação da melhor alternativa possível, e podendo também identificar múltiplas “melhores” alternativas possíveis. Por exemplo, em uma implementação discutida acima, a “melhor” alternativa possível compreende de um par. O par pode incluir uma alternativa, ou duas alternativas. Em implementações típicas do processo 700, caso não existam possíveis modos de prognósticos internos alternativos, então, não existe a necessidade do “melhor modo”.
O metadado embutido e o metadado de detecção são armazenados para o melhor possível modo de prognóstico interno alternativo ou grupo de modos (750). Em uma implementação, o metadado embutido inclui o bit deslocado no fluxo e os tipos de macroblocos alternativos codificados, aonde os tipos de macroblocos alternativos correspondem aos melhores modos possíveis de prognóstico interno alternativo. Em uma implementação, o metadado de detecção inclui o número de imagem (ou número de quadro), a localização de macrobloco, e os valores de detecção alternativo e original ou algum outro valor de detecção de referência. Em tal implementação, os valores de detecção podem se recomputado durante a operação 730 de cálculo referente ao custo total. Por exemplo, os valores de detecção podem ser determinados no processo de cálculo de um custo por robustez.
Várias implementações reduzem, ou mais genericamente, filtram, o metadado antes, ou posteriormente, ao seu armazenamento. Em tal implementação, o melhor modo alternativo (ou grupo de modos) para cada bloco é classificado de forma ordenada e somente a primeira centena é mantida e armazenada devido a existir somente uma centena de bits de carga útil. Uma segunda implementação especifica uma quantidade mínima de bits sem alteração que devem se achar entre quaisquer das duas mudanças no fluxo de bits. Este critério na segunda implementação, por exemplo, pode antecipar a utilização do melhor dos modos alternativos para dois blocos adjacentes. Uma terceira implementação especifica o tamanho (na quantidade de bits) de cada mudança particular no fluxo de bits codificado entropicamente. Este critério na terceira implementação, por exemplo, pode ditar o tamanho
Petição 870190017582, de 21/02/2019, pág. 37/69
27/42 das entradas no metadado embutido. Cada mudança particular não necessita, naturalmente, da atual mudança do valor de cada bit que é substituído. Em ainda outra implementação, para um dado bloco, o metadado é somente armazenado para o melhor modo alternativo (ou grupo de modos), caso esta melhor alternativa satisfaça também os requisitos R1, R2 e 5 R3. Ainda, as implementações podem combinar esses e outros critérios.
Em uma implementação, o metadado embutido inclui as localizações no fluxo de bits comprimido aonde o bloco codificado original de bits pode ser encontrado e, dois blocos de bits, um para ser utilizado como forma de bloco de reposição, caso o bit de carga útil correspondente seja um '0' e o outro para ser utilizado como um bloco de reposição caso o bit 10 de carga útil correspondente seja um '1'. Em uma implementação, um desses blocos é por si só, o bloco original de bits e o outro um bloco alternativo de bits. Neste caso, a lista de elementos de sintaxe intercambiáveis pode incluir aqueles pelos quais exista somente um valor alternativo aceitável. Em outra implementação, os dois blocos são ambos blocos alternativos de bits correspondendo a diferentes valores de sintaxe. Neste caso, a lista de elementos de 15 sintaxe intercambiáveis pode incluir somente aqueles pelos quais, pelo menos, se façam presentes duas alternativas aceitáveis.
Em uma implementação, o metadado de detecção inclui o metadado embutido. De posse de tal informação, a carga útil pode ser recuperada diretamente a partir de um fluxo de bits codificado com a marca d'água.
Em uma implementação, o metadado de detecção inclui alternativa ou adicionalmente a localização na sequência de imagens continuadas descomprimidas aonde a modificação do fluxo de bits poderá ser detectável. Isto pode ser especificado na forma de um número de quadro ou de imagem e de um número de bloco, número de macrobloco, posição de pixel, ou qualquer outro elemento localizado requisitado para a recuperação. O metadado 25 de detecção pode ainda fazer incluir uma indicação do valor de detecção associado com um bit de carga útil de '0' e um bit de carga útil de '1', ou algum outro valor de detecção de referência.
O metadado de detecção pode incluir ainda o valor da medida de detecção que teria sido medida caso não houvesse sido feita nenhuma mudança. Em outras palavras, isto 30 pode incluir o valor original da medida de detecção. Em um exemplo anterior, a medida de detecção consiste da luminância média de um bloco particular e o dado de detecção pode incluir a luminância média original daquele bloco. Através da inclusão do valor original, o processo de detecção pode assegurar se o valor de detecção terá crescido ou diminuído como um resultado da impressão da marca d'água. Em uma implementação, a determina35 ção do metadado é realizada durante o pré-processamento.
De maneira a se aumentar a robustez da técnica de impressão de marca d'água para mudanças tanto globais quanto locais quanto a claridade ou contraste, o dado de detecPetição 870190017582, de 21/02/2019, pág. 38/69
28/42 ção pode ser também salvo em relação a blocos aonde não se espera que haja modificações pelo processo de impressão de marca d'água. Por exemplo, o dado de detecção pode incluir a luminância média original de blocos não alterados pela marca d'água. Então, o detector pode fazer uso destes blocos como uma forma de referência para determinação de se toda a imagem, ou pelo menos, parte dela na região de referência, experimentou alguma alteração na luminância. Caso a luminância medida nos blocos de referência não combine com aquela registrada no dado de detecção, uma compensação pode ser feita antes da recuperação da carga útil. Por exemplo, a compensação junto a uma medição da luminância média poderia ser adicionada para todos os valores de detecção armazenados.
Com referência a Figura 8, um processo 800 fornece uma implementação genérica que determina o metadado embutido com base em uma referência. O processo 800 apresenta alguma semelhança quanto a funcionalidade com o processo 700.
O processo 800 inclui o acesso de dado codificado de extensão variável que inclui um indicador de referência (810). Ou seja, o dado codificado de extensão variável inclui uma codificação (o indicador de referência) de informação identificando uma referência real utilizada para codificar o prognóstico de uma imagem. O indicador de referência, que representa a codificação da informação identificando a referência real, possui um valor particular. Em um ou mais exemplos descritos anteriormente, o indicador de referência consiste da codificação de um valor do campo em tipo de macrobloco que identifica, através do correspondente modo de prognóstico interno, a referência utilizada para a codificação de um prognóstico em um macrobloco.
O processo 800 inclui a determinação de uma localização no dado codificado de extensão variável do indicador de referência (820). A localização é utilizada, por exemplo, na criação do metadado embutido.
O processo 800 inclui ainda a determinação de um valor alternativo para o indicador de referência (830). O valor alternativo é diferente do valor particular. O valor alternativo consiste de uma codificação da informação alternativa que identifica uma referência diferente da referência real. Parte ou o todo do processo 700 pode ser usada, por exemplo, na execução da operação 830. Em um ou mais dos exemplos descritos anteriormente, o valor alternativo compreende da codificação de um valor diferente para o campo em tipo de macrobloco.
O processo 800 pode incluir várias operações adicionais, tal como, por exemplo, a designação do valor alternativo na forma de um substituto (uma marca d'água) para o valor particular, avaliando a capacidade de eficiência do valor alternativo como uma marca d'água, ou criando o metadado embutido.
Após a criação de um conjunto de possíveis reposições para a marca d'água utilizando-se, por exemplo, o processo 700 ou o processo 800, uma implementação pode selePetição 870190017582, de 21/02/2019, pág. 39/69
29/42 cionar um subconjunto de macroblocos para a mudança. Esta seleção é baseada, tipicamente, nos requisitos de carga útil da aplicação, e qualquer dado codificado aplicado junto a carga útil. A seleção é informada tipicamente através dos custos de cada mudança (por exemplo, os custos quanto a fidelidade e robustez conforme previamente descrito). Normal5 mente, a seleção irá favorecer mudanças a custos mais baixos. Em uma implementação, os macroblocos são categorizados de acordo com o custo total para a melhor alternativa possível para cada macrobloco (730 e 740). Os macroblocos com o menor custo total (para a melhor alternativa possível) são selecionados para a impressão de marca d'água com o dado de carga útil.
Com referência a Figura 9, um processo 900 é mostrado descrevendo uma implementação para a introdução de valores de reposição, tal como, por exemplo, a introdução de uma marca d'água. O processo 900 inclui o acesso a uma carga útil (910). A carga útil acessada pode ser em bits ou outros símbolos. Tipicamente, a carga útil dá-se em bits ou é convertida em bits. Adicionalmente, a carga útil pode ser codificada.
O processo 900 inclui a determinação das localizações de reposição e valores de reposição (920). A operação 920 pode ser executada, por exemplo, utilizando o processo 700, acompanhado por um processo de classificação conforme já descrito. As operações 910 e 920 podem ser executadas em qualquer ordem. Contudo, uma implementação desempenha primeiro a operação 910, determinando também a quantidade de bits de carga útil, e então determina somente as localizações necessárias na operação 920, por exemplo, através da seleção somente dos macroblocos de melhor classificação até que todos os bits de carga útil tenham sido designados como um macrobloco. A operação 920 pode ser influenciada por vários outros requisitos de implementações, tal como, por exemplo, aqueles discutidos com referência a Figura 7.
Em, pelo menos, uma implementação, toda ou parte da operação 920 é executada durante um estágio de pré-processamento. Por exemplo, em um estágio de préprocessamento, uma tabela pode ser preparada incluindo o metadado embutido. Então, em operação 920, os valores de reposição e localizações podem ser determinados pelo acesso a tabela.
O processo 900 inclui ainda a introdução dos valores de reposição, nas localizações de reposição (930) para fornecerem, por exemplo, uma marca d'água. A introdução dos valores de reposição envolve a substituição do dado codificado existente pelos valores de reposição. O dado modificado pode ser então armazenado ou transmitido, por exemplo. Tipicamente, estas ações de reposição são informadas, através de uma carga útil codifica35 da.
Com referência a Figura 10, apresenta-se um processo 1000 descrevendo uma implementação genérica para a introdução de valores substitutos em uma referência. O proPetição 870190017582, de 21/02/2019, pág. 40/69
30/42 cesso 1000 apresenta alguma similaridade na funcionalidade com o processo 900.
O processo 1000 inclui acesso ao dado codificado de extensão variável incluindo um indicador de referência (1010). Ou seja, o dado codificado de extensão variável inclui uma codificação de informação (o indicador de referência) identificando uma referência real 5 utilizada para codificar com capacidade de prognóstico uma imagem. O indicador de referência, que representa a codificação da informação identificando a referência real, apresenta um valor particular. Em um ou mais dos exemplos anteriores previamente descritos, o indicador de referência consiste da codificação de um valor do campo em tipo de macrobloco que identifica, através do modo de prognóstico interno correspondente, a referência utilizada 10 para codificação prognosticada de um macrobloco.
O processo 1000 inclui acesso de um valor alternativo para o indicador de referência (1020). O valor alternativo é diferente do valor particular. O valor alternativo compreende de uma codificação da informação alternativa que identifica uma referência diferente da referência real. O valor alternativo pode ser, por exemplo, acessado a partir de armazenagem 15 ou computação em tempo real. Uma implementação pode, por exemplo, acessar o valor alternativo a partir de uma tabela que é indexada por uma localização do indicador de referência.
O processo 1000 inclui a introdução do valor alternativo como um substituto para o indicador de referência (1030). O valor alternativo é introduzido no dado codificado de ex20 tensão variável para a marca d'água da imagem.
O processo 1000 pode incluir várias operações adicionais, tais como, por exemplo, a armazenagem ou transmissão do dado codificado de extensão variável modificado.
O total ou parte das localizações de identificação de dados de elementos codificados e possíveis valores de reposição, acessadas conforme a etapa 1020, podem ser arma25 zenadas em um dispositivo de armazenagem, ou então, enviadas eletronicamente. Uma implementação armazena as localizações e valores em uma aparelhagem, tal como um DVD, um disco rígido, ou outro dispositivo de armazenagem. A aparelhagem inclui uma mídia de leitura por processador contendo a informação armazenada na mesma. A informação armazenada identifica um valor de reposição para uma porção de um conjunto codificado de 30 dados. Outra implementação proporciona um sinal formatado incluindo a informação que é armazenada em uma mídia de leitura por processador desta aparelhagem.
Implementações adicionais são direcionadas para o desempenho de vários processos, tal como, por exemplo, os resultados advindos do processo 900 ou do processo 100. Por exemplo, uma implementação em uma aparelhagem, tal como um DVD, um disco rígido, 35 ou outro dispositivo de armazenagem que inclua o dado codificado modificado, com outra implementação compreendendo um sinal formatado incluindo tal dado codificado modificado. Mais especificamente, uma implementação consiste de uma aparelhagem incluindo uma
Petição 870190017582, de 21/02/2019, pág. 41/69
31/42 mídia de leitura por processador, a mídia de leitura por processador apresentando armazenada na mesma o dado codificado que vem a incluir uma porção modificada. Outra implementação consiste de um sinal formatado para incluir o dado codificado que é armazenado na mídia de leitura por processador desta aparelhagem.
A discussão anterior descreve um método para a análise de um elemento de sintaxe alvo e identificando todos aqueles, caso exista algum, valores alternativos aceitáveis que poderiam ser substituídos pela reposição de um bloco de bits no fluxo de bits codificado com um bloco de bits alternativo. Através do exame de todos os elementos de sintaxe em uma sequência codificada AVC, pode-se construir uma listagem daqueles valores em que exista, 10 pelo menos, um valor alternativo aceitável. Esta é listagem chamada de lista de “elementos de sintaxe intercambiáveis”. Para cada elemento de sintaxe que possa ser mudado, pode-se construir uma listagem de valores alternativos aceitáveis. Observe-se que outras implementações podem alterar os elementos de sintaxe que não sejam do tipo macrobloco, e o modo de prognóstico interno inerente. Tais outros elementos de sintaxe incluem, por exemplo, os 15 vetores de movimento, os valores residuais ou a codificação dos valores residuais fazendo uso de coeficientes DCT (por exemplo), os indicadores de prognóstico interno de uma imagem de referência ou quadro de referência.
Vários elementos de sintaxe relacionam-se à informação de referência, que significa a informação que identifica uma referência de alguma maneira. Uma referência refere-se, 20 em termos gerais, a um conjunto de informação que seja utilizado como uma base para um prognóstico. Um identificador de referência, em geral, refere-se à informação que identifica uma referência. Por exemplo, uma referência pode ser identificada por um modo de prognóstico interno de um bloco devido ao modo de prognóstico interno identificar os pixels utilizados como a base para um prognóstico de um bloco corrente. O modo de prognóstico in25 terno identifica também a maneira pela qual aqueles pixels identificados são utilizados. Uma referência pode ainda ser também identificada, por exemplo, como um vetor de movimento, ou um indicador de um quadro anterior ou macrobloco que é utilizado como uma base para um prognóstico. Observe-se que um certo macrobloco pode apresentar múltiplos identificadores de referência e referências múltiplas.
Deve ficar entendido que uma referência, e/ou um identificador de referência, pode existir para blocos de prognósticos internos e blocos de prognósticos intermediários. Os blocos de prognóstico interno podem utilizar um identificador de referência, tal como, por exemplo, um modo de prognóstico interno ou um tipo de macrobloco (que faz a identificação do modo de prognóstico interno), e a referência pode ser, por exemplo, um bloco ou um con35 junto de pixels a partir da mesma imagem. Os blocos de prognóstico interno podem fazer uso de um identificador de referência tal como, por exemplo, um vetor de movimento, e a referência pode se constituir na totalidade ou em parte de uma imagem diferente.
Petição 870190017582, de 21/02/2019, pág. 42/69
32/42
O objetivo da informação embutida é o de modificar um subconjunto dos elementos de sintaxe na lista de todos os elementos de sintaxe intercambiáveis, alterando os seus valores daqueles valores originais para um dos valores alternativos aceitáveis listados, de acordo com a carga útil. Em uma implementação prática, chega-se a esta condição em três 5 etapas, conforme mostrado anteriormente na Figura 9.
De acordo com a discussão anterior, a carga útil pode ser recuperada do fluxo de bits AVC com o auxílio do metadado de detecção. Em algumas implementações, o metadado de detecção indica os elementos de sintaxe específicos que representam a informação de carga útil e os valores originais daqueles elementos. Caso o processo de se embutir utili10 ze os valores originais para representação de um '0', com o valor alternativo representado pelo '1', o detector pode comparar o valor no fluxo de bits com o valor original armazenado no dado de detecção. Caso os dados combinem, o detecto relata um bit '0'. Se eles não se combinam, o detector relata um bit '1'. Caso o processo para se embutir substitua o valor original com um dos dois valores alternativos, esses dois valores alternativos e suas etique15 tas correspondentes são recuperadas a partir do dado de detecção. O detector compara então o valor no fluxo de bits com uma ou mais das duas alternativas e relata a etiqueta correspondente.
O dado de carga útil pode ser também recuperado a partir do grupo de imagens decodificadas no domínio pixel. Este processo é especificado junto a medida particular utiliza20 da no processo de seleção de subconjuntos. Em uma implementação prática, a medida é a luminância média de um bloco de pixels. A luminância média original de cada bloco modificado é recuperada a partir do dado de detecção. O detector calcula a luminância média do bloco de pixels especificado na sequência de imagens decodificada, comparando aquele valor com o valor original armazenado no dado de detecção. Caso o valor calculado seja 25 menor do que o original, o detector relata um bit '0'. Tal implementação armazena a localização e o valor original no dado de detecção, não necessitando, porém, de armazenar os valores de detecção aguardados para um bit '0' ou um bit '1'.
Este método de recuperação pode apresentar problemas caso o grupo de imagens decodificadas seja modificado por uma mudança uniforme na luminância após a decodifica30 ção, porém antes da detecção. De maneira a endereçar esta situação, a luminância média de uma quantidade de blocos de referência pode ser armazenada no dado de detecção. Existem blocos que não foram alterados pelo processo de se embutir a impressão. Estas mudanças de luminâncias podem ser compensadas pelo ajuste dos valores originais de acordo. Pelo menos, uma implementação ajusta as mudanças de luminância não-uniformes 35 através do emprego de um bloco de referência próximo ao bloco marcado com marca d'água.
Deve ficar entendido que a informação embutida pode incluir uma variedade de
Petição 870190017582, de 21/02/2019, pág. 43/69
33/42 aplicações. Um tipo de tal aplicação consiste de uma impressão de marca d'água aonde uma carga útil esteja embutida em um fluxo de dados. Contudo, várias aplicações embutindo informação podem fazer uso de requisitos diferentes. Por exemplo, pode ser desejável efetuar-se uma mudança junto ao fluxo de dados resultando em uma mudança que seja perceptível por um usuário.
Com referência a Figura 11, um processo 1100 genérico é apresentado em função da recuperação de informação de carga útil, ou em termos gerais, para a detecção de uma marca d'água. O processo 1110 pode ser aplicado, por exemplo, junto a um fluxo de bi0ts com a marca d'água e codificado, ou a um dado da faixa de base a partir de um fluxo de bits decodificados com a marca d'água.
O processo 1100 inclui a determinação de uma localização para uma possível marca d'água (1110). Observe-se que este processo pode ser aplicado para cumprimento de que possa ou não ter havido a aplicação de um processo de impressão de marca d'água. Além disso, mesmo caso seja aplicado um processo de impressão de marca d'água, um bit de carga útil pode ser embutido sem a mudança do conteúdo (conforme previamente descrito). Assim, a localização que é verificada pode ou não ser modificada. Caso o conteúdo tenha sido anteriormente impresso com marca d'água, então, este processo é designado para a recuperação da carga útil embutida. O processo 110 inclui o acesso (1120) e análise (1130) a partir da localização determinada. O processo 1100 inclui ainda a identificação da informação de marca d'água, caso exista qualquer marca d'água, com base na análise (1140). A informação de marca d'água identificada, por exemplo, pode ser uma sequência de bits (ou outra unidade de informação) ou um valor de detecção determinado para um macrobloco (ou outra unidade de uma imagem).
O processo 1100 pode ser repetido para uma ou mais localizações para a identificação de um ou mais bits adicionais que caracterizam uma carga útil. Assim, pode-se recuperar toda uma inteira carga útil fazendo-se uso do processo 1100.
As implementações do processo 1100 incluem a análise de um fluxo de bits modificado, bem como a análise dos dados de faixas de base (por exemplo, o dado de áudio ou domínio de pixel). Por exemplo, um fluxo de bits pode ser modificado através da modificação de bits associada com um elemento de alvo, de acordo com uma das implementações descrita anteriormente. Uma marca d'água pode ser detectada em tal fluxo de bits através de acesso a localizações de bits apropriadas, testando a modificação naquelas localizações. As localizações de bits e valores modificados (ou possíveis valores modificados), tais como os encontrados no metadado embutido, podem ser ainda incluídos no dado de detecção.
Alternativamente, ou em acréscimo a isso, tal fluxo de bits modificado pode ser decodificado e possivelmente submetido a outro processamento, incluindo a recodificação. No caso de recodificação, não será esperado que tal fluxo de bits recodificado venha a incluir o
Petição 870190017582, de 21/02/2019, pág. 44/69
34/42 mesmo elemento alvo modificado, na mesma localização, conforme constando no fluxo de bits modificado original. Contudo, o fluxo de bits recodificado pode ser decodificado para a produção de uma representação digital de faixa de banda (por exemplo, domínio-pixel ou clipe de áudio) aonde, tipicamente, um efeito da modificação original encontra-se ainda presente. Assim, o dado de detecção será útil para a identificação do número de quadro e bloco aonde a modificação original apresente seu impacto. Por exemplo, o elemento alvo pode ter sido originalmente um vetor de movimento para um bloco particular, e o impacto de modificação do vetor de movimento pode ter sido um aumento na luminância média daquele bloco particular ou conjunto de blocos. Aquele aumento na luminância média pode ser preservado a despeito do processamento do fluxo de bits modificado original. Entretanto, o vetor de movimento, e a mudança original junto ao vetor de movimento não serão exatamente os mesmos após a recodificação.
Com referência a Figura 12, um processo 1200 é apresentado descrevendo uma implementação do processo 1100 para uso específico com o grupo de imagens da faixa de base (ou seja, o dado pixel), incluindo-se operações específicas refinadas junto ao grupo de imagens da faixa de base. Contudo, caso o dado comprimido seja acessado (por exemplo, seja recuperado a partir da armazenagem ou restaurados em uma transmissão), ao invés do grupo de imagens da faixa de base, pode-se decodificar o dado comprimido obtendo-se o grupo de imagens da faixa de base.
O processo 1200 inclui o acesso ao grupo de imagens da faixa de base (1205), e, opcionalmente, desempenha o registro (1210) geométrico e/ou temporal. O registro pode ser necessário devido ao metadado de detecção poder descrever cada mudança, por exemplo, através do número de quadro e da posição de bloco no interior do quadro. Consequentemente, o registro facilita a identificação apropriada do número de quadro e do bloco. Existem muitas abordagens para a obtenção deste registro, e a implementação é independente da abordagem de registro, podendo ser utilizadas várias abordagens.
O processo 1200 inclui o acesso ao metadado de detecção (1215). cada entrada no metadado de detecção podendo definir uma mudança, por exemplo, através de sua posição de quadro e do bloco no interior do quadro. Para cada entrada, executa-se um enlace (1220), o qual, em regra, pode ser concebido incluindo as operações 1225-1245.
Para cada entrada no metadado de detecção, o bloco de dado pixel correspondente é extraído a partir do grupo de imagens da faixa de base (1225). A partir do bloco extraído, o fator de detecção é medido, calculado, ou por alguma outra forma, determinado (1230). No exemplo acima, o fator de detecção consiste da luminância média, e em outro exemplo, o fator de detecção consiste na variância.
O processo 1200, e o enlace (1220), incluem a comparação do fator de detecção determinado junto ao metadado de detecção (1235). Esta comparação inclui, em uma imPetição 870190017582, de 21/02/2019, pág. 45/69
35/42 plementação, a comparação do fator determinado, por exemplo, de um valor de luminância média, junto a dois valores da luminância média no metadado de detecção. A melhor combinação é selecionada e seu símbolo correspondente é liberado (1240). Uma implementação identifica a melhor combinação como o valor de detecção armazenado que se apresen5 te mais próximo do fator de detecção determinado. Outras implementações podem aplicar, por exemplo, uma avaliação não-linear para a determinação da melhor combinação.
O processo 1200, e o enlace (1220), incluem ainda o retorno do enlace indo para o bloco codificado de prognóstico interno seguinte que seja indicado no metadado de detecção (1245). O enlace (1220) se repete para todos os blocos indicados no metadado de de10 tecção.
Cada interação através do enlace (1220) libera um símbolo a partir da operação (1240), e o resultado consiste de um fluxo de símbolos (1250). Opcionalmente, o fluxo de símbolos é decodificado (1255). Observe-se que as implementações não necessitam de terem codificados os bits de carga útil. Caso um processo de codificação de dados seja apli15 cado junto a carga útil (por exemplo, na forma de codificador de dados 120 na Figura 1), então, o processo de decodificação de dados correspondente é aplicado junto ao fluxo de símbolos viabilizando a carga útil recuperada, referenciada como a estimativa da carga útil (1260).
A estimativa da carga útil (1260) corresponde ao fluxo de símbolos decodificado ou, 20 (caso a carga útil não tenha sido codificada) ao fluxo de símbolos. Em típicas implementações, os símbolos liberados pela operação (1240) consistem de bits, mas outras implementações podem codificar outros símbolos que não sejam bits.
Conforme discutido anteriormente, quando se faz uso da luminância média como um fator de detecção, o sistema pode se tornar confuso devido as mudanças globais na cla25 ridade. Em outras palavras, um aumento global na claridade pode levar a que a luminância extraída do grupo de imagens da faixa de base sempre venha a se tornar mais próxima ao mais transparente dos dois valores armazenados no metadado. Assim, o fluxo de símbolos pode consistir (erroneamente) de todos os bits '1'. Para contrabalançar isto, um elemento para impressão pode adicionar uma quantidade de entradas referenciais na informação de 30 detecção. Uma entrada de referência lista um número de quadro, a posição do bloco, um valor original para a luminância do bloco para um bloco que não seja afetado pelo processo de impressão de marca d'água. O detector pode ler os valores de referência e comparar estes com os valores correspondentes vistos no grupo de imagens da faixa de base. Então, o grupo de imagens da faixa de base pode ser ajustado (talvez durante o registro), de ma35 neira que a luminância medida nos blocos de referência combine-se com aquela listada no arquivo de metadado de detecção.
Várias implementações do processo 900 ou do processo 1200 utilizam o metadado
Petição 870190017582, de 21/02/2019, pág. 46/69
36/42 de detecção que inclui uma ou mais variedades de pedaços de dados. Por exemplo, o metadado de detecção pode incluir a informação de localização identificando as localizações para a verificação de uma possível marca d'água. A informação de localização pode incluir, por exemplo, um identificador de quadro e/ou um identificador de bloco.
O metadado de detecção pode incluir, por exemplo, um valor de marca fixada como um fator. A marca fixada pode ser, por exemplo, o valor do fator antes da localização ter sido modificada. A marca fixada pode ser, por exemplo, comparada com o valor atual (a nova marca fixada) do fator para a localização acessada (1120) proporcionando uma indicação da mudança. Por exemplo, a comparação pode indicar se o valor (da marca fixada) aumen10 tou ou se diminuiu como um resultado dessa modificação.
O metadado de detecção pode incluir como um fator, por exemplo, um valor de base a partir de uma localização diferente (sem a marca fixada). Tal valor de base pode ser, por exemplo, a luminância média de uma localização sem a marca d'água. O valor de base pode ser usado, conforme explicado anteriormente, para determinar se ocorreu uma mu15 dança no dado com um grau de efeito maior do que na localização com a marca d'água. Em certas circunstâncias, pode ocorrer uma mudança global (por exemplo, uma mudança no quadro inteiro). Por exemplo, a luminância média de um quadro inteiro pode ter sido alterada. O valor de base pode ser então comparado com o novo valor do fator na localização sem a presença da marca d'água (um novo valor de base). Caso a diferença seja maior do 20 que um limite estabelecido, pode-se determinar a partir daí que ocorreu uma mudança global. Alternativamente, a diferença pode ser considerada como simplesmente sendo uma diferença global, e ela ser adicionada ao valor (a nova marca fixada) determinado para a (possível) localização marcada com a marca d'água levando em consideração a mudança global. Observe-se que nesta alternativa, a diferença pode ser adicionada (alternativamente) 25 junto a marca fixada ao invés do valor (a nova marca fixada), Ainda mais, em certas implementações, uma razão pode ser determinada entre o valor de base e o novo valor de base, e tanto a marca fixada quanto a nova marca fixada podem ser multiplicadas por esta razão.
Com referência a Figura 13, um sistema 1300 fornece uma camada “p” 1305 para impressão em vídeo de marca d'água (outros tipos de conteúdo podem ser também impres30 sos com marca d'água) fazendo-se uso da informação embutida pré-preparada (referida como o metadado embutido). O vídeo com a marca d'água é fornecido para visualização. O sistema 1300 proporciona ainda a recodificação do vídeo fornecido para visualização, tal conforme pode ocorrer, por exemplo, quando uma cópia não-autorizada do vídeo é recodificada. O sistema 1300 proporciona ainda a decodificação da recodificação, e a detecção da 35 carga útil original em um ou mais pontos no sistema generalizado. O sistema 1300 serve também como um fluxograma para um ou mais processos.
A camada “p” 1305 inclui uma carga útil 1310, um vídeo 1315, e metadado embuti
Petição 870190017582, de 21/02/2019, pág. 47/69
37/42 do 1318. A camada “p” 1305 inclui uma unidade de impressão de marca d'água 1320 que recebe a carga útil 1310, o vídeo 1315, e o metadado embutido 1318, habilitando um vídeo com a marca d'água. A carga útil pode ser detectada a partir do vídeo com a marca d'água através de um detector de carga útil 1345.
A camada “p” 1305 inclui um decodificador de entropia 1325 que recebe o vídeo com a marca d'água desempenhando a decodificação por entropia. A camada “p” 1305 inclui ainda um decodificador de prognóstico 1330 que recebe o fluxo decodificado por entropia advindo do decodificador de entropia 1325 desempenhando a decodificação prognosticada para a produção de uma imagem no domínio pixel 1335. A imagem no domínio pixel pode 10 ser fornecida junto a um visualizador 1355, ou via um detector de carga útil 1350 operando no dado da faixa de base.
A imagem no domínio pixel pode ser fornecida também como um recodificador de prognóstico 1360 acompanhado por um recodificador entrópico para recodificar a imagem no domínio pixel em uma saída codificada 1370. A saída codificada 1370 pode ser, por 15 exemplo, um fluxo de bits compatível ao padrão AVC. A saída codificada 1370 pode ser, por exemplo, armazenada, em uma mídia com capacidade de gravação para distribuição. O recodificador de prognóstico 1360 e o recodificador entrópico 1365 podem fazer parte de um dispositivo separado da camada “p” 1305 e que esteja produzindo cópias não-autorizadas do conteúdo (representado pela saída 1370).
A saída codificada 1370 pode ser fornecida, por exemplo, junto a um decodificador de entropia 1380 (que pode ser idêntico ao decodificador de entropia 1325) acompanhado por um decodificador de prognóstico 1385 (que pode ser idêntico ao decodificador de prognóstico 1330) para a decodificação da saída codificada 1370 em uma imagem no domínio pixel 1390. A imagem no domínio pixel 1390 pode ser fornecida junto a um visualizador 25 1392 e/ou junto a um detector de carga útil 1395 (que pode ser idêntico ao detector de carga útil 1350). O decodificador de entropia 1380 e o decodificador de prognóstico 1385 podem ser partes de um dispositivo separado da camada “p” 1305 e do recodificador de prognóstico 1360 e do recodificador de entropia 1365. Por exemplo, um tal tipo de dispositivo separado pode se apresentar geograficamente localizado em uma instalação de detecção de carga útil 30 que recebe e analisa cópias de conteúdo não-autorizado (representadas pela saída 1370).
Evidentemente, o processo 900, ou outros processos descritos nesta aplicação podem ser executados por uma variedade de dispositivos, incluindo-se dispositivos de processamento. Tais dispositivos podem incluir também um dispositivo de armazenagem para o armazenamento de dados como, por exemplo, os dados acessados, o valor da marca fixa35 da, o valor de base, e as localizações de possível informação de marca d'água. Ainda, o processo 900, ou outros processos descritos neste relatório, podem ser incorporados ainda em um conjunto de instruções.
Petição 870190017582, de 21/02/2019, pág. 48/69
38/42
Fatores e aspectos das implementações descritas podem ser aplicados junto a várias aplicações. As aplicações incluem, por exemplo, discos para impressão da marca d'água como, por exemplo, DVDs ou outros discos, e fluxos digitais para impressão de marca d'água. A impressão de marca d'água por discos pode ser realizada de várias maneiras, por 5 exemplo, na duplicação dos discos. A impressão de marca d'água em fluxos digitais pode ser realizada também de várias maneiras, por exemplo, na reprodução, difusão, descarregamento, ou outro tipo de transferência de um fluxo digital. Estes fatores e aspectos podem ser também adaptados para outras áreas de aplicação. Por exemplo, um fluxo de bits codificado pode ser modificado para outras finalidades que não seja a impressão de marca d'á10 gua. Um exemplo inclui se embutir uma mensagem destinada a que seja vista por um observador. Ainda, a mensagem pode ser variada com base em uma carga útil ou outro tipo de critério. Ainda, embora as implementações descritas se concentrem primariamente na codificação de extensão variável, outras aplicações podem aplicar os mesmos conceitos junto a outras técnicas de codificação.
Os conceitos, implementações, e fatores descritos neste relatório podem ser aplicados, por exemplo, em vários estágios em um típico processo de criação, distribuição, e reprodução de DVD. Por exemplo, os conceitos e fatores podem ser empregados em forma de:
1. Pré-processamento de conteúdo para a determinação dos valores de reposição.
Os valores de reposição não necessitam de serem inseridos neste estágio, mas podem ser armazenados, por exemplo, em uma estrutura de dados (por exemplo, uma tabela) para futura inserção.
2. Estrutura de dados mencionada no item 1 acima, ou um sinal conduzindo a estrutura de dados, ou uma mídia de leitura por processador armazenando na estrutura de da- dos. Tal mídia pode conter, por exemplo, tanto a estrutura de dados como o conteúdo nãomodificado.
3. Inserção dos valores de reposição a partir do item 1 acima no conteúdo.
4. Conteúdo modificado produzido a partir do item 3 acima, tanto em uma estrutura de dados, em um sinal conduzindo o conteúdo modificado, em uma mídia de leitura por pro- cessador armazenando o conteúdo modificado.
5. Decodificação do conteúdo modificado do item 4 acima para a produção do dado da faixa de base, tal como, por exemplo, o dado de pixel (caso as imagens sejam codificadas) ou o dado de áudio (caso o áudio seja codificado).
6. O próprio conteúdo decodificado advindo do item 5 acima, consistindo de conte35 údo modificado incluindo uma marca d'água. O conteúdo decodificado pode ser, por exemplo, em uma estrutura de dados, um sinal conduzindo o conteúdo decodificado, ou uma mídia de leitura por processador armazenando, pelo menos, temporariamente, o conteúdo dePetição 870190017582, de 21/02/2019, pág. 49/69
39/42 codificado.
7. Exposição, ou em termos mais genéricos, apresentação do conteúdo decodificado relacionado ao item 6 acima. Incluindo ainda o fornecimento de visualização ou apresentação.
8. Recodificação do conteúdo decodificado a partir do item 6 acima, de modo que o fator de detecção (resultado da modificação) seja retido muito embora os bits codificados possam ser diferentes daqueles fornecidos no item 4 acima.
9. Estrutura de dados contendo o conteúdo recodificado advindo do item 8. Ou um sinal de formatação e condução do conteúdo recodificado. Ou uma mídia de leitura por pro- cessador armazenando o conteúdo recodificado.
10. Decodificação do conteúdo recodificado do item 8 acima para a produção do dado da faixa de base.
11. O dado da faixa de base produzido pela decodificação do item 10 acima. O dado da faixa de base pode ser, por exemplo, em uma estrutura de dados, um sinal conduzin- do o dado da faixa de base, ou uma mídia de leitura por processador armazenando, pelo menos, temporariamente o dado da faixa de base.
12. Exposição, ou em termos mais genéricos, apresentação do dado da faixa de base do item 11 acima. Incluindo ainda o fornecimento de visualização ou apresentação.
13. Detecção de uma carga útil (por exemplo, uma marca d'água) a partir do conte20 údo modificado do item 4 acima.
14. Detecção de uma carga útil a partir do dado da faixa de base do item 5 acima.
15. Detecção de uma carga útil, caso os bits codificados deem condições para isso, advinda do conteúdo recodificado dos itens 8 e 9 acima.
16. Detecção de uma carga útil a partir do dado da faixa de base do item 11 acima.
Observe-se que se cabeçalhos são utilizados para várias seções deste relatório, consequentemente, o cabeçalho de uma dada seção não é formado em sentido a limitar a descrição daquela seção referente ao tópico do cabeçalho, nem vem a limitar a descrição de outras seções junto aos tópicos extemporâneos referente aquele cabeçalho. Tais cabeçalhos são formas de exemplos, e pretendem vir em auxílio genérico ao leitor. Tais cabeçalhos 30 não pretendem restringir o fluxo do relatório descritivo, nem restringir a capacidade de aplicação ou o seu alcance genérico.
Uma marca d'água, conforme empregada neste relatório, pode se referir a vários itens. Por exemplo, uma marca d'água pode querer se referir ao dado modificado ou introduzido possibilitando ser posteriormente detectado, ou vindo a resultar em modificação da fai35 xa de base.
Conforme deve ficar claro, um elemento de sintaxe pode representar um ou mais dos vários diferentes tipos de informação. Por exemplo, um elemento de sintaxe pode ser
Petição 870190017582, de 21/02/2019, pág. 50/69
40/42 um vetor de movimento, um coeficiente de resíduo DCT, um tipo de macrobloco, um parâmetro de quantização, ou uma identificação. Consequentemente, os elementos de sintaxe não precisam ter todos a mesma extensão, mas podem ter várias extensões diferentes. Várias implementações descritas neste relatório podem funcionar em qualquer tipo de elemen5 to de sintaxe, a despeito de qual tipo de informação é representada pelo elemento de sintaxe e a despeito do tamanho/extensão do elemento de sintaxe.
Várias implementações são descritas em termos de uma imagem, uma estrutura, ou um bloco, por exemplo. Contudo, os conceitos, implementações, e fatores descritos neste relatório, em geral, aplicam-se a uma imagem, e aquela imagem pode compreender (ou 10 incluir) um ou mais pixels, blocos, fatias, campos, quadros, imagens, ou sequências.
Além do mais, muitas implementações são descritas em termos de dados de vídeo. Contudo, os conceitos, implementações, e fatores são, em regra, igualmente aplicáveis junto a dados de áudio e outros tipos de dados codificados.
Dois dispositivos ou componentes são ditos estarem acoplados, caso os dois dis15 positivos estejam diretamente ou indiretamente conectados. Os dispositivos diretamente conectados não apresentam dispositivos de intervenção entre os dispositivos conectados. Os dispositivos conectados indiretamente apresentam um ou mais dispositivos de intervenção entre os dispositivos conectados.
Ainda, muitas implementações são descritas com respeito ao padrão AVC. Entre20 tanto, os conceitos, implementações, e fatores (1) não necessitam de estarem restritos a um ambiente padronizado, podendo ser empregados em ambientes aonde nenhum tipo de padrão seja utilizado, (2) e, certamente, não estão restritos ao padrão AVC, (3) empregados, em geral, junto a outros padrões conhecidos, e (4) terão, em regra, capacidade de serem empregados de alguma forma, pelo menos, em futuros padrões a serem desenvolvidos. Ou25 tros padrões podem incluir os padrões relacionados ao AVC, que dizem respeito, em geral, a outros padrões que são baseados, ou são semelhantes, ao padrão AVC (com ou sem suas extensões).
As implementações descritas neste relatório podem ser implementadas, por exemplo, em um método ou processo, em uma aparelhagem, ou programa de software. Mesmo 30 se somente discutida no contexto de uma forma simples de implementação (por exemplo, discutida somente como um método), a implementação de fatores discutida pode ser implementada também em outras formas (por exemplo, numa aparelhagem ou programa). Uma aparelhagem pode ser implementada, por exemplo, em um hardware, software, e firmware apropriados. Os métodos podem ser implementados, por exemplo, em uma aparelhagem, 35 tal como, por exemplo, um processador, referido aos dispositivos de processamento habituais, incluindo-se, por exemplo, um computador, um microprocessador, um circuito integrado, ou um dispositivo de programação lógica. Os dispositivos de processamento incluem ainda
Petição 870190017582, de 21/02/2019, pág. 51/69
41/42 dispositivos de comunicação, tais como, por exemplo, computadores, telefones celulares, assistentes digitais personalizados/portáteis (“PDAs”), e outros dispositivos que facilitam a comunicação da informação entre usuários em pontas.
As implementações dos vários processos e fatores descritos neste relatório podem 5 ser personificadas em uma variedade de equipamentos e aplicações diferentes, particularmente, por exemplo, equipamentos ou aplicações associadas com a codificação e decodificação de dados, ou equipamentos ou aplicações associadas com a produção de conteúdo. Exemplos de equipamentos incluem codificadores de vídeo, decodificadores de vídeo, codecs de vídeo, servidores na web, conjuntos de periféricos de linha, laptops, computadores 10 personalizados, telefones celulares, PDAs, e outros dispositivos de comunicação. Deve ficar claro que os equipamentos podem ser móveis e mesmo instalados em um veículo móvel.
Além do mais, os métodos podem ser implementados através de instruções sendo executadas por um processador, e tais instruções podem ser armazenadas em uma mídia de leitura por processador, tal como, por exemplo, um circuito integrado, um condutor de 15 software ou outro tipo de dispositivo de armazenagem, tal como, por exemplo, um disco rígido, um disquete compacto, uma memória de acesso aleatório (“RAM”), ou uma memória fixa (“ROM”). As instruções podem formar um programa de aplicação personificado de maneira tangível em uma mídia de leitura por processador. As instruções podem estar contidas, por exemplo, no hardware, firmware, software, ou uma combinação destes. As instruções po20 dem ser encontradas, por exemplo, em um sistema operacional, uma aplicação separada, ou uma combinação destas duas. Um processador pode ser caracterizado, portanto por exemplo, tanto como um dispositivo configurado para conduzir um processo e um dispositivo que inclui uma mídia de leitura por processador contendo instruções para a condução de um processo.
Conforme deve se apresentar como evidente a um especialista na área, as implementações podem produzir ainda um sinal formatado para a condução da informação que, por exemplo, pode se apresentar armazenada ou transmitida. A informação pode incluir, por exemplo, instruções para o desempenho de um método, ou dado produzido por uma das implementações descritas. Tal sinal pode ser formatado, por exemplo, na forma de uma on30 da eletromagnética (por exemplo, utilizando-se uma porção de frequência de rádio do espectro total) ou um sinal da faixa de base. A formatação pode incluir, por exemplo, a codificação de um fluxo de dados e a modulação de um condutor com o fluxo de dados codificado. A informação do que o sinal conduz pode consistir, por exemplo, de informação analógica ou digital. O sinal pode ser transmitido em uma variedade de diferentes enlaces com ou 35 sem fiação, conforme já se sabe.
Foi feita a descrição de uma quantidade de implementações. Não obstante, deve-se compreender que podem ser efetuadas várias modificações. Por exemplo, os elementos de
Petição 870190017582, de 21/02/2019, pág. 52/69
42/42 diferentes implementações podem ser combinados, suplementados, modificados, ou removidos para a produção de outras implementações. Além do mais, um especialista na área irá notar que outras estruturas e processos podem ser substitutos para o que foi descrito neste relatório, e as implementações resultantes irão desempenhar, pelo menos, substancialmen5 te, funções idênticas, pelo menos, substancialmente das mesmas maneiras, chegando-se, pelo menos, substancialmente, aos mesmos resultados conforme ocorrido para as implementações descritas. Consequentemente, essas e outras implementações são contempladas por este relatório situando-se dentro do escopo das reivindicações apensas.

Claims (3)

  1. REIVINDICAÇÕES
    1. Método imprimir marca d'água em dados codificados de extensão variável, compreendendo:
    acessar (1010) dados codificados de extensão variável incluindo uma codificação
    5 de informação identificando uma referência real utilizada para codificação prognosticada de uma imagem, a dita referência real sendo um bloco real ou conjunto de pixels de uma imagem e a dita informação sendo uma variável ou parâmetro que identifica a referência real, a codificação da informação apresentando um valor particular, e os dados codificados de extensão variável incluindo também uma codificação de um resíduo produzido a partir da codi10 ficação prognosticada da imagem com base na referência real;
    acessar (1020) um valor alternativo que seja diferente do valor particular, de modo que o valor alternativo consista de uma codificação de informação alternativa que identifica uma referência diferente da referência real; e inserir (1030) o valor alternativo nos dados codificados de extensão variável como
    15 um substituto para o valor particular para imprimir marca d'água na imagem, de acordo com a carga útil de marca d'água, CARACTERIZADO pelo fato de que os dados codificados de extensão variável incluem o valor alternativo codificando a informação alternativa identificando a referência diferente e também incluem o resíduo produzido a partir da codificação prognosticada da imagem com base na referência real.
    20 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a codificação prognosticada da imagem é intra-prevista, de modo que a referência real seja uma referência intra-prevista.
    3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que a referência diferente é uma referência intra-prevista.
    25 4. Método, de acordo com qualquer uma das reivindicações 1 a 3,
    CARACTERIZADO pelo fato de que a informação que identifica a referência real inclui um indicador do tipo macro-bloco, como usado em H.264 ou um padrão relacionado.
    5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a informação que identifica a referência real inclui um
    30 indicador de modo de intra-previsão, como usado em H.264 ou um padrão relacionado.
    6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a codificação prognosticada da imagem é inter-prevista, de modo que a referência real é uma referência inter-prevista.
    7. Método, de acordo com a reivindicação 1 ou 6, CARACTERIZADO pelo fato de 35 que as informações que identificam a referência real incluem um vetor de movimento, como usado em H.264 ou um padrão relacionado.
    8. Método, de acordo com qualquer uma das reivindicações 1 a 7,
    Petição 870190017582, de 21/02/2019, pág. 54/69
  2. 2/3
    CARACTERIZADO pelo fato de que:
    acessar os dados codificados de extensão variável ocorre em resposta a uma solicitação para apresentação dos dados codificados de extensão variável, e operações de processamento para determinar se o valor alternativo foi executado
    5 antes do acesso aos dados codificados de extensão variável, de modo que, mediante o recebimento da solicitação para apresentação dos dados codificados de extensão variável, e o acesso posterior aos dados codificados de extensão variável, o valor alternativo pode ser introduzido sem a necessidade de se determinar o valor alternativo.
    9. Método, de acordo com qualquer uma das reivindicações 1 a 8,
    10 CARACTERIZADO pelo fato de compreender ainda realizar operações de processamento para determinar o valor alternativo, antes do acesso ao valor alternativo.
    10. Dispositivo para imprimir marca d'água em dados codificados de extensão variável, compreendendo uma unidade de modificação de fluxo contínuo (102, 1320) que compreende pelo menos o seguinte:
    15 meios para acessar dados codificados de extensão variável incluindo uma codificação de informação identificando uma referência real utilizada para codificação prognosticada de uma imagem, a dita referência real sendo um bloco real ou conjunto de pixels de uma imagem e a dita informação sendo uma variável ou parâmetro que identifica a referência real, a codificação da informação apresentando um valor particular, e os dados codificados 20 de extensão variável também incluem codificação de um resíduo produzido a partir da codificação prognosticada da imagem com base na referência real;
    meios para acessar um valor alternativo que seja diferente do valor particular, de modo que o valor alternativo seja uma codificação de informação alternativa que identifica uma referência diferente da referência atual; e
    25 meios para inserir o valor alternativo nos dados codificados de extensão variável na forma de um substituto para o valor particular para imprimir marca d'água na imagem, de acordo com a carga útil da marca d'água, CARACTERIZADO pelo fato de que os dados codificados de extensão variável incluem o valor alternativo codificando a informação alternativa identificando a referência diferente e também incluem o resíduo produzido a partir da
    30 codificação prognosticada da imagem com base na referência real.
    11. Dispositivo, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de compreender ainda um leitor de DVD, e em que a aparelhagem consiste de um reprodutor de DVDs.
    12. Mídia legível por processador, CARACTERIZADA por apresentar instruções
    35 armazenadas na mesma, para executar o método conforme definido em qualquer uma das reivindicações 1 a 9.
    13. Fluxo contínuo de dados codificados de extensão variável (103) para uma codiPetição 870190017582, de 21/02/2019, pág. 55/69
  3. 3/3 ficação de uma imagem, os dados codificados de extensão variável compreendendo uma codificação de informação identificando uma referência alternativa que seja diferente da referência real utilizada para codificação prognosticada da imagem, a dita referência alternativa sendo um bloco real ou conjunto de pixels de uma imagem e a dita informação sendo 5 uma variável ou parâmetro que identifica a referência alternativa, em que a informação identificando a referência alternativa proporciona imprimir uma marca d'água na imagem, e CARACTERIZADO pelo fato de que os dados codificados de extensão variável compreendem ainda uma codificação de informação identificando um resíduo a partir da codificação prognosticada da imagem utilizando a referência real, e em que os dados codificados de 10 extensão variável não incluem uma codificação de informação identificando a referência real.
    14. Fluxo contínuo, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que a codificação prognosticada da imagem é intra-prevista, de modo que a referência real seja uma referência intra-prevista.
    15 15. Fluxo contínuo, de acordo com a reivindicação 13 ou 14, CARACTERIZADO pelo fato de que a referência alternativa é uma referência intra-prevista.
BRPI0811626-1A 2007-06-14 2008-06-13 Método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador BRPI0811626B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US93463407P 2007-06-14 2007-06-14
US60/934.634 2007-06-14
PCT/US2007/023172 WO2008118145A1 (en) 2007-03-23 2007-11-02 Modifying a coded bitstream
USPCT/US2007/023172 2007-11-02
PCT/US2008/007441 WO2008154041A1 (en) 2007-06-14 2008-06-13 Modifying a coded bitstream

Publications (2)

Publication Number Publication Date
BRPI0811626A2 BRPI0811626A2 (pt) 2014-11-11
BRPI0811626B1 true BRPI0811626B1 (pt) 2019-08-20

Family

ID=39743136

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0811626-1A BRPI0811626B1 (pt) 2007-06-14 2008-06-13 Método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador

Country Status (8)

Country Link
US (1) US8588459B2 (pt)
EP (1) EP2162860B1 (pt)
JP (2) JP5467651B2 (pt)
KR (1) KR101518999B1 (pt)
CN (1) CN101681499B (pt)
BR (1) BRPI0811626B1 (pt)
CA (1) CA2689634C (pt)
WO (1) WO2008154041A1 (pt)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US9055239B2 (en) 2003-10-08 2015-06-09 Verance Corporation Signal continuity assessment using embedded watermarks
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US9299120B2 (en) 2007-03-23 2016-03-29 Thomson Licensing Llc Modifying a coded bitstream
BRPI0917200B1 (pt) 2008-08-19 2021-06-29 Contentarmor Método de seleção e incorporação de marcas d'água para aplicação em dados de vídeo
KR101611375B1 (ko) 2008-08-19 2016-04-11 톰슨 라이센싱 압축된 비디오에서 구문 요소의 cabac/avc 준수 워터마킹
US9042455B2 (en) 2008-08-19 2015-05-26 Thomson Licensing Propagation map
US8594366B2 (en) 2008-08-19 2013-11-26 Thomson Licensing Context-based adaptive binary arithmetic coding (CABAC) video stream compliance
JP2012500567A (ja) * 2008-08-20 2012-01-05 トムソン ライセンシング 圧縮ビデオの透かし処理用の透かしの選択
BRPI0917202B1 (pt) * 2008-08-20 2020-03-10 Contentarmor Blocagem e fidelidade em marca d'água
JP5394212B2 (ja) * 2008-12-19 2014-01-22 トムソン ライセンシング データを挿入する方法、挿入されたデータを読み出す方法
US8396122B1 (en) * 2009-10-14 2013-03-12 Otoy, Inc. Video codec facilitating writing an output stream in parallel
JP2013514718A (ja) * 2009-12-17 2013-04-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 映像符号化の方法及び装置
WO2011090798A1 (en) 2010-01-22 2011-07-28 Thomson Licensing Data pruning for video compression using example-based super-resolution
US9602814B2 (en) 2010-01-22 2017-03-21 Thomson Licensing Methods and apparatus for sampling-based super resolution video encoding and decoding
BR112012019745B1 (pt) 2010-02-09 2020-11-10 Contentarmor Método de detecção de marca dágua utilizando um mapa de propagação
BR122020007923B1 (pt) 2010-04-13 2021-08-03 Ge Video Compression, Llc Predição interplano
CN106454376B (zh) 2010-04-13 2019-10-01 Ge视频压缩有限责任公司 解码器、重建数组的方法、编码器、编码方法及数据流
PL3621306T3 (pl) 2010-04-13 2022-04-04 Ge Video Compression, Llc Kodowanie wideo przy wykorzystaniu podpodziałów obrazów multidrzewa
DK2559246T3 (en) 2010-04-13 2016-09-19 Ge Video Compression Llc Fusion of sample areas
US20110280434A1 (en) * 2010-05-11 2011-11-17 Rajesh Mamidwar Method and system for watermakr insertin using video start codes
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
KR101869459B1 (ko) * 2010-09-10 2018-06-20 톰슨 라이센싱 블록-기반의 혼합된-해상도 데이터 프루닝을 이용하는 비디오 디코딩
WO2012033972A1 (en) 2010-09-10 2012-03-15 Thomson Licensing Methods and apparatus for pruning decision optimization in example-based data pruning compression
WO2012033970A1 (en) 2010-09-10 2012-03-15 Thomson Licensing Encoding of a picture in a video sequence by example - based data pruning using intra- frame patch similarity
WO2012038938A1 (en) 2010-09-24 2012-03-29 Nokia Corporation Methods, apparatuses and computer programs for video coding
US8848791B2 (en) * 2010-09-29 2014-09-30 Futurewei Technologies, Inc. Compressed domain video watermarking
KR101424049B1 (ko) 2010-11-29 2014-07-29 주식회사 씨케이앤비 워터마크 생성 방법, 이를 포함하는 방송 콘텐츠 생성 방법 및 워터마크 삽입 시스템
EP2697979B1 (en) * 2011-04-15 2016-09-28 Nagravision S.A. Method to identify the origin of a security module in pay-tv decoder system
US20120294366A1 (en) * 2011-05-17 2012-11-22 Avi Eliyahu Video pre-encoding analyzing method for multiple bit rate encoding system
US8805099B2 (en) 2011-06-22 2014-08-12 Panasonic Intellectual Property Corporation Of America Image decoding method and image coding method
EP2544142A1 (en) 2011-07-08 2013-01-09 Thomson Licensing Method for watermark detection using reference blocks comparison
EP2774360B1 (en) 2011-11-04 2017-08-02 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
US8745403B2 (en) 2011-11-23 2014-06-03 Verance Corporation Enhanced content management based on watermark extraction records
EP2600531A1 (en) * 2011-12-01 2013-06-05 Thomson Licensing Method for determining a modifiable element in a coded bit-stream and associated device
JP2013126225A (ja) * 2011-12-16 2013-06-24 Internatl Business Mach Corp <Ibm> サーバから複数のクライアントにデータを配布するための方法、プログラムおよびシステム
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
US8726304B2 (en) 2012-09-13 2014-05-13 Verance Corporation Time varying evaluation of multimedia content
EP2903285A4 (en) * 2012-09-28 2016-06-01 Sharp Kk IMAGE DECODING DEVICE AND IMAGE CODING DEVICE
US9990478B2 (en) * 2012-11-30 2018-06-05 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxiliary data into relational database keys and methods, apparatus, and articles of manufacture to obtain encoded data from relational database keys
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
WO2014153199A1 (en) 2013-03-14 2014-09-25 Verance Corporation Transactional video marking system
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
US9485089B2 (en) 2013-06-20 2016-11-01 Verance Corporation Stego key management
US9251549B2 (en) 2013-07-23 2016-02-02 Verance Corporation Watermark extractor enhancements based on payload ranking
US9208334B2 (en) * 2013-10-25 2015-12-08 Verance Corporation Content management using multiple abstraction layers
SG11201602742WA (en) * 2013-11-04 2016-05-30 Nagravision Sa Device and method to mark digital audio or audio and/or video content
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
US9299119B2 (en) * 2014-02-24 2016-03-29 Disney Enterprises, Inc. Overlay-based watermarking for video synchronization with contextual data
WO2015138798A1 (en) 2014-03-13 2015-09-17 Verance Corporation Interactive content acquisition using embedded codes
US10504200B2 (en) 2014-03-13 2019-12-10 Verance Corporation Metadata acquisition using embedded watermarks
EP2960854A1 (en) * 2014-06-27 2015-12-30 Thomson Licensing Method and device for determining a set of modifiable elements in a group of pictures
US9639911B2 (en) 2014-08-20 2017-05-02 Verance Corporation Watermark detection using a multiplicity of predicted patterns
US9942602B2 (en) 2014-11-25 2018-04-10 Verance Corporation Watermark detection and metadata delivery associated with a primary content
WO2016086047A1 (en) 2014-11-25 2016-06-02 Verance Corporation Enhanced metadata and content delivery using watermarks
WO2016100916A1 (en) 2014-12-18 2016-06-23 Verance Corporation Service signaling recovery for multimedia content using embedded watermarks
US9756401B2 (en) * 2015-04-07 2017-09-05 Sony Corporation Processing and providing an image in which a plurality of symbols are encoded
EP3086562B1 (en) * 2015-04-23 2017-05-24 Axis AB Method and device for processing a video stream in a video camera
US10257567B2 (en) 2015-04-30 2019-04-09 Verance Corporation Watermark based content recognition improvements
CN107852530B (zh) * 2015-07-06 2021-07-09 Lg电子株式会社 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法
US10477285B2 (en) 2015-07-20 2019-11-12 Verance Corporation Watermark-based data recovery for content with multiple alternative components
CN105263024B (zh) * 2015-10-15 2018-06-29 宁波大学 一种抗量化转码的hevc视频流零水印的注册和检测方法
CN107105255B (zh) * 2016-02-23 2020-03-03 阿里巴巴集团控股有限公司 视频文件中添加标签的方法和装置
US10958989B2 (en) 2016-02-25 2021-03-23 Synamedia Limited Framework for embedding data in encoded video
US20190132652A1 (en) 2016-04-18 2019-05-02 Verance Corporation System and method for signaling security and database population
CN117499646A (zh) * 2016-04-29 2024-02-02 英迪股份有限公司 图像解码方法、图像编码方法和用于发送比特流的方法
US10554976B2 (en) * 2016-07-25 2020-02-04 Synamedia Limited Framework for embedding data in encoded video
US10401500B2 (en) * 2016-12-30 2019-09-03 DeepMap Inc. Encoding LiDAR scanned data for generating high definition maps for autonomous vehicles
WO2018237191A1 (en) 2017-06-21 2018-12-27 Verance Corporation ACQUISITION AND TREATMENT OF METADATA BASED ON A WATERMARK
CN109756738B (zh) * 2017-11-02 2021-04-16 北京金山云网络技术有限公司 数字水印添加、提取方法、装置、电子设备及存储介质
US11057685B2 (en) * 2018-03-29 2021-07-06 Ncr Corporation Media content proof of play over optical medium
US11468149B2 (en) 2018-04-17 2022-10-11 Verance Corporation Device authentication in collaborative content screening
US20220230644A1 (en) * 2019-08-15 2022-07-21 Dolby Laboratories Licensing Corporation Methods and devices for generation and processing of modified bitstreams
CN111866517A (zh) * 2020-07-23 2020-10-30 北京中指实证数据信息技术有限公司 图片处理的方法及装置、电子设备及计算机可读存储介质
CN111913473B (zh) * 2020-07-31 2021-10-22 深圳市元征科技股份有限公司 一种编码调整方法、车辆诊断设备及系统
US11722741B2 (en) 2021-02-08 2023-08-08 Verance Corporation System and method for tracking content timeline in the presence of playback rate changes

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939515A (en) * 1988-09-30 1990-07-03 General Electric Company Digital signal encoding and decoding apparatus
US5721788A (en) * 1992-07-31 1998-02-24 Corbis Corporation Method and system for digital image signatures
ATE206264T1 (de) * 1993-10-29 2001-10-15 Time Warner Entertainm Co Lp Verfahren zur wiedergabesteuerung mehrerer, auf einer optische platte gespeichterten kinofilme
US7113615B2 (en) * 1993-11-18 2006-09-26 Digimarc Corporation Watermark embedder and reader
US5710834A (en) * 1995-05-08 1998-01-20 Digimarc Corporation Method and apparatus responsive to a code signal conveyed through a graphic image
US5636292C1 (en) * 1995-05-08 2002-06-18 Digimarc Corp Steganography methods employing embedded calibration data
US5748783A (en) * 1995-05-08 1998-05-05 Digimarc Corporation Method and apparatus for robust information coding
US5530751A (en) * 1994-06-30 1996-06-25 Hewlett-Packard Company Embedded hidden identification codes in digital objects
US5646997A (en) * 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
GB9500285D0 (en) 1995-01-07 1995-03-01 Central Research Lab Ltd A method of labelling an audio signal
US5530759A (en) * 1995-02-01 1996-06-25 International Business Machines Corporation Color correct digital watermarking of images
US5613004A (en) * 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
US6411725B1 (en) * 1995-07-27 2002-06-25 Digimarc Corporation Watermark enabled video objects
US5687191A (en) * 1995-12-06 1997-11-11 Solana Technology Development Corporation Post-compression hidden data transport
US5664018A (en) * 1996-03-12 1997-09-02 Leighton; Frank Thomson Watermarking process resilient to collusion attacks
AU2435297A (en) * 1996-04-02 1997-11-07 Theodore G Handel Data embedding
US7412072B2 (en) * 1996-05-16 2008-08-12 Digimarc Corporation Variable message coding protocols for encoding auxiliary data in media signals
US6978370B1 (en) * 1996-09-03 2005-12-20 Cryptography Research, Inc. Method and system for copy-prevention of digital copyright works
US5809139A (en) * 1996-09-13 1998-09-15 Vivo Software, Inc. Watermarking method and apparatus for compressed digital video
US5734752A (en) * 1996-09-24 1998-03-31 Xerox Corporation Digital watermarking using stochastic screen patterns
US5825892A (en) * 1996-10-28 1998-10-20 International Business Machines Corporation Protecting images with an image watermark
US5960081A (en) * 1997-06-05 1999-09-28 Cray Research, Inc. Embedding a digital signature in a video sequence
US6785332B1 (en) * 1997-07-18 2004-08-31 Ecole Polytechnique Federale De Lausanne Method for marking a compressed digital video signal
KR100323441B1 (ko) * 1997-08-20 2002-06-20 윤종용 엠펙2동화상부호화/복호화시스템
JP4064506B2 (ja) * 1997-09-17 2008-03-19 パイオニア株式会社 電子透かし重畳方法及び検出方法並びに装置
US6208745B1 (en) * 1997-12-30 2001-03-27 Sarnoff Corporation Method and apparatus for imbedding a watermark into a bitstream representation of a digital image sequence
US6332194B1 (en) * 1998-06-05 2001-12-18 Signafy, Inc. Method for data preparation and watermark insertion
US6154571A (en) * 1998-06-24 2000-11-28 Nec Research Institute, Inc. Robust digital watermarking
EP1139660B1 (en) * 1998-08-27 2012-06-13 International Business Machines Corporation System for embedding additional information in video data, and embedding method
JP3480700B2 (ja) * 1999-06-25 2003-12-22 日本ビクター株式会社 電子透かし記録方法及び電子透かし記録装置
JP2001242786A (ja) * 1999-12-20 2001-09-07 Fuji Photo Film Co Ltd 配信装置、配信方法、及び記録媒体
US6282300B1 (en) * 2000-01-21 2001-08-28 Signafy, Inc. Rotation, scale, and translation resilient public watermarking for images using a log-polar fourier transform
US6687384B1 (en) * 2000-03-27 2004-02-03 Sarnoff Corporation Method and apparatus for embedding data in encoded digital bitstreams
CN100459708C (zh) * 2001-01-23 2009-02-04 皇家菲利浦电子有限公司 将水印嵌入信息信号中的方法和设备
JP3565182B2 (ja) * 2001-05-11 2004-09-15 日本電気株式会社 可変長符号の入力が中断されることを防止する方式及びその方法
DE60211171T2 (de) * 2001-07-19 2007-05-03 Koninklijke Philips Electronics N.V. Verarbeitung von einem komprimierten mediensignal
US7046818B2 (en) * 2001-07-20 2006-05-16 Seiko Epson Corporation Standards compliant watermarking for access management
JP3977216B2 (ja) * 2001-09-27 2007-09-19 キヤノン株式会社 情報処理装置及び方法及び情報処理プログラム及び記憶媒体
US6724914B2 (en) * 2001-10-16 2004-04-20 Digimarc Corporation Progressive watermark decoding on a distributed computing platform
US7020304B2 (en) * 2002-01-22 2006-03-28 Digimarc Corporation Digital watermarking and fingerprinting including synchronization, layering, version control, and compressed embedding
JP3720791B2 (ja) 2002-04-24 2005-11-30 ソニー株式会社 画像符号化装置及び方法、並びに画像復号装置及び方法
US7277587B2 (en) * 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
JP2005528652A (ja) * 2002-06-03 2005-09-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 独立チャネルのウォーター・マークの符号化および復号化
AU2003256333A1 (en) * 2002-06-28 2004-01-19 University Of Rochester System and method for embedding information in digital signals
EP1537575A1 (en) * 2002-08-21 2005-06-08 Thomson Licensing S.A. Watermarking digital data at a user device
US20040120404A1 (en) * 2002-11-27 2004-06-24 Takayuki Sugahara Variable length data encoding method, variable length data encoding apparatus, variable length encoded data decoding method, and variable length encoded data decoding apparatus
US7636440B2 (en) * 2003-01-31 2009-12-22 Hewlett-Packard Development Company, L.P. Digital watermark with variable location
US20050021539A1 (en) * 2003-03-07 2005-01-27 Chaticom, Inc. Methods and systems for digital rights management of protected content
CN1778092B (zh) * 2003-04-25 2010-05-12 皇家飞利浦电子股份有限公司 通信堆栈中的开销降低和地址保护
DE10321983A1 (de) * 2003-05-15 2004-12-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Einbetten einer binären Nutzinformation in ein Trägersignal
US7769088B2 (en) * 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US20060257000A1 (en) * 2003-06-25 2006-11-16 Boyce Jill M Decoding method an apparatus for detection of watermarks in a compressed video bitsream
BRPI0411667A (pt) * 2003-06-25 2006-08-08 Thomson Licensing método e aparelho de decodificação para detecção de marcas d'água em um fluxo de bits de vìdeo compactado
JP4612797B2 (ja) * 2004-03-11 2011-01-12 キヤノン株式会社 符号化装置、符号化方法
US8127137B2 (en) * 2004-03-18 2012-02-28 Digimarc Corporation Watermark payload encryption for media including multiple watermarks
TWI404419B (zh) * 2004-04-07 2013-08-01 Nielsen Media Res Inc 與壓縮過音頻/視頻資料一起使用之資料插入方法、系統、機器可讀取媒體及設備
US7437721B2 (en) * 2004-09-29 2008-10-14 Microsoft Corporation Isolating software deployment over a network from external malicious intrusion
JP4435830B2 (ja) 2004-10-15 2010-03-24 パナソニック株式会社 情報検出装置および情報検出方法
GB2419762A (en) * 2004-11-01 2006-05-03 Sony Uk Ltd Method of generating protected media signals by replacing data bits with hash values
GB2421134A (en) * 2004-12-09 2006-06-14 Sony Uk Ltd Detection of payload data from a watermarked image by calculation of payload probability values
FR2879878B1 (fr) * 2004-12-22 2007-05-25 Thales Sa Procede de chiffrement selectif compatible pour flux video
US7672373B2 (en) * 2005-04-11 2010-03-02 Cisco Technology, Inc. Digital watermarking of a media stream using coded macroblock types
JP2009500941A (ja) * 2005-07-08 2009-01-08 エルジー エレクトロニクス インコーポレイティド 情報を圧縮/圧縮解除するためにビデオ信号のコーディング情報をモデリングする方法
CN100466739C (zh) * 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
JP2009518945A (ja) * 2005-12-05 2009-05-07 トムソン ライセンシング ウォーターマークエンコードコンテンツ
FR2894759A1 (fr) 2005-12-12 2007-06-15 Nextamp Sa Procede et dispositif de tatouage sur flux
DE102005063136B3 (de) * 2005-12-30 2007-07-05 Siemens Ag Verfahren und Vorrichtung zum Generieren eines markierten Datenstroms, Verfahren und Vorrichtung zum Einfügen eines Wasserzeichens in einen markierten Datenstrom und markierter Datenstrom
CN101432774B (zh) 2006-04-25 2012-05-30 汤姆森特许公司 数字加水印方法
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
US9299120B2 (en) * 2007-03-23 2016-03-29 Thomson Licensing Llc Modifying a coded bitstream
ATE556390T1 (de) 2007-06-29 2012-05-15 Thomson Licensing Volumenmarkierung mit niederfrequenz
KR101611375B1 (ko) 2008-08-19 2016-04-11 톰슨 라이센싱 압축된 비디오에서 구문 요소의 cabac/avc 준수 워터마킹

Also Published As

Publication number Publication date
CA2689634A1 (en) 2008-12-18
JP5467651B2 (ja) 2014-04-09
BRPI0811626A2 (pt) 2014-11-11
CA2689634C (en) 2016-08-23
JP5892704B2 (ja) 2016-03-23
JP2010529813A (ja) 2010-08-26
US20100150394A1 (en) 2010-06-17
KR20100021588A (ko) 2010-02-25
WO2008154041A1 (en) 2008-12-18
EP2162860B1 (en) 2018-08-01
KR101518999B1 (ko) 2015-05-12
CN101681499B (zh) 2013-04-24
US8588459B2 (en) 2013-11-19
EP2162860A1 (en) 2010-03-17
JP2014042311A (ja) 2014-03-06
CN101681499A (zh) 2010-03-24

Similar Documents

Publication Publication Date Title
BRPI0811626B1 (pt) Método e dispositivo imprimir marca d&#39;água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador
KR101398534B1 (ko) 코딩된 비트스트림의 수정
TW312770B (en) The hiding and taking out method of data
TWI463806B (zh) 處理數位影像之方法及系統
CN101330611B (zh) 视频水印嵌入、擦除方法和装置以及水印处理系统
US20110158465A1 (en) Selection of watermarks for the watermarking of compressed video
CA2613997A1 (en) Image watermarking using multiple watermarking methods for multiple regions
US20090175335A1 (en) Digital Watermarking Method
EP1960963B1 (en) Method and device for watermarking on stream
Yang et al. High-Capacity Adaptive Steganography Based on Transform Coefficient for HEVC
JP4552677B2 (ja) 符号化装置および方法、復号装置および方法、情報処理システム、記録媒体、並びにプログラム
Shanableh Adaptive message embedding in raw images
Kraichingrith HIGH CAPACITY IMAGE STEGANOGRAPHY TOLERATING IMAGE COMPRESSION
Zwol Splitting the watermark up, a steganographic watermarking algorithm for H. 264 with reduced image distortion
Xue et al. A fast H. 264 compressed domain watermarking scheme with minimized propagation error based on macro-block dependency analysis
AU2006265780A1 (en) Image watermarking

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: CONTENTARMOR (FR)

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 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: 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 16A ANUIDADE.