상술한 바와 같은 목적을 달성하기 위하여 본 발명에 따른 디지털 영상의 인증을 위한 디지털 워터마크의 삽입방법은
입력영상을 소정의 포맷으로 변환하는 단계;
의사잡음 시퀀스로 형성되는 소정 크기의 템플레이트를 변환된 상기 입력영상에 삽입하는 단계;
상기 템플레이트가 삽입된 상기 입력영상을 소정 크기의 검지블록을 단위로 하여 분할하고, 상기 검지블록을 입력영상의 특성을 나타내는 특징값 블록과 워터마크를 삽입할 위터마킹 블록으로 분할하는 단계;
상기 특징값 블록을 나타내는 상기 검지블록들로부터 상기 입력영상의 특징을 나타낼 수 있는 특징값을 추출하는 단계; 및
상기 특징값을 워터마크로서 상기 워터마킹 블록에 삽입하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명에 따른 디지털 영상의 인증을 위한 디지털 워터마크의 추출방법은
입력영상을 소정의 포맷으로 변환하는 단계;
상기 변환된 입력영상으로부터 템플레이트를 추출하는 단계;
상기 추출된 템블레이트를 기준으로 상기 입력영상을 소정 크기의 검지블록으로 분할하고, 상기 검지블록을 입력영상의 특성을 나타내는 특징값 블록과 워터마크를 삽입된 위터마킹 블록으로 분할하는 단계;
상기 특징값 블록과 상기 워터마킹 블록으로부터 상기 입력영상의 특징을 나타낼 수 있는 특징값을 추출하는 단계; 및
상기 특징값 블록과 상기 워터마킹 블록에서의 특징값의 차의 크기에 따라 상기 입력영상의 위변조여부를 판단하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부도면을 참조하여 본 발명에 따른 디지털 영상의 인증을 위한 디지털 워터마크의 삽입 및 추출방법에 대하여 구체적으로 설명하면 다음과 같다.
먼저, 본 발명에 따른 디지털 영상의 인증을 위한 디지털 워터마크의 삽입하는 과정과 그 구체적인 구성을 도 1 내지 도 6 을 참조하여 설명한다. 도 1 은 삽입을 위한 전체 과정을 개략적으로 도시한 것으로서 크게 워터마크의 추출시에 기준이 되는 템플레이트를 삽입하는 과정, 형성된 템플레이트에 따라 영상을 분할하여 특징값을 추출하는 과정 및 추출된 특징값을 워터마크 정보로서 삽입하는 과정으로 이루어지며, 이들을 각 과정별로 나누어 설명한다.
도 1 에 도시된 것처럼, 먼저 영상이 입력되면 이 입력영상의 포맷을 소정의 형태의 포맷으로 변환시킨다(S10단계). 일반적으로 입력영상은 RGB 포맷을 가지며, 이러한 포맷의 입력영상을 JPEG 과 같은 압축을 수행할 때 사용하는 표준 포맷인 YCbCr 포맷으로 변환시킨다. 이때의 변환은 다음의 수학식 1 에 의하여 변환된다.
수학식 1 에 의하여 얻어지는 YCbCr 포맷에서 Y 성분만을 추출하여 사용한다. 이렇게 워터마크 처리를 하게 될 입력영상에 대한 변환이 완결된 후에는 워터마크의 삽입과 추출을 블록단위로 수행하며 이를 위하여 블록을 설정하는 방법의 기준을 정하기 위한 워터마크 신호를 템플레이트라고 가정한다. 템플레이트는 추후에 워터마크를 추출하는데 있어서 기준이 된다. 템블레이트블록의 크기는 80*80 픽셀이고 의사잡음 시퀀스(pseudo-random sequence)를 이용하여 생성하여 도 2 에서의 과정을 통하여 입력영상에 주기적으로 삽입된다(S20단계).
도 2 는 비밀키를 이용하여 생성되는 패턴의 삽입과정을 개략적으로 도시한 것으로서 이를 참조하여 그 과정을 보다 구체적으로 살펴본다.
도 2 에 도시된 것처럼, 템플레이트블록을 형성하기 위하여 먼저 사용자에 의하여 입력되는 비밀키가 제공된다(S100단계). 제공되는 비밀키는 의사잡음을 생성하는 패턴생성부(10)에 입력되어 2차원의 MxM 크기의 패턴행렬이 생성된다(S110단계). 생성된 패턴행렬은 입력영상에 대하여 타일의 형태로 상하좌우로 주기적으로 삽입된다(S120단계).
상기의 과정을 패턴 삽입과정을 구현하기 위하여 입력영상에 템플레이트를 삽입하기 위한 구성을 도시한 블록도인 도 3 을 참조하여 보다 구체적으로 살펴보면 다음과 같다.
도 3 에 도시된 것처럼, 비밀키의 입력에 의하여 패턴생성부(10)에서는 난수로 이루어지는 2차원의 MxM 크기의 패턴행렬(w(k))을 생성한다. 또한 입력영상은 영상특성추출부(20)에 입력되어 입력영상이 가지는 지역적인 특성(지역적인 활동성)을 나타내는 스케일링 변수인 λ(x) 에 대한 추출이 이루어진다. 스케일링 변수인 λ(x) 는 작은 활동성을 갖는 영상부분, 예를 들면 평탄한 영상에서는 작은 값을 갖고 윤곽선이나 무늬영역같이 많은 활동성을 갖는 영상부분에서는 큰 값을 갖는다.
스케일링 변수를 사용하는 이유는 인간의 시각 시스템(HVS, Human Visual System)이 저주파수 성분보다는 고주파수 성분에 덜 민감하다는 특성을 이용하고자 하는 것이다. 즉 덜 민감한 고주파수 성분 영역에는 워터마크 패턴을 강하게 삽입하고 영상의 저주파수 성분 영역에는 약하게 삽입한다. 본 발명에서의 스케일링 변수는 다음의 수학식 2 와 같이 영상을 라플라시안 고주파 필터링을 하여 얻은 값의 절대값을 사용한다.
여기에서,는 컨벌루션을 나타내고, L 은 수학식 3 으로 주어지는 라플라시안 필터이다.
이와 같이 비밀키를 이용한 난수패턴과 입력영상의 지역적인 활동성을 고려한 스케일링 변수가 얻어지면 이들 값들은 각각 변조부(30)에 입력되어 지역적 활동성을 고려한 템플레이트(w(x))가 얻어진다.
또한 템플레이트(워터마크)는 영상의 이동에 무관하기 위하여 수학식 4 에서 요구되는 조건을 만족하여야 한다.
여기에서 k 는 M 의 배수이며, M 은 타일크기(tile size)로서 본 발명에서는 M = 80 으로 설정한다. 즉, 워터마크를 검출하기 위해서는 워터마크가 영상에 블록단위로 처리해서 삽입하기 때문에 워터마크를 추출하기 위해서는 삽입될 당시의 블록위치를 정확히 알아야 검출가능하다. 따라서 영상의 일부분을 잘라낸 경우에는 워터마크의 검출이 쉽지 않으므로 이러한 문제점을 해결하고자 본 발명에서는 주기적으로 템플레이트를 삽입하여 워터마크를 추출하고자 할 때 기준으로 하는 것이다.
이후에는 승산기(40)에서 영상 전체의 특성을 나타내는 스케일링 변수(s)를 템플레이트와 승산한다. 여기서 스케일링 변수는 템플레이트를 삽입하는 전체적인 강도와 연관된다. 만일 워터마크가 삽입된 이후에 압축을 세게 하는 경우는 스케일링 변수 값을 크게 해야하고 반대로 영상의 화질이 중요한 경우, 즉 워터마크가 삽입된 이후에 압축을 약하게 하는 경우는 스케일링 변수값을 작게 한다. 이 값은 실험적으로 정할 수 있다. 스케일링 변수는 0 보다 큰 값을 사용한다. 이렇게 얻어지는 최종적인 템플레이트가 입력영상과 가산기(50)에서 가산되어 템플레이트가 포함된 수학식 5 의 영상(Y)이 얻어진다.
최종적인 영상(Y)은 워터마크 패턴을 영상의 전체 영역에 대하여 행렬 {wi} 을 타일처럼 반복해서 붙여서 형성한 후에 입력영상과의 가산을 통하여 얻어진다.
이렇게 얻어진 템플레이트가 삽입된 영상을 검지블록(detection block)단위로 분할한다. 본 발명에서는 검지블록의 크기를 40*40 픽셀로 하였다. 검지블록의 크기는 템플레이트의 크기를 고려하여 결정한다. 워터마크 검지블록의 위치는 템플레이트블록을 기준으로 찾으므로 템플레이트 블록의 기준점을 알면 이것으로부터 워터마크 검지블록의 위치를 쉽게 알 수 있다. 따라서 워터마크 검지블록의 크기는 템플레이트 블록보다 작게 설정한다.
각 검지블록을 비밀키에 의하여 생성된 난수값(random value)에 의해서 특징값(signature) 부분(블록)과 워터마킹 부분(블록)으로 나눈다. 이때 두 개의 블록들은 서로 겹치지 않게 설정하여 추출한 특징값을 워터마킹 방법을 이용하여 삽입할 때 워터마크에 의하여 특징값이 변화되는 것을 막는다. 도 4a 및 도 4b 에 도시된 것처럼, 난수값(0 또는 1)에 따른 검지블록을 분할하여 설정할 수 있으며 이 분할방법은 다양하게 결정할 수 있다.
도 4a 및 도 4b 에서는 워터마킹 블록에서의 작은 워터마킹 블록의 크기는 10*10 픽셀로 하였으며 이러한 작은 픽셀로 형성되는 작은 워터마킹 블록이 8 개로 이루어져 있다. 또한 특징값 부분은 2 개의 작은 특징값 블록으로 나뉘며 각각의 작은 특징값 부분의 블록의 크기는 20*20 픽셀이다. 상기에서의 분할방법은 일 예로서 언급된 것이며 특징값 블록과 워터마킹 블록을 임의의 형태로 분할할 수 있다. 즉, 각 블록을 원의 형태 또는 직사각형도 가능하며 이는 블록에 대하여 차후에 언급하는 블록평균값만 얻을 수 있다면 어떠한 형태로도 가능하다.
영상이 특징값 블록과 워터마킹 블록으로 분할된 후에, 영상의 특징값을 추출한다. 특징값은 두 개의 작은 특징값 블록들이 평균값의 차를 이용한다. 이러한 과정을 도 5 를 참조하여 보다 구체적으로 살펴본다.
먼저, 도 4a 및 도 4b 에서와 같은 두 개로 분할된 특징값 블록들(특징값 0, 특징값 1) 각각에 대하여 블록평균값을 구한다(S210단계 및 S220단계). 특징값 블록들을 구성하는 픽셀들(xi, i= 1...,n (n 은 분할된 signature 블록의 픽셀수))에 대한 평균값은 수학식 6 을 이용하여 구한다.
이때 특징값의 강건함을 위해서 각 특징값 블록의 평균값이 해당되는 구간의 중간값이 되도록 변조한다(S230단계). 즉, 악의적이지 않은 공격(손실압축, 포맷변환)에는 값의 변화가 적도록 변조하는 것으로서 비 악의적인 공격에는 강인하고 악의적인 공격에는 쉽게 깨지는 특성을 갖출 수 있도록 변조한다. 중간값으로 변조하기 위한 변화량() 는 다음의 수학식 7 을 이용하여 구한다. 강건함을 위하여 중간값으로 변조하는 것은 양자화 크기의 1/2 이상이 변해야만 특징값이 변하기 때문에 그 이하의 변화량에 대해서는 항상 같은 값을 유지하도록 할 수 있다. 따라서 비 악의적인 공격에 의해 특징값이 변화될 가능성이 낮아진다.
여기에서, △s 는 양자화 스텝의 크기이고, '「」' 는 최소 정수값을 추출하기 위한 연산자이다.
상기와 같은 수학식 7 에 의하여 특징값 블록의 평균값을 중간값으로 변화시키는 것은 특징값 블록들의 픽셀값을 수학식 8 에 의하여 변화시키는 것을 의미한다.
여기에서 x* 는 변화된 픽셀값을 나타낸다.
위에서 구한 각 특징값 블록들의 평균값의 차를 구하고 그 절대값을 특징값으로 수학식 9 에서와 같이 설정한다(S240단계).
여기에서 Ms1 은 특징값 0 블록의 평균값을, Ms2 는 특징값 1 블록의 평균값을 나타낸다.
상기에서와 같이 특징값이 결정되면 이를 워터마크 정보로서 영상에 삽입한다. 삽입과정에 대하여는 도 6 을 참조로 하여 설명한다. 특징값을 2 진 시퀀스로 변환한다(S310단계). 변환 후에는 8 비트 크기의 그레이 코드로 추가로 변환한다(S320단계). 이와 같이 추가적인 변환과정을 거치는 것은 워터마크 삽입정보를 보다 비밀스럽게 보호하기 위한 것이다. 2 진 시퀀스를 bi, i=1,..,N 으로 나타내고 그레이 코드를 gi, i=1,...,N 이라고 하면 그 변환식은 다음의 수학식 10 으로 주어진다.
여기에서 는 배타적 논리합(exclusive-OR)을 표시한다.
또한, 그레이 코드를 2 진 시퀀스로 변환하는 식은 수학식 11 로 주어진다.
수학식 10 에 의하여 얻어지는 그레이 코드값(gi)을 작은 워터마킹 블록의 평균값을 양자화하여 삽입한다. 구체적으로 설명하면, 삽입하고자 하는 비트(bi)와 대응하는 작은 워터마킹 블록(wi)을 선택한다(S330단계). 워터마킹 블록의 선택은 삽입해야 할 워터마크 정보가 8비트임으로 각 비트열과 대응되는 작은 워터마킹 블록을 선택한다. 평균값의 양자화를 이용하여 bi를 워터마크 비트로서 삽입한다(S340단계). bi를 워터마크로서 삽입하기 위해서 변화시켜야 할 양(u) 은 수학식 12 및 13 를 이용하여 구한다.
여기에서 r 는 양자화 잡음이고, △w 는 양자화 구간의 크기이다.
여기에서는 양자화 함수로서 다음의 수학식 14 로서 주어진다.
위에서 구한 변화시켜야 될 양() 을 업데이트시키는 것은 수학식 15 를 이용한다.
상기의 과정을 8 비트를 전부 삽입할 때까지 반복한다(S350단계). 8 비트가 모두 삽입된 상태가 아니라면 다음 비트로 진행하고(S360단계), 이전에 수행된 S330 단계와 S340 단계를 수행한다. 이러한 반복작업에 의하여 입력영상에 대한 특징값을 워터마크 정보로 하여 워터마크 블록부분에 대한 삽입과정을 수행하여 마지막 검지블록까지 계속 수행한다. 이러한 워터마크 삽입과정에서 삽입된 특징값에 의하여 입력영상에 대한 위변조에 대한 판단이 가능하게 된다.
입력영상에 대한 워터마크가 삽입된 후에는 S10 단계에서 이루어진 포맷의 변환과 반대의 역변환을 거쳐서 영상을 RGB 포맷으로 변환한 후에 이를 기록매체 등에 기록한다(S60단계). 즉, 상기의 워터마킹 처리를 위하여 YCrCb 포맷 중에서 Y 성분에 대하여만 처리가 된 상태이므로 Y 성분과 CrCb 성분을 합성한 후에 수학식 1 에서의 역행렬을 구한 후에 이를 YCrCb 행렬과 연산을 통하여 RGB 포맷의 워터마크가 삽입된 출력영상을 얻어서 이를 기록매체 등에 기록한다.
이후에는 영상에 워터마크가 삽입되어 있는가 또는 이 영상이 위변조되어 있는가의 여부를 검사하기 위하여 영상으로부터 워터마크를 추출하는 과정에 대하여 도 7 을 참조하여 구체적으로 살펴본다.
도 7 은 본 발명에 따른 디지털 영상의 인증을 위하여 디지털 워터마크의 추출과정을 개략적으로 도시한 흐름도이다.
앞에서 기술한 디지털 워터마크의 삽입과정에서와 동일한 방식으로 워터마크의 추출을 위하여 입력영상에 대하여 포맷을 소정의 형태로 변환시킨다(S400단계). RGB 포맷의 입력영상을 JPEG 과 같은 압축을 수행할 때 사용하는 표준 포맷인 YCbCr 포맷으로 변환시킨다. 이때의 변환은 상기의 수학식 1 에 의하여 변환된다.
변환 후에는 YCbCr 성분 중에서 Y 성분만을 추출하고 이 Y 성분을 대상으로 하여 템플레이트를 추출한다(S410단계). 템플레이트의 추출과정에 대하여는 도 8 을 참조하여 살펴본다. 먼저 입력영상에는 템플레이트가 소정의 크기로 반복삽입되어 있으므로 템플레이트를 M*M 픽셀의 크기로 설정하고 입력영상을 M*M 픽셀 크기로 분할한다(S500단계). 분할된 각각의 입력영상들을 가산하고, 가산된 M*M 픽셀 크기의 영상(B)을 버퍼에 저장한다(S510단계). 버퍼에 저장되는 영상은 다음의 수학식 16 으로 주어진다.
여기에서 j1과 j2는 타일의 인덱스를 나타낸다.
또한, 상기에서와 같은 입력영상에 대한 처리와 함께 비밀키에 의하여 이전에 기술한 것과 같은 방법으로 워터마크 패턴(w(k))을 생성한다(S520단계). 워터마크 패턴도 상기의 템플레이트와 동일한 크기의 2차원 패턴으로 형성한다.
워터마크 패턴(w(k))과 버퍼에 저장되어 있는 가산된 영상과의 상관도를 측정한다(S530단계). 입력영상에 대하여 템플레이트의 크기로 분할한 후에 분할된 하나의 영상을 사용하지 않고 분할된 블록들을 전부 가산하는 것은 워터마크 패턴과의 상관도를 구함에 있어서 하나의 블록에 대하여 상관도를 구하는 것보다 훨씬 큰 값을 얻을 수 있으므로 보다 용이하게 상관도를 결정할 수 있는 장점이 있다(T.Kalker, G. Depovere, J. Haitsman, and M. Maes, "A video watermarking system for broadcast monitoring", Proceedings of the SPIE Security and Watermarking of Multimedia Contents, vol. 3657, pp. 103-112, San Jose, January 25-27, 1999). 상관도의 측정은 다음의 수학식 17 에 의하여 이루어진다.
여기에서의 인덱스인 i-k 는 M 의 모듈러(modulo)로서 계산된다(M의 크기로 영상을 타일링하여 더하는 것을 의미한다). 수학식 17 은 2차원 사이클릭 컨볼루션을 나타낸다.는를 공간적으로 뒤집은 것으로을 나타낸다면 수학식 17 을 다음의 수학식 18 로 표현할 수 있다(컨볼루션하는 방법은 컨벌루션하고자 하는 시퀀스 중 하나를 시간축을 뒤집어 서로 코릴레이션(correlation)을 취한다. 그런데 컨벌루션을 이용하여 코릴레이션을 구하고자 하므로 시간축에서 뒤집는 과정을 한번 더 하면 본래 원하는 코릴레이션을 컨벌루션을 통하여 구할 수 있다).
여기에서 "" 는 사이클릭 컨볼루션을 나타낸다. 사이클릭 컨볼루션은 공간 도메인에서 보다 푸리에 변환을 이용하여 주파수 도메인에서 단순히 곱셈의 연산을 하여 보다 효율적으로 계산을 수행할 수 있으므로 다음의 수학식 19 를 이용하여 연산한다.
여기에서, IFFT 는 역 고속 푸리에 변환을 나타내고, FFT 는 고속 푸리에 변환을 나타낸다.
상기와 같은 수학식 19 에 의하여 연산된 결과의 일예를 도 9 에 도시하였다. 도 9 에서 도시된 것처럼 피크가 생긴 위치에 의하여 검지블록의 시작점을 찾을 수 있다. 이때 피크가 가지는 값이 소정의 값 이상으로 최대의 피크를 가지는 것을 검색한다(S540단계). 검색의 결과로서 피크가 53 행과 15 열에 피크가 위치함을 알 수 있으며 이로부터 최초의 검지블록은 입력영상의 왼쪽 상단(1행 1열)으로부터 15 행 53 열 이후부터 시작됨을 알 수 있다(S550단계).
이상과 같이 템플레이트가 추출되면 영상을 분할한다(S420단계). 영상의 분할은 앞서에서 설명한 것처럼, 비밀키에 의하여 생성되는 난수값에 따라서 특징값 부분과 워터마킹 부분으로 나눈다. 템플레이트의 크기가 80*80 이므로 비밀키에 의해서 생성되는 난수값 중 처음 시작되는 4 개를 반복하여 사용한다. 템플레이트의 크기를 크게 하거나 또는 템플레이트간의 간격을 더 멀리하면, 더 많은 검지블록을 포함할 수 있으므로 반복되는 난수의 값도 커져서 보안성이 높아지게 된다. 도 10 에는 본 발명에서 실험에 사용한 템플레이트와 검지블록간의 관계를 도시한 것이다. 1 개의 템플레이트에는 4 개의 검지블록이 위치한다.
상기에서와 같이 영상이 특징값 블록과 검지블록으로 분할되면 이전의 워터마크 삽입시에 하였던 방법과 동일한 방법으로 특징값(I1)을 추출한다. 또한 워터마킹 부분에서는 워터마크 삽입부에서 워터마킹한 특징값(I2)을 추출한다. 워터마킹 부분에서 추출한 값은 그레이 코드로 되어있으므로, 이것을 수학식 11 을 이용하여 이진 시퀀스로 변환하고, 이를 다시 정수값으로 바꾼다.
이렇게 I1과 I2의 값이 결정되면, 수학식 20 에 따라서 이 두 값의 차가 허용오차 범위인가를 결정한다.
이와 같이 만약 두 값의 차가 허용오차 범위에 있으면 해당 검지블록은 위변조되지 않았다고 판단하고 허용오차보다 크면 위변조되었다고 판단한다.
상기에서와 같이 본 발명에 따른 디지털 영상의 인증을 위한 워터마크의 삽입 및 추출방법에 대하여 실제 영상의 압축에 따른 영향, 워터마크의 삽입에 따른 화질의 변화, 압축에 대한 강인성 및 실제 적용시의 영상의 위변조에 대한 감지 등에 대하여 실제 테스트를 수행하였으며 그 결과는 다음과 같다.
1) 블록평균값의 JPEG 압축에 따른 오차 실험
블록평균값을 양자화한 후 삽입한 후에 JPEG 압축을 QF(Quality Factor)를 90∼50(0에 가까울수록 압축을 많이 한 것이고, 100에 가까울수록 압축을 덜 한 것임) 까지 변화시키면서 블록평균값의 변화율을 측정했다. 이 측정결과를 도 11 에 도시하였다. 가로축은 워터마킹 블록(WB)의 블록평균값의 변화값을 나타내고, 세로축은 워터마크 블록이 변화된 블록의 수를 나타낸다. 이러한 도 11 에서 나타나는 것처럼 QF = 90 에서부터 QF = 50 으로 압축률이 증가하는 경우에도 블록평균값의 변화가 적음을 알 수 있다. 이는 특징값으로 사용하는 블록평균차값도 역시 변화가 적다는 것으로 압축과 같은 비악의적인 공격에는 영향을 적게받는다는 것을 알 수 있으며 결과적으로 블록평균값이 워터마킹하는 수단으로서 유효함을 나타내고 있다.
2) 화질의 평가
워터마크 삽입 전후의 영상의 변화를 사용자가 알지 못하는 것이 중요하다. 화질평가에 대한 비교적 객관적인 수치로서 영상에서는 PSNR(Peak Signal to Noise Ratio; 영상의 최대 픽셀값에 대한 잡음성분의 비)이 사용된다. 삽입영상에 따라서 많은 변화가 있을 수 있으며, PSNR 은 다음의 수학식 21 과 같다.
여기에서 X, Y 는 입력영상의 열과 행의 수이다. px,y 는 원영상, p'x,y 는 워터마킹된 영상의 픽셀값을 나타낸다. 실험에서 구한 도 12a 내지 도 12c 에서의 3 개의 영상, 도 12a 는 460*400 픽셀, 도 12b 는 320*410 픽셀, 그리고 도 12c 는 560*380 픽셀의 크기를 가지는 영상을 도시한 것이다. 상기와 같은 픽셀크기를 가지는 영상들에 대한 워터마킹 전후의 PSNR 을 표 1 에 표시하였다.
그림 |
도 12a |
도 12b |
도 12c |
PSNR(dB) |
40.96 |
41.74 |
41.38 |
표에 나타난 것처럼 도 12a 내지 12c 의 각 경우에 대하여 수행한 PSNR의 값은 모두 40dB 이상으로서 영상에 손실을 적게 줌을 나타내고 있다(통상적으로 40dB 이상이면 영상의 화질저하는 거의 알아보기 힘들다고 할 수 있으며 30dB 이상이면 눈에 거슬리는 것이 없다고 한다).
3) 압축에 대한 강인성
semi-fragile 워터마킹의 특성에 맞는가를 측정하기 위하여 압축에 대한 강인성을 테스트하였다. 압축에 대한 강인성 테스트를 위하여 각 QF 로 압축한 상태에서 영상에 대한 조작없이 그대로 압축된 영상의 워터마크를 검지하였을 때 위변조되었다고 판단되는 FPE(False Positive Error)(영상에 대한 공격을 가하지 않고 단지 JPEG 압축을 다양한 압축률에 대하여 수행하였을 대 위변조되었다고 판단하는 에러수를 확률로 표시한 값)를 측정한 결과를 표 2 에 나타내었으며, 총 검지블록 중에 오류를 나타낸 블록수를 표시하였다.
|
도 12a |
도 12b |
도 12c |
QF = 90 |
0/110 |
0/80 |
0/126 |
QF = 80 |
0/110 |
0/80 |
0/126 |
QF = 70 |
0/110 |
6/80 |
0/126 |
QF = 60 |
3/110 |
13/80 |
0/126 |
QF = 50 |
1/110 |
11/80 |
0/126 |
표 2 에 나타나는 것처럼, 그림에 따라서 약간의 차이가 있음을 알 수 있다. QF = 80 이상의 압축에서는 오류가 검출되지 않았다. 실험에서 사용한 삽입강도는 양자화 크기로 측정되는데 signature 부분은 △s = 2 로 하였고, 워터마킹 부분은 평균값을 취하는 크기가 signature 부분보다 작기 때문에 양자화 크기를 좀더 큰△w = 3 으로 삽입하였다.
4) 영상의 위변조 검지
영상의 일부분을 변조시킨 후 검증된 결과를 도 13a 내지 도 13c 에 도시하였다. 도 13a 는 320*240 픽셀의 크기를 가지는 영상의 일예이고, 도 13b 는 도 13a 에서의 '03.05' 부분을 '05.05' 로 변조한 경우이고, 도 13c 는 도 13b 에서의 변조된 부분을 검출한 영상을 도시한 것으로 위변조된 영역을 검지블록단위로 흰색으로 표시하였다. 도 13c 에서는 실제 변조된 영상보다 더 크게 표시하고 있다. 이는 위변조 판별을 검지블록단위(40*40)으로 하였기 때문이다.
도 13d 는 원영상과 위변조한 영상의 signature 값인 블록평균차(BAD; Block Average Difference)의 변화를 보여주고 있다. 위변조된 부분에서 (다섯번째 검지블록) 약 3.8 정도의 변화량이 측정되었다. 이것은 실험에서 허용오차로 하고 있는 1.01 보다 크기때문에 위변조되었다고 판단한다.
도 13e 는 |원영상 BAD - 위변조영상 BAD|의 값을 도시한 것이다. 여기에서 5 번째 검지블록에서 확실히 변화가 큼을 알 수 있다. 도 13f 는 도 13e 에서 구한 변화량에 대한 히스토그램을 도시한 것으로서, 3.8 정도에서 변한 블록의 개수가 1 개가 있음을 알 수 있다.
5) 본 발명에 따른 디지털 워터마크의 삽입/추출방법의 적용예
(1) 디지털 카메라에의 적용
본 발명에 따른 디지털 워터마크의 삽입/추출방법를 디지털 카메라에 적용하여 실험을 하였다. 도 14a 에 구현된 것처럼, 디지털 카메라(100)에서 본 발명에따른 디지털 워터마크의 삽입방법의 적용은 크게 2 가지로 이루어질 수 있다. 첫째로, 디지털 카메라의 칩셋(120)에 본 발명에 따른 디지털 워터마크의 삽입방법을 구현하는 알고리즘을 내장하는 방법으로 CCD 모듈(110)에 의하여 촬상된 영상에 바로 워터마크를 삽입하여 저장하는 방법이다. 이 방법의 장점은 디지털 카메라에서는 저장장치(130)가 착탈식으로 되어있어서 디지털 카메라로부터 분리가능해도 나중에 촬영된 삽입된 워터마크를 이용하여 사용가능하다는 점이다. 둘째로, 디지털 카메라로 촬영한 후에 촬영된 영상을 개인용 컴퓨터(140)로 업로드하는 과정에서 장치 드라이버(device driver)단에서 워터마크를 삽입하는 방법이다. 현재 구현된 디지털 카메라를 이러한 방법으로 구현하였다.
(2) DVR 시스템에 적용
DVR 시스템은 디지털 캠코더나 CCTV 카메라에서 들어오는 영상을 하드디스크나 DAT 와 같은 저장매체에 영상을 저장하는 장치이다. 본 발명에서 구현하고자 하는 위변조 방지용 DVR 시스템의 구조의 일예들을 도 15a 및 도 15b 에 도시하였다.
도 15a 에 도시된 일 예를 살펴보면, 카메라(150)로부터 DVR 시스템(200)으로 영상이 입력된다. 이때의 영상은 NSTC/PAL 모드 가능하다. 입력된 영상은 신호변환부(210)에 의하여 YUV 포맷으로 분리하여 장시간의 영상을 많이 보관하기 위하여 강한 압축을 한다. 압축코덱부(codec: compression and decompression)(220)에서는 압축방식으로 MPEG 이나 MJPEG 등과 같은 압축포맷을 사용하여 입력영상 데이터를 압축한다 또 압축 저장된 영상데이터를 신장(decompression)하여 출력장치(모니터, TV 등)에서 바로 볼 수 있는 영상데이터 포맷으로 만든다. 압축된 데이터가 데이터저장부(230)에 저장되기 전에 암호화한 후 저장한다. 이때 암호화시키는 DVR 시스템(200) 자체에서 추출할 수 있는 유일한 정보(예를 들면, DVR 시스템 고유의 ID 또는 시스템을 구성하는 구성요소들 중에서 고유의 ID 등)를 이용하여 암호화한다. 암호화해서 저장하는 이유는 데이터저장부(230)의 분실이나 저장된 영상의 위변조를 사전에 막기 위함이다.
저장된 암호화된 영상을 보기 위하여 DVR 시스템으로부터 외부장치(250)로 추출하는 과정이 필요하다. 이때 추출단계에서 데이터저장부(230)에 저장되어 있던 암호화된 영상을 복호하하고 압축을 푼다. 압축을 푼 영상을 본 발명에서 제안한 위변조 인증을 위한 디지털 워터마크의 삽입 및 추출방법에 대한 알고리즘이 구현된 워터마킹 처리부(240)를 이용하여 워터마크를 삽입한다. 이렇게 함으로써 DVR 시스템으로부터 추출되어져 최종적으로 사용하고자 하는 외부장치(250)로 이동하는 중에 발생할 수 있는 위변조 여부를 판단할 수 있게 된다. 따라서 위변조된 영상이 잘못된 증거로서 채택되는 것을 막을 수 있다.
도 15b 에서는 도 15a 와의 구성을 변형한 다른 적용예를 도시한 것이다. 도 15b 의 일예에서의 도 15a 에 도시된 구성과의 차이점은 워터마킹처리를 수행하는 워터마킹처리부(240)를 압축코덱부(220) 이전에 설치하여 신호변환부(210)에서 변환된 신호에 바로 워터마킹 처리를 수행한다. 이렇게 워터마킹 처리된 이루어진 신호에 대한 암호화 및 복호화를 통하여 데이터저장부(230)에 데이터를 저장하거나 이를 다시 추출하여 외부장치(250)로 이동시키는 과정은 앞서의 예에서와 동일하다. 이와 같이 본 예에서는 본 발명에서 제안된 방법이 압축에 강인한 특성을 가지고 있으므로 워터마킹처리부(240)에서 입력영상에 대하여 처리를 한 후에 입력영상을 압축한 이후에도 워터마크가 살아 있게 된다. 따라서 저장된 이후에 어떠한 위,변조가 일어났을 때 위,변조를 판단할 수 있다.
또한 압축코덱부(220)에서는 암호화시키는 DVR 시스템(200) 자체에서 추출할 수 있는 유일한 정보를 이용하여 암호화한다. 암호화해서 저장하는 이유는 데이터 저장부의 분실이나 저장된 영상의 위,변조를 사전에 막기 위함이다. 여기서 암,복호화 과정은 생략할 수 있다. 왜냐하면 워터마크가 이미 저장하기 전에 삽입되어 있기 때문에 저장된 데이터의 위,변조를 하는 경우 위,변조 사실을 쉽게 알 수 있기 때문이다. 저장된 암호화된 영상을 보기 위하여 DVR 시스템으로부터 외부장치로 추출하는 과정이 필요하다. 이때 추출단계에서 먼저 암호화된 영상을 복호화하고 압축을 풀어 외부장치를 이용하여 영상을 볼 수 있다. 여기서 워터마킹 알고리즘은 본 발명에서 제안된 알고리즘 뿐만아니라 semi-fragile특성을 갖는 다른 워터마킹 알고리즘도 사용 가능하다. 또한 이러한 워터마킹 기능을 구현하기 위해서 FPGA나 ASIC칩으로 구현할 수 있고 DSP칩을 이용할 수도 있다.