본문 바로가기

음악·영상 재생 깨끗한 디지털, 2진수 반올림의 마법 덕

중앙선데이 2018.06.30 01:00 590호 28면 지면보기
[알고보면 쉬운 과학 원리] 디지털과 아날로그
우리가 요즘 사용하는 디지털 음악과 사진은 계속 복사해도 깨끗하다. 과거에 아날로그 비디오테이프에 녹화된 영상이 몇 차례만 복사하면 흐릿하게 되는 것을 경험한 우리에게는 놀라운 일이다. 지금도 복사기에 사진이나 서류를 반복해 복사하면 그림이 뭉개진다. 복사기는 아날로그 방식이기 때문이다. 이러한 디지털과 아날로그의 차이는 어디서 오는 것인가?

아날로그, 신호 ‘있는 그대로’ 저장
복사 반복하면 오류 누적돼 흐릿

디지털은 신호를 숫자로 끊어 표현
저장 때마다 반올림해 초깃값 복원
오류 쌓여 변형되는 것 아예 막아

 
음악이나 영상을 디지털로 처리할 수 있게 해 주는 것은 결국 인간의 특성 때문이다. 인간의 정보처리 능력은 그다지 빠르지 않고 정확하지도 않다. 에디슨이 발명한 영화의 기본원리가 바로 여기서 출발한다. 인간은 1초에 약 24장의 사진을 연속으로 보여 주면, 그것들을 연결된 영상으로 인식하게 된다. 분명히 사진들 사이에 빈틈이 있지만, 이를 인식하지 못하는 것이다.
 
이것은 인간의 신경정보처리 시스템의 특성에 기인한다. 정보처리는 신경세포에서 전하를 띤 칼륨과 나트륨 이온이 이동하면서 이루어진다. 다시 말해서 이 같은 화학 작용에 걸리는 시간이 24분의 1초면 그것을 알아차리지 못한다.
 
이러한 특성 때문에 우리는 음악이나 사진을 기록하고 재생할 때 연속된 모든 정보를 저장할 필요 없이 1초에 24개 이상의 정보만 기록하고 재생해 주면 된다.
 
 
1초에 24개 데이터만 보여줘도 충분
 
[그래픽=이정권 기자 gaga@joongang.co.kr]

[그래픽=이정권 기자 gaga@joongang.co.kr]

아날로그란 연속적인 측정값을 말한다. 자연계에 존재하는 모든 신호는 연속적이다. 그래서 아날로그 데이터 처리는 세상에 있는 사물을 ‘있는 그대로’ 표현하는 방식이다. 음성과 영상을 있는 그대로 표현한다. 그런데 이것을 전송할 때 문제가 생긴다. 데이터를 처리할 때는 항상 오류가 개입되는데, 아날로그 데이터 처리는 이 오류까지도 그대로 표현한다. 그래서 한 번 개입된 오류가 계속 누적되어 나중에는 큰 차이를 만들게 된다. ‘있는 그대로’ 표현하다 보니 앞 단계에서 개입된 오류도 그대로 표현한다.
 
음성을 기록하고 재생하는 간단한 예를 설명해 본다. <그림 1>의 (A)는 음성을 아날로그 방식으로 연속 측정 표현한 그림이다. 일반적으로 데이터는 저장하면 오류가 생길 수 있다. 그림 (B)는 저장된 데이터에 약간의 오류가 생긴 것을 보여 준다. 이것을 다시 복사, 저장했을 때 또다시 오류가 발생해 그림 (C)처럼 오류가 커졌다고 생각해 보자. 이처럼 여러 차례 반복하면 오류가 누적 증폭되어 많은 변형이 생길 수 있다.
 
디지털은 연속적이지 않은 숫자로 표현한 것을 말한다. 연속적인 것을 그대로 표현하려면 그림이나 그래프로 표현해야 한다. 그러나 숫자로 표현하기 위해서는 신호를 중간중간에 끊어서 일부만 표시할 수밖에 없다. 다시 말해서 일부 값만 측정 기록해야 한다. 그래서 디지털 방식은 자연적이지 않다. 전체 중에서 일부만 뽑는 것을 샘플링이라 부른다. 앞에서 살펴봤듯이, 인간은 1초에 24개 값만 보여 주면, 차이를 구분하지 못한다. 그래서 일반적으로 1초에 24개 이상의 데이터를 균일한 간격으로 뽑아서 측정 기록한다.
 
