멀티미디어 파일을 다룰 때 우리는 인코딩, 디코딩, 코덱, 파일 형식 등 많은 용어를 만나게 됩니다. 이번 포스팅에서는 이러한 용어의 정의, 대표적인 오디오 코덱, MPEG에 대해서 알아보겠습니다.
목차
용어
- 인코딩: 데이터를 특정한 형식으로 변환하는 과정으로 다른 파일 형식으로 변환하는 것을 의미합니다.
- 디코딩: 인코딩된 데이터를 원래의 형식으로 복원하는 과정을 의미합니다.
- 코덱 (Codec): 코덱은 ‘코더 + 디코더’의 합성어로 인코딩과 디코딩을 수행하는 프로그램 혹은 장치입니다.
- 파일 형식/멀티미디어 컨테이너 형식(format): 파일의 구조와 저장된 데이터의 종류를 설명하는 방법입니다. 대표적으로 MPEG-4가 있습니다.
- 확장자: 파일의 이름 뒷부분에 ‘.’ 이후에 붙는, 파일 형식이나 코덱의 “힌트를 주는” 이름입니다. 예를 들어, AAC 오디오 코덱은 주로 .m4a나 .aac 확장자를 사용하고, mp4 파일 형식은 .mp4, .m4a, .m4v 확장자를 사용합니다.
아이폰에서 기본 음성 녹음앱으로 녹음한 파일인 m4a 파일을 예시로 살펴보겠습니다. 위의 용어를 사용해서 m4a 오디오 파일을 살펴보면, m4a 파일은 MPEG-4 형식과 AAC/ALAC 코덱을 이용해서 인코딩된다고 할 수 있습니다.
오디오 코덱(무압축, 손실 압축과 무손실 압축 코덱)
오디오 코덱은 음성 데이터를 압축하고 복원하는 방법을 제공합니다. 압축 여부 및 압축할 때 데이터 손실 여부에 따라서 무압축, 손실 압축, 무손실 압축 코덱으로 분류할 수 있습니다.
무압축 코덱
무압축 코덱은 압축없이 모든 디지털 정보를 보존하는 코덱입니다. 압축을 하지 않기 때문에 데이터의 품질이 손상되지 않으며, 디코딩 과정에서 CPU를 거의 사용하지 않아 재생이 빠르다는 장점이 있습니다. 그러나 이로 인해 파일 크기가 매우 크게 됩니다.
무압축 오디오 코덱의 대표적인 예로는 PCM (Pulse Code Modulation)이 있습니다. PCM은 대부분의 디지털 오디오 시스템, CD 오디오, 컴퓨터 오디오 등에서 사용되는 기본적인 디지털 오디오 형식입니다. PCM 오디오를 저장하는 대표적인 파일 형식은 WAV와 AIFF입니다.
- WAV: Windows에서 주로 사용되는 무압축 오디오 파일 형식입니다. 원본 오디오 데이터를 그대로 유지하기 때문에 오디오 품질이 뛰어나지만, 파일 크기가 큰 편입니다.
- AIFF: Apple에서 개발한 무압축 오디오 파일 형식으로, WAV와 비슷한 특성을 가지고 있습니다.
이런 무압축 코덱은 오디오 품질을 최대한 보존해야 하는 음악 제작, 편집 등의 작업에 주로 사용됩니다. 하지만 일반적인 사용자들이 음악을 듣는 데에는 파일 크기가 너무 크다는 단점 때문에 무손실 압축 코덱이나 손실 압축 코덱이 더 많이 사용됩니다.
손실 압축 코덱
손실 압축은 데이터의 일부를 제거해서 파일의 크기를 줄이는 압축 방법입니다. 주로 제거하는 데이터는 사람이 인식하기 어려운 데이터이기 때문에 품질 저하를 최소화할 수 있지만, 한번 압축한 후에 원본 데이터로 다시 복원할 수는 없습니다.
- MP3 (MPEG-1 Audio Layer III): 가장 널리 사용되는 손실 압축 오디오 코덱 중 하나입니다. 파일 크기를 상당히 줄일 수 있으나, 원래의 오디오 데이터를 완전히 복원할 수는 없습니다.
- AAC (Advanced Audio Coding): MP3보다 향상된 오디오 품질을 제공하는 손실 압축 코덱입니다. Apple의 iTunes와 같은 여러 플랫폼에서 기본 오디오 포맷으로 사용됩니다.
무손실 압축 코덱
무손실 압축은 원본 데이터를 완벽하게 복구할 수 있도록 데이터를 압축하는 방법입니다. 이 방법은 손실 압축보다 파일 크기가 크지만, 오디오 품질은 그대로 유지됩니다
- FLAC (Free Lossless Audio Codec): 오디오 데이터를 압축하지만 원본 데이터를 완벽하게 복원할 수 있는 무손실 압축 코덱입니다. 오디오 품질이 손상되지 않으면서도 파일 크기를 줄일 수 있습니다.
- ALAC (Apple Lossless Audio Codec): Apple에서 개발한 무손실 오디오 코덱으로, FLAC와 비슷한 성능을 제공하지만 Apple 장치와의 호환성이 뛰어납니다.
MPEG
MPEG는 Moving Picture Experts Group의 약자로, 오디오와 비디오 데이터의 압축 방법을 개발하는 국제 기구입니다. MPEG에서 개발한 대표적인 코덱으로는 비디오 코덱인 MPEG-1, MPEG-2, AVC, HEVC 등과 오디오 코덱인 MP3, AAC, USAC, 3D Audio 등이 있습니다.
매직넘버와 스트림으로서의 미디어 파일
매직 넘버는 파일 형식을 식별하는 데 사용되는 바이트 패턴입니다. 멀티미디어 파일을 스트림으로 처리할 때, 매직 넘버를 이용하여 파일 형식을 판단합니다.
위의 사진은 mp4 파일의 매직 넘버입니다.
mp4 파일을 hex editor로 열어서 보면 매직 넘버인 66 74 79 70 69 73 6F 6D로 시작하는 것을 확인할 수 있습니다.