KR19980080152A - 디지털 워터마크의 삽입 방법 - Google Patents

디지털 워터마크의 삽입 방법 Download PDF

Info

Publication number
KR19980080152A
KR19980080152A KR1019980008183A KR19980008183A KR19980080152A KR 19980080152 A KR19980080152 A KR 19980080152A KR 1019980008183 A KR1019980008183 A KR 1019980008183A KR 19980008183 A KR19980008183 A KR 19980008183A KR 19980080152 A KR19980080152 A KR 19980080152A
Authority
KR
South Korea
Prior art keywords
watermark
dct
image
blocks
data
Prior art date
Application number
KR1019980008183A
Other languages
English (en)
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 KR19980080152A publication Critical patent/KR19980080152A/ko

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

이미지, 비디오, 오디오 및 멀티미디어 데이터에 적용 가능한 워터마킹 절차는 MPEG의 8×8 블록과 같이 n×n의 세트로 워터마크되도록 데이터를 분할하며, 여기서 이들 블록은 합성 블록을 형성하기 위해 모두 합산 또는 평균치를 내게 된다. 동일한 워터마크 신호는 여러 가지 방법으로 블록을 세트가 도처에 분포될 수 있다. 이것은 디코더에 영향을 미치지 않고 삽입 알고리즘이 변경될 수 있게 한다. 디코딩 절차는 우선 각 8×8 블록의 DCT 계수를 모두 합한 후, 평균 또는 합한 블록으로부터 워터마크를 추출한다. DCT 블록의 합은 명암 블록 합의 DCT와 같기 때문에 디코딩하는 계수는 각각 공간 및 주파수 도메인에서 발생할 수 있다. 디코딩 처리의 대칭 성질은 공간 도메인에서 처리되는 기하학적 왜곡과 주파수 도메인에서 처리되는 다른 신호 왜곡을 허용한다.

Description

