Создание водяных знаков в кодированном информационном наполнении

Иллюстрации

Показать все

Изобретение относится к области техники цифровых водяных знаков и, в частности, к внедрению, удалению/замене и обнаружению цифровых водяных знаков в кодированном информационном наполнении (контенте). Техническим результатом является создание водяных знаков в кодированном информационном наполнении с помощью внедрения водяных знаков в выбранных расположениях в кодированное информационное наполнение без ухудшения его качества. Указанный технический результат достигается тем, что осуществляют прием кодированного информационного наполнения, прием по меньшей мере одного предварительно обработанного комплекта водяного знака и выполнение непосредственной замены некоторого количества битов, начиная с некоторой позиции в кодированном информационном наполнении, альтернативным значением, причем данное альтернативное значение содержит внедренные в него сигналы водяного знака, причем данное альтернативное значение выбирают из множества альтернативных значений, определенных по меньшей мере в одном из указанных комплектов водяных знаков. Также описаны устройство и способ создания комплекта водяного знака, который включает в себя выбор позиции, где значение в кодированном информационном наполнении необходимо заменить альтернативным значением, и вычисление множества альтернативных значений для каждой выбранной позиции. 11 н. и 17 з.п. ф-лы, 4 ил., 6 табл.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение относится к созданию цифровых водяных знаков, а более конкретно - к внедрению, удалению/замене и обнаружению цифровых водяных знаков в кодированном информационном наполнении (контенте).

УРОВЕНЬ ТЕХНИКИ

Кодированное информационное наполнение требует процесса «декодирования» для использования информационного наполнения. Некоторые примеры кодированного информационного наполнения включают в себя форматы MPEG-1 (экспертной группы по вопросам движущегося изображения), MPEG-2, H264/AVC, WMA (звуковых файлов Windows), MPEG4, JPEG2000 (объединенной группы экспертов по машинной обработке фотографических изображений), MP3 (MPEG-1 Audio Layer 3), PDF (формат переносимого документа), Windows Word, Postscript (языка описания страниц) и т.д. и их зашифрованные версии.

Один из способов предшествующего уровня техники для создания водяных знаков в кодированном информационном наполнении состоит во внедрении сигналов водяного знака в структуру и синтаксические элементы. Патент США № 6687384 является примером внедрения данных в синтаксические элементы в кодированном битовом потоке, таком как MPEG-1 и MPEG-2. Такие водяные знаки, однако, не выдерживают изменение формата или цифроаналоговое преобразование.

Другой способ создания водяных знаков в кодированном информационном наполнении предшествующего уровня техники состоит во внедрении водяного знака с помощью добавления искажений к коэффициентам ДКП (динамического косинусного преобразования) для кодированного с помощью MPEG информационного наполнения. Пример этого подхода описан в F. Hartung and B. Girod «Digital Watermarking of MPEG-2 Coded Video in the Bit Stream Domain», Proc. IEEE ICASSP, p. 2621-4, April 1997. Способ Hartung и Girod не использует методики восприятия.

Еще один способ предшествующего уровня техники для создания водяных знаков в кодированном информационном наполнении состоит в непосредственном изменении кодированного информационного наполнения. Патент США 6373960, в дальнейшем «Conover», описывает способ создания водяных знаков в пределах сжатого битового видео потока MPEG с помощью изменения некоторых коэффициентов ДКП таким образом, что длина статистического (энтропийного) кодирования этих коэффициентов остается неизменной после этого изменения. Никакие конкретные способы внедрения водяных знаков не определены в Conover. Способы выбора расположений водяных знаков в Conover ограничены коэффициентами с 0 «серий» нулей. Коэффициенты Conover находятся в высокочастотной области. Способ Conover не включает в себя фазы предварительной обработки, и при этом нет никакого «альтернативного значения» для фактической вставки водяного знака в описанной более поздней фазе. Концепция генерации и использования «комплектов водяного знака» нигде не раскрыта и не преподается в Conover.

У способов предшествующего уровня техники для создания водяных знаков в кодированном информационном наполнении нет блока предварительной обработки для создания «альтернативных значений» для некоторых частей кодированного информационного наполнения. Способы предшествующего уровня техники для создания водяных знаков в кодированном информационном наполнении исключают кодированное информационное наполнение, которое дополнительно маскировано, затемнено, скремблировано или зашифровано (все вместе - «зашифровано»).

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

