더 나은 파일 포맷을 쓰기 시작합시다

사라져라 .jpg

얼마 전에 제 음악 라이브러리를 정돈했습니다. 하기 전에는 많은 FLAC 와 MP3 파일들이 뿔뿔이 흩어져 있었습니다. 메타데이터가 잘 정돈 돼있지 않거나 아예 없는 파일도 많았으며 엘범 커버마저 빠진 파일도 있었습니다. 또, 일부의 손실 압축 파일은 이미 압축된 유튜브에서 리핑 됐던 것 같습니다.

좀 더 까다롭게 콜렉션을 관리하길 위해서 규칙을 갱신했습니다. 앞으로의 목표는 오로지 FLAC 원본 파일을 다운로드해서 아카이브하기로 했습니다. 저용량 기계로 파일을 옮기고 싶을 때는 손실 압축 파일로 트랜스코드 할 겁니다. 이걸로 단 한 개의 원본 파일만 갖고 있으면 되고 작은 파일이 필요할 때는 무손실 원본이랑 구별하기 어려운 손실 압축 파일을 이용하면 관리가 쉬워집니다..

그리고 앞으로 쓸 손실 압축 포멧을 찾았습니다. MP3 가 아닌 Opus 입니다. 모두에게 추천합니다.

오퍼스는?

개요는, Opus 는 MP3 보다 훨씬 새롭고 기술적으로 뛰어난 오디오 포맷입니다. 많은 비디오 및 음악 스트리밍 서비스에 쓰이며 VoIP 통신에 쓰입니다. Opus 는 MP3 보다 용량 효율성이 상당히 더 높습니다. 같은 크기의 MP3 와 비교하면 음질이 낫고 음질이 같으면 파일 사이즈가 더 작습니다.

MP3 는 30년이나 넘은 포맷입니다. 개발 당시의 컴퓨터의 성능과 용량은 현대 컴퓨터에 비해 수천배나 낮았으니 개발 범위는 그 기술력을 마춰줘야 했습니다. MP3 는 출시됐을 때에 혁명적이었습니다. 10 몇 곡을 담는 CD 는 수백개의 곡을 담을 수 있고 바지 주머니에 들어가는 휴대한 기계한테 밀릴수 밖에 없었습니다. 하지만 MP3 의 혁명적인 시기는 지났고 기술력은 30년간 더욱더 발전했습니다.

오디오 포맷의 음질의 중점은 비트레이트 (bitrate) 입니다. 더 높은 비트레이트는 아날로그 원본의 더 많은 데이터를 담으니 음질도 더 원본이랑 가깝지만 파일 크기도 증가합니다. 저는 개인적으로 MP3는 320 kbps (초당 320 킬로비트) 야지 무손실 원본이랑 구별이 거의 불가능하다고 생각합니다. 길이가 3-4분 되는 MP3 파일 크기는 대략 10MB 입니다. 기본 전화기들이 128 GB 를 갖춘 세상에는 충분히 작은 파일 크기이지만 (계다가 어차피 다들 스트리밍 하잖아요) 파일은 더 작을수록 더 좋지 않습니까. 비트레이트를 낮춰 128 kbps MP3 를 사용할 수 있지만 이 비트레이트에서는 음질의 손실이 싸구려 헤드폰에도 쉽게 들립니다.

반면, Opus 는 제 경혐으로 약 128 kbps 까지 손실 무손실 구별하기 어렵습니다. 즉, 같은 원본 무손실 파일에서 MP3 와 Opus 로 트렌스코딩 한 파일 크기를 비교하면 음질은 같지만 Opus 가 3배나 더 작을 수 있습니다. 저는 Opus 를 이용해서 전화기 음악 콜렉션을 6 GB 에서 2.5 GB 까지 줄일 수 있었습니다. 또, Opus 는 낮은 비트레이트에 효율성이 아주 높습니다. MP3 는 비트레이트가 100 kbps 미만으로 떨어지면 음질이 팍 느낄정도로 나빠집니다. Opus 는 50 kbps 까지 낮춰도 음질 손실이 작다고 들었습니다.

짧게 말하자면 Opus 는 MP3 보다 훨씬 효율적입니다. 덤으로 다양한 용도에 쓰이니 호환성도 높습니다. 또, Opus 는 실시간 통신에 매우 중요한 낮은 레이턴시 같은 기타 장점이 있습니다. 반드시 구식 기계에 오디오를 재생해야 되는 이유가 없다면 Opus 를 써서 잃는게 없습니다.

