국제테크노정보연구소 기술자료 출판부


      JPEG,TIFF,DIB(BMP),GIF,PNG,WAVE,MP3 구조와 응용
     
디지털 영상과 사운드 규격 해설

본서는 최근의 인터넷 보급과 함께 그 중요성을 더하고 있는 PC와 멀티미디어 기기에 관련된 다양한 데이터 포맷 규격을 실무 개발자 입장에서 해설하고 있다. 전반에는 JPEG, TIFF, DIB(BMP), GIF, PNG 등의 화상 데이터와, 후반에는 WAVE, MP3 등의 음성관련 사운드 데이터에 대해 소개한다. 지금은 동영상과 사운드를 통합한 MPEG, AVI, WMV, ASP 등의 동영상 포맷도 매우 중요하지만, 대량의 페이지를 할당하여 해설해야 하는 관계로 별도로 다루기로 했다.

■ 디지털 이미지 포맷

디지털 화상 포맷은, 크게 나누어 라스터 그래픽스(이른바 비트맵 화상)와 벡터 그래픽스로 나눌 수 있다. 일반적인 화상 포맷에서는 이 라스터 그래픽스가 가장 많이 사용되고 있다. 본서에서 채택한 JPEG, TIFF, DIB(BMP), GIF, PNG은 모두 이 라스터 그래픽스의 포맷이다. 이들의 포맷은 각각 다르지만, 화상을 비트맵으로 나타내고 있는 것은 공통이다. 또, 이 중에서 PNG은 그래도 근래(90년대 후반)에 만들어진 포맷이지만, 그 외는 모두 80년대 후반에 골격이 만들어진 비교적 오래된 포맷이다.
최초의 버전이 출시된 해는 TIFF가 1986년, GIF가 1987년, DIB가 1990년(Windows 3.0용), JPEG이 1990년(최종 드래프트), 그리고 PNG가 1996년으로 되어 있다. 즉 PNG를 제외하면 모두 80년대 후반에 만들어져 15년 이상에 걸쳐 계속 사용되고 있는 것이다. 대응 어플리케이션도 풍부하게 갖추어져 있다. 또 모두 용도를 한정하지 않는 범용 포맷이며, DIB를 제외하면 모두 멀티플랫폼의 데이터 교환 포맷을 의식하여 만들어졌다. 한편, 벡터 그래픽스는 데이터량이 작고, 확대해도 화상이 거칠어지지 않는 등의 뛰어난 특징을 가지고 있다. 벡터 그래픽스는 주로 DTP의 페이지 기술이나, CAD 데이터 등, 특정 전문분야에서 사용되고 있으며,그 분야에서는 이미 오랜 실적을 가지고 있다. 그러나, 범용의 화상 포맷으로서는 아직 별로 사용되지 않기 때문에, 여기서는 다루지 않기로 했다. 하지만, 근래에는 인터넷상에서 벡터 그래픽스를 취급하기 위한 사양(SVG)의 표준화가 진행되어, 장래적으로는 좀 더 보급될 가능성도 있다. 그 주변 사정에 대해서도 언급한다.

라스터 그래픽스와 데이터 압축

