•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

이 문서의 내용 중 전체 또는 일부는 넥스32 위키에서 가져왔으며 GNU Free Documentation License 1.3에 따라 이용할 수 있습니다.
본 문서의 원본은 링크에서 확인할 수 있습니다.


➡️개량 버전에 대해서는 ADX2 문서로

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일을 기준으로 로고 표시 의무가 사라지고 엔딩 스탭롤에만 표시해도 되도록 의무가 완화되었다.

목차

1. ADX 기본
2. 특성
2.1. 멀티 플랫폼
2.2. 낮은 CPU 점유율
2.3. 멀티채널
2.4. 멀티 스트리밍과 트랙
2.5. 인덱싱과 반복
3. 포맷 종류 및 확장자
3.1. ADX
3.2. AHX
3.3. AFS
3.4. ACX
3.5. AIX
3.6. SFA

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 포맷만을 재생할 수 있다.

2. 특성

2.1. 멀티 플랫폼

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

2.2. 낮은 CPU 점유율

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

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

2.3. 멀티채널

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

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

2.4. 멀티 스트리밍과 트랙

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

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

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

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

2.5. 인덱싱과 반복

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

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

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

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

3. 포맷 종류 및 확장자

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

3.1. ADX

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

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

3.2. AHX

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

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

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

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

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

3.3. AFS

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

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

3.4. ACX

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

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

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

3.5. AIX

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

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

3.6. SFA

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