BR112016022870B1 - Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas - Google Patents

Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas Download PDF

Info

Publication number
BR112016022870B1
BR112016022870B1 BR112016022870-7A BR112016022870A BR112016022870B1 BR 112016022870 B1 BR112016022870 B1 BR 112016022870B1 BR 112016022870 A BR112016022870 A BR 112016022870A BR 112016022870 B1 BR112016022870 B1 BR 112016022870B1
Authority
BR
Brazil
Prior art keywords
data
values
patterns
coding unit
hiding
Prior art date
Application number
BR112016022870-7A
Other languages
English (en)
Other versions
BR112016022870A2 (pt
BR112016022870B8 (pt
Inventor
Alexey Konstantinovich Filippov
Vasily Alexeevich Rufitskiy
Original Assignee
Huawei Technologies Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112016022870A2 publication Critical patent/BR112016022870A2/pt
Publication of BR112016022870B1 publication Critical patent/BR112016022870B1/pt
Publication of BR112016022870B8 publication Critical patent/BR112016022870B8/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Abstract

MÉTODOS E APARELHOS PARA OCULTAR DADOS EM UNIDADES DE CODIFICAÇÃO ESTRUTURADAS DE MÚLTIPLAS CAMADAS. A invenção refere-se a métodos para ocultar valores de uma unidade de codificação hierarquicamente em cama das em outros valores compreendidos pela unidade de codificação são fornecidos (métodos de codificação). Além disso , a invenção também se refere a métodos para reconstruir dados ocultados a partir de uma unidade de codificação codificada (método de decodificação). A invenção também é relacionada com a implementação destes métodos de codificação e/ou decodificação em um aparelho e em um meio legível por computador (não transitório). De acordo com a invenção, dados são ocultados em valores de diferentes camadas de uma unidade de codificação hierarquicamente estruturada.

Description

CAMPO DA INVENÇÃO
[001] A invenção refere-se a métodos para ocultar valores de uma unidade de codificação hierarquicamente em camadas em outros valores compreendidos pela unidade de codificação são fornecidos (métodos de codificação). Além disso, a invenção também se refere a métodos para reconstruir dados ocultados a partir de uma unidade de codificação codificada (método de decodificação). A invenção também é relacionada com a implementação destes métodos de codificação e/ou decodificação em um aparelho e em um meio legível por computador (não transitório).
FUNDAMENTOS TÉCNICOS
[002] Compressão de dados com perdas tem inúmeras aplicações, especialmente em comunicações, difusão, entretenimento e segurança. Compressão de vídeo é uma tarefa desafiadora, porque taxas de compressões grandes são obrigados a transmitir imagens de alta qualidade e alta resolução através de canais de comunicação existentes. Esta tarefa é ainda mais difícil no contexto de comunicações sem fio e móveis, ou codificação em tempo real de mídia.
[003] O padrão recentemente aprovado ITU-T H.265/HEVC (ISO/IEC 23008-2:2013, "Tecnologia de informação - codificação de alta eficiência e entrega de mídia em ambientes heterogêneos - Parte 2: codificação de vídeo de alta eficiência", Novembro de 2013) declara uma conjunto de ferramentas de codificação de vídeo do estado da arte que fornecem uma compensação razoável entre eficiência de codificação e complexidade computacional. Uma visão geral sobre o padrão ITU-T H.265/HEVC é dada no artigo de Gary J. Sullivan, "Visão geral do padrão de Codificação de Vídeo de Alta Eficiência (HEVC)", em Transações de IEEE em Circuitos e Sistemas de Tecnologia de Vídeo, Vol. 22, No. 12, Dezembro de 2012, todo o conteúdo do qual é aqui incorporado por referência.
[004] Da mesma forma que o padrão de codificação de vídeo ITU-T H.264/AVC, o padrão de codificação de vídeo HEVC/H.265 fornece uma divisão da imagem fonte em blocos, por exemplo, unidades de codificação (UCs). Cada uma das UCs poderia ser ainda dividida em ainda menores UCs ou unidades de previsão (UP). Uma PU pode ser intra ou inter prevista de acordo com o tipo de processamento aplicado para os pixels de PU. No caso de inter-previsão, uma PU representa uma área de pixels que é processada por compensação de movimento utilizando um vetor de movimento para uma PU especificada. Para intra-previsão PU especifica modo de previsão para um conjunto de unidades de transformada (TUs). Uma TU pode ter tamanhos diferentes (por exemplo, 4x4, 8x8, 16x16 e 32x32 pixels) e pode ser processada de diferentes maneiras. Para uma TU codificação de transformada está sendo realizada, isto é, o erro de previsão está sendo transformado com uma transformada de coseno discreta (DCT) e quantificado. Resultantes coeficientes de transformada quantificados são agrupados em CGs, cada CG com 16 coeficientes de transformada quantificados.
[005] Como observado acima, as ferramentas fundamentais destes padrões ou codecs proprietários semelhantes para codificar os blocos de imagem são inter e intra-previsão, transformado de espectro (por exemplo, transformada de coseno discreta ou sua aproximação inteira) e quantização. Ferramentas de inter e intra-previsão são usadas para gerar um sinal de previsão para um dado bloco. No lado de codificador, a diferença entre um bloco de origem e sua previsão, o assim chamado sinal residual, é transformada no seu espectro, isto é pixels de bloco de origem são representados por coeficientes de transformada no domínio da frequência. Além disso, os coeficientes são quantizados. Coeficientes de transformada quantificados diferentes de zero e zero são muitas vezes referidos coeficientes como significativos e não significativos, respectivamente. Todos os elementos de sintaxe, incluindo coeficientes de transformada quantificados e informação lateral (por exemplo, modos de intra-previsão para intra-codificação e vetores de movimento para inter-codificação) são binarizados e codificados em entropia. A parte de coeficientes codificados em entropia em um fluxo de bits de H.265/HEVC comprimido pode ser superior a 80%.
[006] As fases de codificar coeficientes de transformada quantificados são as seguintes: - codificar a posição do último coeficiente significativo, isto é, o último coeficiente de transformada quantificado diferente de zero; - codificar o mapa de significado que é usado para restaurar posições de todos os coeficientes diferentes de zero; - codificação de sinal dos coeficientes significativos; e - codificação de magnitude dos coeficientes significativos.
[007] Essas fases são realizadas no contexto de coeficientes de transformada quantificados sendo divididos em chamados grupos de coeficientes (CGs). Cada CG é um subconjunto que consiste tipicamente de 4x4 coeficientes.
[008] Codificação de sinal explícita requer um bit de sinal por um coeficiente significativo a ser codificado. No entanto, uma nova ferramenta conhecida como Ocultamento de Bit de Sinal (SBH) foi adotada para o padrão ITU-T H.265/HEVC. A ideia básica por trás desta técnica é indicar, implicitamente, o sinal do primeiro coeficiente significativo dentro de um determinado GC usando uma verificação de paridade da soma dos bits menos significativos dos coeficientes significativos que pertencem a esse CG. Esta ferramenta não é aplicada a todos os CGs, mas apenas para aqueles CGs que satisfazem a condição de limiar, isto é, a diferença de posições do primeiro e último coeficientes significativos deve ser maior ou igual a quatro. De acordo com os resultados apresentados pela Equipe Conjunta de Colaboração sobre Codificação de Vídeo (JCT-VC) que foi responsável pelo desenvolvimento do padrão H.265/HEVC, esta ferramenta reduz a taxa de bits para a mesma qualidade para uma ampla gama de sequências de vídeo usadas em testes JCT-VC. Isto confirma que SBH, em particular, e ocultamento de dados, em geral, pode ser uma ferramenta de compressão eficiente.
[009] Além de compressão de vídeo, ocultamento de dados pode ser usado em diferentes aplicações de Gestão de Direitos Digitais (DRM) (por exemplo, marca d'água digital). É uma das tecnologias de DRM utilizadas para incorporar informação digital em um sinal de portadora (ver, por exemplo, Tirkelet al. "Marca D’água Eletrônica", Computação de Imagem Digital: Técnicas e Aplicações (DICTA), 1993, Universidade de Macquarie, pp 666-673). Esta informação ocultada pode ser utilizada para verificar a autenticidade ou integridade do sinal de portadora ou para mostrar a identidade dos seus proprietários.
[010] No caso, se várias operações de ocultamento devem ser realizadas com o mesmo conjunto de valores alvo estas operações podem potencialmente interferir umas com as outras. Esta interferência ocorre operação de ocultamento modifica um valor do conjunto sem levar em conta o efeito dessa modificação nos dados ocultos durante operações de ocultamento anteriores. Assim, uma simples combinação de operações de ocultamento pode resultar na produção de um fluxo de bits não decodificável.
[011] Como um exemplo de tal situação, podemos considerar ocultamento de um conjunto de bandeiras dentro de coeficientes de transformada quantificados de uma TU quando SBH deve ser realizado para estes coeficientes também. Se a operação de ocultamento de bandeira é realizada de forma independente (isto é, não é correspondida com SBH), extração de sinais ocultos pode ser realizada de forma incorreta.
SUMÁRIO
[012] Um objetivo é sugerir um novo método para codificação de partes múltiplas de dados de uma unidade de dados a ser codificada (unidade de codificação) com base em um conjunto de entrada de dados (valores) compreendidos em referida unidade de codificação. Outro objetivo é sugerir um modo para decodificar tais partes de dados a partir da unidade de dados codificada novamente. Além disso, um outro objetivo é sugerir um mecanismo de ocultamento de dados, em que várias operações de ocultamento podem ser realizadas sem causar interferência, respectivamente, resultando em dados codificados não decodificáveis.
[013] De acordo com um primeiro aspecto da invenção, a unidade de dados a ser codificada tem uma estrutura hierárquica. Isto significa, por exemplo, que os valores individuais dos dados que pertencem à unidade de codificação correspondem a uma estrutura hierárquica fornecendo diversas camadas da unidade de codificação. A ideia deste primeiro aspecto é ocultar informação (por exemplo, um valor), pertencente às respectivas dadas camadas com base em outras informações da unidade de codificação usando padrões de ocultamento de dados. As outras informações sobre as quais um respectivo padrão de ocultamento de dados é aplicado podem ser consideradas um conjunto de entrada de valores para um respectivo padrão de ocultamento de dados. Vários padrões de ocultamento de dados podem ser baseados em conjuntos de entrada idênticos de valores, em conjuntos de entrada de sobreposição parcial de valores, ou conjuntos de entrada distintos de valores ou ainda uma combinação dos mesmos.
[014] De acordo com uma primeira implementação exemplar do primeiro aspecto, um método para ocultar valores de uma unidade de codificação hierarquicamente em camadas em outros valores compreendidos pela unidade de codificação é fornecido (método de codificação). Neste método, uma pilha em camadas de padrões de ocultamento de dados é fornecida. Os padrões de ocultamento de dados são para ocultar os valores da unidade de codificação em camadas diferentes da unidade de codificação. Cada dos padrões de ocultamento de dados tem uma função de verificação associada a ele, que é usada para ocultar um ou mais de referidos valores da unidade de codificação em uma das camadas da unidade de codificação. Para cada dos padrões de ocultamento de dados, o seguinte é executado: (i) calcular a função de verificação de um respectivo de referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação; (ii) determinar se o resultado da função de verificação corresponde a um valor de referida unidade de codificação que precisa ser ocultada pelo respectivo padrão de ocultamento de dados; e (iii) se não, modificar pelo menos um de referidos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação de modo que o resultado da função de verificação no passo (ii) corresponda ao referido valor de referida unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados.
[015] A unidade de codificação codificada compreende os outros valores da unidade de codificação como modificado no passo (iii) para todos os padrões de ocultamento de dados.
[016] Em outra, segunda implementação da primeira implementação do primeiro aspecto, a pilha em camadas de padrões de ocultamento de dados define padrões de ocultamento de dados desacoplados. Padrões de ocultamento de dados desacoplados podem ser considerados cumprindo o critério que um valor oculto restaurado utilizando qualquer um dos padrões de ocultamento de dados da pilha não pode ser derivado a partir de uma combinação (por exemplo, uma combinação linear) dos padrões de ocultamento de dados restantes definidos na pilha. Se a pilha em camadas de padrões de ocultamento de dados é desacoplada, aplicar o mesmo com o mesmo conjunto de dados de entrada de valores, não provoca interferência entre os diferentes padrões de ocultamento de dados na pilha, de modo que os valores ocultados podem ser adequadamente restaurados. Tal interferência pode, por exemplo, ocorrer, quando uma operação de ocultamento modifica um valor do conjunto de entrada de valores (ou seja, os valores selecionados pelo padrão de ocultamento de dados utilizado na operação de ocultamento), sem levar conta o efeito de uma modificação de um ou mais valores do conjunto de entrada de valores em uma operação de ocultamento de dados anterior.
[017] Além disso, em uma terceira implementação de qualquer forma de implementação anterior do primeiro aspecto, cada camada da unidade de codificação pode estar associada a um ou plural dos padrões de ocultamento de dados.
[018] Em uma outra quarta implementação de qualquer forma de implementação anterior do primeiro aspecto, os padrões de ocultamento de dados podem consistir de pelo menos um de padrões de ocultamento de dados baseados em decimação, um ou mais padrões de ocultamento de dados regulares, e um ou mais padrões de ocultamento de dados pseudo-aleatórios.
[019] De acordo com uma quinta implementação de qualquer forma de implementação anterior do primeiro aspecto, o método pode ainda compreender realizar o seguinte para cada dos padrões de ocultamento de dados: n caso um algoritmo utilizado para modificar o pelo menos um de referidos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação no passo (iii) não modifica os valores de tal modo que o resultado da função de verificação no passo (ii) corresponda ao referido valor de referida unidade de que é deve ocultado pelo respectivo padrão de ocultamento de dados, repetindo passos (i) a (iii) até que o resultado da função de verificação no passo (ii) corresponda ao referido valor de referida unidade de codificação que deve ser ocultada pelo respectivo padrão de ocultamento de dados.
[020] De acordo com uma sexta implementação de qualquer forma de implementação anterior do primeiro aspecto, ao executar os passos (i) a (iii) utilizando um primeiro padrão de ocultamento de dados e um segundo padrão de ocultamento de dados de referidos padrões de ocultamento de dados, respectivamente, o um ou mais outros valores da unidade de codificação que foram selecionados pelo primeiro padrão de ocultamento de dados e foram modificados no passo (iii), e não são modificados no passo (iii) novamente ao executar os passos (i) a (iii) para o segundo padrão de ocultamento de dados, no caso de serem selecionados pelo segundo padrão ocultamento de dados na segunda iteração.
[021] De acordo com uma sétima implementação de qualquer forma de implementação anterior do primeiro aspecto, referido pelo menos um valor modificado no passo (iii) para um dos padrões de ocultamento de dados é considerado em vez dos valores originais ao executar os passos (i) a (iii) para outro do padrão de ocultamento de dados.
[022] De acordo com uma oitava implementação do primeiro aspecto, um método de reconstruir valores ocultados a partir de uma unidade de codificação codificada é fornecido (método de decodificação). Mais uma vez, uma pilha em camadas de padrões de ocultamento de dados é fornecida. Esta pilha foi utilizada por um codificador para ocultar referidos valores da unidade de codificação. Cada dos padrões de ocultamento de dados tem uma função de seleção associada ao mesmo. Neste método, para cada dos padrões de ocultamento de dados, a função de verificação de um respectivo de referidos padrões de ocultamento de dados é calculada com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação, em que o resultado da função de verificação corresponde a um dos valores ocultos reconstruídos.
[023] De acordo com uma nona implementação de qualquer forma de implementação anterior do primeiro aspecto, referidos valores compreendidos por referida unidade de codificação com base em que as funções de verificação de referidos padrões de ocultamento de dados são calculadas são valores da camada hierárquica mais baixa da unidade de codificação.
[024] De acordo com uma décima implementação da nona implementação do primeiro aspecto, em que as funções de verificação de referidos padrões de ocultamento de dados associados a uma camada que não seja a camada hierárquica mais baixa da unidade de codificação são calculadas em valores selecionados por um respectivo do padrão de ocultamento de dados a partir de uns respectivos subconjuntos dos valores da camada hierárquica mais baixa da unidade de codificação.
[025] De acordo com uma décima primeira forma de implementação do décimo primeiro aspecto, o tamanho de um respectivo um do padrão de ocultamento de dados é determinado com base no tamanho do subgrupo em que a função de verificação do respectivo padrão de ocultamento de dados é calculada.
[026] De acordo com uma décima segunda implementação da décima ou décima primeira forma de implementação do primeiro aspecto, um respectivo subconjunto em uma camada outra que a camada hierárquica mais baixa compreende os valores da camada hierárquica mais baixa da unidade de codificação que hierarquicamente pertencem a uma unidade de dados organizacional da camada respectiva.
[027] De acordo com uma décima terceira implementação da décima segunda implementação do primeiro aspecto, o número e/ou tamanho de padrões de ocultamento de dados aplicáveis a uma respectiva unidade de dados organizacional da camada respectiva é/são determinados com base no tamanho do subconjunto de valores pertencentes para a respectiva unidade de dados organizacional da camada respectiva sobre a qual a função de verificação é calculada.
[028] De acordo com uma décima quarta implementação da décima à décima terceira implementação do primeiro aspecto, o tamanho de um respectivo um dos padrões de ocultamento de dados é igual a ou um divisor do tamanho do subconjunto em que a função de verificação do respectivo padrão de ocultamento de dados é calculada. Para colocá-lo diferente, o tamanho do subconjunto em que a função de verificação do respectivo padrão de ocultamento de dados é calculada é igual a ou um múltiplo inteiro do tamanho de um respectivo um dos padrões de ocultamento de dados.
[029] De acordo com uma décima quinta implementação de qualquer forma de implementação anterior do primeiro aspecto, os valores de referida unidade de codificação representam um bloco de pixels de uma imagem, e a unidade de codificação tem uma ou mais unidades de previsão, uma ou mais unidades de transformada, e um ou mais grupos de coeficientes, em que os padrões de ocultamento de dados são associados a camadas da unidade de codificação correspondente para as unidades de previsão, as unidades de transformada e a unidade de codificação, respectivamente. Além disso, cada dos padrões de ocultamento de dados oculta um ou mais valores da camada associada da unidade de codificação.
[030] De acordo com uma décima sexta implementação da décima quinta forma de implementação do primeiro aspecto, os padrões de ocultamento de dados são associados a camadas da unidade de codificação correspondente aos grupos de coeficientes, as unidades de previsão, as unidades de transformada e a unidade de codificação, respectivamente, em que os grupos de coeficientes são parte da camada mais baixa da unidade de codificação.
[031] De acordo com uma décima sétima implementação de qualquer forma de implementação anterior do primeiro aspecto, as funções de verificação dos padrões de ocultamento de dados são calculadas com base nos valores dos grupos de coeficientes.
[032] De acordo com uma décima oitava implementação da décima quinta à décima sétima forma de implementação do primeiro aspecto, os padrões de ocultamento de dados compreendem um ou mais padrões de ocultamento de dados para ocultar uma bandeira de filtragem de amostra de referência para intra-previsão para as unidades de transformada da unidade de codificação.
[033] De acordo com uma décima nona implementação da décima quinta à décima oitava forma de implementação do primeiro aspecto, os padrões de ocultamento de dados compreendem um ou mais padrões de ocultamento de dados para ocultar pelo menos um de um índice de modo de previsão e um tamanho das unidades de previsão.
[034] De acordo com uma vigésima implementação da décima quinta à décima nona forma de implementação do primeiro aspecto, os padrões de ocultamento de dados compreendem um padrão de ocultamento de dados para incorporação de uma marca d’água para a unidade de codificação.
[035] De acordo com vigésima primeira implementação da décima quinta à vigésima forma de implementação do primeiro aspecto, os padrões de ocultamento de dados compreendem um padrão de ocultamento de dados para ocultar os bits de sinal de coeficientes dos grupos de coeficientes.
[036] De acordo com uma vigésima segunda implementação da primeira à décima quarta forma de implementação do primeiro aspecto, os valores de referida unidade de codificação representam um bloco de dados de imagem, um bloco de dados de áudio, ou um bloco de um documento a ser codificado.
[037] De acordo com vigésima terceira implementação da primeira à vigésima segunda forma de implementação do primeiro aspecto, um dos valores ocultados permite confirmar autenticidade dos valores compreendidos na unidade de codificação.
[038] Uma vigésima quarta implementação do primeiro aspecto da invenção fornece um aparelho de codificação para ocultar valores de uma unidade de codificação hierarquicamente em camadas em outros valores compreendidos por referida unidade de codificação. O aparelho de codificação é fornecido com uma pilha em camadas de padrões de ocultamento de dados para ocultar referidos valores da unidade de codificação em camadas diferentes da unidade de codificação, em que cada dos padrões de ocultamento de dados tem uma função de verificação associada ao mesmo para ocultar um ou mais de referidos valores da unidade de codificação em uma das camadas da unidade de codificação. O aparelho de codificação compreende uma unidade de processamento configurada para executar o seguinte para cada dos padrões de ocultamento de dados: (i) calcular a função de verificação de um respectivo de referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação; (ii) determinar se o resultado da função de verificação corresponde a um valor de referida unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados; e (iii) se não, modificar pelo menos um de referidos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação de modo que o resultado da função de verificação no passo (ii) corresponda ao referido valor de referida unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados.
[039] O aparelho de codificação compreende ainda unidade de saída configurada para emitir uma unidade de codificação codificada, a unidade de codificação codificada compreendendo os outros valores da unidade de codificação como modificado no passo (iii) para todos os padrões de ocultamento de dados.
[040] Uma vigésima quinta implementação do primeiro aspecto da invenção fornece um aparelho de codificação configurado para executar o método de acordo com qualquer implementação do primeiro aspecto.
[041] Uma vigésima sexta implementação do primeiro aspecto da invenção fornece um aparelho de decodificação para reconstruir valores ocultados a partir de uma unidade de codificação codificada. O aparelho de decodificação é fornecido com uma pilha em camadas de padrões de ocultamento de dados que foi utilizada por um codificador para ocultar referidos valores da unidade de codificação, em que cada dos padrões de ocultamento de dados tem uma função de verificação associada ao mesmo. O aparelho de decodificação compreende uma unidade de processamento configurada para calcular, para cada dos padrões de ocultamento de dados, a função de verificação de um respectivo de referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação codificada, em que o resultado da função de verificação corresponde a um dos valores ocultados reconstruídos; e uma unidade de saída para emitir a unidade de codificação decodificada compreendendo, como parte dos dados decodificados, referidos valores ocultados reconstruídos.
[042] De acordo com uma vigésima sétima implementação da primeira à vigésima sexta forma de implementação do primeiro aspecto, os valores selecionados pelo respectivo padrão de ocultamento de dados a partir da unidade de codificação codificada são valores da camada hierárquica mais baixa da unidade de codificação.
[043] De acordo com vigésima oitava implementação da primeira à vigésima sétima forma de implementação do primeiro aspecto, a unidade de processamento é configurada ainda para calcular as funções de verificação de referidos padrões de ocultamento de dados associados a uma camada que não seja a camada hierárquica mais baixa da unidade de codificação codificada nos valores selecionados por um respectivo um do padrão de ocultamento de dados a partir de uns respectivos subconjuntos dos valores da camada hierárquica mais baixa da unidade de codificação.
[044] De acordo com uma vigésima nona implementação da primeira à vigésima oitava forma de implementação do primeiro aspecto, a unidade de processamento é configurada para determinar o tamanho de um respectivo um dos padrões de ocultamento de dados com base no tamanho do subconjunto no qual a função de verificação do respectivo padrão de ocultamento de dados é calculada.
[045] De acordo com uma trigésima implementação da primeira à vigésima oitava ou vigésima nona forma de implementação do primeiro aspecto, um respectivo subconjunto em uma camada outra que a camada hierárquica mais baixa compreende os valores da camada hierárquica mais baixa da unidade de codificação que hierarquicamente pertencem para uma unidade de dados organizacional da camada respectiva.
[046] De acordo com uma trigésima primeira implementação da primeira à trigésima forma de implementação do primeiro aspecto, a unidade de processamento é configurada para determinar o número e/ou tamanho de padrões de ocultamento de dados aplicáveis a uma respectiva unidade de dados organizacional da camada respectiva com base no tamanho do subconjunto de valores pertencentes à respectiva unidade de dados organizacional da camada respectiva na qual a função de verificação é calculada.
[047] Uma trigésima segunda implementação do primeiro aspecto da invenção fornece um aparelho de decodificação configurado para executar um método de decodificação de acordo com qualquer implementação do primeiro aspecto.
[048] Uma trigésima terceira implementação do primeiro aspecto da invenção fornece um meio legível por computador (não transitório) que armazenou instruções que, quando executadas por uma unidade de processamento de um aparelho de codificação, fazem o aparelho de codificação para executar o seguinte para cada dos padrões de ocultamento de dados: (iv) calcular a função de verificação de um respectivo de referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação; (v) ) determinar se o resultado da função de verificação corresponde a um valor de referida unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados; e (vi) ) se não, modificar pelo menos um de referidos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação de modo que o resultado da função de verificação no passo (ii) corresponda ao referido valor de referida unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados.
[049] Além disso, a instrução pode ainda fazer a unidade de processamento do aparelho de codificação compreender, na unidade de codificação codificada, os outros valores da unidade de codificação como modificado no passo (iii) para todos os padrões de ocultamento de dados.
[050] Uma trigésima quarta implementação do primeiro aspecto da invenção fornece um meio legível por computador (não transitório) que armazenou instruções que, quando executadas por uma unidade de processamento de um aparelho de codificação, fazem o aparelho de codificação executar um método de codificação de acordo com qualquer forma de implementação do primeiro aspecto.
[051] Uma trigésima quarta implementação do primeiro aspecto da invenção fornece um meio legível por computador (não transitório) que armazenou instruções que, quando executadas por uma unidade de processamento de um aparelho de codificação, fazem o aparelho de codificação fornecer uma pilha em camadas de padrões de ocultamento de dados, onde a pilha foi usada por um codificador para ocultar referidos valores da unidade de codificação. Cada dos padrões de ocultamento de dados tem uma função de seleção associada ao mesmo. As instruções fazem ainda o aparelho de decodificação para calcular, para cada dos padrões de ocultamento de dados, a função de verificação de um respectivo de referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação, em que o resultado da função de verificação corresponde a um dos valores ocultados reconstruídos.
[052] Uma trigésima sexta implementação do primeiro aspecto da invenção fornece um meio legível por computador (não transitório) que armazenou instruções que, quando executadas por uma unidade de processamento de um aparelho de decodificação, fazem o aparelho de decodificação realizar um método de decodificação de acordo com qualquer forma de implementação do primeiro aspecto.
BREVE DESCRIÇÃO DAS FIGURAS
[053] No seguinte, modalidades da invenção são descritas em mais detalhe em referência às figuras e desenhos anexos. Detalhes semelhantes ou correspondentes nas figuras são marcados com os mesmos números de referência.
[054] A Figura 1 mostra uma estrutura exemplar (árvore de codificação) de uma unidade de codificação de acordo com uma modalidade exemplar da presente invenção.
[055] A Figura 2 mostra uma estrutura exemplar de uma unidade de codificação de uma modalidade da invenção, que é semelhante à estrutura de unidade de codificação no padrão H.265.
[056] A Figura 3 mostra diferentes exemplos de padrões de ocultamento de dados desacoplados unidimensionais de acordo com as modalidades da invenção.
[057] A Figura 4 mostra diferentes exemplos de padrões de ocultamento de dados desacoplados bidimensionais de acordo com uma modalidade da invenção.
[058] A Figura 5 mostra uma modalidade exemplar da estrutura de uma pilha em camadas de padrões de ocultamento de dados definidos para as diferentes camadas da Figura 2 de acordo com uma modalidade da invenção.
[059] A Figura 6 mostra uma estrutura hierárquica exemplar de padrões de ocultamento de dados de acordo com uma modalidade exemplar da presente invenção.
[060] As Figuras 7 e 8 mostram um fluxograma de um procedimento para ajuste de coeficiente no lado de codificador para padrões de ocultamento de dados hierarquicamente estruturados de múltiplas camadas de acordo com uma modalidade exemplar da presente invenção.
[061] A Figura 9 mostra um fluxograma de um processo simplificado para ajuste de coeficiente no lado de codificador para padrões de ocultamento de dados de duas camadas de acordo com uma modalidade exemplar da presente invenção.
[062] A Figura 10 mostra um fluxograma de um processo para decodificação de fluxo de vídeo de acordo com uma modalidade da invenção.
[063] A Figura 11 mostra uma estrutura de codificador e decodificador de uma modalidade exemplar da presente invenção.
[064] A Figura 12 mostra uma modificação exemplar do fluxograma de sinalização de bandeira implícita para filtragem de amostra de referência de acordo com intra- previsão ITU-T H.265/HEVC de acordo com uma modalidade exemplar da presente invenção.
[065] A Figura 13 mostra casos de uso exemplares dos conceitos da invenção de acordo com diferentes modalidades adicionais.
[066] A Figura 14 mostra um aparelho de codificação de uma modalidade exemplar da invenção.
[067] A Figura 15 mostra um aparelho de decodificação de uma modalidade exemplar da invenção.
DESCRIÇÃO DETALHADA
[068] Os parágrafos seguintes descrevem várias implementações e modalidades dos diferentes aspectos. Como já foi referido acima, um aspecto da invenção refere-se a efetuar múltiplas operações de ocultamento de dados nos dados de uma unidade de codificação.
[069] Uma unidade de codificação refere-se geralmente a estrutura que contém um conjunto de dados a ser codificado. A unidade de codificação é assumida ter uma estrutura hierárquica. Isto significa, por exemplo, que os valores individuais que representam os dados pertencentes à unidade de codificação correspondem a uma estrutura hierárquica fornecendo diversas camadas da unidade de codificação. Tais camadas podem ser, por exemplo, realizadas pela estrutura que define uma árvore de codificação, onde a camada de unidade de codificação define a raiz da árvore e os dados de cada ramo da árvore pertencem à camada inferior seguinte. Os dados na unidade de codificação são representados por valores de dados (valores para abreviar) que representam as informações para as diferentes camadas da estrutura. Os valores de dados podem ser representados no formato binário. Operações de ocultamento de dados, e, em especial, o cálculo das funções de verificação, podem ser realizadas nos valores, mas também poderiam ser realizadas na representação binária (nível de bits), quando necessário.
[070] Uma árvore de codificação exemplar é ilustrada na Figura 1. A estrutura de unidade de codificação (unidade de camada N, maior unidade de camada) define, assim, a camada mais alta na ordem hierárquica das camadas da árvore de codificação. Cada unidade em cada camada (exceto para a camada mais baixa) pode ser constituída por informação lateral da camada respectiva e uma ou mais unidades de camada inferior. Note que, dependendo da aplicação da invenção, pode não haver qualquer informação lateral em uma ou mais camadas. A unidade de camada inferior (unidade de camada 0) pode, por exemplo, compreender ou consistir em valores, e, opcionalmente, pode haver também informação lateral.
[071] A ideia de um primeiro aspecto da invenção é ocultar as informações (por exemplo, um ou mais valores da unidade de codificação) que pertencem às camadas distintas com base em outros valores da unidade de codificação usando padrões de ocultamento de dados (DHP). Por exemplo, os dados a serem ocultados podem ser uma ou mais informações laterais de uma camada respectiva que de outro modo teriam que ser codificadas explicitamente nos dados codificados. Em uma implementação, as informações laterais de estrutura de dados de uma camada respectiva (por exemplo, unidade de camada N-1 ou qualquer outra unidade de camada inferior) podem ser ocultadas dentro dos valores pertencentes à respectiva estrutura de dados.
[072] Esta informação (ou valores) em que a camada é oculta na unidade de codificação codificada pode ser, por exemplo, predeterminada, ou pode ser sinalizada para o aparelho de decodificação. Também os padrões de ocultamento de dados utilizados nas respectivas camadas diferentes podem ser predeterminados, ou podem ser produzidos a partir de parâmetros da unidade de codificação codificada, por exemplo, o tamanho do respectivo. O mesmo padrão ou padrões de ocultamento de dados podem ser reutilizados em uma camada X para cada uma das unidades de camada X desta camada.
[073] Em algumas modalidades os valores em que a operação de ocultamento de dados é baseada pertencem à camada hierárquica mais baixa da unidade de codificação. Estes valores para os quais é aplicado um respectivo padrão de ocultamento de dados podem ser considerados como um conjunto de entrada de valores para um respectivo padrão de ocultamento de dados. Vários padrões de ocultamento de dados podem ser baseados em conjuntos de entrada de valores idênticos, em conjuntos de entrada de sobreposição parcial de valores, ou conjuntos de entrada distintos de valores ou ainda uma combinação dos mesmos.
[074] Geralmente, assumindo para fins exemplares apenas uma função de verificação com um resultado binário, um padrão de ocultamento de dados pode ocultar um bit de informação. Por conseguinte, o número de padrões de ocultamento de dados corresponde ao número de bits a serem ocultados para uma unidade da camada respectiva, a menos que o conjunto de dados seja suficientemente grande de modo que o mesmo padrão de ocultamento de dados pode ser aplicado aos respectivos subconjuntos do mesmo. Os padrões de ocultamento de dados para uma unidade de dados da camada podem, assim, definir uma pilha de padrões de ocultamento de dados que são desacoplados. A desacoplação dos padrões de ocultamento de dados garante que os bits ocultados possam ser reconstruídos a partir da unidade de codificação codificada novamente. De um modo vantajoso, a desacoplação dos padrões de ocultamento de dados não só é fornecida para os padrões de ocultamento de dados para uma única camada, mas os padrões de ocultamento de dados são desacoplados em todas as camadas da unidade de codificação. Como observado anteriormente, "desacoplado" significa que o valor restaurado utilizando quaisquer padrões de ocultamento de dados a partir de qualquer camada poderiam não ser derivados por combinação (por exemplo, combinação linear) do restante dos padrões de ocultamento de dados definidos para esta camada. Em outras palavras, uma pilha de padrões de ocultamento de dados desacoplados pode ser descrita por um sistema não degenerado de equações que deriva os valores extraídos a partir de um dado conjunto de valores alvo.
[075] Uma pilha em camadas de padrões de ocultamento de dados desacoplados pode ser, por exemplo, construída de várias maneiras. A Figura 3 mostra diferentes exemplos de padrões de ocultamento de dados desacoplados unidimensionais, que podem ser classificadas em três grupos: baseados em decimação, regular e irregular (pseudoaleatórios). Na Figura 3, (a) e (b) apresentam dois exemplos de DHP baseado em decimação; (c), (d) e (e) ilustram três exemplos diferentes de outros DHPs regulares; e (f) demonstra um exemplo de DHPs irregulares (pseudoaleatórias).
[076] Padrões de ocultamento de dados baseados em decimação podem ser construídos de tal maneira que cada enésimo elemento de um determinado conjunto de valores pode ser utilizado para ocultar dados. Em um caso mais geral, se elementos do conjunto são selecionados por um padrão de ocultamento de dados regularmente, ou seja, de acordo com uma ordem regular, estes padrões de ocultamento de dados poderiam ser classificados como padrões de ocultamento de dados regulares. Todos os outros casos que não definem qualquer ordem regular dentro de padrões de ocultamento de dados podem ser agrupados na classe de padrões de ocultamento de dados irregulares ou pseudoaleatórios.
[077] Pilha em camadas pode consistir em padrões de ocultamento de dados de diferentes classes, mas com a restrição nestes padrões de ocultamento de dados sendo os desacoplados. Além disso, os padrões de ocultamento de dados poderiam ser bidimensionais ou mesmo multidimensionais. Um exemplo de uma pilha em camadas bidimensional de padrões de ocultamento de dados é dado na Figura 4. Os padrões de ocultamento de dados bidimensionais poderiam ser, por exemplo, aplicados a coeficientes de transformada quantificados, assim como os unidimensionais, mas procedimentos de ocultamento e extração de dados nesse caso iriam acontecer antes de varredura de coeficientes.
[078] Nos exemplos seguintes, presume-se a maior parte do tempo que a invenção é usada no contexto de codificação de vídeo. Os dados da unidade de codificação representam, portanto, um bloco de pixels de uma imagem. Para fins exemplares, a unidade de codificação é assumida como tendo uma estrutura de árvore de codificação semelhante ao padrão H.265: A unidade de codificação tem uma ou mais unidades de previsão, com uma ou mais unidades de transformada, e um ou mais grupos de coeficientes. Esta estrutura em camadas exemplar é mostrada na Figura 2, em que as respectivas camadas da unidade de codificação (CU) são destacadas. Além disso, o parâmetro identificado para as camadas individuais lista exemplarmente informação lateral que pode estar oculta para uma unidade de dados da camada respectiva (CU, PU, TU e CG). Além disso, é exemplarmente assumido que a operação de ocultamento de dados em cada camada é realizada com base em valores de coeficiente de transformada do GC (s) pertencentes à unidade de dados da camada respectiva (CU, PU, TU e CG). Assim, o conjunto de dados de entrada para a operação de ocultamento de dados (s) realizada para as unidades de dados da camada respectiva pode ser diferente. Isso pode permitir reutilizar o mesmo padrão (ões) de ocultamento de dados para diferentes unidades de dados da camada respectiva.
[079] A Figura 5 mostra uma modalidade exemplar da estrutura de uma pilha em camadas de padrões de ocultamento de dados definidos para as diferentes camadas da Figura 2. Neste exemplo, assume-se apenas para fins exemplares apenas que não existe um padrão de ocultamento de dados para cada unidade de dados da camada respectiva em uma respectiva uma das quatro camadas.
[080] Na camada mais baixa (Camada 0), a camada de CG, um valor de cada CG deve ser ocultado (por exemplo, as bandeiras de sinal dos coeficientes de transformada (significativos) do respectivo CG). Note que todo o conjunto de coeficientes de transformada é considerado (por exemplo, para um CG de tamanho 4x4, todos os 16 coeficientes significativos e não significativos são considerados, embora apenas os coeficientes significativos possam ser codificados na unidade de codificação codificada).
[081] Usando padrões de ocultamento de dados respectivos e uma função de verificação (por exemplo, uma função de verificação de paridade), os sinais de um ou mais coeficientes significativos dentro de um determinado CG podem ser codificados. O tamanho do padrão (ões) de ocultamento de dados é equivalente à (ou a um divisor de) o tamanho de GC (por exemplo, 16 valores para um CG de 4x4), e seleciona um subconjunto dos valores de coeficiente de GC para aplicação da função de verificação. A operação de ocultamento de dados pode ser aplicada não a todos os CGs, mas apenas para aqueles CGs que atendam a condição de limiar. Por exemplo, no caso da diferença de posições dos primeiros e últimos coeficientes significativos dever ser maior ou igual a quatro, ocultamento de dados é utilizado.
[082] Em um exemplo, para cada valor de um CG a ser escondido, um padrão de ocultamento de dados correspondente (e função de verificação) definido. Assim, se, por exemplo, os sinais de 4 coeficientes significativos devem ser ocultados, existem 4 padrões de ocultamento de dados distintos definidos cada dos quais é usado para ocultar um bit de sinal (assumindo que o tamanho do padrão de ocultamento de dados é igual ao tamanho do CG (ou seja, número de seus coeficientes)). No exemplo da Figura 5, um bit de sinal de um dos coeficientes significativos poderia ser ocultado para um CG. Note que o conjunto de padrões de ocultamento de dados usado para ocultar o bit de sinal (s) dos diferentes CGs poderia ser idêntico para todos os CGs da unidade de codificação. No entanto, diferentes conjuntos de padrões de ocultamento de dados também poderiam ser usados.
[083] Voltando agora para o nível de TU, isto é a Camada 1 no exemplo da Figura 5, vários CGs normalmente pertencem a uma única TU. Por conseguinte, para ocultar informações laterais de uma TU (por exemplo, uma bandeira de filtragem de amostra de referência da TU), o conjunto de dados de entrada para a operação de ocultamento de dados pode agora ser os coeficientes de transformada de todos os CGs pertencentes à respectiva TU. Por conseguinte, o padrão (ões) de ocultamento de dados da camada de TU pode ter um tamanho que é igual ao tamanho dos CGs, como mostrado na Figura 5. Se vários bits precisam ser ocultados na camada de TU, um número correspondente de padrões de ocultamento de dados desacoplados é definido.
[084] Alternativamente, o tamanho do padrão (ões) de ocultamento de dados da camada de TU pode um divisor do tamanho dos CGs (não mostrado na Figura 5). Como será explicado abaixo, os padrões de ocultamento de dados podem ter um tamanho máximo. Neste caso, um número inteiro múltiplo do tamanho de padrão de ocultamento de dados pode ser igual ao tamanho dos CGs pertencentes à TU (isto é, o número de coeficientes dos diferentes CGs pertencentes à TU). Neste caso, o mesmo padrão de ocultamento de dados pode ser aplicado várias vezes a diferentes subconjuntos de CGs pertencentes à TU para ocultar múltiplos bits.
[085] Semelhante à camada de TU, também na camada de PU, isto é, Camada 2, no exemplo da Figura 5, vários CGs podem pertencer a uma única PU. Por conseguinte, o conjunto de dados de entrada para as operações de ocultamento de dados na camada de PU pode ser novamente maior do que o nível de TU. O padrão (ões) de ocultamento de dados na camada de PU pode ser novamente igual em tamanho ao tamanho dos CGs pertencentes à respectiva PU, ou alternativamente, o tamanho do padrão (ões) de ocultamento de dados da camada de PU pode um divisor do tamanho dos CGs (não mostrado na Figura 5), facilitando assim a reutilização do padrão (ões) de ocultamento de dados para diferentes subconjuntos dos valores de coeficiente dos CGs pertencentes à respectiva PU em ocultamento de múltiplos bits.
[086] Geralmente, o padrão (ões) de ocultamento de dados pode ser utilizado para ocultar também um valor não binário, tal como, por exemplo, um índice de modo de previsão, ou um vetor de movimento (índice) para a PU. Dependendo do tamanho do padrão de ocultamento de dados e o número de coeficientes pertencentes à unidade da camada respectiva, um ou mais padrões de ocultamento de dados são necessários para o fazer. Assumindo que uma PU tem múltiplas TUs, pode esperar-se que o número de coeficientes de transformada dos CGs pertencentes aos CGs da PU seja significativamente maior do que o tamanho (máximo) do padrão (ões) de ocultamento de dados para a camada de PU, assim mesmo padrão de ocultamento de dados pode ser utilizado para ocultar valores não binários, como um índice de modo de previsão, ou um vetor de movimento (índice) para a PU.
[087] Finalmente, na camada de CU, isto é, Camada 3 no exemplo da Figura 5, todos os coeficientes de todos os CGs de uma CU podem ser usados para o processo de ocultamento de dados. Por conseguinte, pode ser possível ocultar uma ou várias informações laterais na camada de CU. Por exemplo, os parâmetros de filtro de loop, valores de deslocamento de SAO, ou parâmetros de filtro de desbloqueio podem ser ocultados por meio de uma operação de ocultamento de dados dentro dos coeficientes dos CGs da CU, como descrito acima para as camadas de PU e TU.
[088] Além disso, também é possível adicionar uma marca d’água (impressão digital) em qualquer uma das camadas, tal como será explicado abaixo. Como se tornará mais evidente, as operações de ocultamento de dados podem precisar modificar valores individuais na camada mais baixa (por exemplo, os valores de coeficiente da camada de CG para ficar com os exemplos anteriormente discutidos das Figuras 2 e 5) de tal forma que as funções de verificação aplicadas aos valores selecionados pelos respectivos padrões de ocultamento de dados fornecem o resultado correto para ocultar os dados a serem ocultados na camada diferente. Por conseguinte, quando se considera, por exemplo, codificação de áudio, vídeo ou imagem, a modificação dos dados de camada de nível mais baixo pode resultar em distorção do sinal decodificado. A distorção causada por uma modificação de um valor pode ser, por exemplo, definida em termos de "custos" e algoritmos para decidir qual os valor (es) de camada mais baixo precisa de modificações podem tomar sua decisão com base nos custos (ou seja, uma redução estimada em termos de qualidade) de uma modificação dos seus respectivos valores que formam o conjunto de dados de entrada da operação de ocultamento de dados (isto é, os valores selecionados pelos padrões de ocultamento de dados). A distorção introduzida por uma operação de ocultamento será também dependente do número de valores selecionados pelos respectivos padrões de ocultamento de dados (isto é, o número de candidatos disponíveis para modificação), e como esses valores são distribuídos através de todo o conjunto de valores dos valores de camada mais baixos da unidade de codificação. Em geral, pode-se esperar que a distorção introduzida por uma operação de ocultamento de dados diminua com o tamanho do padrão de ocultamento de dados, como mais valores podem ser selecionados e/ou os valores selecionados são distribuídos através de um conjunto maior de valores. Outro fator é, naturalmente, o número de operações de ocultamento de dados realizadas para uma unidade de codificação.
[089] No entanto, a redução em distorção do sinal decodificado entre diferentes comprimentos do padrão de ocultamento de dados será menor, quanto maiores forem os padrões de ocultamento de dados. Por isso, é significativo definir um comprimento máximo dos padrões de ocultamento de dados, uma vez que isto pode permitir (tipicamente em camadas mais altas) aplicar os padrões de ocultamento de dados de um comprimento máximo várias vezes nos valores de camada mais baixos associados a valores da camada respectiva, como explicado acima em ligação com as camadas de CU, PU e TU. Isto pode reduzir a distorção introduzida pelo ocultamento de dados e pode também reduzir a complexidade na definição de uma pilha desacoplada dos padrões de ocultamento de dados.
[090] Contudo, como o número de bits a serem ocultados por camada pode ser predeterminado, e a dimensão das unidades da camada respectiva (e, portanto, o número de valores de camada mais baixos associados a elas) pode ser selecionada de forma dinâmica no processo de codificação, o aparelho de codificação como também o aparelho de decodificação podem decidir dinamicamente a pilha de padrões de ocultamento de dados (por exemplo, o número de padrões de ocultamento de dados por camada e o seu tamanho) a ser utilizada para codificação e decodificação de uma respectiva unidade de codificação. No entanto, a seleção da pilha de padrões de ocultamento de dados a ser utilizada para codificação e decodificação de uma respectiva unidade de codificação, pode ser decidida com base na estrutura de unidade de codificação (por exemplo, a dimensão das unidades da camada respectiva) como será descrito em mais detalhe a seguir, de modo que nenhuma sobrecarga de sinalização adicional possa ser necessária para sinalizar a pilha de padrões de ocultamento de dados utilizados na codificação para o aparelho de decodificação, enquanto ainda permitindo o uso dinâmico de diferentes pilhas de padrões de ocultamento de dados para reduzir distorção introduzida pelo ocultamento de dados.
[091] Considerando agora a decodificação de dados ocultados, isto é, a reconstrução dos valores ocultados nas diferentes camadas a partir da unidade de codificação codificada, a pilha desacoplada de padrões de ocultamento de dados utilizados nas diferentes camadas pode não ser predeterminada, mas derivável a partir da estrutura da unidade de codificação codificada. Por exemplo, a pilha de padrões de ocultamento de dados poderia ser adaptativamente derivada pelo aparelho de codificação e decodificação com base em parâmetros das unidades de codificação, tais como, por exemplo, o tamanho dos CGs, TUs, PUs e CU, tal como será descrito abaixo.
[092] Para explicar este conceito, o seguinte exemplo simplificado será considerado sem perda de generalidade. Supõe-se que os padrões de ocultamento de dados têm um tamanho máximo de 16 bits (ou seja, selecionar valores a partir de um conjunto de 16 coeficientes de um CG). Além disso, presume-se que o CG tenha do tamanho de 4x4, rendendo 16 coeficientes por CG, ou tamanho de 8x8 rendendo 64 coeficientes por CG. Além disso, presume-se que o sinal dos quatro primeiros coeficientes significativos no GC são codificados por dados ocultados (quatro bits devem ser ocultados). Além disso, para a camada de CG, existem quatro padrões de ocultamento de dados predeterminados DHP1, DHP2, DHP3 e DHP4, os quais são desacoplados, e que cada tem uma dimensão de 16 bits. Cada dos padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4 usa uma função de verificação de paridade como uma função de verificação para ocultar dados, de modo que cada padrão de ocultamento de dados pode ser usado para ocultar um único bit.
[093] No processo de codificação, no caso da unidade de codificação ter uma estrutura produzindo um CG de 4x4, ou seja, há 16 coeficientes no GC, a unidade de processamento do aparelho de codificação irá realizar quatro operações de ocultamento de dados para ocultar os quatro bits de sinal nos 16 coeficientes no GC usando os quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4. Similarmente, no lado de aparelho de decodificação no processo de decodificação, a unidade de processamento do aparelho de decodificação reconhece o tamanho do CG para ser 4x4 e calcula, para cada do DHP1, DHP2, DHP3 e DHP4, os quatro resultados da função de verificação de paridade com base nos coeficientes selecionados dos 16 coeficientes do CG por cada dos quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4.
[094] No caso da unidade de codificação ter uma estrutura fornecendo um GC de 8x8, isto é, existem 64 coeficientes no CG, a unidade de processamento do aparelho de codificação irá particionar os 64 coeficientes para diferentes subconjuntos de 16 coeficientes cada, e, em seguida, executar as quatro operações de ocultamento de dados para ocultar os quatro bits de sinal nos respectivos subconjuntos de 16 coeficientes. Nestas quatro operações de ocultamento de dados que são baseadas nos quatro subconjuntos diferentes de coeficiente, a unidade de processamento do aparelho de codificação pode usar qualquer um dos quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4, ou, alternativamente, todos eles, ou um subconjunto dos quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4. Qual um ou mais dos quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4 são utilizados no aparelho de codificação pode ser predeterminado, de modo que esta informação não tenha que ser sinalizada para o aparelho de decodificação.
[095] Do mesmo modo, no lado de aparelho de decodificação, no processo de decodificação, a unidade de processamento do aparelho de decodificação reconhece o tamanho do CG para ser 8x8. O aparelho de decodificação forma quatro subconjuntos de 16 coeficientes a partir de cada dos 64 coeficientes no GC (note que o particionamento é, naturalmente, o mesmo que no aparelho de codificação, e pode ser predeterminado). Em seguida, o aparelho de decodificação calcula os quatro resultados da função de verificação de paridade com base nos respectivos subconjuntos de 16 coeficientes usando o mesmo um ou mais dos quatro padrões de ocultamento de dados DHP1, DHP2, DHP3 e DHP4 utilizados pelo aparelho de codificação.
[096] Comparando o caso de ocultar quatro bits em um CG de 4x4 pelo uso de quatro operações de ocultamento de dados realizadas no mesmo conjunto de coeficientes, e o caso de ocultar quatro bits em um CG de 8x8 pelo uso de quatro operações de ocultamento de dados realizadas em diferentes subconjuntos de coeficientes, torna-se mais evidente que a distorção introduzida pelas modificações dos coeficientes de modo a assegurar que a função de verificação de paridade gere a bandeira de sinal correta (valor de bit) para cada dos quatro sinais pode causar mais distorção no sinal decodificado para um GC de 4x4 em comparação com um GC de 8x8.
[097] Por conseguinte, pode-se considerar prever uma bandeira nas informações laterais de CGs de 4x4 que pode sinalizar se ou não ocultamento de dados foi usado durante a codificação do CG. Em alternativa, esta bandeira pode ser prevista nas informações laterais de TU para sinalizar se ou não ocultamento de dados é usado na codificação dos CGs de 4x4 da TU ou não. O aparelho de codificação poderia decidir o uso de ocultamento de dados para CGs de 4x4 com base em um limiar de distorção predeterminado ou configurável.
[098] Note que para a reconstrução de dados ocultados, o aparelho de decodificação pode apenas determinar os 16 coeficientes (ou seja, os coeficientes significativos e não significativos) do GC a partir de CGs codificados, mas não há necessidade de realizar uma transformada inversa dos coeficientes a partir do espectro para o domínio do tempo.
[099] Este último ponto pode ser particularmente vantajoso quando se utiliza dados ocultados em aplicações de marca d’água (por exemplo, sobre uma camada superior à camada de CG, por exemplo, na camada de CU), como a marca d’água pode ser verificada sem a necessidade de executar uma transformada inversa dos coeficientes a partir do espectro para o domínio do tempo. A decodificação (por exemplo, transformada inversa) dos dados de camada mais baixa pode, assim, apenas ser realizada pelo aparelho de decodificação se a marca d’água pode confirmar a autenticidade dos dados codificados, de modo que recursos de processamento significativos podem ser salvos, se a marca d’água não é confirmada.
[100] Embora o exemplo acima refira-se a adaptativamente ocultar dados na camada de CG, mecanismos semelhantes podem ser utilizados, por exemplo, em uma ou mais da camada de TU, a camada de PU e a camada de CU. Por exemplo, na Figura 2, algumas das TUs têm 4x4 = 16 CGs associados às mesmas, enquanto outras TUs têm 8x8 = 64 CGs associados às mesmas. Considerando que existem 4x4 = 16 ou 8x8 = 64 coeficientes por CG, é aparente que o possível conjunto de dados de entrada para as operações de ocultamento de dados pode ser baseado em subconjuntos de todo o número de coeficientes pertencentes à TU, em vez de todos eles.
[101] Em uma implementação exemplar, presume-se para fins exemplares que 8 bits devem ser ocultados por TU. Para uma TU tendo 16 CGs de tamanho 4x4 isso gera um número total de 256 valores de coeficiente em que operações de ocultamento de dados podem ser realizadas. Considerando para fins exemplares apenas um padrão de ocultamento de dados de 32 bits, este padrão de ocultamento de dados único seria suficiente para ocultar os 8 bits nos 256 coeficientes. O padrão de ocultamento de dados seria aplicado em 8 operações de ocultamento de dados em subconjuntos distintos de 32 coeficientes dos 256 coeficientes. Pode-se, naturalmente, também considerar definição de mais de um padrão de ocultamento de dados de comprimento 32 bits, por exemplo, a fim de garantir que a pilha de padrões de ocultamento de dados em todas as camadas seja desacoplada. Assim, no lado de aparelho de decodificação, um tamanho de TU de 4x4 e um tamanho de CG de 4x4 iria fazer o aparelho de decodificação selecionar o padrão de ocultamento de dados predeterminado (ou padrões) de 32 bits cada (como utilizado pelo aparelho de codificação) e para reconstruir os 8 bits ocultados a partir de seus respectivos subconjuntos predeterminados de 32 coeficientes dos 256 coeficientes pertencentes à TU.
[102] Para uma TU tendo 16 CGs de tamanho 8x8 ou uma TU tendo 64 CGs de tamanho 4x4, isso gera um número total de 1024 valores de coeficiente em que operações de ocultamento de dados podem ser realizadas. Uma possibilidade pode ser aumentar o tamanho do padrão de ocultamento de dados (e o subconjunto de coeficientes em que são aplicados em conformidade) de acordo com o tamanho aumentado dos CGs, ou seja, para definir um ou mais padrões de ocultamento de dados de 128 bits cada, que são usados para ocultar e reconstruir os 8 bits ocultados utilizando respectivos subconjuntos predeterminados de 128 coeficientes dos 1024 coeficientes pertencentes à TU.
[103] Alternativamente, o mesmo padrão (ões) de ocultamento de dados como utilizado para o caso de uma TU de 4x4 com CGs de 4x4 poderia ser usado, que é então operado em 256 predeterminados dos 1024 dos coeficientes pertencentes à TU. Os restantes 768 coeficientes da TU podem não ser utilizados.
[104] Em uma outra alternativa, o mesmo padrão (ões) de ocultamento de dados como utilizado para o caso de uma TU de 4x4 com CGs de 4x4 poderia ser utilizado, mas os restantes 768 coeficientes da TU podem ser usados para ocultar bits adicionais (ou seja, um total de 32 bits poderia ser ocultado).
[105] Para uma TU tendo 64 CGs de tamanho 8x8, o número de coeficientes disponíveis para ocultar dados aumenta para 4096 coeficientes. Similar ao caso anterior, isto pode ser utilizado para aumentar o tamanho do padrão de ocultamento de dados em conformidade, para utilizar apenas um subconjunto dos coeficientes para ocultamento de dados (mantendo ao mesmo tempo o tamanho do padrão (ões) de ocultamento de dados) ou para ocultar mais dados na TU.
[106] A decisão sobre quantos bits são ocultados em cada das camadas também deve considerar a distorção geral instituída pelas operações de ocultamento de dados no sinal decodificado. No entanto, se os dados ocultados em cada camada são predeterminados, parâmetros como o tamanho da unidade de dados da camada respectiva (CU, PU, TU, GC) e/ou o tamanho de uma ou mais das unidades de dados das camadas inferiores respectivas (PU, TU, CG) podem implicar a pilha de padrões de ocultamento de dados utilizados pelo aparelho de codificação para o aparelho de decodificação, ao decodificar a unidade de codificação codificada.
[107] Voltando para a operação de ocultamento de dados, a mesma pode ser implementada como segue. Assume-se que as funções de verificação associadas aos padrões de ocultamento de dados tem um resultado binário, de modo que podem ocultar um bit de informação no conjunto de dados de entrada (por exemplo, os coeficientes do GC (s)). Para cada padrão de ocultamento de dados de cada camada, os respectivos padrões de ocultamento de dados selecionam um subconjunto dos valores do conjunto de dados de entrada (ou todos os valores dos mesmos) e calcula a função de verificação no conjunto selecionado de valores. O resultado binário deste cálculo é comparado com a informação binária a ser ocultada. Se o resultado corresponde a uma informação binária a ser ocultada, nenhuma modificação de qualquer um dos valores selecionados é necessária. Se o resultado corresponde com a informação binária a ser ocultada, um ou mais dos valores selecionados pelo padrão de ocultamento de dados a partir do conjunto de dados de entrada precisam ser modificados, de modo que o resultado da função de verificação corresponde com a informação binária a ser ocultada.
[108] Em uma implementação exemplar, a modificação necessária dos valores selecionados pelo padrão de ocultamento de dados a partir do conjunto de dados de entrada é realizada por meio de um algoritmo que é capaz de determinar o valor (s) que deve ser modificado enquanto minimizando a distorção introduzida pela modificação do valor (es) selecionado.
[109] Em caso de utilização de vários padrões de ocultamento de dados em diferentes níveis hierárquicos que têm uma sobreposição parcial na seleção de valores (ver Figuras 4 e 5) o aparelho de codificação garante que um valor selecionado e modificado em uma primeira operação de ocultamento de dados não é modificado novamente em outra segunda operação de ocultamento de dados que seleciona esse valor novamente. Além disso, a segunda operação de ocultamento de dados deve considerar o valor selecionado e modificado ao calcular a função de verificação. Isso é importante para implementações onde o ocultamento de dados é efetuado para os padrões de ocultamento de dados individuais (e camadas) sequencialmente.
[110] Alternativamente, implementações são possíveis em que todas as funções de verificação para todos os padrões de ocultamento de dados são calculadas em primeiro lugar, e, em seguida, um algoritmo é utilizado para modificar os valores da camada mais baixa da unidade de codificação para todos os padrões de ocultamento de dados de modo que cada uma das funções de verificação fornece o resultado correto.
[111] Também implementações híbridas destas duas alternativas são possíveis, em que, por exemplo, as camadas individuais são processadas sequencialmente, mas para uma única camada, todas as funções de verificação são calculadas para todos os padrões de ocultamento de dados da única camada e o algoritmo de modificação modifica os valores da camada mais baixa da unidade de codificação para todos os padrões de ocultamento de dados da camada única de modo que cada das funções de verificação fornece o resultado correto.
[112] Para a estrutura hierárquica como mostrado na Figura 1 uma regra especial de ajuste de coeficientes poderia ser aplicada a um DHP que garante o ajuste de coeficientes correto (Figura 6). Para um dado DHP 601 de uma camada um conjunto de DHPs filhos 602, 603 poderia ser encontrado. Dentro deste conjunto de DHPs um DHP especial 603 poderia ser selecionado. Enquanto outros DHPs filhos 602 controlam os valores de função de verificação de si mesmos e seus respectivos DHPs filhos, o DHP selecionado 603 deverá ainda controlar o valor do DHP pai dado 601. A mesma regra sendo recursivamente aplicada a cada dos DHPs filhos fornece os valores de função de verificação alvo para todos os DHPs 601-605.
[113] Um fluxograma exemplar do processo de ocultamento de dados incluindo ajuste de coeficientes no lado de codificador para DHPs hierarquicamente estruturados de múltiplas camadas é mostrado na Figura 7 e Figura 8. O processo de codificação pode, por exemplo, ser baseado em uma pilha de DHPs que é estruturada como mostrado na Figura 6, mas a invenção não se limita a isto. O conjunto resultante de coeficientes ajustados é obtido através da realização de pesquisa de ocultamento correspondida 701 para cada dos DHPs da camada mais elevada. Este processo é recursivo exceto para a camada mais baixa tendo as seguintes entradas: - um índice de camada i; - um DHP atual da camada i; - uma pilha de DHPs construídos para camadas mais altas que representam uma cadeia de DHPs antecessores relativos ao DHP atual (ver Figura 6). Quando a pesquisa de ocultamento correspondida é realizada para os DHPs da camada mais alta a pilha de DHPs é vazia; e - os valores alvo associados com cada de DHPs. Estes valores alvo são, de fato, os valores a serem ocultados e definem o resultado de que deve ser fornecido pela função de verificação aplicada aos valores selecionados pelo respectivo DHP.
[114] Passo 702 executa uma verificação se a camada mais baixa está sendo processada ou não. Assumindo que todas as camadas são numeradas de zero partindo a partir da mais baixa e a camada de entrada tem índice i, bloco 702 compara i para zero.
[115] Se não é a camada mais baixa que é processada (i não é igual a zero), uma pesquisa da melhor cadeia de DHP é continuada (ou iniciada no caso de i ser igual ao índice de camada mais alta). Tanto para o caso de pesquisa de início e continuação os seguintes passos são executados: inicialização de melhor custo 703, salvar estado de pesquisa 704, varredura de DHP 705, e atualização de coeficientes 718.
[116] Inicialização do melhor custo 703 deve garantir que verificação de melhor custo 715 retorne o valor Verdadeiro a menos que melhor custo de ocultamento não seja redefinido. Por exemplo, se melhor custo de ocultamento pode ser armazenado em uma variável, inicialização 703 pode atribuir o valor mais elevado possível desta variável que deve ser maior do que qualquer custo de ocultamento calculado durante passo 714.
[117] Outra forma possível de inicialização 703 é introduzir uma bandeira de inicialização especial igual a Falso antes da verificação 715 pela primeira vez, e comutação da mesma para Verdadeiro após a verificação 715 é realizado. Neste caso, verificação 715 deve sempre Verdadeiro se bandeira de inicialização é Falso.
[118] Salvar o estado da pesquisa 704 é necessário para manter consistência de varredura de DHP 705, ou seja, cada iteração independente da varredura 705 deve começar com o mesmo estado de coeficientes e pilha de DHPs. Ambos coeficientes do subconjunto correspondendo ao DHP atual e pilha de DHPs pode ser armazenada para matrizes temporárias durante passo 704 e pode ser restaurada a partir destas matrizes temporárias durante passo de recuperação 706. Alternativamente, passo de restauração 706 pode ser realizado antes de iniciar iteração seguinte de 705, ou seja, após a conclusão de 717 ou quando 715 avalia como Falso. No entanto, a colocação de 706 não deve afetar o resultado obtido uma vez que fornece o mesmo estado inicial de coeficientes e o mesmo estado inicial de uma pilha de DHPs para todas as iterações de 705.
[119] Um DHP é um filho para um DHP atual, se o subconjunto de coeficientes para o DHP filho é incluído em um subconjunto dos coeficientes correspondendo a um DHP atual. Passo 705 varre todos os DHPs de camada i-1 que são filhos de DHP atual de modo a selecionar uma tal DHP filho que iria fornecer o valor da função de verificação alvo não apenas para si, mas para o DHP atual antecessor também.
[120] Quando o DHP filho candidato é selecionado, os outros DHPs filhos devem ser ajustados em primeiro lugar porque ajustes dos coeficientes de qualquer DHP filho afeta os ajustes que devem ser executados para o DHP selecionado. Passo 707 itera sobre todos os DHPs filhos exceto o selecionado, e realiza pesquisa de ocultamento correspondida para cada um deles. No entanto, não a pilha atual de DHPs é passada para a pesquisa de ocultamento correspondida 709 durante iteração 707, mas a nova construída no passo 708. Este conjunto recém construído contém um DHP filho atualmente iterado no passo 707, e, portanto, todos os DHPs iterados por 707 fornecem os valores de função de verificação corretos para si mesmos e seus DHPs sucessores, mas não para os DHPs antecessores.
[121] Os valores de função de verificação alvo de DHPs antecessores devem ser fornecidos apenas pelos DHPs filhos selecionados no passo de iteração 705. Portanto, quando passo 707 é completo, a pilha de entrada de DHPs é atualizada com o DHP filho selecionado 711 e o DHP de entrada atual 712, que é um pai para o DHP filho selecionado.
[122] Quando todos os ajustes de coeficientes são completos, é possível calcular o custo de ocultamento 714 para a pilha dada de DHPs. Ao comparar 715 este custo com o melhor, a melhor variante de ajuste de coeficiente pode ser selecionada. Esta seleção pode incluir salvar ajustes de coeficiente 716 para uma matriz temporária e redefinir o melhor custo 717 com o atual calculado no passo 714. Os melhores ajustes de coeficientes são restaurados a partir desta matriz temporária durante o passo 718, quando todas as variantes para o DHP atual são processadas por iteração no passo 705. As ações adicionais 721 dependem da camada atual i. Se i é igual ao índice de camada mais alto, pesquisa de ocultamento correspondida é completa e coeficientes do DHP são ajustados. Caso contrário, chamada recursiva é completa e outros passos após 709 devem ser realizados em conformidade.
[123] Para o caso da camada mais baixa (i é zero), pesquisa de ocultamento correspondida 701 deve executar ajuste de subconjunto 720 de acordo com a pilha de entrada de DHPs. Coeficientes selecionados para ajuste de subconjunto no passo 719 devem pertencer a um subconjunto correspondente ao DHP da camada mais alta da pilha de entrada de DHPs.
[124] A Figura 8 mostra o processo de ajuste de coeficientes 801 para o subconjunto dado de coeficientes, uma dada pilha de DHPs que contém M DHP e uma dada pilha de valores alvo que deve ser fornecida por cada se DHPs pertencem à pilha de DHPs. O contador de chamadas recursivas é inicializado para zero no passo 802. No entanto, este passo 802 deve ser ignorado se o ajuste de subconjunto 801 é recursivamente chamado. Em seguida, uma verificação de subconjunto 803 é realizada que verifica se os resultados das funções de verificação são, por conseguinte, iguais aos valores a partir da pilha de valores alvo. Esta verificação 803 consiste no cálculo de valor de função de verificação para cada dos DHPs 804, e comparar estes valores com os alvos 805.
[125] Se esta igualdade é válida para todos os DHPs da pilha de entrada de DHPs, ajuste de subconjunto é completo. Saída imediata 813 deve ser realizada, mesmo se o ajuste de subconjunto 801 foi recursivamente chamado a partir do passo 815.
[126] Caso contrário, a pesquisa de ajuste de coeficiente continua. Pode ser notado que uma vez que os DHPs na pilha são desacoplados os valores alvo de funções de verificação podem ser conseguidos por ajustar máximo de M coeficientes. No entanto, dependendo da situação, o número de ajustes necessários pode ser menor do que M.
[127] Ajustes de coeficientes começam com o armazenamento dos valores de coeficiente em uma matriz temporária 806, de modo que ajustes durante pesquisa iterativa 807 poderiam ser restaurados ao estado inicial. Esta pesquisa iterativa 807 é executada para todos os coeficientes do subconjunto de entrada exceto aqueles já modificados em chamadas recursivas anteriores. Para o coeficiente selecionado ajuste 808 é realizado. Especificamente este ajuste pode consistir na adição de algum valor constante (positivo ou negativo) ou alteração de valores de bits do coeficiente. Além disso, no passo 808 o custo de ajuste é calculado. Em seguida, o conjunto de coeficientes é revertido para o estado inicial 809 e coeficiente seguinte é selecionado.
[128] Quando todos os coeficientes são iterados, o contador de loops de recursão é incrementado no passo 811. A verificação especial 810 neste contador é realizada a fim de detectar possíveis erros. Passo 810 pode igualmente ser omitido, pois é apenas opcional. Especificamente, se o contador de recursão excede o número de DHPs na pilha M, isso significa que a verificação de subconjunto 803 não tem sucesso para os M coeficientes ajustados. Esta situação só é possível no caso em que os DHPs da pilha não são desacoplados. Quando isso acontece, a verificação 810 não tem sucesso e erro 812 deve ser tratado. Normalmente, a verificação 810 deve avaliar para Verdadeiro em todos os casos. Além de incrementar contador de recursão 811, coeficientes de entrada são ajustados de acordo com o melhor custo selecionado de entre os calculados no passo 808. O ajuste de coeficiente fornecendo o melhor valor de custo é realizado no passo 814, os coeficientes ajustados são excluídos a partir da verificação 807 realizada durante próximas iterações e finalmente ajuste de subconjunto é recursivamente chamado (passo 815).
[129] Evidentemente, o ajuste de subconjunto acima descrito 801 modifica M ou menor número de coeficientes com custo de ajuste mínimo. O procedimento de ajuste 801 pode ser abaixo do ideal, mas deve sempre fornecer um resultado válido para argumentos de entrada válidos. Pode-se notar que este procedimento pode também ser implementado em uma forma de um loop, uma vez que chamada recursiva 815 é o último passo deste procedimento.
[130] Para o caso especial de dados ocultados entre duas camadas um esquema mais simples 901 pode ser considerado, como ilustrado na Figura 9. Neste exemplo, assume-se apenas para fins exemplares que DHPs pais correspondem a TUs e DHPs filhos correspondem aos CGs. O primeiro passo do procedimento é inicialização de melhor custo e bandeira de ocultamento 902 é realizada. As maneiras de inicializar melhor custo são as mesmas que para o passo 703 de esquema generalizado. Valor inicial de bandeira de ocultamento correspondida é zero. Quando iteração 903 que percorre passo 904-908 é terminada um CG com custo de ajuste mínimo é determinado. Passo de verificação 906 controla os passos adicionais do esquema dependendo se a necessidade de ajuste de coeficientes existe para a camada 0. Se esta necessidade é detectada para pelo menos um dos CGs, bandeira de ocultamento correspondida é alterada para um no passo 908.
[131] Ações seguintes ao passo 903 dependem se camada 0 precisa de ajustes. Se assim for, passos 909 e 910 ajustam todos os CGs necessários exceto o CG com o custo mínimo. Caso contrário, o coeficiente com custo de ajuste mínimo é procurado dentro de todos os CGs (passo 911).
[132] Próximo passo 912 é calcular valor de função de verificação na camada 1 (para a TU). Este valor é verificado 913 por comparar com o valor alvo. Se para o ajuste de TU deve ser realizado passos 914 e 916 ajustam coeficiente com um custo mínimo que é selecionado por DHP da TU. Dependendo do valor de bandeira de ocultamento correspondida, segundo coeficiente deve ser ajustado nos passos 915 e 917. Este ajuste é necessário para corresponder ajustes para camada 1 com ajustes para camada 0.
[133] Se a avaliação de função de verificação de TU 913 tem sucesso e bandeira de ocultamento correspondida não é zero, é possível ajustar um único coeficiente não pertencente a um DHP da TU. Portanto, passos 91, 917 são realizados para esse caso.
[134] Se a avaliação de função de verificação de TU 913 tem sucesso e bandeira de ocultamento correspondida é 0, não há necessidade de ajuste e o procedimento 901 é encerrado (918).
[135] Na descrição acima, é feita referência aos custos de ocultamento resultantes da modificação do conjunto de dados de entrada. No contexto de codificação de vídeo ou imagem, os custos de ocultamento podem ser, por exemplo, determinados por alguma função de custo, que estima ou determina a redução na qualidade da imagem que resulta a partir de uma dada alteração do conjunto de dados de entrada. Essa redução da qualidade de imagem pode ser, por exemplo, estimada usando funções de custo que determinam ou aproximam a taxa de distorção resultante a partir da modificação do conjunto de dados de entrada. Notavelmente, como o cálculo da taxa de distorção pode ser caro em termos de utilização de recursos, pode ser preferível selecionar funções de custo que permitem uma estimativa menos intensiva computacionalmente dos custos, e que só pode fornecer uma estimativa da redução de qualidade.
[136] O processo de decodificação dos dados ocultados poderia ser implementado como segue. O aparelho de decodificação obtém as respectivas unidades de codificação codificadas a partir de um fluxo codificado de dados. À medida que a pilha de padrões de ocultamento de dados desacoplados utilizados pelo aparelho de codificação pode ser estática, configurável ou derivável a partir da estrutura da unidade de codificação codificada (como discutido acima), o aparelho de decodificação tem conhecimento dos padrões de ocultamento de dados e os conjuntos de dados de entrada formam a base das operações de ocultamento de dados no aparelho de codificação. Por conseguinte, o aparelho de decodificação pode simplesmente calcular a função de verificação dos respectivos padrões de ocultamento de dados usando os conjuntos de dados de entrada apropriados. Estes valores de saída de uma função (ões) de verificação representam os dados ocultos restaurados.
[137] No que diz respeito à seleção das funções de verificação para as operações de ocultamento de dados, o único requisito para uma função de verificação é que deve ter um valor de saída único (binário ou não binário) para o conjunto de valores de entrada alvo. O tipo mais comum de uma função de verificação é uma função de verificação de paridade que deriva um valor de saída binário por verificar se a soma de valores alvo de entrada é par ou ímpar. Na lista a seguir são dados alguns exemplos válidos de funções de verificação: - igualdade para zero do resto a partir da divisão de mesmo resultado de função de distância (por exemplo, uma função de soma) por x pertence aos números naturais; - paridade do número de valores zero (ou não zero); e - comparação entre um valor de alguma característica estatística (média, desvio etc.) com um limiar.
[138] Um valor de saída de uma função de verificação pode ser definido como não binário também. Por exemplo: - resto da divisão de algum valor de função de distância (por exemplo, uma função de soma) por x pertence a números naturais, x > 1. Neste caso, um valor de saída de função de verificação é limitado ao intervalo [0, ..., x- 1]; - valor quantificado de alguma característica estatística (média, desvio etc.); e - função de número de elementos dentro de um dado conjunto de valores que satisfazem alguns critérios.
[139] Um processo mais detalhado de decodificar um fluxo de vídeo de acordo com uma modalidade exemplar da invenção é mostrado na Figura 10. Este processo de decodificação é adequado para decodificar um fluxo de vídeo codificado, que foi codificado utilizando o método descrito em ligação com as Figuras 7 e 8 acima. O fluxo de bits de entrada codificado 1001 é processado por um decodificador de entropia 1002. Alguns dos valores decodificados correspondem aos valores absolutos dos coeficientes de transformada quantificados 1005. Estes valores são adicionalmente processados por um de-quantificador. O resultado deste processo são valores absolutos de coeficientes que são adequados para processo de transformada inversa 1004 após os sinais corretos serem atribuídos aos mesmos.
[140] Os sinais dos valores podem ser, por exemplo, explicitamente sinalizados no fluxo de bits de entrada codificado 1001 ou podem ser compreendidos como dados ocultados no seu interior. No primeiro caso, a derivação dos sinais pode ser realizada explicitamente por decodificador de entropia 1002, e no segundo caso implicitamente pela aplicação de DHP apropriado para conjunto correspondente de coeficientes de transformada quantificados. Seletor de DHP 1006 realiza seleção de DHP dependendo dos coeficientes de transformada quantificados disponíveis 1005 fornecidos por um decodificador de entropia 1002. Quando coeficientes são disponíveis apenas para um grupo de coeficientes (CG), seletor de DHP 1006 extrai o valor de sinal (ou valores) para o CG e fornece estes sinais 1008 para obter os valores corretos dos coeficientes para a transformada inversa 1004.
[141] Quando os coeficientes de transformada quantificados são disponíveis para um elemento estrutural maior que poderia compreender mais do que um CG, seletor de DHP 1006 aplica todos os DHPs que poderiam ser aplicados para o dado (sub) conjunto de coeficientes. Dependendo de que DHP é selecionado, valores de saída são despachados pelo comutador de nível 1007. Como foi descrito para sinais de coeficiente 1008, saída de 1007 pode fornecer uma parte dos dados decodificados. Nesse caso, o resto dos dados deve ser decodificado de outra forma. Uma das maneiras mais óbvias é decodificar esta parte explicitamente e restaurá- la usando decodificador de entropia 1002.
[142] Como é mostrado na Figura 10, os dados de saída possíveis para o seletor de DHP 1007 podem ser um ou mais dos seguintes: - sinais de coeficiente 1008; - bandeira para amostras de referência de filtragem 1009 (seu uso é ainda ilustrado pela Figura 12); - modo de intra-previsão 1010; - parâmetros de filtro de loop 1011; e - bits de marca d'água 1012.
[143] No entanto, a Figura 10 dá apenas alguns exemplos dos dados que poderiam ser possivelmente ocultados dentro de coeficientes de transformada quantificados. Possíveis tipos de dados ocultados não são limitadas à lista dada anteriormente.
[144] Depois de coeficientes de transformada serem inversamente transformados, sinal residual é restaurado, que é posteriormente adicionado ao sinal de previsão 1019. Sinal de previsão é gerado usando mecanismos de intra- previsão 1013 ou inter-previsão 1014 dependendo do modo de previsão selecionado. Esta seleção pode ser implementada em uma forma de um comutador 1018. Tanto inter e intra- previsão usam pixels anteriormente decodificados, que são armazenados no buffer de quadro 1017. No entanto, o mecanismo de intra-previsão poderia usar pixels que não foram modificados por um filtro de loop 1015.
[145] Além da aplicação de codificação de vídeo a invenção proposta pode também resolver tarefas adicionais, tal como realizar marca d'água. Seletor de DHP 1006 pode restaurar bits de marca d'água ocultados 1012, e, dependendo do resultado retornado por um validador de marca d'água 1016 para esses bits, quadros de saída são impedidos de sair, como exemplificado pelo comutador 1020. Se validação for bem sucedida, comutador 1020 é "fechado", e imagem de saída 1021 é emitida pelo decodificador. Caso contrário, o comutador 1020 é "aberto", e validador de marca d'água 1016 poderia sinalizar incompatibilidade de marca d'água.
[146] A Figura 11 mostra uma estrutura exemplar de um aparelho de codificação de vídeo de acordo com uma modalidade da invenção. O aparelho de codificação compreende também blocos para decodificação (1112-1115), que poderiam também ser fornecidos separadamente em um aparelho de decodificação, que inclui ainda um decodificador de entropia 1002. O aparelho da Figura 11 pode ser, por exemplo, implementado em um dispositivo de computação de aplicação específica ou de propósito geral (ver Figura 14 e 15). O aparelho de codificação recebe um sinal de vídeo, incluindo quadros/fatias individuais 1102, que deve ser codificado, e produz um fluxo de bits codificado 1110. Um aparelho de decodificação, como mostrado na Figura 15, poderia receber o fluxo de bits codificado 1110 e emitir quadros/fatias de vídeo decodificados para cada quadro/fatia do sinal de vídeo.
[147] O aparelho de codificação inclui um bloco de compensação de estimativa de movimento/movimento 1101, um bloco de decisão de modo 1105, bloco de transformada 1106, quantificador 1107, e codificador de entropia (CABAC) 1109. O bloco de decisão de modo 1105 pode determinar o modo de codificação apropriado para a fonte de vídeo. O bloco de decisão de modo 1105 pode, por exemplo, decidir, se o quadro/fatia sujeito é um quadro/fatia I, P, ou B, e/ou se unidades de codificação específicas dentro do quadro/fatia são inter ou intra-codificadas.
[148] O bloco de transformada 1106 realiza uma transformada nos dados do domínio espacial. Tal transformada do bloco de transformada 1106 pode ser uma transformada à base de bloco para converter os dados do domínio espacial para componentes espectrais. Por exemplo, uma transformada de coseno discreta (DCT) pode ser usada para transformação. Outras transformadas, tal como uma transformada de seno discreta ou outras podem também ser utilizadas. A transformada à base de bloco é realizada em uma unidade de codificação dependendo do tamanho das unidades de codificação. A transformada à base de bloco de um bloco de dados de pixel resulta em um conjunto de coeficientes de transformada como discutido acima. Os coeficientes de transformada são quantificados pelo quantificador 1107. Os coeficientes quantificados e informação lateral associada são então codificados pelo codificador de entropia (CABAC) 1109. Um bloco ou matriz de coeficientes de transformada quantificados pode ser referido como uma unidade de transformada (TU). Em alguns casos, a TU pode ser não quadrada, por exemplo, transformada em quadratura não quadrada (NSQT).
[149] Quadros/fatias intra-codificados (ou seja, tipo I) são codificados sem referência a outros quadros/fatias 1103, e, portanto, não empregam previsão temporal. Quadros intra-codificados (ver bloco 1104) dependem de previsão espacial dentro do quadro/fatia. Ao codificar um determinado bloco de pixels no bloco pode ser comparado com os dados de pixels próximos dentro de blocos já codificados para este quadro/fatia. Utilizando um algoritmo de previsão, os dados de origem do bloco podem ser convertidos em dados residuais. O bloco de transformada 1106, em seguida, codifica os dados residuais.
[150] A intra-previsão é realizada em amostras de referência que são produzidas pelo bloco de geração de amostra de referência 1111. Bloco 1111 pode emitir amostras de referência filtradas ou não filtradas para intra- previsão, e a escolha de qual delas é usada é sinalizada por meio de uma bandeira de filtragem. No exemplo da Figura 11, é assumido exemplarmente que as bandeiras de filtro de amostra de referência são adicionadas como dados ocultados dentro do fluxo de bits de saída 1110. O bloco de ocultamento de bandeira de RSAF 1108 executa uma operação de ocultamento como discutido em ligação com as Figuras 7 e 8, acima, e pode, opcionalmente, também ocultar ainda informações laterais, tais como alguns ou todos os sinais dos coeficientes de transformada obtidos a partir de bloco de transformada 1106 (não mostrado na Figura 11).
[151] Para suportar previsão/compensação de movimento para tirar proveito de previsão temporal, o aparelho de codificação tem um ciclo de loop que inclui um quantificador inverso 1112, bloco de transformada inversa 1113, filtro de desbloqueio 1114, e, opcionalmente, o bloco de deslocamento adaptativo de amostra 1114. O filtro de bloqueio 1114 pode incluir um processador de bloqueio e um processador de filtragem. Elementos 1112-1115 espelham o processo de decodificação implementado por um aparelho de decodificação para reproduzir o quadro/fatia original, como descrito acima. Um armazenamento de quadro (quadros de referência 1103) é usado para armazenar os quadros reproduzidos. Desta maneira, a previsão de movimento é baseada no que serão os quadros reconstruídos 1116 e não nos quadros originais, que podem ser diferentes a partir dos quadros reconstruídos 1116 devido à compressão com perdas envolvida na codificação/decodificação. Compensação de estimativa de movimento/movimento 1101 utiliza os quadros/fatias armazenados no armazenamento de quadro como quadros/fatias de origem por comparação com um quadro atual com a finalidade de identificar blocos semelhantes. Os dados fornecidos por estimativa de movimento/compensação de movimento 1101 podem compreender, como informação lateral, informação sobre o quadro de referência, um vetor de movimento e dados de pixel residuais que representam as diferenças (se alguma) entre o bloco de referência e o bloco atual. O sinal residual forneceu compensação de movimento/estimativa de movimento 1101 a partir de codificação adicional. As informações sobre o quadro de referência e/ou vetor de movimento podem não ser processadas pelo bloco de transformada 1106 e/ou quantificador 1107, mas em vez disso podem ser fornecidas ao codificador de entropia (CABAC) 1109 para codificação como parte do fluxo de bits juntamente com os coeficientes quantificados.
[152] Um aparelho de decodificação pode incluir um decodificador de entropia que inverte a codificação de entropia do lado de codificador assim como blocos 1112-1115 mostrados na Figura 11.
[153] A invenção tem uma ampla gama de aplicações. Como notado acima, um exemplo de uma tal aplicação sinalização de bandeira implícita para filtragem de amostra de referência para intra-previsão ITU-T H.265/HEVC pode ser imaginada como discutido acima. No entanto, como mencionado acima, também outras informações laterais que fazem parte das estruturas de dados geradas durante codificação podem ser ocultadas por meio da invenção. De acordo com ITU T H.265/HEVC, a decisão de se aplicar um filtro passa baixo para amostras de referência é feita de acordo com o modo de previsão selecionado e o tamanho do bloco sendo previsto. Esta decisão pode ser substituída por uma bandeira que poderia ser sinalizada implicitamente dentro de coeficientes de transformada quantificados usando a invenção proposta. Esta modificação é ilustrada na Figura 12.
[154] Além de compressão de mídia, um grande conjunto de casos de uso para esta invenção poderia ser encontrado em aplicações de marca d'água. A Figura 13 representa algumas destas modalidades. O caso de uso mostrado na Figura 13a representa o procedimento de autenticação que consiste na validação de identificadores de um cartão de ID usando dados ocultos que podem ser extraídos através da aplicação de DHPs quer para pixels ou para os coeficientes de transformada quantificados de uma foto digital armazenada neste cartão. Validação pode ser realizada de diferentes maneiras, por exemplo, por calcular um valor de soma de verificação e compará-lo com os dados extraídos. A autenticação falha se incompatibilidade de comparação ocorre. Essa incompatibilidade indica que uma foto digital ou identificadores foram alterados sem autorização. Se a comparação for bem sucedida, a validação deve resultar em autenticação positiva.
[155] A Figura 13b fornece um exemplo de aplicação de detecção de sabotagem. Para esse caso, presume-se que a imagem digital tenha sido preparada para ter dados chave ocultados em seus blocos, por exemplo, em valores de pixel ou coeficientes de transformada. Uma operação de leitura de marca d'água recupera esta chave ocultada dos blocos da imagem utilizando DHP, que é posteriormente validada usando a chave de segurança. O procedimento de validação é o mesmo que para o caso apresentado na Figura 8a, então uma incompatibilidade resulta na detecção de determinados blocos de imagem que foram adulterados.
[156] Outro caso de uso (Figura 13c) assume que é necessário transmitir uma mensagem implícita dentro de uma explícita de tal maneira que é difícil detectar a presença desta mensagem implícita. No exemplo deste caso de uso mostrado na Figura 8c a mensagem implícita é restaurada através da aplicação de DHPs para os valores quantificados durante a decodificação de uma mensagem explícita.
[157] A Figura 14 mostra um diagrama de blocos simplificado de um exemplo de modalidade de um codificador 1400. O codificador 1400 inclui um processador 1401, memória 1402 e uma aplicação de codificação 1406. A aplicação de codificação 1403 pode incluir um programa de computador ou aplicação armazenada na memória 1402 e conter instruções para configurar o processador 1401 para realizar operações, tais como aquelas aqui descritas. Por exemplo, a aplicação de codificação 1403 pode codificar e emitir fluxos de bits codificados em conformidade com um processo de codificação de acordo com as várias modalidades aqui descritas, por exemplo, em ligação com as Figuras 7 e 8 acima. Deve entender-se que a aplicação de codificação 1403 pode ser armazenada em um meio legível por computador. O fluxo de bits de saída pode ser, por exemplo, transmitido através de um sistema de comunicação 1404 ou armazenado em um meio legível por computador.
[158] Referência é agora feita também à Figura 15, que mostra um diagrama de blocos simplificado de um exemplo de modalidade de um decodificador 1500. O decodificador 1500 inclui um processador 1501, uma memória 1502, e uma aplicação de decodificação 1503. A aplicação de decodificação 1503 pode incluir um programa de computador ou aplicação armazenada na memória 1501 e conter instruções para configurar o processador 1501 para realizar decodificação de um fluxo de bits de entrada de acordo com uma das várias modalidades aqui, por exemplo, como descrito em ligação com a Figura 10 acima. Deve entender-se que a aplicação de decodificação 1503 pode ser armazenada em um meio legível por computador. O fluxo de bits de entrada pode ser, por exemplo, obtido através de um sistema de comunicação 1404 ou pode ser lido a partir de um meio legível por computador.
[159] Embora alguns aspectos tenham sido descritos no contexto de um processo, é evidente que estes aspectos representam também uma descrição do aparelho correspondente adequadamente adaptado para executar tal método. Em tais aparelhos um bloco (funcional ou tangível) pode corresponder a um ou mais passos de método ou um recurso de um passo de método. Analogamente, os aspectos descritos no contexto de um bloco ou item ou recurso correspondente de um aparelho correspondente também podem corresponder a passos de métodos individuais de um método correspondente.
[160] Além disso, os métodos aqui descritos podem também ser executados por (ou com) um aparelho de hardware, como processador (es), microprocessador (es), um computador programável ou um circuito eletrônico. Alguns ou mais dos passos mais importantes do método podem ser executados por um tal aparelho. Onde um aparelho foi aqui descrito em termos de blocos funcionais, deve ser ainda entendido que os elementos do aparelho podem ser totalmente ou parcialmente implementados em elementos/circuitos de hardware. Hardware individual, como processador (es) ou microprocessador (es), etc., pode ser utilizado para implementar a funcionalidade de um ou mais elementos do aparelho.
[161] Além disso, onde informação ou dados devem ser armazenados no processo de implementação de um passo de método de elemento funcional de um aparelho em hardware, o aparelho pode compreender meio de armazenamento ou memória, que pode ser comunicativamente acoplado a um ou mais elementos/circuitos de hardware do aparelho.
[162] É também contemplado implementar os aspectos da invenção em hardware ou em software ou uma combinação destes. Isso pode ser usando um meio de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma ROM, uma PROM, uma EPROM, EEPROM ou uma memória flash, tendo sinais de controle eletronicamente legíveis ou instruções armazenadas nos mesmos, que cooperam (ou são capazes de cooperar) com um sistema de computador programável de modo que o respectivo método é realizado. Uma portadora de dados pode ser fornecida que tem sinais ou instruções de controle legíveis eletronicamente, que são capazes de cooperar com um sistema de computador programável, de tal forma que o método aqui descrito é executado.
[163] É também contemplado implementar os aspectos da invenção sob a forma de um produto de programa de computador com um código de programa, o código de programa sendo operativo para executar o método quando o produto de programa de computador é executado em um computador. O código de programa pode ser armazenado em uma portadora legível por máquina.
[164] O acima descrito é meramente ilustrativo, e deve entender-se que modificações e variações dos arranjos e os detalhes aqui descritos serão evidentes para outros especializados na técnica. É a intenção, portanto, ser limitado apenas pelo âmbito das reivindicações iminentes e não pelos detalhes específicos apresentados a título de descrição e explicação acima.

Claims (25)

  1. 6. Método, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que ao realizar os passos (i) a (iii) utilizando um primeiro padrão de ocultamento de dados e um segundo padrão de ocultamento de dados, respectivamente, quando os um ou mais outros valores da unidade de codificação que foram selecionados pelo primeiro padrão de ocultamento de dados e foram modificados no passo (iii), não são modificados no passo (iii) quando executando o segundo padrão de ocultamento de dados.
  2. 7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que o pelo menos um dos valores modificados no passo (iii) para um dos padrões de ocultamento de dados é considerado em vez dos valores originais ao executar os passos (i) a (iii) para outro padrão de ocultamento de dados.
  3. 8. Método de reconstruir valores ocultados a partir de uma unidade de codificação codificada, o método CARACTERIZADO pelo fato de que compreende: fornecer uma pilha em camadas de padrões de ocultamento de dados que foi utilizada por um codificador para ocultar os valores na unidade de codificação codificada, em que cada dos padrões de ocultamento de dados tem uma função de verificação associada; e para cada dos padrões de ocultamento de dados, calcular um resultado da função de verificação de um respectivo dos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir dos outros valores da unidade de codificação não codificada, em que o resultado da função de verificação corresponde a um dos valores ocultos reconstruídos.
  4. 9. Método, de acordo com qualquer uma das reivindicações 1 a 8, CARACTERIZADO pelo fato de que os valores incluídos na unidade de codificação são valores de uma camada hierárquica mais baixa da unidade de codificação, com base em que as funções de verificação dos padrões de ocultamento de dados são calculadas.
  5. 10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que os resultados das funções de verificação dos padrões de ocultamento de dados associados com uma camada que não seja a camada hierárquica mais baixa da unidade de codificação são calculadas utilizando valores selecionados por um respectivo um do padrão de ocultamento de dados a partir de um respectivo subconjunto dos valores da camada hierárquica mais baixa da unidade de codificação.
  6. 11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que um tamanho de um respectivo um do padrão de ocultamento de dados é determinado com base em um tamanho de um subconjunto a partir do qual o resultado da função de verificação do respectivo padrão de ocultamento de dados é calculada.
  7. 12. Método, de acordo com a reivindicação 10 ou 11, CARACTERIZADO pelo fato de que um subconjunto respectivo em uma camada que não seja a camada hierárquica mais baixa compreende os valores da camada hierárquica mais baixa da unidade de codificação que hierarquicamente pertencem a uma unidade de dados organizacional da camada respectiva.
  8. 13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que um número e/ou tamanho de padrões de ocultamento de dados aplicáveis a uma respectiva unidade de dados organizacional da camada respectiva são determinados com base no tamanho de um subconjunto de valores pertencentes à respectiva unidade de dados organizacional da camada respectiva a partir da qual o resultado da função de verificação é calculado.
  9. 14. Método, de acordo com qualquer uma das reivindicações 10 a 13, CARACTERIZADO pelo fato de que um tamanho de um respectivo um dos padrões de ocultamento de dados é igual a um divisor ou o tamanho do subconjunto a partir da qual o resultado da função de verificação do respectivo padrão de ocultamento de dados é calculado.
  10. 15. Método, de acordo com qualquer uma das reivindicações 1 a 14, CARACTERIZADO pelo fato de que os valores da unidade de codificação representam um bloco de pixels de uma imagem, e a unidade de codificação inclui uma ou mais unidades de previsão, uma ou mais unidades de transformada, e um ou mais grupos de coeficientes, em que os padrões de ocultamento de dados são associados com camadas da unidade de codificação correspondente para as unidades de previsão, as unidades de transformada e a unidade de codificação, respectivamente; e cada dos padrões de ocultamento de dados oculta um ou mais valores da camada associada da unidade de codificação.
  11. 16. Método, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que os padrões de ocultamento de dados são associados com camadas da unidade de codificação correspondente aos grupos de coeficientes, as unidades de previsão, as unidades de transformada e a unidade de codificação, respectivamente, em que os grupos de coeficientes são parte de uma camada mais baixa da unidade de codificação.
  12. 17. Método, de acordo com qualquer uma das reivindicações 1 a 16, CARACTERIZADO pelo fato de que as funções de verificação dos padrões de ocultamento de dados são calculadas com base em valores dos grupos de coeficientes.
  13. 18. Método, de acordo com qualquer uma das reivindicações 15 a 17, CARACTERIZADO pelo fato de que os padrões de ocultamento de dados compreendem um ou mais padrões de ocultamento de dados para ocultar uma bandeira de filtragem de amostra de referência para intra-previsão para as unidades de transformada da unidade de codificação.
  14. 19. Método, de acordo com qualquer uma das reivindicações 15 a 18, CARACTERIZADO pelo fato de que os padrões de ocultamento de dados compreendem um ou mais padrões de ocultamento de dados para ocultar pelo menos um de um índice de modo de previsão e um tamanho de unidade de previsão das unidades de previsão.
  15. 20. Método, de acordo com qualquer uma das reivindicações 15 a 19, CARACTERIZADO pelo fato de que os padrões de ocultamento de dados compreendem pelo menos um padrão de ocultamento de dados para incorporação de uma marca d’água na unidade de codificação.
  16. 21. Método, de acordo com qualquer uma das reivindicações 15 a 20, CARACTERIZADO pelo fato de que os padrões de ocultamento de dados compreendem pelo menos um padrão de ocultamento de dados para ocultar os bits de sinal de coeficientes dos grupos de coeficientes.
  17. 22. Método, de acordo com qualquer uma das reivindicações 1 a 14, CARACTERIZADO pelo fato de que os valores da unidade de codificação representam um de um bloco de dados de imagem, um bloco de dados de áudio, e um bloco de um documento a ser codificado.
  18. 23. Método, de acordo com qualquer uma das reivindicações 1 a 22, CARACTERIZADO pelo fato de que um dos valores ocultados permite confirmar autenticidade dos valores incluídos na unidade de codificação.
  19. 24. Aparelho de codificação para ocultar valores de uma unidade de codificação hierarquicamente em camadas em outros valores incluídos na unidade de codificação, CARACTERI ZADO pelo fato de, em que o aparelho de codificação é fornecido com uma pilha em camadas de padrões de ocultamento de dados para ocultar os valores da unidade de codificação dentro de camadas diferentes da unidade de codificação, em que cada dos padrões de ocultamento de dados tem uma função de verificação associada para ocultar um ou mais dos valores da unidade de codificação em uma das camadas da unidade de codificação, o aparelho de codificação compreendendo um processador e um meio de armazenamento de não transitório legível por computador que inclui instruções executáveis por computador executadas pelo processador para realizar, no aparelho, operações que compreendem: (i) calcular a função de verificação de um respectivo dos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação; (ii) determinar se um resultado da função de verificação corresponde a um valor da unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados; e (iii) quando o resultado da função de verificação não corresponde a um valor da unidade de codificação que deve ser ocultado pelo padrão de ocultamento de dados, modificar pelo menos um dos valores selecionados pelo respectivo padrão de ocultamento de dados a partir dos outros valores da unidade de codificação de modo que o resultado da função de verificação no passo (ii) corresponda ao valor da unidade de codificação que deve ser ocultado pelo respectivo padrão de ocultamento de dados; e emitir uma unidade de codificação codificada, a unidade de codificação codificada compreendendo os outros valores da unidade de codificação como modificado no passo (iii) para todos os padrões de ocultamento de dados.
  20. 25. Aparelho de decodificação para reconstruir valores ocultados a partir de uma unidade de codificação codificada, CARACTERIZADO pelo fato de, em que o aparelho de decodificação é fornecido com uma pilha em camadas de padrões de ocultamento de dados que foi utilizada por um codificador para ocultar referidos valores na unidade de codificação codificada, em que cada dos padrões de ocultamento de dados tem uma função de verificação associada; e em que o aparelho de decodificação compreende: um processador e um meio de armazenamento de não transitório legível por computador que inclui instruções executáveis por computador executadas pelo processador para realizar, no aparelho, operações que compreendem: calcular, para cada dos padrões de ocultamento de dados, resultados da função de verificação de um respectivo dos referidos padrões de ocultamento de dados com base nos valores selecionados pelo respectivo padrão de ocultamento de dados a partir de referidos outros valores da unidade de codificação codificada, em que o resultado da função de verificação corresponde a um dos valores ocultados reconstruídos; e emitir a unidade de codificação decodificada compreende, como parte dos dados decodificados, referidos valores ocultados reconstruídos.
  21. 26. Aparelho de decodificação, de acordo com a reivindicação 25, CARACTERIZADO pelo fato de que os valores selecionados pelos respectivos padrões de ocultamento de dados a partir da unidade de codificação codificadas são valores de uma camada hierárquica mais baixa da unidade de codificação.
  22. 27. Aparelho de decodificação, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que as operações compreendem ainda calcular as funções de verificação dos padrões de ocultamento de dados associados com uma camada outra que a camada hierárquica mais baixa da unidade de codificação codificada utilizando valores selecionados por um respectivo um dos padrões de ocultamento de dados a partir de um respectivo subconjunto dos valores da camada hierárquica mais baixa da unidade de codificação.
  23. 28. Aparelho de decodificação, de acordo com a reivindicação 27, CARACTERIZADO pelo fato de que as operações compreendem ainda determinar o tamanho de um do padrão de ocultamento de dados com base no tamanho do subconjunto a partir do qual a função de verificação do respectivo padrão de ocultamento de dados é calculada.
  24. 29. Aparelho de decodificação, de acordo com a reivindicação 27 ou 28, CARACTERIZADO pelo fato de que um subconjunto respectivo em uma camada outra que a camada hierárquica mais baixa compreende os valores da camada hierárquica mais baixa da unidade de codificação que hierarquicamente pertencem a uma unidade de dados organizacional da camada respectiva.
  25. 30. Aparelho de decodificação, de acordo com a reivindicação 29, CARACTERIZADO pelo fato de que as operações compreendem ainda determinar o número e/ou tamanho de padrões de ocultamento de dados aplicáveis a uma respectiva unidade de dados organizacional da camada respectiva com base no tamanho do subconjunto de valores pertencentes à respectiva unidade de dados organizacional da camada respectiva em que a função de verificação é calculada.
BR112016022870A 2014-04-01 2014-04-01 Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas BR112016022870B8 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2014/000236 WO2015152757A1 (en) 2014-04-01 2014-04-01 Methods and apparatus for data hiding in multi-layer structured coding units

Publications (3)

Publication Number Publication Date
BR112016022870A2 BR112016022870A2 (pt) 2017-10-10
BR112016022870B1 true BR112016022870B1 (pt) 2023-03-07
BR112016022870B8 BR112016022870B8 (pt) 2024-01-23

Family

ID=51842739

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016022870A BR112016022870B8 (pt) 2014-04-01 2014-04-01 Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas

Country Status (7)

Country Link
US (2) US10104379B2 (pt)
EP (1) EP3146720B1 (pt)
JP (1) JP6401290B2 (pt)
KR (2) KR102061081B1 (pt)
CN (1) CN106063274B (pt)
BR (1) BR112016022870B8 (pt)
WO (1) WO2015152757A1 (pt)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3254184B1 (en) * 2015-02-05 2023-06-07 Barcelona Supercomputing Center-Centro Nacional de Supercomputación Radix sort method for discovering multiple instances of recurring values within a vector and corresponding computing device and computer program product
MX2018006091A (es) 2015-11-17 2018-11-09 Awei Tech Co Ltd Metodo y aparato para filtracion adaptativa de muestras para codificacion de video.
CA2998468C (en) * 2015-12-23 2021-02-16 Huawei Technologies Co., Ltd. Method and apparatus for transform coding with block-level transform selection and implicit signaling within hierarchical partitioning
CA3014271C (en) * 2016-02-12 2020-10-20 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
RU2707719C1 (ru) 2016-02-12 2019-11-28 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
EP3516871A1 (en) * 2016-10-14 2019-07-31 Huawei Technologies Co., Ltd. Devices and methods for video coding
US11354824B2 (en) 2017-03-23 2022-06-07 Sony Corporation Image processing apparatus and method
CN107040787B (zh) * 2017-03-30 2019-08-02 宁波大学 一种基于视觉感知的3d-hevc帧间信息隐藏方法
EP3668101B1 (en) * 2017-08-10 2024-03-20 Saturn Licensing, LLC Transmission device, transmission method, reception device, and reception method
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
CN108024114B (zh) * 2017-11-23 2020-01-14 华南理工大学 一种基于标志位参数修改的大容量无损hevc信息隐藏方法
JP6959455B2 (ja) * 2018-01-12 2021-11-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 識別子の検証処理
EP4221221A1 (en) * 2019-10-02 2023-08-02 V-Nova International Limited Use of transformed coefficients to provide embedded signalling for watermarking
CN111476703B (zh) * 2020-04-09 2024-04-26 北京印实科技有限公司 一种光学水印的制作方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859920A (en) * 1995-11-30 1999-01-12 Eastman Kodak Company Method for embedding digital information in an image
JP3269014B2 (ja) 1996-12-25 2002-03-25 日本アイ・ビー・エム株式会社 統計的性質を用いたデータ・ハイディング方法及びシステム
JP3137022B2 (ja) 1997-02-24 2001-02-19 日本電気株式会社 動画像エンコード装置
US6456726B1 (en) 1999-10-26 2002-09-24 Matsushita Electric Industrial Co., Ltd. Methods and apparatus for multi-layer data hiding
JP3567975B2 (ja) 2000-01-24 2004-09-22 日本電気株式会社 電子透かし検出・挿入装置
US7231061B2 (en) 2002-01-22 2007-06-12 Digimarc Corporation Adaptive prediction filtering for digital watermarking
JP2004221950A (ja) * 2003-01-15 2004-08-05 Ricoh Co Ltd 画像処理装置、プログラムおよび記憶媒体
SG120173A1 (en) * 2004-08-17 2006-03-28 Sony Corp Methods and apparatus for watermarking digital data
US20090010483A1 (en) * 2007-07-02 2009-01-08 The Hong Kong University Of Science And Technology Block-based lossless data hiding in the delta domain
US8650402B2 (en) * 2007-08-17 2014-02-11 Wong Technologies L.L.C. General data hiding framework using parity for minimal switching
CN101621692B (zh) * 2009-07-27 2011-04-20 宁波大学 一种基于预测模式的h.264/avc视频信息隐藏方法
US8660355B2 (en) * 2010-03-19 2014-02-25 Digimarc Corporation Methods and systems for determining image processing operations relevant to particular imagery
CN102025997A (zh) * 2010-12-22 2011-04-20 中兴通讯股份有限公司 隐藏信息的方法和装置、提取隐藏信息的方法和装置
US9417754B2 (en) * 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
FR2982447A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3644611B1 (en) 2012-01-20 2023-09-06 Velos Media International Limited Multiple sign bit hiding within a transform unit
US9008184B2 (en) 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
US9363512B2 (en) 2012-03-08 2016-06-07 Blackberry Limited Motion vector sign bit hiding
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
CN102685500B (zh) * 2012-05-08 2014-11-12 合肥工业大学 基于信息变长分组结构的h.264大容量信息隐藏方法
EP3506636B1 (en) * 2012-06-15 2020-08-12 BlackBerry Limited Multi-bit information hiding using overlapping subsets
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
WO2014002896A1 (ja) * 2012-06-29 2014-01-03 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法

Also Published As

Publication number Publication date
WO2015152757A1 (en) 2015-10-08
KR20190022920A (ko) 2019-03-06
BR112016022870A2 (pt) 2017-10-10
EP3146720A1 (en) 2017-03-29
EP3146720B1 (en) 2020-09-30
US10104379B2 (en) 2018-10-16
JP2017516368A (ja) 2017-06-15
KR102061081B1 (ko) 2019-12-31
US20170048528A1 (en) 2017-02-16
US10440368B2 (en) 2019-10-08
KR20160138271A (ko) 2016-12-02
US20180343453A1 (en) 2018-11-29
CN106063274B (zh) 2020-02-14
JP6401290B2 (ja) 2018-10-10
CN106063274A (zh) 2016-10-26
KR101953855B1 (ko) 2019-03-04
BR112016022870B8 (pt) 2024-01-23

Similar Documents

Publication Publication Date Title
BR112016022870B1 (pt) Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas
KR102143908B1 (ko) 계층적 분할 내에서 블록 레벨 변환 선택 및 암시적 시그널링을 이용한 변환 코딩을 위한 방법 및 장치
EP3560198B1 (en) Low-complexity sign prediction for video coding
BR112016013761B1 (pt) Método e aparelho para reconstruir blocos de imagem utilizando predição, e meio de armazenamento legível por computador
JP5733590B2 (ja) 変換係数レベルを符号化するコンテキストモデリング技法
US8446301B2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
KR101449435B1 (ko) 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치
BR122015015910A2 (pt) métodos e aparelho para transformar a seleção em codificação e decodificação de vídeo
BR112014005323B1 (pt) Método e dispositivo de derivação de valores de modo de predição de referência e codificação e decodificação de informação representando modos de predição
US11245897B2 (en) Methods and apparatuses for signaling partioning information for picture encoding and decoding
KR20130140190A (ko) 마지막 유효 계수의 위치를 코딩 및 디코딩하는 방법 및 장치
CN110870312A (zh) 用于视频压缩中的帧内编码的方法和设备
KR101739603B1 (ko) 2진 세트들을 인코딩 및 디코딩하기 위해 트리 구조들을 재이용하는 방법 및 장치
KR20180111975A (ko) 스캔 순서 선택을 위한 방법 및 장치
JP6664454B2 (ja) 多層構造化コーディングユニットのデータ隠蔽のための方法および装置
Lasserre et al. Low-complexity intra coding for scalable extension of HEVC based on content statistics
CN118214880A (zh) 在解压缩数据上签名的可编辑视频数据
Ye et al. Feedback-free distributed video coding using parallelized design
CN118214898A (zh) 可编辑签名视频数据
KR20240093352A (ko) 압축 해제된 데이터에 서명된 편집 가능한 비디오 데이터
KR20240093351A (ko) 편집 가능한 서명된 비디오 데이터
JP2024086623A (ja) 非圧縮データ上で署名された編集可能なビデオデータ
Granai et al. Hybrid video coding using bi-dimensional matching pursuit
BR112018008131B1 (pt) Codificador para codificação de uma imagem de fonte, e decodificador e método para decodificar um fluxo de bits de entrada

Legal Events

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 01/04/2014, OBSERVADAS AS CONDICOES LEGAIS

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REFERENTE A RPI 2722 DE07/03/2023, QUANTO AO QUADRO REIVINDICATORIO.