컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 2. 동영상 인코딩 및 디코딩에 대한 기본 지식

2. 동영상 인코딩 및 디코딩에 대한 기본 지식

이미지 정보를 수집한 후 생성된 원본 영상 데이터는 매우 많은 양의 데이터를 가지고 있으며, 수집 후 바로 로컬에서 재생되는 일부 애플리케이션의 경우 압축 기술을 고려할 필요가 없습니다. 그러나 실제로는 비디오 전송 및 저장과 관련된 애플리케이션이 더 많습니다. 전송 네트워크 및 저장 장치는 원본 비디오 데이터의 대용량을 감당할 수 없으므로 전송 및 저장하기 전에 원본 비디오 데이터를 인코딩하고 압축해야 합니다.

(1) 압축되지 않은 디지털 비디오의 데이터 양은 엄청납니다.

(2) 저장이 어렵습니다. 예를 들어 DVD는 압축되지 않은 디지털 비디오를 몇 초 동안만 저장할 수 있습니다.

(3) 전송 어려움, 예: 1메가비트 대역폭, 720p RGB 초당 15프레임 코드 속도 계산: 1280 x 720 x 3 x 15로 디지털 TV 비디오의 1초를 전송하는 데 약 4분이 걸립니다. ≒ 41MB ≒ 331Mb

비디오 데이터에서 중복된 정보를 제거하고 픽셀 간의 상관 관계와 서로 다른 시간의 이미지 프레임 간의 상관 관계를 찾습니다.

비디오 인코딩은 비디오 콘텐츠의 형식을 압축하고 변경하는 프로세스이며 때로는 아날로그 소스를 디지털 소스로 변경하기도 합니다. 압축의 목표는 설치 공간을 줄이는 것입니다. 영상과 관련된 정보를 버리는 손실처리 과정이기 때문이다. 재생을 위해 압축을 풀면 원본과 비슷한 수준의 원본이 생성됩니다. 압축을 많이 적용할수록 더 많은 데이터가 버려지며, 원본 데이터에 비해 근사치가 더 나빠집니다.

비디오 코덱은 소프트웨어 또는 하드웨어 응용 프로그램을 통해 수행되는 비디오 압축의 표준입니다. 코덱: H.264, VP8, RV40 및 기타 표준 이상(VP9)

참고: LAME/MP3, Fraunhofer FDK AAC, FLAC 등과 같은 오디오 코덱.

인코딩된 블록 정보를 기반으로 예측값을 구하므로 실제값과 예측값의 차이만 인코딩하면 됩니다.

공간 중복성 제거:

프레임 내 예측: 동일한 프레임에서 인접한 인코딩된 블록 정보를 기반으로 예측 데이터를 얻고 차이 데이터를 인코딩합니다.

제거 시간적 중복성:

프레임 간 예측: 인코딩된 프레임의 블록 정보를 기반으로 예측 데이터를 얻고 차이 데이터를 인코딩합니다.

I-프레임: 프레임 내 압축 기술만이 압축에 사용 가장 낮은 효율성, 인코딩 및 디코딩은 다른 프레임의 정보를 사용할 필요가 없으며 GOP의 시작점입니다.

P 프레임: 순방향 예측 프레임, 인코딩 및 디코딩만 이전 프레임을 참조하며, 이는 다른 이미지를 인코딩할 때 참조 프레임으로 사용할 수 있습니다.

B 프레임: 양방향 예측 프레임, 인코딩 및 디코딩은 이전 프레임과 다음 프레임을 모두 참조하며, 압축 효율이 가장 높고 복잡도가 높으며 지연이 큰 프레임 간 압축 기술입니다. .

GOP(Group of Pictures)는 일반적으로 두 I 프레임 사이의 간격 수를 의미합니다. 두 I 프레임 사이에는 이미지 시퀀스가 ​​있으며 이미지 시퀀스에는 I 프레임이 하나만 있습니다.

H.264 원본 코드 스트림(네이키드 스트림이라고 함)은 차례로 연결된 두 개의 NALU로 구성되며 그 기능은 비디오 코딩 계층 VCL과 네트워크 추출 계층 NAL의 두 계층으로 나뉩니다.

VCL은 비디오 데이터의 내용을 효과적으로 표현하는 역할을 담당합니다.

H264는 비디오 압축을 실현하는 것 외에도 네트워크 전송을 용이하게 하는 해당 비디오 인코딩 및 조각화 전략도 제공합니다. 이는 네트워크 데이터를 IP 프레임으로 캡슐화하는 것과 유사하며 H264 그룹(gop), 슬라이스(slice)라고 합니다. ) 및 매크로블록(Macroblock)이 함께 H264 코드 스트림의 계층 구조를 형성합니다. H264는 이를 시퀀스(GOP), 픽처(pictrue), 슬라이스(Slice) 및 매크로블록으로 구성합니다. ) 및 하위 블록(하위 블록).

