KR101305752B1 - 저 왜곡 멀티미디어 워터마킹 기술 - Google Patents

저 왜곡 멀티미디어 워터마킹 기술 Download PDF

Info

Publication number
KR101305752B1
KR101305752B1 KR1020137000108A KR20137000108A KR101305752B1 KR 101305752 B1 KR101305752 B1 KR 101305752B1 KR 1020137000108 A KR1020137000108 A KR 1020137000108A KR 20137000108 A KR20137000108 A KR 20137000108A KR 101305752 B1 KR101305752 B1 KR 101305752B1
Authority
KR
South Korea
Prior art keywords
node
binary
component
nodes
parity
Prior art date
Application number
KR1020137000108A
Other languages
English (en)
Other versions
KR20130018368A (ko
Inventor
오스카 치 림 오
리차드 육 밍 리
Original Assignee
웡 테크놀러지스 엘.엘.씨.
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 웡 테크놀러지스 엘.엘.씨. filed Critical 웡 테크놀러지스 엘.엘.씨.
Publication of KR20130018368A publication Critical patent/KR20130018368A/ko
Application granted granted Critical
Publication of KR101305752B1 publication Critical patent/KR101305752B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32203Spatial or amplitude domain methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32203Spatial or amplitude domain methods
    • H04N1/32229Spatial or amplitude domain methods with selective or adaptive application of the additional information, e.g. in selected regions of the image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32203Spatial or amplitude domain methods
    • H04N1/32256Spatial or amplitude domain methods in halftone data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3233Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3269Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs
    • H04N2201/327Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs which are undetectable to the naked eye, e.g. embedded codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

저 왜곡 이미지 워터마킹을 위한 시스템 및 방법론이 제공된다. 복수의 픽셀 및/또는 이미지의 영역 사이의 패리티 관계는 이미지에 삽입되는데 필요한 토글링의 양을 줄이기 위해 기술된 바와 같이 레버리지(leverage)될 수 있기 때문에, 워터마크 효율을 향상시키고, 워터마크 이미지에 도입되는 시각적 아티팩트(artifact)를 줄일 수 있다. 블록 중첩 패리티 검사(Block-Overlapping Parity Check: BOPC) 알고리즘, 샴페인 피라미드 패리티 검사(Champagne Pyramid Parity Check: CPPC) 알고리즘 및 트리 기반 패리티 검사(Tree-Based Parity Check: TBPC) 알고리즘을 포함한, 패리티 관계를 레버리지하기 위한 여러 가지 알고리즘이 기술된다.

Description

저 왜곡 멀티미디어 워터마킹 기술{MULTIMEDIA WATERMARKING TECHNIQUES WITH LOW DISTORTION}
본 출원은, “저 왜곡 멀티미디어 워터마킹 기술(MULTIMEDIA WATERMARKING TECHNIQUES WITH LOW DISTORTION)”이라는 명칭으로 2007년 4월 4일에 출원한 미국 임시 출원 번호 제60/907,513호의 우선권을 주장한다.
본 발명은 개괄적으로 이미지 처리(image processing)에 관한 것이며, 좀더 자세하게는 이미지에 워터마크 정보(watermark information)를 삽입(embed)하기 위한 기술에 관한 것이다.
멀티미디어 어플리케이션(multimedia application)이 대중적으로 됨에 따라, 그리고 인터넷 및 무선 기술과 관련된 기술이 진보함에 따라, 이미지와 같은 디지털 미디어의 사용은 급격히 증가해왔다. 예를 들면, 수많은 이미지가 월드 와이드 웹(World Wide Web)을 통해 접근 가능하다. 하지만, 이러한 디지털 이미지의 접근 가능성(accessibility) 때문에, 이들은 쉽게 다운로드되고, 의도되지 않은 목적으로 권한없는 사용자(unauthorized user)에게 사용될 수 있다. 그 결과, 이미지에 랜덤 시퀀스(random sequence) 또는 로고(logo)등의 정보를 숨김으로써 디지털 미디어의 소유권(ownership) 및 신뢰성(authenticity)을 증명하기 위해 디지털 워터마킹 기술(digital watermarking technique)이 종종 사용된다.
이미지의 워터마크의 안정성을 향상시키기 위해, 워터마크는 이미지에 지각적으로(perceptually) 명백하고(transparent) 강력한(robust) 방식으로 삽입되어야 한다는 것을 알 수 있다. 하지만, 대부분의 기존 이미지 워터마킹 기술은 손실이 많고, 삽입 과정에서 호스트 이미지(host image)의 영구적인 왜곡을 가져오며, 이러한 왜곡은 호스트 이미지에 영구적인 피크 신호 대 잡음비(peak signal-to-noise ratio: PSNR) 손실을 초래한다. 그 결과, 많은 기존의 워터마킹 기술은 삽입 왜곡에 민감하고 신호 충실도(fidelity)의 영구적인 손실을 금하는 의료, 군사, 및/또는 어플리케이션에 적용될 수 없었다. 따라서 이러한 어플리케이션을 위한 손실 없는(lossless) 가역적인(reversible) 워터마킹 체계, 즉, 원래의 호스트 신호가 호스트 신호로부터 워터마크를 추출함으로써 완벽히 복구될 수 있는 워터마킹 체계가 요구된다. 가역적인 워터마킹을 위한 알고리즘은 제안되었었지만, 이러한 알고리즘의 페이로드(payload)는 손실이 많은 워터마킹 알고리즘에 의해 성취 가능한 페이로드에 비해 매우 작다.
게다가, 오직 검은 픽셀 및 흰 픽셀을 포함하는 흑백 하프톤 이미지(black-and-white halftone image)를 사용하는 책, 잡지, 신문, 프린터 출력물, 및 팩스 문서와 같은 어플리케이션의 특정한 예에서, 저작권 보호 및/또는 인증(authentication)의 목적을 위해 종종 회사 로고와 같은 가치부가적 비가시성 데이터(value-adding invisible data)를 숨기는 것이 바람직하다. 하지만, 대부분의 기존 데이터 숨김 알고리즘은 이러한 및/또는 비슷한 하프톤 신호(halftone signal)에 데이터를 삽입하는데 쉽게 적용될 수 없었다.
상기의 측면에서, 디지털 이미지를 위한 효율적이면서 고(高) 페이로드의 워터마킹 기술의 필요성이 있다.
이하에서는 본 발명의 몇몇 측면들의 기본적인 이해를 제공하기 위한 단순화된 요약을 제시한다. 이하의 요약은 본 발명의 광범위한 개요가 아니다. 또한 이하의 요약은 본 발명의 중요 또는 핵심 요소들을 밝히거나 본 발명의 범위를 묘사하기 위한 것이 아니다. 이하의 요약은 단지 후술하는 상세한 설명의 서문으로서 본 발명의 몇몇 개념들을 단순화된 형태로 제시하기 위한 것이다.
본 발명은 하프톤(halftone) 이미지의 저(低) 왜곡 워터마킹을 위한 시스템 및 방법론을 제공한다. 일 측면에 따르면, 이미지의 복수의 픽셀 및/또는 영역 간의 패리티(parity) 관계는 이미지에 워터마크를 삽입하는데 필요한 토글링(toggling)의 양을 줄이기 위해 레버리지(leverage)될 수 있다. 그 때문에, 워터마크의 효율이 향상되고 워터마킹된 이미지 내에 도입되는 시각적 아티팩트(visual artifact)를 줄인다.
일 예에서, 블록 중첩 패리티 검사(Block-Overlapping Parity Check: BOPC) 알고리즘은, 이러한 기존의 알고리즘 사용하여 워터마킹된 이미지의 시각적 질(visual quality)을 향상시키기 위해 데이터 숨김 스마트 쌍 토글링(Data Hiding Smart Pair Toggling: DHSPT)과 같은 기존의 하프톤 이미지 데이터 숨김 알고리즘을 확장하기 위해서 사용될 수 있다. 호스트 이미지에 대한 블록 중첩 패리티 검사의 다양한 특성을 결정하고 레버리지함으로써, DHSP 및/또는 비슷한 기존의 데이터 숨김 알고리즘에 요구되는 쌍 토글링 동작의 수는 감소될 수 있다.
다른 예에서, 샴페인 피라미드 패리티 검사(Champagne Pyramid Parity Check: CPPC) 알고리즘 및/또는 트리 기반 패리티 검사(Tree-Based Parity Check: TBPC) 알고리즘은 기존의 가역적인 워터마킹 기술에 의해 처리되는 이미지의 시각적 질을 향상시키기 위해 사용될 수 있다. 계층적 구조(hierarchical structure)로써 호스트 이미지에 데이터 삽입을 위한 후보 사이트(candidate site)를 제시함으로써, CPPC 알고리즘 및/또는 TBPC 알고리즘은 워터마크 삽입 과정 동안에 요구되는 픽셀 변동(pixel change)의 총 수를 줄일 수 있다. 그 때문에, 효율이 향상되고, 워터마킹된 이미지에 도입되는 왜곡을 줄일 수 있다.
이하에서는, 상기 및 관련 목적을 달성하기 위하여, 본 발명의 몇몇 예시적인 측면이 상세한 설명 및 첨부된 도면을 참조로 설명된다. 그러나 이들 측면들은 본 발명이 원칙이 적용될 수 있는 다양한 방법들 중 몇몇만을 지시하는 것이며, 본 발명은 모든 측면 및 그 균등물을 포함한다. 본 발명의 다른 이점 및 새로운 기능들이 도면을 참조하여 후술하는 상세한 설명으로부터 명백해질 수 있다.
도 1은 여러 가지 측면에 따라 이미지를 처리하고 통신하기 위한 시스템의 상위 블록도이다.
도 2 내지 도 3은 여러 가지 측면에 따라 이미지에 정보를 삽입(embedding)하기 위한 각 시스템의 블록도이다.
도 4는 본 명세서에 기술된 여러 가지 측면에 따라 하프톤 이미지에 데이터를 숨기기 위한 예시적인 기술을 수행하기 위한 시스템의 블록도이다.
도 5 내지 도 6은 본 명세서에 기술된 하나 이상의 데이터 숨김 기술과 관련하여 수행될 수 있는 예시적인 맵핑(mapping) 동작을 도시하는 도면이다.
도 7 내지 도 8은 본 명세서에 기술된 하나 이상의 데이터 숨김 기술과 관련하여 수행될 수 있는 예시적인 버블 형성(bubble formation) 동작을 도시하는 도이다.
도 9는 본 명세서에 기술된 하나 이상의 데이터 숨김 기술과 관련하여 수행될 수 있는 예시적인 토글링(toggling) 동작을 도시하는 도이다.
도 10은 본 명세서에 기술된 여러 가지 측면에 따라 이미지에 이진 로고(binary logo)를 삽입하기 위한 예시적인 기술을 구현한 시스템의 블록도이다.
도 11 내지 도 13은 본 명세서에 기술된 하나 이상의 데이터 삽입 기술과 관련하여 사용될 수 있는 예시적인 데이터 구조를 도시하는 도이다.
도 14 내지 도 15는 본 명세서에 기술된 하나 이상의 데이터 삽입 기술과 관련하여 수행될 수 있는 예시적인 갱신(update) 및 토글(toggle) 동작을 도시하는 도면이다.
도 16은 본 명세서에 기술된 여러 가지 측면에 따라 이미지의 워터마킹(watermarking)을 용이하게 하는 시스템의 블록도이다.
도 17은 본 명세서에 기술된 하나 이상의 워터마킹 기술을 위해 사용될 수 있는 예시적인 데이터 구조를 도시하는 도이다.
도 18 내지 도 19는 본 명세서에 기술된 하나 이상의 워터마킹 기술과 관련하여 수행될 수 있는 각 동작을 도시하는 도이다.
도 20 내지 도 23은 이미지에 워터마크(watermark) 정보를 삽입하기 위한 각 방법의 순서도이다.
도 24는 본 명세서에 기술된 여러 가지 측면이 기능할 수 있는 예시적인 동작 환경의 순서도이다.
도 25는 본 명세서에 기술된 여러 가지 측면이 기능할 수 있는 예시적인 네트워크 컴퓨팅 환경의 순서도이다.
본 발명이 도면을 참조로 지금 기술된다. 도면을 통틀어 유사 컴포넌트를 참조하기 위해 유사 참조 번호가 사용된다. 설명의 목적을 위한 아래의 기술에서 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 하지만, 본 발명이 이러한 특정 세부 사항 없이도 실시될 수 있다는 것은 명확하다. 다른 예에서, 잘 알려진 구조 및 장치가 본 발명의 기술을 용이하게 하기 위해 블록도의 형태로 보여진다.
본 명세서에 있어서, "컴포넌트(component)", "시스템" 등의 용어는 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어와 같은 컴퓨터 관련 엔티티(entity)를 지칭하는 것으로 의도된다. 예를 들면, 컴포넌트는, 프로세서에서 수행되는 프로세스, 프로세서, 객체(object), 실행 파일(executable), 실행 스레드(thread), 프로그램, 및/또는 컴퓨터일 수 있으나 이에 한정되는 것은 아니다. 예시적으로, 서버에서 수행되는 어플리케이션(application) 및 서버가 모두 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행 스레드에 위치할 수 있고, 컴포넌트는 하나의 컴퓨터에 배치될 수 있고/있거나 둘 이상의 컴퓨터에 분배될 수 있다. 또한, 본 발명에 따른 방법 및 장치, 또는 그것의 특정 측면이나 부분은 플로피 디스켓, CD-ROM, 하드 드라이브 또는 다른 기계 판독 가능한 저장 매체와 같은 유형 매체에 포함되는 프로그램 코드(즉, 명령)의 형태를 취할 수 있다. 프로그램 코드가 컴퓨터와 같은 기계에 의해 로드(load)되고 실행될 때, 기계는 본 발명을 실시하기 위한 장치가 된다. 컴포넌트는 하나 이상의 데이터 패킷(예컨대, 로컬 시스템, 분산 시스템, 및/또는 인터넷 등 신호를 통한 다른 시스템들과의 네트워크를 통해 다른 컴포넌트와 상호 작용하는 컴포넌트로부터의 데이터)을 가지는 신호와 관련하는 등의 로컬 및/또는 원거리 프로세스를 통해 통신할 수 있다.
도면을 참조하면, 도 1은 본 명세서에 기술된 여러 가지 측면에 따라 이미지를 처리하고 통신하기 위한 시스템(100)의 상위 블록도이다. 일 실시예에서, 시스템(100)은 호스트 이미지(102) 내에 워터마크(104)를 삽입함으로써 호스트 이미지(102)로부터 워터마킹된 이미지(120)를 생성할 수 있는 워터마킹 컴포넌트(110)를 포함한다. 워터마크(104)는 외부 출처로부터 워터마킹 컴포넌트(110)로 제공되는 것처럼 시스템(100)에 도시되었지만, 워터마킹 컴포넌트(110)에 의해 내부적으로 생성될 수도 있다는 것이 인식되어야 한다. 더불어, 시스템(100)은 2차원 이미지의 워터마킹을 도시하였지만, 워터마킹 컴포넌트(110)는 3 공간 차원 내 객체의 그래픽 표현(graphical representation) 및/또는 개별적인 지속시간을 갖는 일련의 2차원 비디오 프레임(video frame)을 포함하는 비디오 시퀀스(video sequence)와 같은 3차원 이상의 데이터를 수신할 수 있다는 것이 인식되어야 한다. 이러한 예에서, 워터마킹 컴포넌트(110)는 일련의 호스트 이미지(102)로서 호스트 신호의 개별적인 2차원 단면 또는 프레임을 처리할 수 있다. 그리고 워터마킹 컴포넌트(110)는 상응하는 워터마킹된 이미지(120)를 생성하기 위해 호스트 이미지(102)로 하나 이상의 워터마크(104)를 삽입할 수 있다.
일 측면에 따르면, 워터마킹 컴포넌트(110)는 하프톤(halftone) 호스트 이미지(102)로 이진(binary) 워터마크(104)를 삽입하기 위해 이용될 수 있다.본 명세서 및 종래 기술에서 일반적으로 하프톤 이미지는 이미지의 모든 픽셀이 각각 이진 숫자 "0" 및 "1"로 표시될 수 있는 두 가지 가능한 픽셀값(예컨대, 흑 또는 백) 중에 하나를 가지도록 생성된다. 이러한 이미지는 책, 찹지, 신문, 프린터 출력물, 팩스 문서 등 멀티톤(mulititone) 그레이스케일(grayscale) 이미지를 표시하는데 널리 사용된다. 많은 기존 데이터 숨김 기술은 멀티톤 이미지를 위해 설계되고 따라서 하프톤 이미지에 적용될 수 없다. 이러한 한계를 극복하기 위해서, 워터마킹 컴포넌트(110)는, 하프톤 호스트 이미지(102)에 워터마크 데이터를 삽입하기 위한, 블록 중첩 패리티 검사(Block-Overlapping Parity Check: BOPC), 샴페인 피라미드 패리티 검사(Champagne Pyramid Parity Check: CPPC), 트리 기반 패리티 검사(Tree-Based Parity Check: TBPC) 등 하나 이상의 알고리즘을 실행할 수 있다. BOPC, CPPC, 및 TBPC 알고리즘은 아래에 세부적으로 기술된다.
다른 측면에 따르면, 워터마킹 컴포넌트(110)에 의해 생성된 워터마킹된 이미지(120)는 하나 이상의 통신 채널을 통해, 워터마킹된 이미지(120)로부터 개별적인 워터마크(104)를 추출함으로써 워터마킹된 이미지(120)로부터 개별적인 호스트 이미지(102)를 복구할 수 있는 추출 컴포넌트(130)로 전송될 수 있다. 일 예에서, 추출 컴포넌트(130)는, 이미지의 어떤 픽셀이 워터마크(104)와 관련된 데이터를 제공하는지 결정하는 BOPC, CPPC, 및/또는 TBPC와 같은 데이터 숨김 알고리즘을 채용함으로써, 워터마킹된 이미지(120)에 삽입된 이진 워터마크(104)를 획득할 수 있다. 결정된 픽셀 및/또는 그 주변 영역은 워터마크(104)를 포함하는 데이터를 확인하기 위해 조사될 수 있다. 일 예에서, 워터마킹 컴포넌트(110)에 의해 이용되는 워터마크(104)의 크기 및 모양은 워터마킹 컴포넌트(110)로부터 추출 컴포넌트(130)로 전송되고/전송되거나 추출 컴포넌트(130)에 미리 알려져 있을 수 있다.
시스템(100)의 엔티티들 사이의 워터마킹된 이미지(120)의 통신을 용이하게 하기 위해, 하나 이상의 유선[예컨대, 에더넷(Ethernet), IEEE-802.3 등] 및/또는 무선[IEEE-802.11, 블루투스(Bluetooth) 등] 네트워킹 기술이 이용될 수 있다. 게다가, 추출 컴포넌트(130)는 직접적으로 워터마킹 컴포넌트(110)에 연결되거나 간접적으로 서드 파티(third party) 장치(도시되지 않음)를 통해 연결될 수 있다. 예를 들면, 추출 컴포넌트(130)는, 인터넷 서비스 공급자(Internet service provider: ISP)를 통해 인터넷을 거쳐 미디어 콘텐트를 제공하는 웹 서버로부터 워터마킹된 이미지(120)를 수신하는 클라이언트(client) 컴퓨터에 관련될 수 있다. 다른 예로서, 추출 컴포넌트(130)는 GSM(Global System for Mobile communications), 코드 분할 다중 접속(Code Division Multiple Access: CDMA) 통신 시스템, 및/또는 다른 적절한 셀룰러 통신 네트워크와 같은 셀룰러 통신 네트워크를 통해 미디어 콘텐트에 접속하는 이동 단말과 결합될 수 있다.
이제 도 2를 참조하면, 이미지에 정보를 삽입하기 위한 시스템(200)의 블록도가 제공된다. 일 측면에 따르면, 시스템(200)은, 입력으로 원본 이미지 및 로고를 받아들일 수 있고, 원본 이미지로의 로고의 삽입을 용이하게 하며, 출력으로 워터마킹된 이미지를 제공하는 워터마킹 컴포넌트(210)를 포함할 수 있다. 일 예에서, 워터마킹된 이미지를 제공하기 위해 원본 이미지로 로고를 삽입하는 것을 용이하게 하기 위해, 워터마킹 컴포넌트(210)는 삽입 후보(candidate) 선택 컴포넌트(220), 패리티 검사 컴포넌트(230), 및/또는 데이터 숨김 컴포넌트(240)를 포함할 수 있다.
일 측면에 따르면, 삽입 후보 선택 컴포넌트(220)는 삽입 데이터를 위한 원본 이미지 내의 후보 영역(candidate site)을 인식하기 위해 원본 이미지를 서치(search), 스캔(scan), 및/또는 다른 처리를 할 수 있다. 이미지 내의 후보 영역은 개개의 픽셀 및/또는 인접하거나 인접하지 않은 픽셀의 그룹(group)일 수 있다. 일 예에서, 삽입 후보 선택 컴포넌트는 이미지 내의 "마스터(master)" 및 "슬레이브(slave)" 후보 영역을 인식할 수 있다. 마스터 및 슬레이브 후보 삽입 영역의 세트(set)에 기반하여, 데이터 숨김 알고리즘은, 마스트 영역을 토글링(toggling)할 때 반대의 하프톤 값을 가진 이웃 슬레이브 영역을 부가적으로 토글(toggle)하도록 설정될 수 있다. 이렇게 함으로써, 마스터 영역을 포함하는 이미지 영역의 국부 강도(local intensity)가 유지될 수 있기 때문에, 이미지의 총체적인 시각적 질을 향상시킬 수 있다.
삽입 후보 선택 컴포넌트(220)가 삽입 데이터를 위한 이미지 내의 후보 영역을 인식하면, 후보 영역은 패리티 검사 컴포넌트(230)로 제공될 수 있다. 일 측면에 따르면, 패리티 검사 컴포넌트(230)는 후보 영역을 그룹으로 나눌 수 있다. 이들 그룹들은 각 그룹을 구성하는 후보 영역의 하프톤 값의 패리티에 의하여 각각 특정지워질 수 있다. 한정되지 않는 예로서, 특정 방식에 의하면, 하프톤 값은 이진 숫자 "0" 또는 "1"로 표시할 수 있고, 이러한 하프톤 값의 그룹의 패리티는 홀짝 패리티일 수 있다. 예컨대, 그룹 내에 "1"의 하프톤 값을 가진 후보 영역의 수가 홀수이면 그룹의 패리티는 "1"이고, 그 수가 짝수이면 "0"이다. 하지만 이는 영역의 그룹의 패리티가 획득될 수 있는 방법의 하나를 구성할 뿐이며, 어떠한 적절한 기술이든 이용될 수 있다는 것이 인식되어야 한다.
일 측면에 따르면, 패리티 검사 컴포넌트(230)에 의해 공식화된 원본 이미지 내의 후보 영역의 각 그룹의 패리티는 로고 내의 정보 비트(information bit)를 표시하기 위해 이용될 수 있다. 또한, 패리티 검사 컴포넌트는, 후보 영역이 중첩해서 단일 후보 영역의 하프톤 값을 토글링함으로써 복수의 그룹의 패리티가 변경될 수 있도록 후보 영역의 그룹을 공식화할 수 있다. 이렇게 함으로써, 원본 이미지에 로고를 삽입하기 위해 필요한 토글링의 양이 줄어들 수 있기 때문에, 삽입 효율이 향상되고, 워터마킹된 이미지에 도입되는 왜곡을 줄일 수 있다. 본 명세서에 기술된 다양한 측면에 따르면, 패리티 검사 컴포넌트(230)는 이미지의 효율적인 워터마킹을 용이하게 하기 위해 원본 이미지 내의 후보 영역의 세트를 그룹으로 나누기 위한 다양한 알고리즘을 이용할 수 있다. 이용될 수 있는 알고리즘의 예가 아래에 세부적으로 기술된다.
패리티 검사 컴포넌트(230)에 의해 처리한 후에, 패리티 검사 컴포넌트(230)에 의해 형성된 원본 이미지 내의 후보 영역의 그룹 및 그들의 개별적인 패리티 값은 원본 이미지로 로고의 삽입을 용이하게 하기 위한 데이터 숨김 컴포넌트(240)로 제공될 수 있다. 일 예에서, 데이터 숨김 컴포넌트(240)는 로고의 개별적인 정보 비트를 원본 이미지내의 후보 영역의 패리티 또는 상응하는 그룹과 비교할 수 있다. 만약 로고 내의 정보 비트 및 그에 상응하는 후보 영역의 그룹의 패리티가 대응(match)되지 않은 것으로 결정되면, 그룹내 후보 영역은 그룹의 패리티를 대응이 생성되도록 변경하기 위해 토글될 수 있다. 일 측면에 따르면, 패리티 검사 컴포넌트(230)에 의해 제공되는 후보 영역의 각 그룹은 후보 영역 및/또는 다른 중첩을 공유할 수 있다. 그 결과, 복수의 그룹의 패리티는 단일 토글링 동작에 의해 변경될 수 있고, 그로 인해 이미지에 로고를 삽입하는데 필요한 토글링 동작의 수를 줄일 수 있다. 일 예에서, 토글링은 단일 영역의 단일 토글링 또는 마스터/슬레이브 영역 쌍의 쌍 토글링(pair toggling)과 같은 공지된 하나 이상의 기술에 기반할 수 있다.
도 3으로 넘어와서, 이미지에 데이터를 삽입하기 위한 다른 시스템(250)의 블록도가 도시된다. 일 측면에 따르면, 시스템(250)은, 원본 또는 호스트 이미지를 수신할 수 있고 처리된 이미지를 생성하기 위해 여러 가지 방법으로 원본 이미지를 처리하는 이미지 처리 컴포넌트(260)를 포함할 수 있다. 처리된 이미지 및 이진 로고는, 워터마킹 컴포넌트(210)와 비슷하게 기능하거나 또는/또한 처리된 이미지에 이진 로고를 삽입하기 위한 본 명세서에 기술된 여러 가지 측면에 따라 기능할 수 있는 워터마킹 컴포넌트(270)로 제공될 수 있다.
일 예에서, 워터마킹 컴포넌트(270)는 이진 하프톤 이미지와 같은 이미지의 특정 종류에 대해 워터마킹을 수행하도록 동작할 수 있고, 이미지 처리 컴포넌트(260)는 원본 이미지를 수신할 수 있고 워터마킹 컴포넌트(270)가 동작하는 이미지의 종류에 부합하도록 이미지를 처리할 수 있다. 특정의 한정하지 아니하는 예에서, 워터마킹 컴포넌트(270)는 이진 하프톤 이미지에 이진 로고를 삽입하기 위해 동작할 수 있고, 이미지 처리 컴포넌트(260)는 그레이스케일 이미지와 같은 연속적인 또는 멀티톤 이미지를 수신할 수 있다. 이러한 일 예에서, 이미지 처리 컴포넌트(260)는 멀티톤 이미지를 하프톤 이미지로 변환할 수 있다. 예컨대, 주어진 임계값보다 큰 멀티톤 값을 가진 멀티톤 이미지의 픽셀을 제1 하프톤 값으로 변환하고, 주어진 임계값보다 작은 멀티톤 값을 가진 멀티톤 이미지의 픽셀을 제2 하프톤 값으로 변환함으로써 변환할 수 있다. 이진 로고는 본 명세서에 제공된 여러 가지 측면에 따라 워터마킹 컴포넌트(270)에 의해 결과인 하프톤 이미지에 삽입될 수 있다.
특정의 한정하지 아니하는 다른 예에서, 이미지 처리 컴포넌트(260)는 워터마킹 컴포넌트(270)에서 이진 로고가 삽입될 컬러 이미지를 수신할 수 있다. 이러한 일 예에서, 이미지 처리 컴포넌트(260)는 원본 컬러 이미지를 여러 가지 방식으로 처리할 수 있다. 예를 들면, 이미지 처리 컴포넌트(260)는 원본 컬러 이미지를 개별적인 컬러 컴포넌트로 나눌 수 있다. 그리고, 개별적인 컬러 컴포넌트는 일련의 컬러 하프톤된 이미지를 생성하기 위해 각각 하프톤될 수 있다. 특정 예로서, 이러한 일 예에서의 이미지 처리 컴포넌트는 컬러 이미지를 이미지의 빨간색, 파란색 및 초록색 컬러 컴포넌트만을 각각 포함하는 세 개의 이미지로 나눌 수 있다. 이러한 컴포넌트 이미지는 각각 하프톤될 수 있고, 그 안에 데이터를 삽입하기 위해 워터마킹 컴포넌트(270)로 제공될 수 있다. 다른 예로서, 이미지 처리 컴포넌트(260)는 원본 이미지에서 각 픽셀로 표시되는 색깔 및/또는 톤(tone)에 대응되는 이진 값을 획득할 수 있다. 이러한 이진 값은, 그 후에 원본 이미지의 각 픽셀을 나타내는 이진 컬러 값에 워터마크 정보를 삽입할 수 있는 워터마킹 컴포넌트(270)에 제공될 수 있다. 다른 일 예로서, 이미지 처리 컴포넌트(260)는 이진 로고가 삽입되는, 카툰(cartoon) 이미지와 같이 컬러가 적은(few-color) 이미지를 수신할 수 있다. 이미지 처리 컴포넌트는 이미지 내에 표시되는 컬러의 세트를 결정할 수 있고, 인식된 컬러를 제1 이진 비트를 나타내는 제1 세트 및 제2 이진 비트를 나타내는 제2 세트와 같은 두 개의 세트로 나눌 수 있다. 컬러가 적은 이미지 및 컬러 세트는 이미지 처리 컴포넌트(260)로부터, 본 명세서에 기술된 여러 가지 측면에 따라 제1 컬러 세트의 컬러를 가진 픽셀을 제2 컬러 세트의 선택된 컬러로 토글링함으로써 또는 필요에 따라 그 반대로 토글링함으로써 이미지에 이진 로고를 삽입할 수 있는 워터마킹 컴포넌트(270)로 제공될 수 있다. 컬러 세트 내에서 토글링을 위해 사용되는 컬러는 어떠한 적당한 방법에 의해서도 선택될 수 있다.
도 3의 동작과 관련하여 상기 기술된 예는 단지 설명으로서 제시된 것이며 여기 첨부된 청구항의 범위를 한정하는 것으로 의도되지 않는 것이 인식되어야 한다. 또한, 시스템(250)의 동작과 관련하여 예의 세트가 설명되었지만, 상기 시스템은 이미지에 워터마크 삽입을 용이하게 하는 어떠한 적당한 방법에 의해서도 동작할 수 있다는 것이 인식되어야 한다.
이제 도 4로 넘어와서, 본 명세서에 기술된 여러 가지 측면에 따라 하프톤 이미지에 데이터를 숨기기 위한 예시적인 기술을 수행하기 위한 시스템(300)의 블록도가 도시된다. 일 예에서, LX x LY의 크기를 가진 디지털 로고(L)(310)는 워터마킹된 하프톤 이미지(W)(330)를 형성하는 워터마킹 컴포넌트(340)에 의해 SX x SY의 크기를 가진 원본 또는 호스트 하프톤 이미지(S)(320)에 삽입될 수 있다.
일 측면에 따르면, 워터마킹 컴포넌트(340)는 원본 이미지(320)에 로고(310)를 삽입하기 위해 BOPC 알고리즘을 실행할 수 있다. 도 4에 도시된 바와 같이, 워터마킹 컴포넌트(340)는 서브컴포넌트(342 내지 350)를 이용함으로써 BOPC 알고리즘을 실행할 수 있다. 먼저, 원본 이미지(320)는, 로고(310)에 상응하는 데이터를 삽입하기 위해서 원본 이미지(320)에서 후보 마스터 및 슬레이브 픽셀을 인식하기 위하여 마스터/슬레이브 픽셀 선택 컴포넌트(342)로 제공될 수 있다. 일 예에서, 마스터/슬레이브 픽셀 선택 컴포넌트(342)는 종래의 데이터 숨김 스마트 쌍 토글링(Data Hiding Smart Pair Toggling: DHSPT) 알고리즘과 비슷한 방법으로 원본 이미지(320)에서 후보 픽셀을 선택할 수 있다. 좀더 자세하게는, DHSPT 알고리즘과 같이, 마스터/슬레이브 픽셀 선택 컴포넌트(342)는 데이터 숨김을 위한 의사 랜덤(pseudo-random) 위치의 세트를 선택할 수 있다. 또한, 마스터/슬레이브 픽셀 선택 컴포넌트(342)는, 원본 이미지(320)의 마스터 픽셀이 토글되면, 국부 강도를 유지하고 결과인 워터마킹된 이미지(330)에 대해 좋은 시각적 질을 제공하기 위하여 반대 하프톤 값을 가진 이웃 슬레이브 픽셀도 토글하도록 강제될 수 있도록 마스터 및 슬레이브 픽셀 세트를 설정할 수 있다.
하지만, DHSPT와 같은 종래의 알고리즘과는 달리 워터마킹 컴포넌트(340)는 성능을 향상시키는 동시에 DHSPT의 장점을 차용하는 부가적인 특징을 포함한다. 예를 들면, 마스터/슬레이브 픽셀 선택 컴포넌트(342)에 의해 인식된 마스터 및 슬레이브 픽셀 세트는, DHSPT와 같은 종래의 데이터 숨김 기술과 비교하여 데이터 숨김에 필요한 토글링의 양을 줄이기 위해 인식된 픽셀 세트로부터 마스터 맵 및 패리티 맵과 같은 데이터 구조를 생성할 수 있는 블록 중첩 패리티 검사 컴포넌트(344)로 제공될 수 있다. 토글 맵 형성 컴포넌트(346)는 블록 중첩 패리티 검사 컴포넌트에 의해 생성된 패리티 맵을 로고(310)와 비교함으로써 원본 이미지(320)에 대한 토글 맵을 생성하기 위해 사용될 수 있다. 토글 맵이 생성되면, 버블 형성 컴포넌트(348)는 원본 이미지(320)에 스마트 쌍 토글링이 적용될 위치를 선택하기 위해 토글 맵을 처리할 수 있다. 마지막으로, 쌍 토글링 컴포넌트(350)는, 버블 형성 컴포넌트(348)에 의해 결정된 위치에 원본 이미지(320)의 픽셀을 토글링함으로써 워터마킹된 이미지(330)를 생성하기 위해 원본 이미지(320)에 로고(310)를 삽입하는데 이용될 수 있다.
일 측면에 따르면, 워터마킹 컴포넌트(340)는 아래와 같이 이미지(320)에 로고(310)를 삽입하기 위해 BOPC 알고리즘을 채용할 수 있다. 먼저, 마스터/슬레이브 픽셀 선택 컴포넌트(342)는 원본 이미지(S)의 픽셀을 마스터 및 슬레이브 픽셀의 그룹으로 나눌 수 있다. 일 예에서, 마스터 픽셀은 삽입된 로고 데이터를 저장하기 위해 필요할 경우, 쌍 토글링 컴포넌트(350)에 의해 토글될 수 있다. 마스터 픽셀이 토글되면, 이웃 슬레이브 픽셀은 이미지(320) 내의 국부 강도를 유지하기 위해 상보적인 방법으로 부가적으로 토글될 수 있다. 특정 예로서, 알려진 시드(seed)(K)를 가진 의사 랜덤 숫자 생성기가 마스터 픽셀로서 이용될 수 있는 이미지(S) 내에 (2LX+1) x (2LY+1)의 의사 랜덤 위치의 세트를 생성하기 위해 마스터/슬레이브 픽셀 선택 컴포넌트(342)에 의해 이용될 수 있다. 마스터 픽셀 선택의 예는 도 4의 호스트 이미지(410)에 의해 도시된다. 일 측면에 따르면, 쌍 토글링 컴포넌트(350)는 이웃 마스터 픽셀 및 슬레이브 픽셀의 쌍을 토글할 수 있다. 따라서, 마스터 픽셀은 각 마스터 픽셀이 그 각각의 3 x 3 이웃 내의 여덟 개의 슬레이브 픽셀에 의해 둘러싸이도록 마스터/슬레이브 픽셀 선택 컴포넌트(342)에 의해 선택될 수 있다.
마스터/슬레이브 픽셀 선택 컴포넌트(342)에 의해 결정된 마스터 픽셀 위치에 기반하여, 블록 중첩 패리티 검사 컴포넌트(344)는 마스터 맵(M)을 형성하도록 마스터 픽셀을 서로 그룹화할 수 있다. 마스터 맵의 그룹화의 예가 도 5의 마스터 맵(420)에 의해 도시된다. 블록 중첩 패리티 검사 컴포넌트(344)는 마스터 맵(420)에 각 픽셀의 위치를, 그리고 위치 매핑 테이블(430)에 호스트 이미지(410)를 더 저장할 수 있다. 마스터 맵(M)의 요소(element)는 도 6의 도표(500)에 의해 도시된 것처럼 블록 중첩 패리티 검사 컴포넌트(344)에 의해 중첩 블록으로 나뉘어 질 수 있다. 도표(500)는 마스터 픽셀의 3 x 3 블록을 도시하였지만, 블록 중첩 패리티 검사 컴포넌트(344)에 의해 생성되는 블록은 어떠한 적당한 사이즈도 될 수 있다는 것이 인식되어야 한다. 또한, 블록은 크기 면에서 일정할 수도 일정하지 않을 수도 있다.
일 측면에 따르면, 워터마킹 컴포넌트(340)는 마스터 맵(M)의 블록의 패리티를 사용하여 하나의 로고 비트를 숨길 수 있다. 따라서, LX x LY 크기의 패리티 맵(P)은, 아래의 수학식 1에 따라 도표(500)에 도시된 것처럼 블록 중첩 패리티 검사 컴포넌트(344)에 의해 형성될 수 있다.
Figure 112013000516527-pat00001
비슷하게, 워터마킹된 이미지(330)로부터 로고(310)의 추출을 위해, 마스터 맵은 워터마킹에 사용된 것과 동일한 시드(K)를 가진 의사 랜덤 숫자 생성기에 의해 구축될 수 있고, 패리티 맵은 수학식 1에 기반하여 다시 형성될 수 있다. 어떠한 공격도 없으면, 추출 과정에서 생성된 패리티 맵은 워터마킹 컴포넌트(340)에서 워터마크 입력과 동일하게 나타나야 함이 인식되어야 한다.
일 예에서, 패리티 맵(P) 및 로고(L)(310)에 기반하여, 토글 맵 형성 컴포넌트(346)는 아래와 같이 동작할 수 있다. 이미지(320)에 로고(310)를 삽입하기 위하여, Pij의 값은 로고(L)가 패리티 맵(P)에 대응되도록 Pij가 Lij와 상이한 위치에 토글되어야 한다는 것이 인식되어야 한다. 따라서, 토글 맵(T)은 P와 L 사이에 픽셀 단위(pixelwise)의 논리 배타적 OR 연산(XOR 연산)을 수행함을 비교함으로써 형성될 수 있다. 이러한 연산은 다음과 같은 수학식으로 표현될 수 있다.
Figure 112013000516527-pat00002
어떠한 i 및 j 에 대하여 Pij 및 Lij가 동일하다면, Tij는 "0"이 될 것이고, 토글링이 필요없다는 것이 인식되어야 한다. 반면에 Pij 및 Lij가 상이하다면, Tij는 "1"과 같을 것이다. 그 결과, M(2i)(2j)를 중심으로 하는 블록 내의 픽셀 중 하나는 Pij 및 Lij가 동일하도록 쌍 토글링 컴포넌트(350)에 의해 토글될 수 있다.
특정의 한정하지 아니하는 예에서, 마스터 맵(M) 내의 모든 블록은 일부 마스터 픽셀이 한 블록 이상에 의해 공유될 수 있도록 그들의 각 이웃과 중첩되도록 설정될 수 있다.
Figure 112013000516527-pat00003
이고
Figure 112013000516527-pat00004
일 때, 주어진 위치에 마스터 픽셀을 공유하는 블록의 수는 아래의 표 1에 의해 주어진다.
Figure 112013000516527-pat00005
표 1은 픽셀 위치에 의해 마스터 픽셀을 공유하는 마스터 맵 블록의 수를 나타낸다.
일 측면에 따르면, 워터마킹 컴포넌트(340)에 의해 수행되는 BOPC 알고리즘은 토글할 픽셀을 선택하는데 표 1에 설명된 픽셀 분배 특성을 이용할 수 있기 때문에 향상된 시각적 질을 획득할 수 있다. 도 1에서 관찰될 수 있는 바와 같이, 이미지에 상응하는 마스터 맵(M)에서의 단일 토글링은 패리티 맵(P)내의 하나, 둘 또는 네 개의 정보 비트의 토글링을 초래한다. 따라서, 로고(310)를 삽입하는데 필요한 토글링의 양을 최소화하기 위해, 버블 형성 컴포넌트(348)가 아래와 같이 이용될 수 있다.
일 예에서, 버블 형성 컴포넌트(348)는 토글 맵(T) 내의 유사 값의, 그룹 또는 "버블"을 형성할 수 있다. 버블 형성 컴포넌트(348)에 의해 이용될 수 있는 버블 배열의 예가 도 7의 도표(600)에 의해 도시된다. 처음에, "1"의 값을 가진 토글 맵(T)내의 모든 위치는 1 x 1의 크기를 가진 기본(elementary) 버블로서 초기화된다. 이러한 동작 후에, 이웃 버블들은 각각 합성(complex) 버블을 형성하기 위해 서로 합병될 수 있다. 이러한 합성 버블을 위한 허용 가능한 배열의 예가 도표(600)에 도시된다. 일 측면에 따르면, 버블 형성 컴포넌트(348)은 버블의 최소량을 사용하여 토글 맵(T) 내의 모든 "1"의 값을 둘러싸는 목표를 가지고 동작할 수 있다. 일 예에서, T의 요소는 그들을 둘러싸는 버블의 버블 타입에 상응하는 그룹 번호를 반영하도록 버블 내에 각각 둘러싸이도록 갱신될 수 있다. 이러한 과정의 예는 도 8의 도표(700)에 의해 도시된다.
다른 예에서, 버블 형성 컴포넌트(348)는 아래와 같은 낮은 계산 복잡도를 가진 적은 수의 버블을 획득하기 위한 2-패스 접근(two-pass approach)을 이용할 수 있다. 첫 번째 패스에서, 토글 맵(T)은 래스터 스캔(raster-scan) 순서로 스캔(scan)될 수 있다. 이 패스에서, 도표(600) 에 도시된 바와 같이 그룹 4에 속하는 어떠한 버블(예컨대, "1"의 값의 이웃의 2 x 2 그룹)도 "4"의 값으로 표기될 수 있다. 두 번째 패스에서, 토글 맵(T)은 다시 래스터 스캔(raster-scan) 순서로 스캔(scan)될 수 있다. 요소 Tij가 "1"의 값을 가지는 것으로 발견되고 도표(600)에 도시된 바와 같이 그룹 2 또는 그룹 3 버블로 그룹화될 수 있다면, Tij로부터 수직 아래로, Tij로부터 수평 오른쪽으로 연속적인 "1"의 값의 수가 검사될 수 있다. 일 예에서, 수직 진행이 짝수인 것으로 발견되고 수평 진행이 홀수인 것으로 발견되면, Tij는 그룹 2 버블로 그룹화될 수 있다. 그렇지 않으면, 그룹 3 버블이 사용될 수 있다.
삽입된 비트당 버블의 기대 숫자(expected number)는 삽입될 로고(310)의 크기와 관련되어 있다는 것이 인식되어야 한다. 또한, 버블의 기대 숫자는 예컨대, 두 가지 상태에서 감소할 수 있다는 것이 인식될 수 있다. 첫째, 로고(310)가 삽입될 이미지(320)의 차원이 하나 이상의 방향으로 증가하면, 버블의 기대 숫자는 감소할 수 있다. 이러한 상태는 토글 맵(T) 내에 존재하는 요소의 수가 증가함에 따라, 작은 버블이 합병하여 더 큰 버블을 형성하는 확률이 증가한다는 사실로부터 기인한다. 둘째, 버블의 기대 숫자는 이미지(320)의 차원 사이의 차이가 증가하면, 주어진 워터마크 페이로드에 대해 감소할 수 있다. 이러한 상태는 이미지 차원 사이의 큰 차이는 내부 엣지(interior edge)를 더 제공하는 것에 의해 버블의 합병을 촉진하는 사실로부터 기인한다. 일 측면에 따르면, 각 버블은, 상기 언급한 바와 같이 워터마킹된 이미지(W)(330) 내의 시각적 질의 하락을 일으킬 수 있는 호스트 이미지(320) 내의 쌍 토글링을 나타낸다. 예컨대, 종래의 DHSPT 알고리즘에서, 삽입된 비트당 요구되는 토글링 동작의 기대 숫자는 0.5이다. 하지만, 블록 패리티 및 버블 형성을 이용함으로써, BOPC 알고리즘은 삽입된 비트당 토글링 동작(예컨대, 버블)의 기대 숫자를 128 x 128 로고에 대하여 0.26으로 줄일 수 있다.
버블 형성 컴포넌트(348)를 통한 버블 형성 후에, 아래의 워터마킹 과정을 완료하기 위해 스마트 쌍 토글링이 쌍 토글링 컴포넌트(350)에 의해 수행될 수 있다. 버블 형성 과정 후에, 토글 맵(T) 내의 버블의 숫자는 상응하는 마스터 맵(M) 내에 요구되는 픽셀 토글링 동작의 수를 나타낸다는 것이 인식될 수 있다. 일 예에서, Tij는 토글 맵(T) 내에서 버블의 래스터 스캔 순서의 제1 요소를 나타낼 수 있다. Tij에 기반하여, 마스터 픽셀은 아래의 표 2에 나타난 Tij가 속하는 버블 그룹에 기반하여 쌍 토글링 컴포넌트(350)에 의해 선택될 수 있다.
Figure 112013000516527-pat00006
표 2는 버블 그룹에 의한 토글링을 위해 선택된 마스터 픽셀 위치를 나타낸다.
도 9의 도표(800)에 의해 예시적인 토글링 동작이 도시된다. 도표(800)에 도시된 바와 같이, 토글링될 호스트 이미지(320) 내의 모든 마스터 픽셀 위치를 찾은 후에, 스마트 쌍 토글링이 호스트 이미지(320) 상에 수행될 수 있다. 일 예에서, 쌍 토글링 컴포넌트(350)에 의해 수행되는 토글링은 상보적인 토글링 파트너(partner)가 토글링된 마스터 픽셀에 대한 슬레이브 픽셀 그룹 내에 반드시 나타나도록 하는 제한에 영향을 받을 수 있다.
이제 도 10으로 넘어와서, 본 명세서에 기술된 여러 가지 측면에 따라 이미지(920)에 이진 로고(910)를 삽입하기 위한 예시적인 기술을 구현한 시스템(900)의 블록도가 제공된다. 일 예에서, 이진 로고(910)는 워터마킹된 하프톤 이미지(930)를 생성하기 위해 워터마킹 컴포넌트(940)에 의해 원본 또는 호스트 이미지(920)에 삽입될 수 있다. 일 측면에 따르면, 워터마킹 컴포넌트(940)는 서브컴포넌트(942 내지 952)를 이용함으로써 원본 이미지(920)로 로고(910)를 삽입하기 위한 CPPC 알고리즘을 실행할 수 있다.
일 측면에 따르면, CPPC 알고리즘은, 워터마크 삽입 과정 동안 변경될 필요가 있는 원본 이미지(920) 내의 위치의 총 수를 줄임으로써 워터마킹된 이미지(930)의 시각적 질을 향상시키도록 워터마킹 컴포넌트(940)에 의해 이용될 수 있다. 일 예에서, CPPC 알고리즘은 디지털 이미지(920)에 로고(910)를 삽입하는 종래의 데이터 숨김 및/또는 워터마킹 알고리즘과 조합하여 사용될 수 있다. 좀더 자세하게는, CPPC 알고리즘은 이러한 종래의 기술을 향상시켜, 결과인 워터마킹된 이미지(930)의 시각적 질을 향상시키는데 이용될 수 있다.
워터마킹 컴포넌트(940)는 종래의 데이터 숨김 및/또는 워터마킹 기술의 여러 가지 요소의 기능을 차용하고 그들의 성능을 향상시키는 부가적인 요소를 적용함으로써 이러한 기술의 기능을 확장할 수 있다. 특정의 한정되지 아니하는 예로서, 워터마킹 컴포넌트(940)는 종래의 워터마킹 알고리즘에서 일반적으로 발견될 수 있는 세 단계를 이용할 수 있다. 첫째, 워터마킹 컴포넌트(940)는 목표 영역(target domain) 내 호스트 이미지(920)에서 삽입 과정에 적절한 호스트 이미지(920) 내의 위치를 서치할 수 있는 삽입가능한 영역 검출 컴포넌트(942)를 포함할 수 있다. 본 명세서에 있어서, 이러한 위치는 간단히 "삽입가능한 위치(embeddable location)"라 한다. 둘째, 워터마킹 컴포넌트(940)는 삽입가능한 위치의 하프톤 값을 그룹으로 분류할 수 있다. 예를 들면, "0"의 하프톤 값을 가진 위치는 제1 그룹으로 분류될 수 있는 반면, "1"의 하프톤 값을 가진 위치는 제2 그룹으로 분류될 수 있다. 셋째, 비교 컴포넌트(948) 및/또는 워터마크 삽입 컴포넌트(952)는 원본 이미지(920) 내의 인식된 삽입가능한 위치가 로고(910)내의 상응하는 정보 비트와 동일한 값을 포함하도록 강제하는데 이용될 수 있다.
일 측면에 따르면, 워터마킹 컴포넌트(940)는 세 개의 부가적인 서브컴포넌트를 채용함으로써 이러한 종래의 기술의 기능을 확장시키기 위해 CPPC 알고리즘을 이용할 수 있다. 첫째, 샴페인 피라미드 형성 컴포넌트(944)는 호스트 이미지(920) 내에 이용가능한 모든 삽입가능한 위치의 서치 후에 이용될 수 있다. 샴페인 피라미드 형성 후에, 패리티 계산 컴포넌트(946)는, 로고(910)의 크기와 동일한 크기를 가지는 호스트 이미지(920) 내 삽입가능한 위치에 상응하는 정보 비트의 어레이(array)를 인식하는데 사용될 수 있다. 인식된 어레이를 로고에 비교한 후에, 향(flavor) 첨가 최적화 컴포넌트(950)는, 인식된 정보 비트의 어레이가 로고(910)에 대응되도록 하기 위해 반드시 토글되어야 하는 위치의 최소수를 찾기 위해 이용 될 수 있다. 워터마크 삽입은 향 첨가 최적화 컴포넌트(950)에 의해 표기된 위치 상에서 워터마크 삽입 컴포넌트(952)를 통해 처리될 수 있다. 샴페인 피라미드 형성 컴포넌트(944), 패리티 계산 컴포넌트(946) 및 향 첨가 최적화 컴포넌트(950)의 동작이 이제 더 세부적으로 기술될 것이다.
다른 측면에 따르면, 워터마킹 컴포넌트(940)에 의해 사용가능한 샴페인 피라미드 패리티 검사 알고리즘은 샴페인 피라미드에서 관찰될 수 있는 여러 가지 특징을 이용하므로 그렇게 이름 지어졌다. 예를 들면, 1부터 15까지 숫자가 매겨진 15개의 와인 잔으로 구축된 2차원 5층 샴페인 피라미드(1000)가 도 11에 의해 도시된다. 피라미드(1000)의 가장 높은 잔에 샴페인이 부어지면, 샴페인이 피라미드(100) 아래로 넘쳐 흐르면서 가장 높은 잔 아래의 모든 잔들에 찰 것임이 인식될 수 있다. 비슷하게, 보다 복잡한 시나리오에서, 무향(flavorless)의 샴페인은 피라미드(1000)의 꼭대기의 잔(1)에 채워지는 반면, 사과향의 샴페인이 잔(4)에 채워질 수 있다. 채워짐이 계속되는 동안 시간이 흐름에 따라, 피라미드(1000)의 모든 잔은 샴페인으로 가득차게 될 것임이 인식될 수 있다. 하지만, 피라미드(1000)의 최하위 열의 잔을 고려하면, 잔(11)부터 잔(13)까지는 이 시간에 사과향 샴페인을 포함할 것인 반면, 잔(14) 및 잔(15)은 그렇지 않을 것이라는 것이 인식될 수 있다.
이러한 관찰에 기반하여, 피라미드(1000)의 열은 아래에서부터 숫자가 매겨질 수 있다. 도 11에 도시한 바와 같이, 잔(11)부터 잔(15)까지는 첫 번째 열에 있고, 잔(1)은 다섯 번째 열에 있다. 따라서, L개의 층을 가진 피라미드(1000)에 대해, 만약 샴페인이 피라미드(1000)의 최하위 열까지 흘러 들어갈 때까지 상기 잔에 부어지면, 피라미드(1000)의 최하위 열의 N개의 연속적인 잔은 피라미드(1000)의 N번째 열의 잔과 동일한 향의 샴페인을 포함할 것이다. 그 결과, 최하위 열의 N개의 연속적인 잔에 공통의 향을 첨가하기를 원하면, 모든 N개의 잔에 대해 최하위 열에 향을 첨가하는 대신에 원하는 향이 피라미드(1000) 의 N번째 열의 단일 잔에 부어질 수 있음이 인식될 수 있다.
비슷하게, 샴페인 피라미드 형성 컴포넌트(944)는 삽입가능한 위치를 상기 특성을 보이는 구조로 배열할 수 있다. 일 예에서, 샴페인 피라미드 형성 컴포넌트(944)는, 삽입가능한 영역 검출 컴포넌트(942)에 의해 인식된 삽입가능한 위치의 세트 및 그들의 상응하는 이진값을 입력으로 취할 수 있다. 이러한 위치의 각각은 미리 정해진 스캔 순서를 가진 피라미드 구조의 와인 잔으로 취급될 수 있다. 이러한 구조의 예는 도 12의 도표(1100)에 의해 도시된다. 도표(1100)가 더 도시하는 바에 따르면, 샴페인 피라미드 구조에 의해 수용될 수 있는 정보 비트의 수는 피라미드의 최하위 열의 요소의 수와 같다. 따라서, 이미지(920) 내의 삽입가능한 위치의 수(예컨대, M)가 제한되고, 삽입될 로고(910)의 크기(예컨대, L)가 고정되어 있어, 이미지(920) 내의 삽입가능한 위치의 수는 L층의 샴페인 피라미드를 구축하는데 충분하지 않을 것이다. 이러한 경우, 대신에 복수의 N층의 피라미드가 구축될 수 있다. 일 예에서, N은 아래의 수학식에 의해 제한될 수 있다.
Figure 112013000516527-pat00007
일 측면에 따르면, CPPC를 사용하여 이미지(920)에 삽입된 숨겨진 정보는 샴페인 피라미드 형성 컴포넌트(944)에 의해 구축된 피라미드 구조의 최하위 열에 의존할 수 있다. 도표(1000)에 관하여 상기 기술한 바와 같이, 구조 전체의 데이터 흐름은 결국 피라미드의 최하위 열의 모든 잔이 채워지도록 샴페인 피라미드의 꼭대기로부터 부어지는 액체로 시각화될 수 있다. 따라서, 패리티 계산 컴포넌트(946)는 와인 잔(n)의 관심 영역(Region of Interest)[ROI(n)]을 피라미드의 꼭대기 잔으로부터 잔(n)까지의 가능한 경로에 속하는 잔의 세트로 정의함으로써 피라미드 구조의 처리를 시작할 수 있다. 따라서, 피라미드(1000)에 대해, ROI(11)={1, 2, 4, 7, 11} 이고 ROI(13)={1, 2, 3, 4, 5, 6, 8, 9, 13}이다.
앞에 언급한 바와 같이, 피라미드(1000)의 각 와인 잔은 이미지(920) 내의 삽입가능한 위치 및 그에 상응하는 이진 값을 나타낼 수 있다. 따라서, 피라미드(1000)의 각 와인 잔은 "0" 또는 "1"의 값을 포함할 수 있다. 이에 기반하여, 패리티 계산 컴포넌트(946)는 피라미드의 아래 영의 각 잔의 관심 영역 내의 "1"을 포함하는 잔의 수를 셀 수 있다. 일 예에서, 잔에 대하여 이러한 잔의 수가 짝수인 경우, 잔의 패리티는 "0"으로 설정된다. 비슷하게, 주어진 잔에 대하여 이러한 잔의 수가 홀수인 경우, 잔의 패리티는 대신에 "1"로 설정될 수 있다. 이러한 계산 후에, 삽입될 로고(910)와 같은 크기를 가지는 정보 어레이(information array: IA)가 형성될 수 있다. 도 12의 도표(1100)은 예시적인 패리티 계산을 도시한다.
일 예에서, 피라미드 구조의 최하위 열의 각 노드(node)에 대해, 패리티 계산 컴포넌트(946)는 ROI를 정의할 수 있고 정의된 영역 내의 "1"의 값을 포함하는 노드의 수를 셀 수 있다. 특정의 한정되지 아니하는 예로서, ROI의 여러 가지 특성을 이용함으로써 이러한 동작의 계산 복잡도는 줄어들 수 있다. 첫째, 피라미드 구조의 최하위 열의 각 노드 x에 대해, 패리티 계산 컴포넌트는 도 13의 도표(1200)에 도시된 것처럼, x의 "왼쪽 출처"[LS(x)], x의 "오른쪽 출처"[RS(x)] 및 x의 "위쪽 출처"[US(x)]를 정의할 수 있다. 어떤 경우에 대해서는 LS(x), RS(x), 및/또는 US(x)가 존재하지 않을 수 있음이 인식되어야 한다.
존재하지 않는 노드의 ROI는 빈 세트로 표현될 수 있다. 그렇지 않으면, 노드 x에 대해서, ROI는 아래의 수학식 4 및 수학식 5과 같이 계산될 수 있다.
Figure 112013000516527-pat00008
Figure 112013000516527-pat00009
수학식 4 및 수학식 5에서 계산된 노드 x의 ROI에 기반하여, 노드 x의 패리티는 아래의 수학식과 같이 계산될 수 있다.
Figure 112013000516527-pat00010
따라서, 수학식 6으로부터, 패리티 계산 컴포넌트(946)는 아래와 같이 스마트 패리티 계산 방법을 이용할 수 있다. 패리티 계산 컴포넌트(946)는 피라미드의 꼭대기로부터 시작되고 도표(100)에 나타난 것처럼, 잔 숫자의 오름차순으로 각 노드를 진행할 수 있다. 만약 주어진 노드에 대해 US(x)가 "0"이면, 부가적인 동작이 필요 없다. 그렇지 않으면, LS(x), RS(x) 및 x에 의해 포함되는 값은 도 14의 도표(1310) 및 도표(1320)에 의해 도시된 바와 같이 토글될 수 있다.
패리티 계산 컴포넌트(946)에서 IA의 생성에 있어서, IA는 비교 컴포넌트(948)에서 배타적 OR 연산자(XOR 연산자)를 사용하여 삽입될 로고(910)에 상응하는 어레이와 함께 처리될 수 있다. 결과인 어레이에 나타나는 "1"의 각 값에 있어서, 피라미드 구조의 최하위 열의 상응하는 위치는 도 15의 도표(1410)에 표시한 바와 같이 "향 첨가될 것(To Be Flavored)(TBF)"으로 표기될 수 있다. 이론적으로, 피라미드 구조의 최하위 열의 노드는 0.5의 확률을 가지고 TBF로 표기될 수 있음이 인식될 수 있다. 토글링 최적화는, 샴페인 피라미드의 최하위 열의 N개의 연속적인 와인 잔에 향을 첨가하는 것은 N번째 열의 와인 잔에 향을 첨가하는 것과 동일하다는 관찰을 채용함으로써, 향 첨가 최적화 컴포넌트(950)에 의해 수행될 수 있다. 따라서, 만약 피라미드 구조의 N개의 연속적인 노드가 TBF로 표기되면, 향 첨가 최적화는, 모든 N개의 위치의 토글링을 요구하는 대신에 토글링을 위하여 호스트 이미지(920) 내에 오직 한 개의 위치만 지정할 수 있다.
워터마크 삽입 및 추출과 관련하여 사용되는 향 첨가 최적화의 예가 도 15의 도표(1410) 및 도표(1420)에 의해 도시된다. 도 15에 도시된 바와 같이, 도 12에 도시된 피라미드 구조(1100) 및 5비트 로고{11000}가 주어지면, IA의 토글링이 결과인 {01110}의 어레이를 획득하기 위해 수행될 수 있다. 도표(1410)에 의해 도시된 바와 같이, 최하위 열의 두 번째, 세 번째 및 네 번째 노드는 TBF로 표기될 수 있다. 하지만 모든 세 개의 잔을 토글링하는 대신에 워터마킹 컴포넌트(940)는 세 번째 열의 오직 하나의 잔만 토글링함으로써 로고를 완전히 삽입할 수 있다.
다음 도 16을 참조하면, 본 명세서에 기술된 여러 가지 측면에 따라 이미지(1520)의 워터마킹(watermarking)을 용이하게 하는 시스템(1500)이 도시된다. 일 예에서, 이진 로고(1510)는 워터마킹된 하프톤 이미지(1530)를 형성하기 위해 워터마킹 컴포넌트(1540)에 의해 원본 또는 호스트 이미지(1520)에 삽입될 수 있다. 일 측면에 따르면, 워터마킹 컴포넌트(1540)는 서브컴포넌트(1542 내지 1554)를 이용함으로써 원본 이미지(1520)로 로고(1510)를 삽입하기 위한 TBPC 알고리즘을 실행할 수 있다.
일 측면에 따르면, TBPC 알고리즘은 기존의 데이터 숨김 기술을 위한 플러그인(plug-in) 과정으로 워터마킹 컴포넌트(1540)에 의해 이용될 수 있다. 따라서, 예를 들면, 워터마킹 컴포넌트(1540)는 종래의 워터마킹 알고리즘에서 일반적으로 발견될 수 있는 여러 가지 동작을 수행할 수 있다. 예를 들면, 워터마킹 컴포넌트(1540)는 호스트 이미지(1520)에서 삽입가능한 영역을 서치하기 위한 삽입가능한 영역 검출 컴포넌트(1542), 삽입가능한 영역에 표함된 이진 값을 상응하는 삽입될(to-be-embeded) 데이터와 비교하기 위한 비교 컴포넌트(1548) 및 삽입될 데이터를 수용하기 위해 어떤 삽입가능한 영역이 수정(modification)이 필요한지를 결정하기 위한 수정 위치 결정 컴포넌트(1552)를 이용할 수 있다. 수정은 비교에 기반하여 수정 컴포넌트(1554)를 통해 수행될 수 있다. 원본 이미지(1520)가 수정되면 워터마킹된 이미지(1530)에 왜곡이 도입됨을 인식될 수 있다. 또한, 어떠한 우선 정보도 알 수 없으므로, 삽입가능한 영역에 포함된 값은 삽입될 데이터에 대해 독립적으로 고려될 수 있다고 인식될 수 있다. 따라서, 모든 단일 삽입될 비트에 대해, 원본 이미지가 수정을 요구할 확률은 0.5이다. 대부분의 종래의 데이터 숨김 알고리즘은 이러한 수정에 의해 발생되는 왜곡을 최소화하려고 시도했다. 대조적으로, 워터마킹 컴포넌트(1540)에 의해 이용가능한 TBPC 알고리즘은 원본 이미지(1520)를 수정할 확률을 줄이려고 시도했다.
일 측면에 따르면, 워터마킹 컴포넌트(1540)는 워터마킹된 이미지(1530)의 시각적 질의 향상을 획득하기 위해 TBPC 알고리즘을 이용할 수 있다. 일 예에서, 워터마킹 컴포넌트(1540)는 TBPC 알고리즘을 위한 종래의 데이터 숨김 체계의 기능성을 확장하기 위해 트리 형성 컴포넌트(1544), 패리티 계산 컴포넌트(1546) 및/또는 근원(fountain) 조사 컴포넌트(1550)를 채용할 수 있다. 일반적으로, TBPC 알고리즘은, 워터마킹된 이미지(1530)의 시각적 질을 향상시키기 위해 워터마킹 컴포넌트(1540)가 N형 트리에서 선조(ancestor)와 자손(descendant) 사이의 관계를 이용하도록 허용할 수 있다. 아래의 논의는 트리 형성 컴포넌트(1544), 패리티 계산 컴포넌트(1546) 및 근원 조사 컴포넌트(1550)의 예시적인 동작을 더 세부적으로 기술한다. 본 명세서에서, 삽입될 로고의 크기는 L로 표시된다.
예로서, 트리 형성 컴포넌트(1544)는 아래와 같이 동작할 수 있다. 종래의 데이터 숨김 알고리즘에서는, 이미지의 삽입가능한 영역을 찾은 후에, 이러한 위치의 값은 "0" 또는 "1"로 분류될 수 있다. 분류 후 즉시, 이러한 값은 상응하는 로고 비트와 비교된다. 만약 각 값이 삽입될 비트와 동일하다면, 더 이상의 동작은 수행되지 않는다. 그렇지 않으면, 값을 토글링하는 하나 이상의 왜곡 생성 과정이 실행된다. 대조적으로, 트리 형성 컴포넌트(1544)는, 여기서는 "마스터 트리(master tree)"로 칭하는 N형 완전 트리를 삽입가능한 영역 검출 컴포넌트(1542)에 의해 검출된 삽입가능한 영역의 값으로 채울 수 있다. 마스터 트리는 N형 완전 트리이므로, 리프(leaf) 노드를 제외한 마스터 트리의 모든 노드는 N개의 자식 노드(child node)를 갖는 것으로 설정될 수 있다. 일 예에서, 하나의 리프 노드는 하나의 정보 비트를 수용하는데 이용될 수 있다. 따라서, L 비트의 로고(1510)를 삽입하기 위해, 마스터 트리는 L 개의 리프를 갖도록 요구될 수 있다고 인식될 수 있다. 도 17은 N=2 및 L=16일 때, 트리 형성 컴포넌트(1544)에 의해 생성될 수 있는 예시적인 마스터 트리(1600)가 도시된다.
트리 형성 컴포넌트(1544)에 의해 구축된 마스터 트리에 기반하여, 패리티 계산 컴포넌트(1546)는 마스터 트리의 각 리프 노드로 표현되는 정보 비트를 결정하기 위해 이용될 수 있다. 일 예에서, 이는 마스터 트리의 리프 노드부터 루트 노드로 순회함으로써 리프 노드에 대해 성취될 수 있다. 만일 "1"의 값의 발생의 수가 홀수이면, 리프 노드의 정보 비트는 "1"로 간주될 수 있다. 그렇지 않으면 정보 비트는 "0"으로 간주될 수 있다. 이러한 계산은 마스터 트리(1600)에 대해 도 17에서 더 도시된다.
다음으로, 로고(1510)의 각 비트 및 마스터 트리에 의해 수용되는 정보 사이의 비트 단위의 논리 배타적 OR 연산(XOR 연산)을 수행함으로써, 비교 컴포넌트(1548)는 토글 어레이(toggle array)를 획득할 수 있다. 이러한 비교의 예로서, 예시적인 마스터 트리(1600)에 대해서, 획득된 정보 어레이는 {1110110101111000}임을 관찰할 수 있다. {0010001001011110}인 로고 어레이를 가정하면, 비교 컴포넌트(1548)에 의해 획득되는 결과적인 토글 어레이는 {1100111100100110}이 된다. 이러한 비교는 도 18의 도표(1700)에 의해 도시된다.
일 측면에 따르면, 토글 어레이 내의 "1"의 각 값은 원본 이미지(1520)의 상응하는 삽입가능한 위치가 토글링이 필요하다는 사실을 나타낼 수 있다. 하지만, 원본 이미지(1520) 내의 어떠한 단일 수정에 의해서도 시각적 아티팩트(visual artifact)가 도입될 수 있음이 인식될 수 있다. 따라서, 워터마킹된 이미지(1530)의 시각적 질을 향상시키기 위하여, TBPC는 토글 어레이 내의 "1"의 값의 숫자를 최소화하기 위해 이용될 수 있다. 도 17을 다시 참조하면, 마스터 트리(1600)가 철저하게 조사되면, "1"에서 "0" 또는 "0"에서 "1"과 같은 어떠한 노드에서의 단일 변경도 변경된 노드의 모든 후손의 패리티에 변경을 일으킬 수 있는 것이 관찰될 수 있다. 따라서, 마스터 트리(1600)의 N개의 형제 노드(sibling node)의 값을 변경하는 대신에, 그들의 공통 부모 노드(parent node)의 단일 변경이 동일한 효과를 줄 수 있다.
상기 관찰을 레버리지(leverage)하기 위해, 근원 조사 컴포넌트(1550)는 마스터 트리와 동일한 크기를 가지는 토글 트리를 구축할 수 있다. 일 예에서, 토글 트리의 리프 노드는, 토글 어레이에 요소가 나타나는 순서로 토글 어레이의 요소에 의해 채워질 수 있다. 트리의 나머지 노드는 초기에 임의의 적당한 값을 사용하여 채워질 수 있다. 일 예에서, 근원 조사 컴포넌트는 아래와 같이 토글 트리의 루트에서 분석을 시작할 수 있다. 주어진 노드에 대해, 주어진 노드의 모든 N개의 자식 노드가 "1"의 값을 포함하면, 자식 노드는 "0"의 값으로 갱신되고 조사되는 노드는 "1"로 설정될 수 있다. 그렇지 않으면, 처리되는 노드는 "0"으로 재설정될 수 있다. 상기 주어진 예시적인 토글 어레이에 대한 예시적인 토글 트리 생성 및 근원 조사 과정은 도표(1700)에 도시된다.
일 예에서, 원본 이미지(1520)에 로고(1510)를 삽입하기 위해, "1"의 각 값을 가진 토글 트리 내의 위치에 상응하는 마스터 트리 내의 삽입가능한 영역은 토글될 수 있다. 이와 같이 생성된 워터마킹된 이미지(1530)를 복호화(decode)하기 위해서, 삽입가능한 영역의 동일한 시퀀스(sequence)가 검색될 수 있고, 마스터 트리를 구축하는데 이용될 수 있다. 마스터 트리에 대한 패리티 계산 후에, 획득된 정보 어레이는 삽입된 로고(1510)에 상응하는 로고 어레이에 대응되어야 한다. 예시적인 복호화 과정이 도 19의 도표(1800)에 의해 도시된다.
일 측면에 따르면, 워터마킹 컴포넌트(1540)의 최대 획득가능한 페이로드는 아래와 같이 구할 수 있다. 먼저, 원본 이미지(1520)의 삽입가능한 영역의 수가 제한되어 있기 때문에, 트리 형성 과정에서 형성될 수 있는 마스터 트리의 크기도 제한될 수 있다는 것이 인식될 수 있다. 또한, 상기 언급한 바와 같이, 마스터 트리는 L개의 로고 비트를 표현하기 위해 L개의 리프 노드를 가질 필요가 있다. 따라서, L 개의 리프 노드를 가진 N형 완전 트리를 형성하기 위해, 요구되는 노드의 총 수(nNodes)는 아래의 수학식에 의해 구할 수 있다.
Figure 112013000516527-pat00011
Figure 112013000516527-pat00012
수학식 8로부터, N이 증가할수록 마스터 트리에서 요구되는 노드의 수가 감소한다는 것을 관찰할 수 있다. 따라서, 삽입가능한 영역의 수가 제한되어 있기 때문에, N이 증가함에 따라 워터마킹 컴포넌트(1540)에 의해 삽입될 수 있는 페이로드가 증가한다. 고정된 로고 크기 L 및 삽입가능한 위치의 이용가능한 수 M에 대해 이용할 수 있는 최소 N은 아래와 같은 수학식으로 구할 수 있다.
Figure 112013000516527-pat00013
Figure 112013000516527-pat00014
다른 측면에 따르면, 패리티 계산 컴포넌트(1546)는 아래와 같은 저(低) 복잡도 패리티 계산 기술을 사용하여 동작할 수 있다. 첫째 parity(x)는 노드 x로부터 마스터 트리의 루트 노드까지의 경로 내에서 "1"의 발생 수의 패리티로 정의 될 수 있다. parity(x)는 비트 단위의 덧셈을 이용하여 parity(parent(x))의 값과 노드 x의 값을 더한 것과 같다. 따라서 패리티 계산 컴포넌트(1546)는 트리의 루트로부터 시작되는 마스터 트리를 가로지를 수 있고, 처리될 각 노드 x에 대해, 노드 x의 패리티와 그 자식 노드 y의 값을 더함으로써, 노드 y의 패리티를 갱신한다.
이제 도 20 내지 도 23을 참조하면, 본 명세서에 기술된 여러 가지 측면에 따라 구현될 수 있는 방법론이 도시된다. 설명의 간략화의 목적을 위해, 방법론은 일련의 블록으로 도시되고 기술되지만, 본 발명에 따르면 몇몇 블록은 상이한 순서로 및/또는 다른 블록과 동시에 발생할 수 있는 바와 같이, 본 발명이 블록의 순서에 의해 제한되지 않은 것으로 이해되고 인식되어야 한다. 게다가, 본 발명에 따른 방법론을 구현하기 위해 도시된 블록이 모두 필요한 것은 아니다.
또한, 본 발명은 하나 이상의 콤포넌트에 의해 실행되는 프로그램 모듈(module)과 같은 컴퓨터 실행가능한 명령어의 일반적인 컨텍스트(context)로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크(task)를 실행하거나 특정의 추상적인 데이터 타입을 구현하는 루틴(routine), 프로그램, 객체(object), 데이터 구조 등을 포함한다. 일반적으로 프로그램 모듈의 기능성은 여러 가지 실시예에서 원하는 바에 따라 조합되거나 분할될 수 있다. 또한, 인식될 수 있는 바와 같이 상기 개시된 시스템 및 하기 방법의 여러 가지 부분은 인공 지능 또는 지식 또는 법칙 기반 컴포넌트, 서브컴포넌트, 프로세스, 수단, 방법론 또는 메커니즘[예컨대, 서포트 벡터 머신(support vector machine), 신경 네트워크(neural network), 전문가 시스템(expert system), 베이지안 신뢰 네트워크(Bayesian belief network), 퍼지 이론(fuzzy logic), 데이터 퓨전 엔진(data fusion engine), 분류기(classifier)...]을 포함하거나 그것들로 구성할 수 있다. 이러한 구성 요소는 특히 수행되는 특정 메커니즘 또는 프로세스를 자동화할 수 있어서, 시스템 및 방법의 일부를 보다 효율적이고 지적이게 할 뿐 아니라 보다 적응적이 되도록 한다.
도 20을 참조하면, 이미지에 워터마크 정보를 삽입하는 방법(2000)이 도시된다. 단계(2002)에서, 로고 및 로고가 삽입될 이미지가 인식된다. 단계(2004)에서, 단계(2002)에서 인식된 이미지 내의 후보 위치가 [예컨대, 워터마킹 컴포넌트에서 삽입 후보 선택 컴포넌트(220)에 의해] 검출된다. 단계(2006)에서, 단계(2004)에서 검출된 후보 위치의 중첩 그룹의 세트는 각 그룹이 단계(2002)에서 인식된 로고 내의 각 정보 비트에 상응하도록 [예컨대, 패리티 검사 컴포넌트(230)에 의해] 형성된다. 단계(2008)에서, 단계(2006)에서 형성된 후보 위치의 각 그룹의 패리티가 로고 내의 상응하는 정보 비트의 값에 대응되도록 단계(2004)에서 검출된 이미지 내의 후보 영역을 토글링함으로써 이미지에 로고가 [예컨대, 데이터 숨김 컴포넌트(240)에 의해] 적어도 일부 삽입된다.
이제 도 21로 넘어와서, 하프톤 이미지[예컨대, 원본 이미지(320)]에 이진 워터마크[예컨대, 로고(310)]를 삽입하는 방법(2100)이 도시된다. 일 측면에 따르면, 방법(2100)은 워터마킹된 이미지[예컨대, 워터마킹된 이미지 (330)]를 생성하기 위한 블록 중첩 패리티 검사(Block-Overlapping Parity Check: BOPC) 알고리즘을 실행하기 위해 이용될 수 있다. 단계(2102)에서, 하프톤 이미지 및 이미지에 삽입될 이진 워터마크가 인식된다. 단계(2104)에서, 단계(2102)에서 인식된 이미지 내의 픽셀은 [예컨대, 워터마킹 컴포넌트(340)에서 마스터/슬레이브 픽셀 선택 컴포넌트(342)에 의해] 마스터 및 슬레이브 픽셀로 나뉘어 진다. 단계(2106)에서, 단계(2104)에서 결정된 마스터 픽셀은 [예컨대, 블록 중첩 패리티 검사 컴포넌트(344)에 의해] 매핑되고, 인접하게 매핑된 마스터 픽셀은 중첩 블록으로 그룹화된다. 단계(2108)에서, 단계(2106)에서 생성된 마스터 픽셀의 각 블록의 패리티를 표시하는 패리티 맵이 구축된다.
단계(2110)에서, 단계(2108)에서 구축된 패리티 맵 내의 각 위치의 값을 단계(2102)에서 인식된 이진 워터마크 내의 상응하는 비트에 비교함으로부터 획득된 결과를 이용하여 [예컨대, 토글 맵 형성 컴포넌트(346)]에 의해] 토글 맵이 생성된다. 단계(2112)에서, 단계(2110)에서 결정된 패리티 맵 및 워터마크의 차이에 상응하는 토글 맵 내의 위치가 [예컨대, 버블 형성 컴포넌트(348)에 의해] 하나 이상의 미리 결정된 크기의 버블로 그룹화된다. 단계(2114)에서, 단계(2112)에서 생성된 토글 맵의 각 버블에 상응하는 마스터 픽셀 및 이웃 슬레이브 픽셀을 [예컨대, 쌍 토글링 컴포넌트(350)에 의해] 토글링함으로써 이미지에 워터마크가 삽입된다.
도 21은 하프톤 이미지[예컨대, 원본 이미지(920)]에 이진 로고[예컨대, 로고(910)]를 삽입하는 방법(2200)을 도시한다. 일 측면에 따르면, 방법(2200)은 워터마킹된 이미지[예컨대, 워터마킹된 이미지 (930)]를 생성하기 위한 샴페인 피라미드 패리티 검사(Champagne Pyramid Parity Check: CPPC) 알고리즘을 실행하기 위해 이용될 수 있다. 단계(2202)에서, 하프톤 이미지 및 이미지에 삽입될 이진 로고가 인식된다. 단계(2204)에서, 데이터를 삽입할, 단계(2202)에서 인식된 이미지 내의 후보 픽셀이 [예컨대, 삽입가능한 영역 검출 컴포넌트(942)에 의해] 인식된다.
단계(2206)에서, 피라미드 구조의 최하위 열의 노드 개수가 단계(2202)에서 인식된 이진 로고 내의 비트의 수와 동일하며, 단계(2204)에서 인식된 후보 픽셀에 상응하는 노드를 가지는 이진 피라미드 구조가 [예컨대, 샴페인 피라미드 형성 컴포넌트(944)에 의해] 구축된다. 단계(2208)에서, 단계(2206)에서 구축된 피라미드의 최하위 열의 각 노드에 대해, 각 노드가 직접 또는 간접 후행자인 피라미드 내의 각 노드의 조합된 세트 및 모든 다른 노드의 패리티가 [예컨대, 패리티 계산 컴포넌트(946)에 의해] 계산된다.
단계(2210)에서, 단계(2208)에서 계산된 피라미드의 최하위 열의 각 노드의 패리티가 [예컨대, 비교 컴포넌트(948)에 의해] 로고의 상응하는 비트와 비교된다. 단계(2212)에서, 단계(2210)의 비교가 상응하는 로고 비트와 상이한 패리티를 갖는다고 표시한 노드의 연속적인 그룹이 [예컨대, 향 첨가 최적화 컴포넌트(950)에 의해] 인식된다. 단계(2214)에서, 단계(2212)에서 인식된 그룹에 대해 각 최하위 공통 선행자에 상응하는 픽셀을 [예컨대, 워터마크 삽입 컴포넌트(952)를 이용하여] 토글링함으로써 이미지에 로고가 적어도 일부 삽입된다.
도 23으로 넘어와서, 하프톤 이미지[예컨대, 원본 이미지(1520)]에 이진 워터마크[예컨대, 로고(1510)]를 삽입하는 다른 방법(2300)이 도시된다. 일 측면에 따르면, 방법(2300)은 워터마킹된 이미지[예컨대, 워터마킹된 이미지 (1530)]를 생성하기 위한 트리 기반 패리티 검사(Tree-Based Parity Check: TBPC) 알고리즘을 실행하기 위해 이용될 수 있다. 단계(2302)에서, 하프톤 이미지 및 이미지에 삽입될 이진 워터마크가 인식된다. 단계(2304)에서, 단계(2302)에서 인식된 이미지 내의 후보 영역이 [예컨대, 워터마킹 컴포넌트(1500)의 삽입가능한 영역 검출 컴포넌트(1542)에 의해] 검출된다.
단계(2306)에서, 단계(2304)에서 검출된 삽입가능한 영역을 사용하여, 하나 이상의 트리의 리프 노드 개수와 단계(2302)에서 인식된 워터마트 내의 비트의 수가 동일한 하나 이상의 N형 마스터 트리가 [예컨대, 트리 형성 컴포넌트(1544)에 의해] 구축된다. 단계(2308)에서, 단계(2306)에서 구축된 마스터 트리의 각 리프 노드에 대해, 리프 노드로부터 리프 노드가 속하는 마스터 트리의 루트 노드까지의 경로 내의 노드의 패리티가 [예컨대, 패리티 계산 컴포넌트(1546)에 의해] 계산된다. 단계(2310)에서, 단계(2308)에서 계산된 각 패리티 값 및 단계(2302)에서 식별된 워터마크의 상응하는 비트 사이의 배타적 OR 연산을 수행함으로써 [예컨대, 비교 컴포넌트(1548)에 의해] 토글 어레이가 구해진다. 단계(2312)에서, 단계(2310)에서 구해진 토글 어레이를 리프 노드로 사용하여, 단계(2306)에서 구축된 하나 이상의 마스터 트리에 상응하는 하나 이상의 토글 트리가 구축된다. 마지막으로, 단계(2314)에서, 모든 리프 노드가 [예컨대, 근원 조사 컴포넌트(1550) 및/또는 수정 위치 결정 컴포넌트(1552)에 의해 결정된] 토글링 지시를 제공하는, 단계(2312)에서 구축된 토글 트리 내의 각 최상위 노드에 상응하며 단계(2304)에서 검출된 삽입가능한 영역을 [예컨대, 수정 컴포넌트(1554)에 의해] 토글링함으로써 이미지에 워터마크가 적어도 일부 삽입된다.
본 명세서에 기술된 여러 가지 측면에 대한 부가적인 컨텍스트를 제공하기 위하여, 도 24 및 아래의 논의는, 본 발명의 여러 가지 측면이 구현될 수 있는 적절한 컴퓨팅 환경(2400)의 명백하고 일반적인 기술을 제공하는 것으로 의도된다. 또한, 상기 특징이 하나 이상의 컴퓨터에 실행될 수 있는 컴퓨터 실행가능한 명령어의 일반적인 컨텍스트로 상기 기술되었지만, 당업자는 상기 특징이 다른 프로그램 모듈 및/또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있음을 알 것이다.
일반적으로, 프로그램 모듈은 특정의 작업(task)을 실행하거나 특정의 추상적인 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 본 발명이 단일 프로세서 또는 멀티 프로세서 컴퓨터 시스템, 미니 컴퓨터, 메인프레임(mainframe) 컴퓨터 뿐만 아니라 개인용 컴퓨터, 핸드 헬드(hand-held) 컴퓨팅 장치, 마이크로프로세서 기반 또는 프로그래머블(programmable) 소비자 전자 장치 등, 하나 이상의 관련 장치와 연결하여 동작할 수 있는 다른 컴퓨터 시스템 구성과 함께 실시될 수 있음을 인식할 것이다.
도시된 측면은, 특정 작업이 통신 네트워크를 통해 연결된 원격 처리 장치에 의해 실행되는 분산된 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원거리 메모리 저장 장치 모두에 위치될 수 있다.
컴퓨터는 일반적으로 다양한 컴퓨터로 판독 가능한 매체를 포함한다. 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 접근될 수 있는 어떠한 이용가능한 매체일 수 있고, 휘발성 및 비휘발성, 착탈식 및 고정식 매체 모두를 포함한다. 한정되지 아니하는 예로서, 컴퓨터로 판독 가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터로 판독 가능한 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 방법 또는 기법으로 구현된 착탈식 매체와 고정식 매체뿐 아니라 휘발성 매체와 비휘발성 매체를 포함한다. 컴퓨터 저장 매체는, 램(RAM), 롬(ROM), 이이피롬(EEPROM), 플래시 메모리(flash memory) 또는 다른 메모리 기술, 시디롬(CDROM), 디지털 다기능 디스크(DVD: digital versatile disks) 또는 기타 광 디스크 저장소(optical disk storage), 자기 카세트(magnetic cassettes), 자기 테이프(magnetic tape), 자기 디스크 저장소(magnetic disk storage) 또는 다른 자기 저장 장치, 또는 컴퓨터에 의해 접근할 수 있고 원하는 정보를 저장하기 위해 사용될 수 있는 다른 임의의 매체를 포함할 수 있으며 이에 제한되는 것은 아니다.
통신 매체는, 반송파(carrier wave) 또는 다른 전송 메커니즘(transport mechanism)과 같은 변조된(modulated) 데이터 신호에, 컴퓨터로 판독 가능한 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 포함할 수 있고, 임의의 적절한 정보 전달 매체(information delivery media)를 포함할 수 있다. "변조된 데이터 신호"란 용어는 신호의 정보를 암호화(encode)하기 위해 이와 같이 설정되거나 변경되는 하나 이상의 특징을 가지는 신호를 뜻한다. 한정되지 아니하는 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체 및 음향(acoustic), 무선 주파수(RF), 적외선(infrared) 및 다른 무선 매체와 같은 무선 매체를 포함한다. 상기 장치들의 조합도 컴퓨터로 판독 가능한 매체의 범위에 포함될 수 있다.
도 24를 다시 참조하면, 본 명세서에 기술된 여러 가지 측면을 실행하기 위한 예시적인 환경(2400)은 컴퓨터(2402)를 포함하고, 컴퓨터(2402)는 처리 장치(2404), 시스템 메모리(2406) 및 시스템 버스(2408)를 포함한다. 시스템 버스(2408)는, 시스템 메모리(2406) 내지 처리 장치(2404)를 포함하는 시스템 컴포넌트에 연결되나 이에 제한되는 것은 아니다. 처리 장치(2404)는 여러 가지 상업적으로 이용 가능한 프로세서 중의 어떤 것이든 될 수 있다. 듀얼(dual) 마이크로프로세서 및 다른 멀티 프로세서 아키텍처가 처리 장치(2404)로 채용될 수 있다.
시스템 버스(2408)는, 여러 가지 상업적으로 이용 가능한 버스 아키텍처 중의 임의의 것을 이용하는 메모리 버스(메모리 컨트롤러 포함 또는 미포함), 주변 장치(peripheral) 버스 및 로컬 버스와 추가로 서로 연결되는 버스 구조의 몇 가지 타입 중의 임의의 것이 될 수 있다. 시스템 메모리(2406)는 ROM(read only memory)(2410) 및 RAM(random access memory)(2412)을 포함한다. 기본 입출력 시스템(basic input/output system: BIOS)이 ROM, EPROM, EEPROM과 같은 비휘발성 메모리(2410)에 저장되고, BIOS는 스타트 업(start-up)과 같은 기간 동안, 컴퓨터(2402) 내의 구성 요소(elements) 사이에서 정보를 전송하는 것을 도와주는 기본 루틴(basic routines)을 포함한다. RAM(2412)은 데이터를 캐싱(caching)하기 위한 정적(static) RAM과 같은 고속 RAM을 포함할 수 있다.
컴퓨터(2402)는 내부 하드 디스크 드라이브(hard disk drive: HDD)(2414)(예컨대, EIDE, SATA), 자기 플로피 디스크 드라이브(floppy disk drive: FDD)(2416)[예컨대, 착탈식 디스켓(2418)을 판독 또는 기록] 및 광 디스크 드라이브(2420)[예컨대, CD-ROM 디스크(2422)를 판독하거나, DVD와 같은 다른 고용량 광 매체를 판독 또는 기록]를 더 포함한다. 내부 하드 디스크 드라이브(2414)는 또한 적절한 섀시(chasis)(미도시) 내에서 외부적 사용을 위해 구성될 수도 있다. 하드 디스크 드라이브(2414), 자기 디스크 드라이브(2416) 및 광 디스크 드라이브(2420)는 각각 하드 디스크 드라이브 인터페이스(2424), 마그네틱 디스크 드라이브 인터페이스(2426) 및 광 디스크 드라이브 인터페이스(2428)에 의해 시스템 버스(2408)와 연결될 수 있다. 외부 드라이브 구현을 위한 인터페이스(2424)는 범용 직렬 버스(Universal Serial Bus: USB) 및 IEEE-1394 인터페이스 기술 중 적어도 하나 또는 모두를 포함한다. 다른 외부 드라이브 연결 기술도 본 명세서의 고찰 범위 내에 속한다.
드라이브 및 그와 관련된 컴퓨터로 판독 가능한 매체는 데이터 비휘발성 저장소, 데이터 구조, 컴퓨터 실행 가능한 명령어 등을 제공한다. 컴퓨터(2402) 드라이브 및 매체는 적절한 미디어 포맷으로 데이터의 저장소를 수용한다. 비록 컴퓨터로 판독 가능한 매체의 기술은 HDD, 착탈식 자기 디스크 및 CD 또는 DVD와 같은 착탈식 광 매체로 상기 언급하였지만, 집(zip) 드라이브, 자기 카세트, 플래시 메모리 카드, 카트리지(cartridge) 등과 같은 컴퓨터에 의해 판독 가능한 다른 타입의 매체가 예시적인 동작 환경에 사용될 수 있고, 또한 이러한 매체는 본 명세서에 기술된 방법을 수행하기 위한 컴퓨터 실행 가능한 명령어를 포함할 수 있다는 것이 당업자에게 인식되어야 한다.
운영 체제(2430), 하나 이상의 어플리케이션 프로그램(2432), 다른 프로그램 모듈(2434) 및 프로그램 데이터(2436)를 포함하는 수많은 프로그램 모듈이 드라이브 및 RAM(2412)에 저장될 수 있다. 운영 체계, 어플리케이션, 모듈 및/또는 데이터의 전부 또는 일부는 RAM(2412)에 캐싱될 수도 있다. 본 발명이 여러 가지 상업적으로 이용 가능한 운영 체제 또는 운영 체제의 조합으로 구현될 수 있다는 것이 인식된다.
사용자는 명령(command) 및 정보를 예컨대, 키보드(2438) 및 마우스(2440)와 같은 포인팅 장치 등의 하나 이상의 유선/무선 입력 장치를 통해 컴퓨터(2402)로 입력할 수 있다. 다른 입력 장치(미도시)는 마이크로폰(microphone), IR 리모컨(remote control), 조이스틱(joystick), 게임 패드(game pad), 스타일러스 펜(stylus pen), 터치 스크린 등을 포함할 수 있다. 이러한 그리고 다른 입력 장치는 종종 시스템 버스(2408)와 연결된 입력 장치 인터페이스(2442)를 통해 처리 장치(2404)로 연결되지만, 병렬 포트(parallel port), 시리얼 포트(serial port), IEEE-1394 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스에 의해서도 연결될 수 있다.
모니터(2444) 및 다른 타입의 표시 장치도 비디오 어댑터(2446)와 같은 인터페이스를 통해 시스템 버스(2408)로 연결될 수 있다. 모니터(2444)와 더불어, 컴퓨터는 대체로 스피커, 프린터 등과 같은 다른 주변 출력 장치(미도시)를 포함한다.
컴퓨터(2402)는 원격 컴퓨터(2448)과 같은 하나 이상의 원격 컴퓨터와 무선 및/또는 유선 통신을 통한 논리적 연결을 이용하는 네트워크 환경 내에서 동작할 수 있다. 원격 컴퓨터(2448)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서 기반의 오락 기구(entertainment alliance), 피어(peer) 장치 또는 다른 일반적인 네트워크 노드일 수 있고, 비록 간결화의 목적으로 메모리/저장 장치(2450)만이 도시되었지만, 대체로 컴퓨터(2402)와 관련하여 기술된 구성 요소의 다수 또는 모두를 포함한다. 기술된 논리적 연결은 로컬 영역 네트워크(local area network: LAN)(2452) 및/또는 광역 네트워크(wide area network: WAN)(2454)와 같은 더 큰 네트워크에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워크 환경은 사무실 및 회사에 흔한 것이고, 인트라넷(intranet)과 같은 전사적(enterprise-wide) 컴퓨터 네트워크를 용이하게 한다. 상기 네트워크 환경 모두는 인터넷과 같은 글로벌 통신 네트워크에 연결될 수 있다.
LAN 네트워크 환경에 사용될 때, 컴퓨터(2402)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(2456)를 통해 로컬 네트워크(2452)에 연결된다. 어댑터(2456)는 LAN(2452)로의 유선 또는 무선 통신을 용이하게 할 수 있고, LAN(2452)는 또한 무선 어댑터(2456)와의 통신을 위해 LAN(2452)상에 배치된 무선 접근 점(access point)을 포함할 수도 있다.
WAN 네트워크 환경에 사용될 때, 컴퓨터(2402)는 모뎀(2458)을 포함하거나, WAN(2454) 상의 통신 서버로 연결되거나, 인터넷과 같은 방법으로 WAN(2454)을 통해 통신을 성립시키는 다른 수단을 가질 수 있다. 내부 또는 외부에 있을 수 있고 유선 또는 무선 장치일 수 있는 모뎀(2458)은 시리얼 포트 인터페이스(2442)를 통해 시스템 버스(2408)에 연결될 수 있다. 네트워크 환경에서, 컴퓨터(2402)와 관련하여 기술된 프로그램 모듈 또는 그 일부는 원격 메모리/저장 장치(2450)에 저장될 수 있다. 도시된 네트워크 연결은 예시적인 것이고 컴퓨터 사이의 통신 링크를 성립시키는 다른 수단이 사용될 수 있다는 것이 인식될 수 있다.
컴퓨터(2402)는, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, 휴대용 데이터 어시스턴트, 통신 위성, 무선 검출 가능한 태그와 관련된 장치 또는 위치[예컨대, 키오스크(kiosk), 신문 가판대, 휴게실] 및 전화기와 같이 무선 통신하에 놓여져 동작하는 임의의 무선 장치 또는 엔티티와 무선 통신하도록 동작한다. 이는 적어도 와이파이(Wi-Fi) 및 블루투스(BluetoothTM) 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크와 함께 미리 정의된 구조 이거나, 단지 적어도 두 장치 사이의 애드혹(ad hoc) 통신일 수 있다.
와이파이 또는 무선 적합(Wireless Fidelity)은, 기지국의 범위 안 어디든 데이터의 송수신이 가능하도록 하는 휴대폰에 사용되는 기술과 비슷한 무선 기술이다. 와이파이 네트워크는 안전하고, 신뢰할 만하고 빠른 무선 연결을 제공하는 IEEE-802.11(a, b, g 등) 무선 기술을 사용한다. 와이파이 네트워크는 컴퓨터를 서로 연결하고, 인터넷 및 유선 네트워크[IEEE-802.3 또는 이더넷(Ethernet)을 사용하는]에 연결하는데 사용될 수 있다. 와이파이 네트워크는 13 Mbps(802.11a) 또는 54Mbps(802.11b)의 데이터 레이트로, 인가되지 않은 2.4 및 5GHx의 무선 밴드 내에서 동작하거나 양 밴드(듀얼 밴드)를 모두 포함하는 제품과 함께 동작한다. 따라서, 와이파이 무선 기술을 사용한 네트워크는 10BaseT 무선 이더넷 네트워크와 비슷한 실제 성능을 제공할 수 있다.
이제 도 25를 참조하면, 개시된 아키텍처를 실행 가능한 대표적인 컴퓨터 편집 시스템의 대략적인 블록도가 도시된다. 시스템(2500)은 하나 이상의 클라이언트(2502)를 포함한다. 클라이언트(2502)는 하드웨어 및/또는 소프트웨어[예컨대, 스레드(thread), 프로세스, 컴퓨팅 장치]일 수 있다. 일 예에서, 클라이언트(2502)는 본 명세서에 기술된 하나 이상의 특징을 채용함으로써 쿠키(cookie) 및/또는 관련 컨텍스트 정보를 수용할 수 있다.
시스템(2500)은 하나 이상의 서버(2504)도 포함한다. 서버(2504)도 하드웨어 및/또는 소프트웨어[예컨대, 스레드(thread), 프로세스, 컴퓨팅 장치]일 수 있다. 일 예에서, 서버(2504)는 본 명세서에 기술된 하나 이상의 특징을 채용함으로써 변환을 수행하는 스레드를 수용할 수 있다. 클라이언트(2502)와 서버(2504) 사이에 가능한 한 가지 통신은 둘 이상의 컴퓨터 프로세스 사이에 전송되도록 변경된 데이터 패킷의 형태일 수 있다. 예를 들면, 데이터 패킷은 쿠키 및/또는 관련 컨텍스트 정보를 포함할 수 있다. 시스템(2500)은 클라이언트(2502)와 서버(2504) 사이의 통신을 용이하게 하기 위해 채용될 수 있는 통신 프레임 워크(2506)(예컨대, 인터넷과 같은 글로벌 통신 네트워크)를 포함한다.
통신은 유선(광섬유 포함) 및/또는 무선 기술을 통해 용이하게 될 수 있다. 클라이언트(2502)는 클라이언트(2502)와 연결된 정보(예컨대, 쿠키 및/또는 관련 컨텍스트 정보)를 저장하기 위해 채용될 수 있는 하나 이상의 클라이언트 데이터 저장소(2508)에 연결되어 동작한다. 비슷하게, 서버(2504)는 서버(2504)와 연결된 정보를 저장하기 위해 채용될 수 있는 하나 이상의 서버 데이터 저장소(2510)에 연결되어 동작한다.
본 발명이 예시로서 본 명세서에 기술되었다. 본 명세서에 개시된 발명은 분명 이러한 예시들에 의해 제한되지 않는다. 나아가, 본 명세서에서 "예시적"이라고 기술된 임의의 측면 또는 디자인은 반드시 다른 측면 또는 디자인에 비해 유리하거나 바람직한 것은 아니며, 당업자에게 알려진 예시적인 균등 구조 및 기술을 배제하는 것도 아니다. 아울러, 상세한 설명 또는 청구항에서 사용되는 "포함한다", "갖는다", "가지고 있다" 및 기타 유사한 단어들은 분명 추가적인 또는 기타 요소들을 배제하지 않는 열린 표현으로서 "포함한다"는 것을 의미하기 위한 것이다.
또한, 본 명세서에 기술된 대상은 시스템, 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 이용하여 소프트웨어, 펌웨어(firmware), 하드웨어, 또는 이들의 임의의 조합을 생산하기 위한 제조 방법으로 구현될 수 있다. 이들은 본 명세서에 기술된 상세한 측면을 구현하기 위하여 컴퓨터 또는 처리장치 기반의 장치를 제어하기 위한 것일 수 있다. 본 명세서에서 "제조 방법", "컴퓨터 프로그램 제품" 또는 유사한 용어들은 임의의 컴퓨터로 판독 가능한 장치, 매개체(carrier), 또는 매체로부터 접근 가능한 컴퓨터 프로그램을 포함하도록 의도된 것이다. 예를 들어, 컴퓨터로 판독 가능한 매체는 자기 저장 장치(예컨대, 하드 디스크, 플로피 디스크, 자기 스트립(strip)...), 광학 디스크(예컨대, 콤팩트 디스크(compact disk; CD), 디지털 다기능 디스크(digital versatile disk; DVD)...), 스마트 카드, 및 플래쉬 메모리 장치(예컨대, 카드, 스틱)를 포함할 수 있으나 이에 제한되는 것은 아니다. 나아가, 컴퓨터로 판독 가능한 전자 데이터를 운반하기 위하여 반송파(carrier wave)를 이용할 수 있다는 것이 알려져 있으며, 전자 메일의 송신 및 수신이나 인터넷 또는 로컬 영역 네트워크(local area network; LAN) 등의 네트워크에 접근하는데에 사용되는 것 등이 있다.
전술한 시스템들은 몇몇 컴포넌트들 사이의 상호 작용을 참조로 하여 기술되었다. 이러한 시스템들 및 컴포넌트들은, 이들 컴포넌트들 또는 특정 서브컴포넌트들, 특정 컴포넌트들 또는 서브컴포넌트들 중 몇몇, 및/또는 추가 컴포넌트들을 포함할 수 있으며, 이들의 다양한 치환 및 조합을 포함할 수도 있다. 서브컴포넌트들은 또한 예컨대 계급 배열에 따라 상위 컴포넌트에 포함되기 보다는 다른 컴포넌트들에 통신 연결된 컴포넌트들로 구현될 수도 있다. 나아가, 하나 이상의 컴포넌트들이 단일 컴포넌트로 조합되어 집합 기능을 제공하거나 몇몇의 개별 서브컴포넌트로 분할될 수 있으며, 이러한 서브컴포넌트들을 통신 연결하여 통합된 기능을 제공하기 위하여 관리 계층(management layer)과 같은 하나 이상의 중간 계층(middle layer)이 제공될 수 있다. 본 명세서에서 기술된 임의의 컴포넌트들은, 본 명세서에 특정하여 기술되지 않았으나 당업자에게 알려진 하나 이상의 다른 컴포넌트들과 상호 작용할 수도 있다.

