Golden Ears Event
Announcements
추천제품목록이동

배경
1993년쯤인 것 같습니다. 그 당시에 오디오에 푹 빠져서 공강 시간마다 학교 도서관에서 오디오 잡지 3~4종류를 모두 보면서 살고 있었는데, 제일 친한 친구 중 한 명이 저에게 이렇게 물어보더군요

"야, CDP(CD Player, 이하 CDP)는 왜 그렇게 가격이 천차만별이냐? 비싼 건 도대체 뭐가 좋은 거냐?"

그래서 저는 오디오 잡지에서 읽은 내용대로 이렇게 대답을 해 주었습니다.

"좋은, 아니 비싼 CDP들은 일단 CD Transport부와 DAC가 나누어져 있는데, CD Transport는 CD를 읽을 때 매우 정밀하게 읽을 수 있게 만들어져 있고, DAC는 그 신호를 Analog로 변환을 할 때 매우 정밀하게 만들어져 있어서, 결과적으로 소리가 매우 정밀하게 재생이 된다고 하네."

그러자 그 친구가 다시 이렇게 물었습니다.

"CD는 디지털인데 장비마다 소리가 다 다르면 에러가 있는 거 아니냐? 즉 디지털은 복사 및 전송을 하여도 원본과 같아야 하는데 CDP마다 소리가 다르다면 제품 불량 아니냐?"

생각해 보니 그 말이 맞더군요. 그래서 그 이후로 관련 정보를 찾으려고 했으나 아무리 오디오 잡지를 뒤져도 그러한 정보가 없더군요. 그러다가 약 6개월 정도 지난 후에 오디오 CD의 에러정정 방식(CIRC)에 대하여 글을 읽게 되었고, 그것 때문에 이런 무지막지한 CDP들이 출현하게 되었다는 것을 알게 되었습니다. 그리고 CIRC에 대한 이해는 "신호처리"에 관하여 수업을 들으면서 완전히 이해가 되었습니다. (지금 생각해 보니 CD의 소리 재생에 관하여 정확히 이해를 하려면 많은 것들을 배워야 하네요.)
그로부터 약 15년이나 지난 2008년 5월 현재, CD의 소리가 재생장치마다 다른 이유를 인터넷에서 검색을 해 보니, 제가 못 찾았는지 모르겠지만, 여전히 여기에 대한 명쾌한 자료가 없었습니다.


CD 포맷의 종류
CD (Compact Disk)를 기준에 따라서 나누어 보면, 여러 가지로 구분이 가능합니다. 우선 물리적으로 구분을 해 보면 직경 12Cm짜리(74~80분,650~703MB), 8Cm짜리(21~24분, 185~210MB) 등으로 구분이 가능하고, CD에 데이터를 기록하는 방식에 의한 논리적인 구분에 의하면 Audio CD, CD-Text, CD + Graphics, Super Audio CD, CD-MIDI, CD-ROM, Video CD, Photo CD, Enhanced CD 등의 구분이 가능하고, 데이터 기록방식 같은 제조 방식에 따른 구분에 의하면 Press CD, Recordable CD, Re-Writable CD 등으로 구분이 됩니다.

이러한 여러 가지 CD의 종류 중 Audio CD와 컴퓨터에서 사용이 되는 CD-ROM과의 차이는, 논리적인 기록 방식에 의하여 구분이 됩니다. 즉 Audio용 CD는 레드북(Red Book)의 규격에 따르고 컴퓨터 CD-ROM은 옐로우북(Yellow Book)의 규격을 따릅니다.


CD의 제한된 공간
디지털 신호를 보내고 받는 규칙을 정의하는 이러한 여러 가지 규격은 크게 보면 사용자 데이터 신호를 가지고 있는 "사용자 데이터 부분"과 전송 실패 시 그 오류를 정정하는 "오류정정 부분"의 두 가지 영역으로 나눌 수 있습니다. 즉 CD표면의 흠집이나 얼룩 등으로 인하여, 읽기에 오류가 발생하였을 경우 또는 데이터를 전송하는 과정에서 잡음의 유입 등으로 인하여 오류가 발생하였을 경우에 오류정정의 방법이 다양하면 (즉 신호가 많이 있으면) 다양해 질 수록 오류를 복구하여 사용이 가능해질 확률이 높아집니다. 그런데 CD의 물리적인 공간은 제한되어 있으므로 이러한 오류 복구 신호를 많이 넣으면 넣을 수록 사용자 데이터를 저장할 수 있는 공간은 작아집니다. 따라서 CD의 규격 별로 각기 다른 오류정정방식을 사용합니다.


