이미지파일 확장자별 특성 정리
BMP
윈도 비트맵(Windows bitmap) 또는 .BMP는 마이크로소프트 윈도에서 기본지원되는 그래픽 파일포맷이다. 1~24비트의 컬러를 표현할 수 있고, 알파채널을 포함한 32비트 포맷이 윈도 XP에서 발표되었다. 일반적으로 데이터를 압축하지 않고 사용되지만, RLE 압축 방식도 지원한다.
GIF
GIF(Graphics Interchange Format)는 비트맵 그래픽 파일 포맷이다. 1987년 컴퓨서브에 의해 발표되었으며, 월드 와이드 웹에서 가장 널리 쓰이는 파일 포맷이기도 하다.
최대 256 색까지 저장할 수 있는 비손실 압축 형식이다. GIF에 쓰인 LZW 알고리즘에 대한 특허를 유니시스 사가 가지고 있다는 것이 알려지고, 또한 256 색의 제한에 한계를 느끼면서 PNG라는 새로운 표준이 개발되었다.
GIF는 지프(/dʒɪf/)나 기프(/gɪf/)로 읽는다. GIF 포맷의 저자는 지프 식으로 읽는다고 밝혔으나, 기프라는 발음도 계속 쓰이고 있다.
유니시스와 LZW 특허
GIF에 사용되는 LZW 알고리즘은 유니시스 사에 미국 특허 4,558,302로 등록되어 있다. 컴퓨서브가 처음 GIF 포맷을 공개했을 때는 LZW 알고리즘에 특허가 있는 줄 몰랐다. 1994년 12월, 유니시스는 이 특허에 대해 특허료를 받는다고 공고했다. 1999년 8월에는 무료 소프트웨어와 그 사용자에게도 특허료를 받는다고 하여 많은 반발을 불러일으켰다.
2003년 6월 20일, LZW 알고리즘에 대한 유니시스의 특허가 만료되었으며, 유럽, 일본, 캐나다에서의 특허는 2004년 6월 18일, 6월 20일, 7월 7일 차례대로 만료되었다.
IBM 역시 LZW 알고리즘에 대한 특허를 가지고 있으나 이 특허에 대한 권리를 주장하지는 않았다. 자유 소프트웨어 재단에 따르면 미국에서의 특허는 2006년 8월 11일 만료된다고 한다.
PNG
PNG(Portable Network Graphics)는 비손실 그래픽 파일 포맷의 하나이다. 특허 문제가 얽힌 GIF 포맷의 문제를 해결하고 개선하기 위해서 고안되었다. PNG는 공식적으로는 "핑"(/pɪŋ/)라고 읽지만, 대부분은 "피엔지"라고 영어 철자대로 읽는다.
파일 확장자는 PNG 또는 png를 쓰며, MIME 타입은 image/png으로 적는다.
역사
PNG 포맷을 만들게 된 배경은 1995년, 유니시스 사가 GIF에 사용되는 LZW 데이터 압축 알고리즘에 대해 소프트웨어 특허를 적용할 것이라고 공고하면서이다. 이 알고리즘은 미국 특허 4,558,302번으로 등록되어 있고, 다른 여러 나라에도 등록되어 있다. 또한 256 색만을 저장할 수 있는 GIF의 한계는 컴퓨터의 성능이 좋아지면서 문제가 되고 있었다. 1999년 8월, 유니시스가 자유 소프트웨어와 비상업 소프트웨어에 대한 무료 특허 정책을 거둬들이면서 PNG는 인기를 끌기 시작했다.
* 버전 1.0: 1996년 7월 1일 발표되었고, W3C에서도 1996년 10월 1일 표준으로 지정했다.
* 버전 1.1: 1998년 12월 31일
* 버전 1.2: 1999년 8월 11일
* PNG는 국제 표준(ISO/IEC 15948:2003)과 W3C 표준으로 2003년 11월 10일 발표되었다. 이 버전은 1.2판과 사소한 차이만이 있다.
GIF와의 비교
* 대부분의 경우 PNG는 GIF보다 더 압축률이 좋다.
* GIF의 단색 투명층과 달리 8비트 알파채널을 이용한 투명층을 지원한다.
* 256 색을 지원하는 GIF와 달리 트루컬러를 지원한다.
* GIF에서는 제공되는 애니메이션을 PNG는 지원하는 않는다. (대안으로 PNG에 기반한 APNG, JNG, MNG 등의 파일 포맷이 제안되었다.)
파일 크기
PNG가 GIF보다 최신의 압축 알고리즘을 사용하지만, GIF보다 더 큰 파일을 만든다고 알고 있는 사람이 있다. 이런 원인에는 몇가지 이유가 있는데,
* GIF는 256색만을 지원한다. 트루컬러 그림을 PNG로 압축할 때는 원본의 색을 다 저장하는 반면, GIF로 저장할 때는 256 색으로 색 수를 줄인 후에 저장한다. 만약 원본도 256색만을 사용한다면 이런 차이는 나오지 않는다.
* PNG 파일 포맷에는 메타데이터가 추가로 붙어있는 경우가 있다. (매크로미디어 사의 파이어웍스 등).
* 어도비 포토샵의 일부 구버젼의 경우 PNG 압축 알고리즘의 구현이 좋지 않아 큰 파일을 만들곤 한다.
PNG 파일의 크기를 줄이는 OptiPNG나 pngcrush와 같은 오픈 소스로 MS-DOS에서 유닉스나 리눅스 등의 다양한 환경에 대해 제공되고 있다.
JPEG과의 비교
왼쪽의 JPEG 파일에 비해 오른쪽의 PNG 파일이 훨씬 더 깔끔하다.
왼쪽의 JPEG 파일에 비해 오른쪽의 PNG 파일이 훨씬 더 깔끔하다.
손실 압축 알고리즘을 사용하는 JPEG이 PNG에 비해 더 작은 파일을 만든다. 경우에 따라 5-10배 차이를 보이기도 한다. 하지만 JPEG 압축은 양자화의 영향으로 원하지 않는 잡음이 낄 수 있다. 문자나 날카로운 경계가 있는 그림의 경우 PNG가 더 나은 대안일 경우도 있다.
또한 PNG는 비손실 압축이므로, 추후에 편집을 해야 한다면 PNG로 저장해놓는 것이 유리하다. JPEG을 사용하면 저장을 반복할때마다 계속 손실이 누적될 수 있다.
APNG
APNG(Animated Portable Network Graphics)는 PNG를 확장한 이미지 파일 포맷으로, Stuart Parmenter와 Vladimir Vukicevic가 제안했다. 이 포맷은 GIF와 비슷한 방법으로 애니메이션을 구현하면서 기존 PNG 파일과의 하위 호환성을 유지했기 때문에 GIF보다 더 높은 품질을 보여 준다. PNG 기반의 애니메이션 파일 포맷으로 MNG도 있지만, APNG는 MNG보다 구현이 간단하고 호환성이 유지된다는 장점이 있다.
APNG 파일의 첫 프레임은 일반적인 PNG 스트림으로 저장되기 때문에, APNG를 해석할 수 없는 기존 PNG 디코더들도 APNG 파일의 첫 프레임을 보여 줄 수 있다. 나머지 프레임들과 애니메이션 정보들은 별도의 스트림으로 저장된다.
2006년 현재 libpng를 사용한 APNG 구현이 있지만, 대부분의 이미지 라이브러리, 뷰어, 편집기에서 APNG를 지원하지 않기 때문에 아직 대중적으로 사용되지는 않고 있다.
JPEG
JPEG(Joint Photographic Experts Group, 제이펙)은 정지 화상을 위해서 만들어진 손실 압축 방법 표준이다. 이 표준은 ISO와 ITU-T에서 제정하였다. JPEG를 사용하는 파일 형식들도 보통 JPEG 이미지라 불리며, .jpg, .jpeg, .jpe 등의 확장자를 사용한다.
JPEG 표준은 이미지가 어떻게 바이트 스트림으로 바뀌는 지만을 규정한다. 독립 JPEG 그룹(Independent JPEG Group; IJG)에서 만든 JPEG의 확장인 JFIF(JPEG File Interchange Format)는 JPEG 스트림을 저장과 전송에 적합한 형태로 담는 이미지 파일 형식이다. 디지털 카메라의 사진 저장 방식으로는 다른 확장인 EXIF JPEG 형식이 더 자주 사용된다. 일반적으로 JPEG 파일이라고 할 때는 JFIF 형식이거나 EXIF JPEG 형식을 가리키지만, JNG와 같은 JPEG 기반의 다른 파일 형식도 존재한다.
JPEG/JFIF는 웹 상에서 사진 등의 화상을 보관하고 전송하는 데 가장 널리 사용되는 파일 형식이다. 하지만 이 압축 방법은 문자, 선, 세밀한 격자 등 고주파 성분이 많은 이미지의 변환에서는 GIF나 PNG에 비해 불리하며, 나쁜 품질을 보이는 경우가 많다. JPEG 표준에도 비손실 압축 방법이 정의되어 있지만 특허 문제와 압축률 등의 이유로 잘 사용되지는 않으며, PNG 등의 비손실 압축을 지원하는 포맷을 많이 사용한다.
* 1 압축과정 실례
o 1.1 색공간 변환
o 1.2 크로마 서브샘플링
o 1.3 이산 코사인 변환
o 1.4 양자화
o 1.5 엔트로피 부호화
* 2 규격서
* 3 같이 보기
압축과정 실례
JPEG 표준 안에는 많은 선택사항들이 있지만, 그 중 대부분은 거의 사용되지 않는다. 아래 설명은 픽셀당 24비트 (빨강, 초록, 파랑 각 8비트씩)의 색상정보를 가진 데이터를 변환하는 일반적인 방법에 대한 간단한 설명이다. 아래 설명한 방식에선 손실 압축 방식을 사용한다.
색공간 변환
우선 각 픽셀의 RGB 데이터를 YCbCr이라는 다른 색공간 데이터로 변환한다. 이 색공간은 NTSC나 PAL 방식의 컬러 텔레비전 전송에 쓰에는 색공간과 유사하다. Y 성분은 픽셀의 루마(luma, 비디오 분야에서 휘도를 나타내는 값의 일종으로, 비디오 분야에서 정의된 luminance와 구분된다) 정보를 가지고 있으며, Cb와 Cr성분은 색차 정보(chroma components)를 가지고 있다. 사람의 눈이 색상 성분보다 휘도 성분에 더 민감하기 때문에 색상 정보를 더 많이 압축하기 위해서 YCbCr 색공간으로 변환한다. 색공간 변환 시 제한된 정밀도 (채널당 8 비트) 때문에 정보가 완전히 보전되지 않는다. 따라서 뒤에서 양자화를 전혀하지 않더라도 원본과 완전히 일치하지 않는다. 즉, JPEG 저장시 화질을 100%으로 하더라도 원본과 차이가 있게 된다.
크로마 서브샘플링
때때로 Cb와 Cr 성분의 수를 줄인다. (이를 "다운샘플링", 혹은 "크로마 서브샘플링"이라 한다.) 이어지는 설명은 각 성분에 대한 것으로, 성분별로 같은 절차가 진행된다.
이산 코사인 변환
전체 화상은 8×8 픽셀의 크기를 갖는 섹션으로 나뉘어지고 각 8×8 섹션의 각 성분 데이터는 이차원 이산 코사인 변환(DCT)을 이용하여 주파수 공간으로 변환된다.
양자화
다음 단계: 양자화(퀀타이제이션). 사람의 눈은 명도에 대해 비교적 넓은 영역에서 작은 차이를 구분할 수 있다. 그러나 고주파의 명도 변화에서는 그 구별능력이 떨어진다. 이 사실에 근거하여 고주파 성분의 정보의 많은 부분은 버릴 수 있다. 이런 작업은 주파수 영역의 각 성분에 대해 특정 상수로 나누고 정수 몫만을 취함으로써 수행된다. 이 작업이 전체 압축 과정에서 가장 손실이 큰 부분이다. 이 방법으로 고주파 성분들은 거의 0이나 0이 근접한 양수, 혹은 음수가 된다. (여기서 말하는 주파수는 전자기파의 주파수를 말하는 것이 아니라, 데이터를 격자상에 늘어 놓았을 때의 공간적인 변화를 말하는 것이 주의.)
엔트로피 부호화
마지막 단계: 엔트로피 부호화 (이 과정은 비손실 압축 방식이다.) 8×8 격자의 성분들을 저주파부터 지그재그로 일렬로 세운 뒤. 반복된 0에만 RLE를 적용하고, 그 결과들에 대해 허프만 부호화를 한다. 표준은 허프만 부호화 대신에 더 압축률이 좋은 산술 부호화도 가능하다고 기술하지만 산술 코딩은 인코딩, 디코딩시의 지연, 경제성 등의 이유로 잘 쓰이지 않는다.
압축을 푸는 디코딩 과정은 위 과정을 거꾸로 하면 가능하다.
규격서
규격은 합동 그룹에서 만들어졌기 때문에, ISO와 ITU-T 양측에서 나오고 있다.
* ITU-T권고 T.81
* JIS X 4301
* ISO/IEC 10918-1:1994
JPEG 2000
JPEG 2000은 웨이블릿 변환에 기초한 래스터 이미지 압축기술이다. JPEG보다 높은 압축률과 이미지 품질을 얻기 위해 개발되었다. 비손실 압축을 지원하고 한 이미지에 여러 해상도의 이미지를 포함할 수 있다.
JPEG 2000의 일부가 ISO 표준(ISO/IEC 15444-1)으로 발표 되었으나, 2006년 현재 대부분의 웹 브라우저에서 지원되지 않는다.
SVG
SVG(Scalable Vector Graphics)는 2차원 벡터 그래픽을 기술하기 위한 XML 마크업 언어로, W3C가 만든 공개 표준이다.
개발
SVG는 매크로미디어와 마이크로소프트가 VML을 제안을 했지만, 애플 컴퓨터와 썬 마이크로시스템즈가 대응하는 포맷인 PGML을 제안한 이후, W3C에 의해 1988년부터 개발되기 시작했다.
* 2001년 9월 4일 - SVG 1.0 권고
* 2003년 1월 14일 - SVG 1.1 권고
* 2003년 1월 14일 - SVG Tiny와 SVG Basic이 W3C에 권고
* SVG 1.2는 현재 초안이 나와 있는 상태이다.
특징
* XML로 기술하기 때문에 웹 브라우저상에서 열람가능하고 텍스트 편집기등에서 편집가능하다.
* 하이퍼링크를 이미지에 걸거나, 자바스크립트등과 연동시킬 수도 있다.
* 벡터 그래픽이므로 확대나 축소를 해도 이미지의 변화는 발생하지 않는다.
지원
* 인터넷 익스플로러를 위한 플러그인이 어도비 사에서 나와 있다.
* 오페라는 8.0beta3부터 SVG 1.1 Tiny를 지원한다.
* 모질라 파이어폭스(1.5 beta 1 이후)는 SVG 1.1의 지원을 위한 기능을 개발중이다. 지원 상태 참고
EPS
EPS(Encapsulated PostScript)는 포스트스크립트언어에서 사용되는 그래픽 파일 포맷이다. 바이너리와 ASCII 방식으로 저장될 수 있으며, 미리보기 이미지를 포함할 수 있다. 손실률이 낮고, 용량이 적어서, 전자출판에서 널리 사용되는 그래픽 파일 형식이기도 하다.
OpenEXR
OpenEXR은 ILM에서 개발한 HDR 이미지 포맷이다. 자유 소프트웨어 라이센스로 공개되었다. 채널당 16비트 이상의 컬러를 사용할 수 있으며, 비손실 압축 기법을 지원한다. 2003년 발표되었고, 주로 영화업계에서 사용되고 있다.
PCX
PCX는 Z소프트에서 개발한 그래픽 파일 포맷이다. Z소프트가 개발한 도스기반의 페인트브러시 프로그램에서 사용하기 위하여 만들어졌다. RLE 압축을 사용하며, 기본적으로 인덱스컬러를 사용하지만 트루컬러로도 확장 가능하다. 초기 도스환경에서 인기가 많은 포맷이었으나 PNG, GIF, JPEG와 같은 더 나은 성능의 포맷에 밀려 최근에는 거의 사용되지 않는다.
PDF
PDF(Portable Document Format, 이동 가능한 문서 형식)는 어도비에서 개발한 전자 문서 형식이다. 사용환경에 구애받지 않고 동일한 결과물을 보여주기 위해 개발되었다. PDF로 작성된 문서는 문자, 도형, 그림, 글꼴을 포함할 수 있고, 장치 독립성 및 해상도 독립성을 가진다.
특징
문서 형식이나 제작 기술에 독점적인 기술이 사용되지 않았다. 그리고 문서 형식이 공개되어 어도비에서 개발한 일러스트레이터, 포토샵, In-Design 뿐 아니라 다양한 상용 프로그램 및 자유 프로그램에서 PDF를 지원하고 있다.
대부분의 문서가 표현 가능하고, 암호화 및 압축 기술을 통해 내용의 변조가 어려우며, 사용권을 다양하게 부여할 수 있다는 점, 그리고 다양한 프로그램에서 지원 가능하다는 점이 여타 다른 문서 형식과 비교될 수 있는 장점이다.
관련 정보
어도비에서는 PDF를 읽을 수 있는 Adobe Reader 프로그램을 홈페이지를 통해서 무상으로 제공한다. 이를 통해서 마이크로소프트 윈도우즈, 맥 오에스, 리눅스, 팜 OS나 윈도 CE를 사용하는 PDA 등에서 읽는 것이 가능하다. 어도비사에서는 PDF 제작을 위한 Adobe Acrobat이라는 별도의 프로그램 역시 판매하고 있다.
그 외에도 다음과 같은 프로그램들을 PDF를 읽거나 또는 읽고 쓰는데 사용할 수 있다.
* PDF-Pro - 개인용 무료 PDF 제작 프로그램
* CutePDF – 광고를 출력하지 않는 무료 PDF 변환기
* Doc2pdf – 전자 우편 로봇에 의한 변환.
* Go2PDF – 프리웨어 가상 프린터 드라이버..
* GNOME PDF 뷰어
* iText – 자바 PDF 변환기
* gnujpdf – 자바 PDF 변환기
* PJX PDF 프로그래밍을 위한 자바 패키지
* libharu – C/C++ 변환기.
* OpenOffice.org – PDF 형식으로 문서를 출력할 수 있음.
* OttoPDF
* Panda library
* PDFCreator – 마이크로소프트 윈도용 GPL PDF 프린터 드라이버.
* PDF/X-3
* sharpPDF – C# PDF 라이브러리.
* Xpdf – PDF 뷰어.
* PDFTOHTML – PDF 대 HTML 변환기.
* WikiPDF – 미디어위키 글 PDF 변환기.
* POM - PDF 파일을 합지는 오픈소스 자바 도구.
* Evince - 그놈을 위한 여러 문서 형식을 지원하는 문서 뷰어
* KPDF - KDE를 위한 xpdf 기반의 PDF 뷰어
TGA
TGA는 트루비전사의 타가보드를 위하여 개발된 그래픽 파일 포맷이다. 정식 명칭은 트루비전 TGA이며 .tga의 확장자를 사용한다. 1~32비트 컬러까지 저장 가능하며, 손실없는 RLE 압축방식을 지원한다. 1989년 업데이트 이후 변화가 없었지만 3D 그래픽 분야에서는 여전히 사용되고 있다.
TIFF
TIFF (Tagged Image File Format)는 앨더스(Aldus)사와 마이크로소프트사가 공동 개발한 이미지 저장 포맷이다. 사용자가 고쳐서 쓸 수 있는 유연함이 특징이다. 1980년대 스캐너 제조사들이 일반적인 파일 형식을 사용하기 위하여 개발되었다. 컴퓨터와 스캐너의 성능이 점차 향상되자 TIFF의 스펙도 그레이스케일과 컬러이미지를 지원하도록 발전하였다.
출처: 위키백과 - 분류: 그래픽 파일 포멧
BMP
윈도 비트맵(Windows bitmap) 또는 .BMP는 마이크로소프트 윈도에서 기본지원되는 그래픽 파일포맷이다. 1~24비트의 컬러를 표현할 수 있고, 알파채널을 포함한 32비트 포맷이 윈도 XP에서 발표되었다. 일반적으로 데이터를 압축하지 않고 사용되지만, RLE 압축 방식도 지원한다.
GIF
GIF(Graphics Interchange Format)는 비트맵 그래픽 파일 포맷이다. 1987년 컴퓨서브에 의해 발표되었으며, 월드 와이드 웹에서 가장 널리 쓰이는 파일 포맷이기도 하다.
최대 256 색까지 저장할 수 있는 비손실 압축 형식이다. GIF에 쓰인 LZW 알고리즘에 대한 특허를 유니시스 사가 가지고 있다는 것이 알려지고, 또한 256 색의 제한에 한계를 느끼면서 PNG라는 새로운 표준이 개발되었다.
GIF는 지프(/dʒɪf/)나 기프(/gɪf/)로 읽는다. GIF 포맷의 저자는 지프 식으로 읽는다고 밝혔으나, 기프라는 발음도 계속 쓰이고 있다.
유니시스와 LZW 특허
GIF에 사용되는 LZW 알고리즘은 유니시스 사에 미국 특허 4,558,302로 등록되어 있다. 컴퓨서브가 처음 GIF 포맷을 공개했을 때는 LZW 알고리즘에 특허가 있는 줄 몰랐다. 1994년 12월, 유니시스는 이 특허에 대해 특허료를 받는다고 공고했다. 1999년 8월에는 무료 소프트웨어와 그 사용자에게도 특허료를 받는다고 하여 많은 반발을 불러일으켰다.
2003년 6월 20일, LZW 알고리즘에 대한 유니시스의 특허가 만료되었으며, 유럽, 일본, 캐나다에서의 특허는 2004년 6월 18일, 6월 20일, 7월 7일 차례대로 만료되었다.
IBM 역시 LZW 알고리즘에 대한 특허를 가지고 있으나 이 특허에 대한 권리를 주장하지는 않았다. 자유 소프트웨어 재단에 따르면 미국에서의 특허는 2006년 8월 11일 만료된다고 한다.
PNG
PNG(Portable Network Graphics)는 비손실 그래픽 파일 포맷의 하나이다. 특허 문제가 얽힌 GIF 포맷의 문제를 해결하고 개선하기 위해서 고안되었다. PNG는 공식적으로는 "핑"(/pɪŋ/)라고 읽지만, 대부분은 "피엔지"라고 영어 철자대로 읽는다.
파일 확장자는 PNG 또는 png를 쓰며, MIME 타입은 image/png으로 적는다.
역사
PNG 포맷을 만들게 된 배경은 1995년, 유니시스 사가 GIF에 사용되는 LZW 데이터 압축 알고리즘에 대해 소프트웨어 특허를 적용할 것이라고 공고하면서이다. 이 알고리즘은 미국 특허 4,558,302번으로 등록되어 있고, 다른 여러 나라에도 등록되어 있다. 또한 256 색만을 저장할 수 있는 GIF의 한계는 컴퓨터의 성능이 좋아지면서 문제가 되고 있었다. 1999년 8월, 유니시스가 자유 소프트웨어와 비상업 소프트웨어에 대한 무료 특허 정책을 거둬들이면서 PNG는 인기를 끌기 시작했다.
* 버전 1.0: 1996년 7월 1일 발표되었고, W3C에서도 1996년 10월 1일 표준으로 지정했다.
* 버전 1.1: 1998년 12월 31일
* 버전 1.2: 1999년 8월 11일
* PNG는 국제 표준(ISO/IEC 15948:2003)과 W3C 표준으로 2003년 11월 10일 발표되었다. 이 버전은 1.2판과 사소한 차이만이 있다.
GIF와의 비교
* 대부분의 경우 PNG는 GIF보다 더 압축률이 좋다.
* GIF의 단색 투명층과 달리 8비트 알파채널을 이용한 투명층을 지원한다.
* 256 색을 지원하는 GIF와 달리 트루컬러를 지원한다.
* GIF에서는 제공되는 애니메이션을 PNG는 지원하는 않는다. (대안으로 PNG에 기반한 APNG, JNG, MNG 등의 파일 포맷이 제안되었다.)
파일 크기
PNG가 GIF보다 최신의 압축 알고리즘을 사용하지만, GIF보다 더 큰 파일을 만든다고 알고 있는 사람이 있다. 이런 원인에는 몇가지 이유가 있는데,
* GIF는 256색만을 지원한다. 트루컬러 그림을 PNG로 압축할 때는 원본의 색을 다 저장하는 반면, GIF로 저장할 때는 256 색으로 색 수를 줄인 후에 저장한다. 만약 원본도 256색만을 사용한다면 이런 차이는 나오지 않는다.
* PNG 파일 포맷에는 메타데이터가 추가로 붙어있는 경우가 있다. (매크로미디어 사의 파이어웍스 등).
* 어도비 포토샵의 일부 구버젼의 경우 PNG 압축 알고리즘의 구현이 좋지 않아 큰 파일을 만들곤 한다.
PNG 파일의 크기를 줄이는 OptiPNG나 pngcrush와 같은 오픈 소스로 MS-DOS에서 유닉스나 리눅스 등의 다양한 환경에 대해 제공되고 있다.
JPEG과의 비교
왼쪽의 JPEG 파일에 비해 오른쪽의 PNG 파일이 훨씬 더 깔끔하다.
왼쪽의 JPEG 파일에 비해 오른쪽의 PNG 파일이 훨씬 더 깔끔하다.
손실 압축 알고리즘을 사용하는 JPEG이 PNG에 비해 더 작은 파일을 만든다. 경우에 따라 5-10배 차이를 보이기도 한다. 하지만 JPEG 압축은 양자화의 영향으로 원하지 않는 잡음이 낄 수 있다. 문자나 날카로운 경계가 있는 그림의 경우 PNG가 더 나은 대안일 경우도 있다.
또한 PNG는 비손실 압축이므로, 추후에 편집을 해야 한다면 PNG로 저장해놓는 것이 유리하다. JPEG을 사용하면 저장을 반복할때마다 계속 손실이 누적될 수 있다.
APNG
APNG(Animated Portable Network Graphics)는 PNG를 확장한 이미지 파일 포맷으로, Stuart Parmenter와 Vladimir Vukicevic가 제안했다. 이 포맷은 GIF와 비슷한 방법으로 애니메이션을 구현하면서 기존 PNG 파일과의 하위 호환성을 유지했기 때문에 GIF보다 더 높은 품질을 보여 준다. PNG 기반의 애니메이션 파일 포맷으로 MNG도 있지만, APNG는 MNG보다 구현이 간단하고 호환성이 유지된다는 장점이 있다.
APNG 파일의 첫 프레임은 일반적인 PNG 스트림으로 저장되기 때문에, APNG를 해석할 수 없는 기존 PNG 디코더들도 APNG 파일의 첫 프레임을 보여 줄 수 있다. 나머지 프레임들과 애니메이션 정보들은 별도의 스트림으로 저장된다.
2006년 현재 libpng를 사용한 APNG 구현이 있지만, 대부분의 이미지 라이브러리, 뷰어, 편집기에서 APNG를 지원하지 않기 때문에 아직 대중적으로 사용되지는 않고 있다.
JPEG
JPEG(Joint Photographic Experts Group, 제이펙)은 정지 화상을 위해서 만들어진 손실 압축 방법 표준이다. 이 표준은 ISO와 ITU-T에서 제정하였다. JPEG를 사용하는 파일 형식들도 보통 JPEG 이미지라 불리며, .jpg, .jpeg, .jpe 등의 확장자를 사용한다.
JPEG 표준은 이미지가 어떻게 바이트 스트림으로 바뀌는 지만을 규정한다. 독립 JPEG 그룹(Independent JPEG Group; IJG)에서 만든 JPEG의 확장인 JFIF(JPEG File Interchange Format)는 JPEG 스트림을 저장과 전송에 적합한 형태로 담는 이미지 파일 형식이다. 디지털 카메라의 사진 저장 방식으로는 다른 확장인 EXIF JPEG 형식이 더 자주 사용된다. 일반적으로 JPEG 파일이라고 할 때는 JFIF 형식이거나 EXIF JPEG 형식을 가리키지만, JNG와 같은 JPEG 기반의 다른 파일 형식도 존재한다.
JPEG/JFIF는 웹 상에서 사진 등의 화상을 보관하고 전송하는 데 가장 널리 사용되는 파일 형식이다. 하지만 이 압축 방법은 문자, 선, 세밀한 격자 등 고주파 성분이 많은 이미지의 변환에서는 GIF나 PNG에 비해 불리하며, 나쁜 품질을 보이는 경우가 많다. JPEG 표준에도 비손실 압축 방법이 정의되어 있지만 특허 문제와 압축률 등의 이유로 잘 사용되지는 않으며, PNG 등의 비손실 압축을 지원하는 포맷을 많이 사용한다.
* 1 압축과정 실례
o 1.1 색공간 변환
o 1.2 크로마 서브샘플링
o 1.3 이산 코사인 변환
o 1.4 양자화
o 1.5 엔트로피 부호화
* 2 규격서
* 3 같이 보기
압축과정 실례
JPEG 표준 안에는 많은 선택사항들이 있지만, 그 중 대부분은 거의 사용되지 않는다. 아래 설명은 픽셀당 24비트 (빨강, 초록, 파랑 각 8비트씩)의 색상정보를 가진 데이터를 변환하는 일반적인 방법에 대한 간단한 설명이다. 아래 설명한 방식에선 손실 압축 방식을 사용한다.
색공간 변환
우선 각 픽셀의 RGB 데이터를 YCbCr이라는 다른 색공간 데이터로 변환한다. 이 색공간은 NTSC나 PAL 방식의 컬러 텔레비전 전송에 쓰에는 색공간과 유사하다. Y 성분은 픽셀의 루마(luma, 비디오 분야에서 휘도를 나타내는 값의 일종으로, 비디오 분야에서 정의된 luminance와 구분된다) 정보를 가지고 있으며, Cb와 Cr성분은 색차 정보(chroma components)를 가지고 있다. 사람의 눈이 색상 성분보다 휘도 성분에 더 민감하기 때문에 색상 정보를 더 많이 압축하기 위해서 YCbCr 색공간으로 변환한다. 색공간 변환 시 제한된 정밀도 (채널당 8 비트) 때문에 정보가 완전히 보전되지 않는다. 따라서 뒤에서 양자화를 전혀하지 않더라도 원본과 완전히 일치하지 않는다. 즉, JPEG 저장시 화질을 100%으로 하더라도 원본과 차이가 있게 된다.
크로마 서브샘플링
때때로 Cb와 Cr 성분의 수를 줄인다. (이를 "다운샘플링", 혹은 "크로마 서브샘플링"이라 한다.) 이어지는 설명은 각 성분에 대한 것으로, 성분별로 같은 절차가 진행된다.
이산 코사인 변환
전체 화상은 8×8 픽셀의 크기를 갖는 섹션으로 나뉘어지고 각 8×8 섹션의 각 성분 데이터는 이차원 이산 코사인 변환(DCT)을 이용하여 주파수 공간으로 변환된다.
양자화
다음 단계: 양자화(퀀타이제이션). 사람의 눈은 명도에 대해 비교적 넓은 영역에서 작은 차이를 구분할 수 있다. 그러나 고주파의 명도 변화에서는 그 구별능력이 떨어진다. 이 사실에 근거하여 고주파 성분의 정보의 많은 부분은 버릴 수 있다. 이런 작업은 주파수 영역의 각 성분에 대해 특정 상수로 나누고 정수 몫만을 취함으로써 수행된다. 이 작업이 전체 압축 과정에서 가장 손실이 큰 부분이다. 이 방법으로 고주파 성분들은 거의 0이나 0이 근접한 양수, 혹은 음수가 된다. (여기서 말하는 주파수는 전자기파의 주파수를 말하는 것이 아니라, 데이터를 격자상에 늘어 놓았을 때의 공간적인 변화를 말하는 것이 주의.)
엔트로피 부호화
마지막 단계: 엔트로피 부호화 (이 과정은 비손실 압축 방식이다.) 8×8 격자의 성분들을 저주파부터 지그재그로 일렬로 세운 뒤. 반복된 0에만 RLE를 적용하고, 그 결과들에 대해 허프만 부호화를 한다. 표준은 허프만 부호화 대신에 더 압축률이 좋은 산술 부호화도 가능하다고 기술하지만 산술 코딩은 인코딩, 디코딩시의 지연, 경제성 등의 이유로 잘 쓰이지 않는다.
압축을 푸는 디코딩 과정은 위 과정을 거꾸로 하면 가능하다.
규격서
규격은 합동 그룹에서 만들어졌기 때문에, ISO와 ITU-T 양측에서 나오고 있다.
* ITU-T권고 T.81
* JIS X 4301
* ISO/IEC 10918-1:1994
JPEG 2000
JPEG 2000은 웨이블릿 변환에 기초한 래스터 이미지 압축기술이다. JPEG보다 높은 압축률과 이미지 품질을 얻기 위해 개발되었다. 비손실 압축을 지원하고 한 이미지에 여러 해상도의 이미지를 포함할 수 있다.
JPEG 2000의 일부가 ISO 표준(ISO/IEC 15444-1)으로 발표 되었으나, 2006년 현재 대부분의 웹 브라우저에서 지원되지 않는다.
SVG
SVG(Scalable Vector Graphics)는 2차원 벡터 그래픽을 기술하기 위한 XML 마크업 언어로, W3C가 만든 공개 표준이다.
개발
SVG는 매크로미디어와 마이크로소프트가 VML을 제안을 했지만, 애플 컴퓨터와 썬 마이크로시스템즈가 대응하는 포맷인 PGML을 제안한 이후, W3C에 의해 1988년부터 개발되기 시작했다.
* 2001년 9월 4일 - SVG 1.0 권고
* 2003년 1월 14일 - SVG 1.1 권고
* 2003년 1월 14일 - SVG Tiny와 SVG Basic이 W3C에 권고
* SVG 1.2는 현재 초안이 나와 있는 상태이다.
특징
* XML로 기술하기 때문에 웹 브라우저상에서 열람가능하고 텍스트 편집기등에서 편집가능하다.
* 하이퍼링크를 이미지에 걸거나, 자바스크립트등과 연동시킬 수도 있다.
* 벡터 그래픽이므로 확대나 축소를 해도 이미지의 변화는 발생하지 않는다.
지원
* 인터넷 익스플로러를 위한 플러그인이 어도비 사에서 나와 있다.
* 오페라는 8.0beta3부터 SVG 1.1 Tiny를 지원한다.
* 모질라 파이어폭스(1.5 beta 1 이후)는 SVG 1.1의 지원을 위한 기능을 개발중이다. 지원 상태 참고
EPS
EPS(Encapsulated PostScript)는 포스트스크립트언어에서 사용되는 그래픽 파일 포맷이다. 바이너리와 ASCII 방식으로 저장될 수 있으며, 미리보기 이미지를 포함할 수 있다. 손실률이 낮고, 용량이 적어서, 전자출판에서 널리 사용되는 그래픽 파일 형식이기도 하다.
OpenEXR
OpenEXR은 ILM에서 개발한 HDR 이미지 포맷이다. 자유 소프트웨어 라이센스로 공개되었다. 채널당 16비트 이상의 컬러를 사용할 수 있으며, 비손실 압축 기법을 지원한다. 2003년 발표되었고, 주로 영화업계에서 사용되고 있다.
PCX
PCX는 Z소프트에서 개발한 그래픽 파일 포맷이다. Z소프트가 개발한 도스기반의 페인트브러시 프로그램에서 사용하기 위하여 만들어졌다. RLE 압축을 사용하며, 기본적으로 인덱스컬러를 사용하지만 트루컬러로도 확장 가능하다. 초기 도스환경에서 인기가 많은 포맷이었으나 PNG, GIF, JPEG와 같은 더 나은 성능의 포맷에 밀려 최근에는 거의 사용되지 않는다.
PDF(Portable Document Format, 이동 가능한 문서 형식)는 어도비에서 개발한 전자 문서 형식이다. 사용환경에 구애받지 않고 동일한 결과물을 보여주기 위해 개발되었다. PDF로 작성된 문서는 문자, 도형, 그림, 글꼴을 포함할 수 있고, 장치 독립성 및 해상도 독립성을 가진다.
특징
문서 형식이나 제작 기술에 독점적인 기술이 사용되지 않았다. 그리고 문서 형식이 공개되어 어도비에서 개발한 일러스트레이터, 포토샵, In-Design 뿐 아니라 다양한 상용 프로그램 및 자유 프로그램에서 PDF를 지원하고 있다.
대부분의 문서가 표현 가능하고, 암호화 및 압축 기술을 통해 내용의 변조가 어려우며, 사용권을 다양하게 부여할 수 있다는 점, 그리고 다양한 프로그램에서 지원 가능하다는 점이 여타 다른 문서 형식과 비교될 수 있는 장점이다.
관련 정보
어도비에서는 PDF를 읽을 수 있는 Adobe Reader 프로그램을 홈페이지를 통해서 무상으로 제공한다. 이를 통해서 마이크로소프트 윈도우즈, 맥 오에스, 리눅스, 팜 OS나 윈도 CE를 사용하는 PDA 등에서 읽는 것이 가능하다. 어도비사에서는 PDF 제작을 위한 Adobe Acrobat이라는 별도의 프로그램 역시 판매하고 있다.
그 외에도 다음과 같은 프로그램들을 PDF를 읽거나 또는 읽고 쓰는데 사용할 수 있다.
* PDF-Pro - 개인용 무료 PDF 제작 프로그램
* CutePDF – 광고를 출력하지 않는 무료 PDF 변환기
* Doc2pdf – 전자 우편 로봇에 의한 변환.
* Go2PDF – 프리웨어 가상 프린터 드라이버..
* GNOME PDF 뷰어
* iText – 자바 PDF 변환기
* gnujpdf – 자바 PDF 변환기
* PJX PDF 프로그래밍을 위한 자바 패키지
* libharu – C/C++ 변환기.
* OpenOffice.org – PDF 형식으로 문서를 출력할 수 있음.
* OttoPDF
* Panda library
* PDFCreator – 마이크로소프트 윈도용 GPL PDF 프린터 드라이버.
* PDF/X-3
* sharpPDF – C# PDF 라이브러리.
* Xpdf – PDF 뷰어.
* PDFTOHTML – PDF 대 HTML 변환기.
* WikiPDF – 미디어위키 글 PDF 변환기.
* POM - PDF 파일을 합지는 오픈소스 자바 도구.
* Evince - 그놈을 위한 여러 문서 형식을 지원하는 문서 뷰어
* KPDF - KDE를 위한 xpdf 기반의 PDF 뷰어
TGA
TGA는 트루비전사의 타가보드를 위하여 개발된 그래픽 파일 포맷이다. 정식 명칭은 트루비전 TGA이며 .tga의 확장자를 사용한다. 1~32비트 컬러까지 저장 가능하며, 손실없는 RLE 압축방식을 지원한다. 1989년 업데이트 이후 변화가 없었지만 3D 그래픽 분야에서는 여전히 사용되고 있다.
TIFF
TIFF (Tagged Image File Format)는 앨더스(Aldus)사와 마이크로소프트사가 공동 개발한 이미지 저장 포맷이다. 사용자가 고쳐서 쓸 수 있는 유연함이 특징이다. 1980년대 스캐너 제조사들이 일반적인 파일 형식을 사용하기 위하여 개발되었다. 컴퓨터와 스캐너의 성능이 점차 향상되자 TIFF의 스펙도 그레이스케일과 컬러이미지를 지원하도록 발전하였다.
출처: 위키백과 - 분류: 그래픽 파일 포멧
'자료 #02: 목록, 표' 카테고리의 다른 글
한글 2010 단축키 (1) | 2011.04.14 |
---|---|
자음입력 + 한자버튼으로 나오는 특수문자 (7) | 2008.07.09 |
삼각함수표 (0) | 2008.05.10 |
RPG에 등장하는 몬스터 정리 (0) | 2007.11.29 |
영어에서 알파벳의 사용 빈도는 어떠한가? (1) | 2007.10.28 |
가장 흔한 영어단어는 무엇인가? (0) | 2007.10.28 |
XML의 글자 엔티티 (0) | 2007.10.26 |
경찰 계급, 역할 (0) | 2007.10.01 |
군인 계급 (7) | 2007.09.30 |
한글 자모 순서 (0) | 2007.09.09 |