KR20050031410A - 디지털 비디오를 위한 워터마킹 체계 - Google Patents

디지털 비디오를 위한 워터마킹 체계 Download PDF

Info

Publication number
KR20050031410A
KR20050031410A KR1020040076856A KR20040076856A KR20050031410A KR 20050031410 A KR20050031410 A KR 20050031410A KR 1020040076856 A KR1020040076856 A KR 1020040076856A KR 20040076856 A KR20040076856 A KR 20040076856A KR 20050031410 A KR20050031410 A KR 20050031410A
Authority
KR
South Korea
Prior art keywords
block
value
frames
frame
video signal
Prior art date
Application number
KR1020040076856A
Other languages
English (en)
Other versions
KR101110083B1 (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 KR20050031410A publication Critical patent/KR20050031410A/ko
Application granted granted Critical
Publication of KR101110083B1 publication Critical patent/KR101110083B1/ko

Links

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0085Time domain based watermarking, e.g. watermarks spread over several images
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0202Image watermarking whereby the quality of watermarked images is measured; Measuring quality or performance of watermarking methods; Balancing between quality and robustness

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)
  • Television Systems (AREA)

Abstract

블록의 크로미넌스부의 평균값에 각인될 데이터가 적어도 1회 복제된다. 원본 및 각각의 복제본은 개별 프레임들의 동일 블록 위치 내의 블록들에 각인된다. 동일한 데이터를 수반하는 유사 위치 설정 블록들을 갖는 프레임들은 그룹으로서 고려된다. 프레임의 특정 블록들은 사용자 데이터보다는 특정 공지된 데이터로 매입될 수 있다. 각각의 그룹은 상이한 공지의 시퀀스를 이용할 수 있다. 그룹의 각각의 유사 위치 설정 블록에 대해 데이터를 단순히 반복하는 대신에, 각각의 이러한 블록에 대한 평균값에 가산된 양을 블록들의 복잡성이 동일할 때에도 그룹 내의 프레임으로부터 프레임으로 약간 변경할 수 있다. 수신기에서, 동일한 데이터 비트의 다수의 인스턴스들이 단일 수신 비트를 형성하도록 추출되어 조합된다.

Description

