사용자 도구

사이트 도구


용어:adx

ADX (코덱)

개요

CRI ADX 로고 ADX(에이디엑스)는 세가새턴(Sega Saturn, セガサターン)에서 ADPCM이 지원되지 않는 문제를 해결하고 압축 음원을 사용해 메모리 점유를 낮추기 위해서 CRI세가 (SEGA)가 협력해서 제작한 사운드 코덱 및 파일 컨테이너 규격이다. 첫 버전은 1997년 개발되었으며, 세가새턴(Sega Saturn, セガサターン)그란디아에 첫 도입된 이래로 여러 게임에 사용되어 왔다.

현재도 판매되는 코덱으로, 상용코덱이기 때문에 기술이나 인코더, 디코더 소스는 공개되어있지 않다. ADPCM 및 MP3 등과 같은 손실 압축 규격으로 이뤄져 있으나 압축에서 손실되는 데이터를 줄일 수 있도록 알고리즘을 개량하여 다른 유사한 역할을 하는 음원압축을 담당하는 코덱(예를 들면 ADPCM 등)에 비해서 효율을 높이고 손실을 줄인 포맷이다. 대체로 10~25% 수준의 용량으로 압축하는 것이 가능하다.

단순 파형음원 파일에서는 지원하지 않는 파일의 구간 반복(Loop) 기능을 지원해 기본적으로 BGM을 MIDI에 의존하지 않고 CD에서 읽어들여 재생하면서도 원하는 형태로 재생하고 반복할 수 있게 바뀌었다. 또한 다중 스트리밍 기능을 지원해 CD원음이나 PCM음원을 사용하거나, 반대로 음성을 CD에서 재생해야 했던 PC엔진 (PC-Engine)이나 메가시디 (MEGA-CD, メガCD) 세대와 달리 음악을 재생하면서 음성을 재생한다거나 하는 기능도 가능하게 바뀌었다. 플레이스테이션1은 CD-ROM XA방식을 통해 이러한 기능을 처음부터 지원했었으나, ADX는 압축률과 음질, 안정성 면에서 좀 더 진일보한 면을 가지고 있었다.

세가새턴의 버닝 레인저 등의 게임에 적용 되었으며, 세가의 후속기종인 드림캐스트(Dreamcast)에서는 거의 기본 미들웨어처럼 사용되었다.

세대가 바뀌어 CD가 미디어가 아니게 된 DVD 게임기시대에 들어서는 플레이스테이션2에서도 CD-XA기능을 대신할 별도 솔루션을 필요로 하게되었는데, 세가의 게임기 사업 정리와 맞물려서 사운드 관련 솔루션으로 많은 각광을 받으며 다양한 기기에 이식되어 많은 업체들이 폭넓은 플랫폼에서 사용하는 미들웨어로 자리 잡았다. 1000개가 넘는 게임에서 채용되어 사용되었으며, 많은 사용량만큼이나 안정성이나 활용방향이 확고하게 인정받고 있어 사운드용 미들웨어로서는 앞으로도 한동안 가장 각광받을 것으로 예상된다.

사용하는 게임 소프트웨어는 게임 기동시 CRI ADX 로고를 표시해야 하는 의무사항이 있었으나, 2006년 11월 1일을 기준으로 로고 표시 의무가 사라지고 엔딩 스탭롤에만 표시해도 되도록 의무가 완화되었다.

ADX 기본

멀티 스트리밍 구조도

ADX는 세가새턴 용으로 등장, 버닝 레인저, 그란디아 등의 게임에 적용되며 이름을 알리기 시작한 이래로, 세가의 PC용 게임 발매에 발맞추어 PC로 이식, 뒤이어 드림캐스트(Dreamcast), 플레이스테이션2, 게임큐브, 엑스박스 (XBOX), NDS, 플레이스테이션 포터블(Playstation Portable), 엑스박스360, 플레이스테이션3 (Playstation3), Wii 등의 다양한 플랫폼으로 이식되면서 수많은 업체들이 사용하는 포맷이 되었다.

