[CS] 압축 (컴퓨터 과학 수업 21/40)

Ham S. J·2022년 12월 3일
0

CS

목록 보기
16/25

text 형식의 파일, wave 형식의 파일 등 지난 영상에서 파일의 저장방식에 대해 알아보았다.
이 파일들의 크기가 비효율적이고 큰 단점을 개선하기 위해 압축(Compression)이 등장한다.

압축(Compression)이라 함은, 원래의 표현보다 더 적은 수의 비트를 사용하여
인코딩하는 것이다.

데이터를 압축하는 한 방법은 바로 '중복된 정보를 줄이는 것'이다.
이런 방법중 하나를 REL(Run Length Encoding)이라 하며 이는 파일 안에 동일한 값들이 있다는 사실을 이용하여 압축하는 방식이다. 파일 안의 중복되는 데이터의 중복 수를 명시하는 방법인데,

일관적인 적용을 위해서 모든 데이터에 대한 추가 데이터가 생겨날 수 있지만,
결과적으로 용량은 줄어든다. 또한 이렇게 압축하는 경우에 데이터 손실또한 일어나지 않기에 이를 무손실 압축(Lossless Compression)이라 불리우며 GIF, PNG, ZIP등의 파일 형식이 이에 해당한다. 해당 방식으로 압축을 한 경우 압축해제시 '원본'을 얻게 된다.

이에 사람들은 더 효율적으로 코드를 생성하길 원했는데,
David Huffman이 Huffman Tree라는 방식을 고안해냈다. 중복 갯수가 가장 적은 두 경우를
계속해서 합병시키며 서로 결코 중복되지 않는 코드를 생성할 수 있다.(4:00부터 설명되는 내용)

무손실 압축과는 다른 압축방식도 존재한다.
손실 압축 기술(Lossy Compression Techniques)라 불리우며 이는 이름 그대로 자료에 손실을가져온다는 것을 유추할 수 있다. 이러한 손실 압축의 대표적인 것으로 오디오 압축기가 있다.

오디오 자료는 압축을 거치면서 손실이 많은데, 서로 다른 주파수 대역을 서로 다른 정밀도로 인코딩하기 때문이다. 초음파 등 동물은 들을 수 있으나사람이 들을 수 없는 대역은 버리거나 덜 정밀하게 인코딩하고목소리, 저음과 같은 주로 듣는 대역의 소리는 더욱 더 선명하고 정밀하게 인코딩을 한다.
(물론 매우 손실이 적은 FLAC 파일과 같은 형식도 최근엔 스트리밍 사이트에서 제공하고 있다.)

이는 곧 인간의 인식과 일치하는 방식으로 정밀도를 버리거나 줄이는 형식을 선택하고 있으며
이러한 것을 "지각적 코딩, Perceptual Coding" 이라 하며 인간의 인지모델에 의존하고 있다.

청각 뿐 아니라 인간의 시각 시스템도 불완전하다. 선명한 대조는 쉽게 감지하나 미묘한 차이는 감지에 어려움을 겪는다. 특히 동영상에서는 시간적 중복(Temporal Redundancy)의 특징을 이용해서 주로 압축을 하는데,

비디오는 반복해서 송출되는 이미지이다. 하지만 모든 프레임마다 해당하는 픽셀을 다시 전송할 필요 없이 중복된 부분에 대해선 앞선 데이터를 그대로 복사하며 이는 효율적이다. 프레임에서 달라지는 부분만 인식하여 그에 대한 변화를 표현한다.

프레임간의 유사성(Inter-Frame Similarity)의 이점을 이용한 압축 방법이라고 할 수 있다.

profile
즐겁게 귀엽게 코딩합시다 !

0개의 댓글

관련 채용 정보