디지털 비디오를 위한 워터마킹 체계{Watermarking scheme for digital video}
관련 출원들에 대한 교차 참조
미국 특허 출원들 자라비자데흐(Zarrabizadeh)(22) 및 자라비자데흐(24)가 동시 출원되었다.
기술 분야
본 발명은 디지털 비디오를 워터마킹하는 기술에 관련하며, 특히, 디지털 비디오 정보내에 부가 정보를 포함시키는 것에 관련한다.
발명의 배경
비디오 신호들의 워터마킹은 개괄적으로, 부가 정보를 비디오 그 자체내에 포함시키는 것이다. 이는 비디오가 어디서, 얼마나 오래 상연되는지의 추적을 유지하고, 비디오를 경유하여 정보를 보조 디바이스로 통신하도록 비디오의 소스의 이식된 식별을 제공하기 위해 유용할 수 있다. 비디오 신호들을 워터마킹하기 위한 종래 기술들은 일반적으로 부가 정보를 수반하도록 비디오의 휘도를 사용하여 비디오 그 자체내에 아날로그 포맷의 부가 정보를 인코딩하였다. 그러나, 인간 시각 시스템은 휘도 신호에 매우 민감하며, 그래서, 특정 지점, 예로서, 초당 120 비트를 초과하여 부가 정보의 비트 레이트를 증가시키기 위한 시도가 있을 때, 워터마킹된 신호를 관찰하는 사람이 부가 정보를 전달하기 위해 비디오 신호에 이루어진 변경들에 의해 유발되는 왜곡을 쉽게 인지할 수 있다. 따라서, 비디오 신호들의 워터마킹의 종래 기술들이 특정 적용들에서 소정의 성공을 이루어왔지만, 이런 성공은 부가 정보를 수반하는 비디오 신호를 시청하는 사람이 인자할 수 있는 왜곡이 없이 달성될 수 있는 극도로 작은 비트 레이트로 한정되어왔다.
본 명세서에 완전히 기술된 것처럼 참조로 포함되어 있는 이미 출원된 미국 특허 출원 제 10/342704 호는 본인은 나의 공동발명자와 함께 인간 시각 시스템이 회도 보다 크로미넌스에 매우 덜 민감하다는 것을 인식하였다. 따라서, 그 휘도 신호가 아닌 비디오 신호의 크로미넌스 성분상에 워터마킹 신호의 부가 정보를 삽입하는 비디오 신호를 디지털 워터마킹하기 위한 시스템을 개발하였다. 따라서, 부가 정보는 비디오 신호의 크로미넌스 성분상에 "각인"된다. 비록, 특히, 부가 정보가 종래 기술에서 인지할 수 있는 왜곡 없이 달성할 수 있는 것 보다 높은 비트 레이트들을 가질 때, 크로미넌스 성분의 현저한 왜곡이 있을 수 있지만, 그럼에도 불구하고, 이런 왜곡은 적절히 관리되어 인간 시각 시스템에 의해 검출되지 않는 것이 유리하다. 따라서, 부가 정보는 종래 기술에 의해 달성가능한 것에 비해 보다 높은 비트 레이트를 가질 수 있으며, 예로서, 초당 150 비트를 초과하는 비트 레이트들이 달성될 수 있다. 또한, 부가적인 데이터는 부가적인 데이터로 워터마킹된 비디오 신호가 동화상 전문가 그룹(MPEG)-1 및 MPEG-2 인코딩 시스템들을 사용하여 압축된 이후에도 비디오 신호로부터 복원될 수 있다.
본인은 미국 특허 출원 제 10/342704 호의 시스템은 크로미넌스부상의 정보를 정확하게 전송하기 위해 비디오의 수의 프레임들을 필요로 한다는 것을 인지하였다. 이는 예로서, 비디오의 일시적 템퍼링에 대한 향상된 내성 및 보다 양호한 응답을 제공하도록 워터마킹의 보다 미세한 입도가 필요한 일부 적용들 및 특정 조건들하에서, 예로서, 추격 장면 같은 고속 이동의 경우에 급속히 이루어질 수 있는 장면 변경이 존재할 때 불리할 수 있다.
동시 출원된 미국 특허 출원 호(케이스 자라비자데흐 22)에서, 비디오의 워터마킹은 프레임 단위 기초상에서 비디오 신호의 다양한 블록들 각각의 크로미넌스 성분의 평균값을 경유하여 수반되는 워커마크 데이터의 하나 이상의 비트를 가짐으로써 향상된다. 보다 구체적으로, 워커마크 데이터의 하나 이상의 비트는 각 프레임까지의 각 블록까지의 크로미넌스 성분의 적어도 선택된 부분의 평균값의 지정된 비트 위치로 효과적으로 배치될 수 있다. 일반적으로, YUV 포맷으로 비디오가 표현될 때, 크로미넌스 성분에 두 개의 크로미넌스부들, 예로서, U 및 V가 존재한다는 것을 주의하여야 한다. 보다 구체적으로, 원본 비디오 신호의 각 프레임의 각 블록은 그 블록을 위한 워터마크 데이터를 수반하도록 선택된 크로미넌스부의 평균값의 워터마크 데이터의 그 소유의 독립적인 하나 이상의 비트를 수반하도록 변경될 수 있다. 이때, 개념적으로, 블록을 위한 워터마크 데이터를 포함하는 선택된 크로미넌스부의 평균값의 비트 위치의 값은 그 블록내에 수반되는 워터마크 데이터의 비트의 값으로 대체되는 것으로 고려될 수 있다.
크로미넌스부들 중 단 하나만이 소정의 특정 블록을 위한 워터마크 데이터를 수반한다. 소정의 블록을 위한 워터마크 데이터를 수반하도록 선택된 크로미넌스부는 그 블록을 위해 독립적으로 선택될 수 있다. 대체되는 평균값의 비트 위치는 평균값의 정수 위치의 비트 중 하나이다.
필요시, 블록의 개별 화소의 선택된 크로미넌스부의 값들은 워터마크 데이터를 수반하기 위한 블록의 선택된 크로미넌스부의 평균값의 비트가 워터마크 데이터 비트와 동일해지도록 조절될 수 있다. 이는 전체 블록에 걸쳐, 크로미넌스부의 값의 평균이 평균의 선택 비트 위치의 값이 선택된 비트 위치에 배치되는 워터마크 데이터의 값에 부합되도록 변경되도록 블록내의 다양한 화소들의 선택된 크로미넌스부의 값을 변경함으로써 달성될 수 있다.
워터마크 데이터를 포함하기 위한 평균값의 비트의 값이 이미 워터마크 데이터 비트의 값과 동일한 경우에, 블록의 화소들 중 소정의 것에 대해 어떠한 변경도 수행되지 않을 수 있다. 그러나, 워터마크 데이터를 포함하기 위한 평균값의 비트의 값이 블록에 의해 수반되는 워터마크 데이터 비트의 값의 보수인 경우, 워터마크 데이터 비트의 값으로 비트가 변경되게 하는 평균값에 대한 적어도 최소의 변경이 평균값상에 수행된다. 예로서, 워터마크 데이터를 포함하기 위한 평균값의 비트가 평균값의 정수 부분의 제 2 최하위 비트인 경우에, 이런 비트는 평균값에 1을 감산 또는 가산함으로써 항상 그 보수값으로 변경될 수 있다. 비트를 항상 그 보수값으로 변경시키기 위해서도 사용될 수 있는, 2를 가산하는 것이 적합하며, 그 이유는 평균값에 보다 적은 변경을 도입하고, 따라서, 블록에 보다 적은 변경을 도입하며, 그에 의해, 시청자-인지가능 아티팩트의 도입 기회를 감소시키기 때문이다. 블록의 선택된 크로미넌스부의 평균값에 대한 변경은 그 평균의 소정 변경이 달성될때까지 블록의 화소들 중의 것들의 선택된 크로미넌스부에 값을 가산 또는 감산에 의해 이행되며, 이는 음수들에 의해 달성될 수도 있다.
동영상 전문가 그룹(MPEG) 표준들, 예로서, MPEG-1, MPEG-2, MPEG-4 중 하나 같은 비디오의 블록 기초 주파수 도메인 인코딩을 사용할 때, 워터마크된 데이터의 비트의 치환은 블록을 위한 크로미넌스 메트릭들 중 적어도 하나의 평균값에 대응하는 DC 계수의 값을 조절함으로써 달성될 수 있다. 예로서, 블록을 위한 DC 계수의 제 2 최하위 비트가 블록상에 각인되는 것이 바람직한 워터마크 비트의 값으로 대체된다.
크로미넌스부의 평균값의 어떠한 비트가 워터마크 데이터를 수반하도록 지정되는지는 블록의 텍스쳐 변경의 함수일 수 있다. MPEG형 코팅이 보다 높은 텍스쳐 변경들을 위해 보다 큰 양자화 단계 크기들을 사용하고, 이런 보다 큰 양자화 단계 크기들의 사용이 현저히 충분히 배치되지 않은 경우 워터마킹 데이터의 소거, 예로서, 필터링 제거를 초래할 수 있기 때문에, 텍스쳐 변경이 증가할 때, 워터마크 데이터를 수반하는 비트 위치의 중요성을 증가시키는 것이 유리하다. 보다 상위의 비트 위치들을 사용할 때, 워터마크 데이터를 수반하는 비트 위치의 값을 그 보수값으로 변경시키기 위해 평균값으로부터 가산 또는 감산되는 값들은 1 보다 클 수 있다. 소정의 텍스쳐 변경, 예로서, Y, U 또는 V의 텍스쳐 변경이나 그 조합이 사용될 수 있다.
워터마크 데이터를 수반하는 비트 위치가 그 보수로 변경되든 그렇지 않든, 인지가능한 아티팩트들을 초래할 가능성을 최소화하면서, 블록의 평균값에 의해 수반된 워터마크 데이터의 비트가 소정의 MPEG형 인코딩을 견디는 것을 보다 양호하게 보증하기 위해, "여유" 값이 평균값에 추가될 수 있다.
수신기는 블록의 크로미넌스 성분들 중 어떠한 것이 워터마크 데이터를 수반하는지를 판정하고, 그 크로미넌스 성분의 평균값의 정수 부분의 선택된 비트 위치로부터 워터마크 데이터의 비트를 추출한다. 선택된 비트 위치는 블록의 텍스쳐 변경, 예로서, 휘도 성분의 텍스쳐 변경 또는 블록의 결정된 크로미넌스부의 텍스쳐 변경로부터 결정될 수 있다.
종래 기술에 관하여, 비디오의 일시적 탬퍼링에 대한 향상된 내성 및 보다 양호한 응답 시간이 달성되는 것이 적합하다. 또한, 장면 변경들은 각인된 데이터내에 에러들을 도입하지 않는 것이 유리하다. 또한, 추가적인 장점은 비디오의 원본 화소 도메인 버전이 가용하지 않고, 그 블록 기초 주파수 도메인 인코딩 버전만이 존재하는 경우에도 비디오가 화소 도메인으로의 역변환 없이 워터마킹될 수 있다는 것이다.
발명의 요약
동시 출원된 미국 특허 출원 제 호(케이스 자라비자데흐 22)가 전술된 현저한 장점들을 제공하지만, 본인은 특정 컬러 조합들에서, 부가적인 데이터가 미소한 가시적 플리커링을 유발할 수 있는 가능성이 여전히 존재하여 부적합하다는 것을 인지하였다. 또한, 미국 특허 출원 제 호(케이스 자라비자데흐 22)에서는, 수신기에서 추출된 데이터의 품질에 대한 어떠한 표시도 존재하지 않는다.
따라서, 본 발명의 원리들에 따라서, 블록의 크로미넌스부의 평균값상에 소정의 데이터가 각인되기 이전에, 데이터가 적어도 1회, 바람직하게는 2회 이상 복제된다. 원본 및 각 생성된 사본은 동시 출원된 미국 특허 출원 제 호(케이스 자라비자데흐 22)의 기술들을 사용하여 별개의 프레임들의 동일 블록 위치로 전송된다. 동일 데이터를 수반하는 유사 배치 블록들을 갖는 프레임들은 하나의 그룹이 되는 것으로 고려되며, 바람직하게는 그 프레임들은 디스플레이 순서로 연속적이다.
또한, 본 발명의 특징에 따라서, 프레임의 지정 블록들은 인코딩된 사용자 데이터가 아닌, 특정 공지된 데이터 시퀀스, 예로서, Barker 시퀀스로 이식될 수 있다. 본 발명의 다른 특징에 따라서, 열려진 시퀀스로 이식되는 지정 블록들은 프레임의 블록들 전반에 걸쳐 분포될 수 있다. 각 그룹이 서로 다른 알려진 시퀀스를 사용하거나, 동일 시퀀스가 서로 다른 연속 그룹들에 대해 사용될 수 있다.
본 발명의 특징에 따르면, 그룹의 각 유사 배치 블록을 위한 데이터를 단순 반복하는 대신, 블록들의 복잡성이 동일한 경우에도, 그룹에 걸친 유사 배치 블록들을 위해 프레임간에 미소하게 변경될 수 있다. 이렇게 하는 것은 수신기에서 데이터의 신뢰성을 증가시키기 위해 유리한 부가적인 코딩 이득을 제공한다. 그러나, 이렇게 하는 것은 블록내의 소수 화소들이 동일 위치의 그 프로세서들과 다른 값들을 가질 수 있기 때문에, 저 텍스쳐 영역들의 시각적 품질의 미소한 감소를 유발할 수 있다. 그럼에도 불구하고, 이런 시각적 품질 감소가 화소 수준에 있기 때문에, 이는 일반적으로 현저하지 않다.
수신기에서, 연속적 프레임들내의 동일 데이터 비트의 다수의 사례들이 추출 및 조합되어 단일 수신 비트를 형성한다. 본 발명의 특징에 따라서, 알려진 데이터 시퀀스가 특정 프레임들 각각의 품질을 결정하기 위해 사용될 수 있다. 결정된 품질은 프레임을 위한 가중치를 지정하기 위해 사용되며, 각 프레임으로부터 추출된 데이터의 값들은 조합 프로세스의 일부로서 그 연계된 가중치에 의해 가중된 소프트 데이터로서 처리될 수 있다. 특정 프레임의 결정된 품질이 지정된 임계치 미만인 경우에, 특정 프레임은 소정의 워터마킹 데이터를 포함하지 않는 것으로 추정될 수 있으며, 이 프레임에 대해, 어떠한 데이터도 추출되지 않는다.
상세한 설명
이하는 단지 본 발명의 원리들을 예시하는 것이다. 따라서, 본 기술의 당업자는 비록 명시적으로 여기에 설명 또는 도시되어 있지 않지만, 본 발명의 원리들을 구현하며, 그 개념 및 범주에 포함되는 다양한 배열들을 안출할 수 있다는 것을 인지하여야 한다. 또한, 여기에 사용된 모든 실시예들 및 조건적 언어는 원론적으로 단지 본 발명의 원리들 및 기술을 진일보시키기 위해 발명자(들)에 의해 제공된 개념들을 독자가 이해하는 것을 돕기 위한 교수적 목적을 위한 것이며, 이런 특정하게 언급된 실시예들 및 조건들에 대한 제한 없이 해석되어야 한다. 또한, 본 발명의 원리들, 특징들 및 구현들과, 그 특정 실시예들을 언급하는 본 명세서의 모든 진술들은 그 기능적 및 구조적 등가체들 양자 모두를 포괄하는 것을 의도한다. 부가적으로, 이런 등가체들은 현재 알려진 등가체들 및 미래에 개발될 등가체들 양자 모두, 즉, 구조에 무관하게 동일 기능을 수행하는 소정의 개발된 요소들을 포함한다.
따라서, 예로서, 본 기술 분야의 당업자는 본 명세서의 소정의 블록 다이어그램들이 본 발명의 원리들을 구현하는 예시적 회로의 개념도를 나타낸다는 것을 인지할 것이다. 유사하게, 소정의 플로우차트들, 흐름도들, 상태 전이 다이어그램들, 의사코드 등은 실질적으로 컴퓨터 판독형 매체로 표현될 수 있으며, 그래서, 이런 컴퓨터 또는 프로세서가 명시적으로 예시되어 있는지 여부에 무관하게, 컴퓨터 또는 프로세서에 의해 실행될 수 있다는 것을 인지할 것이다.
"프로세서들"이라 명명된 소정의 기능 블록들을 포함하는 도면들에 도시된 다양한 요소들의 펑션들은 적절한 소프트웨어와 연계하여 소프트웨어를 실행할 수 있는 하드웨어 및 전용 하드웨어의 사용을 통해 제공될 수 있다. 프로세서에 의해 제공될 때, 이 펑션은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 그리고, 그 일부가 공유될 수 있는 복수의 개별 프로세서들의 사용을 통해 제공될 수 있다. 또한, 용어 "프로세서" 또는 "콘트롤러"의 명시적 사용은 소프트웨어를 실행할 수 있는 하드웨어만을 지칭하는 것으로 해석되지 않아야 하며, 비제한적으로, 디지털 신호 프로세서(DSP) 하드웨어, 네트워크 프로세서, 용도 지정 집적 회로(ASIC), 필드 프로그램형 게이트 어레이(FPGA), 소프트웨어를 저장하기 위한 판독 전용 메모리(ROM), 임의 접근 메모리(RAM) 및 불휘발성 저장부를 포함한다. 종래의 및/또는 통상적인 다른 하드웨어도 포함될 수 있다. 도면들에 도시된 소정의 스위치들은 단지 개념적일 뿐이다. 그 기능은 프로그램 로직의 동작을 통해, 전용 로직을 통해, 프로그램 제어 및 전용 로직의 상호작용을 통해 또는 심지어 수동으로 수행될 수 있으며, 이 특정 기술은 본 내용으로부터 보다 구체적으로 이해하는 바와 같이 실시자에 의해 선택가능하다.
본 명세서의 청구항들에서, 지정된 기능을 수행하기 위한 수단으로서 표현된 소정의 요소는 예로서, a) 그 기능을 수행하는 회로 요소들의 조합, 또는, b) 그 기능을 수행하기 위한 소프트웨어를 실행하기 위한 적절한 회로와 조합한 펌웨어, 마이크로코드 등을 포함하는 소정의 형태의 소프트웨어를 포함하는 그 기능을 수행하는 소정의 방식을 포괄한다. 이런 청구범위에 규정된 바와 같은 본 발명은 다양한 언급된 수단에 의해 제공된 기능들이 청구범위가 주장하는 방식으로 조합 및 하나가 된다는 사실에 귀속한다. 본 출원인은 따라서, 여기에 예시된 것들과 등가의 기능들을 제공할 수 있는 소정의 수단을 고려한다.
소프트웨어 모듈들 또는 소프트웨어에 수반된 단순한 모듈들은 여기에서 프로세스 단계들 및/또는 문언적 설명의 성능을 나타내는 기타 요소들 또는 플로우차트 요소들의 소정의 조합으로서 표현될 수 있다. 이런 모듈들은 명시적으로 또는 암시적으로 예시된 하드웨어에 의해 실행될 수 있다.
여기서, 달리 명시적으로 언급하지 않는 한, 도면은 실척대로 그려진 것이 아니다.
설명에서, 도면들 중 서로 다른 것들내의 동일하게 번호매김된 콤포넌트들은 동일 콤포넌트들을 지칭한다.
도 1은 프레임 단위 기초상에서 비디오 신호의 다양한 블록들 각각의 크로미넌스 성분의 평균값을 경유하여 수반되는 워터마크 데이터의 하나 이상의 비트를 가짐으로써 비디오 신호를 디지털 워터마킹하기 위한 예시적 송신기(101)를 도시한다.
도 1에는 a) YUV 역멀티플렉서(demux) 및 데시메이터(103), b) 컬러 선택부(105), c) 더블-폴, 더블-쓰로우 스위치(109), d) 텍스쳐 마스킹 유닛(111), e) 승산기(113), f) 가산기(115), g) 멀티플렉서(mux)(117), h) 비트 맵퍼(123) 및 i) 합산기(133)가 도시되어 있다. 또한 도 1에는 선택적인 j) 채널 인코더(119) 및 k) 블록 인터리버(121)가 도시되어 있다.
YUV 역멀티플렉서 및 데시메이터(103)는 워터마크될, 즉, 부가 정보가 그에 추가될 비디오 신호를 수신한다. YUV 역멀티플렉서 및 데시메이터(103)는 디지털 비디오, 예로서, 직렬 디지털 인터페이스(SDI) 표준에 따라 포맷화된 비디오와 함께 동작할 수 있다. 본 기술의 통상적인 기술을 가진 자가 알 수 있는 바와 같이, 최초에 적절한 비디오 포맷이 아닌 소정의 비디오 신호는 종래의 기술들을 사용하여 그로 변환될 수 있다.
YUV 역멀티플렉서 및 데시메이터(103)는 비디오의 휘도(Y) 성분 및 그 크로미넌스 성분을 역멀티플렉싱한다. 비디오 신호의 크로미넌스 성분은 두 개의 부분(U 및 V)을 가지며, 여기서 U는 차등 청색부이고, V는 차등 적색부이다.
크로미넌스 성분상에 부가적인 데이터를 이식하기 위한 처리의 대부분은 특수한 데시메이팅된 비디오 포맷으로 수행되는 것이 적합하며, 이는 원본 블록이 4-4-4 표시를 갖는 비디오의 원본 2×2 휘도 블록에 대하여 단 하나의 Y, 하나의 U 및 하나의 V값 만이 존재한다. 이를 위해서, 입력 비디오 신호가 실제로 소위 4-4-4 포맷인 경우, 이미지는 각 원본 2×2 휘도 블록에 대하여, 하나의 Y, 하나의 U 및 하나의 V 값이 존재하도록 YUV 역멀티플렉서 및 데시메이터(103)에 의해 적절히 데시메이팅된다. 유사하게, 입력 비디오 신호가 소위 "4-2-2" 포맷인 경우, 즉, 휘도가 전체 해상도이고, 크로미넌스부가 a) 단지 수직방향으로만 전체 해상도이고, b) 수평 방향으로는 절반 해상도인 경우에, YUV 역멀티플렉서 및 데시메이터(103)는 휘도 성분을 수평 및 수직방향으로 데시메이팅하고, 각 크로미넌스부를 단지 수직방향으로만 데시메이팅한다. 유사하게, 입력 비디오 신호가 소위 4-2-0 포맷인 경우, 즉, 휘도 성분이 전체 해상도이고, 크로미넌스부가 각각 수직 및 수평 양자 모두로 절반 해상도인 경우에, 이미지의 휘도 성분은 YUV 역멀티플렉서 및 데시메이터(103)에 의해, 4-4-4 표현인 원본 블록을 가지는 각 원본 2×2 휘도 블록에 대해, 단 하나의 Y, 하나의 U 및 하나의 V 값만이 남도록 데시메이팅된다.
양호한 데시메이팅된 비디오 포맷은 출력으로서 컬러 선택부(105)에 공급될 수 있다. 따라서, 입력 비디오 신호의 포맷에 무관하게, 시스템의 추가 처리는 원본 비디오 입력 신호의 전체 해상도 휘도 화소들의 모든 2×2 블록에 대하여 하나의 Y, 하나의 U 및 하나의 V값이 존재하도록 데시메이팅된 비디오 신호에 기초할 수 있다. 본 기술 분야의 당업자들은 휘도 화소들의 모든 2×2 블록을 위해 하나의 Y, 하나의 U 및 하나의 V 값을 형성하는 그들이 선택하는 그 소유의 방법들을 개발할 수 있을 것이다.
원본 비디오의 포맷을 알기 위해, a) 연산자는 YUV 역멀티플렉서 및 데시메이터(103)에 송신기(101)에 공급된 비디오의 특정 포맷을 나타낼 수 있거나, b) 비디오의 포맷이 종래의 기술들을 사용하여 비디오로부터 직접적으로 검출될 수 있거나, c) 정보가 입력 비디오 신호를 공급하는 보다 고층 프로세서로부터 공급될 수 있다.
YUV 역멀티플렉서 및 데시메이터(103)는 또한 원본 입력 비디오 신호의 전체 포맷의 YUV 출력들의 제 2 집합을 양극 2중 스로우 스위치(109)에 공급할 수도 있다.
컬러 선택부(105)는 소정의 특정 화소에 대하여, 어떤 크로미넌스 성분상의 부분, 즉, U 부분 또는 V 부분이 필요시 가시적 아티팩트를 도입하지 않고 값의 변경을 보다 양호하게 수용할 수 있는지를 판정한다. 컬러 선택부(105)는 추가로 후술된 바와 같은 룩업 테이블에 기초한다. 대안적으로, 이는 종래의 미국 특허 출원 제 10/342,704 호에서 같이 다양한 연산들에 전적으로 또는 부분적으로 기초할 수 있다.
또한, 컬러 선택부(105)의 출력은 양극 2중 스로우 스위치(109)의 위치를 제어하기 위해서도 사용된다. 보다 명확하게, 컬러 선택부(105)의 출력은 양극 2중 스로우 스위치(109)가 1) 워터마크 데이터를 수반하도록 선택된 크로미넌스 성분의 부분을 가산기(115)에 공급하고, 2) 선택되지 않은 크로미넌스 성분의 부분을 YUV 멀티플렉서(117)에 공급하도록 설정된다. 컬러 선택부(105)의 출력은 또한 후술된 용도를 위해 멀티플렉서(117) 및 비트 맵퍼(123)에 공급된다.
텍스쳐 마스킹 유닛(111)은 가시적 아티팩트들을 도입하지 않고, 그 화소에 의해 수용될 수 있는 값의 최대 변경을 판정하기 위해 YUV 역멀티플렉서 및 데시메이터(103)에 의해 출력으로서 공급된 데시메이팅된 포맷의 각 화소 주변의 휘도 영역의 텍스쳐를 분석하고, 그를 나타내는 가중을 출력으로서 공급한다. 가중치는 예로서, 1 내지 5의 적분값을 취하여 코딩될 수 있다. 다른 값들이 사용될 수 있으며, 예로서, 실험은 20가지의 값이 시각적 열화 없이 분주한 영역들에 사용될 수 있다는 것을 나타내었다. 가중은 멀티플렉서(113)에 공급된다. 텍스쳐 마스킹 유닛(111)은 후술될 바와 같이 화소내에 도입될 수 있는 최대 왜곡 보다 작은 값을 산출할 수 있다.
사용되는 특정 값들은 적어도 부분적으로 각 Y, U 및 V를 나타내기 위해 사용되는 비트 수에 의존한다는 것을 인지하여야 한다. 예로서, 상기 제안된 1 내지 5의 가중치 및 20까지의 가중이 8 비트값들인 Y, U 및 V를 위해 존재한다. 본 기술 분야의 당업자들은 8 비트를 위해 사용되는 값들이 예로서, 값을 좌로 2회 이동하여 4를 승산함으로써 10비트로 스케일링될 수 있다는 것을 쉽게 인지할 것이다. 유사하게, Y, U 및 V를 위해 사용된 다른 수의 비트도 유사하게 수용될 수 있다.
승산기(113)는 텍스쳐 마스킹 유닛(111)으로부터 수신된 가중을 비트 맵퍼(123)에 의해 공급된 이 화소의 일부로서 전송되는 정보에 관련한 값으로 승산한다. 예로서, 비트 맵퍼(123)에 의해 공급되는 값은 -1, 0 또는 1일 수 있다. 승산기(113)에 의해 산출된 적은 가산기(115) 및 합산기(133)로 공급된다.
텍스쳐 마스킹 유닛(111)은 합산기(133)에 응답한다. 이에 관하여, 언급된 바와 같이, 텍스쳐 마스킹 유닛(111)은 합산기(133)로부터 실행되는 신호를 수신하는 경우에 화소내에 도입될 수 있는 값의 변경 보다 작은 가중치를 산출할 수 있다. 보다 구체적으로, 합산기(133)는 각 블록을 위한 텍스쳐 마스킹 유닛(111)에 의해 공급된 값들을 가산한다. 합산기(133)는 텍스쳐 마스킹 유닛(111)이 현재 처리된 화소의 가중을 그 출력으로서 사용할 수 있는 최대값을 텍스쳐 마스킹 유닛(111)에 출력으로서 공급한다. 합산기(133)에 의해 공급된 최대값은 a) 그를 둘러싸는 텍스쳐에 기초하여 화소에 의해 수용될 수 있는 최대 가중치 및 b) 블록을 위한 현재 합과 블록을 위해 합산기(133)에 비트 맵퍼(123)에 의해 공급된 값의 차 보다 작다. 따라서, 합이 블록을 위해 비트 맵퍼(123)에 의해 합산기(133)에 공급된 값과 같아지고 나면, 텍스쳐 마스킹 유닛(111)은 블록의 각 잔여 화소에 대하여 0을 출력한다.
가산기(115)는 화소를 위한 부가 정보를 수반하기 위해 컬러 선택부(105)에 의해 선택되었던 크로미넌스의 부분의 값에 승산기(113)에 의해 공급된 값을 가산함으로써 변경된 크로미넌스부를 생성한다. 언급된 바와 같이, 부가 정보를 수반하기 위해 컬러 선택부(105)에 의해 선택되었던 크로미넌스의 부분은 양극 2중 스로우 스위치(109)에 의해 가산기(115)로 전달된다. 가산기(115)에 의해 공급된 변경된 크로미넌스부는 멀티플렉서(117)에 공급된다.
텍스쳐 마스킹 유닛(111), 승산기(113), 비트 맵퍼(123) 및 합산기(133)는 원본 비디오 신호의 크로미넌스의 포맷에 일치하도록 특수 처리 해상도의 각 화소에 가산되는 값을 효과적으로 업샘플하도록 협력한다. 이를 위해서, 결과적인 업샘플된 값들은 처리를 위해 사용된 특수 감소된 해상도 포맷의 화소의 위치에 대응하는 원본 비디오 신호의 각 화소의 선택된 크로미넌스부에 가산될 수 있다. 예로서, 원본 비디오 신호가 4-2-2 포맷인 경우에, 특수 처리 포맷의 블록의 화소들 각각에 가산되도록 결정된 값들은 블록당 16 라인 및 라인당 8 화소들을 갖는 가산되는 값들의 블록을 생성하도록 라인 기초으로 복제된다. 이 블록에서, 2 연속 라인들의 비중첩 그룹들의 라인들 각각은 동일한 가산되는 값들을 갖는다. 이런 블록은 4-2-2 포맷의 원본 비디오의 선택된 크로미넌스부의 원본 블록에 크기가 대응한다. 결과적인 업샘플된 블록의 각 값은 가산기(115)에 의해 원본 비디오 신호의 각 유사 배치 화소의 선택된 크로미넌스부에 추가된다. 본 기술 분야의 당업자는 서로 다른 포맷들을 위한 유사한 블록 변환들을 쉽게 수행할 수 있을 것이다. 컬러 선택부(105)가 선택된 크로미넌스부가 보다 양호하게 변경을 수용할 수 있는 것으로 결정하지 않은 블록의 화소들에 대하여, 가산된 값은 0이라는 것을 주의하여야 한다. 원본 비디오 신호가 4-2-0 포맷인 경우, 어떠한 업샘플링도 필요하지 않다.
대안적으로, 단지 데시메이팅된 특수 처리 해상도 포맷만이 처리된다. 결과적인 변경된 크로미넌스부는 그 후, 예로서, 멀티플렉서(117)에서 업샘플링된다. 그러나, 이렇게 하는 것은 비록 이런 열화가 가시적일 필요는 없지만, 원본 신호의 일부 열화를 초래할 수 있다.
멀티플렉서(117)는 원본 휘도 성분(Y) 및 YUV 역멀티플렉서와 데시메이터(103)로부터 양극 2중 스로우 스위치(109)를 경유하여 공급된 변경된 크로미넌스부를 수신한다. 또한, 멀티플렉서(117)는 가산기(115)로부터 변경된 크로미넌스부를 수신한다. 그 후, 멀티플렉서(117)는 원본 휘도 성분(Y), 비변경 크로미넌스부 및 변경된 크로미넌스부를 함께 멀티플렉싱한다. 멀티플렉서(117)는 컬러 선택부(105)의 출력의 수신에 의해 그것이 크로미넌스 성분의 변경된 부분을 수신하게 하는 위치 및 크로미넌스 성분의 비변경 부분을 수신하게 되는 위치를 알고 있다. 결과적인 비디오 신호는 워터마크된 출력 비디오 신호로서 공급된다.
본 기술의 당업자는 업샘플링이 불필요하도록 부가적인 데이터가 그 데시메이팅된 버전이 아닌 원본 크로미넌스 신호 부분에 추가되는 본 발명의 실시예들을 안출할 수 있을 것이다.
상술된 바와 같이, 각 블록을 위해 전송되는 부가 정보의 2진 데이터 값, 즉, 1 또는 0은 수신기에서 정보의 회수 및 처리를 용이하게 하기 위해 먼저 처리될 수 있거나, 워터마크 데이터로서 사용하기 위해 비트 맵퍼(123)에 직접적으로 공급될 수 있다. 이런 예시적인 처리는 선택적 채널 인코더(119) 및 블록 인터리버(121)에 의해 수행될 수 있다.
채널 인코더(119)는 비디오 스트림내에 이식되는 것이 바람직한 부가 데이터를 수신한다. 이 데이터는 그 후, 예로서, 전진 에러 보정 코딩 기술을 사용하여 인코딩된다. 이런 전진 에러 보정 체계는 길쌈 인코딩, 예로서, 비터비 인코딩 또는 터보 인코딩 같은 소정의 종래의 전진 에러 보정 체계일 수 있거나, 소정의 새로 개발된 코딩 체계일 수 있다. 일 예시적 실시예에서, 1/2 레이트의 길쌈 코딩이 사용된다. 이런 코딩의 결과로서, 2 비트가 원본 비트 스트림의 매 비트에 대해 생성된다. 채널 인코딩된 비트 스트림은 블록 인터리버 유닛(121)에 채널 인코더(119)에 의한 출력으로서 공급된다.
블록 인터리버(121)는 데이터를 난수적으로 분포시키기 위해 채널 인코딩된 비트 스트림의 비트 순서를 재배열한다. 이렇게 하는 것은 추후, 나머지 실제 수신된 데이터로부터 수신기에서 이런 데이터를 복구하는 것을 곤란하게 하는, 채널 인코딩된 비트 스트림의 인접 섹션이 예로서, 노이즈 버스트 또는 다른 요인들로 인해 소실되는 기회를 감소시키는 것을 돕는다. 일 배열에서, 유닛으로서 간삽되는 비트의 수는 프레임내의 블록들의 수와 같다. 블록 인터리버는 좌에서 우로 블록의 열들에 순차적으로 데이터를 기록함으로써 이행될 수 있으며, 각열의 단부에서, 다음 열의 최좌측 위치에서 다시 시작하며, 그 후, 블록의 최좌측 최상단 위치에서 시작함으로써 데이터를 판독하고, 행의 단부가 도달될 때까지 행을 하향하여 판독하며, 행의 단부의 지점에서 판독은 다음 행의 상단부에서 이어진다. 45열 × 30 행의 블록 인터리버는 720 × 480 화소들의 화소 크기를 위해 유효한 것으로 검증되었다. 다른 해상도들을 위해, 본 기술 분야의 당업자들은 비견할만한 블록 인코더들을 쉽게 개발할 수 있을 것이다. 간삽된 채널 인코딩된 비트 스트림은 비트 인터리버(121)에 의한 출력으로서 비트 맵퍼(123)에 공급된다.
블록 인터리버(121)에 의해 공급되는 상기 데이터 비트는 원본 비디오 신호의 적어도 하나의 프레임 중 적어도 하나의 블록상에서 비트 맵퍼(123)의 제어 하에 워터마크 데이터로서 각인된다. 비트 맵퍼(123)는 데이터가 각인되는 각 블록의 크로미넌스부들 중 선택된 하나의 평균값의 비트 위치들 중 하나로의 워터마크 데이터의 삽입을 제어하며, 따라서, 그 비트 위치에서 비트를 효과적으로 대체한다.
예를 들면, 워터마크 데이터가 블록의 선택된 크로미넌스부의 평균의 정수 부분의 최하위 비트에 수반될 때, 평균값에 가산될 필요가 있는 값은 0 또는 1이다. 0은 평균값의 정수 부분의 최하위 비트가 수반되는 워터마크 데이터 비트와 이미 동일할 때 추가되며, 1은 평균값의 정수 부분의 최하위 비트가 수반되는 워터마크 데이터 비트의 보수일 때 추가된다. 워터마크 데이터가 블록의 선택된 크로미넌스부의 평균의 정수부분의 최하위 비트에 두 번째로 수반될 때, 화소에 추가되는 데이터의 값은 -1, 0 또는 1이다. 0은 평균값의 정수 부분의 제 2 최하위 비트가 이미 수반된 워터마크 데이터와 같을 때 추가되며, 1 또는 -1은 평균값의 정수 부분의 제 2 최하위 비트가 수반되는 워터마크 데이터 비트의 보수일 때 추가된다. 1 또는 -1 중 어느 것이 추가되는지 여부는 어느 것이 평균값의 정수 부분의 제 2 최하위 비트를 그 보수로 변경시키면서 평균값에 대해 최소 변경을 유발하는지에 의존한다. 제 2 최하위 비트의 사용시, 이식되는 데이터는 MPEG 또는 유사한 프로세스에 의한 인코딩을 존속시키기에 보다 쉽다. 블록의 선택된 크로미넌스부의 평균의 정수 부분의 제 3 최하위 비트에 데이터가 배치될 때, 화소에 추가되는 데이터의 값은 -2, -1, 0, 1 또는 2이다. 0은 평균값의 정수 부분의 제 3 최하위 비트가 이미 수반된 워터마크 데이터 비트와 동일할 때 추가되며, -2, -2, 0 또는 2는 평균값의 정수 부분의 제 3 최하위 비트가 수반되는 워터마크 데이터 비트의 보수일 때 추가된다. -2, -1, 1 또는 2 중 어느 것이 추가되는지는 어떤 것이 평균값의 제 3 최하위 비트를 그 보수로 변경시키면서 평균값에 대해 최소의 변경을 유발하는지에 의존한다. 상술한 바로부터, 본 기술 분야의 당업자는 사용자 또는 시스템에 의해 결정되는 보다 상위의 비트에 대하여 추가되는 값을 쉽게 판정할 수 있을 것이다.
이를 위해, 비트 맵퍼(123)는 각인되는 블록 인터리버(121)에 의해 공급되는 비트가 선택된 크로미넌스부의 평균값의 선택된 비트 위치에 배치되도록 그 블록을 위한 그 크로미넌스부의 값의 평균을 변경시키도록 블록의 화소의 선택된 크로미넌스부에 분산 추가되는 값을 형성한다. 이 값은 블록내의 화소들의 수로 승산된 적절한 비트 위치에 워터마크 데이터 비트를 배치하도록 선택된 크로미넌스부의 평균값에 추가되는 값이다. 달리 말해서, 크로미넌스부의 값의 평균에 추가된 비트 맵퍼(123)에 의해 형성된 값은 블록의 개별 화소들에 추가되는 보다 작은 값들로 나뉘어지고, 그래서, 블록내의 화소들의 수로 나뉘어진 블록에 추가된 보다 작은 값의 총계가 선택된 크로미넌스부의 평균값에 추가되는 값과 동일하다.
그 블록을 위한 크로미넌스부의 값의 특정 비트 평균, 예로서, 비트 맵퍼(123)에 의해 공급된 데이터가 각인되는 크로미넌스부를 위한 DC 계수는 비트 맵퍼(123)에 의해 결정된다. 일 실시예에서, 블록을 위한 DC 계수의 제 2 최하위 비트는 블록상에 각인되기를 소정 특정 값으로 대체된다. 다른 배열에서, 대체되는 DC 계수의 비트는 블록의 텍스쳐 변경의 함수이다. 택스쳐 변경이 증가할 때, 대체되는 비트의 중요성이 증가하는 것이 유리하며, 그 이유는 MPEG 코딩 표준들이 보다 높은 텍스쳐 변경들을 위해 보다 큰 양자화 단계 크기를 사용하고, 이런 보다 큰 양자화 단계 크기의 사용은 충분히 상위가 아닌 비트 위치에 배치되는 경우, 워터마크 데이터 비트를 필터링 제거할 수 있기 때문이다. 보다 상위의 비트를 사용할 때, 치환되는 비트를 그 보수값으로 변경하기 위해, DC 계수로부터 가산 또는 감산되는 값은 1 보다 클 수 있다. 이를 위해, 비트 맵퍼(123)는 텍스쳐 마스킹(111)으로부터 블록을 위한 휘도 성분의 평균 변경을 수신하고, 이 평균 변경에 기초하여, 비트 위치가 배치되어야 하는 위치를 결정한다. 변경이 보다 크면 클수록, 워터마크 데이터가 배치되는 비트 위치는 보다 상위가 된다.
비트 맵퍼(123)는 그 화소가 워터마킹된 출력 비디오 신호에 통합될 때, 원본 비디오 신호의 각 블록을 위해 통신되는 간삽된 채널 인코딩된 비트 스트림으로부터 데이터 비트를 공급한다. 따라서, 비트 맵퍼(123)는 비디오 신호의 처리가 라인 기초인 사실, 즉, 처리가 라인상에서 좌에서 우로 이루어지고, 그후, 다음 라인에서 하향하고, 좌에서 우로 다시 이루어지는 사실을 고려하여, 블록의 인접 화소가 비디오 스트림내에 필수적으로 순차적으로 배치되지는 않게 하며, 따라서, 모두가 시간적으로 하나씩 순차적으로 직접적으로 처리되는 것은 아니다. 소정 시간에 비트 맵퍼(123)의 출력으로서 공급된 특정 데이터 비트는 멀티플렉서(113)에 입력으로서 공급된다.
도 1에 도시된 바와 같은 인코더를 사용하여, 실질적으로 에러가 없는 초당 약 6,750 비트의 비트 레이트가 비디오 프레임 크기가 720×480 화소일 때 채널 인코더(119)에 공급되는 부가 정보에 대하여 달성되었다.
본 기술 분야의 당업자는 도 1의 유닛 중 다양한 것들이 전체 블록으로부터의 정보를 사용하여 연산되어야만 하는 값, 예로서, 블록의 원본 평균값 및 블록의 평균 텍스쳐 변경을 먼저 결정하고, 그후, 개별 화소들의 처리시 이들 값을 사용하기 위해 저장을 필요로 한다는 것을 쉽게 인지할 것이다. 결과적으로, 일반적으로 일 슬라이스 지연이 존재하며, 여기서, 슬라이스는 프레임을 수평방향으로 완전히 가로지르는 블록의 스트립이다.
도 2는 그 크로미넌스 신호상에 디지털 워터마킹을 포함하는 비디오 신호의 부가 데이터를 복원하기 위한 예시적인 수신기(201)를 도시한다. 도 2에는 a) YUV 역멀티플렉서(demux) 및 데시메이터(203), b) 컬러 선택 유닛(207), c) 양극 2중 스로우 스위치(209), d) 블록 변경 계산부(211), e) 블록 적분기 V(213), f) 블록 적분기 U(215), g) 비트 선택부(217), h) 역인터리버(219) 및 i) 채널 디코더(221)가 도시되어 있다.
송신기(101)(도 1)의 YUV 역멀티플렉서 및 데시메이터(103)와 실질적으로 동일할 수 있는 YUV 역멀티플렉서 및 데시메이터(203)는 부가 정보가 신호의 크로미넌스 성분상에서 그에 추가되는 디지털 워터마킹된 비디오 신호를 수신한다. YUV 역멀티플렉서 및 데시메이터(203)는 예로서, 직렬 디지털 인터페이스(SDI)에 따라 포맷화된 디지털 비디오와 함께 동작한다. 본 기술 분야의 당업자들은 최초에 적절한 디지털 포맷이 아닌 소정의 비디오 신호가 종래의 기술들을 사용하여 그로 변환될 수 있다는 것을 인지할 것이다.
YUV 역멀티플렉서 및 데시메이터(203)는 비디오의 휘도(Y) 성분 및 그 크로미넌스 성분을 역멀티플렉싱하고, 이를 4-4-4의 표현의 원본 데이터 블록을 갖는 비디오의 각 원본 2 ×2 휘도 블록을 위하여 단지 하나의 Y, 하나의 U 및 하나의 V 값이 존재하는 양호한 처리 포맷으로 이를 데시메이팅한다. 수신된 비디오의 포맷을 알기 위해, a) 연산자는 YUV 역멀티플렉서 및 데시메이터(203)에 입력 비디오의 특정 포맷을 나타낼 필요가 있거나, b) 비디오의 포맷이 종래의 기술들을 사용하여 비디오로부터 직접적으로 검출될 수 있거나, c) 정보가 입력 비디오 신호를 공급하는 보다 고층 프로세서로부터 공급될 수 있다. 역멀티플렉싱된 휘도 및 크로미넌스 성분은 컬러 선택부(207)에 공급된다. 부가적으로, 휘도 성분은 블록 변경 계산부(211)에 공급되고, V 크로미넌스부는 블록 적분기 (V213)에 공급되며, U 크로미넌스부는 블록 적분기 (U215)에 공급된다. YUV 역멀티플렉서 및 데시메이터(103)와는 달리, YUV 역멀티플렉서 및 데시메이터(203)는 또한 원본 입력 비디오 신호의 전체 포맷으로 YUV 출력들의 제 2 집합을 공급할 필요가 없다.
컬러 선택 유닛(207)은 각 블록에 대하여 크로미넌스 성분의 어느 부분상에, 즉, U 부분 또는 V 부분상에 부가 정보가 이식되는 것이 좋은지를 결정한다. 컬러 선택 유닛(207)의 출력은 양극 2중 스로우 스위치(209)의 위치를 제어하기 위해 사용된다. 보다 구체적으로, 컬러 선택 유닛(209)은 보다 상세히 후술될 바와 같이, 이 블록을 위해 Y, U 및 V의 함수로서 크로미넌스부 U 또는 V중 어디에 부가 정보가 이식되어야 하는지를 선택한다. 하나의 배열에서, 컬러 선택 유닛(207)은 룩업 테이블에 기초한다. 그렇게 하는 것은 RGB 변환으로의 YUV에 대한 필요를 피함으로써 상기 과정을 단순화하고, 그렇지 않으면 필요할 수도 있다.
컬러 선택 유닛(207)으로의 입력은 개개의 화소들임을 주목하라. 컬러 선택 유닛(207)은 각 블록내 화소들을 계속 알고 있고 상기 블록내 각 화소에 대한 개개의 U 또는 V 선택을 결합시킨다. 최고값을 갖는 특정 성분은 즉, 블록내의 화소들을 위해 가장 빈번히 선택된 성분은 컬러 선택(207)의 출력으로 결정된다. 컬러 선택 유닛(207)의 출력은 그후 스위치(209)가 부가적인 데이터가 추가되는 것으로 결정되는 크로미넌스 성분의 부분의 적분된 버전을 비트 선택부(217)에 공급하도록 설정된다.
블록 변경 계산부(211)는 그 블록을 위한 선택된 크로미넌스부의 값의 평균의 특정 비트, 예로서, 각인된 데이터를 포함할 가능성이 있는 선택된 크로미넌스부를 위한 DC 계수를 결정한다. 언급한 바와 같이, 일 배열에서, 비트 맵퍼(123)(도 1)는 어느 비트 위치가 각인되는 워터마크 데이터 비트로 대체되어야 하는지를 판정하기 위해 블록의 화소의 휘도 성분의 변경의 평균을 수신 및 사용한다. 변경이 크면 클수록, 보다 상위의 비트 위치가 대체되어야만 한다. 블록 변경 계산부(211)(도 2)는 그 결정을 복제하기 위해 맵퍼(123)에 의해 사용된 동일한 정보에 그 계산이 기초하여야 한다. 블록 변경 계산부(211)의 출력은 비트 선택부(217)에 공급된다.
블록 적분기 V(213)는 블록에 걸쳐 V의 값들을 적분, 즉, 블록내의 각 화소를 위한 값들이 조합, 예로서, 함께 가산된다. 블록 적분기 U(215)는 블록에 걸쳐 U의 값들을 적분, 즉, 블록내의 각 화소를 위한 값들이 조합, 예로서 함께 가산된다.
비트 선택부(217)는 블록을 위한 데이터로서 스위치(209)에 의해 이에 공급된 적분된 크로미넌스부 값으로부터 블록 변경 계산부(211)에 의해 지정된 비트 위치에서 비트를 추출한다.
역인터리버(219)는 송신기(101)의 블록 인터리버(121)의 영향을 상쇄하도록 데이터를 재배열한다. 그후 재배열된 값들은 채널 디코더(221)(도 2)로 공급되고, 이는 송신기(101)(도 1)의 채널 디코더(119)에 의해 사용된 인코딩의 유형을 사용하여 인코딩된 신호를 위한 적절한 디코딩을 수행한다. 결과적인 디코딩된 값들은 부가적인 데이터 신호의 재구성된 버전으로서 채널 디코더(221)(도 2)에 의해 공급된다. 부가적인 강인성을 위해, 채널 디코더(221)는 소위 "시퀀스 디코더", 예로서, 터보 디코더일 수 있다.
도 3a 및 3b는 도 3에 도시된 바와 함께 연계할 때, 부가적인 데이터를 가지는 크로미넌스부들 중 하나의 워터마킹시 사용하기 위한 예시적 프로세스를 도시한다. 결정된 비트 위치가 이미 각인된 값과 동일한 블록들에 대하여, 블록은 비변경 전송될 수 있다. 도 3의 프로세스는 도 1에 도시된 바와 같은 시스템에서 수행될 수 있다.
프로세스는 블록들의 모든 화소가 가용할 때, 단계 301에서 도입될 수 있다. 도 3의 처리의 일부는 블록 단위 기초상에서 이루어지고, 부분적으로 화소 단위 기초상에서 이루어진다. 프레임의 블록들은 2 차원 포인터(p, q)를 사용하여 인덱싱되며, 여기서 p는 처리되는 프레임의 특정 수평 슬라이스를 지시하고, q는 프레임의 특정 행 또는 수직 슬라이스를 지시한다. 예로서, 720 × 480 해상도에 대하여, p는 1과 30 사이의 범위이고, q는 1과 45 사이의 범위이다. 유사하게, 각 블록의 화소들은 2 차원 포인터(i, j)를 사용하여 인텍싱되고, 여기서,i는 처리되는 블록내의 특정 열을 지시하고, j는 처리되는 블록내의 특정 행을 지시한다. 예로서, 원본 비디오의 각 매크로블록이 Y, U 및 V의 대응 8×8 블록만을 가지는 데이터를 각인하기 위해 사용되는 특수 처리 모드에서, i 및 j 양자 모두는 0과 7 사이의 범위이다.
단계 301에서, 프로세스에 진입한 이후, 처리에 사용되는 다수의 변수들이 단계 303에서 초기화, 예로서, countU(p,q)=0, countV(p,q)=0, sumU(p,q)=0, sumV(p,q)=0 및 var(p,q)=0이 된다. countU는 블록내의 얼마나 많은 화소들이 U 크로미넌스부상의 워터마킹을 위해 적절한 것으로 컬러 선택 프로세스에 의해 선택되었는지의 총계이고, countV는 V 크로미넌스부상의 워터마킹을 위해 적합한 것으로 블록내의 얼마나 많은 화소들이 컬러 선택 프로세스에 의해 선택되었는지의 총계이다. sumU 및 sumV는 각각 블록의 모든 화소들에 걸친 U 및 V의 총계 값들이다. 워터마킹이 블록을 위해 선택된 크로미넌스부의 화소들상에만 수행되는 경우에, 선택되지 않은 크로미넌스부를 위해 형성되는 sumU 및 sumV 중 하나를 위해 어떠한 사용도 이루어지지 않는다.
단계 305에서, 물론 블록을 위한 휘도의 평균 변경에 비례하는, 블록내의 개별 화소 각각을 위한 휘도의 변경의 총계인 var(p, q)이 연산된다. 이를 위해, i 및 j는 최초에 양자 모두 처리되는 블록의 최초 화소를 지시하도록, 예로서, i=0 및 j=0으로 설정된다. var(p, q)의 값은 블록의 각 화소를 통해 순환하고, 이를 위해 적절히 i 및 j의 값을 변경하고, var(p, q)의 현재 총계에 각 화소를 위한 휘도의 변경을 함께 가산함으로써 연산된다.
어느 특정 화소를 위한 휘도의 변경은 그 가장 근접한 이웃들 모두와 화소 사이의 휘도의 편차의 절대값을 취함으로써 연산될 수 있다. 수학적으로, 모든 가장 근접한 이웃들이 동일 블록내에 있는 경우, 이는 하기와 같이 기재될 수 있다.
본 기술 분야의 당업자들은 그 자장 근접한 이웃들이 다른 블록들내에 있는 화소들에 상술한 바를 쉽게 적응시킬 수 있을 것이다. 또한, 프레임의 경계 부근에 있는m 그리고, 그로 인해 가장 근접한 이웃들을 갖지 않거나 가장 근접한 이웃들이 디스플레이 되지 않은 블록들의 일부인 블록들에 대하여, 이런 이웃들의 값은 0이 되는 것으로 고려될 수 있다.
화소의 가장 근접한 이웃들 모두가 변경 연산에 고려될 필요가 있는 것은 아니며, 그래도 충분히 높은 품질의 결과가 얻어질 수 있다. 보다 명확히, 각 화소를 위한 연산 시간은 화소와 수직 또는 수평 라인을 형성하는 다른 화소들 중 2개, 예로서, 화소와 수평선상에 있는 2 화소들과, 화소들 둘러싸는 직사각형의 코너의 4개 화소들의 편차들만을 고려함으로써 감소될 수 있다.
따라서, 조건부 분기점(307)은 특정 크로미넌스부, 즉, U 또는 V가 블록을 위한 워터마크 정보를 포함하게 되는 지를 결정하기 위해 테스트한다. 이는 블록내의 각 화소를 위한 컬러 선택을 평가하고, 각 크로미넌스부를 위해 선택된 블록내의 화소들의 수를 계수함으로써 이루어진다. 블록을 위해 가장 만이 선택된 크로미넌스부가 워터마킹을 위해 선택된다. 특정 화소는 워터마킹에 전혀 부적합한 것으로 판정될 수 있다는 것을 인지하여야 한다. 이런 경우, 이는 U 또는 V 중 어느 한쪽을 위한 화소들의 총 수를 향해 계수되지 않는다.
각 화소를 위해 워터마킹되도록 선택된 컬러를 결정하는 특정 방법은 실시자의 자유 선택 사항이다. 예로서, 가장 작은 값을 가지는 화소의 크로미넌스부가 선택된다. 대안적으로, 후술된 컬러 선택 배열이 사용된다.
다음에, 워터마크된 비트를 포함하는 선택된 크로미넌스부의 평균값의 비트 위치가 결정된다. 비트 위치는 워터마킹된 비트가 MPEG형 인코딩에서 이루어지는 것처럼 소정의 후속하는 양자화를 견디도록 선택된다.
이를 위해, 단계 307의 테스트 결과가 V 크로미넌스부가 워터마크되도록 선택되는 것인 경우, 제어는 가변적 워터마크 컬러가 V와 같게 설정되는 단계 309로 진행한다. 그후, 조건부 분기점(323)은 블록에 걸친 평균 Y 변경[var(p, q)]가 가장 큰 V 임계치인 제 1 미리 설정된 V 임계치(tlv) 보다 큰지 여부를 판정하기 위해 테스트한다. tlv의 예시적 값은 600이다.
U 및 V 양자 모두를 위해 도 3 및 도 4와 연계하여 사용되는 특정 임계치들은 평균 Y 변경이 제안된 임계치와 비교될 때, 각 Y 값을 나타내도록 사용되는 비트 수에 적어도 부분적으로 의존한다. 예로서, 여기의 제안된 임계치들은 8 비트값인 Y를 위한 것이다. 본 기술 분야의 당업자는 8 비트를 위해 사용된 값들이 예로서, 값을 좌측으로 2회 이동시켜 4를 승산함으로써, 10 비트로 스케일링될 수 있다는 것을 쉽게 인지할 것이다. 유사하게, Y, U 및 V를 위해 사용되는 다른 수의 비트도 유사하게 수용될 수 있다.
다양한 비교들을 위한 블록에 걸친 평균 Y 분산을 사용하는 대신에, 예를 들면 블록에 걸친 평균 V 분산과 같은 상이한 평균 분산이 계산되어 이용될 수 있다.
단계 323에서의 테스트 결과가 예이면, 분산이 부가의 데이터가 블록의 화소들의 V 값들의 평균의 제5 최하위 비트에 인코딩되어야 하도록 충분히 큰 것을 지시하고, 예를 들면 int[sum V(p,q)/(블록 당 화소들의 수)]의 값, 예를 들면 int[sum V(p,q)/64]가 t1v이고, 제어는 변수 m이 5로 설정되는 단계 325로 진행한다.
본원에 사용되는 바와 같이 라운딩을 위해 정수 함수(int)를 사용하는 대신에, 정수값을 성취하기 위한 임의의 다른 형태의 라운딩, 예를 들면 가장 근접한 정수값으로의 상시 라운딩 또는 상시 라운딩 업이 이용될 수 있다는 것을 주목하라.
단계 323에서의 테스트 결과가 아니오이면, 분산은 부가의 데이터가 블록의 화소들의 V 값들의 평균값의 제 5 최하위 비트 상에 인코딩되어야 하도록 충분히 크지 않은 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 제2 최대 V 임계치인 제2 설정 V 임계치(t2v)보다 큰지를 결정하도록 테스트하는 조건 분기점 329로 진행한다. t2v의 예시적인 값은 1.5이다.
단계 329에서의 테스트 결과가 예이면, 분산은 부가의 데이터가 블록의 화소들의 V 값들의 평균의 제 4 최하위 비트 상에 인코딩되어야 하는 것을 지시하고, 제어는 변수 m이 4로 설정되는 단계 331로 진행한다.
단계 329에서의 테스트 결과가 아니오이면, 분산은 부가의 데이터가 블록의 V 값들의 평균의 제4 최하위 비트 상에 인코딩되어야 하도록 충분히 크지 않다는 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 최소 V 임계치인 제3 설정 V 임계치(t3v)보다 큰지를 결정하도록 테스트하는 조건 분기점 333으로 진행한다. t3v의 예시적인 값은 7이다.
단계 333에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 V 값들의 평균의 제3 최하위 비트 상에 인코딩되어야 하도록 충분히 큰 것을 지시하고, 제어는 변수 m이 3으로 설정되는 단계 335로 진행한다.
단계 333에서의 테스트 결과가 아니오이면, 분산은 데이터가 단지 블록의 V 값의 평균값의 제2 최하위 비트 상에 인코딩되어야 하도록 충분히 크다는 것을 지시하고, 제어는 변수 m이 2로 설정되는 단계 337로 진행한다.
단계 307에서의 테스트 결과가 U가 워터마킹되도록 선택된 크로미넌스부라는 것이면, 제어는 변수 워터마크 컬러가 U로 설정되는 단계 311로 진행한다. 그 후, 조건 분기점(343)은 블록에 걸친 평균 Y 분산[var(p,q)]가 최대 임계치인 제1 설정 임계치(t1u)보다 큰지의 여부를 결정하도록 시험된다. t1u의 예시적인 값은 600이다.
다양한 비교들을 위한 블록의 평균 Y 분산을 사용하는 대신에, 블록에 걸친 평균 U 분산이 계산되어 이용될 수도 있다.
단계 343에서의 테스트 결과가 예이면, 분산이 데이터가 블록의 화소들의 U 값들의 평균의 제5 최하위 비트에 인코딩될 필요가 있도록 충분히 크다는 것을 지시하고, 예를 들면 int[sum V(p,q)/(블록 당 화소들의 수)]의 값, 예를 들면 int[sum V(p,q)/64]가 t1u이고, 제어는 변수 m이 5로 설정되는 단계 345로 진행한다.
본원에서 라운딩을 위해 정수 함수(int)를 사용하는 대신에, 정수값을 성취하기 위한 임의의 다른 형태의 라운딩, 예를 들면 가장 근접한 정수값으로의 상시 라운딩 또는 상시 라운딩 업이 이용될 수 있다는 것을 주목하라.
단계 343에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균값의 제5 최하위 비트 상에 인코딩될 필요가 있도록 충분히 크지 않은 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 제2 최대 U 임계치인 제2 설정 V 임계치(t2u)보다 큰지를 결정하도록 테스트하는 조건 분기점 349로 진행한다. t2u의 예시적인 값은 1.5이다.
단계 349에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균의 제4 최하위 비트 상에 인코딩될 필요가 있는 것을 지시하고, 제어는 변수 m이 4로 설정되는 단계 351로 진행한다.
단계 349에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 U 값들의 평균의 제 4 최하위 비트 상에 인코딩되어야 하도록 충분히 크지 않다는 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 최소 U 임계치인 제3 설정 U 임계치(t3u)보다 큰지를 결정하도록 테스트하는 조건 분기점 353으로 진행한다. t3u의 예시적인 값은 7이다.
단계 353에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균의 제 3 최하위 비트 상에 인코딩되어야 하도록 충분히 큰 것을 지시하고, 제어는 변수 m이 3으로 설정되는 단계 355로 진행한다.
단계 353에서의 테스트 결과가 아니오이면, 분산은 데이터가 단지 블록의 U 값의 평균값의 제2 최하위 비트 상에 인코딩되어야 하도록 충분히 크다는 것을 지시하고, 제어는 변수 m이 2로 설정되는 단계 357로 진행한다.
일단 워터마킹된 데이터를 포함하도록 이용될 선택된 크로미넌스부의 블록에 걸친 평균값의 특정 비트가 결정되면, 비트 위치가 소정 비트를 포함하는 것을 확인하는 프로세스가 착수된다. 이 프로세스의 목표는, 소정 비트 위치가 전송될 워터마킹 비트의 값을 갖는 것을 확인하도록 선택된 크로미넌스부의 현재 평균값으로부터 최소 가능 값을 가산하거나 감산하는 것이다. 소정 비트 위치 평균값의 정수부 내의 비트 위치일 수 있다. 이를 위해, 이상적으로는, 소정 비트 위치가 이미 전송될 워터마킹 비트의 값을 포함하고 있으면, 선택된 크로미넌스부의 현재 평균값에 아무것도 가산되지 않을 수 있다. 한편, 소정 비트 위치가 전송될 워터마킹 비트의 값의 보수를 포함하면, 단지 소정 비트 위치에 가산되거나 그로부터 감산되어 선택된 크로미넌스부의 평균값의 값을 그의 현재 미워터마킹 값으로부터 그의 최종 워터마킹 값으로 최소 변화시키는 그의 보수로 소정 비트 위치를 플립할 수 있는 최소 가능 값이 적절하게 소정 비트 위치에 가산되거나 그로부터 감산된다.
실제로, 양자화 노이즈, 본 발명의 프로세스의 부분으로서의 라운딩, 및 소정 비트의 최종값에 영향을 줄 수 있는 MPEG형 인코딩 프로세스의 다른 팩터들에 기인하여, 약간 상이한 값이 본원에 추가로 설명되는 바와 같이 가산되거나 감산될 수 있다. 더 구체적으로는, 소정 비트 위치에서 소정 비트값을 갖는 값들의 "안전" 범위가 선택되고, 최소값이 선택된 크로미넌스부의 평균값에 가산되거나 감산되어 최종값이 소정 비트 위치에서 소정 비트값을 갖고 안전 범위 내에 존재한다. 따라서, 통상적으로는, 평균값의 비트가 워터마크 데이터를 수반하기 위해 그의 보수로 변경될 필요가 있을 때마다, 최종값이 상상 안전 범위의 경계에 존재한다. 소정 비트 위치에서의 값이 항상 전송될 워터마크 데이터 비트의 값이면, 선택된 크로미넌스부의 평균값이 이미 안전 범위 내에 있는 경우, 선택된 크로미넌스부의 평균값에 아무것도 가산될 필요가 없다. 그러나, 선택된 크로미넌스부의 평균값이 이미 안전 범위 내에 있지 않으면, 전송될 워터마킹 비트의 값에 소정 비트 위치의 값을 유지하면서 선택된 크로미넌스부의 평균값을 안전 범위 내의 값으로 변화시킬 필요가 있는 최소값이 선택된 크로미넌스부의 평균값에 가산되거나 그로부터 감산된다.
개념적으로는, 상기에는 소정 비트 위치에서 소정 워터마킹 값을 성취하기 위해 먼저 최소값을 가산하거나 감산하고, 이어서 최종값이 안전 범위 내에 있는 것을 보장하도록 예를 들면 마진값과 같은 추가량을 가산하거나 감산하는 것을 고려할 수 있다.
도 5는 소정 비트 위치가 제3 최하위 비트인 다수의 안전 범위들의 예를 도시한다. 축을 따라 도시된 것은 선택된 크로미넌스부의 평균값이다.
표 1은 (코드)(값들의 표)를 도시한다.
단계들 325, 331, 335, 337, 345, 351, 355 및 357의 완료시에, 제어는 블록 상에 각인될 워터마킹 데이터의 비트가 가변 워터마크 컬러에 의해 식별된 크로미넌스부의 평균값을 위한 현재 식별 비트 위치와 동일한지를 결정하도록 테스트하는 조건 분기점 361로 진행한다. 단계 361에서 테스트 결과가 예이면, 블록 상에 각인될 워터마킹 데이터의 비트가 가변 워터마크 컬러에 의해 식별된 크로미넌스부의 평균값을 위한 현재 식별 비트 위치와 동일하다는 것을 지시하고, 따라서 비트는 그의 보수값으로 변경될 필요가 없으며, 제어는 값이 현재 비트 위치를 위한 안전 범위 내에 있는지를 결정하도록 테스트하는 단계 363으로 진행한다. 테스트 결과가 아니오이면, 에러가 후속 프로세싱 중에 도입될 수 있는 것을 지시하고, 제어는 소정 비트 위치의 값을 변경하지 않고 워터마크 컬러에 의해 지시된 컬러를 위한 현재 평균값을 가장 근접한 안전 범위로 이동시킬 필요가 있는 값에 동일한 가변 변경값을 설정하는 단계 365로 진행한다. 값은 정수값일 필요는 없으며, 또한 네가티브 값일 수도 있다는 것을 주목하라. 단계 363에서의 테스트 결과가 아니오이면, 워터마크 컬러에 의해 지시된 컬러를 위한 현재 평균값이 이미 안전 범위 내에 있는 것을 지시하고, 제어는 단계 367로 진행하고, 변경값의 값은 0으로 설정된다.
단계 361에서의 테스트 결과가 아니오이면, 블록 상에 각인될 워터마킹 데이터의 비트가 가변 워터마크 컬러에 의해 식별된 크로미넌스부의 평균값을 위한 현재 식별 비트 위치와 동일하지 않은 것을 지시하고, 따라서 비트의 값은 워터마킹 데이터를 적절하게 수반하기 위해 그의 보수값으로 변경되어야 하고, 제어는 현재 비트 위치를 위한 가장 근접한 안전 범위가 워터마크 컬러에 의해 지시된 컬러의 현재 평균값보다 큰지 작은지를 결정하도록 테스트하는 단계 369로 진행한다. 단계 369에서의 테스트 결과가 크다이면, 현재 비트 위치를 위한 가장 근접한 안전 범위의 값들이 워터마크 컬러에 의해 지시된 컬러의 현재 평균값보다 큰 것을 지시하고, 제어는 가변 변경값의 값이 평균값에 가산되도록 최소값으로 설정되어 최종값이 더 큰 값들을 갖는 인접 안전 범위 내에 있도록 하는 단계 371로 진행한다. 이 값은 정수값일 필요는 없다는 것을 주목하라. 단계 369에서의 테스트 결과가 작다이면, 현재 비트 위치를 위한 가장 근접한 안전 범위의 값들 워터마크 컬러에 의해 지시된 현재 평균값보다 작은 것을 지시하고, 제어는 가변 변경값의 값이 평균값에 가산될 때 더 작은 값들을 갖는 인접 안전 범위 내에 있는 값을 초래하는 최소 네가티브 값으로 설정되는 단계 373으로 진행한다. 또한, 이 값은 정수값일 필요는 없고, 또한 네가티브 값일 수도 있다는 것을 주목하라.
단계 365, 367, 371 또는 373의 완료시에, 제어는 화소들을 가산한 총계가 블록당 화소들의 수와 변경값의 값의 적으로 설정되는 단계 375로 진행한다. 최종 적값이 정수가 아니면, 값은 라운딩 오프된다. 라운딩은 네가티브 값이 가산되면 라운딩은 값의 정수부를 취함으로써 다운되고, 반면 포지티브 값이 가산되면 라운딩은 다음의 전체 정수값을 향해 업되는 점에서 단계들 365, 371, 373과 일치하는 방식으로 수행될 수 있다.
이제, 프로세싱은 블록당 레벨로부터 블록 내의 화소당 레벨로 변경된다. 단계 377에서, 블록의 제1 화소가 지정된다. 그 후, 조건 분기점 379는 그의 컬러에 기초하여, 현재 화소가 워터마킹되어야 하는지를 결정하도록 테스트한다. 이는 워터마킹에 적합한 이 화소의 크로미넌스 성분이 전체 블록에 대해 단계 307에서 선택된 컬러와 동일한지를 결정함으로써 수행된다. 단계 379에서의 테스트 결과가 예이면, 이 화소가 워터마킹되어야 하는 것을 지시하고, 제어는 값이 화소에 대한 휘도 분산 및 블록의 화소들에 지금까지 가산된 총 값들에 기초하여 현재 화소에 가산되는 단계 381로 진행한다.
더 구체적으로는, 가시적인 아티팩트를 유도하지 않고 화소에 가산될 수 있는 최대값이 휘도의 분산의 함수로써 결정된다. 휘도의 분산이 클수록, 설정 최대값까지 가산될 수 있는 값이 커진다. 이 값은 포지티브 또는 네가티브일 수 있다는 것을 주목하라. 이 값은 이어서 화소들에 가산될 총계가 포지티브 값이면 화소에 가산되고, 또는 값은 화소들에 가산될 총계가 네가티브 값이면 화소로부터 감산된다. 그러나, 화소당 프로세싱이 진행됨에 따라 가산 또는 감산된 값들의 실행 총계는 화소들에 가산될 총계로부터 감산된다. 현재 화소에 가산될 값이 화소들에 가산될 총계와 실행 총계 사이의 차이를 0이 되게 하면, 값은 실행 총계가 단지 0이 되도록 조절된다.
단계 379에서의 테스트 결과가 아니오이거나, 완료 단계 381 후에, 제어는 현재 화소가 블록의 최종 화소인지를 결정하도록 테스트하는 조건 분기점 383으로 진행한다. 단계 383에서의 테스트 결과가 아니오이면, 제어는 블록의 화소들에 인가될 총계가 이미 가산되어 있는지를, 즉 블록의 화소들에 가산될 총계와 동일한 실행 총계인지를 결정하도록 테스트하는 단계 385로 진행한다. 단계 385에서의 테스트 결과가 아니오이면, 블록의 화소들에 가산될 필요가 더 있음을 지시하고, 제어는 블록의 다음 화소를 지시하는 단계 387로 진행한다. 이어서, 제어는 단계 379로 복귀하고, 제어는 상술한 바와 같이 계속된다.
단계들 383 또는 385에서의 테스트 결과가 예이면, 블록의 모든 화소들이 프로세싱되거나 가산될 필요가 있는 모든 총계가 가산되어 있는 것을 지시하고, 제어는 단계 389로 진행하고 프로세스가 종료된다.
도 4a 및 도 4b는 도 4에 도시한 바와 같이 함께 연결될 때, 비디오 신호 내의 워터마킹 신호를 구성하는 부가의 정보가 크로미넌스 성분에 각인되어 있는 디지털 방식으로 워터마킹된 비디오 신호로부터 부가의 정보를 추출하기 위한 예시적인 프로세스를 도시한다. 이러한 프로세스는 컬러 선택(207), 쌍극 2중 스로우 스위치(209), 블록 분산 계산(211), 블록 적분기(V213), 블록 적분기(U215) 및 비트 선택(217)(도 2)을 가로질러 도 2에 도시된 것과 같은 시스템에 의해 구현될 수 있다.
프로세스는 수신된 데시메이팅 프레임의 신규한 블록이 프로세싱될 때 단계 401(도 4)에서 시작된다. 교시의 목적으로 본원에서는 화소들이 블록에 의해 그룹화된 도 4의 프로세스에 의해 프로세싱하기 위해 공급되어, 블록의 모든 화소들이 다음의 블록의 임의의 화소들이 프로세싱되기 전에 프로세싱되는 것으로 가정한다. 그러나, 실제 시스템의 설계시에, 본 기술 분야의 당업자들은 화소들이 이들이 스캐닝되는 것과 동일한 순서로 프로세싱되고 블록들을 효과적으로 개별적으로 프로세싱하기 위해 적절한 메모리 위치들 및 제어 구조들이 사용될 수 있다는 것을 즉시 인식할 수 있을 것이다.
도 4의 프로세싱의 일부는 블록-대-블록 기초로 수행되고, 일부는 픽셀-대-픽셀 기초로 수행된다. 프레임의 블록들은 3차원 포인터(p,q)를 사용하여 인덱싱되고, 여기서 p는 처리되는 프레임의 특정 수평 조각을 지시하고, q는 프레임의 특정 열, 또는 수직 조각을 지시한다. 예를 들면, 720 ×480 해상도에서, p는 1 내지 30의 범위이고, q는 1 내지 45의 범위이다. 유사하게, 각각의 블록의 화소들은 2차원 포인터(i,j)를 사용하여 인덱싱되고, 여기서 i는 프로세싱되는 블록 내의 특정 행을 지시하고, j는 프로세싱되는 블록 내의 특정 열을 지시한다. 예를 들면, 원본 비디오의 각각의 매크로블록이 Y, U 및 V의 대응 8×8 블록만을 갖는 데이터를 각인하기 위해 이용되는 특정 프로세싱 모드에서, i 및 j는 모두 0 내지 7의 범위이다.
단계 401에서 프로세스가 시작한 후에, 프로세스에 사용되는 다수의 변수들이 단계 403에서 초기화된다, 예를 들면 countU(p,q)=0, countV(p,q)=0, sumU(p,q)=0, sumV(p,q)=0 및 var(p,q)=0이다. countU 및 countV는 블록 내의 얼마나 많은 화소들이 각각 U 및 V로서 컬러 선택 프로세스에 의해 선택되는지의 실행 총계이고, sumU 및 sumV는 블록의 모든 화소들에 걸친 각각 U 및 V의 실행 총계값이다. 블록에서, i 및 j는 모두 프로세싱될 블록의 제1 화소를 지시하도록 설정된다, 예를 들면, 마찬가지로 i=0 및 j=0이다. 각각의 블록에서, var(p,q)는 물론 블록에 대한 휘도의 평균 분산에 비례하는 블록 내의 각각의 개별 화소에 대한 휘도의 분산의 총계를 표현한다.
그 후, 단계 405에서, 현재 프로세싱되는 블록의 화소를 현재 지시하는 Y, U 및 V 값들이 얻어진다. 예를 들면, , , 및 가 얻어진다. U 및 V의 현재값들은 단계 407에서 sumU 및 sumV의 각각의 현재값들에 가산된다. 또한 단계 407에서, 휘도의 분산[var(p,q)]이 var(p,q)의 현재 총계에 현재 화소에 대한 휘도의 분산을 가산함으로써 갱신된다. 현재 화소에 대한 휘도의 분산은 현재 화소와 그의 모든 가장 근접한 이웃들 사이의 휘도의 차이의 절대값을 취함으로써 계산될 수 있다. 수학적으로, 모든 가장 근접한 이웃들이 동일한 블록 내에 있으면, 이는 이하의 수학식으로 나타낼 수 있다.
본 기술 분야의 당업자들은 그의 가장 인접한 이웃들이 다른 블록들 내에 있는 화소들에도 상기 사상을 즉시 적용할 수 있을 것이다. 더욱이, 프레임의 경계들에 인접한, 따라서 가장 인접한 이웃들을 갖지 않는, 또는 가장 인접한 이웃들이 표시되지 않는 블록들의 일부인 블록들에서, 이러한 이웃들의 값은 0으로 고려될 수 있다.
모든 가장 인접한 이웃들이 고려될 필요는 없으며 여전히 충분히 높은 품질 결과들이 성취될 수 있다. 더 구체적으로는, 계산 시간이 현재 화소를 둘러싸는 직사각형의 코너들에서의 4개의 화소들과 현재 화소와 수직 또는 수평선을 형성하는 다른 화소들의 2개, 예를 들면 현재 화소와 수평선 상에 있는 2개의 화소들의 차이들을 취하도록 감소되는 장점이 있다. 그러나, 디코더는 인코더에 이용된 동일한 프로세스와 일치해야 한다.
제어는 부가의 데이터가 각인될 가능성이 있는 U 또는 V를 결정하도록 테스트하는 조건 분기점 409로 진행한다. 이 결정의 상세들은 이하에 더욱 상세히 설명한다. 단계 409에서의 테스트 결과가 U이면, 부가의 데이터가 현재 화소에 대해 U에 가장 각인될 가능성이 높은 것을 지시하고, 제어는 countU가 증분되는 단계 411로 진행한다. 다음, 제어는 단계 413으로 진행한다. 단계 409에서의 테스트 결과가 V이면, 부가의 데이터가 현재 화소에 대해 V에 가장 각인될 가능성이 높은 것을 지시하고, 제어는 countV가 증분되는 단계 415로 진행한다. 다음, 제어는 단계 413으로 진행한다.
대안적으로, 조건 분기점 409는 데이터가 화소에, 즉 U 또는 V 상에 전혀 각인되지 않을 가능성이 있는 것을 지시하는 부가의 결과를 갖는 3방향 테스트일 수 있다. 이러한 결과가 나오면, 제어는 단순히 단계 413으로 직접 진행한다.
조건 분기점 413은 현재 화소가 현재 블록의 최종 화소인지를 결정하도록 테스트한다. 단계 413에서의 테스트 결과가 아니오이면, 여전히 프로세싱될 현재 블록 내의 부가의 화소들이 잔류함을 지시하고, 제어는 i 및 j의 값들이 다음의 아직 프로세싱되지 않은 화소로서 지시되도록 조절되는 단계 417로 진행한다. 다음, 제어는 단계 405로 진행하고 프로세스가 상술한 바와 같이 계속된다. 단계 413에서의 테스트 결과가 예이면, 현재 블록의 모든 화소들이 프로세싱되었음을 지시하고, 제어는 블록에 대한 데시메이팅 휘도의 분산이 계산되는, 즉 8×8 Y 블록의 분산이 계산되는 단계 419로 진행한다.
다음, 제어는 현재 블록에 대해 countV>countU인지를 결정하도록 테스트하는 조건 분기점 421로 진행한다. 단계 421에서의 테스트 결과가 countV가 실제로 countU보다 큰 것이면, 제어는 블록에 걸친 평균 Y[var(p,q)]가 최대 V 임계치인 제1 설정 임계치 t1v보다 큰지를 결정하도록 테스트하는 조건 분기점 423으로 진행한다. t1v의 예시적인 값은 600이다.
대안적으로, 다양한 비교들을 위한 블록에 걸친 평균 Y 분산을 사용하는 대신에, 예를 들면 더 큰 카운트 값을 갖는 블록에 걸친 평균 U 또는 평균 V 분산이 계산되어 이용될 수 있다.
단계 423에서의 테스트 결과가 예이면, 분산이 데이터가 블록의 화소들의 V 값들의 평균의 정수 부분, 예를 들면 int[sum V(p,q)/(블록 당 화소들의 수)]의 값, 예를 들면 int[sum V(p,q)/64]의 제5 최하위 비트에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 5로 설정되는 단계 425로 진행한다. 다음, 제어는 블록의 화소들의 V 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 427로 진행한다. 다음, 제어는 단계 459에서 종료된다.
본원에 사용되는 바와 같이 라운딩을 위해 정수 함수(int)를 사용하는 대신에, 정수값을 성취하기 위한 임의의 다른 형태의 라운딩, 예를 들면 가장 근접한 정수값으로의 상시 라운딩 또는 상시 라운딩 업이 이용될 수 있다는 것을 주목하라.
단계 423에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 화소들의 V 값들의 평균값의 정수 부분의 제5 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크지 않은 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 제2 최대 V 임계치인 제2 설정 V 임계치(t2v)보다 큰지를 결정하도록 테스트하는 조건 분기점 429로 진행한다. t2v의 예시적인 값은 1.5이다.
단계 429에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 V 값들의 평균의 정수 부분의 제4 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 4로 설정되는 단계 431로 진행한다. 다음, 제어는 블록의 화소들의 V 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인될 값으로서 추출되는 단계 427로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
단계 429에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 화소들의 V 값들의 평균의 정수 부분의 제4 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크지 않다는 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 최소 V 임계치인 제3 설정 V 임계치(t3v)보다 큰지를 결정하도록 테스트하는 조건 분기점 433으로 진행한다. t3v의 예시적인 값은 7이다.
단계 433에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 V 값들의 평균의 정수 부분의 제3 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 3으로 설정되는 단계 435로 진행한다. 다음, 제어는 블록의 화소들에 걸친 V 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 427로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
단계 433에서의 테스트 결과가 아니오이면, 분산은 데이터가 단지 블록의 화소들의 V 값들의 평균의 정수 부분의 제 2 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크다는 것을 지시하고, 제어는 변수 m이 2로 설정되는 단계 437로 진행한다. 다음, 제어는 블록의 화소들에 걸친 V 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 427로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
단계 421에서의 테스트 결과가 countU가 countV보다 큰 것이면, 제어는 블록에 걸친 평균 Y 분산이 최대 U 임계치인 제1 설정 임계치(t1u)보다 큰지를 결정하도록 테스트하는 조건 분기점 445로 진행한다. t1u의 예시적인 값은 600이다.
단계 445에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 U 값들의 평균의 정수 부분, 예를 들면 int[sum U(p,q)/(블록 당 화소들의 수)]의 값, 예를 들면 int[sum U(p,q)/64]의 제5 최하위 비트에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 5로 설정되는 단계 447로 진행한다. 다음, 제어는 블록의 화소들의 U 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 447로 진행한다. 다음, 제어는 단계 459에서 종료된다.
단계 445에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균값의 정수 부분의 제5 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크지 않은 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 제2 최대 U 임계치인 제2 설정 V 임계치(t2u)보다 큰지를 결정하도록 테스트하는 조건 분기점 449로 진행한다. t2u의 예시적인 값은 1.5이다.
단계 449에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균의 정수 부분의 제4 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 4로 설정되는 단계 451로 진행한다. 다음, 제어는 블록의 화소들의 U 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인될 값으로서 추출되는 단계 447로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
단계 449에서의 테스트 결과가 아니오이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균의 정수 부분의 제 4 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크지 않다는 것을 지시하고, 제어는 블록에 걸친 평균 Y 분산[var(p,q)]이 최소 U 임계치인 제3 설정 U 임계치(t3u)보다 큰지를 결정하도록 테스트하는 조건 분기점 453으로 진행한다. t3u의 예시적인 값은 7이다.
단계 453에서의 테스트 결과가 예이면, 분산은 데이터가 블록의 화소들의 U 값들의 평균의 정수 부분의 제3 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 큰 것을 지시하고, 제어는 변수 m이 3으로 설정되는 단계 455로 진행한다. 다음, 제어는 블록의 화소들에 걸친 U 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 447로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
단계 453에서의 테스트 결과가 아니오이면, 분산은 데이터가 단지 블록의 화소들의 U 값들의 평균의 정수 부분의 제2 최하위 비트 상에 인코딩될 가능성이 있도록 충분히 크다는 것을 지시하고, 제어는 변수 m이 2로 설정되는 단계 457로 진행한다. 다음, 제어는 블록의 화소들에 걸친 U 값들의 평균의 m 번째 최하위 비트의 값이 이 블록에 각인된 값으로서 추출되는 단계 447로 진행한다. 다음, 프로세스는 단계 459에서 종료된다.
3개의 임계치들 및 4 비트 위치들의 사용이 도 3 및 도 4에 도시되었지만, 본 기술 분야의 당업자들은 다른 수의 임계치들 및 인코딩 값들에 지시된 방법을 즉시 적용할 수 있을 것이다.
유사하게, 각각의 프레임의 블록들 또는 비디오 신호의 필드가 모두 부가의 정보로 각인될 필요는 없다.
도 6은 특정 크로미넌스부가 더 적합한지를 결정하여 화소를 위한 워터마킹 정보를 포함하도록 선택되는 다른 예시적인 프로세스를 도시한다. 프로세스는 워터마킹 정보를 포함하도록 크로미넌스부를 선택할 필요가 있을 때 단계 601에서 시작한다. 도 6의 설명을 위해, 화소는 YUV 포맷으로 표현되는 것으로 가정한다. 더욱이, 바람직하게는 원본 비디오의 각각의 원본 2×2 휘도 블록에 대해서 원본 비디오가 4-4-4 표현으로 존재하며, 각각의 크로미넌스 성분, 즉 각각의 대응 U 및 V 값들의 각각의 쌍에 대해 단지 하나의 Y 값이 존재해야 한다는 것을 주목해야 한다. 이를 위해, 원본 블록의 Y 값들은 U 및 V와 동일한 해상도를 갖도록 다운샘플링될 수도 있다. 대안적으로, 특정 U 및 V 값들과 연관된 Y 값들의 평균, 또는 소정의 다른 조합이 계산되어 도 6의 프로세스를 위한 Y 값으로서 사용될 수도 있다.
개념적으로는, 가능한 화소부에 대응하는 3차원 YUV 색 공간에서의 각각의 위치는, 화소의 Y, U 및 V 값들이 취할 수 있는 전체 범위가 주어지면, 예를 들면 실험적 관찰들에 기초하여 더 적합한 크로미넌스부로 할당되고, 이러한 Y, U 및 V 값들을 갖는 화소들에 대해 선택되어야 한다. 각각의 Y, U 및 V가 8 비트의 전체 범위를 갖는 Y, U 및 V 값들의 각각의 가능한 세트를 위한 전체 표의 버전이 이용되면, 적어도 16M 비트의 정보가 저장될 필요가 있고, 단지 하나의 비트가 선택된 크로미넌스부를 지시하도록 각각의 위치에 저장되는 것으로 가정한다. 단일 비트의 사용은 단지 U 또는 V의 선택을 허용하지만, U 또는 V 모두가 이용되지 않는 것을 지시하지는 않는다는 것을 주목하라. U 또는 V 모두를 선택할 수 없도록 요구되면, 32Mbits의 정보가 필요할 수 있다.
3차원 YUV 색 공간 내의 각각의 가능한 화소에 대해 선택되는 크로미넌스부의 예시적인 할당들의 부분의 절개도는 도 7에 도시된다. 도 7은 개념적인 시각적 보조로서 교시의 목적으로만 제공되고 실제 데이터를 나타내지 않는다는 것을 주목하라.
저장 요건들을 감소시키기 위해, YUV 색 공간은 각각의 구역이 Y, U 및 V의 적어도 하나의 세트 및 통상적으로는 다수의 세트들에 대응하는 위치들, 즉 적어도 하나의 화소, 및 가능하게는 다수의 화소들에 대응하는 색 공간 내의 위치들을 포함하도록 규정되고 각각의 구역 및 따라서 구역에 맵핑되는 각각의 화소가 예를 들면 실험적인 관찰들에 기초하여 그의 Y, U 및 V 값들의 임의의 화소가 구역 내에 있도록 선택되는 크로미넌스부로 할당되는 구역들의 그룹이 고려될 수 있다. 이러한 구역 내로의 그룹화를 위한 하나의 방법은 선형 또는 비선형일 수 있는 양자화이다.
표 1은 각각의 구역이 4개의 Y 값들, 4개의 U 값들 및 4개의 V 값들, 및 따라서 임의의 화소에 대한 8비트 값들의 64개의 가능한 조합들에 대응하는 예시적인 색 공간 선택 표를 위한 리스트이다. 이러한 표의 사용은 단지 하나의 비트가 각각의 위치에 저장된다고 가정하여 256Kbits로, Y, V를 선택하고 및 U 및 V를 모두 선택하지 않은 것이 요구된다고 가정하여 512Kbits로 저장될 요구 정보를 감소시킨다. 표 1은 예를 들면 ROM, RAM과 같은 임의의 컴퓨터 판독 가능 매체, 하드 디스크 또는 테이프 드라이브와 같은 자기 저장 장치, CD-ROM 또는 DVD-ROM 등과 같은 광학 저장 장치에 저장될 수 있다.
본 기술 분야의 당업자들은 8 비트의 전체 범위를 갖는 Y, U 및 V의 각각에 대한 표 1에 이용된 값들이 예를 들면 각각 10 비트값을 우측으로 2회 시프팅함으로써 4로 분할하여 10 비트의 Y, U 및 V 값들과 함께 사용하기 위해 스케일링될 수 있다는 것을 즉시 인식할 수 있을 것이다. 마찬가지로, Y, U 및 V에 사용된 다른 수들의 비트들이 유사하게 수용될 수 있다.
표 1의 데이터를 효과적으로 배열하고 접속하기 위해, 동일한 U 및 V 양자화값들을 갖지만 상이한 순차적 양자화 Y 값들을 갖는 8개의 인접한 구역들에 대해 1이 선택 U를 지시하고 0이 선택 V를 지시하는 규정된 U 또는 V 선택이 바이트를 형성하도록 함께 그룹화되도록 배열된다. 따라서, 각각의 U 및 V 값들에 대해 각각 동일한 U 및 V 양자화값들을 갖지만 상이한 양자화 Y 값들을 갖는 구역에 대응하는 8 바이트들이 존재한다.
표 1은 U 값들에 대응하는 최상위 비트들, V 값들에 대응하는 다음의 최하위 값들 및 Y 값들에 대응하는 최하위 값들을 갖는 어드레스를 사용하여 어드레싱되도록 배열된다. 달리 말하면, 바이트들의 어드레스는 이하와 같이 형성될 수 있다:
U7|U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
여기서, U7, U6, U5, U4, U3 및 U2는 화소들 U 값의 제8 내지 제3 최하위 비트들의 값들이고, V7, V6, V5, V4, V3 및 V2는 화소들 V 값의 제8 내지 제3 최하위 비트들의 값들이고, Y7, Y6 및 Y5는 화소들 Y 값의 제8 내지 제6 최하위 비트들의 값들이다. 다음, 바이트 내의 특정 비트가 Y 성분, 예를 들면 Y4, Y3 및 Y2의 제5 내지 제2 최하위 비트들을 사용함으로써 규정된다.
표 1과 같은 표는 인간 시각 시스템이 a) 청색에 덜 민감하고, b) 더 낮은 휘도값들에 더 민감한 사실들을 반영한다. 이러한 표는 시행 착오에 의해 일반적으로 이하와 같이 전개될 수 있다.
색 공간은, 각각의 섹션이 휘도값에 의해 규정되고 그의 최소값으로부터 최대값으로 변경하는 제1 크로미넌스부에 대응하는 제1 차원 및 그의 최소값으로부터 최대값으로 변경하는 제2 크로미넌스부에 대응하는 제2 차원을 배열하는 섹션들 내에서 검사된다. 휘도 및 크로미넌스부들의 임의의 하나 또는 모두는 예를 들면 8비트 값들의 6개의 최상위 비트들을 사용하여 양자화될 수 있다. 이렇게 함으로써, 상이한 컬러들의 블록들로서 표시될 때 각각의 휘도값에 대해 하나의 평면을 나타내는 바둑판형 크로미넌스부 값들을 갖는 평면들의 세트가 생성된다. 예를 들면, 휘도의 8 비트 값들의 6개의 최상위 비트들을 사용하기 위해 양자화함으로써 양 크로미넌스부들이 각각의 가능한 양자화 휘도값에 대응하는 64개의 평면들을 산출하고, 각각의 평면은 평면당 총 4096개의 박스들에 대해 수직으로 64개의 박스들 및 수평으로 64개의 박스들을 갖는 색 형성 박스들의 바둑판 패턴을 갖는다.
각각의 평면은 개별적으로 검사된다. 랜덤 데이터가 플리커가 나타나야 하는 것을 관찰자가 검출하고 시간에 걸친 프레임의 유사 위치 설정 블록들 내의 상이한 값들을 갖는 것을 확인하기에 충분한 프레임들의 수에 대해 전개된다. 30초 이상이 가치 있는 것으로 판명되었다. 랜덤 데이터는 컬러 선택이 제1 크로미넌스부가 되도록 강요하는 워터마킹을 성취하도록 예를 들면 도 1의 시스템 및 도 3의 프로세스를 사용하여 크로미넌스부들의 제1 크로미넌스부에서만 평면을 포함하는 프레임들에 각인된다.
플리커가 관찰되지 않는 임의의 블록은 그의 휘도와 크로미넌스부들의 조합이 해당 조합을 위해 선택된 크로미넌스부로서 워터마크 데이터를 현재 수반하는 크로미넌스부를 이용해야 한다는 것을 표에서 지시한다. 플리커가 관찰되는 임의의 블록은 그의 휘도와 크로미넌스부들의 조합이 해당 조합을 위해 선택된 크로미넌스부로서 워터마크 데이터를 현재 수반하지 않는 크로미넌스부를 이용해야 한다는 것을 표에서 지시한다. 프로세스는 워터마킹되는 크로미넌스부를 변경하지 않고 평면에서 반복된다.
플리커가 양 크로미넌스부들에 발생하는 평면의 임의의 블록에서, 발생할 수 있는 바와 같이, 수행자는 크로미넌스부가 선택되어야 하는 것을 선택할 수 있다. 예를 들면, U는 인간 시각 시스템이 일반적으로 청색에 덜 민감하기 때문에 선택될 수 있다. 대안적으로, 최종 표의 더 양호한 데이터 압축을 제공할 수 있는 크로미넌스부가 이용될 수 있다. 유사하게, 플리커가 양 블록에 나타나지 않는 경우, 이용될 크로미넌스부의 선택은 수행자의 판단에 있다.
프로세스는 전체 표가 기입될 때까지 각각의 평면에 대해 반복된다.
표 1
단계 603은 이와 같이 배열될 때 정보에 접근하는 프로세스를 시작한다.
더 구체적으로는, 단계 603에서,
이 계산된다.
여기서, 상술한 바와 유사하게,
p는 프로세싱되는 프레임의 특정 수평 조각을 지시하고 q는 프레임의 특정 열 또는 수직 조각을 지시하고, i는 프로세싱되는 블록 내의 특정 행을 지시하고, j는 프로세싱되는 블록 내의 특정 열을 지시하고, "》"는 우측 시프트 연산이다. 이와 같이 함으로써 화소들 U 값의 소정 제 8 내지 제 3 최하위 비트들, 화소들 V 값의 제 8 내지 제 3 최하위 비트들, 및 화소들 Y 값의 제 8 내지 제 6 최하위 비트들만을 잔류시킨다. 그 후, 단계 605에서 현재 화소를 위한 룩업 테이블 어드레스가 이하와 같이 계산되고,
여기서, "《"는 좌측 시프트 연산이다.
이와 같이 함으로써 추출된 비트들을 조합된 어드레스로 조합하고 화소에 대응하는 1 바이트를 지시한다. 그 후, 단계 607에서, 화소에 대응하는 바이트 내의 특정 비트가 Y 성분의 제2 내지 제5 최하위 비트들을 구성하는 값을 바이트 내로의 인덱스로서 사용함으로써 결정된다. 이를 위해, 단계 607은,
을 계산하고, 여기서 mod는 모듈로 펑션이다.
단계 609에서, 계산된 룩업 테이블 어드레스에서의 바이트의 b번째 비트 위치의 값이 추출되어 출력으로서 공급되는 변수 m의 값으로서 할당된다. 또한, 본 예시적인 실시예에서, 추출된 비트가 1이면, U는 선택된 크로미넌스부이고, 추출된 비트가 0이면, V는 선택된 크로미넌스부이다.
다음, 프로세스는 단계 611에 존재한다.
본 기술 분야의 당업자는 상기를 다른 포맷들, 예를 들면 RGB 또는 YIQ의 화소들로 어떻게 적응하는지를 즉시 인식할 수 있을 것이다.
표의 허프먼 인코딩이 요구되면, U를 1로 선택하고 V를 0으로 선택하는 상기의 대응 관계를 반전시키는 것이, 즉 실험적으로 알 수 있는 바와 같이 U가 화소 조합들의 주요 대부분으로 선택되는 것이 유리할 수도 있다는 것을 주목하라.
도 8은 특정 크로미넌스부가 화소를 위한 워터마킹 정보를 포함하도록 선택되는 다른 예시적인 프로세스를 도시한다. 프로세스는 워터마킹 정보를 포함하기에 적합한 크로미넌스부를 선택할 필요가 있을 때 단계 801에서 시작한다. 도 6에서와 마찬가지로, 도 8의 설명을 위해, 화소는 YUV 포맷으로 표현되는 것으로 가정한다. 더욱이, 바람직하게는 원본 비디오의 각각의 원본 2×2 휘도 블록에 대해서 원본 4-4-4 표현으로 존재하며, 각각의 크로미넌스 성분, 즉 각각의 대응 U 및 V 값들의 각각의 쌍에 대해 단지 하나의 Y 값이 존재해야 한다는 것을 주목해야 한다. 이를 위해, 원본 블록의 Y 값들은 U 및 V와 동일한 해상도를 갖도록 다운샘플링될 수도 있다. 대안적으로, 특정 U 및 V 값들과 연관된 Y 값들의 평균, 또는 소정의 다른 조합이 계산되어 도 8의 프로세스를 위한 Y 값으로서 사용될 수도 있다.
도 8의 실시예에서의 저장 요건들을 더욱 감소시키기 위해, 도 6의 실시예와 비교할 때, YUV 색 공간이 각각 Y, U 및 V 값들의 적어도 하나의 세트에 대응하는 위치들을 포함하고 예를 들면 실험 관찰들에 기초하여 크로미넌스부에 각각 할당되는, 즉 도 6과 관련하여 설명된 바와 같이 그의 Y, U 및 V 값들이 구역 내에 있는 임의의 화소를 위해 선택되는 구역들로 분할될 뿐만 아니라, 미리 설정된 값, 예를 들면 최대값의 1/2 미만의 U 값을 갖는 임의의 화소가 워터마킹을 위해 U 크로미넌스부를 갖는다. 따라서, 8 비트 Y, U 및 V 값들에 대해, U의 값이 128 미만이면, U 크로미넌스부는 항상 V 또는 Y의 값들에 무관하게 워터마킹을 위해 선택된다. 이는 인간 시각 시스템이 V 성분보다 청색 성분(U)에 덜 민감하기 때문이다.
어드레스의 U-값-유도 비트들에 대응하는 크로미넌스부 선택 표의 최상위 어드레스 비트들을 가짐으로써, 유리하게는 표의 크기가 1/2까지 감소될 수 있다. 이는 U 값이 표 어드레스를 형성하기 전에 최대값의 1/2 미만인지를 결정하도록 테스트를 추가함으로써 성취되고, 테스트 결과가 예이면, 단순히 U 크로미넌스부를 선택하는 것을 지시하고 표에 접근하는 프로세스의 결과를 스킵하며, 또한 어드레스의 U-값-유도 비트들을 계산하기 전에 실제 U 값으로부터 최대 U 값의 1/2을 감산함으로써 성취된다. 따라서, 최상위 U 비트가 0인 것에 대응하는 도 6에 이용된 표의 섹션이 제거되고, 최상위 U 비트가 1인 표의 부분만이 유지된다. 그러나, 표의 잔여부 내로의 인덱싱은 U-값-유도 비트들을 형성하기 전에 최대 U 값의 1/2의 U 값으로부터 감산에 의해 시프트된다.
따라서, 표는 U 값들에 대응하는 최상위 비트들, V 값들에 대응하는 다음의 최하위 값들 및 Y 값들에 대응하는 최하위 값들을 갖는 어드레스를 사용하여 어드레싱되도록 배열된다. 달리 말하면, 바이트들의 어드레스는 이하와 같이 형성될 수 있다:
U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
여기서, U6, U5, U4, U3 및 U2는 화소들 U 값의 제 7 내지 제 3 최하위 비트들의 값들이고, V7, V6, V5, V4, V3 및 V2는 화소들 V 값의 제 8 내지 제 3 최하위 비트들의 값들이고, Y7, Y6 및 Y5는 화소들 Y 값의 제 8 내지 제 6 최하위 비트들의 값들이다. 다음, 바이트 내의 특정 비트가 Y 성분, 예를 들면 Y4, Y3 및 Y2의 제5 내지 제 2 최하위 비트들을 사용함으로써 규정된다.
이를 위해, < 미리 설정된_값인지를 결정하도록 조건 분기점 802가 테스트하고, 여기서 미리 설정된_값은 예를 들면 최대 U 값의 1/2이다. 비트를 절약하고 표 크기를 절반으로 하기 위해, 바람직하게는 미리 설정된_값은 2의 멱이어야 한다. 단계 802에서의 테스트 결과가 아니오이면, U의 값이 미리 설정된 값, 예를 들면 U의 최대값의 1/2, 예컨대 128 미만이고 따라서 선택될 크로미넌스부가 Y, U 및 V의 함수이며 따라서 표가 접근되어야 한다는 것을 지시하고, 제어는 표의 접근 프로세스를 시작하는 단계 803으로 진행한다. 단계 803에서,
이 계산된다.
여기서 상술한 바와 유사하게,
p는 프로세싱되는 프레임의 특정 수평 조각을 지시하고 q는 프레임의 특정 열 또는 수직 조각을 지시하고, i는 프로세싱되는 블록 내의 특정 행을 지시하고, j는 프로세싱되는 블록 내의 특정 열을 지시하고, "》"는 우측 시프트 연산이다. 이와 같이 함으로써 화소들 U 값의 소정 제7 내지 제3 최하위 비트들, 화소들 V 값의 제8 내지 제3 최하위 비트들, 및 화소들 Y 값의 제8 내지 제6 최하위 비트들만을 잔류시킨다. 그 후, 단계 805에서 현재 화소를 위한 룩업 테이블 어드레스가 이하와 같이 계산되고,
여기서, "《"는 좌측 시프트 연산이다.
이와 같이 함으로써 추출된 비트들을 조합된 어드레스로 조합하고 화소에 대응하는 1 바이트를 지시한다. 그 후, 단계 807에서, 화소에 대응하는 바이트 내의 특정 비트가 Y 성분의 제5 내지 제2 최하위 비트들을 구성하는 값을 바이트 내로의 인덱스로서 사용함으로써 결정된다. 이를 위해, 단계 807은,
을 계산하고, 여기서 mod는 모듈로 펑션이다.
단계 809에서, 계산된 룩업 테이블 어드레스에서의 바이트의 b번째 비트 위치의 값이 추출되어 변수 m에 저장된다. 변수 m의 값은 단계 811에 출력으로서 공급된다. 또한, 출력 비트가 1이면, U는 선택된 크로미넌스부이고, 추출된 비트가 0이면, V는 선택된 크로미넌스부이다. 다음, 프로세스는 단계 813에 존재한다.
단계 802에서의 테스트 결과가 예이면, 화소 컬러가 주로 청색이 아니고 따라서 호소의 청색의 변경이 인간 시각 시스템에 의해 검출되지 않기 때문에 U 크로미넌스부가 선택되어야 하는 것을 지시하고, 제어는 변수 m이 1로 설정되는 단계 815로 진행한다. 이렇게 함으로써 U가 선택되는 것을 보장한다. 다음, 제어는 단계 811로 진행하고, 프로세스는 상술한 바와 같이 계속된다.
상술한 컬러 선택의 개선에도 불구하고, 화소에 대한 특정 Y, U 및 V 값들에서는, 여전히 약간의 검출 가능한 플리커링이 나타나는 가능성이 바람직하지 않게 존재한다. 이는 MPEG형 인코딩을 잔존시키기 위해 선택된 크로미넌스부의 평균값에 큰 값들을 가산할 필요가 있을 수도 있기 때문이다.
도 9는 본 발명의 원리들에 따라, 블록의 크로미넌스부의 평균값에 각인되기에 앞서 각인될 데이터를 적어도 1회, 바람직하게는 2회 이상 복제함으로써 플리커링이 감소될 수 있는 예시적인 송신기를 도시한다. 원본의 각각의 복제본이 개별의 연속적인 프레임들의 동일한 블록 위치에 전송된다. 바람직하게는, 동일한 데이터를 수반하는 유사 위치 설정 블록들을 갖는 프레임들이 디스플레이 순서에서 연속적이다. 더욱이, 본 발명의 특징에 따르면, 프레임의 특정 블록들이 인코딩된 사용자 데이터보다는, 예를 들면 바커 시퀀스와 같은 특정의 공지의 데이터 시퀀스로 매입될 수 있다.
도 9의 본 발명의 실시예는 도 1의 배열과 유사하다. 도 9의 유사한 도면 부호로 나타낸 모든 요소들은 도 1과 실질적으로 동일하게 동작한다. 도 1의 요소들에 부가하여, 도 9에는 중계기(925) 및 선택적 시퀀스 가산기(927)가 도시된다. 게다가, 도 1의 비트 맵퍼(123)는 도 9에서는 비트 맵퍼(923)로 선택적으로 대체된다. 비트 맵퍼(923)로의 비트 맵퍼(123)의 대체는 비트 맵퍼(923)와 관련하여 이하에 설명되는 부가의 기능이 요구되는 경우에만 필요하다.
중계기(925)는 블록 인터리버(121) 또는 선택적 시퀀스 가산기(927)로부터 비트들을 수신한다. 중계기(925)는 수신 비트들을 저장하고 이들을 적어도 2개의 프레임들의 유사 위치 설정 블록들에 대해 출력한다. 본 발명의 일 실시예에서, 중계기(925)가 수신 비트들을 저장하여 이들을 3개의 프레임들의 유사 위치 설정 블록들에 대해 출력할 때 양호한 결과들이 성취되는 것으로 발견되었다. 본 기술 분야의 당업자들은 데이터가 반복되는 프레임들의 수를 선택함으로써 워터마크 데이터의 소정 출력과 임의의 지각되는 플리커를 균형화할 수 있을 것이다.
선택적인 시퀀스 가산기(927)는 프레임의 특정 블록들에서 인코딩된 사용자 데이터를 대신하는 데이터 시퀀스인 예를 들면 바커 시퀀스와 같은 특정 공지의 데이터 시퀀스를 매입한다. 본 발명의 특징에 따르면, 데이터 시퀀스가 인코딩되는 특정 블록들은 프레임의 블록들에 걸쳐 분산될 수 있다. 초기 및 반복된 데이터 프레임들의 각각의 그룹은 상이한 공지의 시퀀스를 이용할 수 있다. 이렇게 함으로써 수신기가 프레임들의 그룹화를 검출하는 것을 가능하게 한다. 대안적으로, 동일한 시퀀스가 각각의 그룹에 이용될 수 있지만 시퀀스를 위해 사용된 특정 블록들은 연속적인 그룹들에 대해 상이할 수 있다.
도 10은 본 발명의 원리들에 따른 도 9의 송신기에 의해 생성된 바와 같은 워터마킹된 비디오 신호를 수신하는데 사용하기 위한 수신기의 예시적인 실시예를 도시한다. 도 10의 본 발명의 실시예는 도 2의 배열과 유사하다. 도 10의 유사한 도면 부호로 나타낸 모든 요소들은 도 2에서와 실질적으로 동일하게 동작한다. 도 2의 요소들에 부가하여, 도 10에는 시퀀스 프로세서(1025) 및 프레임 가중 유닛(1027)이 도시된다. 더욱이, 도 2의 채널 디코더(221)는 도 10에서는 채널 디코더(1021)로 선택적으로 대체된다.
예를 들면, 도 10에 도시된 바와 같은 수신기는 시퀀스 프로세서(1025)를 사용하여 그룹 동기화를 검출할 수 있다. 이는 동기화 패턴으로서 이용되는 연속적인 프레임들의 그룹-길이-수의 각각의 프레임으로부터 그룹 식별 시퀀스의 값들을 가산하고 결과가 설정 임계치를 초과하는지를 결정함으로써 수행될 수 있다. 임계치가 초과되면, 그의 예측된 동기화 패턴값이 가산되는 제 1 프레임이 그룹 내의 제 1 프레임이라고 가정한다. 임계치가 초과되지 않으면, 그의 값이 가산되는 제 1 프레임이 그룹의 제 1 프레임이 아니라고 가정한다. 이는 동기화 패턴의 자동 보정을 수행하는 것과 유사하다. 본 기술 분야의 당업자들은 오류 정합들을 회피하기 위한, 뿐만 아니라 그룹 동기화를 선언하기 전에 최대값을 탐색하는 것과 같은 에러들에 기인하는 제 1 프레임의 손실을 취급하기 위한 다른 종래의 기술들이 이용될 수 있다는 것을 인식할 수 있을 것이다.
유리하게는, 일단 수신기가 규칙적인 그룹 패턴을 검출하면, 패턴으로부터 편차가 있는 임의의 시기에 수신기는 원본 비디오 시퀀스의 프레임이 제거되었다는 것을 인식할 수 있을 것이다. 이러한 정보는 시퀀스 프로세서(1025)에 의해 출력으로서 공급된다.
예를 들면, 본 발명의 일 실시예에서, 비디오 신호 내의 벤더의 다양한 광고들이 모니터링될 수 있다. 벤더는 그의 광고의 각각의 프레임에 매입된 고유 코드로 할당될 수 있다. 수신기는 특정 고유 코드 및 어떠한 워터마킹된 프레임들의 블록들이 코드를 포함해야 하는지를 인식한다. 워터마킹된 프레임들 내의 코드의 출현을 검출함으로써, 수신기는 벤더의 광고들 중 하나에 속하는 것들로서 프레임을 식별할 수 있다. 일단 코드를 갖는 프레임이 검출되면, 코드를 갖는 순차적인 프레임들의 수가 카운팅되어 광고의 길이를 결정할 수 있다. 카운팅된 프레임들의 수가 원본 워터마킹될 때 광고의 공지의 길이에 기초하는 프레임들의 예기된 수보다 작으면, 광고는 프레임들의 예기된 수와 프레임들의 카운팅된 수 사이의 차이에 대응하는 프레임들의 수를 제거함으로써 부적절하게 단축된 것으로 가정될 수 있다. 본 기술 분야의 당업자들은 오류 정합들을 회피하기 위한, 뿐만 아니라 에러들에 기인하는 제1 프레임의 손실을 취급하기 위한 다른 종래의 기술들이 이용될 수 있다는 것을 인식할 수 있을 것이다.
광고의 각각의 프레임, 또는 광고 내의 프레임들의 그룹들은 예를 들면 프레임에 걸친 개별 시퀀스의 부분인 프레임 또는 그룹 번호와 같은 고유 식별자로 워터마킹될 수 있다. 예측된 시퀀스 내의 갭이 하나 이상의 손실 프레임들에 기인하여 검출되면, 손실 프레임들은 각각의 프레임이 고유 식별자를 가질 때 구체적으로 식별될 수 있다. 식별자들이 단지 그룹들로 할당되어 각각의 그룹 내의 프레임들의 수가 공지되면, 단지 임의의 손실 프레임들이 속하는 특정 그룹이 식별되고 그와 함께 얼마나 많은 프레임들의 카운트가 손실되었는지가 식별된다.
데이터의 복제가 본 발명의 원리들에 따라 상술한 바와 같이 플리커를 감소시키기 위해 이용될 수 있지만, 이렇게 함으로써 특정 프레임을 식별하기 위한 것보다는 프레임이 손실되는 그룹을 단지 식별하기 위해 손실 프레임들을 검출하는 능력을 제한할 수 있다. 따라서, 본 발명의 특징에 따르면, 워터마크 데이터가 일반적으로 복제되지만, 개별 프레임 식별자는 복제되지 않을 수도 있다. 이러한 미복제 프레임들을 포함하는 블록들은 이들이 예를 들면 프레임의 코너들과 같은 플리커링을 발생할 수 있는 주의를 유도할 가능성이 적은 위치에 배치된다. 이렇게 함으로써 검출 가능한 플리커를 감소시키고 또한 손실되는 특정 개별 프레임들이 검출될 수 있게 하는 주요 장점을 제공한다.
벤더가 상이한 광고들을 가지면, 광고들의 각각은 수신되는 해당 벤더의 특정 광고를 식별하도록 그의 프레임들 중 적어도 하나에 매입된 추가의 시퀀스를 가질 수 있다.
다수의 벤더들이 워터마킹된 광고들을 가지면, 각각의 벤더가 고유 코드로 할당되는 한, 제1 고유 코드를 갖는 제1 벤더의 광고들의 출현을 모니터링하는 시스템은 제2 고유 코드를 갖는 제2 벤더의 광고들을 무시할 수 있다. 대안적으로, 단일 시스템이 각각 고유 코드를 갖는 상이한 벤더들로부터 광고들의 출현을 위한 비디오 신호를 모니터링할 수 있고, 결과들은 이들의 코드들에 기초하여 벤더에 의해 격리될 수 있다.
다수의 벤더들이 워터마킹된 광고들을 갖는 본 발명의 다른 실시예에서, 각각의 벤더는 동일한 코드를 이용하고, 코드는 각각의 벤더를 위한 프레임 내의 동일 블록 위치들에 있을 수 있다. 그러나, 프레임 내에 포함되는 모든 후속 데이터가 각각의 벤더를 위한 고유 키이를 사용하여 암호화되고 각각의 벤더는 해당 벤더를 위한 키이만을 인지하는 수신기를 갖는다. 따라서, 각각의 벤더는 그의 고유의 광고들만으로부터의 데이터를 해독하고 수신할 수 있다. 본 발명의 다른 실시예에서, 각각의 벤더를 위한 데이터는 프레임의 블록들을 걸쳐 데이터를 스크램블링함으로써 암호화될 수 있다. 각각의 수신기는 단지 그의 연관 벤더를 위한 스크램블링 패턴만을 인지할 수 있다.
광고의 시작을 지시하는 코드의 초기 출현을 모니터링하는 것은 연속적으로, 또는 그 동안에 광고가 방송되도록 예측되는 시간의 윈도우 내에서 수행될 수 있다.
본 발명의 특징에 따르면, 그룹의 다수의 프레임들에 걸쳐 단순히 데이터를 반복하고 이어서 비트 맵퍼(123)(도 1)를 사용하는 대신에, 블록의 복잡성 및 그의 예기된 양자화 레벨에 따르는 블록의 크로미넌스부의 평균값에 가산된 양이 블록의 복잡성이 프레임으로부터 프레임까지의 대응 위치들에서 동일할 때에도 그룹에 걸쳐 프레임으로부터 프레임까지 약간 변경될 수 있다. 본 발명의 특징에 따르면, 수행되는 변경은 평균값 내에 워터마크 비트를 배치하기 위해 평균에 가산되는 값에 대해 작다. 이러한 변경들은 비트 맵퍼(923)(도 9)에 의해 수행되어 수신기에서의 데이터의 신뢰성을 향상시키도록 유리하게 이용될 수 있는 부가의 코딩 이득을 제공할 수 있다. 그러나, 이렇게 함으로써 낮은 텍스쳐 영역들의 시각적 품질에서의 약간의 감소를 발생시킬 수 있는데, 이는 블록 내의 소수의 화소들이 동일 위치 내의 그들의 선행자들과는 상이한 값들을 가질 수도 있기 때문이다. 그러나, 이러한 감소는 화소 레벨이 있기 때문에, 통상적으로는 주목되지 않는다.
본 발명의 일 예시적인 실시예에서, 3개의 시간 연속적 프레임들의 그룹들이 상부에 각인되는 동일한 워터마크 데이터로 전송된다. 그룹의 중간 프레임은 도 3에서 결정된 값으로부터 블록의 선택된 크로미넌스부의 평균값에 가산된 양을 변경시키지 않고 도 3과 관련하여 상술한 바와 같이 워터마킹된다.
그룹의 최초 프레임은 또한 도 3과 관련하여 설명된 바와 같이 전개되는 블록의 선택된 크로미넌스부의 평균값에 비트 맵퍼(923)(도 9)에 의해 가산되는 계산값, 즉 오프셋 바이어스를 갖는다. 그러나, 본 발명의 특징에 따르면, 예를 들면 평균값 내에 워터마크 비트를 배치하기 위해 평균에 가산되는 값의 절대값의 1/4 또는 바람직하게는 1/2인 바이어스는 워터마크 데이터를 수반하도록 선택된 크로미넌스부의 계산된 평균값에 부가적으로 가산된다. 따라서, 예를 들면, 1이 평균 값내에 워터마크 비트를 배치하기 위해 평균값에 가산되면, 1/2이 평균값에 가산된다. 이는 블록 내에 64 화소들이 존재할 때 블록의 모든 화소들의 선택된 크로미넌스부의 값들의 합에 32를 가산하는 것을 번역한다. 따라서, 합산기(133)는 바이어스가 가산되지 않은 것보다 높은 값을 수신한다. 유사하게, 다른 예로서, -4가 평균 값 내에 워터마크를 배치하기 위해 평균값에 가산되면, 평균값에 가산된 값의 절대값의 1/2이 이용되면, 이는 블록 내에 64 화소들이 존재할 때 블록의 모든 화소들의 선택된 크로미넌스부의 값들의 합에 128을 가산하는 것을 번역한다.
이 부가의 바이어스 양, 예를 들면 32는 이들의 휘도 분산들에 기초하여 다양한 화소들에 걸쳐 분포될 수 있다는 것을 주목하라. 또한, 이 바이어스의 가산은 안전 범위로 유도하도록 평균에 가산된 임의의 값에 무관하다. 그 결과, 평균값은 안전 범위의 외부에 있을 수 있다. 그러나, 안전 범위의 외부로 이동함으로써 발생되는 에러 가능성의 증가는 바이어스를 이용함으로써 초래하는 최종 코딩 이득에 의해 오프셋보다 많다.
그룹의 최후 프레임은 도 3과 관련하여 설명된 바와 같이 전개되는 블록의 선택된 크로미넌스부의 평균값에 비트 맵퍼(923)(도 9)에 의해 감산되는 계산값, 즉 오프셋 바이어스를 갖는다. 그러나, 본 발명의 특징에 따르면, 예를 들면 평균값 내에 워터마크 비트를 배치하기 위해 평균에 가산되는 값의 절대값의 1/4 또는 바람직하게는 1/2인 바이어스는 워터마크 데이터를 수반하도록 선택된 크로미넌스부의 계산된 평균값으로부터 부가적으로 감산된다. 따라서, 예를 들면, -3이 평균 값 내에 워터마크 비트를 배치하기 위해 평균값에 가산되면, -3의 절대값의 1/2, 즉 1.5가 평균값으로부터 감산된다. 이는 블록 내에 64 화소들이 존재할 때 블록의 모든 화소들의 선택된 크로미넌스부의 값들의 합으로부터 64를 감산하는 것을 번역한다. 따라서, 합산기(133)는 바이어스가 가산되지 않은 것보다 낮은 값을 수신한다. 유사하게, 다른 예로서, 2가 평균 값 내에 워터마크를 배치하기 위해 평균값에 가산되면, 2의 절대값의 1/2, 즉 1이 평균값으로부터 감산된다. 이는 블록 내에 64 화소들이 존재할 때 블록의 모든 화소들의 선택된 크로미넌스부의 값들의 합으로부터 64를 감산하는 것을 번역한다.
감산된 바이어스 양의 손실, 예를 들면 32는 이들의 휘도 분산들에 기초하여 다양한 화소들에 걸쳐 분포될 수 있다는 것을 주목하라. 또한, 이 바이어스의 감산은 안전 범위로 유도하도록 평균에 가산된 임의의 값에 무관하다. 그 결과, 평균값은 안전 범위의 외부에 있을 수 있다. 그러나, 안전 범위의 외부로 이동함으로써 발생되는 에러 가능성의 증가는 최종 코딩 이득에 의해 오프셋보다 많다.
이것이 작용하는 방식에 대한 고려의 일 방법이 도 5에 도시된다. 상술한 바와 같이, 바이어스 양을 고려하지 않고 종종 단지 충분한 값이 안전 범위의 외부 경계들 중 하나에 도달하기 위해 블록의 선택된 크로미넌스부의 평균값에 가산되거나 이로부터 감산된다. 따라서, 임의의 바이어스에 앞서, 다수의 프레임들이 안전 범위의 경계에 또는 그에 인접하여 존재한다. 아무것도 가산되거나 감산되지 않는 중간 프레임은 경계의 우측에 잔류한다. 약간의 바이어스가 가산되는 프레임은 안전 범위 내에 더 양호하게 위치되도록 약간 이동하고, 또는 안전 범위의 외부로 약간 이동할 수 있다. 약간의 바이어스가 감산되는 프레임은 바이어스가 가산되는 프레임에 대향하는 방향으로 이동한다. 따라서, 최악의 경우에, 3개의 프레임들의 그룹에 대해 하나가 안전 범위 내에 있을 수 있고, 하나가 안전 범위의 경계에 있을 수 있고, 하나가 안전 범위의 약간 외부에 있을 수 있다. 이는 값들의 독립적인 확산을 초래한다.
본 발명의 바이어스의 효과는 MPEG형 인코딩에 의해 수행되는 양자화 및 MPEG 역양자화 동안에 가산되는 개별 MPEG-바이어스에 의해 더욱 확대된다. 이는 동일한 비트가 연속적인 프레임들에 걸쳐 전송될 때에도 연속적인 프레임들 내에 유사 위치 설정 블록들에 대한 수신 데이터 값들의 상당한 차이들을 초래할 수 있다.
수신기에서는, 예를 들면 도 10에 도시된 바와 같이, 각각의 프레임으로부터 추출된 데이터가 각각의 프레임, 예를 들면 프레임 가중 유닛(1027)에 존재하는 것으로 고려되는 품질 레벨에 기초하여 조합하는 최대비를 적절하게 사용하여 가중된다. 이를 위해, 시퀀스 프로세서(1025)는 프레임 가중 유닛(1027)에, a) 프레임 가중 유닛(1027)이 어떠한 프레임들이 함께 그룹화되는지를 인지할 수 있게 하는 프레임 동기화 정보, 및 b) 각각의 프레임의 동기화 패턴 내의 에러들의 수를 공급할 수 있다. 품질 레벨은 얼마나 많은 에러들이 수신 프레임 내에 존재하는지에 기초하여 결정되고, 이는 얼마나 많은 에러들이 시퀀스 프로세서(1025)에 의해 추출되는 바와 같은 해당 프레임에 대해 예측되는 동기화 패턴 내에 존재하는지에 기초하여 결정될 수 있다. 표 1은 각각의 동기화 패턴을 위한 다수의 에러들 및 그의 동기화 패턴 내의 이러한 다수의 에러들을 갖는 프레임에 적절한 것으로 실험적으로 유도된 각각의 가중치를 도시한다. 달리 말하면, 각각의 프레임으로부터의 추출 데이터의 값들은 조합 프로세스의 부분으로서 그의 연관 가중치에 의해 가중된 소프트 데이터로서 처리될 수 있다.
가중치들에 기초하여, 연속적인 프레임들 내의 대응 블록 위치들을 위한 동일한 데이터 비트의 다수의 인스턴스들이 추출되고 조합되어 단일의 수신 비트를 형성한다. 이는 이하의 수학식을 계산함으로써 성취될 수 있다.
여기서, bit_out은 3개의 프레임들의 그룹에 대한 최종 출력 비트이고;
w1, w2 및 w3은 시간 프레임들 내의 제1, 제2 및 제3의 각각에 대한 가중치들이고;
bit1, bit2, 및 bit3는 시간 프레임들 내의 제 1, 제 2 및 제 3의 유사 위치 설정 블록으로부터의 비트들이고,
n은 소프트 디코더가 입력 정밀도의 비트들의 수이다.
소프트 정보의 최적의 사용을 위해, 채널 디코더(1021)는 소프트 데이터 비트들, 즉 소프트 디코더 입력 정밀도에 의존하는 범위의 비 2진수로서 각각 표현되는 데이터 비트들을 이용하는 소위 소프트 디코더이다. 예를 들면, 8비트 입력 정밀도 소프트 디코더는 0과 255 사이의 값들로 동작한다. 이를 위해 수신된 하드 비트들의 가중 평균, 이 2n-1 만큼 승산되어 소프트 디코더에 의해 프로세싱될 수 있는 적절한 정밀도의 소프트 값으로 가중 평균을 변환한다.
본 발명의 특징에 따르면, 특정 프레임의 결정된 품질이 설정 임계치 이하이면, 특정 프레임이 임의의 워터마킹 데이터를 포함하지 않고 데이터가 해당 프레임에 대해 추출되지 않는 것으로 가정될 수 있다.
본 기술 분야의 당업자들은 프레임이 가산된 값을 갖는지, 감산된 값을 갖는지 및 변경이 없는지; 가산 및 감산이 모두 필요한지; 그룹 내의 프레임들의 수; 및 가산된 또는 감산된 또는 최종값에 수행될 임의의 라운딩이 수행자의 판단에 있는지를 즉시 인식할 수 있을 것이다.
동기화 비트 에러들의 수 가중 팩터 w
0 1
1 0.9
2 0.8
3 0.7
4 0.6
5 0.5
6 0.4
본 발명의 원리들을 구현하여, 그 개념 및 범주에 포함되는 다양한 배열들을 안출할 수 있다. 본 명세서의 소정의 블록 다이어그램들은 본 발명의 원리들을 구현하는 예시적 회로의 개념도를 나타낸다.
도 1은 비디오 신호를 디지털 워터마킹하기 위한 예시적 송신기를 도시하는 도면.
도 2는 그 크로미넌스 신호상에 디지털 워터마킹을 포함하는 비디오 신호의 부가적인 데이터를 복원하기 위한 예시적 수신기를 도시하는 도면.
도 3a 및 3b는 도 3에 도시된 바와 함께 연계될 때, 부가적인 데이터를 가지는 크로미넌스부들 중 하나의 워터마킹시 사용하기 위한 예시적 프로세스를 도시하는 도면.
도 4a 및 4b는 도 4에 도시된 바와 같이 함께 연결될 때, 비디오 신호내의 워터마킹 신호를 구성하는 부가 정보가 크로미넌스 성분상에 각인되어 있는 디지털 워터마킹된 비디오 신호로부터 부가 정보를 추출하기 위한 예시적 프로세스를 도시하는 도면.
도 5는 소정 비트 위치가 제 3 최하위 비트인 몇몇 안전 범위들의 예를 도시하는 도면.
도 6은 화소를 위한 워터마킹 정보를 포함하기에 어떠한 특정 크로미넌스부가 보다 적합하며, 그래서, 선택되어야 하는지를 판정하기 위한 예시적 프로세스를 도시하는 도면.
도 7은 예시적인 분할된 색 공간의 일부의 파단도.
도 8은 화소를 위한 워터마킹 정보를 포함하도록 특정 크로미넌스부를 선택하는 다른 예시적 프로세스를 도시하는 도면.
도 9는 블록의 크로미넌스부의 평균값상에 각인되기 이전에, 적어도 일회, 바람직하게는 2회 이상 각인 대상 데이터를 복제함으로써, 본 발명의 원리에 따라서 플리커링이 감소될 수 있는 예시적 송신기를 도시하는 도면.
도 10은 본 발명의 원리에 따라 도 9의 송신기에 의해 생성된 것 같은 워터마크된 비디오 신호의 수신에 사용하기 위한 수신기의 예시적 실시예를 도시하는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
105: 컬러 선택 103: YUV 역복호화 및 데시메이터
111: 텍스쳐 마스킹 123: 비트 맵퍼
121: 블록 인터리버 119: 채널 인코더