Audio CD, CD-ROM, 그리고 Video CD의 Sector 구성
Audio CD와 CD-ROM은 공통적으로 데이터의 전송 시 발생하는 오류를 정정하기 위하여 CIRC ( Cross-Interleave Reed Solomon Code )와 EFM ( Eight-to-fourteen modulation )의 방식을 사용합니다. 그리고 CD-ROM의 경우는 CIRC만으로는 부족하기 때문에 데이터 부분의 오류를 정정하기 위한 방법으로 CIRC와 EFM 외에도 288byte의 Layered ECC신호를 추가하여 사용을 합니다. 즉 CD-ROM의 경우에는 오류정정 신호가 Audio CD보다 많아져 데이터 영역이 사용할 수 있는 부분은 그만큼 줄어듭니다. 


조금 더 자세히 설명을 하면 CD에서 데이터를 읽을 때는 C1, C2형태의 에러가 발생하는데, C1에러의 경우는 에러정정 신호를 사용하여 완전한 복구(원본과 읽혀진 신호가 동일한 경우)가 가능하지만, Audio CD의 경우 C2에러의 경우 완전한 복구가 불가능합니다. 이런 경우 제조 시에는 CD를 제조하는 제조사별로 이러한 에러에 대한 허용오차 기준이 다르고, 재생 시에는 CD를 재생하는 CDP 제조회사마다 그 복구 방식이 다릅니다.

그러면 왜 Audio CD는 데이터의 오류정정신호를 사용하지 않는 것일까요? 바꾸어 말하면 왜 컴퓨터 CD-ROM에서만 ECC를 사용하는 것일까요? (정확히 말하면, Audio CD 역시 오류정정을 하긴 합니다만, Layered ECC방법을 사용하지 않는 것이고 CIRC라는 방식을 사용하여 오류를 복구합니다. 그리고 규격의 만들어진 순서로 보면 Red Book 규격이 먼저 만들어 졌으므로 "CD-ROM에서만 헤더 정보와 ECC정보를 사용하는 이유"라고 하는 것이 더 적절하겠네요.)

그 이유는 ECC를 사용하면 데이터 용량이 줄어들기 때문이기도 하지만, 오디오의 경우에는 CIRC만으로도 충분하다고 판단했기 때문입니다. 그 당시 Sony와 Phillips가 CIRC 만으로 충분하다고 판단을 한 이유는 CIRC가 무엇인지를 이해하시면 이해가 가능합니다.

CIRC (Cross-Interleave Reed Solomon Code)
CIRC는 크게 인터리빙(Interleaving)과 인터폴레이션(Interpolation)의 2가지 방식을 사용하여 에러를 정정합니다.

Interleaving
간단하게 말을 하면 인터리빙(Interleaving)은 데이터를 저장할 때 연속으로 인접하게 저장하지 않는 방법을 말합니다. 즉 데이터의 순서를 규칙적으로 바꾸는 것을 interleaving이라고 합니다. 아래의 그림을 사용하여 설명을 하겠습니다.

출처 : http://en.wikipedia.org/wiki/Interleaving

그림1. 원본 메시지와 burst error가 발생한 메시지


원본 데이터를 그대로 저장을 할 경우(interleaving을 하지 않을 경우) CD에 흠집이 나거나 더러워 져서 반사율이 줄어들 경우, Pick up이 신호를 제대로 읽지 못하게 됩니다. 그런 경우 대부분 인접한 영역의 데이터는 모두 못 읽게 되므로 burst error가 발생을 하여 해당 영역의 데이터가 없어집니다. 이런 경우 없어진 데이터를 복구하기가 거의 불가능해 집니다.



그림2. Interleaving을 한 후 전송을 하고 받은 후 de-interleaving을 한 메시지