ADX는 22050 Hz, 44100 Hz, 48000 Hz 및 기타 주파수로 다중 샘플링을 지원한다. 하지만 정확성을 확보하기 위해 샘플링 비트는 16비트로 고정되어있다. 또한 멀티 채널을 지원하여 모노(1채널), 스테레오(2채널) 뿐만 아니라 최대 255 채널까지의 다중 채널로 데이터를 출력할 수 있다. 이를 통해 5.1채널 사운드나 3D 사운드 포맷을 지원할 수 있다.

기능상으로는 현재에 이르러서는 OGG 등에서도 이미 다 구현된 사항들이 대부분이지만, MP3포맷 보다도 훨씬 높은 CPU 점유율을 차지하는 OGG가 PC 시장 이외에서 제대로 자리잡지 못하는 것과 달리 ADX는 다양한 플랫폼에서 폭넓게 사용되고 있다.

널리 사용되는 포맷인만큼 PC에서 재생을 위한 다양한 툴이 제공되고 있는데, 윈앰프용 디코더 플러그인이나 각종 변환 툴이 공개되어있다. 또한 오픈소스 코덱인 FFmpeg 프로젝트에서도 ADX 디코딩을 지원하고 있으나, 단순 디코딩만 지원하도록 된 이후 진척이 없는 상태여서 44100 Hz의 ADX 포맷만을 재생할 수 있다.

특성

멀티 플랫폼

세가새턴을 시작으로 다양한 기종으로 이식이 되면서 한 번 작성한 파일을 다양한 플랫폼으로 이식할 때 거의 대부분 그대로 사용할 수 있다는 점이 큰 장점이다. 특히 현용기가 아닌 세가새턴을 제외하고는 모든 기기가 ADX를 지원하는데 큰 무리가 없기 때문에 멀티 플랫폼을 지원할 경우 번거로운 작업을 최소화 할 수 있다는 장점을 가지고 있다.

낮은 CPU 점유율

ADX의 가장 강력한 점은 낮은 CPU 점유율이다. 애초에 태생이 새턴에서 ADPCM 재생을 위해서 탄생된 포맷이기 때문에 무려 68000프로세서에서 디코딩하는 것이 가능할 정도로 낮은 CPU 점유율을 자랑한다. 또한 작업 시작이나 디코딩 도중의 변수에 따른 CPU 점유율 변동이 적어 게임에서 특히나 적합하게 구성되어있다.

특히 이러한 기능은 각 기기의 특성에 맞춰 프로그래밍을 함으로서 더욱 특화가 이뤄져 게임 개발에 있어서 부가적인 부분에 신경을 쓰지 않도록 도와주는 특성이 있다. 예를 들어 플레이스테이션3에서는 사운드 처리를 위해 배치되어있는 1개의 SPU에서 단순 출력이 아니라 ADX규격의 압축 음원을 처리할 수 있도록 디코더를 개발함으로서 사운드 모듈용으로 배치된 SPU만을 활용해 음악과 효과음의 압축된 음원을 디코딩하여 재생할 수 있도록 하는 등의 배려다.

멀티채널

위에서 설명했듯 ADX는 멀티채널로 2~255채널을 지원한다.

이 때문에 DVD무비에서만 5.1채널을 지원하고 게임 내에서는 다중 채널의 사운드를 지원하지 않는 플레이스테이션2에서 5.1채널 등의 사운드 재생을 위해서 ADX를 채용하는 게임이 적잖이 존재했다. (플레이스테이션2 기본 제공 라이브러리로는 게임 내에서 2채널 사운드만 사용가능)

멀티 스트리밍과 트랙

멀티 트랙을 통한 자유로운 볼륨조절

CD원음으로는 로딩 타임 및 에러 문제로 배타적인 실행만 가능했던 사운드 재생과 데이터 로딩을 스트리밍 형태로 병행시켜 실행해 동시에 여러 음원 및 별도의 데이터를 로딩하는 것이 가능하게 한다. 이를 통해서 광디스크 상에서 사운드 출력과 함께 데이터를 로딩할 수 있게 한다. 특히 이 기능은 CD배속이 느렸던 세가새턴에서 절대적으로 도움이 되는 기능이었으며, 후속기종인 드림캐스트에서도 로딩 감소 및 게임 진행 중 로딩과 배경음악을 동시에 해결하는 등 많은 빛을 발한 기능이다.