В настоящем изобретении создают водяные знаки в кодированном информационном наполнении с помощью внедрения водяных знаков в выбранных расположениях в кодированное информационное наполнение. Этого достигают с помощью замены исходных значений в кодированном информационном наполнении их альтернативными значениями. Каждое исходное значение может иметь одно или большее количество альтернативных значений, и каждое альтернативное значение содержит сигнал водяного знака. Кроме того, водяные знаки можно удалять с помощью замены альтернативных значений исходными значениями или с помощью замены одного альтернативного значения другим альтернативным значением.

С помощью выбора одного из альтернативных значений для замены исходного значения в соответствующих расположениях в кодированном информационном наполнении достигаются следующие цели:

- Альтернативные значения имеют размер, идентичный исходному значению, и замена любым одним из альтернативных значений создает кодированное информационное наполнение, совместимое с определенным форматом, и не вводит искажений восприятия в кодированное информационное наполнение.

- Альтернативные значения могут улучшать качество кодированного информационного наполнения. Например, исходное значение может иметь или может не иметь допустимое значение. Другими словами, без замены одним из альтернативных значений кодированное информационное наполнение может не иметь допустимого формата. В другом случае, когда исходное значение является допустимым значением, без замены альтернативным значением исходное значение может приводить к снижению качества кодированного информационного наполнения.

- Каждое альтернативное значение содержит сигналы водяного знака. Эти сигналы водяных знаков или вместе с другими сигналами водяных знаков в других позициях в пределах кодированного информационного наполнения, или сами по себе могут иметь один или большее количество элементов внедренной информации. Элемент информации состоит из одного или большего количества битов.

- Информационный объем альтернативных значений (который определяют с помощью количества данных в альтернативном значении и количества альтернативных значений) должен быть небольшим по сравнению с объемом данных кодированного информационного наполнения.

Одной важной целью непосредственного создания водяных знаков в зашифрованном информационном наполнении является «ограниченное шифрование». Ограниченное шифрование учитывает соответствие между открытым текстом и зашифрованным текстом. Например, блок открытого текста включает в себя компоненты c1, c2... cn. После ограниченного шифрования шифрованный текст состоит из c1', c2',..., cn', где ci' является зашифрованной версией ci (1≤i≤n). Простым примером ограниченного шифрования является разбиение информационного наполнения на части и шифрование каждой части отдельно. Например, в крайнем случае каждый коэффициент или группу коэффициентов шифруют отдельно. Одной из категорий шифрования, которая делает ограниченное шифрование возможным, является выборочное шифрование или частичное шифрование. Вместо обработки информационного наполнения (аудио или видео) как потока двоичных данных (также называют «натуральным шифрованием») способы выборочного шифрования «понимают» синтаксическую структуру информационного наполнения (например, структуру MPEG-2) и выборочно шифруют только некоторые части информационного наполнения. Выборочное шифрование происходит после сжатия. Зашифрованное информационное наполнение не должно иметь коммерческую ценность, хотя часть информационного наполнения может быть видимой. Некоторые схемы выборочного шифрования могут сохранять формат, скорость битового потока и размер кодированного информационного наполнения, которое не зашифровано с помощью выборочного шифрования. Другие схемы выборочного шифрования могут увеличивать скорость битового потока или требовать специального декодера.

Беря информационное наполнение MPEG-2 в качестве примера, простой выборочный алгоритм шифрует только I-кадры. Выборочно зашифрованный поток MPEG может быть допустимым потоком MPEG. Хотя Р- и В-кадры в MPEG-2 бесполезны без знания соответствующих I-кадров, большая часть видеоданных MPEG все равно видима из-за межкадровой корреляции и главным образом из-за незашифрованных I-блоков в Р- и В-кадрах. Другие схемы выборочного шифрования включают в себя шифрование заголовков MPEG-2 и/или шифрование коэффициентов ДКП. Коэффициенты ДКП делятся на «коэффициенты DC» и «коэффициенты АС». Коэффициенты DC являются коэффициентами с нулевой частотой в обоих измерениях, а коэффициенты АС являются остальными коэффициентами с ненулевыми частотами. Все коэффициенты DC или часть значений коэффициентов АС всех I-блоков можно шифровать.