라스터 그래픽스는 화상을 미세하게 분할하여 점의 집합으로서 각 점(도트 또는 픽셀이라 부른다)에 1비트 또는 복수 비트의 정보를 대응시킨 것이다. 점의 집합에 비트의 집합을 사상(매핑)한다는 뜻에서 비트맵이라 부르고 있다. PC의 화면 표시는 이 방식이며, VRAM(그래픽 메모리)에 기입된 1화면분의 비트맵 데이터가 CRT 등의 디스플레이에 표시된다. 텍스트 데이터도, 캐릭터 폰트를 이용하여 비트맵 데이터로 변환되어 VRAM상에서 그래픽 데이터와 합성된다. 게다가, 간단한 형식의 화상 데이터는 이 VRAM에 기입하는 비트맵 데이터를 그대로 파일화한 것이다. 베타 형식 등으로 불린다.
라스터 그래픽스에서는 화상의 분할은 열(세로), 행(가로)의 격자 모양으로 분할하는 것이 보통이다. 화상 전체를 P열, Q행으로 분할했을 경우, 전체의 도트수는 P×Q가 된다. 화상의 물리적 사이즈를 일정하게 하면 분할수가 클수록 1도트의 물리적 사이즈는 작아져, 보다 매끄럽게 세부까지 표현할 수 있다. 따라서, 이 분할수를 해상도라고 부른다.
각 도트가 1비트라면, 표시하거나,표시하지 않는 2치 데이터이므로, 흑백의 2치화상 표시로 된다. 선화(線畵)와 칠하기만의 단순한 화상이나, 문자의 표시에 적합하다. 단, 흑백이라고는 할 수 없지만, 배경색과 전경색의 2색 표시로 하는 것은 가능하다. 또, 각 도트에 N비트(N?2)가 할당되어 있으면, 2N 종류의 색(또는 계조)을 표현할 수 있다. 단순한 화상에서도, 선이나 칠하기에 다양한 색을 사용할 수 있게 된다. 게다가 사진 등의 자연화상을 표현할 수 있게 된다. 비트수(N)가 많을수록 색 가지수를 늘릴 수 있어 표현력이 향상된다.
라스터 그래픽스는 원리가 단순하여 간단하게 처리할 수 있는 것이 장점이지만, 한편으로 데이터량이 커져 버리는 결점이 있다. 예를 들어, VGA 상당의 640×480 도트의 해상도로 풀컬러(도트당 24비트=3바이트)의 화상을 표시한다고 하면, 1화면분은 640×480×3=900K 바이트의 데이터량으로 된다. 근래의 PC 성능에서 보면, 이 정도의 데이터량은 전혀 문제되지 않는 것처럼 생각된다. 그러나, 인터넷 등을 통해서 화상 데이터를 교환한다고 하면, 만일 64k비트/s로 전송한다고 해도,

t=640×480×24/64000=115.2(s)

즉, 2분 미만의 시간이 소요되어 버린다. 1화면의 재기입마다 2분이나 기다려야 하는 것은, 유저에게는 대단한 스트레스가 된다. 그 때문에, 라스터 그래픽스의 화상 포맷에서는 데이터의 압축 기술이 매우 중요하게 된다. 대부분의 화상 포맷은 어떤 데이터 압축 수법을 규격에 도입하고 있다.
JPEG, GIF, PNG에서는 화상 데이터는 반드시 정해진 방법으로 압축, 부호화하여 보존한다. 모두 약 1/2~1/10이라고 하는 높은 압축 효율이 얻어지고 있다. 인터넷상에서 웹사이트에 화상을 표시하기 위한 표준 포맷으로 이 3가지가 채택되고 있다. 특히, JPEG은 시각적으로 눈에 띄지 않는 미세한 정보를 교묘하게 솎아내는 방법을 적용하여, 다른 압축 방식에서는 압축이 어려운 사진 등의 자연화상을 매우 고효율로 압축할 수 있는 것이 특징이다. 그 대신, 한번 압축하면 완전하게는 원래대로 되돌릴 수 없는 비가역 압축(손실 압축)이라 불리는 방식으로 되어 있다. 또한, JPEG의 규격에는 가역 압축(무손실 압축)의 방식도 포함되어 있지만, 실용적으로는 거의 비가역 압축만이 사용되고 있다. DIB(BMP)과 TIFF는 화상 데이터를 압축하여 보존할 수도 있지만, 비압축 그대로 사용되는 경우가 많은 포맷이다. 또 TIFF에서는 복수의 압축 방식이 지원되고 있으며, 그 중에서 용도에 맞추어 선택할 수 있다.

라스터 그래픽스와 벡터 그래픽스의 차이

