CD-DA

Zlzleking (토론 | 기여)님의 2021년 5월 11일 (화) 22:01 판 (→‎역사)
CDDAlogo.svg

CD-DA (Compact Disk Digital Audio)는 CD를 사용하여 음원을 담는 규격이다. CD-DA는 1980년에 발표된 CD의 최초 표준 규격으로서, 이후 정립된 레인보우 북 규격으로는 "레드 북"에 해당한다. 당시 주로 사용되던 LP를 대체하고 디지털 음원을 담기 위해서 설계되었으며 순차 재생을 기본으로 설계되었다.

역사

1948년에 LP가 발표된 이래 음원 시장은 LP와 카세트 테이프와 같은 아날로그 음원 위주로 운영되었다. 하지만 아날로그 매체는 시간이 지나서 열화되거나, 원판과 복제판의 무결성을 보장할 수 없고 재생 중에 지속적으로 손상되는 문제가 있었고 트랜지스터 앰프의 발전 등 오디오 기술의 발달로 인해 규격의 한계를 맞이하게 되었다. 따라서 시간이 지나거나 복제본을 제작할 때 무결성을 유지할 수 있는 새로운 음원 저장 방식이 필요했다.

이에 소니와 필립스는 공동으로 신규 규격을 개발하였고, 1979년에 AES에서 시연하였으며 1980년에 규격을 발표하고 1981년에 상용화하게 되었다. 최초의 CD 음반은 베를린 필하모닉이 연주하고 카라얀이 지휘한 알프스 교향곡이고 ABBA와 같은 대중음악 음반이 CD로 발매됨으로서 활발히 보급되었다.

한국에서는 1986년에 필립스와의 기술 제휴를 통해 SKC가 CD를 생산하기 시작하였으고 세계적으로는 CD가 등장한 후 활발히 LP를 대체하였으나 한국에서는 CD 플레이어와 같은 인프라의 보급 문제와 비싼 음반 가격으로 90년대 초중반이 될때까지 LP와 카세트 테이프 위주로 음반시장이 형성되었으나, 90년대 중반 이후에는 CD로 대체되기 시작하여 2000년대 후반에 이르러서는 카세트 테이프를 대체하였다.

CD는 발표된 이후 소니와 필립스의 특허로 보호되고 있었기 때문에 CD 플레이어 제조사나 음반 제조사는 특허 사용료를 지불해야 했고, 관련한 분쟁도 있었다. 하지만 90년대 말에 이르러서는 상당수의 특허가 만료되었고 2000년대 초중반이 되면 대부분의 특허가 만료되었다.

소니와 필립스는 특허수익의 확보를 위해 이후 포맷인 SACD를 개발하였으나 SACD는 DRM을 위한 각종 제약과 비싼 플레이어와 음반 가격으로 인해 매니아층에만 이용이 한정되는 등 보급에 실패하였다.

기술적 상세

음원

CD-DA는 PCM으로 인코딩된 2채널 스테레오의 44.1khz의 샘플링 레이트를 가진 16비트 음원을 저장한다. 이론상 22.05khz까지의 가청 주파수를 모두 담을 수 있으며, 96db의 다이나믹 레인지를 확보할 수 있다. 이를 비트레이트로 환산하면 1411.2kbps가 되며 CD에서 추출한 음원을 WAV형식으로 저장할 경우 같은 비트레이트를 가진다. 기본적으로 CD는 사람의 가청 주파수와 일반적인 재생 환경을 고려하여 제작되었기 때문에 현대에 구성된 제대로 된 시스템을 통해 재생한 경우 특별한 음질적인 부족함이 없다고 봐도 무방하다.

CD-DA의 기록 구조