Описывают систему и способ внедрения водяного знака в кодированное информационное наполнение, который включает в себя прием кодированного информационного наполнения, прием предварительно обработанного комплекта водяного знака, который является выводом внешнего блока предварительной обработки, прием последовательности битов, причем последовательность битов содержит полезную информацию водяного знака, и выполнение непосредственной замены некоторого количества битов кодированного информационного наполнения, начиная с позиции с альтернативным значением, причем альтернативное значение имеет внедренный в него сигнал водяного знака, причем альтернативное значение является одним из выбранных из множества альтернативных значений, определенных в комплекте водяного знака, и единственным альтернативным значением, определенным в комплекте водяного знака, причем позиция выбирается в комплекте водяного знака таким образом, что когда альтернативное значение является единственным альтернативным значением, то замену не выполняют, и когда альтернативное значение выбирается из множества альтернативных значений, определенных в комплекте водяного знака, последовательность битов определяет, какое альтернативное значение выбрано.

Дополнительно описаны система и способ внедрения водяного знака в кодированное информационное наполнение, который включает в себя прием кодированного информационного наполнения, прием по меньшей мере одного комплекта водяного знака, прием последовательности битов, причем данная последовательность битов содержит полезную информацию водяного знака, и выполнение одного из этапов: выполняют непосредственную замену некоторого количества битов, начиная с некоторой позиции, альтернативным значением или оставляют неизменными некоторое количество битов, начиная с некоторой позиции, основываясь на значениях битов в последовательности битов полезной информации водяного знака, и причем альтернативное значение имеет внедренные в него сигналы водяного знака. Также описаны система и способ обнаружения водяного знака, который включает в себя прием по меньшей мере одного комплекта водяного знака, прием информационного наполнения, отмеченного водяными знаками, извлечение множества значений коэффициентов из информационного наполнения, отмеченного водяными знаками, и извлечение битовых значений водяного знака из значений коэффициентов.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Настоящее изобретение лучше всего можно понять из последующего подробного описания при его чтении вместе с сопроводительными чертежами. Чертежи включают в себя следующие фигуры, кратко описанные ниже.

Фиг.1 является структурной схемой, которая показывает последовательность операций предварительной обработки для внедрения водяного знака в соответствии с принципами настоящего изобретения.

Фиг.2 показывает комплект водяного знака (КВЗ) настоящего изобретения.

Фиг.3 является последовательностью операций способа обнаружения водяного знака в соответствии с принципами настоящего изобретения.

Фиг.4 является структурной схемой устройства воспроизведения, которое принимает кодированное информационное наполнение, имеющее внедренные в него комплекты водяных знаков.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Процесс создания водяных знаков в кодированном информационном наполнении можно разделить на три отдельных этапа.

• Выбор расположения, что является выбором позиции, где значение в кодированном информационном наполнении можно заменять альтернативными значениями, содержащими сигналы водяного знака.

• Вычисление альтернативных значений, что является определением альтернативных значений так, чтобы у альтернативных значений было то же самое количество битов, как у значения, которое альтернативные значения должны заменять в кодированном информационном наполнении, и такая замена не будет вызывать изменения восприятия информационного наполнения. Кроме того, эти альтернативные значения содержат сигналы водяного знака.

• Внедрение/вставка водяного знака, что является фактической заменой значения в кодированном информационном наполнении одним из альтернативных значений.

Первые два этапа можно предварительно обрабатывать. В результате предварительной обработки создают набор комплектов водяных знаков (КВЗ). КВЗ содержат всю информацию для фактического внедрения/вставки водяного знака. Блок предварительной обработки водяного знака использует кодированное информационное наполнение в качестве входной информации и ключ водяного знака и выводит последовательность комплектов водяных знаков. В случае когда только одно альтернативное значение генерируют для каждого КВЗ, полезная информация водяного знака может стать дополнительной входной информацией для блока предварительной обработки. Эти комплекты водяных знаков интегрируют в окончательное информационное наполнение как метаданные кодированного информационного наполнения, как отдельный канал, мультиплексируемый с информационным наполнением, как стеганографические данные, скрытые в синтаксических элементах или в информационном наполнении, или как отдельный файл, хранящийся на физических носителях (оптическом диске, ленте, накопителе на жестком диске и т.д.) или передаваемый по сети (по протоколу TCP/IP, по спутниковой связи и т.д.).