또한 이 기능을 활용해서 다수의 음원을 끊어지지 않게 연결해서 재생하는 것이 가능해지기 때문에, 다양한 경우의 수를 일일이 풀 패턴으로 녹음하지 않고서 파일별 조합을 통해서 게임 속의 대사를 자연스럽게 읽어줄 수 있게 되는 등 다양한 활용을 가능하게 했다.

또한 하나의 파일 속에 여러 트랙을 동시에 수록하여 동시 재생, 혹은 일부 재생, 각자 볼륨 조정을 하는 등의 조절을 통해서 사운드를 통한 자유로운 연출을 가능하게 한다. 이를 이용해서 배경음악과 음성을 동시에 재생하거나 할 때, 혹은 다국어 음성을 녹음해 특정 국가의 음성을 재생하려 할 때, 연출적으로 배경음악이 흐르는 중에 배경음악의 볼륨을 줄이고 음성 볼륨을 키워 대화에 집중시키거나 하는 등의 연출이 가능해진다.

참고로 이 기능은 DVD의 멀티 스트리밍 및 멀티 트랙과 거의 유사한 형태를 보이는 것을 확인할 수 있다. ADX 자체가 세가새턴에서 소프트웨어MPEG 동영상 코덱인 Sofdec (소프덱)을 만드면서 개발된 기술 중 하나이기 때문이다. 상세한 사항은 Sofdec (소프덱) 항목을 참고하자.

인덱싱과 반복

루프 기능을 통해 MIDI를 대체한다

파일 내부에 목차(Index)를 만들어 파일의 특정 위치에서부터 재생한다거나, 원하는 구간을 반복 재생하는 등의 부가 기능을 지원한다. 이러한 기능은 3D그래픽에서 텍스쳐맵핑을 한 덩어리로 만들어 쪼개 사용하는 것처럼 사용되는 효과음이나 배경음악을 하나로 합쳐서 로딩한 후 원하는 부분을 자유롭게 골라서 재생하는 것을 가능하게 해준다.

특히 반복(Loop)기능은 특정 악기음이나 미리 연주된 악곡을 조합해서 원하는 음악을 마치 MIDI처럼 재생하는 것이 가능케 해준다. 달리 말하면 내장음원을 구축하기 위해 일일이 사운드폰트(뱅크)를 구성해 MIDI파일을 재생할 필요없이 미리 녹음된 음악을 파트별로 목록화 시켜 필요할 때 해당 파트를 스트리밍으로 로딩해 재생하는 방식이 가능해지게 되었다는 이야기이다.

새턴 시절 썬더포스 골드팩1의 배경음악이 스테이지 길이보다 짧을 때 디스크 트랙을 루프하기 위해 잠시 끊기던 것을 따로 그렇게 루프하도록 관리할 필요없이 간단한 스크립트로 제어할 수 있다는 이야기가 된다.

게임기용 게임 개발에 있어서 가장 크게 신경쓰이는 부분 중 하나인 배경음악 구성과 관련된 작업을 획기적으로 간단히 해결할 수 있는 방식이다.

포맷 종류 및 확장자

ADX 규격은 통칭으로, ADX 규격과 AHX라는 규격으로 분류된다. ADX는 CRI에서 만든 독자 규격으로, ADPCM을 기반으로 만들어진 손실 압축규격이며, AHX는 소프트웨어 MPEG 디코더인 Sofdec (소프덱)에서 사용하기 위해서 만들어진 MPEG-2 기반의 오디오 압축 포맷이다. (초창기에는 MPEG-1 기반이었으나 드림캐스트로 올라가면서 MPEG-2기반으로 업데이트되어 MPEG-1과 2를 모두 지원하게 되었다)

ADX

앞서 설명한 ADX 코덱의 기본 압축 포맷이자 컨테이너로서, 컨테이너 확장자는 .ADX이다. 이 경우에는 단독 스트리밍 파일을 지칭하는 경우가 많다.

비교적 고음질 압축방식에 속하며, AHX에 비해서 낮은 압축률을 보이지만 음질 면에 있어서는 더 우수한 결과를 보여주는 것이 특징이다. 기본적으로 ADPCM 방식을 개량한 형태를 띄고 있다. 인덱싱을 지원하며 상기에 기록된 각종 기능을 지원한다.

AHX

