Photo by veeterzy on Unsplash


컴퓨터에서 동영상을 본 사람은 한 번쯤 ‘어떻게 작은 파일 안에 수십만 장이 넘는 화면들이 들어갈 수 있을까?’ 하는 의문을 가진 적이 있을 것이다. 동영상 압축은 막대한 크기의 동영상 데이터에서 필요한 정보만 남김으로써 화질의 차이는 거의 없이 데이터의 양을 수백 분의 일까지 줄이는 기술이다. 동영상 압축에서는 일반적으로 화면 간 중복, 화소 간 중복, 통계적 중복 등을 이용한다.


동영상은 연속적인 화면의 모음인데, 화면 간 중복은 물체가 출현, 소멸, 이동하는 영역을 제외하고는 현재 화면과 이전 화면이 비슷한 것을 말한다. 스튜디오를 배경으로 아나운서가 뉴스를 보도하는 동영상을 생각해 보자. 현재 화면을 이전 화면과 비교하면 아나운서가 움직인 부분만 다르고 나머지는 동일하다. 따라서 현재 화면을 모두 저장하지 않고 변화된 영역에 해당하는 정보만 저장하면 데이터의 양을 크게 줄일 수 있다.


하나의 화면은 수많은 점들로 구성되는데, 이를 화소라 한다. 각각의 화소는 밝기와 색상을 나타내는 화소 값을 가진다. 화소 간 중복은 한 화면 안에서 서로 가까이 있는 화소들끼리 화소 값의 차이가 별로 없거나 변화가 규칙적인 것을 말한다. 동영상 압축에서는 원래의 화소 값들을 여러 개의 성분들로 형태를 변환한 다음, 화질에 거의 영향을 미치지 않는 성분들을 제거하고 나머지 성분들만을 저장한다. 이때 압축 전후의 화소들의 개수에는 변화가 없으나 변환된 성분들을 저장하는 개수가 줄어들기 때문에 화질의 차이가 별로 없이 데이터의 양을 크게 줄일 수 있다. 그런데 화면이 단순할수록 또 규칙적일수록 화소 간 중복이 많아서, 제거 가능한 성분들이 많아진다. 다만 이들 성분을 너무 많이 제거하면 화면이 흐려지거나 얼룩이 ⓐ지는 등 동영상의 화질이 나빠진다. 이러한 과정은, 우유에서 ㉠수분을 없애 전지분유를 만들면 부피는 크게 줄어들지만 원래 우유의 맛이 거의 보존되는 것과 비슷하다.


압축된 동영상에 저장해야 하는 여러 가지의 데이터는 위의 과정을 거쳐 이미 많은 부분이 제거된 상태이다. 통계적 중복은 이들 데이터에서 몇몇 특정한 값이 나오는 빈도가 통계적으로 매우 높은 것을 말한다. 이때 자주 나오는 값일수록 더 짧은 코드로 변환하여 저장하면, 데이터 값을 그대로 저장할 때보다 저장하는 양을 크게 줄일 수 있다.