Claims (19)

  1. 메모리에 의해 저장될 이진 정보를 인식하는 단계;
    복수 개의 노드를 포함하는 계층적 데이터 구조를 생성하는 단계로서, 상기 복수 개의 노드는 상기 메모리에 의해 현재 저장된 각 정보 비트를 포함하는, 상기 계층적 데이터 구조를 생성하는 단계;
    상기 계층적 데이터 구조의 최하위 열의 노드의 각 패리티 값을 결정하는 단계; 및
    상기 계층적 데이터 구조의 최하위 열의 노드의 각 패리티 값이 상기 메모리에 의해 저장될 상기 이진 정보의 상응하는 비트에 대응되도록 상기 계층적 데이터 구조의 하나 이상의 노드의 이진 값을 토글링하는 단계를 포함하는, 메모리에 이진 정보를 기록하는 방법.
  2. 제 1항에 있어서,
    상기 계층적 데이터 구조를 생성하는 단계는, 하나 이상의 이진 피라미드 구조를 생성하는 단계를 포함하되, 상기 하나 이상의 이진 피라미드 구조의 최하위 열의 노드의 개수는 인식된 상기 이진 정보의 비트의 수와 동일한 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  3. 제 2항에 있어서,
    상기 토글링하는 단계는, 상기 이진 피라미드 구조의 최하위 열에서, 노드에 대하여 결정된 패리티 값이 인식된 상기 이진 정보의 상응하는 비트와 상이한 각 노드에 대해 토글링 지시를 제공하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  4. 제 3항에 있어서,
    상기 토글링하는 단계는,
    토글링 지시가 제공된 연속적인 노드의 그룹을 인식하는 단계;
    인식된 상기 연속적인 노드의 그룹의 각 노드에 의해 제공된 토글링 지시를, 인식된 상기 연속적인 노드의 그룹의 각 노드에 대한 최하위 공통 선행자 노드에서의 단일 토글링 지시로 대체하는 단계; 및
    상기 하나 이상의 이진 피라미드 구조에서 토글링 지시가 제공된 노드의 이진 값을 토글링하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  5. 제 2항에 있어서,
    상기 결정하는 단계는, 노드의 이진 값, 패리티 값이 계산된 상기 노드의 왼쪽 출처 노드의 패리티 값, 패리티 값이 계산된 상기 노드의 오른쪽 출처 노드의 패리티 값, 및 상기 왼쪽 출처 노드 및 상기 오른쪽 출처 노드의 공통 출처 노드인 위쪽 출처 노드의 패리티 값에 배타적 OR 연산을 수행함으로써 이진 피라미드 구조의 노드의 패리티 값을 결정하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  6. 제 1항에 있어서,
    상기 계층적 데이터 구조를 생성하는 단계는 완전 N형 트리 구조를 생성하는 단계를 포함하되, 상기 트리 구조의 최하위 열은 상기 트리 구조의 리프 노드에 대응되는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  7. 제 6항에 있어서,
    상기 계층적 데이터 구조를 생성하는 단계는, 하나 이상의 트리 구조의 리프 노드의 수가 인식된 상기 이진 정보의 비트의 수와 동일하도록 상기 하나 이상의 트리 구조를 제공하는 단계를 더 포함하며,
    상기 결정하는 단계는, 각 리프 노드로부터 루트 노드까지의 경로 내의 노드의 패리티를 결정함으로써, 상기 하나 이상의 트리 구조의 각 리프 노드의 패리티 값을 결정하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  8. 제 7항에 있어서,
    상기 토글링하는 단계는,
    상기 하나 이상의 트리 구조의 리프 노드의 각 패리티 값 및 상기 이진 정보의 상응하는 비트를 비교하여 토글 어레이를 구하는 단계; 및
    적어도 부분적으로 상기 토글 어레이의 각 요소를 리프 노드로 사용하여 상기 하나 이상의 트리 구조에 상응하는 하나 이상의 토글 트리를 구축하는 단계; 및
    모든 리프 노드의 패리티 값이 인식된 상기 이진 정보의 상응하는 비트에 대응되지 않는 하나 이상의 토글 트리의 각 최상위 노드에 상응하는, 상기 하나 이상의 트리 구조의 각 노드의 이진 값을 토글링하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  9. 제 6항에 있어서,
    상기 결정하는 단계는, 노드의 이진 값 및 패리티 값이 계산된 상기 노드의 부모 노드의 패리티 값 사이의 배타적 OR 연산을 수행함으로써 트리 구조의 노드의 패리티 값을 결정하는 단계를 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  10. 제 1항에 있어서,
    상기 메모리에 의해 현재 저장된 정보 비트는 데이터의 이전 통신에 상응하며, 인식된 상기 이진 정보는 데이터의 후속 통신에 상응하되,
    상기 방법은, 상기 데이터의 이전 통신에 상응하는 데이터를 인식된 이진 데이터로 변환하는 하나 이상의 토글링 위치를 송신함으로써 상기 데이터의 후속 통신을 수행하는 단계를 더 포함하는 것을 특징으로 하는, 메모리에 이진 정보를 기록하는 방법.
  11. 메모리 내의 각 정보 비트의 저장 위치를, 상기 저장 위치에 각각 상응하는 복수 개의 노드를 갖는 하나 이상의 이진 피라미드 구조로 그룹화하는 샴페인 피라미드 컴포넌트;
    상기 메모리에 기록된 원본 정보에 기초하여, 상기 하나 이상의 이진 피라미드 구조의 최하위 열의 각 노드의 패리티 값을 결정하는 패리티 검사 컴포넌트; 및
    상기 하나 이상의 이진 피라미드 구조의 최하위 열의 노드의 패리티 값이 상기 메모리에 기록될 이진 정보의 상응하는 비트에 대응되도록, 상기 하나 이상의 이진 피라미드 구조의 하나 이상의 노드의 이진 값을 토글링하는 토글링 컴포넌트를 포함하는, 이진 정보를 기록하는 시스템.
  12. 제 11항에 있어서,
    상기 하나 이상의 이진 피라미드 구조의 최하위 열에서 각 노드에 대해 결정된 패리티 값이 상기 메모리에 저장될 상기 이진 정보의 상응하는 비트와 상이한 상기 각 노드에 대한 토글링 지시를 제공하는 비교 컴포넌트를 더 포함하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  13. 제 12항에 있어서,
    상기 하나 이상의 이진 피라미드 구조의 최하위 열에서 토글링 지시가 제공된 연속적인 노드의 그룹을 인식하고, 인식된 상기 연속적인 노드의 그룹의 각 노드에 의해 제공된 토글링 지시를, 인식된 상기 연속적인 노드의 그룹의 각 노드에 대한 최하위 공통 선행자 노드에서의 단일 토글링 지시로 대체하는 향 첨가 최적화 컴포넌트를 더 포함하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  14. 제 13항에 있어서,
    상기 토글링 컴포넌트는 상기 하나 이상의 이진 피라미드 구조에서 토글링 지시가 제공된 각 노드의 이진 값을 토글링하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  15. 메모리 내의 저장 위치에 상응하는 복수 개의 노드를 갖는 하나 이상의 N형 완전 트리로 메모리 내에 정보를 저장하는 트리 컴포넌트;
    상기 메모리에 기록된 원본 정보에 기초하여, 상기 하나 이상의 N형 완전 트리의 리프 노드의 각 패리티 값을 결정하는 패리티 검사 컴포넌트; 및
    상기 리프 노드의 패리티 값이 상기 메모리에 기록될 이진 정보의 상응하는 비트에 대응되도록, 상기 하나 이상의 N형 완전 트리의 하나 이상의 노드의 이진 값을 수정하는 수정 컴포넌트를 포함하는, 이진 정보를 기록하는 시스템.
  16. 제 15항에 있어서,
    상기 하나 이상의 N형 완전 트리의 리프 노드의 각 패리티 값을 상기 메모리에 기록될 상기 이진 정보의 상응하는 비트와 비교함으로써 하나 이상의 토글 어레이를 구축하는 비교 컴포넌트를 더 포함하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  17. 제 16항에 있어서,
    상기 하나 이상의 N형 완전 트리에 상응하는 하나 이상의 토글 트리를 구축하는 근원 조사 컴포넌트를 더 포함하되, 상기 하나 이상의 토글 트리는 상기 하나 이상의 토글 어레이의 각 요소를 리프 노드로 이용하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  18. 제 17항에 있어서,
    모든 리프 노드의 패리티 값이 상기 메모리에 저장될 상기 이진 정보의 상응하는 비트에 대응되지 않는 상기 하나 이상의 토글 트리의 각 최상위 노드에 상응하는, 상기 하나 이상의 N형 완전 트리의 노드를 인식하는 수정 위치 결정 컴포넌트를 더 포함하는 것을 특징으로 하는, 이진 정보를 기록하는 시스템.
  19. 메모리에 기록될 이진 정보를 제공하는 수단;
    상기 메모리에 기록된 원본 정보를 나타내는 복수 개의 노드를 포함하는 계층적 데이터 구조를 제공하는 수단;
    상기 계층적 데이터 구조의 최하위 열의 노드의 각 패리티 값을 결정하는 수단; 및
    상기 계층적 데이터 구조의 최하위 열의 노드의 각 패리티 값이 제공된 상기 이진 정보의 상응하는 비트에 대응되도록, 상기 계층적 데이터 구조의 하나 이상의 노드의 이진 값을 토글링하는 수단을 포함하는 이진 정보를 기록하는 시스템.
