건국대학교 멀티미디어 공학개론 수업내용을 필기한 것입니다. 옆에서는 시나브로가 몸을 동그랗게 말고 자고있어요. 나도 자고싶다….중간고사때 공부하겠다고 마음먹은게 엊그제같은데 아직도 마음만 먹고있어요 역시 인간은 같은 실수를 반복한다.
Predictive coding이란 샘플값 자체를 전송하는게 아니고 예측한 값과 현재 값의 차이를 전송하는 것입니다.
이런 LPC에서 전송할 값을 심볼로 표현하기 위해 shiftup과 shift down 하게 됩니다.
샘플값들의 범위가 0에서 255사이라고 가정해 봅시다. 그렇다면 샘플값들의 차이의 범위는 -255에서 255가 될 거에요.
그와는 별개로 Shiftup과 Shiftdown이 32단위로 shift한다고 생각해봅시다. 그럼 우리는 샘플값들의 차이를 -15에서 16 사이의 값들로 밖에 표현하지 못해요ㅠㅠ
이 회색 블록안에 들어있는 값으로 더 많은 값들을 표현하기 위해서 shiftup과 shiftdown 각각에 하나의 bit를 할당합니다.
그리고 shiftdown과 shiftup 사이의 값을 하나의 block
처럼 생각하는거에요.
한번 shiftup하면 이 block
을 오른쪽으로 옮기고 한번 shiftdown하면 block
을 왼쪽으로 옮기는거죠!!!!
한번 shiftup 했을 때의 모습입니다.
이해가 잘 안 되었었는데 친구가 overflow가 났을 때를 생각해보라고 해서 이해가 되었어요. overflow 가 발생했을 때 그 전 숫자는 초기화되고 새로 시작하는 것 처럼 shiftup shiftdown 하는 것도 overflow가 몇 번 발생했는지 기록하고 남은 부분을 더해주는 것과 같아요.
~오늘의 시나브로~