Compressed Multimedia Data - Data Compression Tech

Havi·2020년 11월 1일
0

Sampling & Quatization

Sampling

표본화. 아날로그 함수를 디지털화하기 위해 정해진 주기로 값을 수집하는 것을 말한다. PCM 등 디지털 기록 체계의 최우선 사항이다.

나이퀴스트-섀넌의 정리 : 샘플링을 할때 원음이 가지는 최대 주파수의 2배 이상으로 촘촘히 하면 손실이 발생하지 않는다

Quatization

아날로그 신호의 크기는 uncountable이지만 디지털 신호의 크기는 countable이다.
따라서 아날로그를 디지털로 바꾸려면 양자화를 진행해야함

샘플링된 신호의 크기를 가장 가까운 허용된 값으로 근사시킴

손실이 발생하는 비가역적 과정

Lossy vs Lossless

Lossy

사진, 음악, 동영상 등 주로 멀티미디어 데이터에서 인간이 지각하기 힘든 범위의 데이터를 버리고 압축하는 방법을 사용하는 포맷.

동영상 포맷

동영상 코덱 중에서 효율성이 뛰어나고 상당히 범용화된 것이 H.264. 기존의 MPEG 계열 비디오 코덱의 깍두기 현상을 어느정도 해결한 코덱이기 때문.

유튜브와 같이 화질보다 속도를 중요시하는 스트리밍에서 손실 압축 포맷으로 용량을 줄이는것이 업계의 핵심

용량 대비 화질 효율은 일반적으로 MPEG-2, Theora < WMV9 < Xvid < VP8 < H.264 < VP9 < HEVC < AV1 순이다.

오디오 포맷

무손실 WAV파일을 MP3 8~128Kbps 정도로 저장하면 왠지 소리가 틱틱대는 것 등이 대표적이다.
또한, 유투브 음원 추출 사이트에서 얻는 음원도 그대로 저장하면 추후 재생시에 틱틱대는 소리가 들린다.

참고로 오디오 분야(음반 제작 등)에서는 48kHz 16비트 스테레오의 비압축 PCM 파일의 비트레이트가 기껏 1.5Mbps에 그치기에 비압축 파일로 작업하는 경우가 많다.

그림 포맷

그림판으로 빨간 선을 그은 다음 JPG로 저장하면 빨간색이 탁해지는 현상이 대표적이다.

용량 대비 화질 효율은 JPEG < WebP < HEIF ≒ BPG < AVIF 순이다.

Lossless Compression

어떤 자료를 디지털화 할 때 해당 자료의 엔트로피만큼의 용량이 있으면 충분

102310231023이라는 12바이트의 데이터를 1023=a로 치환해서 aaa라고 표현할 수 있고, 사전 데이터에 1023=a로 기록해 놓으면 총 3바이트를 절약하게 된다.

압축률은 대부분의 경우 손실 압축보다 떨어지며, 이미 다른 압축 포맷을 적용하였다면, 또 다른 압축 포맷을 적용해도 별로 효용성이 없다.

일반 포맷

ZIP, RAR, 7z, ALZ, EGG 등의 모든 파일 압축 포맷

음악 포맷

원본 음질을 유지하려는 사람들이 이 형태로도 공유

주류 포맷 : .ape .flac Apple lossless

이미지 포맷

PCX, GIF, PNG 등이 이에 속한다. GIF도 무손실 압축 포맷이

256색을 담는 gif포맷 자체는 무손실이며, 애초에 256색이 아닌 그림을 gif로 저장하기 위해 색상수를 줄이는 작업은 gif포맷과 별개로 일어나는 별도 손실작업

Raw 포맷

Raw 포맷이라 하면 대부분 디지털 카메라에서 주로 쓰이는 raw 이미지 포맷을 가리킨다.

엄밀히 말하자면, raw에는 압축의 개념이 가해지지 않으므로 "무손실 압축"에서 다뤄질 필요는 없다.

동영상 포맷

동영상은 무손실 압축 포맷은 많지 않다. 적어도 특수 직종에 일하지 않는 일반인이 볼 일은 없다.

Huffman Code

허프만 부호화는 무손실 압축에 쓰이는 엔트로피 부호화의 일종으로, 데이터 문자의 등장 빈도에 따라서 다른 길이의 부호를 사용하는 알고리즘이다.

적게 나오는 문자일수록 더 긴 부호를 쓰고 많이 나올수록 더 짧은 부호를 쓴다.

빈도가 정렬되어 있을 경우 O(n)만에 가능

산술 부호화나 LZW 등이 허프만 부호보다 효율적인 경우가 많으며,

이것은 대부분 하나의 기호를 정수개의 길이를 가진 부호로서 표현하도록 되어 있는 한계에서 기인한다.

URL escape code

퍼센트 인코딩이라고도하며, URL encoding에 사용된다.

%뒤에 아스키 코드의 hex(16진수)값을 붙여준 것. URL은 스페이스(space)를 포함할 수 없기 때문에, 스페이스는 %20으로 대체되는 것이 보통

ex)
http://namu.wiki/w/나무위키
->
http://namu.wiki/w/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4

ZIP

필 캐츠(Phil Katz)가 1989년 만든 무손실 압축 포맷.
정확히 말하자면 ZIP 포맷은 여러개의 파일을 압축해서 하나의 파일로 만들기 위한 컨테이너 포맷이고,
ZIP 내부의 데이터 압축은 Deflate 알고리즘을 사용한다.

bzip2, LZMA 와 같은 최신 압축 알고리즘도 지원하도록 표준에 포함시켰으며,
요즈음 업데이트 되는 최신 압축 프로그램들은 대부분 이 알고리즘의 압축 해제를 지원한다.

유니코드 파일지원이 정의된 것은 2006년으로 늦은 편.
게다가 지원하지 않는 프로그램도 많기 때문에, 일찌감치 유니코드를 제대로 처리하기 시작한 RAR 이나 7Z에 비하면 호환성이 떨어지는 편.

7Z

프로그래머 Igor Pavlov가 만든 오픈소스 압축 프로그램.

라이센스는 LGPL로 이 프로그램의 가장 큰 장점은 자유 소프트웨어라는 것이다.

자체포맷인 7z와 함께 zip, tar, gz, bz2 등의 자유(free)포맷들과 rar, cab, arj, lzh 등의 비자유(non-free)포맷들을 지원한다.

7z 포맷은 LZMA2 알고리즘을 사용

대중화, 멀티코어에서 빠른 속도 , 압축율 등의 장점이 있음

RAR

Eugene Roshal이 만든 무손실 압축 포맷

1993년에 처음 공개 -> 기존 포맷보다 압축율이 좋고 빠름, 분할압축기능, 파일이 깨져도 리커버리 레코드 기능등 의 장점으로 인기

7zip과 같이 사용

대용량 파일을 보낼때 유리(7z에서는 오류 정정이 힘듬)

profile
iOS Developer

0개의 댓글