CD는 크게 프레임과 서브프레임으로 나눌 수 있다. [1] 우선 가장 큰 단위는 프레임이다. 1프레임은 1/75초 분량의 오디오 데이터가 들어있다. 그리고 데이터 오류를 확인할 수 있는 가장 큰 단위라고 생각해도 무방하다. 한 프레임이 오류를 가지고 있어서 알아볼 수 없으면 1/75초 분량의 데이터를 잃게 되는 것이다. 누가 못으로 CD를 긁었거나 해서 손상이 생겼다면 N개의 1/75초를 잃게 되는 셈이다.

프레임은 우리가 생각하는 그 의미 그대로를 가지고 있다. 동영상을 재생하거나 할 때 타임코드를 보면 대충 몇분 몇초 몇프레임이라고 나와 있는데, 그 프레임과 같은 의미이다. 다만 영화가 24프레임인 반면 음악 CD는 75프레임을 가지고 있다. 그리고 프레임은 여러 서브프레임으로 나누어져 있는데, [2] 1프레임은 98개 서브프레임으로 나눠져 있다. 오디오를 1초 재생하기 위해서는 1176개의 프레임이 필요하다.

서브프레임은 대부분이 헤더와 오류 정정 데이터들로 이루어져 있어 실제 오디오 데이터는 영역의 3분의 1 정도에 불과하다. 한 서브프레임에서 동기화와 기타 정보 표시를 위한 헤더를 제거하고 보면 크게 네 부분으로 나누어지는데 2개의 오디오 데이터 채널과 오류 정정을 위한 P 체크 영역과 Q 체크 영역으로 나눠진다. 오디오 채널 하나는 12바이트로 이루어져 있다. CD는 16비트의 오디오 신호를 저장하므로 12바이트면 6개의 데이터를 기록할 수 있고, 2개의 오디오 채널은 12개의 데이터를 기록할 수 있다. 1초를 재생하기 위해서는 이 데이터가 88200개 필요하다. 그리고 이 24바이트의 오디오 채널은 정확히 24개의 8비트 단위의 것으로 나눠지고 이것 하나는 각각의 심볼이라고 호칭하며 오류정정의 기본 단위이다.

서브프레임은 각 프레임마다 시간순으로 배열되지 않고 알고리즘에 따라 분산되어 배치되어 있다.[3] 분산 저장을 사용하면 CD가 아주 미세하게 손상되었거나, CD 플레이어의 픽업에서 오류가 생겨서 일정 간격의 데이터가 손상되는 '버스트 에러'에 일정 정도 대응할 수 있다. CD 플레이어는 이 프레임을 읽은 다음에 데이터를 읽어서 오류가 있는지를 확인하고 오디오 데이터를 추출해서 시간순으로 배열한 후 조립해서 재생한다.[4]

오디오파일이 흔히 범하는 오류가 CD의 데이터가 분산되어 배치되었다고 해서 시간축상으로 연속된 손상의 가능성을 무시하는 것이 있는데, CD의 모든 영역에 분산되어 배치하는 경우에는 재생을 위해서 CD 영역의 전체를 읽어온 후에 재생해야 하기 때문에 플레이어의 메모리가 터져나갈 것이다. CD의 각종 데이터를 합쳐놓으면 크기가 2GB가 넘어가기 때문에 이걸 메모리에 올린 다음 오디오 데이터를 재구성하는 것은 우선적으로는 메모리 부족을 일으키고, 한번 재생하기 위해서는 CD를 먼저 다 읽어야 하기 때문에 로딩 시간이 압도적으로 길어진다. 따라서 CD의 데이터 분산은 프레임 단위로 이루어진다. 따라서 CD 플레이어는 탐색 시 프레임 단위로 탐색하게 되고 트랙도 프레임 단위로 저장하게 된다. 데이터 분산을 통해 CD는 2.5mm정도의 연속된 손상까지를 대응할 수 있으나, 그 이상의 손상이 발생하게 되면 복구할 수 없는 오류의 발생 확률이 급격히 올라간다.

CD-DA의 데이터 정정