Полезную информацию водяного знака внедряют с помощью выбора из альтернативных значений в КВЗ. КВЗ имеет по меньшей мере одно альтернативное значение. Когда у каждого КВЗ существует только одно альтернативное значение, существует два способа внедрения/вставки информации водяного знака (полезной информации). Первым способом является внедрение одной фиксированной полезной информации водяного знака с помощью замены всех исходных значений в КВЗ их альтернативными значениями. Второй способ предоставляет возможность внедрения различной полезной информации водяного знака с помощью переключения между заменой или отсутствием замены для КВЗ. Например, замена указывает положительное битовое значение, а отсутствие замены - отрицательное битовое значение. Для внедрения полезной информации водяного знака «00101001» исходные значения в первом и втором КВЗ не заменяют, исходное значение в третьем КВЗ заменяют его альтернативным значением. Для КВЗ с более чем одним альтернативным значением каждое альтернативное значение содержит сигнал водяного знака, который может представлять другой элемент полезной информации водяного знака. Альтернативное значение для замены выбирают, основываясь на полезной информации водяного знака. Например, для внедрения одного бита в КВЗ требуются только два альтернативных значения V1 и V2. Для внедрения битового значения «0» V1 выбирают для замены исходного значения в кодированном информационном наполнении, а для внедрения битового значения «1» выбирают V2. С помощью двух значений V1 и V2 можно выражать бит, равный «0» и «1». Если существует четыре альтернативных значения (V1, V2, V3 и V4), то можно внедрять двухбитовую информацию (т.е. «00», «01», «10» и «11»). С помощью большего количества альтернативных значений в одной позиции можно внедрять больше битов, что позволяет очень эффективно внедрять информацию.

Полезную информацию водяного знака обычно принимают на третьем этапе «вставка водяного знака». Ее можно сохранять или вычислять с помощью компонента, внешнего для системы создания водяных знаков. Полезная информация водяного знака обычно является идентификатором, однозначно определяющим получателя, устройство воспроизведения (изготовителя, номер модели и/или серийный номер) или дату и время воспроизведения информационного наполнения. Для потенциального уменьшения размера КВЗ в КВЗ можно сохранять различие между исходным значением V и его альтернативными значениями. КВЗ можно дополнительно сжимать.

Важно, чтобы КВЗ были защищены от несанкционированного доступа или модификации, потому что с помощью этой информации система создания водяных знаков не только уязвима для различных атак, но также хакеру легко вставить поддельные водяные знаки, или изменить, или удалить существующие водяные знаки. Если КВЗ сохраняют и передают как стеганографические (помеченные водяными знаками) данные, то доступом можно управлять с помощью ключа создания водяных знаков. Если КВЗ сохраняют и передают по какому-нибудь другому каналу, то требуется шифрование КВЗ.

Как указано ранее, первый и второй этапы можно выполнять как предварительную обработку. Таким образом, до третьего этапа кодированное информационное наполнение не отмечено водяными знаками. На третьем этапе выполняют внедрение водяного знака с помощью замены некоторых значений в кодированном информационном наполнении альтернативными значениями, определенными в КВЗ. Эти значения могут быть кодированными синтаксическими элементами, такими как идентификатор пакета, заголовки, таблица квантования, таблица Хаффмана для статистического кодирования, кодированные коэффициенты или кодированные векторы движения. КВЗ определяют, куда внедряют сигналы водяного знака (в альтернативных значениях) и какие возможные сигналы водяного знака могут находиться в этих позициях с помощью выбора соответствующих альтернативных значений.