CRI의 Sofdec 코덱에서 MPEG 규격의 포맷을 재생하기 위해서 만든 압축 규격. MPEG-2 기반의 오디오 포맷으로, 기본적으로 일반 MPEG-2 오디오와 호환된다.

이 방식으로 압축된 음원과 일반 MPEG 오디오의 차이점은 오디오가 AHX 방식으로 묶여있다는 점 뿐이다. Demux를 거치면 일반 MPEG 오디오로 변환되기 때문에 일반 MPEG 디코더로도 재생이 가능하다.

때문에 이 규격은 사실상 ADX 규격이 아니라 MPEG 오디오에 속하며, 때문에 ADX의 특징인 인덱싱이 되지 않아 기본적으로 반복(Loop) 기능이 지원되지 않는다.

그리고 달리 말하면 AHX 디코딩 기능을 통해서 MP3 등의 MPEG 오디오를 재생할 수도 있다는 의미이기도 하다.

게임 등에서는 음성이나, 동영상 등에 들어가는 단일 스트리밍으로 사용되는 경우가 많다.

AFS

ADX 포맷의 음원 뿐만 아니라 그림이나 스크립트, 프로그램 파일 등 모든 파일을 스트리밍으로 로딩할 때 묶어주는 컨테이너 파일. 확장자는 .AFS

즉 게임의 로딩을 병렬로 로딩하는 기능을 추가하는데 별도의 패키징 기능을 염두에 두지 않아도 해결할 수 있도록 도와주는 기능이다. 즉 AFS로 묶어만 주면 알아서 인덱싱을 해서 파일을 완성시켜 주므로 다수의 파일을 병렬로 로딩하는 부분에 관련된 별도의 프로그래밍을 해줄 필요가 없어진다.

ACX

ADX 음원 파일을 스트리밍 형태로 저장하기 위한 컨테이너 파일. 확장자는 .ACS로 이뤄져 있다. 다수의 음원파일을 링크해서 하나의 파일로 묶어 인덱싱을 해서 목록을 가진 파일로 구성한다.

앞서 설명했듯 다수의 음원을 일렬로 연결해서 스트리밍 형태로 읽어와서, 동시에 재생할 수 있다.

기본적으로 ADX를 스트리밍 가능한 비트레이트로 맞춰서 인코딩하고 인덱스와 함께 저장한 포맷이라고 생각하면 된다.

AIX

ADX 음원을 여러개 묶어서 사용하는 멀티 스트림 컨테이너다. ACX의 멀티스트림 버전으로 생각하면 적합하며, 확장자는 .AIX.

다수의 트랙을 가지고 있는 ACX 파일로 생각하면 적당하다. 스트리밍이나 기타 기능은 동일하게 지원한다.

SFA

CRI의 비디오코덱인 Sofdec (소프덱)에서 사용하는 음원파일. ADX파일을 비디오파일과 동기화해 재생하기 위한 정보를 포함하고 있는 포맷이다.

ADX2 코덱

CRI WARE 통합 로고. ADX와 SOFDEC을 포함한 통합 솔루션

ADX의 제한적이던 샘플링레이트와 출력 비트 문제를 해결하고, 좀 더 폭넓은 활용 범위를 위한 솔루션을 포함하면서, 동시에 광디스크가 아닌 하드디스크 및 플래쉬 메모리를 베이스로 하는 매체에서 활용하기 좋은 다중 스트리밍 재생 기능의 강화를 요지로 한다. HCA라는 신규 포맷을 지원하여 이전세대에 ADXAHX로 분리되어있던 포맷을 하나로 묶은 것이 가장 큰 특징으로, 이전 세대에서 지원하던 기능을 모두 포함하면서 게임에 특화된 사운드 재생 및 조합을 자유로이 할 수 있는 기능을 강화했다. 특히 제작된 사운드를 게임 등에서 랜덤 변형하는 솔루션 등을 포함하고 있어 개발자 입장에서는 일일이 랜덤 사운드를 렌더링하는 수고를 덜 수 있는 등 다양한 면에서 게임 개발을 서포트하고 있다.