매크로블록: 비디오 인코딩의 기본 단위는 h264의 일반적인 매크로블록 크기가 16x16픽셀이므로 인코더는 일반적으로 이미지의 너비와 높이에 대한 요구사항을 가지며 이는 16의 배수여야 합니다.

슬라이스(Slice): 이미지 분할인 슬라이스. 이미지의 한 프레임은 하나 이상의 슬라이스로 인코딩될 수 있으며, 각 슬라이스에는 정수 개의 매크로블록이 포함됩니다.

SPS: 이미지 너비, 높이 등과 같이 전체 비디오 시퀀스에 적용되는 구문 요소를 포함하는 시퀀스 매개변수 집합입니다.

PPS: 양자화 매개변수, 참조 프레임 목록 크기 등과 같이 인코딩된 이미지에 적용되는 구문 요소를 포함하는 이미지 매개변수 세트입니다.

NAL은 데이터 캡슐화 형식과 통합 네트워크 인터페이스를 정의하며, VCL 데이터의 형식을 지정하고 데이터가 다양한 채널 및 저장 매체에서 전송에 적합하도록 헤더 정보를 제공하는 역할을 담당합니다.

NAL의 기본 단위는 NALU입니다. 각 NALU에는 1바이트의 헤더 정보와 후속 페이로드 데이터가 포함됩니다.

참조 문서

/p/31056455

/p/1b3f8187b271

/p/31056455

/ p/0c296b05ef2a

Android 플랫폼은 Qualcomm, Samsung Exynos, MediaTek, HiSilicon 등과 같은 시장에 있는 대부분의 칩 제조업체의 하드 코딩된 솔루션과 호환됩니다. Windows 플랫폼은 Intel qsv 하드를 지원합니다. -코딩된 솔루션.

해상도: (직사각형) 이미지의 길이와 너비, 즉 이미지의 크기입니다. 이미지 크기에 영향을 미치며 이미지 크기에 비례합니다. 해상도가 높을수록 이미지는 작아집니다.

해상도는 영상 사진이 가로와 세로로 몇 조각으로 나뉘어져 있는지를 뜻합니다.

1080P, 3MP, 4K의 차이

P 720P와 1080P는 "비디오 픽셀의 전체 기능"을 나타내고 'P'(프로그레시브의 약어)는 "프로그레시브 스캐닝"을 나타냅니다. "

K 2K, 4K 등은 "비디오 픽셀의 총 열 수"를 나타냅니다. 4K는 4000열, 구체적으로 3840열 또는 4096열로 구성된 비디오의 픽셀 수를 나타냅니다.

MP는 총 픽셀 수를 나타내며, 픽셀의 행 수(P)와 열 수(K)를 곱한 결과(메가픽셀)를 나타냅니다.

프레임 속도는 초당 이미지 수를 의미하며, 한 프레임은 정지영상을 나타내고, 연속된 프레임은 애니메이션을 구성합니다. 이는 사진의 부드러움에 영향을 미치며 사진의 부드러움에 정비례합니다. 프레임 속도가 높을수록 사진이 더 부드러워지고 프레임 속도가 작을수록 사진이 더 불안정해집니다. 프레임 속도는 1초에 전송되는 사진 프레임 수를 의미하며, 그래픽 프로세서가 초당 새로 고칠 수 있는 횟수로도 이해할 수 있습니다.

코드율은 인코더가 초당 컴파일하는 데이터의 크기를 말하며 단위는 kbps입니다.

단위시간당 동영상 파일이 사용하는 데이터 트래픽은 초당 표시되는 사진을 압축한 후의 데이터량을 의미합니다. 볼륨에 대한 영향은 볼륨에 비례합니다. 코드 속도가 높을수록 볼륨이 커지고, 코드 속도가 작을수록 볼륨이 작아집니다.

(볼륨 = 코드율 양/비트율(동일한 비디오 소스에 대해 동일한 비디오 인코딩 알고리즘을 사용하면 압축률이 높을수록 화질이 떨어짐)

선명도

특정 비트 전송률 조건에서는 해상도와 선명도 사이에 반비례 관계가 있습니다. 즉, 해상도가 높을수록 이미지의 선명도가 떨어지고, 해상도가 낮을수록 이미지가 선명해집니다.

해상도가 일정할 경우 비트 전송률은 선명도에 정비례합니다. 비트 전송률이 높을수록 이미지가 더 선명해지고, 비트 전송률이 낮을수록 이미지가 덜 선명해집니다.

해상도, 프레임 속도, 비트 전송률 사이의 관계를 이해하는 데 좋은 기사: /qq_39759656/article/details/80701965

이 글을 보신 분은 좋아요 0.0 부탁드립니다.

上篇: 티쏘 터치 시계를 소개합니다 下篇: 호스트 a 가 호스트 b 에 화면을 보냅니다.
관련 내용