맨위로가기

APNG

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

APNG(Animated Portable Network Graphics)는 2004년 모질라 코퍼레이션에서 개발한 애니메이션 이미지 형식이다. PNG 파일 형식을 기반으로 하며, 여러 프레임을 포함하여 애니메이션을 구현한다. APNG는 하위 호환성을 갖춰 APNG를 지원하지 않는 응용 프로그램에서는 첫 번째 프레임만 표시된다. APNG는 GIF와 비교하여 더 나은 압축과 투명도, 24비트 색상을 지원하며, 다양한 이미지 처리 프로그램과 웹 브라우저에서 지원된다.

더 읽어볼만한 페이지

  • 모질라 - 모질라 재단
    모질라 재단은 넷스케이프 사업부 축소 후 모질라 프로젝트의 독립 운영을 위해 2003년 설립된 비영리 단체로, 파이어폭스 개발 지원, 개방형 웹 생태계 유지, 그리고 인터넷 자유 수호를 위한 활동을 전개한다.
  • 모질라 - 모질라 차이나
    모질라 차이나는 한국에서의 역사와 관련된 주제를 다루며, 특정 시대별 주요 사건 및 변화, 쟁점, 사회적 영향, 관련 인물 및 단체, 그리고 미래에 대한 내용을 포함한다.
  • 그래픽 파일 포맷 - JPEG
    JPEG은 정지 화상의 디지털 압축 및 코딩을 위한 국제 표준이자 이를 만든 위원회의 이름으로, 1992년 최초 표준 발표 이후 웹 환경에서 널리 사용되는 이미지 형식이 되었다.
  • 그래픽 파일 포맷 - BMP 파일 포맷
    BMP 파일 포맷은 마이크로소프트에서 정의한 다양한 색상 깊이를 가진 컬러 비트맵 표현 방식으로, 장치 독립 비트맵이라고도 불리며, BMP 헤더, 비트맵 정보, 색 팔레트, 비트맵 데이터 등으로 구성되어 높은 호환성을 가지지만 압축을 거의 하지 않아 파일 크기가 큰 편이다.
  • 오픈 포맷 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • 오픈 포맷 - 오픈 소스
    오픈 소스는 제품 설계 및 재배포를 장려하는 모델로, 소프트웨어 개발에서 시작하여 개방형 협업을 장려하며 다양한 분야에서 활용되고 있고 오픈 소스 이니셔티브와 같은 단체가 운동을 지원한다.

2. 역사

APNG 사양은 모질라 코퍼레이션의 스튜어트 파먼터와 블라디미르 부키체비치(Vladimir Vukićević)가 스로버(Throbber)와 같은 인터페이스에 필요한 애니메이션을 저장할 수 있게 하기 위해 2004년에 만들었다.[1][2] 2003년 5월, 모질라는 APNG 기능의 상위 집합을 제공하는 MNG 애니메이션에 대한 지원을 중단했는데, 이는 광범위한 MNG 디코더 라이브러리(300KB)에 필요한 큰 파일 크기에 대한 우려 때문이었다.[3] PNG 디코더를 기반으로 구축된 APNG 디코더는 훨씬 작은 구성 요소였다.

PNG 및 MNG 형식의 사용자 및 관리자 사이에서 APNG는 미온적인 반응을 얻었다. 특히 PNG는 단일 이미지 형식으로 구상되었다.[4] APNG는 APNG를 인식하지 못하는 애플리케이션이 무시하도록 PNG 보조 청크에 후속 프레임을 숨기지만, 애니메이션 이미지와 비 애니메이션 이미지를 구분할 수 있도록 소프트웨어에 대한 형식 변경은 없었다. 글렌 랜더스-페르손(Glenn Randers-Pehrson)은 APNG 형식 변경을 권고하고 고유한 MIME 유형(예: video/png)을 사용할 것을 제안했으나, APNG 지지자들은 다른 MIME 유형(image/apng)을 추가하고,[5] '.png' 확장자 대신 '.apng' 확장자를 사용할 것을 주장하여 PNG 개발 그룹에서 해당 형식을 승인하지 않았다.[6]

