점진적 JPEG(Progressive JPEG)는 파일 다운로드 중에도 저해상도 미리보기를 먼저 보여주고 점차 선명하게 이미지를 완성하는 방식으로 널리 알려져 있습니다. 하지만 이 다중 스캔 구조를 변형하면, 이미지가 점진적으로 개선되는 대신 다운로드 진행에 따라 전혀 다른 이미지로 교체되는 애니메이션 효과를 만들 수 있다는 흥미로운 발견이 나왔습니다. 이는 JPEG의 각 스캔이 색상 채널, DCT(이산 코사인 변환) 주파수 범위, 정밀도를 지정하며 기존 렌더링 데이터를 덮어쓸 수 있다는 특성을 활용한 것입니다.
이 기법은 같은 해상도의 여러 JPEG 이미지를 특정 마커(이미지 시작, 프레임 시작, 이미지 종료)를 제거하고 이어 붙여 구현됩니다. 디코더는 압축 폭탄(decompression bomb)과 같은 문제를 방지하기 위해 처리할 스캔 수를 제한하는데, 크롬(Chrome)은 약 90프레임까지 렌더링하며 파이어폭스(Firefox) 등 다른 브라우저는 더 많은 프레임을 처리할 수 있습니다. 특히 프레임마다 DC(직류) 전용 스캔 하나만 사용하면 잔상 없이 프레임 수를 늘릴 수 있지만, DCT 블록 특성상 결과 해상도는 원본의 1/16로 낮아집니다. 이 방식은 단일 JPEG 파일에 영상처럼 여러 프레임을 담을 수 있게 하지만, 타이밍 정보가 없어 재생 속도가 네트워크 지연에 좌우된다는 한계가 있습니다.
이러한 '역진행(Regressive) JPEG'는 실용적인 영상 스트리밍보다는 부분 렌더링을 활용한 HTML 실험이나 단일 페이지 애플리케이션(SPA)에서의 인터랙티브 요소 구현에 더 적합할 것으로 보입니다. 예를 들어, CSS나 자바스크립트(JavaScript) 없이도 대화형 웹 페이지를 만들거나, 특정 정보를 숨기는 스테가노그래피(Steganography) 기법으로 활용될 가능성도 제기됩니다. 또한, 네트워크 지연을 시각적으로 표현하는 진행 표시줄이나 AI 교란 기법 등 예상치 못한 창의적인 응용 분야를 탐색할 수 있는 비전통적인 접근 방식이 될 수 있습니다.