by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

오디오 압축 기초




오디오 압축 기초

개요

  • 오디오 압축의 기본 원리는 아래와 같이 간단하게 설명 가능합니다.
  • 오디오 압축과정에서 실제 압축은 아래 3단계를 차례로 통과하며 수행한다.
    • ① MDCT 변환 (MDCT Transformation)
    • ② 양자화 (Quantization)
    • ③ 엔트로피 부호화 (Entropy Coding)

샘플링

샘플링이란

  • 오디오 압축의 첫 번째 과정은 샘플링 이다.
  • 샘플링은 아날로그 신호를 디지털 신호로 변환하는 과정이다.
  • 측정된 음압(dB)을 일정한 단계로 변환 예) 8bits는 256단계, 16bits는 65536단계로 변환
  • 단계가 많을 수록 (표본당 비트 수가 많을 수록, bits per sample) 데이터량이 증가
    • Sampling 간격이 크다 → 신호 정보의 손실이 크기 때문에, 원래의 신호로 재생하기 어려워진다 (-> Quality가 낮아진다)
    • Sampling 간격이 작다 → 신호 정보의 손실은 최소화할 수 있지만, 추출되는 데이터량이 매우 커진다.
미디어 표본당 비트 수
전화, AM 라디오 8bits
FM 라디오, CD 오디오, MP3 16bits
DVD 오디오 24bits

sampling rate

  • 샘플링의 정교함에 대한 대한 주파수(Frequency)를 의미하며 1초 단위 샘플링 횟수를 비율에 따라 표시한다.
  • 11kHz, 22kHz, 44kHz로 분류하는데, 44kHz는 입력되는 아날로그 데이터를 1초 동안 4만 4천번으로 세분하여 샘플링 했다는 것을 의미한다.
  • 샘플링레이트가 크면 클수록 원음과 가까운 음질을 가지지만 용량이 커질 수밖에 없다. 일반 CD는 44.1kHz, DVD에 사용되는 오디오의 경우는 48kHz의 샘플링 레이트를 가진다.
  • https://ko.wikipedia.org/wiki/%EC%83%98%ED%94%8C%EB%A7%81_%EB%A0%88%EC%9D%B4%ED%8A%B8

bit depth

  • sampling rate는 시간 즉 x 축에 대한 함수이며 샘플링 신호를 표기하기 위해서는 음량 (Amplitude) 즉 y축에 해당하는 값이 동시에 필요하다.
  • 이를 "Bit Depth (비트 해상도)"라고 하며, 단위는 bit (비트)를 사용 한다.
  • 해상도 (비트수)가 높아질수록 원래의 아날로그 신호와 동일하게 샘플링 될 수 있다.
  • http://en.wikipedia.org/wiki/Audio_bit_depth

bitrate

  • 초당 전송되는 데이터 양이다. 즉 1초당 전송되는 비트 수이다.
  • 보통 320Kbps, 192Kbps, 128Kbps 등을 사용한다.
  • bitrate가 높을 수록 고음질

오디오파일 크기

  • CD 음악의 경우 44.1kHz sampling rate, 16bit depth, 1411.2kbps bitrate를 갖고 있습니다.
  • 44.1kHz * 16bit * 2 channels(stereo) = 1411.2kbit/s
  • 아래와 같이 크기를 계산 할 수 있다.
    • 일반적인 CD 180초 음원 : 180 x 1411kbps = 253,980,000 (bit) / 8(Bytes) = 약 31.7 Mb
    • MP3 320kbps 180초 음원 : 180 x 320kpbs = 57,600,000 (bit) / 8(Bytes) = 7.2MB

지각부호화 (Perceptual Coding)

  • 오디오 압축의 두 번째 과정은 지각부호화 이다.
  • 지각부호화란 사람이 들을 수 없는 소리를 제거하여, 압축 할 데이터량을 줄이는 과정이다.
  • 사람이 인지하지 못하는 소리를 제거하여 압축해야 하는 데이터 양을 줄이는 것이 목적이다.
    • 사람은 들을 수 있는 가청 음역대가 정해져 있다. 인간의 가청주파수는 약 20Hz~20kHz 이다.
    • 가청 음역대 이더라도 상대적으로 크게 말해야 들리는 음역대가 있다. 주파수에 따라 인지 가능한 최소한의 음압레벨이 있다.
    • 다른 소리에 가려져 듣지 못하는 소리가 있다. (마스킹효과, Masking Effects) 주변의 큰 소리에 의해 작은 소리가 가려질 수 있다.

MDCT (Modified Discrete Cosine Transformation) : 압축 1단계

  • DCT의 변형 (변형된 이산 코사인 변환)
  • 주파수를 분할하는 방법

양자화(Quantizing) : 압축 2단계

  • 연속 진폭 값을 한정된 비트 수의 코드로 변환하는 과정
  • 연속된 변화량을 일정한 폭으로 불연속적으로 변화하는 유한 개의 레벨로 구분하고, 각 레벨에 대하여 각각 고유값을 부여하는 것을 말합니다.
  • Sampling된 데이터에서 각 Sample의 Y축 값을 추출하기 위해 Y축에 눈금을 그리는 과정
    • Y축의 눈금자의 간격을 정하는 것이 중요
    • Sampling과 마찬가지로 데이터의 size와 quality에서 조율이 필요함
    • 실제 데이터에 가깝게 할수록 필요한 데이터가 많아집니다.

양자화 에러

  • 실제 데이터 값과 양자화된 값과의 차이 (아래 그림의 노란색 영역)

엔트로피 부호화(Entropy Coding) : 압축 3단계

  • 엔트로피는 주어진 신호를 표전송이나 저장을 좀 더 용이하게 할 수 있도록 데이터를 변형하는 것을 말한다.
  • 2진 형태의 데이터 처리가 통신이나 저장에 있어서 가장 용이하므로 2진 코드를 많이 사용한다 데이터 압축도 일종의 부호화라고 볼 수 있다.
  • Huffman 부호화
    • 반복적으로 나타나는 데이터 중에 자주 반복되는 데이터셋은 작은 부호들로 대체하고 덜 반복되는 데이터셋 일 경우 긴 부호들로 대체해서 총 데이터셋의 합인 실제 전체 데이터 보다 부호들의 합을 평균적으로 줄이는 방법

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.