CD의 데이터를 분산해서 저장하고 오류 정정을 위해서 사용되는 CIRC 알고리즘을 채택하였다. CIRC를 해독하는 과정에서는 C1 단계와 C2 단계로 나눠지는데 C1 단계는 각 서브프레임을 해독하는 부분이고 C2 디코더는 프레임을 해독하는 부분이라고 생각해도 무방하다.

CD-DA의 재생에서 각종 시간축상의 오류(지터, 오프셋 등)를 제외하고 보면 C1 오류와 C2 오류로 나눌 수 있다. C1 오류는 서브프레임의 오류이다. 각 서브프레임의 데이터가 손상되어서 읽을 수 없거나, 데이터 검산값이 맞지 않고, 이걸 수학적인 과정을 통해 복구할 수 없으면 C1오류가 일어난다.

C2 단계에서는 서브프레임들을 맞춰서 다시 심볼들을 검사해본다. 여기서 하지만 데이터가 분산되어서 저장되었기 때문에 하나의 C1 단계에서 복구할 수 없었던 심볼은 최대 28개까지의 심볼 오류를 유발할 수 있다. 따라서 C1 단계에서 복구되지 못한 심볼은 최악의 경우에는 C2 오류를 유발한다. C2 단계는 최대 4개까지의 심볼을 복구할 수 있다. 하지만 제조사에 따라서 2개까지만 복구 가능한 경우도 있기 때문에 일반적으로는 C1 오류와 같이 최대 2개까지의 심볼을 복구할 수 있다고 일반적으로 생각된다.

여기서 ODD는 C1 혹은 C2 오류가 감지되면 E11 혹은 E21, E31 등의 오류 코드를 반환한다. 따라서 ODD나 CD 플레이어는 C1이나 C2 오류의 발생 여부를 감지할 수 있다. C2 오류는 수학적으로 복구할 수 없기 때문에 앞뒤의 데이터를 기반으로 보간하거나 묵음처리 등으로 보완한다. CD의 재생이나 리핑 시의 음질 손상은 이 과정에서 일어난다.

ODD의 C1과 C2 오류코드는 다음과 같이 주어진다

  • C1 오류
    E11 : C1 단계에서 1개의 심볼이 손상되어 복구할 수 있음.
    E21 : C1 단계에서 2개의 심볼이 손상되어 복구할 수 있음.
    E31 : C1 단계에서 3개 이상의 심볼이 손상되어 복구할 수 없음. C2단계에서의 복구가 요구됨.
  • C2 오류
    E12 : C2 단계에서 1개의 심볼이 손상되어 복구할 수 있음.
    E22 : C2 단계에서 2개의 심볼이 손상되어 복구할 수 있음.
    E32 : C2 단계에서 3개 이상의 심볼이 손상되어 복구할 수 없음. 데이터 보간 등 후처리가 요구됨.

CD 플레이어

CD-DA를 재생하기 위해서는 본래는 전용 플레이어가 필요하나 이후 나온 PC의 ODD는 대부분 CD-DA 재생에도 대응한다. CD 플레이어는 크게 CDT(CD 트랜스포트)와 DAC로 구성되는데 각각 디지털 음원 추출부와 디지털-아날로그 변환부를 나타낸다. CD 플레이어에 CD를 넣게 되면 우선 CD의 트랙 정보를 읽어오게 되고, 각 트랙마다 순차적으로 재생하게 된다.