KR1020137000108A 2007-04-04 2008-04-03 저 왜곡 멀티미디어 워터마킹 기술 KR101305752B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US90751307P 2007-04-04 2007-04-04
US60/907,513 2007-04-04
US12/060,949 US7986441B2 (en) 2007-04-04 2008-04-02 Embedding watermark into halftone image with low distortion using parity values for overlapping groups of candidate sites
US12/060,949 2008-04-02
PCT/US2008/059300 WO2008124528A2 (en) 2007-04-04 2008-04-03 Multimedia watermarking techniques with low distortion

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020097020691A Division KR20090127907A (ko) 2007-04-04 2008-04-03 저 왜곡 멀티미디어 워터마킹 기술

Publications (2)

Publication Number Publication Date
KR20130018368A KR20130018368A (ko) 2013-02-20
KR101305752B1 true KR101305752B1 (ko) 2013-09-06

Family

ID=39826633

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020097020691A KR20090127907A (ko) 2007-04-04 2008-04-03 저 왜곡 멀티미디어 워터마킹 기술
KR1020137000108A KR101305752B1 (ko) 2007-04-04 2008-04-03 저 왜곡 멀티미디어 워터마킹 기술

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020097020691A KR20090127907A (ko) 2007-04-04 2008-04-03 저 왜곡 멀티미디어 워터마킹 기술