하지만 데이터를 저장할 때 Interleaving을 하여 저장을 하게 되면 burst error가 발생을 하여도 de-interleaving을 하면 연속된 에러의 발생인 burst error가 random error로 변하여 추측을 하면 제일 아래의 메시지처럼 어느 정도 인식이 가능한 수준으로 됩니다.

실제적인 예를 들면 아래의 그림처럼 동작이 가능해 집니다. 



그림3. interleaving을 하지 않고 메시지 전송을 한 경우


그림4. Interleaving을 사용하여 메시지 전송을 한 경우


즉 그림4.와 같이 중간 중간의 빠진 글자들은 논리적으로 어느 정도 유추가 가능하게 됩니다. 때문에 데이터를 연속적으로 저장하거나 전송을 하지 않고 interleaving을 한 후 저장을 하거나 전송을 하고 받거나 읽을 때 de-interleaving을 하면 데이터의 복구 확률을 높일 수 있습니다.

Interpolation
Interpolation은 두 가지 단어 즉, Inter (= between) 와 Pole (= point 또는 node) 의 결합으로 이루어진 단어입니다. 즉 Interpolation이란 기존의 점 사이에 새로운 점을 만들기 위한 모든 종류의 계산법을 말합니다. 따라서 Interpolation의 방식은 여러 가지가 있습니다.
CD 에서는 interleaving, de-interleaving시에 에러가 발생을 하여 특정 지점의 데이터가 빠졌을 경우 없어진 부분의 데이터는 추측을 통하여 데이터를 만들어야 하는데 이러한 추측에 사용되어지는 알고리즘이 interpolation 방식입니다.