디지털 워터마크의 삽입 방법
본 발명은 이미지, 비디오 및 멀티미디어 데이터를 포함하는 데이터의 디지털 워터마킹에 관한 것이다. 특히 본 발명은 워터마킹을 목적으로 삽입되는 신호의 삽입 및 추출에 관한 것으로, 삽입 및 추출 절차는 데이터의 소구역에 반복적으로 적용된다. 이들 소구역이 MPEG 및 JPEG 압축 및 감압축에 이용되는 8×8 픽셀 블록에 대응하면, 워터마킹 절차는 계산에 있어서 매우 중요한 절감을 이루는 이들 압축 알고리즘에 밀접하게 접속될 수 있다.
이미지와 같은 디지털화된 미디어의 급증은 물질 소스의 동일성을 용이하게 하는 안전 시스템의 필요성을 안출하고 있다.
공급자 즉, 디지털 형태의 작업 소유자는 저작권 소유자를 입증, 제어 및 관리할 목적으로 소프트웨어 및/또는 하드웨어로 실질적으로 검출될 수 있는 신호를 비디오/이미지/멀티미디어 데이터에 삽입할 필요성을 가진다.
예컨대, 코드화된 신호는 데이터가 복사되지 않음을 표시하는 데이터에 삽입될 수 있다. 삽입된 신호는 이미지를 충실히 보호할 수 있으며, 공통 신호 변환 및 저항 간섭을 강건하게 한다. 부가적으로, 고려하는 것은 상대적으로 낮은 프레임에 대한 몇몇 비트인 현행 요구를 통해서 시스템에 의해 제공될 수 있는 데이터 비로 주어져야 하는 것이다.
참조에 의해 병합된 Secure Spread Spectrum Watermarking for Multimedia Data인 명칭을 가진 1995년 9월 28일 출원된 미국 특허 출원 번호 제08/534,894호에서는 만족하는 소유자 및/또는 프로세서의 식별을 목적으로 하는 지각적으로 중요한 영역으로 워터마크를 삽입하는 안전 스팩트럼 워터마킹 방법을 그 목적으로 하는 것이다. 이러한 접근의 강점은 워터마크를 제거하기가 매우 어렵다는 것이다. 사실상 이러한 방법은 원래의 이미지 또는 데이터가 대조에 이용 가능한 경우에 워터마크가 판독되는 것만을 허용한다. 이것은 워터마크의 원래의 스팩트럼이 비선형 증가 절차를 통해서 이미지의 스팩트럼으로 형상화되고, 이 스팩트럼의 형상은 종래 필터링의 매칭에 의한 검출로 제거되어야 하며, 이 워터마크는 N개의 최대 스팩트럼 계수로 삽입되고, 그 랭킹이 워터마킹 후에 유지되지 않는다. 따라서, 이러한 방법은 소프트웨어 및 하드웨어가 삽입된 신호의 직접적 판독을 허용하지 않는다.
http://neci.nj.nec.com/tr/index.html(Technical Report No. 95-10)에서 이용가능한 Cox 등에 의한 논문인 Secured Spectrum Watermarking For Multimedia에서는 안전한 스팩트럼 워터마킹이 기술되어 있으며. 워터마킹을 목적으로 하는 디지털 데이터로 의사-랜돔 노이즈 시퀀스를 삽입한 것이다.
이러한 상기 종래의 워터마킹의 추출 기술은 워터마크 이미지 스팩트럼에서 공제된 원래의 이미지 스팩트럼을 요구한다. 이것은 디코더에 이용가능한 원래의 이미지 또는 원래의 이미지 스팩트럼이 없는 경우에는 이러한 방법의 사용을 제한한다. 하나의 적용에 있어서는 이러한 장치의 동작 또는 동작의 거부에 대한 삽입된 정보의 판독을 원하는 제삼자의 장치 제공자에 대한 중대한 어려움이 존재한다.
R. D. Preuss 등에 의한 미국 특허 번호 제5,319,735호의 명칭 Embedded Signalling에서는 코드 심벌의 시퀀스의 제조를 위해 디지털 정보가 삽입된다. 코드 심벌의 시퀀스는 코드 심벌의 시퀀스를 나타내는 안전 스팩트럼 코스 신호의 대응 시퀀스를 생성함으로써 오디오 신호에 삽입된다. 코드 신호의 주파수 성분은 오디오 신호의 밴드폭 내에 놓여 있는 선선택 신호화 밴드가 본질적으로 금지되어 있으며, 코드 신호의 연속적 세그먼트가 시퀀스에서 연속적 코드 심벌에 대응한다. 오디오 신호는 신호화 밴드를 둘러싸는 주파수 밴드에 걸쳐서 연속적으로 주파수 분석되고, 코드 신호는 각 시간 순간에 수정된 코드 신호를 주파수 범위에 대응하는 오디오 신호 주파수 성분 레벨의 선선택 비율인 주파수 성분 레벨로 제공하는 분석 기능으로서 다이나믹하게 여과된다. 수정된 코드 신호 및 오디오 신호는 반대쪽 오디오 신호를 제공하기 위해 결합되며, 디지털 정보가 삽입된다. 이 오디오 신호 성분은 그 후 기록 매체에 기록되거나, 또는 그렇지 않으면 전달 채널에 제시된다. 이러한 처리의 두가지 키 요소는 비 워터마크된 원래의 데이터를 억세스하지 않고 삽입된 신호의 추출을 허용함으로써 각각 삽입 및 추출 단계에 나타나는 스팩트럼의 형상 및 스팩트럼의 균등화이다.
Cox에 의한 참조에 의해 병합된 미국 특허 출원 번호 제08/708,331호의 명칭 A Spread Spectrum Watermark for Embedded Signaling에서는 데이터의 비 워터마크된 버전 또는 원래의 이미지를 이용하지 않는 비디오 또는 워터마크된 이미지로부터 삽입된 데이터의 워터마크를 추출하는 방법이 기술되어 있다.
신호화를 삽입하기 위한 이미지 데이터 또는 이미지를 워터마크하는 이러한 방법은 DCT(Discrete Cosine Transform)와, 그 계산된 전체 이미지의 반전을 요구한다. 여기에는 N 시간 N 로그(log)에서의 DCT를 계산하기 위한 빠른 알고리즘이 있으며, 여기서 N은 이미지의 픽셀 수이다. 그러나, N=512×512에 대해, 인코딩 및 추출 처리가 비디오 비율, 즉 초당 30프레임으로 나타나야 하기 때문에, 특히 계산적 요구가 매우 높다. 이러한 방법은 MPEG-Ⅱ 감압축에 대해 대략 30번의 계산을 필요로 한다.
실시간 비디오 워터마킹을 이루기 위한 하나의 가능한 방법은 전체 Nth프레임만을 워터마크하는 것이다. 그러나, 만족하는 소유자는 각각 및 모든 비디오 프레임의 보호를 원한다. 더욱이, 프레임이 삽입된 신호를 포함하는 것으로 알고 있으면, 비디오 신호에서의 현저한 열화 없이 그들 프레임의 제거가 간단하다.
택일적 옵션은 워터마크를 이미지(서브-이미지)의 n×n 블록으로 삽입하는 것으로, 여기서 nN이다. 블록 크기가 8×8, 즉 MPEG 이미지 압축을 이용하는 것과 같은 크기로 선택되면, MPEG 압축 및 감압축 알고리즘으로 진행하는 워터마크 삽입 및 추출과 밀접하게 접속될 수 있다. 가장 값비싼 계산은 DCT의 계산 및 그 반전에 관한 것으로, 이들 단계는 압축 및 감압축 알고리즘의 일부로서 이미 계산된 것이기 때문에, 상당한 계산적 절약이 달성될 수 있다. 따라서, 워터마킹의 증대 비용은 매우 작은데, 실제로 MPEG에 연관된 계산적 요구의 5% 이하이다.
참조에 의해 병합된 1996년 9월 19일에 출원된 미국 특허 출원 번호 제08/715,953호의 명칭 Watermarking of Image Data Using MPEG/JPEG coefficients은 이미지 데이터를 인코드 하는 MPEG/JPEG 계수를 이용함으로써 이러한 작업을 진보시킨 것이다.
참조에 의해 병합된 1996년 11월 5일에 출원된 미국 특허 출원 번호 제08/746,022호의 명칭 Digital Watermarking은 서브-이미지로 워터마크 정보의 저장과, 서브-이미지로부터 워터마크 정보의 추출을 기술한 것이다.
워터마킹의 최근 전망은 Cox 등에 의한 문헌 A review of watermarking and the importance of perceptual modeling in Proc. of EI'97, vol. 30-16, 1997년 2월 9-14에서 찾아볼 수 있다.
본 발명은 디지털 데이터의 워터마크를 간단하고 더욱 진보적이며 확실한 방법을 제공함으로써 종래 기술보다 더욱 진보시킨 것이다.
여기서는 이미지를 더욱 압축한 MPEG 비디오 또는 JPEG의 워터마크가 여러 가지 제안되어 왔다. 모든 경우에 있어서, 각 8×8 DCT 블록은 그 일부 또는 워터마크를 포함하기 위해 수정된다. 따라서, 워터마크의 디코딩은 각 8×8 블록이 거기에 포함된 워터마크 신호의 방출을 개별적으로 분석하는 것을 요구한다. 개별적으로 방출된 신호는 반대쪽 워터마크를 형성하기 위해 결합될 수 있으며, 그 후 알고있는 워터마크와 비교된다. 각 블록은 개별적으로 분석되어야 하기 때문에, 비압축된 이미지는 거꾸로 계산적으로 값비싼 블록-베이스 DCT 표시로 변환되어야 한다. 따라서, 디코더가 DCT 도메인에서 계산적으로 효과적일 수 있지만, 특별한 도메인으로부터의 워터마크는 더욱 값비쌀 수도 있는 것이다.
각 공간 및 DCT 도메인에서 워터마크의 계산적 효과적 검출을 허용하기 위한 현재의 제안은 DCT 도메인 내의 모든 8×8 블록의 합, 또는 DCT 도메인 내의 모든 8×8 블록의 부분 집합의 합에 워터마크를 삽입하는 것이다. 이러한 접근의 장점은 이미지가 공간 도메인 내에서만 이용 가능하면 그 합계는 공간 도메인에서 단일 8×8 블록의 계산이 수행될 수도 있고, 그 후 그 하나의 블록만이 DCT 도메인으로 변환되어야 한다. 이것은 DCT 블록의 합이 강도의 합의 DCT와 같기 때문이다. 따라서, DCT 및 공간 도메인에서의 디코딩의 계산적 비용은 대체적으로 동일하다.
DCT 블록의 합을 워터마킹 하는 제 2 장점은 이미지를 통해서 워터마크를 할당하는 무수한 등가 방법이 있는 것이다. 예컨대, 워터마크가 가산 DCT 블록의 i 번째 계수로 △i의 변경을 요구하고, 그 후 이미지 내에 M 블록이 있으면, △i/M은 각 개별적 블록 또는 블록(1)에 부가되거나, 또는 블록(1)은 거기에 부가된 △i를 가질 수 있고, 남아 있는 M-1 블록은 이미지 충실도의 모먼트 이슈를 무시해서 불변으로 남게 된다. 그 하나는 많은 매핑 때문에, 디코더의 변경 없이 삽입 알고리즘의 변경을 가능하게 한다. 이것은 매우 중요한 특성으로, 일부 워터마킹 적용에 있어서는 많은 하드웨어 디코더가 배치될 수 있기 때문에 디코더를 바꾸는 것은 실용적이지 않다. 하지만, 삽입 알고리즘의 개선은 역시 여기에 기술한 접근을 이용해서 결과적으로 개선된 검출을 가져온다.
마지막으로, 사람의 시각 시스템을 모델링 하는 것과 같은 일부 문제는 공지된 것으로, 여기서 기하학적 변환과 같은 다른 문제는 공간 도메인을 더욱 편리하게 처리하는 것이다. 워터마크를 디코딩하는 계산적 비용은 현재 대칭적이기 때문에, 워터마크를 변조할 수 있는 각종 신호 정보를 정정하기 위해 공간에서 주파수 도메인으로의 접속을 가능하게 한다.
도1은 이미지에 워터마크를 삽입하는 방법을 도시한 흐름도.
도2는 MPEG-2 인코더의 구성도.
도3은 워터마크된 데이터에서 워터마크의 열화를 줄이기 위해 수정한 MPEG-2 인코더의 구성도.
도4는 워터마크된 데이터에서 워터마크의 열화를 줄이기 위해 택일적으로 수정한 MPEG-2의 구성도.
도5는 MPEG 이미지 데이터로부터 워터마크를 추출하는 방법을 도시한 흐름도.
도6은 비압축된 이미지 데이터로부터 워터마크를 추출하는 방법을 도시한 흐름도.
*도면의 주요 부분에 대한 부호의 간단한 설명*
30: 부가기 32: 프레임 메모리
34: DCT 계산기 36: 양자화기
38: 인코더 40: 역 양자화기
42: 역 DCT 계산기 90: 누산기
노벨 삽입 방법은 이미지 충실도를 통해서 더욱 나은 제어를 제공하는 인간 시각 시스템의 특정 모델을 채용한다. 데스트는 그들 각 원래의 이미지로부터 구별 가능한 이미지로 큰 신호 상호 관계(correlation)로부터 15 이상 표준 편차)를 얻을 수 있는 것을 나타낸다.
이 방법에서 다양한 형태의 어택(attack)에 반하여 로버스트(robustness)를 처리하는 방법은 특정 형태의 어택에 용이하게 관련된 것이다.
이 방법은 어택을 처리하기 위해 이용되는 인간 시각 시스템의 모델 및 그 기술은 검출기를 변경해야 할 필요 없이 이후 변경될 수 있다. 결과적으로는 많은 검출기가 인스톨된 후에도, 워터마킹 특히, DVD(Digital Video Disk) 워터마킹을 지속적으로 개선할 수 있게 된다. 이것은 MPEG 비디오를 갖춘 상황과 유사한 것으로, 그 인코더 기술은 현존의 디코더를 변경해야 할 필요 없이 개선될 수 있는 것이다.
본 발명에 따른 방법의 이용은 MPEG 또는 감압축 도메인 중 어느 하나의 간단한 검출 알고리즘을 허용한다.
본 발명은 노벨 검출 방법에도 관련되어 있는 것으로, 낮은 계산 비용으로 유입하는 비디오가 MPEG 압축 또는 감압축인지를 쉽게 수행 및 분석한다.
다음의 설명에 이용되는 용어 이미지 및 이미지 데이터는 비디오, 이미지 및 멀티미디어 데이터에 동일하게 적용 가능한 것으로 생각한다. 용어 워터마크는 삽입 데이터, 심벌, 이미지, 명령 또는 그 외의 식별 정보를 포함하는 것으로 생각한다.
워터마크를 이미지로 삽입하기 전에 검출 알고리즘이 이미지에 적용되어 이미지에 이미 존재하는 워터마크를 찾는다. 이미지가 워터마크에 포함되어 있지 않으면, 추출 값(V[1,...N])은 보통 랜돔 수로 분배된다. 다음, 부가 신호는 워터마크와 높은 상호 관계를 가진 새로운 설정 값(ω[1,...N])을 형성하는 값으로 부가된다. 이것은 이미지의 외관을 바꾸지 않도록 하는 방법으로 종료되어야 한다.
각 V[1,...N]는 이미지에서 DCT's 세트의 가중 평균이다. 이것은 D_k[1,...,n_k]로서 언급된다. 필터[]로부터 대응하는 값의 세트는 F_k[1,...,n_k]로서 언급된다. 필터는 아래에 상세히 기술된다.
예컨대,
V[1]=D_[1]*F_1[1]+D_1[2]*F_1[2]+...+D_1[N_1]*F_1[N_1].
다음, V[k]의 값을 변경하기 위해서는 모든 Dk's의 값을 변경하는 것이 필요하다. 인간의 시각 처리에 의존하는 이미지에서 시각적 변경을 야기시키지 않고 주어진 D_k[i]의 변화량은 계산적 모델로 대체로 시뮬레이트 될 수 있다. 본 발명에 이용되는 인간의 시각적 감도의 우선적 계산적 모델은 SPIE, vol. 1913(1993), pp. 202-216에서 명칭이 DCT Quantization Matrices Usually Optimized for Indirect Image인 Andrew B. Watson의 문헌에서 찾아볼 수 있다. 이 모델은 EI'97, vol. 3016, 1997년 2월 9-14에서 명칭이 Digital Image Watermarking Using Visul Models인 Christine I. Podilchuk and Wenjun Zeng의 논문에서의 워터마킹에 적용된다. 본 발명은 (i) 디코더에서 원래의 비 워터마크된 이미지를 요구하지 않고, (ii) 개개의 8×8 블록으로부터 워터마크를 추출하지 않고, 8×8 블록 세트의 평균으로부터 추출하는 점에서 Podilchuk and Zeng의 논문과는 다른 것이다. 또한, 다른 계산적 모델도 이용 가능함은 물론이다.
우선적 모델은 다음과 같다.
d = 8×8 DCT
dll = 이미지 내의 모든 DCT'S에서의 DC 텀의 평균 값
T[1...8,1...8] =
[ 22.47, 16.17, 18.71, 26.62, 38.52, 54.93, 76.74, 105.00,
16.17, 23.23, 21.17, 24.46, 32.09, 43.45, 58.87, 79.02,
18.71, 21.17, 35.86, 41.51, 47.81, 58.38, 73.66, 94.12,
26.62, 24.46, 41.51, 60.36, 72.95, 84.88, 100.50, 121.60,
38.52, 32.09, 47.81, 72.95, 98.43, 119.49, 139.40, 162.80,
54.93, 43.45, 58.38, 84.88, 119.40, 154.00, 185.40, 216.30,
76.74, 58.87, 73.66, 100.50, 139.40, 185.40, 232.00, 276.70,
105.00, 79.02, 94.12, 121.60, 162.80, 216.30, 276.70, 338.50 ]
For I = 1 to 8
{
For j = 1 to 8
{
t = t[i,j]
t = t * (d[1,1] / d11) ^ 0.649
t = max(t, (abs(d[i,j]) ^.7) * (t ^.3) )
S[i,j] = t
}
}
DCT, d[i,j]의 각 요소에 대해, 이 모델은 요소 slack, S[I,J]라고 하는 값을 계산한다. 이 값은 3 단계로 계산된다. 제 1 단계(t=T[I,J])는 다른 주파수에서의 시각적 감도이며, 다른 주파수에서의 변화를 위해 시각적 감도간의 차이를 처리한다. 제 2 단계(t=t*(d[1,1]/d11)0.649)는 인간의 시각 시스템의 발광 마스킹 현상을 모델 화하고, 시각적 시스템이 어두운 영역에서의 변화 보다 밝은 영역에서의 변화에 더 민감하다는 사실을 처리한다. 제 3 단계(t=max(t,(abs(d[i,j])0.7)*(t0.3) ))는 주파수가 변하고 있는(DCT 텀이 더욱 변할 수 있는 동안 작게 변할 수 있는 작은 값을 가진 DCT 텀) 퍼센드의 일부에 의존하는 변화에 민감하다는 사실을 처리한다.
매트릭스 T[]의 값은 4 스크린 높이(1920 pixels)의 거리로부터 전형적인 모니터 상에서의 바라본 720*480 이미지를 가정해서 그것을 계산한 Watson과의 직접 통신으로 얻어진다. 이 값은 JPEG에 대해 스케일 되는데, 그것은 8-비트 데이터(본 발명은 그 수행에 있어서 0과 1 사이의 실수값 데이터를 이용한 것으로, 이들 값은 255로 분할된다)로부터 계산된 DCT's에 기초한 것이다. 이들 매트릭스를 계산하기 위한 공식은 SPIE, vol. 1666, (1992) pp. 365-374에서 Albert J. Ahumada Jr. and Heidi A. Peterson에 의한 명칭 Luminance-Model-Based DCT Quantization for Color Image Compression인 논문으로 이용 가능한 것이다.
주지할 것은 상기 코드는 DC 텀에 대한 교정 슬랙(slack)을 계산하지 않는다는 것이다. DC 텀은 다른 상수로 계산될 수 있지만, DC 텀은 본 발명의 우선적 방법에서의 워터마킹을 필요로 하지 않기 때문에, 그 보정 슬랙은 필요하지 않다.
이미지에서 모든 8×8 DCT's에 대한 슬랙을 계산한 후에, 슬랙은 각 D_k[1,...,n_k]에 할당될 수 있다. 이들 슬랙 S_k[1,...,n_k]을 부른다.
이제, 시각적 임팩트로 모든 D_k's에 걸쳐서 V's에서의 변화를 분배할 수 있다.
For k = 1 to N
{
S[k] = sum of S_k[1...n_k] * F_k[1...n_k] / sum of F_k[1...n_k]
}
For k = 1 to N
{
For I = 1 to n_k
{
D_k[i] = D_k[i] + (Omega[k] - V[k] * S_k[i] / S[k]
}
}
이들 변화를 마스킹한 후에, 모든 8×8 DCT's 블록을 공간 도메인으로 전환하며, 결과적으로 워터마크된 이미지이다. 이것은 주어진 k에 대한 모든 D_k's의 합이 ω[k]와 같게 되는 것을 나타내기 쉽다. 이러한 마스킹 처리는 inserting Omega into the image로 언급된다. 결과적 이미지로부터 추출된 워터마크는 이미지가 어택되지 않는 경우에는 엄밀히 ω로 되며, ω에 노이즈를 더하지 않는다.
여기에는 남아있는 두가지 문제점이 논의된다. 먼저, ω를 어떻게 결정하는지의 문제이고, 두 번째는 어떻게 워터마크 로버스트를 만들어내는 지의 문제이다.
앞서, ω의 방정식은 다음과 같이 계산된다.
ω = V +α * W
여기서, α는 작은 상수이고, W는 0 의미인 워터마크 신호이다. 이것은 동일한 여기서 동일한 공식을 이용할 수 있지만, 본 발명을 이용하는 가장 강력한 워터마크 가능성을 가져온는 한계도 있다. 본 발명의 실시예에 있어서는 이미지에서의 어떠한 시각적 변화를 야기시키지 않고 워터마크(W)를 가진 완벽한 상호 관계를 가진 ω를 삽입할 수 도 있다. 다음 공식이 이용된다.
ω = mean(V) + β*(V-mean(V)) + α*W
이러한 결과는 워터마크 신호와 원래의 신호 및 노이즈(이미지) 신호의 가중 평균이다. β아 0으로 세트되면, 결과적으로 W와 완전히 연관된 ω가 된다.
비 어택된 이미지에 대한 노이즈 비율의 신호는 다음과 같다.
SNR = α*std(W) / β*std(V)
여기서, sid(X)는 X의 표준 편차이다.
α 및 β를 선택하기 위한 우선적 방법은 다음과 같다.
J는 사용자에 의해 넣어진 이미지 열화 한계이다.
W'[1...N] = W[1...N] / S[1...N]
V'[1...N] = V[1...N] / S[1...N]
V'[1...N] = V[1...N] - mean(V')
alpha = (dot prodict of V' and W')/
(dot prodict of W' and W')
beth = 0
Jd = max(abs((beta*V'[1...N] + alpha*W'[1...N]) - V'[1...N]))
(이것은, α 및 β에 의해 생성될 수 있는 ω 신호의 대응 요소와 V'의 어떠한 요소간의 최대 차이다.)
If Jd J
{
alpha = alpha*J / Jd
beta = 1 - J / Jd
}
이 점에서는 완전한 워터마크의 삽입 방법이 있다. 이 방법은 인간의 시각의 뚜렷한 모델링을 포함하지만, 워터마크 로버스트를 마스크하는 어떠한 뚜렷한 방법도 포함하지 않는다. 사실, 지금까지 기술한 방법은 많은 워터마크를 이들 주파수가 가장 큰 슬랙을 가기지 까지 고 주파수에 넣기 위한 시도이지만, 이는 로버스트 관점에서 보면 빈약한 생각이다.
주어진 세트의 어택 또는 신호 열화에 반하여 워터마크 로버스트를 만들기 위해서는 우선 그들 어택이 이미지에서의 8×8 DCT's의 여러 가지 텀(term)에 어떻게 영향을 미치는 지를 고려할 필요가 있다. 다음, 유사한 방법으로 어택 또는 신호 열화에 영향을 미치는 텀은 서로 그룹 화되어 있으며, 그것이 분리 이미지이면 워터마크된다.
다음은 간단한 예이다. 여기서는 두 개의 가능 어택에 대한 관계, 즉 이미지의 좌측으로부터의 픽셀의 크로핑 24 컬럼, 또는 이미지의 우측으로부터의 픽셀의 크로핑 24 컬럼만이 있다. 이것은 DCT 텀의 3가지 그룹, 즉 그 하나는 8×8 DCT's의 가장 좌측 3개의 컬럼으로부터 오는 그룹, 가장 우측 3개의 컬럼으로부터 오는 그룹 및, 마지막 이미지부터 오는 그룹이 있다.
각 3가지 그룹에서의 모든 텀은 잔존하거나, 또는 어떠한 서로 주어진 어택에 의해 소실될 수도 있다. 각 그룹이 분리 이미지이라도 워터마크되면, 적어도 하나의 그룹으로부터의 워터마크는 일반적으로 어택이 잔존하며(24-컬럼 크로핑 어택은 단지 가능한 어택인 것으로 생각한다), 추출되는 워터마크는 어택에 의해 충격 받은 그룹으로부터 어떤 노이즈 워터마크를 더한 그룹으로부터의 교정 워터마크로 이루어지게 된다.
더욱 삽입하는 예는 저 대역 및 고 대역 필터링 어택이 있다. 이것은 모든 저 주파수의 상호 그룹화를 가능하게 한다. 추출(k = (r+c+Offset[i,j]Mod N)에 이용된 텀의 교체 때문에, 완전한 워터마크가 각 그룹으로 삽입될 수 있다. 다음, 고 주파수가 제거되면, 워터마크는 저 주파수 및 고 주파수에서 더욱 검출 가능하게 된다.
그 이상은 워터마크로 되게 되는 그 이상의 로버스트로 분할되어 있는 텀을 분류한다. 여기서는 비용이 있는데, 이것은 시각적 왜곡을 일으키지 않고 변경을 분배하기 점점 더 어렵게 되기 때문이다.
또한, 중요한 것은 가장 좋은 균형이 검출기를 탑재한 후에 이루어질 수 있다는 것이다. 모든 검출의 변경 없이 광범위한 종류의 어택에 반하여 워터마크 로버스트를 만드는 삽입 알고리즘의 수정을 가능하게 한다.
다음으로, 3개의 그룹만이 이용된다. 하나의 그룹은 대부분의 저 주파수를 서로 수집한다. 각각의 다른 두 개의 그룹은 하나의 높은 대각 주파수를 나타낸다. 이들 그룹의 8×8 주파수 맵(map)은 다음과 같다.
Group 1...8,1...8 = [ 0, 1, 1, 1, 0, 0, 0, 0
1, 1, 1, 1, 0, 0, 0, 0
1, 1, 1, 3, 0, 0, 0, 0
1, 1, 2, 0, 0, 0, 0, 0
0, 0, 0, 0 ,0, 0, 0, 0
0, 0, 0, 0 ,0, 0, 0, 0
0, 0, 0, 0 ,0, 0, 0, 0
0, 0, 0, 0 ,0, 0, 0, 0 ]
여기서, 0은 DCT의 대응 텀이 어떠한 그룹에서도 없음(이용되지 않음)을 지시하고, 1은 텀이 그룹(1; 저 주파수)에 있음을 지시하며, 2는 그룹(2)을, 3은 그룹(3)을 지시한다.
워터마크가 어떠한 더 높은 주파수에도 위치하지 않는 이유는 그것이 어택을 받아들이지 않기 때문이다(그것은 검출에 이용되는 필터 []의 디자인에 의해 처리된다). 오히려, 이것은 더 높은 주파수의 워터마킹이 MPEG 압축 비율을 실질적으로 더 떨어뜨리기 때문이다. 택일적 해는 더 높은 주파수를 포함하는 다른 그룹을 더 부가해도 된다.
다음은 삽입 절차에 대한 가 코드이다.
W[1,...,N] = 삽입되는 워터마크
Filter[1...8,1...8] = [ 0, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, ]
Group[1...8,1...8] = [ 0, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 3, 0, 0, 0, 0,
1, 1, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, ]
이미지를 8×8 블록으로 분할하고, 그들 DCT's를 취한다.
R = 8×8 DCT's의 로우 수
L = 8×8 DCT's의 컬럼 수
D[r,c] = 로우(r) 및 컬럼(c)에서의 8×8 DCT's의 로우 수
For g = 1 to 3
{
/*그룹(g)에 속하는 모든 DCT 텀을 수집한다*/
n_1 ... n_N = 0
For r = 1 to R
{
For c = 1 to C
{
d = D[r,c]
s = slacks for d (상기한 인간의 시각 감도의 모델에 따라 계산한다)
For i = 1 to 8
{
For j = 1 to 8
{
If Offset[i,j] != -1 AND Group{i,j] == g
{
k = (r + c + Offset[i,j]) Mod N
n_k = n_k + 1
D_k[n_k] = d[i,j]
S_k[n_k] = S[i,j]
F_k[n_k] = Filter[i,j]
}
}
}
}
}
/* 그룹(g)에서 현재 워터마크 신호를 계산한다 */
For k = 1 to N
{
V[k] = 0
S[k] = 0
T = 0
For I = 1 to n_k
{
V[k] = V[k] = D_k[i] * F_k[i]
S[k] = S[k] = S_k[i] * F_k[i]
T = T + F_k[i]
}
V[k] = V[k] / T
S[k] = S[k] / T
}
/* 그룹(g)에서 SHOULD되는 워터마크 신호를 계산한다 */
W'[1...N] = W[1...N] / S[1...N]
V'[1...N] = V[1...N] / S[1...N]
V'[1...N] = V'[1...N] - mean(V')
alpha = (dot product of V' AND W')/
(dot product of W' AND W')
beta = 0
Jd = max(abs((beta*V'[1...N] + ALPHA*W'[1...N] - V'[1...N])
(이것은, V'의 어떠한 요소 사이의 최대차 및 오메가 신호의 대응 요소 로, 다음에 의해 생성되게 된다)
If Jd J
{
alpha = alpha * J / Jd
beta = 1 - J /Jd
}
For k = =1 to N
{
Omega[k] = beta*(V[k] - mean(V)) + alpha*W[k] + mean(V)
}
/* Change group g so that the watermark in it is now Omega */
For k = 1 to N
{
For I = 1 to n_k
{
D_k[i] = D_k[i] + S_k[k] * (Omega[k] - V[k]) / S[k]
}
}
n_1 ... n_N =0
For r = 1 to R
{
For c = 1 to C
{
d = D[r,c]
For I = 1 to 8
{
For j = 1 to 8
{
If Offset[i,j] != 01 AND Group[i,j] == g
{
k = (r + c + Offset[i,j]) Mod N
n_k = n_k + 1
d[i,j] = D_k[n_k]
}
}
}
D[r,c] = d
}
}
/* Done with group g */
D's를 반대로 공간 도메인으로 전환하며; 결과적으로는 워터마크된 이미지이다.
도1은 상기 기술한 워터마크 삽입 방법을 도시한 흐름도이다. 디지털 이미지는 n×n 블록으로 분할되는데, 바람직하게는 박스(10)에서 8×8 블록이다. 각 블록의 이산 코사인 변환(DCT)은 박스(12)에서 공지된 방법으로 계산된다. DCT's는 동일한 방법으로 다른 어택에 대응하는 그룹으로 분리된다. 제 1 그룹(G)은 박스(16)에서 선택된다.
다음, 그룹(G)에서의 텀만을 이용해서 워터마크(V)를 추출한다(18). 새로운 신호(ω)를 결정하는데, 여기서 ω는 V와 유사하지만, 워터마크(W)와 밀접하게 연관된 것으로 선택한다(20).
지각 슬랙(22)에 따른 G에서의 텀을 ω-V의 분수에 부가한다. 그룹(G)이 마지막 그룹(24)인지의 여부를 결정한다. 만일, 그렇지 않으면 다음 그룹(26)을 선택하고(26), 박스(18)에서 다음 그룹(G)의 텀만을 이용해서 워터마크(V)를 추출하고, 마지막 그룹(G)이 단계(24)에서 발견되기까지의 절차를 계속한다. 다음, 단계(28)에서 결과적으로 워터마크된 이미지가 생기는 블록의 역 DCT's를 계산한다.
삽입 방법에서는 어떤 택일적 단계도 가능하게 된다. 예컨대, DCT 텀간의 V와 ω간의 차의 분배는 확율적으로 간섭을 막는데 도움을 줄 수 있고, 간섭에 대한 감수성을 줄일 수 있다. 부가적으로, DCT 텀간의 V와 ω간의 차이의 분배는 MPEG 양자화를 명백히 보상하도록 수정될 수 있다.
이러한 수정된 삽입 처리에 대한 가 코드는 기본적으로 다음 순서로 수행된다.
DCT() /* 이미지에 대한 이산 코사인 변환 */
WatermarkInsertion() /* 워터마크 삽입 알고리즘 */
MPEG2Quanitization() /* DCT 계수에 대한 MPEG4-2 양자화 처리 */
WatermarkModification() /* 양자화 값의 수정 */
MPEG2HuffmanEncoding() /* MPEG-2 호프만 인코딩 처리 */
다음의 가 코드는 DCT 계수의 양자화 값을 수정하는 Watermark Modification() 함수에 대한 것이다. 기본적인 양상은 양자화 값을 하나 만으로 변경함으로써 양자화 왜곡을 교정하는 것이다. 또한, 이 양자화 왜곡을 줄이는 어떠한 제어 방법도 적용될 수 있다. 이러한 제어의 예는 다음의 가 코드로 기술된다.
WatermarkModification()
For g = 1 to 3
{
n_1 ... n_N =0
For r = 1 to R
{
For c = 1 to
{
d = Dq[r,c] /* DCT 계수의 양자화 값 */
For I = 1 to 8
{
For j = 1 to 8
{
If Group[i,j] ==g
{
k = (r + c + Offset[i,j]) Mod N
nk = nk + 1
Dq_k[n_k] = d[i,j]
Q_k[n,k] = quantization step size for d[i,j]
}
}
}
}
}
}
For k = 1 to N
{
V[k] = 0
For I = 1 to n_K
{ /* Iq(x)는 역함수를 나타낸다 */
V[k] = V[k] + Iq(Dq_k[i])*F_k[i] /* x에 대한 양자화 값 */
} /* MPEG-2에서 결정 */
Dif = V[k] - Omega [k] /* MPEG-2 양자화(p)에서 생성된 왜곡 */
/* 하나의 양자화 단계 크기를 부가 또는 감산함으로써 DCT 계수를 수정 */
s = Sign( Dif ) /* Sign(x) = 1 (x=0), -1(그 외) */
Dif = Dif*s /* Dif의 절대값 */
For I = 1 to n_k
{
Dq_k[i] = Dq_k[i] - s
Dif = Dif - Q_k[i]*F_k[i]
If Dif 0
{
break
}
}
}
/* 그룹(g)을 완료 */
DCT 텀의 그룹은 로버스트를 목적으로 능동적으로 수행될 수 있다. 예컨대, 삽입 프로그램은 이미지 상에서의 다양한 어택을 시뮬레이트 하여 DCT 텀의 값에서 효과를 결정할 수 있다. 다음, 프로그램은 텀의 적당한 할당이 그룹에 유사하게 영향을 야기할 수 있다.
삽입기는 사용자가 2개의 파라메터, 즉 (1) 원래의 이미지 및 워터마크된 이미지간의 최대 지각 차(가 코드에서의 J)와, (2) 어택의 어떠한 미리 설정한 세트 이후의 실패 검출의 최대 허용 가능한 확률적 세트를 허용하는 사용자 인터페이스로 설계될 수 있다. 이 알고리즘은 그 후 허용 가능한 지각 변화(J)에 따라 어택의 시뮬레이션에 반하는 각각을 자동적으로 점검하는 이미지의 최대수로 워터마크를 삽입할 수 있다. 이미지가 특정 로버스트 구속(실패한 검출의 허용 가능한 확율)과의 직면에 실패하면, 사용자는 수동 결정이 로버스트를 위한 이미지 충실도의 교체 또는 보상을 만들어낼 수 있는 것으로 통보받는다.
상기 워터마크 삽입 방법을 이용함으로써, 결과적으로 워터마크된 데이터에서 낮아진 워터마크가 생길 수 있다. MPEG 압축 이후에 워터마크된 데이터에서 워터마크를 개선하기 위해 여러 가지 기술이 가능하다.
도2는 전형적인 MPEG-2 인코더의 구성도이다. 입력 이미지는 부가기(30)에 대한 하나의 입력으로서 제공되어 있다. 부가기(30)에 대한 다른 입력은 모션 보상에 의해 프레임 메모리(32)에서 생성된 이미지를 예측한다. 이들 이미지는 부가기(30)에서 입력 이미지로부터 감산된다. 이산 코사인 변환(DCT)은 부가기(30)로부터 출력 신호 상에서 DCT 계산기(34)로 수행된다. DCT 계수는 양자화기(36)에서 양자화 된다. 양자화기(36)의 출력은 가변 길이 인코더(38)로 보내지는데, 여기서는 호프만 인코딩이 수행된다. 양자화기(36)로부터 출력되는 양자화 DCT 계수는 양자화기(40)로 역시 보내지며, 여기서 감 양자화(dequantized)된다. 감 양자화 DCT 계수의 역 DCT 계수는 역 DCT 계산기(42)에서 수행되고, 결과적으로 부가기(44)에서 프레임 메모리(32)로부터 출력되는 예측 이미지에 부가된 후, 디코더에서 얻어진 것과 동일한 이미지가 재구성된다. 이 국부적으로 디코드된 이미지는 프레임 메모리(32)에 저장되며, 모션 추정 및 보상에 이용된다. 이 프레임 메모리(32)에서 모션 추정이 수행되고, 예측 이미지가 만들어진다.
도3은 워터마크된 데이터에서 워터마크의 열화를 줄이기 위한 수정된 MPEG-2 인코더의 구성도이다. MPEG-2 인코딩 전에 DCT는 DCT 계산기(50)에서 입력 이미지에서 수행되고, 워터마크 신호는 부가기(52)에서 DCT 값에 부가된다. 워터마크 정보를 포함하는 출력 DCT 계수는 역 DCT 계산기(54)에서 역 DCT가 제시된다. DCT 계산기(54)의 출력은 워터마크를 갖춘 이미지이다. 이들 워터마크된 이미지는 MPEG-2 인코더로 보내지고, 상기한 바와 같이 MPEG-2 인코딩이 수행된다. 부가적으로, 이 실시예에 있어서, 워터마크 정보는 MPEG-2 압축에 적합하도록 수정된다. 우선, 예측 이미지에 대한 DCT 계수는 DCT 계산기(56)에서 계산되고, 감 양자화 DCT 계수는 역 양자화기(58)에서 계산된다. 다음, DCT 계산기(56) 및 역 양자화기(58)로부터의 출력은 서로 다른 부가기(60)에 부가된다. 그 출력은 디코드된 이미지에 대한 DCT 계수이며, 디코더에서 생성되는 것으로 예상된다. 이들 DCT 계수는 워터마크 교정 장치(62)로 입력되고, 워터마크 신호는 그 출력으로서 제공된다. 이 장치에서의 처리는 다음의 가 코드로 기술된다. 부가기(64)에서 장치(62)로부터의 워터마크 교정 신호는 양자화기(36)로부터의 양자화 값에 부가된다. 부가기(64)의 출력은 가변 길이 인코더(38) 및 역 양자화기(40)에 대한 입력으로서 이용된다.
도4는 워터마크된 데이터에서 워터마크의 열화를 줄이기 위한 수정된 MPEG-2 인코더의 택일적 실시예의 구성도이다. 이 실시예에 있어서, 기초적인 개념은 도3과 관련하여 기술된 바와 같다. 실제로 다른 점은 원래의 입력 이미지에서 예측 이미지의 감산이 DCT 도메인에서 수행되며, 공간 도메인에서는 수행되지 않는다. 프레임 메모리(32)로부터 출력된 예측 이미지에 대해, DCT는 DCT 계산기(70)에서 수행되며, 결과적으로 부가기(72)에서 워터마크된 DCT 계수에서 감산된다. 그 결과, 양자화기(36)로 보내진 후, 도3에 도시한 바와 같이 워터마크 교정이 수행된다. 이 실시예는 결과적으로 DCT 계산 횟수의 환원을 일으킨다.
다음으로, 이미지에서 워터마크를 검출하는 검출 절차를 기술한다.
MPEG 비디오가 입력 데이터 포맷이면, 다음의 검출 처리는 워터마크(W)가 존재하는지의 여부를 결정한다.
W[1,...,N] = the watermark being tested for
Offset[1...8,1...8] = [ -1, 0, 2, 4, 6, 8, 10, 12,
1, 14, 15, 17, 19, 21, 23, 25,
3, 16, 27, 28, 30, 32, 34, 36,
5, 18, 29, 38, 39, 41, 43, 45,
7, 20, 31, 40, 47, 48, 50, 52,
9, 22, 33, 42, 49, 54, 55, 57,
11, 24, 35, 44, 51, 56, 59, 60,
13, 26, 37, 46, 53, 58, 61, 62 ]
Filter[1...8,1...8] = [ 0, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, ]
호프만 코드를 디코드하는 반면, 역 DCT's를 계산하지 않는데, 각 프레임(적어도 각 I-프레임)에 대해서는 8×8 DCTs의 어레이가 있다.
R = 8×8 DCTs의 로우의 수
L = 8×8 DCTs의 컬럼의 수
D[r,c] = 로우(r) 및 컬럼(c)에서의 8×8 DCT
V[1...N] = 0
T[1...N] = 0
For r = 1 to R
{
For c = 1 to C
{
d = D[r,c]
For I = 1 to 8
{
For j = 1 to 8
{
If Offset[i,j] ! = -1
{
k = (r + c + Offset[i,j]) Mod N
V[k] = V[k] + d[i,j] * Filter * Filter[i,j]
T[k] = T[k] + Filter[i,j]
}
}
}
}
}
For k = 1 to N
{
V[k] = V[k] / T[k]
}
WW[1...N] = W
WW[N+1...N+N] = W
BestCor = -1
For k = 1 to N
{
Cor = correlation cosfficient between V and WW[k...k+N-1]
If Cor BestCor
{
BestCor = Cor
}
}
Z = .5 * LOG((1+BestCor) / (1-BestCor)) * sqrt(N-3)
Z 값은 워터마크가 존재하는지의 여부를 나타낸다. Z에 대한 우선적 임계치는 4(즉, Z = 4는 워터마크가 존재함을 의미한다)인 반면, 그 외의 값은 오류 경보 및 실패 검출을 원하는 확률에 의존해서 이용될 수 있다.
택일적으로, 유입하는 입력 데이터가 비 압축 이미지를 포함하면, 여러 가지 DCT's의 합이 DCT 합과 동일하기 때문에 워터마크를 추출하기 위한 모든 DCT's를 계산할 필요가 없다. 따라서, 픽셀의 8×8 블록의 N 그룹을 모두 부가한 후, 끝에서 N DCTs만을 계산할 수 있게 되는 것이다.
이 처리에 대한 가 코드는 다음과 같다.
Offset[1...8,1...8] = [ -1, 0, 2, 4, 6, 8, 10, 12,
1, 14, 15, 17, 19, 21, 23, 25,
3, 16, 27, 28, 30, 32, 34, 36,
5, 18, 29, 38, 39, 41, 43, 45,
7, 20, 31, 40, 47, 48, 50, 52,
9, 22, 33, 42, 49, 54, 55, 57,
11, 24, 35, 44, 51, 56, 59, 60,
13, 26, 37, 46, 53, 58, 61, 62 ]
Filter[1...8,1...8] = [ 0, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 1, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, ]
이미지를 픽셀의 8×8 블록으로 분할하는 반면, 그들 DCTs는 아직 계산하지 않는다.
R = 8×8 DCTs의 로우의 수
L = 8×8 DCTs의 컬럼의 수
B[r,c] = 로우(r) 및 컬럼(c)에서의 8×8 블록
VB[1...N] = 0's 로 채워진 8×8 블록(즉, vb - VB[k]이면, vb[1...8,1...8] = 0)이다)
TB[1...N] = 0
For r = 1 to R
{
For c = 1 to C
{
b = B[r,c]
k = (r + c) Mod N
vb = VB[k]
For I = 1 to 8
{
For j = 1 to 8
{
vb[i,j] = vb[i,j] + b[r,c]
}
}
TB[k] = TB[k] + 1
}
}
V[1...N] = 0
T[1...N] = 0
For k = 1 to N
{
d = DCT of V[k]
t = TB[k]
For I = 1 to 8
{
For j = 1 to 8
{
If Offset[i,j] ! = -1
{
k1 = (k + Offset[i,j]) Mod N
V[k1] = V[k1] + d[i,j] * Filter[i,j]
T[k1] = T[k1] + t * Filter[i,j]
}
}
}
}
For k = 1 to N
{
V[k] = V[k] /T[k]
}
WW[1...N] = W
WW[N+1...N+N] = W
BestCor = -1
For k = 1 to N
{
Cor = correlation coefficient between V and WW[k...k+N-1]
If Cor BestCor
{
BestCor = Cor
}
}
Z = .5 * LOG((1+BestCor) / (1-BestCor)) * sqrt(N-3)
필터[]의 개념은 각 계수에서 얼마나 많은 노이즈가 예상되는가에 따라 DCT의 텀이 가중된 것이다.
도5는 상기 기술한 MPEG 비디오 입력에 대한 검출 방법을 도시한 흐름도이다. 입력 MPEG 비디오는 호프만 디코더 및 파셜 파서(80; partial parser)에 종속되는데, 여기서의 출력은 n×n, 바람직하게는 비디오 입력의 8×8 블록에 대한 DCT의 세트이다.
n×n DCTs는 결과적으로 출력으로서 제공되는 워터마크 누산기(82)에 제공되며, 이미지 데이터에서 워터마크를 추출한다. 추출된 워터마크는 비교기(84)에 제공되는데, 여기서 이미지 내의 가능한 워터마크와 비교된다. 가능한 워터마크는 비디오 데이터로 삽입되어 있을 수 있는 다수의 워터마크이다. 워터마크 누산기 및 비교기의 세부 사항에 대해서는 예컨대 미국 특허 출원 번호 제08/746,022호에서 찾아볼 수 있다.
비교기(84)의 출력에는 검출된 워터마크에 각각의 실행 가능한 워터마크가 존재할 가능성이 있다. 가장 적당한 워터마크가 결정되면 이미지 내의 워터마크로 간주하거나, 또는 검출기가 선정된 임계치보다 초과하지 않는다면 워터마크는 존재하지 않는다.
도6은 상기 기술한 것처럼 압축되지 않은 비디오 입력 데이터에 대한 검출 방법의 흐름도를 도시한 도면이다.
그 압축되지 않은 비디오 이미지 데이터는 n x n 누산기에 제공되는데, 바람직하게는 8 x 8 누산기(90)에 제공된다. 메모리의 필요 조건은 워터마크의 비트 길이의 n2배이다.
그 출력은 n x n 블록 각각에 대한 평균 신호이다. 그 출력은 DCT 변환(92)에서 처리된다. 그 변환의 수는 워터마크의 길이에 비례한다. 그 결과는 워터마크 누산기(94)에 제공되는 n x n DCT의 그룹이 된다. 그 메모리 필요 조건은 워터마크 길이에 비례한다. 추출된 워터마크는 비교기(96)에 입력으로서 제공된다. 비교기(96)에 대한 다른 입력은 입력 이미지 데이터에 삽입될 수 있는 있을 수 있는 워터마크이다. 비교기는 이미지 데이터에 삽입되었던 각각의 있을 수 있는 워터마크의 가능성을 계산한다. 가장 적당한 워터마크가 결정된다면 이미지 내의 워터마크로 간주한다.
DCT 방법에 기초한 블록의 제한은 이미지의 공간 시프트에 대한 그들 감도가 된다. 예를 들어, 이미지가 오른쪽으로 2 픽셀 시프트된다면, DCT 계수가 크게 변경되어 워터마크는 검출될 수 없다. 그러한 문제를 해결하기 위하여, 상기 추출 방법은, 블록으로부터 워터마크를 추출하기 이전에 공간 도메인에서 합산된 8 x 8 블록을 주기적 시프팅, 예를 들어 한 컬럼씩 및/또는 한 로우씩 시프팅 하여 8 x 8 블록의 교정된 그리드(grid)로 이미지의 고속 등록을 허용하도록 변경될 수 있다.
이미지 데이터 내의 워터마크의 삽입 및 검출하는 방법에 대해서 설명 및 예시하였지만, 본 기술 분야에 숙련된 사람이라면 본 명세서에 첨부된 특허 청구 범위의 정신에만 한정하지 않는 본 발명의 정신 및 기술 범위에 벗어남이 없이 여러 변경 및 수정이 있을 수 있음을 알 수 있다.

Claims (17)

  1. 워터마크 신호를 워터마크되는 데이터에 삽입하는 방법에 있어서,
    추출된 값을 발생하기 위하여 워터마크되지 않은 데이터에 워터마크 추출(watermark extraction)을 인가하는 단계;
    삽입되는 워터마크와 추출된 값 사이의 차이를 계산하는 단계와;
    상기 워터마크되지 않은 데이터 전체에 계산된 차이를 부가하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 계산된 차이를 부가하는 단계는 사람의 시각 감도의 지각 모델에 따라 계산된 차이를 분배하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서, 상기 계산된 차이를 부가하는 단계는 데이터가 선정된 어택으로 되는데 있어 어떻게 작용하는지에 따라 그 어택이 워터마크된 데이터에 영향을 주지 않도록 계산된 차이를 분배하는 단계를 포함하는 방법.
  4. 제 1 항에 있어서, 상기 계산된 차이를 부가하는 단계는 간섭에 대한 감수성을 감소시키기 위하여 확률론적 방법에 따라 계산된 차이를 분배하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서, 상기 워터마크되지 않은 데이터는 압축된 비디오이며, 상기 압축된 비디오는 블록의 그룹으로 분할되고, 상기 차이의 계산은 블록의 각각의 그룹으로부터 추출된 값의 평균과 워터마크 사이의 차이를 계산하며, 상기 부가는 블록의 그룹에 차이를 분배하는 방법.
  6. 제 5 항에 있어서, 상기 블록의 그룹은 선정된 어택 및 신호 저하(degradations)에 대한 응답에 따라 선택되는 방법.
  7. 워터마크된 데이터로부터 워터마크를 추출하는 방법에 있어서,
    워터마크된 데이터가 워터마크된 데이터의 n x n 블록을 포함하는 워터마크된 데이터를 수신하는 단계;
    합산되어 워터마크된 데이터의 최소한 하나의 n x n 블록을 형성하기 위해 워터마크된 데이터의 n x n 블록을 합산하는 단계와;
    최소한 하나의 n x n 블록으로부터 워터마크를 추출하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서, 상기 합산 단계는 공간 도메인 워터마크된 데이터를 이용하여 실행되는 방법.
  9. 제 7 항에 있어서, 상기 합산 단계는 주파수 도메인 워터마크된 데이터를 이용하여 실행되는 방법.
  10. 제 7 항에 있어서, 상기 합산 단계 이후에, 블록을 등록하기 위하여 공간 도메인에서 블록을 주기적으로 시프트하는 단계를 더 포함하는 방법.
  11. 제 7 항에 있어서, 상기 추출 단계는 추출된 워터마크의 각각의 요소를 산출하기 위하여 각각의 n x n 블록으로부터 선정된 워터마크 데이터를 합산하는 단계를 포함하는 방법.
  12. 제 11 항에 있어서, 상기 추출 단계는 최소한 하나의 n x n 블록을 이용하여 공간 도메인에서 실행되는 방법.
  13. 제 11 항에 있어서, 상기 추출 단계는 최소한 하나의 n x n 블록을 이용하여 주파수 도메인에서 실행되는 방법.
  14. 제 11 항에 있어서, 각각의 n x n 블록은 상기 추출 단계 이전에 필터 처리되는 방법.
  15. 제 7 항에 있어서, L이 워터마크의 길이를 나타내는 L n x n 블록을 형성하는 방법.
  16. 제 15 항에 있어서, 상기 형성은 공간 도메인에서 실행되는 방법.
  17. 제 15 항에 있어서, 상기 형성은 주파수 도메인에서 실행되는 방법.
KR1019980008183A 1997-03-12 1998-03-12 디지털 워터마크의 삽입 방법 KR19980080152A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US815,524 1992-01-09
US81552497A 1997-03-12 1997-03-12

Publications (1)

Publication Number Publication Date
KR19980080152A true KR19980080152A (ko) 1998-11-25

Family

ID=45663324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980008183A KR19980080152A (ko) 1997-03-12 1998-03-12 디지털 워터마크의 삽입 방법

Country Status (1)

Country Link
KR (1) KR19980080152A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010074604A (ko) * 2001-05-10 2001-08-04 김주현 엠피이지 비디오 스트림상의 블록 유닛 양자화를 이용한실시간 동영상 워터마크 삽입방법 및 검출방법
KR20030021534A (ko) * 2001-09-06 2003-03-15 주식회사 컨텐츠코리아 워터 마크 표기 부호 및 표기의 부호화 방법
KR100906515B1 (ko) * 2001-12-20 2009-07-07 엔엑스피 비 브이 정보 신호 내의 계수의 셋의 형태인 워터마크의 검출 방법, 정보 신호 내의 계수의 셋을 포함하는 워터마크를 검출하는 집적 회로 및 정보 신호 처리 디바이스

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010074604A (ko) * 2001-05-10 2001-08-04 김주현 엠피이지 비디오 스트림상의 블록 유닛 양자화를 이용한실시간 동영상 워터마크 삽입방법 및 검출방법
KR20030021534A (ko) * 2001-09-06 2003-03-15 주식회사 컨텐츠코리아 워터 마크 표기 부호 및 표기의 부호화 방법
KR100906515B1 (ko) * 2001-12-20 2009-07-07 엔엑스피 비 브이 정보 신호 내의 계수의 셋의 형태인 워터마크의 검출 방법, 정보 신호 내의 계수의 셋을 포함하는 워터마크를 검출하는 집적 회로 및 정보 신호 처리 디바이스

Similar Documents

Publication Publication Date Title
US6278792B1 (en) Robust digital watermarking
KR100290330B1 (ko) 디지탈데이터용식별데이터삽입및검출시스템
EP1519311B1 (en) Average chrominance value modification for digital video watermarking
EP1164543B1 (en) Digital information embedding/extracting
Podilchuk et al. Image-adaptive watermarking using visual models
US6400826B1 (en) System, method, and product for distortion-compensated information embedding using an ensemble of non-intersecting embedding generators
EP0902591A2 (en) Method for counteracting geometric distortions for DCT based watermarking
US7630509B2 (en) Color selection scheme for digital video watermarking
US7646881B2 (en) Watermarking scheme for digital video
US20020097891A1 (en) Electronic watermarking data insertion/detection device
JP2009514305A (ja) 情報信号にデータを埋め込む方法
JP2000115524A (ja) デジタル・オブジェクト用電子透かし入れ方法
KR20010052373A (ko) 특정 스케일 및 임의 쉬프트에 대해 워터마크를 검출하는방법 및 장치
CA2523345A1 (en) Watermarking
KR19980080152A (ko) 디지털 워터마크의 삽입 방법
KR100369306B1 (ko) 컬러 이미지 워터마크를 이용한 디지털 오디오 워터마킹방법 및 장치
Zlomek Video watermarking
GB2390502A (en) Watermarking material using a bandwidth adapted codeword
Bellapu Steganographic techniques for no reference digital video quality analysis
JP2006050135A (ja) 電子透かしの埋め込み方法

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application