PNG 개발 그룹은 2007년 4월 20일에 APNG를 공식 확장으로 거부했다.[7] 2021년 9월 14일부터 PNG 워킹 그룹은 월드 와이드 웹 컨소시엄(W3C)의 지침에 따라 PNG 사양을 유지 관리하고 개발했으며, PNG 사양(세 번째 에디션)의 첫 번째 공개 작업 초안은 2022년 10월 25일에 게시되어 APNG 확장을 핵심 PNG 사양에 추가했다.[9] 후보 추천은 2023년 9월 21일에 게시되었다.[10]

3. 기술적 상세 내용

APNG는 2004년 모질라 재단의 스튜어트 파먼터(Stuart Parmenter)와 블라디미르 부키체비치(Vladimir Vukićević)가 스로버(throbber)와 같은 인터페이스에 필요한 애니메이션을 저장하기 위해 만들었다.[1][2]

APNG 명세는 PNG 파일 포맷을 따르며, PNG 파일은 PNG 시그너처(8개의 특수 바이트)와 일련의 청크들로 구성된다. 각 청크는 길이(4바이트), 청크 유형(4바이트), 청크 데이터(길이 바이트), CRC(4바이트)의 네 부분으로 구성된다.

PNG 청크 구조
길이
(4 바이트)
청크 유형
(4 바이트)
청크 데이터
(길이 바이트)
CRC
(4 바이트)



최소한의 PNG 파일은 그림 헤더(IHDR), 그림 데이터(IDAT), 그림 끝부분(IEND)의 세 가지 청크로 구성된다.

매우 단순한 PNG 파일의 구조
89 50 4E 47 0D 0A 1A 0A
PNG 시그너처
IHDR
그림 헤더
IDAT
그림 데이터
IEND
그림 끝부분



다음 그래픽은 하나의 빨간 화소만을 표현하는 최소한의 PNG 파일 내용을 보여준다. 왼쪽은 16진 형식, 오른쪽은 ISO-8859-1 문자(인식 불가능 문자는 점)를 나타낸다.

16진문자
style="font-family: Consolas, Andale Mono, Courier New, monospace" |style="font-family: Consolas, Andale Mono, Courier New, monospace" |



APNG는 PNG의 확장으로, 애니메이션을 지원하기 위해 세 개의 새로운 보조 청크(acTL, fcTL, fdAT)를 도입했다.

GIF와 비교했을 때, APNG는 풀 컬러 이미지와 알파 채널을 지원하여 배경과 자연스럽게 합성되는 표현이 가능하다. 또한, APNG는 Deflate 압축을 사용하므로, Lempel–Ziv–Welch(LZW) 압축을 사용하는 GIF보다 압축 효율이 좋아, 애니메이션 GIF를 APNG로 변환하면 파일 크기를 줄일 수 있는 경우가 많다.

3. 1. APNG의 청크 구조

APNG는 PNG 파일 포맷을 따르며, 애니메이션 구현을 위해 다음 세 가지 보조 청크를 도입한다:[11]

  • 애니메이션 제어 청크 (acTL): 기본 이미지의 IDAT 청크 앞에 위치한다. 이 파일이 애니메이션 PNG 파일임을 나타내는 일종의 "마커" 역할을 하며, 전체 프레임 수와 애니메이션 반복 횟수(0은 무한 반복)를 포함한다.
  • 프레임 제어 청크 (fcTL): 각 프레임의 이미지 데이터 앞에 위치하며, 해당 프레임의 메타데이터(크기, 위치(기본 이미지 기준), 지속 시간, 표시 후 처리 방법(검은색으로 지울지, 이전 프레임으로 대체할지, 다음 프레임으로 덮어쓸지), 투명도 적용 여부 등)를 담고 있다.
  • 프레임 데이터 청크 (fdAT): 각 프레임의 이미지 데이터를 저장한다. 시퀀스 번호로 시작하며, 기본 이미지의 IDAT 청크와 동일한 구조를 갖는다.


