•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
[[분류:가져온 문서/넥스32 위키]]
[Include(틀:가져옴,O=넥스32 위키, C=[[http://www.gnu.org/licenses/fdl-1.3.html|GNU Free Documentation License 1.3]], L=[[https://web.archive.org/web/20210726194904/https://wiki.nex32.net/%EC%9A%A9%EC%96%B4/adx|링크]])]
ADX의 제한적이던 샘플링레이트와 출력 비트 문제를 해결하고, 좀 더 폭넓은 활용 범위를 위한 솔루션을 포함하면서, 동시에 광디스크가 아닌 하드디스크 및 플래쉬 메모리를 베이스로 하는 매체에서 활용하기 좋은 다중 스트리밍 재생 기능의 강화를 요지로 한다. HCA라는 신규 포맷을 지원하여 이전세대에 ADX와 AHX로 분리되어있던 포맷을 하나로 묶은 것이 가장 큰 특징으로, 이전 세대에서 지원하던 기능을 모두 포함하면서 게임에 특화된 사운드 재생 및 조합을 자유로이 할 수 있는 기능을 강화했다. 특히 제작된 사운드를 게임 등에서 랜덤 변형하는 솔루션 등을 포함하고 있어 개발자 입장에서는 일일이 랜덤 사운드를 렌더링하는 수고를 덜 수 있는 등 다양한 면에서 게임 개발을 서포트하고 있다.

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

* 지원 기종 : PSP, XBOX360, PS3, Wii, 3DS, PSV, PC[br](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)‘이라는 기능을 통해 스트리밍으로 읽어오는 트랙을 제어해 음악의 키 높이, 템포, 음정 등을 실시간으로 변경하는 기능을 제공한다.[* 이 기능은 ‘알 토네리코3’에서 이미 사용되었다.]

== 포맷 종류 ==
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의 특성을 더 많이 따라간 통합 코덱에 가깝다.

== 구글 네이티브 클라이언트 데모 ==
* [[https://www.cri-mw.co.jp/product/tech/2nt4hm000001igso.html|네이티브 클라이언트 데모]]

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