Country Status (6)

Country Link
US (2) US7986441B2 (ko)
EP (1) EP2137675A4 (ko)
JP (1) JP4920783B2 (ko)
KR (2) KR20090127907A (ko)
CN (1) CN101765847B (ko)
WO (1) WO2008124528A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017082485A1 (ko) * 2015-11-10 2017-05-18 주식회사 디지워크 데이터가 삽입된 홀로그램 금속 스티커 제조 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7986441B2 (en) * 2007-04-04 2011-07-26 Wong Technologies L.L.C. Embedding watermark into halftone image with low distortion using parity values for overlapping groups of candidate sites
US8049930B2 (en) * 2008-09-15 2011-11-01 National Taiwan University Of Science And Technology Method of halftone watermarking for hiding multi-tone watermark or two-tone watermark
US8726398B1 (en) 2011-12-13 2014-05-13 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9413526B1 (en) 2011-03-08 2016-08-09 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9852311B1 (en) 2011-03-08 2017-12-26 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9292696B1 (en) 2011-03-08 2016-03-22 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9338220B1 (en) 2011-03-08 2016-05-10 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US11228566B1 (en) 2011-03-08 2022-01-18 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9667741B1 (en) 2011-03-08 2017-05-30 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9356993B1 (en) 2011-03-08 2016-05-31 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9300637B1 (en) * 2011-03-08 2016-03-29 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9432342B1 (en) 2011-03-08 2016-08-30 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9384410B2 (en) 2012-05-21 2016-07-05 Nvidia Corporation Method and system for image compression while encoding at least one extra bit
KR101428028B1 (ko) * 2013-01-11 2014-08-11 동국대학교 산학협력단 데이터 은닉 장치 및 방법, 데이터 복원 장치 및 방법
DE102013103613B3 (de) * 2013-04-10 2014-09-18 Cüneyt Göktekin Erzeugung und Erkennung von fälschungssicher druckbaren Bildinformationsdaten
KR102137686B1 (ko) 2013-08-16 2020-07-24 삼성전자주식회사 컨텐츠 무결성 제어 방법 및 그 전자 장치
US9819969B2 (en) * 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
CN104917989A (zh) * 2014-03-11 2015-09-16 移康智能科技(上海)有限公司 分级水印的添加方法及其系统
US10037587B2 (en) * 2016-11-23 2018-07-31 Macau University Of Science And Technology Color image watermarking
CN109685708B (zh) * 2018-12-26 2024-02-06 珠海奔图电子有限公司 图像处理方法和装置、电子设备及计算机可读存储介质
KR102395647B1 (ko) * 2020-04-13 2022-05-09 주식회사 한글과컴퓨터 전자 문서에 포함된 이미지에 데이터의 삽입을 가능하게 하는 전자 장치 및 그 동작 방법
US11348594B2 (en) 2020-06-11 2022-05-31 Qualcomm Incorporated Stream conformant bit error resilience
KR102337677B1 (ko) * 2020-07-16 2021-12-09 (주)휴먼스케이프 디지털 검증 지문 삽입 시스템 및 그 방법
KR102642455B1 (ko) 2023-07-18 2024-02-29 (주)티엠에스 아이앤티엘 홀로그램이 적용된 의류 잡화 부자재 및 이의 제조 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006081169A (ja) 2004-08-17 2006-03-23 Sony Corp デジタルデータにウォータマークを付与するための方法及び装置
US20070047762A1 (en) 2000-08-14 2007-03-01 Au Oscar C Methods and apparatus for hiding data in halftone images
KR100754564B1 (ko) 2005-02-17 2007-09-05 인피니언 테크놀로지스 아게 에러 정정 회로, 애플리케이션 패키지, 메모리 장치,메모리 장치 내의 장애를 검출하기 위한 방법,애플리케이션 패키지를 제조하는 방법 및 에러 정정 방법
KR20080078919A (ko) * 2006-02-01 2008-08-28 후지쯔 가부시끼가이샤 패리티 생성 회로, 패리티 생성 회로용 구성 회로, 정보처리 장치, 및 인코더

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9016420D0 (en) * 1990-07-26 1990-09-12 British Telecomm Block coded modulation
US20020009208A1 (en) 1995-08-09 2002-01-24 Adnan Alattar Authentication of physical and electronic media objects using digital watermarks
US5675590A (en) * 1994-11-23 1997-10-07 At&T Wireless Services, Inc. Cyclic trellis coded modulation
US5960041A (en) * 1995-09-21 1999-09-28 Lucent Technologies Inc. Method and apparatus for generating high rate codes for recording information on a magnetic medium
US6665832B1 (en) * 2000-03-31 2003-12-16 Qualcomm, Incorporated Slotted mode decoder state metric initialization
US20020021770A1 (en) * 2000-05-03 2002-02-21 Beerel Peter A. Reduced-latency soft-in/soft-out module
US6993150B2 (en) * 2001-01-24 2006-01-31 Digimarc Corporation Halftone primitive watermarking and related applications
US7318185B2 (en) * 2001-08-23 2008-01-08 Nortel Networks Limited Method and apparatus for scrambling based peak-to-average power ratio reduction without side information
US6775394B2 (en) * 2002-03-12 2004-08-10 Matsushita Electric Industrial Co., Ltd. Digital watermarking of binary document using halftoning
GB2400526B (en) 2003-04-08 2005-12-21 Hewlett Packard Development Co Cryptographic key update management
US7324662B2 (en) * 2004-05-21 2008-01-29 Nanyang Technological University Method, software, and device for hiding data in binary image, while preserving image quality
US7436977B2 (en) * 2005-01-26 2008-10-14 Xerox Corporation Embedding variable watermark information in halftone screens
US7765456B1 (en) * 2005-03-31 2010-07-27 Xilinx, Inc. Optimal multi-user orthogonal variable spreading factor (OVSF) code generator
US8050446B2 (en) 2005-07-12 2011-11-01 The Board Of Trustees Of The University Of Arkansas Method and system for digital watermarking of multimedia signals
US7688993B2 (en) * 2005-10-21 2010-03-30 Nanyang Technological University Software and method for embedding data in two color images
US7707479B2 (en) * 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
US7986441B2 (en) * 2007-04-04 2011-07-26 Wong Technologies L.L.C. Embedding watermark into halftone image with low distortion using parity values for overlapping groups of candidate sites
US8650402B2 (en) * 2007-08-17 2014-02-11 Wong Technologies L.L.C. General data hiding framework using parity for minimal switching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070047762A1 (en) 2000-08-14 2007-03-01 Au Oscar C Methods and apparatus for hiding data in halftone images
JP2006081169A (ja) 2004-08-17 2006-03-23 Sony Corp デジタルデータにウォータマークを付与するための方法及び装置
KR100754564B1 (ko) 2005-02-17 2007-09-05 인피니언 테크놀로지스 아게 에러 정정 회로, 애플리케이션 패키지, 메모리 장치,메모리 장치 내의 장애를 검출하기 위한 방법,애플리케이션 패키지를 제조하는 방법 및 에러 정정 방법
KR20080078919A (ko) * 2006-02-01 2008-08-28 후지쯔 가부시끼가이샤 패리티 생성 회로, 패리티 생성 회로용 구성 회로, 정보처리 장치, 및 인코더

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017082485A1 (ko) * 2015-11-10 2017-05-18 주식회사 디지워크 데이터가 삽입된 홀로그램 금속 스티커 제조 방법