프레임 제어 청크(fcTL)와 프레임 데이터 청크(fdAT)는 공통된 시퀀스 번호를 따른다. 따라서 APNG를 인식하지 못하는 PNG 편집기가 PNG 청크 정렬 규칙에 따라 프레임을 재정렬하더라도, 프레임 순서와 타이밍을 복원할 수 있다.[12]

각 프레임은 기본 이미지와 동일한 비트 심도, 색상 유형, 압축 방식, 필터 방식, 인터레이스 방식 및 팔레트(있는 경우)를 사용한다.

3. 2. 하위 호환성

PNG 파일을 읽는 응용 프로그램은 이해하지 못하는 청크를 무시하도록 설계되었기 때문에,[13] APNG는 하위 호환된다. APNG 확장을 지원하지 않는 응용 프로그램은 첫 번째 프레임만 표시하고 추가 애니메이션 프레임은 무시한다.

APNG 형식은 첫 번째 프레임이 기존 PNG와 동일한 영역에 저장된다. 따라서 APNG 형식을 지원하지 않는 디코더를 탑재한 소프트웨어에서도 첫 번째 프레임이 이미지로 표시된다. 프레임의 속도 정보나 두 번째 이후의 애니메이션 프레임은 새롭게 확장된 영역에 저장되지만, 이러한 영역은 APNG를 지원하지 않는 디코더에서는 무시된다. 또한, 첫 번째 프레임을 애니메이션에 사용할지 설정할 수 있으므로, 비대응 환경에서의 대체 표시용 이미지로도 사용할 수 있다.

3. 3. 압축 및 최적화

APNG는 프레임 간 최적화[14], 알파 블렌드 및 알파 디스포즈 연산, 전체 크기보다 작은 서브 프레임, 지저분한 투명도, 색상 유형 및 색상 팔레트 최적화, zlib, 7-Zip, Zopfli 등 다양한 압축 옵션을 활용하여 파일 크기를 최대한 작게 만든다.[15]

4. GIF와의 비교

APNG는 GIF와 비교하여 다음과 같은 장단점을 갖는다.

장점단점



풀 컬러 지원으로 인해 프레임마다 개별 팔레트(로컬 팔레트)를 갖는 개념이 폐지되고 공통 팔레트(글로벌 팔레트)만 남게 되었다.

5. 응용 프로그램 지원

APNG는 다양한 이미지 처리 프로그램과 웹 브라우저에서 지원되거나, 플러그인을 통해 지원을 추가할 수 있다.

어도비 포토샵에서는 지원되지 않지만, 김프와 페인트 닷 넷은 플러그인을 통해 APNG를 지원한다. cphktool APNG Anime Maker, 파이어알파카, ImageJ 등의 프로그램도 APNG 형식을 지원한다. IrfanViewXnView는 읽기 전용으로 APNG 파일을 열 수 있다.[34][42]

웹 브라우저의 경우, 인터넷 익스플로러에서는 지원되지 않지만, 모질라 파이어폭스, 시몽키, 사파리, 오페라, 구글 크롬/크로미움 등 많은 브라우저가 APNG를 지원한다.

모바일 환경에서는 iOS의 사파리 8 이상, 안드로이드파이어폭스크롬 버전 59 이상에서 APNG를 지원하며, 오페라 모바일윈도 모바일에서도 지원된다.

5. 1. 이미지 처리 프로그램

APNG를 지원하는 이미지 처리 프로그램 목록
소프트웨어지원 여부비고
김프APNG 플러그인 필요[34]
cphktool APNG Anime Maker
파이어알파카
ImageJ
IrfanView읽기 전용
XnView읽기 전용
페인트 닷 넷플러그인 필요[42]