라스터 그래픽스에는 또 하나 기본적인 결점이 있다. 라스터 그래픽스에서는 화상을 점(도트)의 집합으로 취급한다. 도트의 물리적 사이즈가 충분히 작지 않으면 톱니 모양이 눈에 띄는 화상으로 되어 버린다. 근래의 프린터는 해상도가 충분히 높고, 도트의 물리적 사이즈도 상당히 작기 때문에, 톱니 모양에 신경 쓰이지 않는 깨끗한 화상을 볼 수 있다. 디스플레이의 해상도는 그보다 1자리 정도 떨어지지만, 그저 만족할 수 있는 레벨이라고 해도 좋을 것이다. 그러나, 작은 화상을 확대했을 때는 이야기는 달라진다. 비트맵 화상을 확대 표시하려면, 도트 구성은 그대로 도트 사이즈가 확대되기 때문에 확대하면 할수록 거친 화상(톱니 모양이 눈에 띄는 화상)으로 된다. 한편, 화상을 축소할 때는 도트를 솎아내지 않으면 안되므로 미세한 정보가 없어진다. 그래서, 라스터 그래픽스와는 완전히 다른 화상의 표현 방법으로 벡터 그래픽스가 사용되고 있다.
벡터 그래픽스는 화상을 점의 집합으로 나타내는 대신에, 직선, 원호 등의 기본 도형의 집합으로 나타낸다. 그리고, 각 기본 도형은 직선이라면 (시점, 종점) 또는 (시점, 방향, 길이), 원호라면 (시점, 종점, 중심점) 또는 (시점, 중심점, 중심각)이라는 식으로 파라미터의 조합으로 나타낼 수 있다. 더구나, 단순한 기본 도형뿐만 아니라, 베제 곡선 등의 수식(함수)을 사용하여 곡선을 나타낼 수도 있다. 이들의 데이터는 디스플레이나 프린터에서 직접 표시할 수 없기 때문에, 벡터 그래픽스를 표시할 때는 반드시 최종적으로 비트맵으로 전개하고 나서 표시를 하게 된다.
화상을 점의 집합으로 나타내는 라스터 그래픽스에 비해, 소수의 파라미터만으로 나타낼 수 있으므로, 데이터량은 훨씬 작아진다. 게다가 표시 시스템의 해상도와는 관계없이, 파라미터만을 이용하여 고정밀도로 확대/축소의 조작을 할 수 있다. 확대한 화상을 표시할 때는 표시 시스템의 최대 해상도로 비트맵 전개할 수 있으므로, 톱니 모양이 눈에 띄지 않는 표시가 얻어진다. 이와 같이, 벡터 그래픽스를 사용하면, 라스터 그래픽스가 가진 2가지 결점, 데이터량이 크다는 점과 확대하면 톱니 모양이 눈에 띄는 것을 근본적으로 해소할 수 있다. 단, 벡터 그래픽스는 선화와 칠하기만의 단순한 화상이나 문자의 표시에는 적합하지만, 사진 등과 같은 자연화상에는 기본 도형의 집합으로 나타내기가 곤란한 경우도 있다.
벡터 그래픽스는 뛰어난 특징도 가지고 있지만, 최종적으로 비트맵으로 전개하는 시간이 소요되므로 지금까지 범용의 화상 포맷으로서는 그다지 사용되지 않고, 벡터 그래픽스의 특징을 살릴 수 있는 특정의 용도로 사용되어 왔다. 이전부터 알려져 있는 것으로는 CAD 데이터의 교환 포맷인 DXF(Autodesk사), DTP의 페이지 기술에 사용되는 PostScript(Adobe사) 등이 있다. 또 Macintosh의 표준 화상 포맷인 PICT는 화상 표시 툴의 QuickDraw에 대한 묘화 명령을 파일화한 것으로, 벡터 화상과 비트맵 화상의 양쪽 모두를 취급할 수 있다. 또, 캐릭터 폰트에서도 비트맵 폰트는 확대하면 톱니 모양이 눈에 띄기 때문에, 벡터 그래픽스와 유사한 개념에 의한 아웃라인 폰트(스케러블 폰트)를 사용하게 되었다. 현재 Macintosh나 Windows에서 표준적으로 사용되고 있는 TrueType 폰트는 아웃라인 폰트의 대표적인 것이다.