Фиг.1 является структурной схемой, которая показывает последовательность операций предварительной обработки кодированного информационного наполнения для генерации КВЗ. Фиг.2 показывает комплект водяного знака в соответствии с принципами настоящего изобретения. Каждый КВЗ описывают с помощью вектора (P, L, C, {V}, V1, V2... Vn), где P является позицией исходного значения V, которое можно заменять в будущем альтернативным значением в кодированном информационном наполнении, L - количество битов, занятых исходным значением V в кодированном информационном наполнении, начиная с P, C является набором глобальных позиций коэффициентов (например, квантованных с помощью ДКП или вейвлет-преобразования коэффициентов), которые кодированы в L битах (в кодированном информационном наполнении) с помощью метода статистического кодирования. Статистическое кодирование, такое как кодирование методом Хаффмана, обычно применяют к последней стадии кодирования для создания кодированного информационного наполнения. V1, V2... Vn являются допустимыми альтернативными значениями V, и каждое из таких значений содержит сигнал водяного знака. Каждая позиция коэффициентов представлена c помощью (ch, f, b, co), где ch - индекс канала, f - индекс кадра, b - индекс блока и co - индекс коэффициентов в пределах блока элемента видеоинформации. Альтернативное значение является допустимым, если в случае, когда этим значением заменяют текущее значение, поддерживается согласование форматов и нет никаких воздействий на восприятие информационного наполнения. Кроме того, V1, V2... Vn занимают L битов в кодированном информационном наполнении, так же как V. {V} указывает, что исходное значение является необязательным в процессе внедрения/вставки. Исходное значение может потребоваться в процессах удаления водяного знака.

Исходное значение V может содержать один или большее количество коэффициентов в кодированной форме. Когда КВЗ генерируют, если входной информацией является кодированное информационное наполнение, такое как MPEG-2 или MPEG-4, статистическое кодирование, т.е. кодирование переменной длины (КПД), сначала должно быть «удалено» для доступа к коэффициентам и затем найдена соответствующая позиция и альтернативные значения и сохранены исходный коэффициент и эти альтернативные значения. Альтернативное значение Vi может соответствовать тем же самым коэффициентам, каким соответствует V, но в некоторых случаях Vi может соответствовать большему или меньшему количеству коэффициентов, чем то, которому соответствует V.

Типичный блок 8x8 квантованных коэффициентов ДКП в MPEG-2 показан ниже. Большинство коэффициентов более высокого порядка квантовано в 0.

После зигзагообразного сканирования последовательность коэффициентов ДКП, которые будут передавать, выглядит следующим образом:

Первый коэффициент ДКП (12) посылают через отдельную таблицу Хаффмана. После анализа «серия-уровень» остальные коэффициенты и соответствующие «серии» нулей:

Используя нулевую таблицу коэффициентов ДКП, приведенную ниже и определенную в стандарте MPEG-2, эти коэффициенты кодируют в 6 кодов переменной длины (КПД) следующим образом (в представлении двоичных битов):

Нулевая таблица коэффициентов ДКП MPEG-2 (часть)

Код переменной длины (КПД) «Серия» «Уровень»
10 Конец блока
0001 10 s 1 2
0001 11 s 5 1
0001 01 s 6 1
0001 00 s 7 1
0000 100 s 2 2
0000 01 s Управляющая последовательность
0000 0000 0111 11 s 0 16
(примечание: последний бит 's' в каждом приведенном выше КПД указывает знак «уровня»: '0' для положительного и '1' для отрицательного значения)

Кодирование MPEG2 «серии» и «уровня» после кода управляющей последовательности

Код фиксированной длины «Серия» Код фиксированной длины «Уровень» со знаком
0000 00 0 1000 0000 0000 Зарезервировано
0000 01 1 1000 0000 0001 -2047
0000 10 2 1000 0000 0010 -2046
1111 1111 1111 -1
0000 0000 0000 Запрещено
0000 0000 0001 +1
1111 11 63 0111 1111 1111 +2047

Для простоты чтения указанные выше КПД (которые также называют статистическими кодами) отделены «|». Первый и второй коэффициенты ДКП используют код фиксированной длины для кодирования «серии» и «уровня» согласно таблице «Кодирование MPEG2 «серии» и «уровня» после кода управляющей последовательности», и остальные коэффициенты ДКП кодируют согласно «нулевой таблице коэффициентов ДКП MPEG-2». Последний КПД является специальным кодом «конец блока», указывающим, что остальные коэффициенты в блоке равны 0.

Альтернативное значение может быть любой частью приведенных выше кодированных битов. Например, одно альтернативное значение может состоять из части КПД, одного или большего количества последовательных КПД или одного КПД плюс часть следующего КПД.

В следующем примере КВЗ альтернативное значение состоит из одного КПД, который является 5-м КПД:

(Р0+71, 7, С, 0001010, 0001110, 0001100, 0001000)

Каждый элемент в этом КВЗ объясняют следующим образом:

• Р0 является исходной позицией этого блока в кодированном информационном наполнении. «63» - относительная позиция (в битах) от начала этого блока, 7 указывает длину L, С состоит из 7 коэффициентов следующим образом:

с (f, ch, b, 7), с (f, ch, b, 8)... с (f, ch, b, 13), где f - индекс текущего кадра, ch - индекс текущего канала и b - индекс текущего блока в примере.

• размер альтернативного значения равен 7 битов, т.е. L=7.

• 0001010 является исходным значением (V), существует три альтернативных значения: 0001110 (VI), 0001100 (V2) и 0001000 (V3). Эти альтернативные значения кодируют как следующие значения «серии» и «уровня» (обращаясь к нулевой таблице коэффициентов ДКП MPEG2) соответственно:

0001110: «серия»=5, «уровень»=1

0001100: «серия»=1, «уровень»=2

0001000: «серия»=7, «уровень»=1

Пара «серия» (R) и «уровень» (L) представляет последовательность чисел, которая начинается с R нулей, за которыми следует L. Например, пара «серия-уровень» (5, 3), т.е. «серия»=5 и «уровень»=3, представляет 000003. Таким образом, приведенные выше альтернативные значения представляют следующие коэффициенты перед статистическим кодированием:

0 0 0 0 0 1 («серия»=5, «уровень»=1)

0 2 («серия»=1, «уровень»=2)

0 0 0 0 0 0 0 1 («серия»=7, «уровень»=1)

Поскольку 5-й КПД является последним КПД, кодирующим ненулевые коэффициенты в этом блоке, альтернативные значения не обязательно соответствуют тем же самым коэффициентам, кодированным с помощью V. В случае V2 и V3 вместо кодирования семи коэффициентов в V1 V2 кодирует только 2 коэффициента и V3 кодирует 8 коэффициентов.

Если первое альтернативное значение в примере КВЗ выбирают с помощью вставки водяного знака на этапе 3, то этот блок будет заменен следующими квантованными коэффициентами ДКП:

Другой пример кодированного информационного наполнения - информационное наполнение, кодированное с помощью H.264 (MPEG4 profile 10). Существуют несколько главных различий в статистическом кодировании между MPEG-2 и H264, которые включают в себя:

• H.264 поддерживает оба и CAКПД (контекстно-адаптивное кодирование переменной длины), и CABAC (контекстно-адаптивное двоичное арифметическое кодирование).

• Вместо блока ДКП 8x8 в MPEG2 в H.264 можно также использовать блок ДКП 4x4.

• В отличие от AКПД (адаптивного кодирования переменной длины) в MPEG-2 CAКПД использует меньшие таблицы КПД с помощью кодирования «уровней» и «серий» отдельно.

• Вместо фиксированных таблиц КПД в MPEG-2 таблицы КПД можно переключать в соответствии с контекстной информацией.

Из-за основанного на контексте статистического кодирования в H.264 тяжелее, чем в MPEG-2, предсказывать кодированное значение после изменения коэффициента. Однако можно вынудить кодер H.264 уменьшать такое основанное на контексте кодирование во время кодирования. Например, кодер может использовать фиксированную таблицу NumTrail (например, таблицу NumTrail 0) вместо таблицы NumTrail, основанной на определенных свойствах соседних блоков. Другим примером является использование кода фиксированной длины xxxxyyy для кодирования количества не нулей (NumCoeff) и количества последних единиц (T1) для квантованного блока ДКП 4x4, где xxxx предназначено для кодирования количества не нулей (0-16), и yy - для кодирования количества последних единиц (0... 3). Можно также вынудить кодер использовать только блоки 4x4. В последующем примере некоторые из приведенных выше правил применяют для кодирования блока 4x4.

1. 4x4 квантованные коэффициенты ДКП:

После зигзагообразного сканирования коэффициенты в этом блоке: 0 3 0 1 -1 -1 0 1 0... 0

2. Кодирование CAКПД состоит из следующих пяти этапов:

a. Кодируют количество не нулей (NumCoeff) и количество последних единиц (T1): (5,3). Максимальное количество T1 ограничено 3. Эти два числа (NumCoef и T1) кодируют в биты «0001011» при использовании таблицы Хаффмана 17x4 (см. ниже) (NumCoef: 0-16, T1: 0-3).