Interpolation의 예제
(출처: http://en.wikipedia.org/wiki/Interpolation)
문제 : 아래의 그림과 같은 좌표(빨간색 점)는 원래 어떤 모양이었을까요?


그림5. 주어진 값에 따라 빨간 점을 찍은 모습

이 문제를 푸는 방식은 (어차피 추측이므로) 여러 가지가 있으며 각 방식 별로 장단점이 있습니다. 따라서 Interpolation의 대표적인 몇 가지 방식을 알아 보겠습니다.


[Piecewise constant interpolation]


그림을 보시면 아시겠지만 이 방식은 2개의 지점을 절반으로 나누어 왼쪽에 가까운 지점은 왼쪽의 값을 따르고, 오른쪽에 가까운 지점에서는 오른쪽 값을 따르게 하는 방식입니다. 뭐 아주 단순한 방식입니다. 따라서 싸고 빠른 계산이 필요한 경우에 유용한 방법이지요.

[Linear interpolation]


역시나 그림을 보시면 아시겠지만, 이 방식은 2개의 지점을 그냥 직선(Linear)으로 연결하는 방식입니다. 이 방식 역시 매우 빠르고 저렴하지만 다른 방식들에 비하여 확률적으로 매우 부정확한 방법이 되겠습니다. 이를 수학적으로 풀어보면 아래의 함수를 사용하여 계산을 합니다.



[Polynomial interpolation]


이 방식은 문제에서 주어진 여러 개의 값을 만족하는 다항식을 찾는 방법입니다. 즉 수학적으로 Linear Interpolation의 경우에는 



 의 함수를 사용하여 두 점 사이의 직선을 구하는 방식이라면 Polynomial interpolation 방식은 높은 차수의 다항식 즉 



을 사용하여 두 지점 사이의 값을 구하는 방식입니다.

[Spline interpolation]


개인적으로 신호처리 시간에 interpolation을 배우면서 가장 신기해 하던 방식입니다. Spline interpolation은 주어진 두 지점 사이의 부분집합에 저차 다항식을 적용시켜 나가는 연결 다항식을 말합니다. 예를 들면 



와 같은 다항식을 두 지점 사이의 부분집합에 적용하여 계산을 하는 방식입니다. 그래프 상으로는 Polynomial interpolation과 별 차이가 없는 것 처럼 보이지만 Spline interpolation은 대단히 높은 정확도를 가지고 있으나 연산과정이 복잡하여 시간과 비용이 많이 필요합니다.
제가 이 방식을 배우면서 가장 놀라웠던 점은 Spline을 사용하면 Nyquist Rate를 뛰어 넘는 값을 구할 수 있다는 점 입니다. 즉 CD의 Sampling frequency인 44.1kHz의 경우 약 20kHz까지가 재생 주파수의 한계대역이지만 Spline 함수를 사용하여 interpolation을 하면 20kHz가 넘는 주파수의 재생이 가능해 집니다. 상당한 고가의 CDP의 경우에는 20kHz가 넘는 소리도 가끔씩 재생된다고 하는데, 아마도 Spline 과 Polynominal 방식 등의 방식을 혼용하여 사용하지 않나 추측을 해 봅니다.

이와 같은 다양한 Interpolation방식은 음성신호의 오류정정 외에도 디지털로 신호처리를 하는 이미지 처리, 동영상 처리 등의 다양한 곳에서 사용을 하고 있습니다.


CIRC의 한계
제가 중간 중간에 굵은 글자로 표기를 하여서 눈치가 빠른 분들은 어느 정도 짐작을 하셨겠지만 Interleaving과 Interpolation은 기본적으로 원본 데이터를 복구할 수 없는 경우에 사용을 하는 방법입니다. 즉 "그럴 확률이 높다" 라는 의미이지 "그러한 방법을 통하여 얻은 결과가 원본과 같다" 라는 의미가 아닙니다. 따라서 CDP는 CD에서 데이터를 읽을 때, 기계적인 구동부분에서는 CD의 신호를 잘 읽을 수 있어야 오류(C1, C2에러)가 줄어들게 되고, DSP처리를 하는 영역에서는 어쩔 수 없이 에러가 발생을 했을 경우(특히 C2에러), 최대한 원본 신호에 가깝게 복원을 할 수 있는 기능이 요구됩니다.

Red Book을 만들 당시에 Sony와 Phillips가 카라얀에게 자문을 구한 결과, 베토벤의 9번 교향곡을 CD 한 장에 담을 수 있는 74분이 CD의 적절한 재생시간으로 정해졌고, 그 당시의 기술력의 한계로, CD의 재생시간을 74분으로 하려면 ECC코드 영역을 없애고 CIRC만으로 오류정정을 하기로 한 결정 때문에 지금과 같은 무시무시한 가격의 CDP들이 존재하는 것 입니다.

Reference
http://en.wikipedia.org/wiki/CD-ROM
http://en.wikipedia.org/wiki/Cross-interleaved_Reed-Solomon_coding
http://www.ecma-international.org/publications/standards/Ecma-130.htm
http://www.samsungodd.com/kor/Information/ODDTech/ODDTech.asp?functionvalue=view&type_no=3&no=

이 게시물과 연관된 게시물 (자동 검색 결과)
profile

orchid

2008.07.21 21:15
그럼 cd-rom에 무압축 wav 파일로 저장하면 음질 좋게 저장되는 건가요?

profile

토미™

2008.07.21 21:58

컴퓨터용 CD-ROM에 CD로 만들기 전 녹음실에서 녹음된 원본 파일을 무손실 압축파일로(FLAC이나 APE같은) 기록하면 음악CD로 만들어진 것 보다 음질이 더 좋습니다. 그런데 일반인들이 그런 파일 구하기가 불가능하니 조금 비 현실적인 방법 같습니다. (개인적으로 FLAC으로 만들어서 노래 판매를 하면 좋을 것 같습니다.)
때문에 조금 더 현실적인 방법으로는 CD에서 Ripping을 할 때 C1, C2에러 없이 읽어내는 방식으로 CD를 읽는 것이 조금 더 현실성이 있을 듯 생각됩니다. EAC라는 프로그램을 사용하면 이러한 과정으로(에러를 정정하면서) CD를 Ripping할 수 있습니다. EAC에 대한 자세한 소개는 시간을 내어 게시를 하겠습니다.

profile

해사

2008.10.18 13:12

인터넷에 나도는 무손실 파일은 CD직출인데.. 그럼 이 음원은 정말 무손실이 아닌거군요?? 

profile

토미™

2008.10.19 01:33
사실 EAC등의 Ripping 프로그램으로 FLAC이나 APE같은 무손실 음원으로 추출을 하여 음악을 들으시는 것이 경우에 따라서는 CD를 읽을 때 발생하는 에러가 줄어들 수도 있으므로 음질이 더 좋을 수도 있습니다. EAC추출 후 로그를 보시면 추출시의 장비 및 상황이 기록되어 있습니다.
profile

해사

2008.10.22 01:45

그렇군요! 좋은 정보 감사드립니다~

profile

성봉수

2008.10.18 20:49

너무 재미있었습니다...

profile

운영자

2008.10.22 02:18

성봉수님. 로그인 가능하도록 설정 변경했습니다. 한번 시도해 보시고 안되면 쪽지 주세요.

profile

이마털

2008.11.16 20:15

FLAC파일 들어봤습니다. 확실이 좋더군요....

profile

FLOYD

2009.01.10 21:22
EAC 소개해주세요~ ㅇ(^ㅇ^)ㅇ
profile

토미™

2009.01.12 13:00
소개를 하려고 하는데 자꾸 우선 순위에서 밀리네요. To-Do List에 올려 놓았습니다.
profile

파즈™

2009.07.15 01:19
에러 정정기능때문에 더 좋은 립핑이 가능한 것이었군요..^^;;
profile

토미™

2009.07.15 09:38
이론적으로는 이렇습니다만 사실 많은 차이는 안 납니다. 차라리 EAC와 같은 프로그램으로 Ripping을 해서 들으면 CD에서 읽을 때 발생 가능한 에러걱정을 안 해도 되니 더 좋습니다.
profile

조포

2009.10.17 12:37
DA / AD 컨버터 차이.
profile

배전

2010.03.09 15:32
이런거 제대로 이해하려면 전공을 바꿔야할듯ㅜ 배경지식이 없으니까 참 힘듭니다ㅜ
profile

ensemble

2010.03.18 12:27
수학이 실제로 응용되는 경우를 보니 재미있네요
profile

PeterBang

2010.04.10 12:19
제가 좋아하는 음악에도 어려운 수학이 있군요;
profile

ME

2010.04.30 14:00

정말 깔끔한 정리를 해 주신 것 같습니다. 감사합니다.

profile

호리동동

2010.06.18 11:17
음 그래서 EAC가 대세군요 좋은 정보 감사합니다
profile

찌상

2011.01.01 18:50
정독완료!
profile

[E-Mu]고운달

2011.01.01 20:12

역시 어렵군요................잘 봤습니다,,,,,,,,,,,,,,,ㅋ

profile

JBL PARAGON

2011.03.23 08:34

너무 좋은 내용 잘 보았습니다.  제 블러그에 담아가도 괜찮겠죠?^^;

profile

자두

2011.05.29 18:26

CD에 이런 비밀이... 카라얀이 대단하긴 하군요.
profile

엠의세계

2011.09.05 11:42

이 글을 요약하면 카라얀이란 분이 74분을 우기지 않았으면 싸구려 CDP랑 고급 CDP의 경계가 없어졌을 거라는 건가요???


profile

라온미르

2013.10.23 21:07

재밌게 잘 읽었어요~ 

profile

네프쨔니크

2013.10.31 11:15

좋은 글 감사합니다~~ㅋ

List of Articles

63786

VIEWS

11

COMMENTED

71562

VIEWS

13

COMMENTED

중급 RMAA(Rightmark Audio Analyzer) 사용방법 file

  • 등록일: 2008-07-23

67834

VIEWS

9

COMMENTED

중급 MP3음질 과연 얼마나 나쁜가? file

  • 등록일: 2008-07-17

65473

VIEWS

8

COMMENTED

123239

VIEWS

41

COMMENTED

58670

VIEWS

18

COMMENTED

초급 휴대폰,DAP,앰프의 측정 데이터 읽는 방법 file

  • 등록일: 2008-07-04

99157

VIEWS

23

COMMENTED

초급 음악감상을 위한 소리의 기본지식 file

  • 등록일: 2008-07-04

75070

VIEWS

16

COMMENTED

46191

VIEWS

25

COMMENTED