같은 영상을 두고 어떤 파일은 용량이 크고 어떤 파일은 작은데 화질은 비슷한 경우가 있습니다. 이 차이는 영상을 얼마나 효율적으로 압축했는지에서 나옵니다. 영상은 그대로 두면 용량이 어마어마하게 커지기 때문에 거의 모든 영상이 어떤 방식으로든 압축되어 있는데, 그 압축이 어떻게 이루어지는지를 알아두면 변환할 때 결과를 가늠하기가 한결 쉬워집니다.
영상이 왜 압축이 필요한가
영상은 본질적으로 정지된 그림이 빠르게 이어지는 것입니다. 1초에 30장의 그림이 지나간다면 1분에 1800장이 됩니다. 한 장의 그림도 용량이 적지 않은데 이것이 1초에 수십 장씩 쌓이니 압축 없이는 도저히 다룰 수 있는 크기가 아닙니다. 그래서 영상 파일은 거의 예외 없이 압축된 상태로 저장됩니다.
압축은 원본을 그대로 두는 것이 아니라 일부 정보를 줄여 용량을 작게 만드는 일입니다. 사람 눈에 잘 띄지 않는 부분의 정보를 솎아내고 비슷한 장면이 이어질 때 변하는 부분만 기록하는 식으로 용량을 줄입니다. 어떤 정보를 어떻게 줄이는지에 따라 같은 영상도 결과가 크게 달라집니다.
손실 압축과 무손실 압축
압축에는 크게 두 가지 방식이 있습니다. 손실 압축은 원본의 일부 정보를 버리고 그만큼 용량을 크게 줄이는 방식입니다. 한 번 버린 정보는 되돌릴 수 없지만 사람 눈으로는 차이를 느끼기 어려운 정보만 골라 버리기 때문에 용량 대비 화질이 합리적으로 유지됩니다. 대부분의 영상 파일이 이 방식을 씁니다.
무손실 압축은 원본의 모든 정보를 그대로 유지하면서 표현 방식만 효율적으로 바꾸는 방식입니다. 화질이 전혀 손상되지 않지만 용량이 크게 줄지는 않습니다. 사진 편집이나 영상 후반 작업에서 여러 번 변환을 거쳐야 할 때 손실이 누적되지 않도록 무손실 방식을 쓰기도 하지만, 일반 보관과 재생용으로는 손실 압축이 현실적입니다.
두 가지 압축 방식
같은 화면을 다시 그리지 않는다
영상 압축의 핵심 아이디어는 한 가지로 정리됩니다. 옆에 있는 장면이 비슷할 때 그것을 다시 통째로 기록하지 않는다는 것입니다. 카메라가 멈춰 있고 배경이 그대로라면 두 번째 장면은 첫 번째 장면과 거의 같습니다. 이때 두 번째 장면 전체를 다시 기록하는 대신 달라진 부분만 짧게 적어 두면 용량이 크게 줄어듭니다.
그래서 움직임이 적은 영상은 압축이 잘 되고, 움직임이 많거나 장면이 자주 바뀌는 영상은 압축이 잘 되지 않습니다. 같은 길이의 영상이라도 정적인 강연 영상은 작게 압축되지만 액션이 많은 스포츠 영상은 용량이 훨씬 커지는 이유가 여기에 있습니다. 영상의 성격이 용량을 결정합니다.
키 프레임이라는 기준점
달라진 부분만 기록하는 방식에는 한 가지 약점이 있습니다. 영상을 중간부터 재생하려 할 때 그 시점의 화면을 그리려면 처음부터 모든 변화를 따라가야 합니다. 이 문제를 풀기 위해 영상에는 일정 간격으로 전체 화면을 통째로 기록한 기준점을 둡니다. 이것이 키 프레임이라 불리는 장면입니다.
키 프레임은 영상을 빨리감기나 되감기 할 때 기준점이 됩니다. 키 프레임 사이의 간격이 좁으면 어디서나 빠르게 시작할 수 있지만 용량이 늘어나고, 간격이 넓으면 용량은 줄지만 영상 탐색이 답답해집니다. 변환 도구에서 키 프레임 간격을 조절할 수 있는 경우가 있는데, 일반적인 보관용이라면 기본값으로 두는 편이 무난합니다.
비트레이트가 결정하는 것
같은 압축 방식이라도 비트레이트를 어떻게 잡느냐에 따라 결과가 달라집니다. 비트레이트는 1초의 영상에 담기는 정보의 양인데, 이 값을 크게 잡으면 더 많은 정보를 담을 수 있어 화질이 좋아지고, 작게 잡으면 정보가 부족해 화질이 떨어집니다. 압축은 정보를 줄이는 일이고 비트레이트는 줄여진 결과의 크기를 정하는 셈입니다.
비트레이트가 너무 낮으면 움직임이 많은 장면에서 네모난 얼룩이 보이거나 화면이 뭉개집니다. 압축이 정보를 너무 많이 버린 결과입니다. 반대로 비트레이트를 무작정 높여도 어느 지점을 넘으면 화질이 더 좋아지지 않습니다. 영상의 성격에 맞는 적정 비트레이트를 찾는 것이 중요한데, 이는 결국 결과를 보면서 정하는 일입니다.
한 번에 정하느냐 변동하느냐
비트레이트를 정하는 방식도 두 가지가 있습니다. 영상 전체에 같은 값을 적용하는 방식과, 장면에 따라 비트레이트를 변동시키는 방식입니다. 고정 방식은 결과 용량을 예측하기 쉽지만 단순한 장면에 과한 정보를 쓰고 복잡한 장면에는 부족한 비효율이 생깁니다.
변동 방식은 정적인 장면에서 비트레이트를 낮추고 복잡한 장면에서 높이는 식으로 같은 용량을 더 효율적으로 씁니다. 결과적으로 비슷한 용량에서 더 나은 화질을 얻을 수 있어 보관용으로는 변동 방식이 합리적입니다. 다만 결과 용량이 정확히 예측되지 않아 정해진 크기 안에 맞춰야 하는 상황에서는 고정 방식이 다루기 편합니다.
두 번 압축하면 손해가 쌓인다
손실 압축된 영상을 다시 손실 압축하면 손실이 누적됩니다. 한 번 버린 정보는 돌아오지 않으므로 변환을 거듭할수록 화질이 떨어집니다. 처음에는 잘 보이지 않던 차이가 두세 번 변환을 거치면 눈에 띄게 나빠지는 경우가 흔합니다. 같은 영상을 여러 형식으로 만들어야 한다면 원본을 두고 거기서 각각 변환하는 편이 손실을 줄입니다.
원본이 이미 강하게 압축된 영상이라면 그것을 다시 압축할 때 손실이 더 빨리 누적됩니다. 인터넷에서 받은 영상을 다시 변환할 때 처음 받은 그 상태가 이미 여러 번 압축된 결과일 수 있다는 점을 염두에 둬야 합니다. 변환이 늘 화질 개선이 아니라는 사실, 오히려 줄어드는 일에 가깝다는 사실을 잊지 않는 것이 좋습니다.
해상도와 압축의 관계
해상도가 높을수록 한 장면에 담아야 할 정보가 많아 같은 화질을 유지하려면 비트레이트도 함께 높여야 합니다. 그런데 같은 비트레이트를 두고 해상도를 무작정 높이면 한 점에 할당되는 정보가 줄어들어 오히려 화질이 나빠집니다. 해상도와 비트레이트는 함께 움직여야 합니다.
그래서 화면 크기에 맞는 해상도를 고르는 것이 효율적입니다. 휴대폰에서 볼 영상에 큰 화면용 해상도를 쓰면 보이지도 않는 정보에 용량을 낭비하는 셈이고, 큰 화면에서 볼 영상에 낮은 해상도를 쓰면 부족한 정보로 화면을 채우게 되어 흐릿해집니다. 어디서 볼지를 먼저 정하면 해상도와 비트레이트의 균형이 자연스럽게 잡힙니다.
왜 같은 설정인데 결과가 다를까
같은 코덱과 같은 비트레이트로 변환했는데 도구에 따라 결과가 다른 경우가 있습니다. 압축은 단순한 규칙이 아니라 어떤 정보를 어떻게 버릴지에 대한 수많은 작은 판단이 누적되는 과정이라, 그 판단을 어떻게 하느냐에 따라 결과가 갈립니다. 같은 규격을 따른다고 해서 모든 도구가 같은 결과를 내지는 않습니다.
이는 어느 도구가 더 좋다는 단순한 비교로 끝나지 않습니다. 빠르게 변환하는 데 강한 도구가 있고, 느리지만 화질을 잘 뽑는 도구가 있습니다. 자주 쓰는 도구의 결과에 익숙해지면서 자기 용도에 맞는 것을 찾는 과정이 필요합니다. 처음 변환한 결과를 직접 보고 비교하는 시간이 이후의 작업을 한결 매끄럽게 만듭니다. 도구마다 성격이 다르다는 사실을 인정하고 골라 쓰는 안목이 결국 가장 큰 자산입니다.
압축이 무너질 때
영상을 보다가 화면이 잠깐 뭉개지거나 네모난 얼룩이 생기는 경험이 있습니다. 압축이 그 장면에서 정보를 너무 많이 버려 생긴 일입니다. 인터넷으로 영상을 보는 중에 통신이 불안정해 한순간 적은 정보로 화면을 그려야 했을 때 이런 현상이 나타납니다. 일시적인 문제라면 통신이 안정되면서 풀립니다.
그런데 보관된 영상에서 이런 얼룩이 자주 보인다면 그 영상이 너무 강하게 압축되어 있다는 신호입니다. 비트레이트를 더 높여 다시 변환하면 풀리기도 하지만 원본 자체가 부족한 정보로 만들어진 것이라면 더 높여도 한계가 있습니다. 결국 영상의 화질은 원본의 화질을 넘지 못합니다. 좋은 결과를 원한다면 좋은 원본에서 출발하는 것이 가장 빠른 길입니다.
정리영상 압축은 정보를 줄여 용량을 다루기 위한 기술이며, 무엇을 줄이고 무엇을 남길지가 결과를 결정합니다. 손실 방식과 비트레이트, 키 프레임 같은 개념을 알아두면 변환 결과를 가늠하기 쉬워집니다. 두 번 변환하면 손실이 쌓이고 원본을 넘는 결과는 만들 수 없다는 점이 기본 원칙입니다.