Claims (17)

  1. 비디오 신호를 워터마킹하는데 사용하기 위한 방법에 있어서,
    상기 비디오 신호의 블록에 걸친 크로미넌스부의 평균값의 적어도 하나의 선택된 비트 내에 비트들을 배치함으로써 상기 비디오 신호에 각인되는 부가의 정보의 비트들의 적어도 선택된 비트들을 복제하는 단계, 및
    상기 각인될 원본 및 복제된 비트들을 연속적인 프레임들 내의 동일한 블록 위치에 공급하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 블록 위치는 원본 입력 비디오 신호의 전체 해상도의 매 2 ×2 블록에 대해 하나의 Y, 하나의 U 및 하나의 V 값을 갖는 상기 비디오 신호에 기초하는, 방법.
  3. 제 1 항에 있어서,
    상기 연속적인 프레임들 중 제1 프레임에 각인될 부가의 정보의 상기 비트들의 모두는 상기 연속적인 프레임들의 제1 프레임과 제2 프레임 사이에 임의의 프레임을 표시하지 않고 표시를 위한 상기 연속적인 프레임들 중 적어도 제2 프레임에 각인되도록 복제되는, 방법.
  4. 제 1 항에 있어서,
    동일한 블록 위치들 내의 프레임들에 각인된 상기 원본 및 복제된 비트들을 갖는 상기 연속적인 프레임들 중 적어도 하나의 프레임의 적어도 하나의 블록의 크로미넌스부의 평균값에 오프셋 바이어스를 가산하는 단계를 추가로 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 오프셋 바이어스는 상기 연속적인 프레임들의 제1 프레임에 가산된 포지티브 값인 제1 오프셋 바이어스이고, 상기 방법은 동일 블록 위치들 내의 프레임들에 각인된 상기 원본 및 복제된 비트들을 갖는 상기 연속적인 프레임들의 적어도 제2 프레임의 적어도 하나의 블록의 크로미넌스부의 평균값에 제2 오프셋 바이어스를 가산하는 단계를 추가로 포함하고, 상기 제2 오프셋 바이어스는 네가티브 값인, 방법.
  6. 제 4 항에 있어서,
    상기 오프셋 바이어스는 상기 연속적인 프레임들의 제1 프레임에 가산된 포지티브 값인 제1 오프셋 바이어스이고, 상기 방법은 동일 블록 위치들 내의 프레임들에 각인된 상기 원본 및 복제된 비트들을 갖는 상기 연속적인 프레임들의 적어도 제2 프레임의 적어도 하나의 블록의 크로미넌스부의 평균값에 제2 오프셋 바이어스를 가산하는 단계를 추가로 포함하고, 상기 제2 적어도 제2 프레임의 적어도 하나의 블록은 상기 적어도 제2 프레임 내에서 상기 제1 프레임의 적어도 하나의 블록과 유사하게 위치 설정되는, 방법.
  7. 제 4 항에 있어서,
    상기 가산들은 이러한 가산들의 총계가 블록 내의 화소들의 수와 상기 오프셋 바이어스의 적에 동일해질 때까지 상기 적어도 하나의 블록의 화소들의 크로미넌스부에 수행되고, 상기 가산들은 화소들의 크로미넌스부에 수행된 임의의 다른 변경들에 무관한, 방법.
  8. 제 1 항에 있어서,
    상기 비디오 신호의 크로미넌스부에 각인될 상기 부가의 정보 내에 설정 데이터 시퀀스를 포함하는 단계를 추가로 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 설정 데이터 시퀀스는 워터마킹된 후에 상기 비디오 신호의 수신기에 공지되는, 방법.
  10. 제 8 항에 있어서,
    상기 설정 데이터 시퀀스는 상기 비디오 신호의 프레임들 중 다수의 프레임들의 유사 위치 설정된 설정 블록들에 각인되는, 방법.
  11. 비디오 신호의 크로미넌스부에 각인된 부가의 정보를 포함하는 비디오 신호의 수신기와 함께 사용하기 위한 방법에 있어서,
    최종 부가의 정보를 결정하도록 설정 프레임들로부터 유사 블록 위치들의 추출된 초기 부가의 정보를 조합하는 단계, 및
    상기 최종 부가의 정보를 출력으로서 공급하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 조합 단계에서 조합된 상기 설정 프레임들의 각각의 품질을 결정하는 단계를 더 포함하고,
    상기 조합 단계에서, 상기 설정 프레임들로부터의 유사 블록 위치들의 상기 초기 부가의 정보는 상기 설정 프레임들의 각각에 대한 결정된 품질의 함수로서 조합되는, 방법.
  13. 제 12 항에 있어서,
    상기 프레임에 대해 결정된 품질 설정 임계치 이하일 때, 상기 프레임은 부가의 정보를 포함하지 않는 것으로서 처리되는, 방법.
  14. 제 11 항에 있어서,
    상기 최종 부가의 정보는 상기 최종 부가의 정보를 소프트 비트들로서 처리하는 채널 디코더에 공급되는, 방법.
  15. 비디오 신호를 워터마킹하는데 사용하기 위한 장치에 있어서,
    상기 비디오 신호의 블록에 걸친 크로미넌스부의 평균값의 선택된 비트를 교체함으로써 상기 비디오 신호에 각인되는 부가의 정보의 비트들의 적어도 선택된 비트들을 복제하기 위한 수단, 및
    상기 각인될 원본 및 복제된 비트들을 연속적인 프레임들 내의 동일한 블록 위치에 공급하기 위한 수단을 포함하는, 장치.
  16. 비디오 신호의 크로미넌스부에 각인된 비-비디오 정보를 포함하는 비디오 신호로부터 부가의 정보를 추출하기 위한 수신기로서,
    상기 비디오 신호로부터 상기 비-비디오 정보를 추출하기 위한 추출기, 및
    적어도 상기 추출된 비-비디오 정보를 수신하고 상기 비디오 신호의 적어도 하나의 프레임에 각인되는 적어도 하나의 설정 시퀀스를 검출하는 시퀀스 프로세서를 포함하는, 수신기.
  17. 제 16 항에 있어서,
    상기 시퀀스 프로세서는 복수의 그룹화된 프레임들의 각각에 대해 상기 적어도 하나의 설정 시퀀스 내의 에러들의 수를 결정하고,
    상기 수신기는, 상기 복수의 프레임들로부터의 추출된 유사 블록 위치 설정 비-비디오 정보를 상기 그룹화된 프레임들에 대한 상기 블록 위치를 위한 출력값 내로 조합하도록 상기 복수의 프레임들의 각각 내의 에러들의 수의 함수로서 유도된 프레임당 품질 측정을 사용하는 프레임 가중 유닛을 더 포함하는, 수신기.