5. 2. 웹 브라우저


  • 게코 기반 웹 브라우저
  • * 모질라 파이어폭스: 2007년 3월 23일에 버전 3 트렁크 빌드에 APNG 지원을 추가했고,[17] 2008년 6월 17일에 출시된 버전 3.0부터 지원한다.[49][50]
  • * 시몽키
  • * 아이스위즐 등: 비공식 libpng 변형을 사용하여 APNG를 지원한다.[18]
  • 사파리: 2014년 10월 16일에 출시된 버전 8부터 지원한다.[61]
  • 오페라
  • * 프레스토 엔진 기반: 지원
  • * Blink 엔진 기반: 2017년 6월 22일에 출시된 버전 46부터 지원한다.[56]
  • 구글 크롬/크로미움: 2017년 3월 15일에 크로미움에 APNG 지원이 추가되었고,[21] 버전 59부터 자체 지원한다.[52][53]
  • 마이크로소프트 엣지
  • * Blink 엔진 기반: 2020년 1월 15일에 출시된 버전 79부터 지원한다.
  • 인터넷 익스플로러: 지원되지 않는다.

5. 3. 모바일 환경

6. 파생 형식

시그널의 애니메이션 스티커는 APNG 형식이지만 몇 가지 제한 사항이 있다. 파일 크기는 300KB, 애니메이션 길이는 3초, 해상도는 512x512 픽셀로 제한된다(이 마지막 사항은 불분명함).

참조