이미지 포맷도 대체하세요

오디오에 Opus 를 쓸거면 한 발짝 더 나가서 이미지에 JPEG 과 PNG 를 바꾸세요. 단, 이미지 포맷은 다른걸로 바꾸기가 좀 더 어렵습니다.

The Opus analog for images is split into three file formats: 오디오에 Opus 처럼 비유되는 현대 이미지 포맷들은 아래와 같습니다.

  1. WebP
  2. AVIF (이 웹사이트의 바탕 포맷)
  3. JPEG XL

이 셋 중에서 WebP 가 가장 흔히 쓰입니다, 특히나 웹사이트 사이에. 여러분도 이미 발견 했을 수도 있습니다. 어떤 이미지를 다운 받고 열려고 했는데 쓰는 이미지 뷰어가 열지 못 했습니다. WebP 는 이 때문에 약간의 미움을 받습니다, 이미지를 열려고 했는데 예상한 JPEG 나 PNG 가 아닌 포맷이니. 이건 WebP 를 지원 않하는 개발자의 문제입니다.

AVIF 와 JPEG XL 은 더 새롭고 덜 지원된 포맷들 입니다, JPEG XL 이 특히나. AVIF (제가 지금으로 선호하는 포맷)은 AV1 비디오 코덱을 기반으로 만들어진 이미지 포맷입니다. AV1 은 기존 H.264 (이른바 MP4) 를 대체할 목적으로 만들어졌습니다. JPEG XL 은 30년이 된 JPEG 를 직접 이을 포맷입니다.

왜 이미지 포맷을 바꿔요?

두 개의 유력한 이유가 있습니다.

첫 번째는 파일 크기입니다. 신형 포맷은 용량을 상당히 덜 사용합니다. 제 가족에 카메라 렌즈가 3개 달린 신형 전화기를 쓰는 사람들이 있습니다. 저한테 공유된는 사진 한 장씩 크기가 무려 7-8 MB 입니다. 어떻게 JPEG 한 장이 3분짜리 Opus 오디오 파일의 크기의 두 배가 되는지 이해 안 됩니다. AVIF 나 WebP 를 사용하면 쉽게 파일 크기가 50% 감수 하고 화질은 98% 유지 될 건데요.

많은 전화기 카메라가 파리 눈 수준의 렌즈를 탑제하는 추세인데 아직도 이미지 포맷을 JPEG 을 이용한다는게 머리에 거슬립니다. 큰 회사들이 클라우드 스토리지를 쓰게 만들려고 미는게 아닌가 하는 음모가 되도 무방하겠습니다. 새 이미지 포맷을 쓰면 쉽게 사진 용량을 절반으로 줄일 수 있을텐데 답답합니다.

새 포맷을 쓸 두 번째 이유는 지원된 기능입니다. 예를 들면 JPEG 은 투명도를 지원하지 않습니다. JPEG 와 PNG 둘 다 에니메이션을 지원 하지않습니다 (APNG 는 무시하기로…). 새 포맷들은 투명도와 에니메이션을 포함한 다양한 기능을 지원하며 시간이 지날수록 JPEG 와 PNG 는 점점 뒤떨이질겁니다.

이 더 나은 이미지 포맷들의 유일한 단점은 의외로 지원이 별로인 겁니다. 웬만한 웹 브라우저들은 모든 포멧을 지원하는데 AVIF 가 지원된 프로그램을 찾기 의외로 어렵습니다. 그나마 WebP 는 지원이 더 나은 편이라 쓸 수 있겠지만 JPEG XL 은 아직 알파 단계이니 지금은 고려하지 않아도 됩니다.

사실 WebP 가 괜찮다고 생각합니다

얼마전만 해도 저도 WebP 를 안 좋아했습니다. 이 파일을 다운 받으려고 할 때 “왜 그냥 PNG 면 안 되나” 라고 짜증냈습니다. 그런데 웹사이트를 만드다보면 효율성을 추구하게 됩니다. 그러면서 비구식적인 파일 포맷을 좋아하게 됐습니다. 다만, 많은 프로그래이 지원 해줬으면 좋겠지만요.

새 포맷들은 낡은 것들보다 기술적으로 우수하니 되도록이면 사용하는게 좋을 것 같습니다. 제가 쓰는 배경화면 프로그램이 AVIF 을 지원하면 갖고있는 모든 배경화면을 AVIF 로 바꿀겁니다.