비디오 코덱은 비디오 데이터를 압축해서 작게 만들고, 다시 풀어서 재생할 수 있게 해주는 규격이다.
⭐ 결론부터 말하면 인코더 가 비디오를 압축시켜 비트 스크림 으로 만들고 디코더가 다시 프레임들로 복원하는 구조이다. → 이때 연산, 데이터량, 발열 등이 전부 트레이트오프 관계에 있다!
<aside> 💡
비디오 코덱의 개념
Codec = COder + DECoder로 비디오 코덱은 이미지 시퀀스를 호율적으로 압축하고 복원하기 위한 규격(H.264, H265, VP9, AV1, MJPEG 등)을 의미한다.동작 방식은 쉽게 설명하면 아래와 같다.
내부 압축 : 블록 분할, 변환(DCT 계열), 양자화로 한 프레임 내 중복을 줄인다.간 압축 : 이전, 이후 프레임과의 차이만 저장하는 예측으로 시간적 중복을 줄인다.🤔 그런데 굳이 왜 비디오 코덱을 통해 비디오 데이터를 압축하고.. 다시 복원하는 절차를 해야하는걸까?
한 번 상상해보면 아래와 같이 예를 들 수 있을 것이다.
만약, 어디 여행을 떠나서 30분짜리 비디오를 촬영했다고 가정해보자.
이 비디오가 만약 압축되지 않았다면 그 크기는 엄청날 것이다.
그 압축되지 않은 쌩 비디오를 휴대폰에 저장하거나 카카오톡이나 에어드랍과 같이 네트워크를 통해 전송하려고 하는 것은 정말 비효율의 끝판왕일 것이다.
압축되지 않은 비디오를 저장하는 과정을 나열하면 아래와 같을 것이다.
8,294,400 바이트일 것이다.30 프레임이라고 가정한다면 HD 비디오의 1초는 248,832,000 바이트( ~ 약 250MB) 일 것이다. (1초가…?)약 47GB 이며 만약 2시간짜리 어벤져스 영화다? 그러면 거의 약 170GB이다.⚡ 여기서 명심해야할 게 비디오 만 이다. 오디오나 특수한 오버헤드를 제외한 것이다..