최근 수정 시각 : 2020-03-07 20:50:51

무손실 압축 포맷

1. 개요2. 압축의 원리3. 종류
3.1. 일반 포맷3.2. 음악 포맷3.3. 이미지 포맷3.4. Raw 포맷3.5. 동영상 포맷
4. 무손실 압축 포맷 목록5. 관련 문서

1. 개요

Lossless compression, 말 그대로 압축된 상태에서도 디지털 원본과 100% 똑같은 형태를 유지하는 방식이다. 반대 개념은 ' 손실 압축 포맷'이다. 대표적인 손실 압축인 MP3 JPEG과 달리, 무손실 압축 포맷은 원본의 데이터를 조금도 훼손하지 않고 용량을 줄이게 된다.

다양한 자료는 이쪽 링크를 참고하자. 위키백과 무손실 압축 포맷 문서(영어)

2. 압축의 원리

클로드 섀넌의 부호화 정리에 따르면, 어떤 자료를 디지털화 할 때 해당 자료의 엔트로피만큼의 용량이 있으면 충분하다. 그러나 대부분의 경우, 어떤 자료를 디지털 자료로 변환할 때, 파일 관리의 편리성 등을 높이기 위해 필요 이상의 용량을 소모하는 경우가 많다. 자료 저장 시 이론상 가능한 최소의 용량만 사용할 경우 자료를 저장할 때마다 새로운 저장 방식을 골라야 하므로 파일 관리가 매우 힘들어진다. 이 과도하게 사용되는 용량을 줄이는 것이 바로 무손실 압축이다. 바꿔 말하자면 파일의 용량과 엔트로피의 차이가 적을수록 압축의 효과가 떨어진다는 말이 된다.

방식에 따라 다르지만, 원리를 간단하게 설명하자면 파일 내에서 디지털 패턴이 여러 번 나오는 지점에 그런 게 있다는 것만 표시해 두고, 그 표시된 것과 원본을 그대로 복구하기 위해서 그에 관련된 사전을 저장한 후 압축 파일을 만든다. 예를 들면, 102310231023이라는 12바이트의 데이터를 1023=a로 치환해서 aaa라고 표현할 수 있고, 사전 데이터에 1023=a로 기록해 놓으면 총 3바이트를 절약하게 된다. 일반적으로는 압축으로 줄여 놓는 용량이 이 사전의 용량보다 훨씬 크지만, 파일 용량과 엔트로피의 차이가 거의 없다면 이 사전 용량 때문에 압축 후 파일 용량이 커지는 경우도 나온다.

이로 인해 압축률은 대부분의 경우 손실 압축보다 떨어지며, 이미 다른 압축 포맷을 적용하였다면, 또 다른 압축 포맷을 적용해도 별로 효용성이 없다. 또는 원래부터 압축된 데이터(이미 압축한 파일, mp3, 동영상 등)는 또 압축해 봐야 소용 없다. 일부러 보관의 편의를 위해 다중 압축파일을 만들고 또 통 압축 파일을 만들거나 하는 경우는 있다. 이런 경우에는 압축이라기보다 그냥 무압축 컨테이너 개념으로 사용한다.

3. 종류

3.1. 일반 포맷

모든 종류의 파일에 대해 범용적으로 사용하는 압축 방식들은 '무손실' 이라는 말을 생략하고 있다. 그러니까, ZIP, RAR, 7z, ALZ, EGG 등의 모든 파일 압축 포맷은 당연히 이 방식이다. 파일을 손실 압축하면 데이터가 변형되니까 곤란하기 때문.

윈도우 사용자가 압축 포맷으로 가장 많이 오해하는 tar는 사실 압축 포맷이 아니다. 초창기 유닉스에서의 tar는 압축을 하지 않고 권한 정보(리눅스/유닉스/맥)를 포함하여 다수개의 파일을 하나로 합쳐 주는 기능만을 했었고, 나중에 압축을 동시에 해주는 z옵션이 제공된 후 세대 사용자들은 tar를 압축 프로그램으로 오해하기도 한다.

3.2. 음악 포맷