범용 벡터 그래픽스의 표준화

최근에는 인터넷에서도 데이터량이 적은 벡터 그래픽스를 이용하여 웹사이트의 표시를 고속화하려는 움직임이 있다. 그 대표적인 것으로, PGML(Precision Graphics Markup Language)와 VML(Vector Markup Language), 그들을 통합한 SVG(Scalable Vector Graphics)가 있다. 어느 것이나, 문법적으로는 XML(eXtensible Markup Language) 베이스의 페이지 기술 언어이며, 벡터 그래픽스의 취급은 PostScript을 베이스로 하고 있다. PGML과 VML은 내용적으로는 유사한 것이며, 업계의 주도권 분쟁으로 2가지로 분할된 것이라고 할 수 있을 것이다. PGML은 Adobe사가 중심이 되어 사양이 정해졌으며, Netscape사, Sun Microsystem사 등이 지지하고 있었다. VML는 Autodesk사, HP사, Macromedia사, Microsoft사, Visio사가 공동으로 사양을 정한 것이다.
인터넷 관련 기술을 표준화하고 있는 W3C에서는 PGML과 VML을 비교 검토한 결과, 양자의 특징을 수용한 새로운 사양으로 SVG를 제안했다. 각 메이커도 SVG에 찬동하고 있어, 금후 SVG가 벡터 그래픽스의 중심으로 되어 갈 전망이다. 그러나, SVG은 1999년에 규격안이 공개되었지만, 거의 표준화 작업이 완성되어, 그 보급이 시작되고 있다. 현재로서는 Adobe사에서는 SVG 대응 어플리케이션을 적극적으로 제품화하고 있지만, 타 메이커는 아직 그다지 적극적 이라고는 할 수 없는 것 같다.

■ 디지털 사운드 포맷

동영상이나 음성과 같이 시간적으로 연속된 정보를 디지털화하려면, 우선 정보를 시간적으로 미세하게 분할하여, 각 순간마다 정보의 열로 치환할 필요가 있다. 이것을 샘플링이라고 부른다. 특히 음성의 경우는 원래의 음성이 가지는 주파수 성분을 잃지 않도록 충분히 미세하게 시간을 나눌 필요가 있다. 그렇게 하기 위해서는 적어도 대역폭의 2배 이상의 샘플링레이트가 필요하다. 가장 간단한 형식의 음성 데이터는 각 순간에 있어서 음성신호의 진폭을 샘플링하여 디지털 데이터의 열로 치환하는 것이다. 이 방식을 PCM(Pulse Code Modulation)이라 부르며, 옛날에는 교환기 등의 전화 시스템에 이용하기 위해 연구가 진행되어 왔다. 그후, 하이파이 오디오에도 도입되어, 디지털 녹음기, CD-DA와 같은 디지털 오디오디스크에 사용되고 있다.
PCM 음성은 화상 데이터에 있어서 비트맵 화상에 해당하는 것이라고 할 수 있을 것이다. 비트맵 화상은 화상을 평면적으로 세분화하여 도트의 집합으로 나타내며, 각 도트의 밝기(계조)를 N비트의 디지털값으로 치환한다. PCM 음성은 음성을 시간적으로 세분화하여 샘플링하고, 각 순간의 음성신호 진폭을 N비트의 디지털값으로 치환한다. 그 때문에, PCM 음성도 비트맵 화상과 마찬가지로 데이터량이 매우 크다고 하는 결점을 가지게 된다. 전화 시스템에서는 원래 아날로그 음성의 대역폭이 3.4kHz로 제한되어 있으며, 이것을 커버하기 위해 8kHz(3.4kHz의 2배 보다 약간 위)로 음성신호를 샘플링하고 있다. 진폭 방향의 분해능은 8비트이다. 동영상이나 음성에서는 1초당의 데이터량을 비트레이트(bit/s)로 나타내는데, 전화의 PCM 음성에서는 8k×8=64Kbit/s가 된다. ISDN의 기본 전송 레이트는 이 PCM 음성을 전송할 수 있도록 64Kbit/s로 선택하고 있다.

