내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
참고: Golden Circle 학습 방법(Golden Circle 규칙이란 무엇입니까? -> 모델 Golden Circle 규칙, 이 문서에서는 이유-무엇)을 사용하여 오디오 H264 비디오 인코딩을 학습합니다. 이 시리즈의 기사는 비디오 인코딩의 지식 체계와 실제적인 방법을 이해하는 데 중점을 두고 있으며, 이론적 측면에서는 오디오와 비디오의 개념의 기원과 다양한 개념 간의 연결에 대해 자세히 설명합니다. 그것이 어떤지, 왜 그런지 알아보세요. 동시에 지식 시스템 구축에 더욱 중점을 두고 있습니다.
이 글에서는 주로 H.264 데이터 압축 과정과 관련 개념에 대해 이야기합니다. H.264 데이터 압축에는 이미지 품질을 최대한 보장하면서 비디오 데이터의 크기를 줄이기 위해 압축하고, 압축하고, 다시 압축하는 단 하나의 목적이 있습니다. 따라서 H.264 데이터 압축을 배우기 전에 먼저 이해해야 합니다. 이 프로세스에 관련된 많은 개념과 방법이 있지만 모든 방법과 프로세스는 압축이라는 목적을 위한 것입니다.
H.264의 데이터 압축 과정은 주로 매크로블록 분할 및 하위 블록 분할 -> 프레임 그룹화 -> 프레임 예측 -> 정수 이산 코사인 변환(DCT) -> CABAC 압축의 주요 단계로 요약됩니다. 구체적인 확장 지침은 다음과 같습니다.
매크로 블록: 비디오 프레임이 H264 인코더의 버퍼로 전송되면 인코더가 매크로 블록을 각 그림으로 분할한다는 것을 이해할 수 있습니다. 기본적으로 H264 인코딩은 16X16픽셀의 영역을 매크로블록으로 사용합니다. (H265는 64X64픽셀의 영역을 사용합니다.) 비디오의 프레임을 매크로블록으로 나누는 효과는 다음과 같습니다.
동시에 위 그림에서는 실제로 16X16 픽셀 매크로 블록을 더 작은 하위 블록으로 나눌 수 있습니다. 하위 블록의 크기는 8X16、16X8、8X8、4X8、8X4、4X4가 될 수 있으며 매우 유연합니다. 다시 하위 블록으로 나누는 목적은 이 데이터를 아주 작은 데이터로 기록하기 위함입니다. 매크로블록이 분할된 후 H264 인코더 캐시의 모든 그림을 그룹화할 수 있습니다.
매크로블록과 하위 블록의 분할을 통해 비디오 코딩을 통해 비디오 콘텐츠를 보다 정확하게 분석 및 처리하고 보다 효율적인 데이터 압축을 달성할 수 있습니다. 비디오 프레임은 16x16 픽셀 크기의 매크로블록으로 분할되며, 이러한 매크로블록은 이미지 콘텐츠의 복잡성을 수용하기 위해 8x8, 8x4, 4x8 등과 같은 더 작은 블록으로 더 분할될 수 있습니다.
인트라 예측과 인터 예측 이전에 프레임 그룹화(GOP 구조)가 정의됩니다. 비디오 인코딩 프로세스에서 프레임 그룹화 설정은 비디오 프레임의 구성과 인코딩 순서를 결정하는 초기 단계 중 하나입니다. 프레임 그룹화의 주요 목적은 데이터 중복을 줄이는 것입니다. 비디오 데이터 중복성은 주로 두 가지 범주로 나뉩니다.
H264 프레임 그룹화 실행 단계:
그룹화가 완료되면 프레임 예측 압축 문제가 해결되기 시작합니다.
이 부분에는 주로 프레임 내 예측과 프레임 간 예측이 포함됩니다. 인트라 프레임 예측은 정적 이미지 프레임을 압축하고 9가지 모드를 통해 각 매크로블록의 픽셀 값을 예측한 후 원본 이미지를 사용하여 잔차 값을 계산하는 것입니다. 그리고 프레임 간 예측(모션 추정 및 모션 보상): P 프레임과 B 프레임에 대해 모션 추정을 통해 이전 프레임 또는 두 프레임 사이의 모션 벡터를 찾은 후 모션 보상 예측을 수행하고 예측 영상을 생성한 후 Residual을 계산합니다. 현재 프레임.
참고: 인트라 예측과 인터 예측의 순서는 코딩된 프레임 유형과 코딩 전략에 따라 다릅니다. 실제 비디오 인코더 구현에서 이러한 단계는 인코딩 프로세스의 일부이며 인코더에 의해 자동으로 처리됩니다. 누가 먼저 처리할 필요는 없습니다.
프레임 내 예측 압축: 공간 데이터 중복 문제를 해결합니다. 공역 중복 데이터란 색상, 밝기 등을 말하며 주로 사람의 눈에 감지되지 않는 정보를 삭제하여 인코딩한 것입니다.프레임 내 예측에 사용되는 원리는 인간의 눈이 이미지를 어느 정도 인식한다는 것입니다. 이는 저주파 밝기에 매우 민감하고 고주파 밝기에는 덜 민감합니다.(16X16의 매크로블록 크기로 이해하면 된다. H264에서는 상위 16픽셀과 가장 왼쪽 16픽셀을 통해 다른 데이터를 예측하므로 원래 16*16=256이 필요한 픽셀 표현 정보를 16+로 변환할 수 있다. 16-1 =정보를 표현하기 위한 31픽셀)。
프레임 간 예측 압축(모션 추정 및 보상): 시간 영역 데이터 중복 문제를 해결합니다. 영상에는 여러 프레임이 시간순으로 선형적으로 배열되어 있어 프레임 간의 상관관계가 매우 강해서 프레임 간에 삭제될 수 있는 데이터가 많습니다.압축 후에는 I 프레임, P 프레임, B 프레임의 세 가지 유형으로 구분됩니다.(설명: 움직임 추정 및 보상 원리: H264 인코더는 먼저 버퍼 헤더에서 두 프레임의 비디오 데이터를 순서대로 가져온 다음 매크로블록 스캐닝을 수행합니다. 사진 중 하나에 객체가 있는 것으로 확인되면 (검색창에서) 가까운 위치를 검색합니다. 이때 다른 사진에서 개체가 발견되면 해당 개체의 모션 벡터를 계산할 수 있습니다. 아래 그림은 검색 후의 당구공 위치입니다.。
P 프레임과 B 프레임의 경우 움직임 예측을 통해 이전 프레임 또는 두 프레임 간의 움직임 벡터를 찾은 후 움직임 보상 예측을 수행하여 예측 영상을 생성하고 현재 프레임과의 잔차를 계산합니다.
이 단계에서는 주로 예측 잔차(Prediction Residual)에 대해 DCT 변환을 수행하고, 공간적 상관관계를 주파수 영역에서 관련 없는 데이터로 변환한 후 양자화합니다. DCT는 주로 데이터나 영상 압축에 사용되는데, 공간적 상관관계를 주파수 영역에서 관련 없는 데이터로 변환한 후 양자화한다.(설명: DCT 변환은 이미지의 더 중요한 정보를 함께 모을 수 있으며, 중요하지 않은 주파수 영역 영역과 계수는 직접 잘라낼 수 있습니다)。
요약: 프레임 데이터 압축 순서는 프레임 간 및 프레임 내 압축을 먼저 수행한 다음 잔여 데이터에 대해 DCT 변환을 수행하여 데이터의 상관 관계를 제거하고 데이터를 추가로 압축하는 것입니다. 다음과 같이:
CABAC 압축은 무손실 압축 기술이자 엔트로피 코딩 방법입니다. CABAC를 압축하고 인코딩할 때 고주파수 데이터는 짧은 코드로 정의되고 저주파 데이터는 긴 코드로 정의됩니다. 이 방법은 VLC 방법보다 더 효율적입니다. CABAC(Context-Adaptive Binary Arithmetic Coding) 엔트로피 코딩 방법은 양자화된 계수를 더욱 압축하여 압축 효율성을 향상시키는 데 사용됩니다. 여기서 앞의 4단계에서 처리된 데이터는 인코딩 알고리즘을 이용하여 최종 코드 스트림으로 인코딩된다. 최종 압축된 프레임은 I 프레임, P 프레임, B 프레임으로 구분됩니다. CABAC 무손실 압축 방법을 실행한 후 비디오 코드 스트림을 얻습니다.
공간 데이터 중복과 시간 데이터 중복은 비디오 압축의 두 가지 기본 개념으로 각각 비디오 프레임 내에서 그리고 비디오 프레임 간에 반복되는 정보를 나타냅니다.
공간적 중복성의 해석:
시간적 중복의 해석:
H.264 비디오 압축에서 잔여 데이터는 원본 비디오 프레임과 예측 프레임 간의 차이를 나타냅니다. 동시에 잔차 데이터에 대해 더 깊이 이해하려면 아래와 같이 다음 개념을 이해해야 합니다.
예측 프레임 : 비디오 인코딩 과정에서 인트라 예측(Intra Prediction) 또는 인터 예측(Inter Prediction)을 사용하여 예측 프레임을 생성합니다. 인트라 예측은 현재 프레임의 픽셀 정보를 기반으로 하는 반면, 인터 예측은 이전 또는 이후 프레임의 움직임 보상 정보를 기반으로 합니다.
원래 프레임: 비디오 시퀀스에서 실제로 캡처된 원본 이미지 프레임을 나타냅니다.
잔차 계산 : 잔여 데이터는 원래 프레임에서 예측된 프레임을 빼서 계산됩니다. 잔여 데이터는 예측된 프레임과 원래 프레임 간의 차이를 나타냅니다.
위의 개념을 바탕으로 잔여 데이터의 특성을 더 잘 이해할 수 있습니다.
잔여 데이터는 일반적으로 예측 프레임이 대부분의 중복 정보를 제거했기 때문에 공간적 무작위성이 높습니다. 이러한 무작위성은 잔여 데이터를 변환 및 양자화를 통한 추가 압축에 적합하게 만듭니다.
잔여 데이터를 IDCT(Integer Discrete Cosine Transform) 및 양자화로 처리한 후에는 데이터 양을 크게 줄일 수 있습니다. 변환은 잔차의 2차원 공간 정보를 주파수 정보로 변환하는 반면, 양자화는 이러한 계수의 정확도를 감소시키고 인간의 눈으로 감지할 수 없는 세부 사항을 제거합니다.
잔여 데이터를 인코딩하는 목적은 이미지 품질을 최대한 유지하면서 비디오 데이터의 비트 전송률을 더욱 줄이는 것입니다. 동시에 잔여 데이터의 효과적인 압축은 인코딩된 비디오의 품질과 필요한 저장 또는 전송 대역폭에 직접적인 영향을 미치기 때문에 H.264 인코딩 효율성에 매우 중요합니다.
엔트로피 코딩은 정보 엔트로피 개념을 기반으로 한 무손실 데이터 압축 기술로, 가능한 한 적은 비트로 데이터를 표현하는 것을 목표로 합니다. 엔트로피 코딩의 핵심 아이디어는 발생할 가능성이 높은 기호에 더 적은 비트를 할당하고, 덜 자주 나타나는 기호에 더 많은 비트를 할당하는 것입니다. 이러한 방식으로 전체 데이터 세트의 평균 비트 전송률이 감소하므로 원하는 저장 공간이나 전송 대역폭이 감소합니다.
엔트로피 코딩은 텍스트 및 일부 특정 유형의 데이터 압축에 자주 사용되며, 특히 데이터의 확률 분포가 상당히 불균일한 경우 압축 효율성을 크게 향상시킬 수 있습니다. 비디오 압축 코딩에서 비디오 압축과 가장 밀접하게 관련된 엔트로피 코딩 방법은 주로 다음과 같습니다.
비디오 압축에서 엔트로피 코딩은 인트라 및 인터 예측 후 잔여 데이터를 인코딩하는 데 사용되는 최종 인코딩 단계입니다. 잔여 데이터는 원본 데이터와 예측 데이터 간의 차이이며 일반적으로 에너지가 적고 확률 분포가 고르지 않습니다. 엔트로피 코딩을 통해 이러한 잔여 데이터의 비트율을 더욱 줄일 수 있어 비디오 데이터를 압축하는 목적을 달성할 수 있습니다.