본 용어가 가장 흔하게 쓰이는 쪽은 음악 파일 쪽이다. 무손실이기 때문에 MP3 Vorbis 같은 손실 압축 포맷보다는 용량은 훨씬 크지만, 원본 음질을 유지하려는 사람들이 이 형태로도 공유하고 있다. 그런데 FLAC이랑 MP3랑은 초고가의 오디오 장비가 있어도 구분하기 불가능에 가까울 정도로 쉽지 않다. 음원 추출 시에는 곡 별로 리핑하지 않고 CD 한 장을 통째로 샘플링을 한 뒤에 .cue(bin-cue 형태의 CD 이미지에 쓰는 바로 그것) 형태의 큐시트를 생성할 수도 있다. 압축 시 일반적으로 WAV 파일과 비교하면 약 1/2~2/3 정도 수준 압축이 가능하다. 음원마다 다소 차이가 있으나, 평균 내면 여태껏 100% → 50% 미만이 되도록 압축할 수 있는 포맷은 없다.

주류 포맷은 Monkey's Audio( 확장자 .ape)와 FLAC(확장자 .flac)가 있는데, 애플에서 개발한 Apple Lossless 역시 대기업의 기상으로 점유율을 높이고 있다. 타 무손실 압축과 성격이 비슷하지만 용량이 적고 디코딩이 수월해 휴대용 기기에 적합하다고 하며 2011년에 완전히 오픈 소스가 되었다.

웹상에서는 몇가지 포맷만 유통되고 있는데, 인지도가 낮아서 그렇지 TAK TAK이 이런것도 개발했나 그 TAK은 아니다.이나 Optimfrog 등 더 최적화되어있거나 압축률이 좋은 포맷도 존재한다. 그러나 몇퍼센트 효율 올리자고 보존했던 자료를 일일이 변환하는 것은 그것도 시간 낭비이므로 계속 쓰던 포맷을 이용하게 되는 듯하다. 한 앨범당 못해도 10곡이 넘는다. 1000앨범이면 일만번 변환해야 한다! 통파일이라도 골때리긴 마찬가지.

포맷이 균일해야 한다는 이유 말고도, 무손실 음원 포맷은 2000년대부터 춘추전국시대를 펼치고 있지만 다양한 이유로 널리 사용되지 못하였다. 멀티채널 음원을 지원하지 않아서 5채널 음원을 변환했더니 프로그램이 물어보지도 않고 2채널 보통 음원으로 바꿔버리면 곤란할 거라는 이유. 고효율 압축으로 갈 수록 재생속도가 떨어진다는 이유 등등.. 저 정도면 양반이고, 여태껏 나온 것들을 비교하면 속도도 느려, 압축도 못해 소리가 절로 나오는 포맷 수두룩하다 제각기 포맷마다 단점이 있으므로 최대한 적절한 것들을 골라서 쓰다보니 암묵적으로 flac을 비롯한 3~4개 포맷 사용으로 통일된 것이다.

그 중 가장 대표적인 예는 LosslessAudio(LA)라는 압축인데, 다른 포맷이 최고옵션으로 압축해도 55~64%에서 노는 반면에, 혼자서 53%의 경이로운 압축률을 보여 준다. 그러나 이 포맷은 오류 복구 기능이 없고, 덤으로 재생속도도 느리다.. 한가지에만 올인하다가 실패하면 어떻게 되는 지 보여 주는 사례인 셈. 그 뒤로 어떻게 됐냐고? 2004년 이후로 단 한번의 업데이트가 없었다. 망했어요

3.3. 이미지 포맷

그림 파일 중에서는 PCX, GIF, PNG 등이 이에 속한다. GIF도 무손실 압축 포맷이지만, GIF 최대 지원 색상 수가 256색이기 때문에 만약 256색을 넘는 원본을 GIF로 변환한다면 양자화(혹은 디더링)를 통해서 색상수를 줄이는 과정에서 손실이 발생하는 것이다. 즉 256색을 담는 gif포맷 자체는 무손실이며, 애초에 256색이 아닌 그림을 gif로 저장하기 위해 색상수를 줄이는 작업은 gif포맷과 별개로 일어나는 별도 손실작업이다.[1]

PNG는 GIF와 달리 트루 컬러를 지원하며, 1단계로 이미지 필터링 작업을 거치고, 2단계로 Deflate 압축을 하기 때문에 일반 BMP 파일을 ZIP이나 7ZIP 등으로 압축한 경우보다 훨씬 좋은 압축률을 보여 준다. 특히, 자연 이미지가 아닌 선과 면으로 구성된 이미지 파일은 종종 JPEG 포맷보다도 더 좋은 압축률을 보여 주는 경우도 있다.

