계산 한 내용은 압축되지 않은 원본 비디오의 비트 전송률입니다. 일반적으로 연구 또는 기타 특수 응용 프로그램을 제외하고는 이러한 기능을 찾을 수 없습니다. 방송사도 압축 된 비디오를 사용하지만 일반적인 YouTube 비디오보다 비트 전송률이 훨씬 높습니다.
따라서 비디오 품질은 비디오 압축 방식과 관련이 있습니다. 압축할수록 프레임 당 더 적은 비트가 필요합니다. 또한 압축할수록 품질이 떨어집니다. 이제 일부 비디오는 다른 비디오보다 압축하기가 훨씬 쉽습니다. 본질적으로 해상도와 프레임 속도가 동일하더라도 비트 전송률이 낮은 이유입니다.
이것이 왜 그런지 이해하려면 비디오 압축에 사용되는 두 가지 기본 원칙을 알고 있어야합니다. 이를 "공간"및 "시간 중복"이라고합니다.
공간 중복
공간 중복성은 자연적인 내용을 보여주는 이미지에 존재합니다. 이것이 JPEG 가 잘 작동 하는 이유 입니다. 픽셀 블록을 함께 코딩 할 수 있기 때문에 이미지 데이터를 압축합니다. 예를 들어 8 × 8 픽셀입니다. 이것을 "매크로 블록"이라고합니다.
최신 비디오 코덱도 동일한 기능을 수행합니다. 기본적으로 프레임 단위로 프레임을 압축하기 위해 JPEG와 유사한 알고리즘을 사용합니다. 따라서 픽셀을 더 큰 그룹으로 "요약"하기 때문에 더 이상 픽셀 당 비트를 저장하지 않고 매크로 블록 당 비트를 저장합니다. 이들을 요약하면 알고리즘은 육안으로 볼 수없는 정보도 버립니다. 여기서 대부분의 비트 전송률을 줄일 수 있습니다. 데이터 를 양자화 하여 작동 합니다. 이것은 우리가 볼 수없는 것보다 더인지적이고 "버려지는"주파수를 유지합니다. 양자화 계수는 대부분의 코덱에서 "QP"로 표시되며 품질의 주요 제어 노브입니다.
이제 동일한 이미지로 이전에 인코딩 된 매크로 블록에서 매크로 블록을 예측할 수도 있습니다 . 이를 인트라 예측 이라고 합니다. 예를 들어, 회색 벽의 일부는 이미 프레임의 왼쪽 상단에 인코딩되어 있으므로 동일한 매크로에서 해당 매크로 블록을 다시 사용할 수 있습니다 (예 : 옆에있는 매크로 블록). 이전과의 차이점을 저장하고 데이터를 저장합니다. 이런 식으로, 우리는 서로 매우 유사한 두 개의 매크로 블록을 인코딩 할 필요가 없습니다.
동일한 이미지 크기에서 비트 전송률이 변경되는 이유는 무엇입니까? 글쎄, 일부 이미지는 다른 이미지보다 인코딩하기가 더 쉽습니다. 공간 활동이 높을수록 실제로 인코딩해야하는 시간이 더 많아집니다. 부드러운 질감은 세부적인 질감보다 적은 비트를 차지합니다. 인트라 예측도 마찬가지입니다. 회색 벽의 프레임을 사용하면 하나의 매크로 블록을 사용하여 다른 모든 블록을 예측할 수 있지만 흐르는 물의 프레임은 제대로 작동하지 않을 수 있습니다.
시간 중복
다른 프레임 다음에 오는 프레임은 이전 프레임과 매우 유사하기 때문에 존재합니다. 대부분의 경우 약간만 변경되므로 완전히 인코딩하는 것은 의미가 없습니다. 비디오 인코더의 기능은 매크로 블록에서와 마찬가지로 두 개의 후속 프레임 간의 차이 를 인코딩하는 것입니다.
움직임 보상 에 관한 Wikipedia의 기사에서 예를 들어 , 이것이 원래 프레임이라고 가정 해 봅시다.
다음 프레임과의 차이점은 다음과 같습니다.
이제 인코더 는 픽셀 별 값이 아니라 실제 차이 만 저장 합니다. 이것이 각 프레임에 사용 된 비트가 매번 동일하지 않은 이유입니다. 이러한 "차이"프레임은 완전히 인코딩 된 프레임에 의존하기 때문에 최신 코덱에는 두 가지 유형의 프레임이 있습니다.
비디오에 I- 프레임을 삽입해야하는 경우가 있습니다. 실제 비트 전송률은 사용 된 I- 프레임 수에 따라 다릅니다. 또한, 두 개의 후속 프레임 사이에 움직임의 차이가 클수록 인코더가 더 많이 저장해야합니다. "아무것도"움직이는 비디오는 스포츠 비디오보다 인코딩하기 쉽고 프레임 당 더 적은 비트를 사용합니다.