“BLOCAGEM E FIDELIDADE EM MARCA D’ÁGUA” Referência Cruzada ao Pedido Relacionado Este pedido de patente reivindica o benefício e a prioridade ao pedido de patente provisório U.S. número 61/189.586, depositado em 20 de agosto de 2008, e intitulado "BLOCKINESS AND FIDELITY". O pedido provisório é expressamente incorporado no presente documento a título de referência em sua totalidade para todos os propósitos.
Campo da Invenção A presente invenção refere-se a um processo para prever e caracterizar a visibilidade de artefatos associada a marcas d’água que usam um modelo de fidelidade de lumi-nância de linha de base e um modelo de fidelidade de blocagem.
Antecedentes da Invenção Muitas vezes requer-se que a marca d’água que incorpora em um fluxo de vídeo não seja notável, porém, às vezes introduz artefatos visíveis. Portanto, existe uma necessidade de desenvolver uma medição de visibilidade objetiva que possa identificar as alterações que irão introduzir artefatos visíveis, de modo que as marcas d’água que causam estas alterações possam ser evitadas.
Sumário da Invenção Um método compreende proporcionar marcas d’água potenciais para aplicar ao vídeo, que determina com base na luminância se as marcas d’água potenciais são visíveis ou objetáveis, que determina com base na blocagem se as marcas d’água são visíveis ou obje-táveis, e aplicar marcas d’água que foram determinadas como não visíveis para um observador humano. O vídeo é dividido em quadros e os quadros são divididos em blocos. Os valores de luminância e valores de blocagem são determinados para os blocos aos quais uma marca d’água proposta é diretamente aplicada. Adicionalmente, os percursos de propagação podem ser construídos para alterações associadas às marcas d’água, de modo que os valores de luminância e valores de blocagem sejam determinados apenas para os blocos no percurso de propagação. O percurso de propagação pode aplicar em um quadro atual devido tanto à intra-previsão como à inter-previsão. O percurso de propagação pode proporcionar alterações nos valores de luminância para os blocos nos quais as marcas d’água são diretamente aplicadas e pode proporcionar alterações para os blocos indiretamente alterados. O método pode coletar adicionalmente alterações de luminância absoluta para cada macrobloco com blocos alterados e pode comparar a alteração de luminância absoluta máxima em um bloco alterado a um nível de limite de luminância para visibilidade ou capacidade de objeção.
Adicionalmente, um sistema de vídeo compreende um processador adaptado para coletar uma pluralidade de marcas d’água potenciais no vídeo, um calculador de luminância adaptado para calcular uma alteração na luminância no vídeo associado à aplicação das marcas d’água potenciais, um calculador de blocagem adaptado para calcular blocagem do vídeo associado à aplicação das marcas d’água potenciais, e um coletor de lista adaptado para coletar marcas d’água que não excedem os valores de luminância e limite de bloca-gens. O sistema pode ser um codificador de vídeo, um decodificador, um processamento de pós-processador emitido a partir de um decodificador, um pré-processador que proporciona entrada para um codificador, ou similar, sendo que os valores de luminância e limite de blo-cagens são níveis abaixo dos quais as alterações na luminância e na blocagem não são perceptíveis para um visualizador humano.
Breve Descrição dos Desenhos A invenção será descrita agora por meio de exemplo com referência aos desenhos em anexo. A Figura 1 é um diagrama em bloco de uma modalidade da invenção que emprega um modelo de fidelidade de luminância de linha de base baseado na diferença de luminância absoluta. A Figura 2 é um diagrama em bloco de uma modalidade da invenção que emprega um modelo de fidelidade baseado na diferença de luminância absoluta e medições de blocagem. A Figura 3 é uma modalidade mais detalhada da invenção que mostra a implementação de modelos de fidelidade baseada na diferença de luminância absoluta e medições de blocagem. A Figura 4 é uma ilustração do mapa de propagação. A Figura 5 é um diagrama em bloco que ilustra a construção do mapa de propagação. A Figura 6 é um segmento de quadro que é dividido para a caracterização de blocagem.
Descrição da Invenção A invenção proporciona um meio para prever a visibilidade de artefatos associados às marcas d’água possíveis. Os meios para prever a visibilidade são medições baseadas no modelo de fidelidade de luminância e um modelo de fidelidade de blocagem. Com estas medições, as marcas d’água possíveis que podem produzir artefatos visíveis objetáveis podem ser evitadas e as marcas d’água que não produzem artefatos objetáveis ou visíveis podem ser empregadas. É importante apontar que a invenção é particularmente útil para marca d’água de vídeo H.264/AVC ou qualquer codificação de vídeo em que muitos artefatos de bloco podem ser introduzidos através da incorporação devido à alteração de vetor de movimento na inter-previsão e à alteração de pixel de referência na intra-previsão. Para evitar estes artefatos de bloco, uma medição de fidelidade de blocagem foi desenvolvida e é descrita posteriormente em detalhes neste relatório descritivo.
Além disso, a invenção se destina a incluir a modificação de um fluxo H.264/AVC codificado por CABAC e a gerar uma lista alterações compatíveis com CABAC (Codificação Aritmética Binária Adaptativa baseada em Contexto)/AVC (Codificação de Vídeo Avançada). Em uma modalidade, cada entrada na lista resultante identifica um elemento de sintaxe específico, seu valor original e um valor alternativo candidato. Um elemento de sintaxe que aparece nesta lista é considerado um elemento de sintaxe alterável e pode aparecer na lista mais de uma vez, cada tempo com um valor alternativo candidato diferente. Um subconjunto das entradas nesta lista pode ser selecionado e usado para marca d’água. Uma modalidade da invenção distingue alterações que irão introduzir artefatos visíveis e aqueles que não e, consequentemente, rotular as alterações como visíveis ou invisíveis, respectivamente, de modo que a classificação seja similar a uma pré-formada por um observador humano. Portanto, aquelas alterações que irão introduzir artefatos visíveis podem ser removidas da consideração deixando, deste modo, um subconjunto de valores alternativos candidatos que pode ser usado para implementar uma marca d’água invisível. 1. Componente de Modelo de Fidelidade de Luminância de Linha de Base O modelo de fidelidade de luminância é referido no presente documento como o modelo de fidelidade de linha de base. Como uma primeira aproximação, uma alteração será classificada visível se esta resultar em uma alteração absoluta grande dos valores de luminância no bloco diretamente afetado pela alteração.
No modelo de fidelidade de linha de base, uma medição de visibilidade é comparada a um limite. Considera-se, primeiro, uma medição de visibilidade para um único macrob-loco 16x16. A medição de visibilidade é a soma da alteração de luminância absoluta no bloco. Esta medição de visibilidade, denotada como AbsDiffj para o macrobloco j, é formulada como AbsDiff, Isto é macroblk/onde Xorg(/) é a luminância de pixel / no macrobloco da imagem não marcada original e Xmarked(/) é a luminância do mesmo pixel na versão de marca d’água do macrobloco. Para um limite, h, as alterações no bloco / são classificadas visíveis se AbsDiffj > h,e elas são classificadas invisíveis se AbsDiffj < h. As alterações classificadas como visíveis podem ser removidas da lista de incorporação para evitar artefatos visuais no conteúdo de marca d’água. É importante apontar que um limite inferior h irá ajudar a filtrar mais artefatos visíveis. Entretanto, o mesmo também pode filtrar muitas marcas d’água invisíveis que levam a menos blocos alteráveis para incorporação. Por outro lado, o limite mais alto pode proporcionar mais blocos alteráveis, porém, com o risco de introduzir artefatos visuais. O limite pode ser ajustado para atingir o equilíbrio desejado.
Na codificação de vídeo H.264/AVC, uma alteração de um bloco pode se propagar em outros blocos devido à intra-previsão e inter-previsão. Deste modo, além do bloco diretamente afetado por uma alteração, podem existir inúmeros blocos indiretamente afetados. Estes blocos afetados pela alteração são coletivamente chamados de percurso de propagação ou mapa de propagação. Um percurso de propagação é descrito como uma única alteração que se propaga no mesmo quadro.
As capacidades de mapeamento de propagação podem ser integradas nos decodificadores H.264. Como tal, os mapas de propagação que podem ser gerado podem descrever como uma única alteração irá se propagar através do espaço. Um algoritmo forma um mapa de propagação para rastrear os blocos afetados e suas alterações. O mapeamento de propagação é útil em muitos aspectos. O mesmo pode ser usado para examinar a distorção visual que resulta de uma alteração. Este pode ser usado para evitar (1) as alterações que podem resultar nos mapas de propagação sobrepostos, (2) alterações que podem se encontrar no percurso de propagação de uma alteração anterior ou (3) múltiplas alterações que se combinam, de modo que um terceiro bloco seja afetado por ambas. Os mapas de propagação podem ser usados para aprimorar a região de detecção quando estas alterações são empregadas para marca d’água.
Com a marca d’água digital sendo uma aplicação que modifica um vídeo codificado H.264/AVC, se reconhece no presente documento que algumas alterações podem se propagar inesperadamente até outras áreas da imagem ou quadro. Se um mapa indica todas as áreas nas quais uma alteração irá se propagar, a avaliação de fidelidade pode ser aplicada a todas estas áreas. Uma preocupação adicional na marca d’água consiste no fato de que alguém pode desejar efetuar múltiplas alterações em uma fatia de um bloco. Na marca d’água é importante saber qual efeito uma alteração terá nas imagens decodificadas e muitas vezes isto é expresso como uma alteração da versão não marcada do conteúdo. Entretanto, se uma alteração anterior já tiver sido propagada até a região atual e outra alteração for efetuada, as imagens decodificadas resultantes podem incluir os efeitos de ambas as alterações. Se a primeira alteração for conhecida, então, o resultado pode ser previsto, porém, alguém pode não saber a priori se a primeira alteração será empregada ou não. Se um mapa foi construído indicando todas as áreas nas quais uma alteração irá se propagar, então, alguém pode evitar efetuar outras alterações dentro daquele percurso de propagação. Uma combinação destes dois problemas também pode ocorrer. Se uma região de uma imagem for indiretamente modificada, devido a uma alteração em uma região diferente ter se propagado até a região atual, a região atual pode ser examinada em uma avaliação do impacto de fidelidade daquela alteração. Entretanto, é possível que existam múltiplas alterações, todas as quais podem se propagar na região atual. Se os mapas dos percursos de propagação de todas as alterações estiverem disponíveis, alguém pode identificar as regiões de propagação sobrepostas e pode considerar todas as combinações de impactos. A Figura 4(a) mostra um mapa de propagação exemplificativo. Este mapa de propagação 400 é associado a um bloco 410 cujo vetor de movimento foi diretamente alterado. Os outros blocos 420 na Figura são blocos que serão indiretamente alterados devido à propagação. Quando um bloco altera, devido a uma modificação direta ou porque a mesma se encontra no percurso de propagação de outra alteração, a alteração tem o potencial para se propagar adicionalmente até os seus vizinhos. A Figura 4(b) ilustra os quatro vizinhos 440 cujos valores de luminância podem ser modificados devido a esta propagação, quando apenas um bloco 430 foi diretamente alterado. O mapa de propagação, P, de um bloco alterado representa uma coleção dos blocos, p, cujos valores de luminância também são alterados devido à propagação. Cada bloco no mapa de propagação é representado com uma estrutura de dados que indica a alteração inicial, o modo de previsão do bloco atual, e a alteração no bloco atual é denotada como: p = {head_node_info, mode, cur_node_info}. O "head_node" identifica exclusivamente o bloco alterado em termos de posição e o valor alternativo do vetor de movimento que iniciou as alterações. Todos os nós no mapa de propagação P terão o mesmo "head_node.'' O elemento "modo" indica o modo de previsão do bloco atual, que pode ser intra-previsão ou inter-previsão. O elemento "cur_node" grava as informações sobre o bloco atual. O "cur_node" contém os vetores de movimento originais e novos para os blocos inter-previstos e o modo de intra-previsão e os blocos de referência para os blocos de intra-previsão. A Figura 5 mostra um método para construir o mapa de propagação. O mapa de propagação, P, é inicializado com o bloco alterado p na caixa 510. Então, na caixa de avaliação 520, uma determinação é efetuada para avaliar se o bloco p está vazio. Se o bloco p não estiver vazio, então, cada um dos blocos p vizinhos cq, i = 1, ..., 4 é examinado na caixa de exame 530. Para a configuração exemplificativa na Figura 4b o bloco p tem 4 vizinhos. O objetivo de cada um destes exames consiste em determinar se a alteração no bloco p irá se propagar até o vizinho oq. Para isto, a decodificação usando os valores originais associados a p, assim como os valores alterados podem ser comparados. Se o bloco cq for um bloco inter-previsto, então, no caminho de inter-previsão 540, alguém pode examinar o vetor de movimento previsto usando o novo vetor de movimento de p e aqueles dos outros blocos vizinhos. Se este for diferente do vetor de movimento original, então, a alteração irá se propagar até este vizinho e o bloco cq é anexado ao mapa de propagação P na caixa de propagação 560. Se cq for intra-previsto no caminho intra-previsto 550 e o bloco p for usado como a referência na previsão, então, a alteração irá se propagar até este vizinho e o bloco cq é anexado ao mapa de propagação P na caixa de propagação 560. Após todos os quatro vizi- nhos serem examinados, o próximo elemento em P é considerado. Este processo se repete até não existirem novos elementos em P para chegar à caixa de término 570. A invenção se destina a incluir o recurso do mapeamento de propagação que é integrado em um decodificador H.264 no contexto do sistema de marca d’água no qual uma etapa anterior criou uma lista de modificações potenciais, em que cada modificação potencial consiste em um identificador de bloco, uma indicação de qual vetor de movimento pode ser modificado, e o valor alternativo para aquele vetor de movimento. Note que, neste ponto, podem existir inúmeras modificações potenciais para um único bloco. Em uma etapa posterior, a lista de modificações potenciais pode ser preferencialmente cortada, de modo que nenhum bloco tenha mais de uma modificação. O mapa de propagação P pode ser representado como uma lista vinculada que, como um todo, irá identificar os macroblocos/partições afetadas peça modificação potencial. À medida que o decodificador processa os macroblocos de fatias B (na ordem de varredura), alguém pode continuar adicionando macroblocos/partições afetadas nas listas vinculadas correspondentes. Um algoritmo integrado detalhado preferido será descrito agora, que é a integração de mapeamento de propagação com um decodificador AVC. Dada uma lista de modificações potenciais em uma fatia B contendo entradas /, cada uma que corresponde a um vetor de movimento modificável com uma alternativa, as listas vinculadas / podem ser construídas e cada lista pode ser inicializada para conter um nó, a própria modificação potencial. A estrutura de dados de amostra do nó p é mostrada na Tabela 1, que contém as informações de localização do macrobloco/partição, as informações de vetor de movimento originais e novas. TABELA 1: Estrutura de dados da lista vinculada para cada mapa de propagação Uma vez que o processo de construção de mapa de propagação pode ser integrado no decodificador AVC, a maioria destas informações pode ser diretamente obtida a partir do decodificador. Outras informações podem ser baseadas na aplicação do mapa de propagação.
Agora com um entendimento da construção de um mapa de propagação, uma situação em que uma alteração não introduz um artefato visível no bloco diretamente afetado pode ser considerado, porém, à medida que as alterações se propagam até outros blocos, um artefato pode ser introduzido em um dos blocos ao longo do percurso de propagação. Deste modo, em pelo menos um exemplo, é importante considerar todos os blocos no percurso de propagação, não apenas o bloco diretamente afetado, quando classificar uma alteração. A medição de visibilidade de luminância é facilmente estendida para ser responsável pelos artefatos introduzidos no percurso de propagação de uma alteração proposta. Para isto, a medição de visibilidade é calculada para cada macrobloco no percurso de propagação de uma alteração proposta e uma medição visível é derivada a partir de todos estes. Um exemplo de uma medição de visibilidade para um percurso de propagação é o valor de pior caso (máximo). Esta medição pode ser denotada como MaxAbsDiffk para a alteração proposta k e é formulada como As vantagens deste modelo de fidelidade consistem no fato de que a pontuação de fidelidade é fácil de calcular e não introduz muito custo computacional. A Figura 1 mostra um diagrama em bloco de um modelo de fidelidade de luminância no qual as alterações de macrobloco propostas j são efetuadas primeiro na caixa 110. Isto é seguido identificando-se o percurso de propagação associado à alteração na caixa 120 e considerando cada um dos blocos no percurso de propagação na caixa 130. A seguir, isto é seguido ao calcular ou determinar a alteração de luminância absoluta para os blocos na caixa 140 e determinar o valor de pior caso para o macrobloco na caixa 150 e gravar ou atualizar os dados para cada um dos macroblocos até cada um dos macroblocos no bloco k ter sido calculado na caixa 150. Se o valor de pior caso for menor que o limite de visibilidade de luminância na caixa 160, então, as alterações de macrobloco propostas serão aceitas na caixa 170 e se o valor de pior caso não for menor que o limite de visibilidade de luminância, então, outras alterações de macrobloco propostas serão consideradas na caixa 110 e similarmente executadas através do diagrama em bloco até as alterações aceitáveis serem identificadas. 2. Modelo de fidelidade de blocagem O modelo de fidelidade de linha de base funciona bem, porém, existem classes de alterações que introduzem artefatos visíveis sem introduzir grandes alterações de luminância. O modelo de linha de base se limita a encontrar apenas aqueles artefatos que ocorrem devido a grandes alterações de luminância. Uma segunda classe de artefatos que pode ser vista pela marca d’água H.264/AVC pode ser os artefatos de bloco.
Um artefato de bloco é visível quando os valores de pixel nas bordas de um bloco forem correlacionados com os valores de pixel adjacentes nas bordas correspondentes dos blocos adjacentes na imagem original, porém, se tornam significativamente não correlacionados com aqueles pixels adjacentes na imagem de marca d’água. Neste caso, um visuali-zador pode perceber as bordas do bloco. Quando este artefato ocorre em todas as quatro bordas de um bloco, o artefato aparece como um bloco errôneo de dados e, deste modo, é chamado de um artefato de bloco. O modelo de fidelidade de blocagem incorpora uma medição de blocagem além da medição de luminância. As alterações que causam um alto valor de medição de blocagem ou pontuação de blocagem são rotuladas como visíveis. Em outras palavras, a medição de blocagem consiste em quão em forma de blocos o conteúdo se torna após certos processamentos (por exemplo, compactação, marca d’água) comparado com o conteúdo original se o conteúdo original for suave e o conteúdo gerado em forma de blocos, então, esta operação particular irá receber uma alta pontuação de blocagem. Se o conteúdo original for em forma de blocos e o conteúdo processado também for em forma de blocos, então, esta operação particular irá receber baixa pontuação de blocagem. Em outras palavras, a pontuação de blocagem mede quantos artefatos em forma de blocos foram in- traduzidos pelo processamento. Ao comparar a pontuação de blocagem a um limite, os blocos com artefatos visíveis podem ser identificados e podem ser removidos, consequentemente. A medição de blocagem é realizada bloco a bloco. Conforme mostrado na fonte de Referência de Erro! não encontrada 6, para cada bloco A n x n, alguém pode calcular sua métrica em forma de blocos BM e métrica de gradiente de bloco BGM para obter sua pontuação de blocagem final. Para calcular a BM, alguém calcula primeiro a métrica em forma de blocos para cada pixel da seguinte maneira. Uma métrica p, pode ser para o pixel de borda horizontal i = 2,.., n-1, em que q, = (pixel de borda inferior i B - pixel de borda superior i A); se ldi_on| < |qi_processed| && |qj_processed| - |qi on] < 64 Pi = |qi_processed| - |qLon|; além disso Pi = 0;
Pi => pixel de borda inferior i B e pixel de borda superior i A.
Uma métrica p, pode ser para o pixel de borda vertical i = 2,.., n-1, em que qi = (pixel de borda direita i D - pixel de borda esquerda i A); se |qi_on| < |qi_processed| && |qLon| < 64 Pi = |qi_processed| - |qLon|; além disso Pi = 0;
Pi => pixel de borda direita i D e pixel de borda esquerda i A.
Uma métrica p, pode ser para o pixel de canto diagonal, em que q = (pixel de canto direito inferior C - pixel esquerdo superior A); se |qL0n| < |qi_processed| && |qiOn| < 64 P = |qi_processed| - |qLon|; além disso P = 0; p => pixel de canto direito inferior C e pixel esquerdo superior A Uma métrica p pode ser para o pixel de canto fora da diagonal: q = (pixel de canto direto superior D - pixel esquerdo inferior B); se |qLon| < |qi_processed| && |qi_processed| - |qLon] < 64 p = |q_processed| - |q on|; além disso p = 0; p => pixel de canto direito superior D e pixel esquerdo inferior B. BGM é calculado adotando-se a média do gradiente máximo horizontal e vertical entre o bloco original e o bloco processado. Para os pixels em um bloco χΜ, i = 1 ,...,n, j = 1 n, BGM= Finalmente, a pontuação de blocagem para cada bloco η x n é obtida como max(0, BM- BGM).
Uma vez que a marca d’água BD+/AVC é incorporada macrobloco a macrobloco, um pensamento natural pode ser calcular a pontuação de blocagem que usa 16 como o tamanho de bloco. Entretanto, os blocos no mapa de propagação da alteração podem não ser necessariamente 16x16. Devido ao modo de inter e intra-previsão, o tamanho de bloco pode ser de 16x8, 8x16, 8x8 e 4x4. Se alguém usa um n grande, por exemplo, 16, como o tamanho de bloco, então, os macroblocos onde apenas um dos sub-blocos de 8x8 ou 4x4 é alterado podem acabar tendo uma baixa pontuação de blocagem mesmo que o sub-bloco alterado seja totalmente em forma de blocos. Portanto, o menor tamanho de bloco possível, 4x4 deve ser usado para calcular a pontuação de blocagem e, então, somá-las para obter a pontuação final para cada macrobloco 16x16. Note que usar um tamanho de bloco menor para calcular a pontuação de blocagem tem a mesma complexidade computacional que o tamanho de bloco grande.
Ao somar a pontuação de blocagem de sub-blocos 4x4 para obter a pontuação final do macrobloco, alguém leva em consideração a área dos artefatos em forma de blocos. Se, por exemplo, todos os 16 blocos 4x4 tiverem pontuação de blocagem não zero, isto significa que todo o macrobloco 16x16 tem s artefatos em forma de blocos e pode ser mais visível que o caso em que apenas um sub-bloco tem pontuação não zero. Alternativamente, a pontuação mais alta dos 16 sub-blocos como a pontuação final para o macrobloco pode ser selecionada.
Esta medição de blocagem pode ser aplicada a qualquer região retangular, ou pelo menos uma região fechada linear por partes, tal como, um bloco típico. Existem muitos modos em que isto pode ser usado em diversas implementações. Uma vez que a marca d’água BD+/AVC é incorporada macrobloco a macrobloco, um modo razoável pode ser calcular a pontuação de blocagem usando 16x16 como o tamanho de bloco. Entretanto, os blocos no percurso de propagação da alteração não são necessariamente 16x16. Dependendo dos modos de inter- e intra-previsão, o tamanho de bloco pode ser 16x8, 8x16, 8x8 ou 4x4. Se alguém usa um tamanho de bloco grande, por exemplo, 16, então, os macroblocos em que apenas um dos sub-blocos 8x8 ou 4x4 é alterado pode acabar tendo uma baixa pontuação de blocagem mesmo que o sub-bloco alterado seja totalmente em forma de blocos.
Pelo menos uma implementação descrita usa o menor tamanho de bloco possível, 4x4, para calcular a pontuação de blocagem e, então, adiciona as pontuações a partir dos 16 blocos 4x4 adjacentes para obter a pontuação final para cada macrobloco 16x16. Note que usar um tamanho de bloco menor para calcular a pontuação de blocagem tem a mesma complexidade computacional que o tamanho de bloco grande.
Ao somar a pontuação de blocagem de sub-blocos de 4x4 para obter a pontuação final do macrobloco, alguém leva em consideração a área dos artefatos em forma de blocos. Se, por exemplo, cada um dos 16 blocos de 4x4 tiver uma pontuação de blocagem não zero, isto significa que todo o macrobloco 16x16 tem artefatos de bloco que podem ser mais visíveis que o caso em que apenas um sub-bloco tem uma pontuação não zero. Uma modalidade alternativa consiste em selecionar a pontuação mais alta a partir dos 16 sub-blocos que a pontuação final para o macrobloco. Para isto, alguém focaliza no bloco 4x4 com a pontuação de blocagem mais alta, que mais provavelmente irá causar o artefato visual. A Figura 2 é um diagrama em bloco do modelo de fidelidade de blocagem baseado tanto na diferença de luminância absoluta como na medição de blocagem. Neste modelo, alguém compara a medição de luminância com um limite. Primeiro, uma alteração no macrobloco j é considerada na caixa 210 e a alteração de luminância absoluta associada à alteração é calculada na caixa 220. As alterações que resultam em uma medição de luminância que excede o limite são classificadas como visíveis na caixa de decisão 230. Se a alteração de luminância absoluta for visível, então, na caixa de decisão 230, alguém considera outra alteração no macrobloco j na caixa 210. Por outro lado, se a alteração não for visível pela medição de luminância em 230, então, uma pontuação de blocagem é calculada. A pontuação de blocagem, então, é comparada a um limite de blocagem na caixa de decisão 250. As alterações que resultam em uma pontuação de blocagem que excede o limite de blocagem são classificadas como visíveis; como tal, elas não são colocadas em uma lista de bloco alterável e outra alteração, então, é considerada na caixa 210. Aquelas alterações que resultam tanto em uma medição de luminância que se encontra abaixo do limite de luminância e uma pontuação de blocagem que se encontra abaixo do limite de blocagem são classificadas como não visíveis e são colocadas na lista de bloco alterável permitida na caixa 260. A Figura 3 mostra um diagrama em bloco detalhado de um modelo de fidelidade a-primorado em que uma alteração de macrobloco proposta j é efetuada primeiro na caixa 310. Isto é seguido pela identificação do percurso de propagação associada à alteração na caixa 320 e que considera cada um dos blocos no percurso de propagação na caixa 330. A seguir, isto é seguido calculando-se a alteração de luminância absoluta para os blocos in 340 e determinando o valor de pior caso para o macrobloco na caixa 350. Esta medição de visibilidade para um percurso de propagação é o valor de pior caso (máximo). Se o valor de pior caso for menor que o limite de visibilidade de luminância na caixa de decisão 360, então, a alteração de macrobloco proposta será aceita e o processo é avançado até a caixa 370 para considerar o macrobloco proposto aceito a partir da caixa 360. Se o valor de pior caso não for menor que o limite de visibilidade de luminância na caixa 360, então, outra alteração de macrobloco proposta j será considerada na caixa 310. Uma vez que uma alteração de macrobloco é avançada até a caixa 370, o processo avança para calcular a pontuação de blocagem na caixa 375 e determinar o valor de blocagem máximo na caixa 380. A pontuação de blocagem na caixa 375 é comparada a um limite de blocagem na caixa de decisão 390. As alterações que resultam em uma pontuação de blocagem que excede o limite de blocagem são classificadas como visíveis e, como tal, não são colocadas em uma lista de bloco alterável. De preferência, outra alteração, então, é considerada na caixa 310. Aquelas alterações que resultam tanto em uma medição de luminância que se encontra abaixo do limite de luminância e uma pontuação de blocagem que se encontra abaixo do limite de blocagem são classificadas como não visíveis e são colocadas na lista de bloco alterável permitida na caixa 395.
Similar ao modo de linha de base, a medição de visibilidade é usada para levar em consideração os artefatos introduzidos ao longo do percurso de propagação de uma alteração proposta. A pontuação de blocagem é calculada para cada macrobloco no percurso de propagação de uma alteração proposta e o valor máximo é usado. Esta medição é denotada como MaxBlkk para a alteração proposta k e é formulada como onde Blkj é a pontuação de blocagem para o bloco j. Aqui MaxBlkk é comparado ao limite de blocagem para determinar se a alteração proposta k pode introduzir artefatos visíveis.
Diversas implementações e recursos descritos neste pedido podem ser usados no contexto do padrão H.264/MPEG-4 AVC (AVC). Entretanto, estas implementações e recursos podem ser usados no contexto de outro padrão (existente ou futuro), ou em um contexto que não envolva um padrão.
As modalidades descritas no presente documento podem ser implementadas, por exemplo, em um método ou processo, um aparelho, um programa de software, um fluxo de dados ou um sinal. Mesmo se apenas discutidas no contexto de uma única forma de implementação, tal como, um método, as implementações ou recursos discutidos também podem ser implementadas em outras formas, tal como, um aparelho ou programa. Um aparelho pode ser implementado, por exemplo, em hardware, software e firmware apropriados. Os métodos podem ser implementados, por exemplo, em um aparelho, tal como, por exemplo, um computador ou outro dispositivo de processamento. De maneira adicional, os métodos podem ser implementados por instruções que são realizadas por um dispositivo de processamento ou outro aparelho, e tais instruções podem ser armazenadas em um meio legível por computador, tal como, por exemplo, um CD ou outro dispositivo de armazenamento le- gível por computador, ou um circuito integrado. Ademais, um meio legível por computador pode armazenar os valores de dados produzidos por uma implementação.
Como deve ser evidente para um elemento versado na técnica, as implementações também podem produzir um sinal formatado para realizar as informações que podem ser, por exemplo, armazenadas ou transmitidas. As informações podem incluir, por exemplo, instruções para realizar um método, ou dados produzidos por uma das implementações descritas. Por exemplo, um sinal pode ser formatado para realizar um fluxo de marca d’água, um fluxo sem marca d’água, uma medição de fidelidade ou outras informações de marca d’água.
Embora as modalidades ao longo do relatório descritivo tenham focalizado nas alterações no vídeo que são introduzidas na marca d’água, esta invenção inclui a aplicação das diversas combinações de recursos às alterações propostas no vídeo que não são necessariamente marcas d’água.
De maneira adicional, em algum caso, as métricas e métodos descritos no presente documento podem ser usadas para manter ou selecionar marcas d’água ou alterações porque elas serão visíveis para um observador humano.
De maneira adicional, muitas modalidades podem ser implementadas em um ou mais de um codificador, um decodificador, um processamento de pós-processador emitido a partir de um decodificador ou um pré-processador que proporciona entrada para um codificador. Ademais, outras implementações são contempladas por estas descrição. Por exemplo, implementações adicionais podem ser criadas ao combinar, deletar, modificar ou suplementar diversos recursos das implementações descritas.
REIVINDICAÇÕES