또한, HDR 무손실 압축 포맷으로 CG업계에서 자주 쓰이는 OpenEXR이 있다. 확장자는 .exr로, RGBA로 채널당 16비트 또는 32비트 부동소수점을 지원하고 있는데, 이쪽은 여러가지 압축 옵션이 있어 유저가 선택할 수 있다. 다만 손실압축은 데이터 손실의 위험이 있어 지원하지 않고 있다. 그리고 아래 문단에는 없지만 렌더링 결과를 저장하는 OpenEXR파일은 RAW로서 활용된다.

3.4. Raw 포맷

엄밀히 말하자면, raw에는 압축의 개념이 가해지지 않으므로 "무손실 압축"에서 다뤄질 필요는 없다.
Raw 포맷이라 하면 대부분 디지털 카메라에서 주로 쓰이는 raw 이미지 포맷을 가리킨다. Raw 포맷에는 일반적으로는 쓰이지 않을 영역까지 카메라의 센서로 입력된 모든 정보들이 들어있으므로 사진 보정이나 편집 시에는 raw 포맷을 가지고 편집하는 게 일반적이다. 하드웨어 칩셋이나 소프트웨어의 성능이 높아진 요즘에는 키넥트 PS4 Eye 등에서 이런 일반 정보 외의 데이터까지 실시간으로 처리해서 활용되고 있다.

파일 포맷으로서의 raw가 아닌 생짜 데이터로서의 raw라고 부르는 별개의 개념도 있다. 일반적으로 구할 수 있는 가장 생짜에 가까운/정보량이 가장 많은 소스 데이터나[2] (모든건 디지털 데이터화 하기 전에는 아날로그이니)아날로그 데이터를 디지털라이즈 했을 때의 별도 가공 없는 최초 원본의 개념으로 쓰이며, 화상/영상/음성 등의 멀티미디어가 아닌 정부나 기업, NGO의 공적 데이터 같은 통계적인 의미로도 해당된다.

3.5. 동영상 포맷

동영상은 무손실 압축 포맷은 많지 않다. 적어도 특수 직종에 일하지 않는 일반인이 볼 일은 없다. 일반적으로 무손실 동영상의 용량은 무시무시하기 때문에 이를 판매용, 혹은 배포용으로 사용하는 것은 무리가 있다. 계산법은 간단한데, 무압축 기준으로 30프레임 Full HD 1080P 영상이라면 1920×1080×(24 / 8) = 장당 6MB 수준의 RGB24 이미지가 한 프레임을 차지하고 초당 180MB, 분당 11.2GB 가량의 데이터 공간을 쳐묵하게 된다. 영상 데이터 기준이므로 당연히 음성 데이터 제외하고다. 무손실 영상 코덱의 경우 특성 상 무손실 음성 코덱에 비해 압축률이 좋아 대충 1/4 정도로는 압축이 되는데, 그렇게 따져도 원 데이터량이 워낙 넘사벽이라 분당 2.8GB다. 손실 압축이나 TV 방송에서는 YUV를 많이 사용하지만 무손실 영상 코덱은 RGB24를 기본으로 하는 경우가 더 많다. 다만 편집 과정에서의 화질 손상을 방지하기 위해서 Huffyuv나 Lagarith, MSU 등의 무손실 코덱이 사용되기도 한다. 보통은 avisynth나 vfapi를 위시한 프로그램 간의 프레임서버 기능으로 연결하지만 이것이 불가능할 경우에 유용하게 사용할 수 있다.

4. 무손실 압축 포맷 목록

5. 관련 문서


[1] 디더링을 해주는 툴의 실력에 따라 체감적 색손실의 격차가 매우 크다. 예를들어 같은 그림을 각각 그림판과 포토샵에서 gif로 저장하면 디더링 결과의 색체감이 엄청 차이가 난다. [2] 동영상 파일을 예로 들면, 세상 사람들이 전부 영상 업계 내부 인물이 아니니 생짜를 구할 수는 없으므로 생짜에 가까운 데이터를 구하는 것. [3] 손실압축으로 잘 알려진 그 MP3 맞다.

분류