디지털 오디오의 원리

1. 소리의 기록

소리를 듣는다는 건 무엇일까?
고막을 통해 공기의 진동을 느끼는 것이다.
사람의 가청주파수 대역이 2만Hz라고 하는데,
풀어 얘기하면 귀가 초당 2만번의 떨림까지 느낀다는 얘기다.

그러니까 내가 1초동안 들은 소리는 2만회의 떨림으로 표현될 수 있고,
그와 동일하게 스피커의 진동판을 떨리게 하면 같은 소리를 다시 들을 수 있다.

보통 소리는 이런 식으로 시각화하는데,
결국 떨림의 세기(진폭)를 쭉 이어서 그린 것이다.







오랫동안 머리로는 대충 이해가 되면서도 받아들이기 힘들었던 게
백 대가 넘는 각양각색의 악기가 연주하는 교향곡이나 수만가지 오묘한 자연의 소리가
이렇게 오로지 숫자(세기)의 나열로 표현될 수 있다는 점 이었다.

어쨌든 이렇게 소리를 기록할 수 있으니 전달과 저장이 쉬워졌다.
시공을 초원해 공기의 떨림을 재현할 수 있게된 것이다.
전화는 공간을 초월하고 CD는 시간을 초월한다.


2. 조금 더 기술적인 이야기

귀가 초당 2만번의 떨림을 느낄 수 있으니 모든 오디오 데이터는 초당 2만개로 표현될까?
아니다.
아마도 44.1KHz라는 문구가 낯익은 사람이 많을 것이다.(mp3의 세부정보 같은 곳에서)
그러니까 초당 4만4천 샘플이 있다는건데..
Nyquist라는 사람이 샘플링 이론이라고 해서 연속적 아날로그 신호를 디지털로 바꾸려면 아날로그 주파수 대역의 2배로 샘플링해야 한다는 것을 증명하였다.
그래서 2만이 아닌 4만 언저리의 값을 쓰는 것이다.

사람이 들을 수 있는 소리가 2만Hz라고 해서 모든 소리를 2만Hz로 표현할 필요는 없다.
어떤 소리는 떨림의 변화가 훨씬 적은데, 대표적인 것이 사람의 목소리 이다.
목소리는 대략 4천Hz이내의 주파수 대역을 갖는다.
즉 성대가 1초에 4천번 이상은 떨리지 않는다는 얘기다.
그래서 음성은 대략 초당 8천개의 샘플만 있으면 표현하기에 충분하다.

지금까지는 초당 샘플 갯수에 대해 이야기 하였는데,
각 샘플의 값, 즉 진폭의 크기는 어떻게 표현할까?
전혀 떨리지 않으면 0, 가장 크게 떨렸을 때를 X라 하고
0~X 사이를 잘게 나눈 뒤 가장 근사한 값으로 매핑 시킨다.
당연히 더 잘게 나눌 수록 오차가 적어지겠지만 그만큼 비트수가 늘어나는 문제가 있고
보통 음성은 8bit(256레벨), 오디오는 16 혹은 24bit를 사용한다.
떨림 샘플 하나당 그 만큼의 bit가 필요하다는 것이다.
또한 효율을 위해 레벨을 등간격으로 나누지 않고 비선형적으로 나누기도 한다.

더 자세한 내용이 알고싶다면 아래 링크 참조
http://www.alanjshan.com/sampling-01/
http://en.wikipedia.org/wiki/Audio_bit_depth


3. 신기한 음성 압축

이번엔 소리의 전송에 관한 이야기이다.
사람들이 무엇보다 주고받고 싶어했던 소리는 바로 음성이다.
그리고 제한된 전송속도에서 보다 많은 사람이 통화하기 위해서는 전송량을 줄여야 했다.

앞서 소리를 표현하는 방법에 대해 설명했는데,
아무리 뛰어난 압축기술을 써도 이런 형태의 데이터를 직접 압축하는데는 한계가 있다.
누군가가 발상의 전환을 통해 획기적인 방법을 발명했으니 이름하여 vocoder 기술이다.

목소리는 사람의 몸이 악기가 되고 폐에서 나오는 공기가 악기를 울려 만들어진다.
폐에서 구강으로 이어지는 악기를 함수로 만들고 입력으로 공기의 값을 넣어주면
결과로 목소리 값을 얻을 수 있을 거라는 기발한 생각이 vocoder의 기본 개념이다.
사람마다 함수의 형태가 약간씩 다르니 이 차이를 표현하는 매개변수와 공기의 패턴만 전송함으로서 통화를 위해 필요한 전송 데이터량을 절반 이하로 줄일 수 있었다.

댓글

이 블로그의 인기 게시물

왜 LTE는 비싸고 WiFi는 공짜일까?

방송의 종류