CD 트랜스포트는 구동부와 광학부로 나뉘는데 구동부는 광학부(픽업)과 CD 자체를 움직여서 읽고자 하는 위치로 이동하는 역할을 하고 광학부는 데이터를 읽어오는 역할을 한다. 이때 CD 표면의 손상 외에 픽업의 초점이 제대로 맞지 않거나, 모터의 움직임에 문제가 있거나 외부 충격이 가해져서 제대로 읽지 못하는 상황이 발생하면 연속적으로 데이터 오류가 발생하게 되는데, 이것이 상술한 버스트 에러에 해당한다. 따라서 고품질의 CD 트랜스포트의 제조를 위해서는 정밀 모터와 렌즈 등의 장비가 필요해서 초창기 CD 플레이어의 품질에 영향을 주었으나, 현재는 보다 정밀한 DVD블루레이의 재생에도 대응하는 부품을 사용하기 때문에 이것과 관련된 문제는 많이 해결된 편이다. 주로 하이파이용 CD 트랜스포트는 단가 문제로 주로 DVD의 구동부를 채택하나 에소테릭과 같은 특이한 메이커는 구동부를 직접 설계한다.

CD 트랜스포트를 통해 읽은 데이터는 PCM 오디오 형태로 재생 버퍼에 저장되는데, 이를 DAC부로 보내거나 외부로 디지털 전송할 수 있는데 이 때 쓰이는 규격이 S/PDIF이다. S/PDIF를 통하면 외부의 DAC를 통해 재생하거나 다른 장치로 보내서 처리하거나 녹음할 수 있다.

DAC부는 CD 트랜스포트를 통해 들어온 데이터를 아날로그로 변환해서 헤드폰이나 앰프와 스피커를 통해 재생할 수 있게 한다. DAC부는 크게 DSP, DAC 칩, 앰프 및 아날로그 필터로 나눠지는데 초창기의 CD 플레이어는 디지털 처리 능력이 부족해서 고가의 아날로그 부품을 사용하거나 가청 주파수의 일부를 잘라냈기 때문에 플레이어마다 음질적인 문제가 컸으나 현대에는 일정 수준 이상의 플레이어는 상향평준화된 편이다.

확장 규격

CD-DA는 음원 데이터와 트랙 데이터 등 간단한 데이터만 가지고 있었기 때문에 음원 데이터나 부가 컨텐츠 등을 추가하기 위한 확장 규격이 제정되었다. 공통적으로 CD의 음원 데이터 영역이 아니라 부가 데이터 저장 영역을 활용한다.

  • CD-TEXT
    CD-Text Logo.svg
    CD 플레이어에서 음반을 재생할 때 앨범명, 곡명, 가수명 등을 부가적으로 기록하는 규격이다. 1바이트 문자를 6000자까지 기록할 수 있으나 한글과 같은 멀티바이트 문자는 기록할 수 없었기 때문에 한국에서는 잘 사용되지 않았다.
  • CD-MIDI
    CD-MIDI logo.png
    PCM 형식의 오디오 데이터를 기록하는 CD-DA와 같이 각 곡의 악보를 나타내는 MIDI 포맷을 기록하는 규격이다. 곡의 멜로디와 각 파트의 악보를 음원과 같이 저장할 수 있다.
  • CD+G
    CDGlogo.svg
    CD-DA와 같이 앨범아트와 같은 이미지를 저장할 수 있는 규격이며 300×216 해상도의 16색 이미지를 같이 저장할 수 있다.
  • CD+EG
    CDEGlogo.svg
    CD+G의 확장 규격으로서 288 X 192 해상도의 256색 이미지를 같이 저장할 수 있다.
  • CD Extra
    ECDlogo.svg
    CD-DA와 파일을 같이 저장하는 시스템으로 CD 플레이어에서 재생하면 일반적인 CD-DA로, PC에서 재생하면 각종 멀티미디어 컨텐츠를 같이 재생할 수 있는 규격이다.

각주

  1. 트랙과는 다른 단위이다. 트랙은 특정 프레임부터 다른 프레임까지 어떤 한 곡이라고 구분하는 역할을 한다.
  2. 다른 표현 단위로는 프레임을 섹터, 서브프레임을 프레임이라고 부르는 경우도 있다.
  3. 이런 데이터 저장 방식을 '인터리빙'이라고 부른다.
  4. CD플레이어는 재생 시 재생 버퍼에 조립된 데이터들을 저장한다.