앞에서 아날로그 방식으로 데이터를 처리하니 오류가 누적돼 커지는 것을 보았다. 디지털 방식은 이러한 오류의 누적 증폭을 예방해 준다. <그림 2>는 측정한 음성 신호를 디지털로 처리하는 과정을 보여 준다. 디지털 신호처리는 신호의 디지털화, 2진수 변환, 저장, 읽기의 단계를 거친다. 반복해 저장할 때는 그럼처럼 읽기를 한 다음에 다시 저장하게 된다.
 
 
오류가 0.5 볼트 넘으면 복원 안 돼
 
<그림 3>은 아날로그 신호를 디지털로 변환하는 과정을 보여 준다. 아날로그 데이터를 일정한 간격으로 끊어서 숫자로 표현한다. 그림에서는 연속된 신호가 10진수 숫자(6754589…)로 변환됐다. 다음 단계는 <그림 4>처럼 디지털 값을 2진수로 변환하는 과정이다. 여기에서는 10진수 (6754)가 2진수 (0110 0111 0101 0100)로 바뀌었다.
 
<그림 5>는 2진수로 변환된 데이터(1011)를 반복하여 저장하고 읽는 과정을 보여 준다. (A)는 초깃값(1011)을 전압의 차이로 보여 주고 있다. 여기서는 전압 차이로 데이터를 저장한다고 가정한다. 1볼트는 1을 나타내고, 0볼트는 0을 나타낸다.
 
그림 (B)는 데이터가 저장장치에 저장된 상태를 보여 준다. 세 번째 숫자 1을 나타내는 전압이 0.8볼트로 저장되어 있다. 실제로 데이터 (0, 1)를 전기 장치에 저장하면 약간의 오류가 발생한다. 1을 표현하기 위해서는 정확히 1볼트가 되어야 하는데, 실제는 그렇지 않을 수가 있다. 우리가 서류나 사진을 복사기에서 복사하면 글자나 선들이 조금씩 변형되는 것과 마찬가지다.
 
<그림 5>의 (C)는 저장된 데이터를 읽은 경우를 보여 준다. 데이터를 읽을 때는 2진수로 바꾸기 위하여 0.5에서 반올림한다. 그림에서 보듯이 반올림하니 다시 초깃값으로 원위치 됐다. 그래서 그림은 저장할 때는 오류가 있었지만, 이를 반올림하여 원래 데이터를 회복한 모습을 보인다. 이것은 일반적으로 오류가 크지 않기 때문이다. 만약에 오류가 0.5 볼트 이상이 되면, 이처럼 초깃값이 복원되지 않는다.
 
<그림 5>의 (D)는 또다시 데이터를 저장한 모습을 보인다. 두 번째 저장할 때 사용하는 데이터는 앞에서 반올림하여 원상 복구됐던 값들이다. 즉 초깃값 (1011) 그대로다. 앞 단계에서 발생했던 오류는 남아 있지 않다. 하지만 여기서도 새로운 오류는 발생할 수 있다. 그림 (D)는 그러한 모습을 보여 주고 있다. 이때에도 데이터를 읽을 때는 반올림하는데, 그러면 그림 (E)처럼 초기 데이터로 복원된다.
 
이제 알았다. 모든 데이터 처리에는 오류가 개입된다. 아날로그 처리는 신호를 ‘있는 그대로’ 저장하기 때문에, 반복 저장하면 오류가 누적 증폭된다. 디지털 처리에서는 매번 반올림하여 초깃값을 되찾는다. 매번 초깃값을 되찾기 때문에, 반복 저장해도 결국 초깃값이 유지된다.
 
이광형 KAIST 바이오뇌공학과 겸 문술미래전략대학원 교수
인공지능과 퍼지이론, 바이오정보, 미래예측 전문가다. 사단법인미래학회장과 국회미래연구원이사를 맡고 있다. 

구독신청

공유하기
광고 닫기