2010년 말 개발이 완료되어 2011년 3월부터 적용된 게임이 나오기 시작했다. 첫 타이틀은 ‘슬로터 초 매니아-안토니오 이노키가 열심히하는 파치슬로’(…).

  • 지원 기종 : PSP, XBOX360, PS3, Wii, 3DS, PSV, PC
    (NDS의 경우 Sofdec1과 ADX2병용으로 지원예정. 아이폰, 아이패드, 안드로이드 플랫폼 지원예정)

특성

기본 기능 강화

기본적으로는 ADX1의 특성을 계승하면서 여러 부분을 개선한 코덱이다. 사운드 코덱의 압축 효율을 높였으며, 로딩 시간 감소를 위해 저장매체(하드디스크, 플래쉬 메모리 등)에 버퍼링을 하는 기능을 추가했다.

또한 AFS 파일로 패키징 시 이전에는 그저 패키징을 하는 방식이었으나, ADX2에서는 패키징을 하면서 압축을 실시하기 때문에 용량이 감소해 로딩 시간 단축 등의 기능이 자동으로 적용되었다. 압축된 데이터는 로딩하면서 실시간으로 압축이 해제되어 프로그램 기동에는 별다른 지장이 없게 된다. 이러한 방식을 통해 특히 미디어 로딩 속도가 느린 PSP 등에서는 로딩시간 감소 효과도 기대할 수 있게 되었다.

지원 플랫폼 확대

모바일 장비의 지원을 더욱 강화해다. 이를 통해 안드로이드 플랫폼과 아이폰, 아이패드 등의 iOS 기반 플랫폼이 추가되었으며, 2011년에는 3DS플레이스테이션 비타(Playstation VITA)가 추가되었다.

특히 3DS와 PSP2의 발빠른 플랫폼 추가는 이전 세대의 게임을 만들던 개발사가 이전 프로젝트에서 사용한 자원을 재활용하거나 신규 개발에 필요한 자원을 만드는데 유용한 미들웨어로서 사용할 수 있게 함으로서 개발 편의성을 높이는데 일조를 했다.

플래쉬 미디어 특화

마이크로 스트리밍

이전세대의 ADX가 기본적으로 새턴에서 발생하여 광학 디스크의 미디어에서 로딩하는 방식에 특화된 방식이었다면, ADX2는 플래쉬 디스크나 롬 등의 휴대용 장비에서 점차 그 영역을 넓혀가는 반도체 기반의 미디어로딩에 상당부분 특화가 이뤄졌다.

휴대용 게임기 게임의 경우 용량적인 원인으로 대부분 배경음악을 내장음원을 통한 MIDI 재생이 중심이 된다. 이 경우 음악 재생을 위해서 MIDI 음원의 소리를 묶어놓은 사운드폰트(뱅크)를 로딩해서 메모리에 상주시켜야 할 필요가 있는데, ADX는 이러한 사운드폰트를 단일 형태의 스트리밍 파일로 구성, 아예 메모리에 로딩하지 않고 BGM을 연주할 때 단락 단위로 해석, 해당 단락을 연주하는데 필요한 사운드폰트를 그 때 그 때 스트리밍으로 로딩하는 ‘마이크로 스트리밍’이라는 형태로 재생하는 기능을 지원하게 바뀌었다.

이는 탐색시간(Seeking time)이 거의 0에 가까운 플래쉬 및 롬 미디어의 특성을 적극 활용한 것으로, 이 기능을 활용하면 NDS 같은 기기에서는 16화음을 사용하는데 256KB만으로 모든 음원을 재생할 수 있게 된다고 홍보하고 있다.

또한 이러한 방식을 사용하면 당연히 별도로 메모리에 올려야 하는 사운드폰트의 제약이 사라지기 때문에 ADX2 패키지에서 제공하는 6만개의 사운드 폰트를 자유롭게 선택해서 사용하는 것이 가능해진다.

이는 NDS 뿐만 아니라 PSP나 PS3 등의 보조 저장매체에 인스톨 기능을 가진 장비라면 모두 동일하게 적용이 가능한 부분이 된다. 이러한 방식을 사용할 경우 최근 압축된 스트리밍 음원 파일을 재생하는 것에 비해서 용량과 로딩시간이 감소하며, 소모되는 CPU의 점유율 또한 크게 감소시키는 것이 가능해진다.

AISAC