Таблица Хаффмана 17х4 NumTrail

b. Кодируют знаки последних единиц в обратном порядке, если они существуют (0 для положительного и 1 для отрицательного): 0,1,1.

c. Кодируют остальные ненулевые коэффициенты в обратном порядке: 1,3. Ненулевые коэффициенты кодируют как «1» с помощью таблицы «уровня» КПД 0, и «0010» с помощью таблицы «уровня» КПД 1 соответственно.

Таблица «уровня» КПД 0 Таблица «уровня» КПД 1

d. Кодируют общее количество нулей (TotalZeros) с начала до последнего ненулевого коэффициента. Максимальные общее количество нулей равно 16 - NumCoeff. Если NumCoeff равно 16, то TotalZeros должно быть 0. Если NumCoeff равно 0, то никакого дополнительного кода не требуется, т.е. заканчивают кодирование для этого блока. Для остальных 15 случаев в каждом случае используют таблицу Хаффмана для кодирования TotalZeros (см. таблицу TotalZero). В этом случае TotalZeros равно 3, что кодируют как «1110» с помощью таблицы TotZeros [NumCoeff=5].

Таблица TotZeros

e. Кодируют позиции всех нулей с начала до последних ненулевых коэффициентов. В данном случае позиции всех нулей кодируют в «001101».

Окончательные кодированные биты для этого блока 4x4 содержат 25 битов: 0001011 | 011 | 10010 | 1110 | 001101. Одним из примеров альтернативных значений являются кодированные биты всего кодированного блока 4x4. Другим примером альтернативного значения могут быть биты, кодирующие знаки последних единиц, как описано в приведенном выше этапе c). В таком случае при изменении альтернативного значения изменяют только знак последних единиц и поэтому не изменяют всю битовую длину кодированного блока.

Еще одним примером кодированного информационного наполнения является изображение в формате JPEG2000. Вместо преобразования ДКП в JPEG2000 используют дискретное вейвлет-преобразование (ДВП). ДВП состоящего из пикселей изображения вычисляют с помощью последовательного применения по вертикали и по горизонтали низкочастотного и высокочастотного фильтров к пикселям изображения, где результирующие значения называют «вейвлет-коэффициентами». Вейвлет является колеблющейся волной, которая сохраняется только в течение одного или нескольких циклов. При каждой итерации фильтрованные только по низкой частоте вейвлет-коэффициенты предыдущей итерации уменьшают в 10 раз, затем они проходят через низкочастотный и высокочастотный фильтр по вертикали, и результаты этого процесса передают через низкочастотный и высокочастотный фильтр по горизонтали. Результирующий набор коэффициентов группируют в четыре «поддиапазона», а именно поддиапазоны LL, LH, HL и HH. Каждая итерация соответствует определенному «слою», или «уровню», коэффициентов. Первый уровень коэффициентов соответствует самому высокому уровню разрешения изображения, в то время как последний уровень соответствует самому низкому уровню разрешения. Одним из примеров альтернативного значения для кодированного с помощью JPEG2000 изображения является кодированный поддиапазон LL на определенном уровне (например, при самом низком разрешении).

Простой способ создания КВЗ состоит в использовании «метода проб и ошибок» с помощью выполнения следующих этапов для каждого КВЗ:

a) Для каждого статистического кода (например КПД в MPEG2) случайно выбирают значение в качестве кандидата на альтернативное значение.

b) Определяют, имеет ли этот кандидат допустимое значение, с помощью проверки соответствия формата после заменены этим кандидатом существующего значения. Если нет, то возвращаются на этап a).

c) Проверяют изменение восприятия после замены существующего значения этим кандидатом. Если изменение восприятия является приемлемым, то записывают этот кандидат в качестве альтернативного значения для КВЗ. Иначе возвращаются на этап a).

Приведенные выше этапы повторяют до тех пор, пока все необходимые КВЗ не будут созданы.

В одном из вариантов осуществления КВЗ можно создавать с помощью системы создания водяных знаков, которую перестают использовать, которая работает в области преобразования. Сначала с помощью выбранной системы создания водяных знаков создают две копии с водяными знаками (A и B, обе в кодированной форме) исходного кодированного информационного наполнения с двумя различными копиями полезной информации: первая копия содержит полезную информацию водяного знака, в которой каждый бит равен «1», и другая копия содержит полезную информацию водяного знака, в которой каждый бит равен «0». Этапы 1 и 2 (см. фиг.1) можно выполнять следующим образом для выбора и создания КВЗ с помощью сканирования A и B до тех пор, пока следующие условия не будут выполняться:

