- 겉보기에는 여성 사진이지만, 이미지에 DCT를 적용하면 주파수 영역에 숨긴 고양이가 드러나는 실험임
- 시간·공간 영역과 주파수 영역은 되돌릴 수 있는 변환으로 연결되어, 같은 이미지가 서로 다른 방식으로 해석될 수 있음
- 고양이 사진을 DCT로 바꾼 “노이즈” 패턴을 낮은 불투명도로 합성하면, 원본 이미지는 유지되면서 변환 결과에 고양이 형상이 남음
- 합성 이미지는 리사이징 후에도 고양이 정보가 남지만, 확대하면 타일처럼 반복되고 축소하면 잘려 나감
- JPEG 품질을 낮추면 특히 고주파 성분이 강하게 양자화되어, 손실 압축이 얼마나 많은 정보를 버리는지 눈으로 확인할 수 있음
DCT로 만든 “거울 차원” 실험
- 주파수 영역은 일상적인 신호를 구성 파형의 진폭으로 바꿔 해석하는 방식임
- 가장 흔한 기반은 주파수가 증가하는 사인파
- 다른 파형들도 대체 주파수 영역을 만드는 데 사용할 수 있음
- 이 변환에는 두 가지 성질이 있음
- 원본 시간 영역 또는 공간 영역 데이터로 되돌릴 수 있는 가역성
- 같은 수학 연산으로 양방향 변환을 수행하는 입출력 대칭성
- 압축에서는 이 구분이 중요함
- 이미지를 주파수 영역으로 바꾼 뒤 고주파 성분의 정밀도를 낮추거나 제거해도, 결과 이미지는 지각적으로 비슷하게 보일 수 있음
- 그만큼 전송하거나 저장할 데이터가 줄어듦
고양이를 주파수 영역에 숨기는 과정
- 고양이 사진을 이산 코사인 변환(DCT) 으로 주파수 영역 형태로 바꾸는 데서 시작함
- 이전 예제의 여성 사진 위에 주파수 영역의 “고양이 노이즈” 패턴을 낮은 불투명도로 합성함
- 합성 작업은 손실을 동반함
- 기대한 결과는 여성 사진이 DCT에서 비교적 균일한 노이즈로 분해되고, 삽입된 고양이 노이즈가 고양이 이미지로 다시 모이는 것이었음
- 실제로 합성 이미지에 DCT를 적용하면 고양이 형상이 나타남
- 직접 확인할 수 있는 합성 이미지와 MATLAB 예제가 있음
- woman-with-cat.png
dct2(woman)으로 DCT를 계산하고imgaussfilt(cat, 1)로 부드럽게 만든 결과를 표시함
- 리사이징 후에도 고양이는 남음
- 확대하면 이미지가 타일처럼 반복됨
- 축소하면 이미지가 잘려 나감
- JPEG 품질 설정을 낮추면 고양이 정보가 망가짐
- 높은 JPEG 품질에서는 이미지가 꽤 괜찮게 보임
- 낮은 품질에서는 고주파 성분에 해당하는 오른쪽 아래 사분면이 심하게 양자화됨
- 이 시각화는 JPEG 알고리듬이 우리가 잘 알아차리지 못하는 방식으로 많은 정보를 파괴한다는 점을 보여줌
- 오디오 스펙트로그램에 숨은 메시지를 넣는 사례나 JPEG DCT 계수에 텍스트 스테가노그래피를 얹는 논의 같은 선행 사례가 있음
- 이 기법의 실용성이나 완전한 신규성보다, 주파수 영역과 시간 영역이 흥미롭게 결합된다는 점에 초점이 있음
- 보너스로 JPEG 품질 설정별 “독립형” 주파수 영역 고양이의 열화 영상이 있음: https://vimeo.com/940487310/8a929a5eb5