[1] 웹사이트 Add APNG support for Mozilla https://bugzilla.moz[...] Mozilla Foundation 2024-04-23
[2] 웹사이트 APNG 0.4 [DRAFT] http://www.vlad1.com[...] Vladimir Vukicevic 2004-09-02
[3] 웹사이트 Bug 18574 - (mng) restore support for MNG animation format and JNG image format https://bugzilla.moz[...] Mozilla 1999-11-11
[4] 웹사이트 PNG (Portable Network Graphics) Specification, Version 1.1#8.4. Multiple-image extension http://www.libpng.or[...] libpng 2010-03-30
[5] 웹사이트 APNG Specification, Version 1.0#MIME type https://wiki.mozilla[...] Mozilla 2017-12-10
[6] 웹사이트 ImageMagick can't detect animated PNG https://github.com/I[...] 2017-12-10
[7] 웹사이트 VOTE FAILED: APNG 20070405a http://sourceforge.n[...] SourceForge 2007-04-20
[8] 웹사이트 Discussion for a simple "animated" PNG format http://gjuyn.xs4all.[...] 2011-07-12
[9] 웹사이트 PNG Third Edition, Explained https://github.com/w[...] 2023-05-24
[10] 웹사이트 PNG Specification (Third Edition), APNG: frame-based animation https://www.w3.org/T[...] 2023-09-21
[11] 웹사이트 APNG Specification - MozillaWiki https://wiki.mozilla[...]
[12] 웹사이트 Chunk Ordering Rules http://www.libpng.or[...]
[13] 웹사이트 Portable Network Graphics (PNG) Specification (Second Edition) http://www.w3.org/TR[...]
[14] 웹사이트 Inter-frame Optimization in APNG http://littlesvr.ca/[...] 2021-10-21
[15] 웹사이트 APNG Assembler http://apngasm.sourc[...] 2021-10-21
[16] 웹사이트 Stickers https://support.sign[...] Signal 2021-12-28
[17] 웹사이트 Gran Paradiso Alpha 3 release notes https://www.mozilla.[...] Mozilla 2007-03-23
[18] 웹사이트 Debian Bug #486827 Iceweasel cannot render APNG image http://bugs.debian.o[...] Debian 2011-08-26
[19] 웹사이트 Digital Audio Broadcasting (DAB); MOT SlideShow; User Application (pdf) Specification http://www.etsi.org/[...] ETSI 2013-01-30
[20] 웹사이트 Messaging - Extensions - iOS Human Interface Guidelines https://developer.ap[...] Apple, Inc. 2016-10-12
[21] 웹사이트 Anzwix / Chromium / Add support for Animated PNG http://anzwix.com/a/[...] 2017-03-15
[22] 웹사이트 APNG Assembler https://sourceforge.[...] 2017-11-15
[23] 웹사이트 cphktool APNG Anime Maker http://sites.google.[...] cphktool 2010-06-28
[24] 웹사이트 APNG Disassembler http://apngdis.sourc[...]
[25] 웹사이트 APNG Optimizer https://sourceforge.[...]
[26] 웹사이트 Online Help for Chasys Draw IES: File Formats - Other Image Files https://www.jpchacha[...]
[27] 웹사이트 Online Help for Chasys Draw IES: History https://www.jpchacha[...] 2022-07-18
[28] 웹사이트 CLIP STUDIO PAINT Version 1.6.7 release notes (9/7/2017) https://www.clipstud[...] 2024-04-22
[29] 웹사이트 FFmpeg Formats Documentation https://www.ffmpeg.o[...]
[30] 웹사이트 GitHub changelog of FFmpeg https://github.com/F[...] 2016-07-09
[31] 웹사이트 FireAlpaca Update History https://firealpaca.c[...] 2021-09-04
[32] 웹사이트 Animated PNG: Simple Animation with an Alpha Channel http://www.gamani.co[...] Gamani 2009-08-25
[33] 웹사이트 GID (Generic Image Decoder) https://github.com/z[...] 2023-12-09
[34] 웹사이트 APNG Plug-In http://registry.gimp[...] 2010-05-28
[35] 웹사이트 Honeycam - Version history https://www.bandisof[...] Bandisoft International Inc. 2022-01-09
[36] 웹사이트 Honeyview - Version history https://www.bandisof[...] Bandisoft International Inc. 2022-01-09
[37] 웹사이트 ImageJ News http://rsb.info.nih.[...] ImageJ 2009-05-23
[38] 웹사이트 ImageMagick - Changelog https://imagemagick.[...] 2021-04-25
[39] 웹사이트 Imagine - What's new http://nyam.pe.kr/de[...] 2017-09-01
[40] 웹사이트 Konvertor - Solutions for Multimedia Processing https://web.archive.[...] 2010-05-19
[41] 웹사이트 KSquirrel Codecs ChangeLog https://github.com/s[...] 2021-10-15
[42] 웹사이트 Animated Image 2.4 - AGIF & APNG http://forums.getpai[...] 2009-01-10
[43] 웹사이트 More about animated PNG - Vlasta's blog http://www.rw-design[...]
[44] 웹사이트 SourceForge.net: VirtualDub APNG Mod https://vdubapngmod.[...]
[45] 문서
[46] 웹사이트 APNG export support https://bugs.kde.org[...] 2021-08-16
[47] 웹사이트 APNG and WEBP animation export (dbe993da) · Commits · Graphics / Krita https://invent.kde.o[...] 2021-08-16
[48] 웹사이트 Animated PNG graphics http://trac.webkit.o[...] WebKit 2015-03-17
[49] 웹사이트 Animated PNG graphics https://web.archive.[...] Mozilla 2009-05-23
[50] 웹사이트 Firefox 3 for developers https://web.archive.[...] Mozilla 2009-05-23
[51] 웹사이트 Animated PNG (APNG) http://caniuse.com/#[...]
[52] 웹사이트 7d2b8c45afc9c0230410011293cc2e1dbb8943a7 - chromium/src - Git at Google https://chromium.goo[...]
[53] 뉴스 Stable Channel Update for Desktop https://chromereleas[...] 2017-06-06
[54] 웹사이트 The status of APNG image format in Microsoft Edge https://developer.mi[...] 2017-07-29
[55] 웹사이트 Web specifications supported in Opera 9.5 https://web.archive.[...] Opera Software 2009-05-23
[56] 웹사이트 Opera 46 goes final, more quality and Opera's first TV ad http://blogs.opera.c[...] Opera Software 2017-06-26
[57] 웹사이트 Projects selected for LibreOffice in the Google Summer of Code 2023: Add APNG import/export support https://blog.documen[...] LibreOffice 2023-05-29
[58] 웹사이트 APNG-canvas Library https://github.com/d[...] 2021-10-11
[59] 문서
[60] 웹사이트 VOTE FAILED: APNG 20070405a http://sourceforge.n[...] SourceForge 2017-03-31
[61] 문서
[62] 웹사이트 Anzwix / Chromium / Add support for Animated PNG http://anzwix.com/a/[...] 2017-03-18
[63] 문서
[64] 문서
[65] 웹인용 Bug 18574 - (mng) restore support for MNG animation format and JNG image format https://bugzilla.moz[...] Mozilla 2010-03-30



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com