• (Выбор расположения) P1a и P2a являются начальной позицией и конечной позицией множества последовательных кодированных коэффициентов (их позиции до статистического кодирования будут отмечены как C) в кодированном информационном наполнении A, P1b и P2b являются начальной позицией и конечной позицией тех же самых кодированных коэффициентов в кодированном информационном наполнении B, и (P2b-P2a) и (P1b-P1a) должны быть равны (и равны длине L), и

• (Вычисление альтернативных значений) Предполагают, что по меньшей мере один бит полезной информации водяного знака необходимо внедрять в кодированные коэффициенты (и в A, и в B). Записывают один комплект водяного знака (P, L, C, V, V1, V2) следующим образом:

P=P1a, L=P2a-P1a, V не доступен в данном случае, V1 является значением от позиции P1a до P2a в A, и V2 является значением от позиции P1b до P2b в B.

• Для выбора N комплектов водяного знака повторяют приведенный выше второй этап.

В альтернативном варианте осуществления бит полезной информации водяного знака кодируют как взаимозависимость между двумя выбранными квантованными коэффициентами на средней частоте. С помощью сканирования кодированного информационного наполнения может быть описан комплект водяного знака (P, L, C, V, V1, V2... Vn), и его расположение может быть определено с помощью следующих условий:

• V содержит множество последовательных кодированных коэффициентов и существует по меньшей мере одна взаимозависимость (вид/категория взаимозависимостей определяют предварительно) между и/или среди этих коэффициентов. Например, если C1, C2 являются двумя последовательными кодированными коэффициентами и существует взаимозависимость C1>C2+T, где T является пороговым значением, которое можно использовать для корректировки степени взаимозависимости, что в свою очередь определяет надежность водяного знака.

• Согласно модели восприятия системы создания водяных знаков коэффициенты можно изменять для установки другой взаимозависимости без изменения восприятия информационного наполнения. Например, C1 и C2 можно изменять на C1' и C2', соответственно так, чтобы была сформирована обратная взаимозависимость, т.е. C1'<C2'. Записывают новое значение, содержащее C1' и C2' в качестве альтернативного значения Vi (1<=i<=n). Этот этап повторяют до тех пор, пока все альтернативные значения не будут найдены.

• Для выбора N комплектов водяного знака повторяют приведенные выше этапы. В идеале первые N комплектов водяного знака, содержащие большинство коэффициентов, выбирают так, чтобы большинство взаимозависимостей можно было потенциально устанавливать в пределах каждого комплекта водяного знака. В эталонной системе создания водяных знаков одна взаимозависимость может представлять один бит полезной информации водяного знака, поэтому комплект водяного знака с самыми большими взаимозависимостями может иметь самую высокую возможность внедрения большего количества битов полезной информации водяного знака.

В еще одном примере системы создания водяных знаков бит полезной информации водяного знака кодируют как взаимозависимость между значениями свойств двух наборов пикселей, или коэффициентов ДКП/вейвлет-коэффициентов. Типичные примеры свойств включают в себя среднее значение сигнала яркости, среднее значение гистограммы распределения цветов или энергию в определенном поддиапазоне частот.

Одним из принципов настоящего изобретения является предварительная обработка кодированного информационного наполнения и генерация альтернативных значений, содержащих сигналы с водяными знаками. Эти альтернативные значения будут позже использоваться для замены явным образом определенных частей кодированного информационного наполнения. Хотя существующие системы создания водяных знаков можно применять к предварительной обработке (т.е. к этапам 1 и 2) и к фактической вставке (к этапу 3), новые алгоритмы создания водяных знаков можно разрабатывать конкретно для этой схемы.

Простым и универсальным способом обнаружения водяного знака является корреляция текущего коэффициента в информационном наполнении с водяными знаками с альтернативными значениями КВЗ для поиска альтернативного значения, имеющего лучшее соответствие с текущим коэффициентом. Для выполнения такой корреляции альтернативные значения необходимо декоди