혹시 투명 펜을 사용해 본 적이 있는가? 투명 펜을 사용하면 종이에는 아무것도 보이지 않지만 쓴 곳에 불빛을 비추면 글씨가 보인다. 'OOO 바보', 'OOO 사랑해' 등 친구에게 속마음을 몰래 전달할 수 있어, 필자의 초등학교 시절 꽤 유행하던 아이템이다.
이제 투명 펜으로 속마음을 전달할 나이는 지났다고 생각할지 모르지만, 우리의 일상 속에서 이미 '디지털 투명 펜'이 사용되고 있다.
사진의 워터마크가 바로 그 예이다. 물론 사진 위에 글씨나 로고를 넣어 저작권을 주장할 수도 있겠지만, 이는 사진을 볼 때 방해가 될 수 있다. 이때, '디지털 투명 펜'이 사용된다. 이 기술을 이용하면 사용자가 맨눈으로 구별할 수 없게 원하는 사진이나 문구를 넣을 수 있다. 어떻게 가능한 걸까?
이미지는 숫자의 나열!
먼저 우리는 이미지가 무엇인지 이해해야 한다. 컴퓨터는 이미지를 숫자의 '배열'로 저장한다. 여기서 배열은, 사진 위에 바둑판을 그린 후 각 칸 안의 밝기를 숫자로 나타낸 모양이다. 바둑판을 잘게 그릴수록 저장할 숫자들은 많아지지만, 사진은 더 선명하고 자연스러워진다.
컴퓨터는 0과 1을 구별할 수 있는 단위인 비트(bit)가 모여 저장공간을 이룬다. 이 때문에 숫자는 0과 1이 편한 컴퓨터를 배려해 이진수의 형태로 저장된다.
예를 들면, 25는 적어도 5개의 비트를 사용하여 11001로 저장될 것이다. 그렇다면 만약 이미지를 저장하는데 숫자 당 8bit를 사용하면 표현할 수 있는 숫자의 범위가 어떻게 될까? 00000000(0)부터 11111111(255) 총 256개의 밝기를 표현할 수 있을 것이다.
비트 평면 부호화?
하나의 이미지에 또 다른 이미지를 몰래 넣는 과정에 '비트 평면 부호화'라는 기술이 적용된다. 위에서 예를 든 8bit 이미지를 생각해보자.
이미지 위에 바둑판이 그려져 있고, 바둑판의 칸 안에는 밝기가 0부터 255 사이의 값으로 표현되어 있다. 그리고, 이 숫자들은 8자리의 이진수의 형태로 저장되어 있다. 여기서 이미지의 모든 숫자들의 이진수 맨 앞자리만 모아 새로운 이미지를 만든다.
또, 이미지의 모든 숫자의 이진수 두 번째 자리만 모아 새로운 이미지를 만든다. 이렇게 맨 마지막 자리까지 8개의 이미지를 추출해낼 수 있다.
이때, 앞으로 갈수록 자릿수가 크기 때문에 맨 앞자리 숫자로 만든 이미지는 원래 이미지의 밝기 정보를 가장 많이 포함하고 있을 것이다. 하지만, 맨 뒷자리 숫자로 만든 이미지는 거의 영향이 없다고 봐도 될 정도로 밝기 정보를 거의 포함하지 않고 있다.
따라서 이 맨 뒷자리 평면에 우리가 넣고 싶은 메세지나 이미지를 숨겨두는 것이다. 위의 사진은 비트 평면 부호화를 이용해 고래 이미지를 숨겨둔 사진이다. 위 사진을 비트 평면 부호화를 통해 다시 8개의 이미지로 뜯어보면 다음과 같다.
위의 원본 사진에 귀여운 고래 그림이 숨어있다고 상상이나 할 수 있겠는가! 비트 평면 부호화를 이용해, 아무도 모르게 사진에 나만의 이미지나 메세지를 숨겨둘 수 있다. 비트 평면 부호화는 이미 많은 사진에 응용되고 있는 보편적인 기술이다. 역시 세상은 보이는 것이 전부가 아니다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]