개발 툴의 일종으로, ‘거리에 따라 소리가 작아지는 효과’나 ‘발소리의 임의적 표현’, 혹은 ‘경기의 흐름에 따라 변하는 경기장의 함성소리’ 등의 상호반응적인 사운드를 간단하게 만들어낼 수 있는 툴이다. 각종 모듈을 제공하며 개발자가 마우스 만으로 원하는 효과음을 생성하는데 큰 도움을 줄 수 있는 다양한 기능을 제공한다.

또한 이렇게 만들어진 효과음이 실제 타겟머신에서 어떻게 출력되는지를 실시간으로 렌더링해서 확인해볼 수 있는 기능을 지원한다. 지정된 프로필로 작업한 데이터를 바로바로 테스트함으로서 작업 결과물이 실제 어떻게 출력될지를 확인해볼 수 있다.

음향 처리

CRI측에서는 ‘랜더마이즈(Randomize)‘라고 부르는 기능을 통해 볼륨, 피치를 조절하거나 메아리 효과 등의 각종 필터를 입히는 등의 출력 음향에 영향을 주는 추가적 처리를 간단한 파라미터 조절만으로 적용할 수 있는 기능을 제공한다.

이러한 내용이 디코딩 단에서 한번에 이뤄지도록 만들어져 있기 때문에 CPU의 점유율은 특별히 추가하지 않고 각종 사운드 이펙트를 실시간으로 추가해서 원하는 사운드를 만들어 출력하는 것이 가능하다는 이야기이다.

또한 ‘어댑티브 뮤직 시스템(Adaptive Music system)‘이라는 기능을 통해 스트리밍으로 읽어오는 트랙을 제어해 음악의 키 높이, 템포, 음정 등을 실시간으로 변경하는 기능을 제공한다. 1)

포맷 종류

ADX2는 기본적으로 ADX1 규격에서 지원하던 ADX 포맷과 AHX 포맷 등을 동일하게 지원한다. 거기에 추가로 HCA라는 신규 통합 규격의 포맷을 지원하고 있다.

HCA

새로 추가된 HCA(High Compression Audio) 포맷은 이전세대의 ADX를 개량한 새로운 압축 규격으로, 고음질 압축 모드(스테레오 BGM의 경우 96 ~ 256kbps)에서 비슷한 수준의 압축률을 가진 코덱들(MP3, AAC, OGG 등)에 비해서 현저히 낮은 CPU 처리량을 필요로 하는 것이 특징이다.

기본적으로는 AHX와 ADX의 개량형이기 때문에 ADX의 코덱 특성을 그대로 이어 받아 재생 시작시나 진행 중에 CPU의 부하가 돌발적으로 변하는 일이 거의 없다. 때문에 게임에 적용하기 적합하며, 아키텍쳐의 추세에 맞춰 개량한 새로운 압축 알고리즘 ‘HCA-MX’를 통해서 거치형의 높은 사양에서는 수백개의 음향을, 휴대용 게임기에서도 수십 개의 소리를 동시에 재생하면서도 일반적으로 같은 숫자의 음원을 재생하는 방식보다 가벼운 부하를 소모하는 것이 특징이다.

전 세대의 ADX가 음질이 좋으나 용량이 크고, AHX가 용량은 작으나 음질이 좋지 않았던 문제를 해결하기 위한 통합 코덱에 가까운 포맷으로, 기본적으로는 고효율의 압축에 해당해 AHX의 후속으로 보이지만 사실상 ADX의 특성을 더 많이 따라간 통합 코덱에 가깝다.

구글 네이티브 클라이언트 데모

구글 크롬의 16버전부터 구글 네이티브 클라이언트 기능이 지원되면서 이를 이용한 데모 소프트웨어를 제공하고 있다. 단순 재생 기능과 인터랙티브 사운드, 리얼타임 DSP 사운드 처리 기능의 데모를 실행해볼 수 있다. 단 구글 네이티브 클라이언트 특성상 x86 계열의 CPU를 장착한 장비에서만 기동이 된다.

같이 보기

안쪽 고리

바깥 고리

1) 이 기능은 ‘알 토네리코3’에서 이미 사용되었다

 

덧글

용어/adx.txt · 마지막으로 수정됨: 2012/02/17 12:02 저자 에리얼