Also Published As

Publication number Publication date
EP2137675A4 (en) 2010-04-14
US20080250056A1 (en) 2008-10-09
WO2008124528A2 (en) 2008-10-16
JP4920783B2 (ja) 2012-04-18
KR20130018368A (ko) 2013-02-20
EP2137675A2 (en) 2009-12-30
US20080247002A1 (en) 2008-10-09
US7986441B2 (en) 2011-07-26
KR20090127907A (ko) 2009-12-14
WO2008124528A4 (en) 2009-10-15
CN101765847B (zh) 2012-11-21
CN101765847A (zh) 2010-06-30
JP2010532595A (ja) 2010-10-07
WO2008124528A3 (en) 2009-08-13

Similar Documents

Publication Publication Date Title
KR101305752B1 (ko) 저 왜곡 멀티미디어 워터마킹 기술
Liao et al. New cubic reference table based image steganography
Wang et al. Reversible data hiding scheme based on significant‐bit‐difference expansion
Lee et al. A novel data hiding scheme based on modulus function
Dasgupta et al. Optimized video steganography using genetic algorithm (GA)
US8650402B2 (en) General data hiding framework using parity for minimal switching
Hameed et al. A secure data hiding approach based on least-significant-bit and nature-inspired optimization techniques
Di et al. High-fidelity reversible data hiding by Quadtree-based pixel value ordering
Loukhaoukha et al. A robust SVD-based image watermarking using a multi-objective particle swarm optimization
CN108805788B (zh) 基于图像拓扑结构的可逆水印方法
Peng et al. Reversible data hiding based on RSBEMD coding and adaptive multi-segment left and right histogram shifting
Xue et al. Efficient halftone image steganography based on dispersion degree optimization
Kamili et al. Embedding information reversibly in medical images for e-health
Lin et al. Reversible Image Data Hiding Using Quad-tree Segmentation and Histogram Shifting.
Lee et al. A lossless large-volume data hiding method based on histogram shifting using an optimal hierarchical block division scheme
Roselinkiruba et al. Secure video steganography using key frame and region selection technique
CN102760280A (zh) 一种大容量可逆水印的嵌入和提取方法及其实现系统
Sharma et al. A single watermark based scheme for both protection and authentication of identities
Wang An efficient multiple-bit reversible data hiding scheme without shifting
Kouge et al. Accelerating digital halftoning using the local exhaustive search on the GPU
Chan et al. A User-Friendly Image Sharing Scheme Using JPEG-LS Median Edge Predictor.
Mandal et al. Variant of LSB steganography algorithm for hiding information in RGB images
Xu et al. 3D PEE mapping based reversible data hiding for color images
Dong et al. Robust image data hiding method based on multiple backups and pixel bit weight
Yang et al. A novel reversible data hiding based on adaptive block‐partition and payload‐allocation method

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 7