하이파이 오디오에서는 음악을 일그러짐이 없는 충실한 소리로 재현하기 위해, 적어도 15kHz, 가능하면 20kHz의 대역폭이 필요하다고 한다. 그래서, CD-DA(음악 CD)에서는 44.1kHz(20kHz의 2배 보다 약간 위)로 음성신호를 샘플링하고 있다. 또, 진폭 방향의 분해능도 CD-DA에서는 16비트로 확대되어 있다. 그리고 L, R의 2채널 각각을 같은 레이트로 샘플링하기 때문에, 비트레이트는 44.1k×16×2≒1.4Mbit/s로 커진다. 인터넷에서 리얼타임으로 전송하거나 하드디스크나  CD-ROM 등의 미디어에 축적하려면 데이터량이 커서, 아주 쉽게는 이용할 수 없다. 그래서, PCM 음성을 고효율로 압축하는 방법이 연구되어 왔다. 특히, 청감상으로는 파악하기 어려울 정도로 정보를 교묘하게 솎아냄으로써 높은 압축률을 얻을 방법이 몇 가지 연구되어 있다. 그 대신, 한번 압축하면 완전하게는 원래대로 되돌릴 수 없다. 화상 데이터에 있어서의 JPEG에 상당하는 비가역 압축으로 되어 있다. 그 대표적인 것이 1998년 무렵부터 세계적으로 폭발적인 유행을 보인 MP3(MPEG-1 Audio Layer3)이다. MP3는 CD와 같은 수준의 음질을 유지하면서, 비트레이트를 약 1/11의 128Kbit/s로 압축할 수 있다는 것이다. 단, MP3는 저작권 보호를 위한 적절한 수단이 강구되어 있지 않기 때문에, CD-DA 등, 시판 음악 데이터의 불법 복사에 이용되는 등의 문제점이 계속 지적되어 왔다. 최근에는 한층 고효율 압축이 가능하고, 한편으로는 저작권 보호와 조합한 다양한 방식의 제품화가 시작되고 있다. 그러한 가운데, MP3를 대신하는 차세대의 디팩토 스탠더드가 나올런지는 아직은 전망이 분명하지 않다.
본서에서는 PCM 음성 포맷으로 널리 사용되고 있는 WAVE와 MP3의 규격에 대해 자세하게 해설한다.

기술자료 신청 안내


주요 내용

      가장 널리 사용되는 디지털 영상의 압축/부호화 방식
■ JPEG(Joint Photographic Experts Group)

     정지영상 데이터의 화상 포맷
■ TIFF(Tag Image File Format)

     Windows에서 표준으로 사용되고 있는 화상 포맷
■ BMP/DIB(Device Independent Bitmap)

      컴퓨터간에서 영상파일을 주고받는 화상 교환 포맷
GIF(Graphics Interchange Format)

      네트워크를 통해 주고받는 화상 파일 포맷
PNG(Portable Network Graphics)

      Windows 표준의 디지털 음성 데이터 포맷
■ WAVE(Wave Form Audio)

      디지털 음성 데이터에 사용되는 표준 포맷
MP3(MPEG-1 Audio Layer3)

기술자료 신청 안내


         관련 자료 목록           발간예정 관련 자료         국제테크노정보연구소 기술자료 출판부