KR1020040076856A 2003-09-29 2004-09-24 디지털 비디오를 위한 워터마킹 체계 KR101110083B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/673,894 2003-09-29
US10/673,894 US7646881B2 (en) 2003-09-29 2003-09-29 Watermarking scheme for digital video

Publications (2)

Publication Number Publication Date
KR20050031410A true KR20050031410A (ko) 2005-04-06
KR101110083B1 KR101110083B1 (ko) 2012-03-08

Family

ID=34194894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040076856A KR101110083B1 (ko) 2003-09-29 2004-09-24 디지털 비디오를 위한 워터마킹 체계

Country Status (8)

Country Link
US (1) US7646881B2 (ko)
EP (1) EP1519312B1 (ko)
JP (3) JP2005110274A (ko)
KR (1) KR101110083B1 (ko)
CN (1) CN1645937B (ko)
AU (1) AU2004214556B2 (ko)
BR (1) BRPI0406441A (ko)
CA (1) CA2477515C (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894523B2 (en) 2005-09-05 2011-02-22 Lg Electronics Inc. Method for modeling coding information of a video signal for compressing/decompressing coding information
KR20110059593A (ko) * 2008-08-19 2011-06-02 톰슨 라이센싱 휘도 평가
KR101424751B1 (ko) * 2006-04-25 2014-08-01 톰슨 라이센싱 2진 스트림을 워터마킹하는 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006025409A (ja) * 2004-06-11 2006-01-26 Canon Inc 画像処理装置及び画像処理方法
US7630512B2 (en) 2005-05-26 2009-12-08 Alcatel-Lucent Usa Inc. Method for performing recoverable video and image watermarking which survives block-based video and image compression
US20070153025A1 (en) * 2005-12-29 2007-07-05 Mitchell Owen R Method, apparatus, and system for encoding and decoding a signal on a viewable portion of a video
FR2897487B1 (fr) * 2006-02-13 2008-05-16 Adentis Sa Fichier numerique marque par une suite de marques dont la concatenation forme un message et procede d'extraction d'une marque d'un tel fichier numerique marque
JP2008131282A (ja) * 2006-11-20 2008-06-05 Sony Corp 映像伝送方法、映像伝送システム及び映像処理装置
US7974438B2 (en) * 2006-12-11 2011-07-05 Koplar Interactive Systems International, Llc Spatial data encoding and decoding
JP5300741B2 (ja) * 2007-01-12 2013-09-25 シフォルーション ベー フェー ビデオ透かし入れのための方法および装置
US8315574B2 (en) * 2007-04-13 2012-11-20 Broadcom Corporation Management of variable-rate communication links
US8001445B2 (en) * 2007-08-13 2011-08-16 Provigent Ltd. Protected communication link with improved protection indication
US8040985B2 (en) 2007-10-09 2011-10-18 Provigent Ltd Decoding of forward error correction codes in the presence of phase noise
JP5373910B2 (ja) * 2008-08-19 2013-12-18 トムソン ライセンシング Cabacストリームのコンプライアンス
WO2010021700A1 (en) * 2008-08-19 2010-02-25 Thomson Licensing A propagation map
US9113231B2 (en) * 2008-08-19 2015-08-18 Thomson Licensing Changeable block list
US8824727B2 (en) * 2008-08-20 2014-09-02 Thomson Licensing Selection of watermarks for the watermarking of compressed video
US8477942B2 (en) * 2008-10-21 2013-07-02 Motorola Mobility Llc Method and apparatus for managing service lists
BR112012019745B1 (pt) 2010-02-09 2020-11-10 Contentarmor Método de detecção de marca dágua utilizando um mapa de propagação
US8379911B2 (en) * 2010-12-10 2013-02-19 Infosys Technologies Limited Method and system for efficient watermarking of video content
US8805170B2 (en) * 2012-03-07 2014-08-12 Broadcom Corporation System and method for memory storage of video data
JP6497468B1 (ja) * 2018-06-06 2019-04-10 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、及び画像改ざん判定プログラム
US11087557B1 (en) * 2020-06-03 2021-08-10 Tovy Kamine Methods and systems for remote augmented reality communication for guided surgery

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993152B2 (en) * 1994-03-17 2006-01-31 Digimarc Corporation Hiding geo-location data through arrangement of objects
US6590996B1 (en) * 2000-02-14 2003-07-08 Digimarc Corporation Color adaptive watermarking
US6373960B1 (en) * 1998-01-06 2002-04-16 Pixel Tools Corporation Embedding watermarks into compressed video data
US6829301B1 (en) * 1998-01-16 2004-12-07 Sarnoff Corporation Enhanced MPEG information distribution apparatus and method
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
JP3266569B2 (ja) 1998-07-29 2002-03-18 日本電気株式会社 電子透かしデータによる画像属性変更システム
JP2000115728A (ja) * 1998-10-07 2000-04-21 Sony Corp 映像信号伝送システム、映像信号出力装置、映像信号処理装置および映像信号伝送方法
JP2000152195A (ja) * 1998-11-05 2000-05-30 Sony Corp 付加情報伝送方法、付加情報伝送システム、情報信号出力装置、情報信号処理装置
JP2000175161A (ja) 1998-12-01 2000-06-23 Kdd Corp 動画像に対する透かしデータ埋め込み装置および検出装置
CA2364433C (en) * 1999-03-10 2011-07-19 Digimarc Corporation Signal processing methods, devices, and applications for digital rights management
US7154638B1 (en) * 2000-05-23 2006-12-26 Silverbrook Research Pty Ltd Printed page tag encoder
US6785401B2 (en) 2001-04-09 2004-08-31 Tektronix, Inc. Temporal synchronization of video watermark decoding
CN1305312C (zh) * 2001-06-21 2007-03-14 皇家菲利浦电子有限公司 在运动图像信号中嵌入和检测水印的方法和设备
US7006656B2 (en) * 2001-10-15 2006-02-28 The Research Foundation Of Suny Lossless embedding of data in digital objects
US6538599B1 (en) * 2001-11-16 2003-03-25 Raytheon Company Noncoherent gain enhancement technique for non-stationary targets
ES2271835T3 (es) * 2003-01-20 2007-04-16 Koninklijke Philips Electronics N.V. Incrustacion y deteccion de marcas de agua de una señal de imagen en movimiento.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894523B2 (en) 2005-09-05 2011-02-22 Lg Electronics Inc. Method for modeling coding information of a video signal for compressing/decompressing coding information
KR101424751B1 (ko) * 2006-04-25 2014-08-01 톰슨 라이센싱 2진 스트림을 워터마킹하는 방법
KR20110059593A (ko) * 2008-08-19 2011-06-02 톰슨 라이센싱 휘도 평가

Also Published As

Publication number Publication date
CA2477515C (en) 2009-10-20
EP1519312B1 (en) 2015-12-23
KR101110083B1 (ko) 2012-03-08
EP1519312A1 (en) 2005-03-30
JP2012186853A (ja) 2012-09-27
JP2015128299A (ja) 2015-07-09
JP2005110274A (ja) 2005-04-21
CN1645937B (zh) 2011-04-20
US20050069169A1 (en) 2005-03-31
US7646881B2 (en) 2010-01-12
AU2004214556A1 (en) 2005-04-14
CA2477515A1 (en) 2005-03-29
BRPI0406441A (pt) 2005-08-09
CN1645937A (zh) 2005-07-27
AU2004214556B2 (en) 2010-01-21
JP6162734B2 (ja) 2017-07-12

Similar Documents

Publication Publication Date Title
KR101110084B1 (ko) 디지털 비디오를 위한 워터마킹 체계
KR101050358B1 (ko) 디지털 비디오 워터마킹을 위한 컬러 선택 체계
KR101110083B1 (ko) 디지털 비디오를 위한 워터마킹 체계
JP4248241B2 (ja) 圧縮情報信号のウォーターマーキング
EP1643439A1 (en) Watermarking colour components of an analogue video signal
US7630512B2 (en) Method for performing recoverable video and image watermarking which survives block-based video and image compression
US8699746B2 (en) Watermarking scheme for digital video
JP2009213074A (ja) 電子透かし挿入方式および検出方式
US8666108B2 (en) Watermarking scheme for digital video

Legal Events

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

Payment date: 20150109

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160108

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170106

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 8