이 문서는 더 효율적인 Video Analysis를 위한 encoding에 대한 내용입니다.
2022년 11월 3일에 Jeff, Edint님이 말씀해주신 키워드를 2022년 11월 7일에 개인적으로 정리해서 작성해봅니다.
이 문서의 주제, H264 vs H265를 이해하기 위한 기본적인 CS 지식에 대한 내용들입니다.
Codec의 정의, 목적, 작동원리, 일반화된 특징 등을 포함하고 있습니다. 높은 수준으로 추상화된 내용이므로, 더욱 자세한 내용은 별도의 문서를 참고해주세요.
Codec = Decoder + Encoder
대용량의 데이터를 압축 및 압축 해제하는 HW 및 SW 기반 프로세스입니다.
일반적으로 Codec 은 다음과 같은 목적으로 사용합니다.
비트 전송률이 높을수록 압축이 적습니다.
압축률이 낮다는 것은 일반적으로 전체 품질이 더 높거나 원본에 더 가깝다는 것을 의미합니다.
일부 Codec은 합리적으로 허용되는 품질의 더 작은 파일을 생성하지만 편집하기가 더 어렵습니다.
다른 Codec은 고품질이지만 더 많은 공간을 차지하는 비효율적인 파일을 만듭니다.
또 다른 Codec은 작고 효율적인 파일을 생성하지만 전반적인 품질이 부족합니다.
데이터 스트림이 다른 멀티미디어 파일은 함께 캡슐화됩니다.
예를 들어, 오디오와 비디오가 모두 포함된 멀티 미디어 파일은 함꼐 캡슐화됩니다.
HEVC(H.265), AVC(H.264)
H264는 가장 대중적인 Codec으로 사실상 국제적인 압축 및 전송 표준과 동의어처럼 사용되고 있습니다.
이는 AVC, Advanced Video Codec, 이라고도 불립니다.
기존까지 존재했던 Codec에 비해서 High quality, Low bit rate라는 특징을 가지고 있으며, 이에 다라서 녹화, 편집, 플랫폼, 스트리밍 등의 다양한 서비스의 표준으로 선택되어 있습니다.
이 Codec을 사용하고 있는 확장자는 다음과 같습니다.
기술적인 관점에서,
H264는 Macro Block 기반의 비디오 압축 표준입니다.
Macro Block은 (기본적으로) 16 x 16 pixel 으로 이루어진 단위로서, 이를 이용하여 비디오 콘텐츠를 Encode, Decode하게 됩니다.
H265는 High Efficient Video Codec입니다.
최대 표현력 이 (가로,세로) 8,192pixel 4,320pxiel 에 달합니다.
또한, 25~50%의 데이터 압축률을 보여주기도 합니다.
이러한 H265는 최대 64pixel x 64pixel까지 이 수많은 CTU 들로 구성되어 있습니다. 따라서 더육 효율적인 압축을 할 수 있는 장점을 가져옵니다.
하지만, 다음과 같은 단점도 존재합니다.
이러한 특징 탓에 HEVC, High Efficiency Video Coding라고도 불리며, 이 Codec을 사용하고 있는 확장자는 다음과 같습니다.
많은 글만 보았을 때는 Compress Rate, BIt Rate 등에서 우월한 H265를 사용해야 할 것 같습니다.
하지만, 실제로는 H264를 사용하는 것을 많이 보는데, 그 이유는 브라우저 및 디바이스 호환성 때문입니다.
기본적으로 H265는 iOS 기기 기반의 Safari, Safari on iOS 에서 밖에 지원이 되지 않습니다.
따라서, 호환성 문제로 인해서 H264를 사용해야 합니다.
사실 개발자로서 기술적인 내용이라기 보다는 조금 겉돌기 지식에 가깝다고는 생각을 하지만,
Youtube / Digi Pro Tips 에서 만든 H264 Vs H265 - Which Should You Use? 을 확인해보세요!