I-frame, P-frame
- 상관계수를 설명하고 계산할 수 있다.
- SA으로 두 블록 사이의 거리를 계산할 수 있다.
- 동영상의 프레임을 움직임 예측 방법으로 부호화하고 복호화 할 수 있다.
예측 부호화
높은 상관관계를 이용한 데이터 압축
✅ 잔차값(Residual) = 부호화 할 데이터(Current) - 예측 데이터(Prediction)
Intra Coding, Inter Coding with DPCM
⇒ DPCM: Difference Prediction Coding Modulation
- 오디오 압축에 사용
- 예측값으로 부호화 할 값 바로 앞의 값을 사용함
- 첫 번째 데이터는 예측 부호화를 하지 않음 (예측값을 9으로 설정)
✅ Intra Coding: 예측값을 사용하지 않고 부호화
✅ Inter Coding: 예측값을 사용해서 부호화

➕ 동영상은 연속한 정지영상들의 모임
➕ 동영상 기술에서 정지영상을 프레임이라 부른다.
🔥 이웃한 프레임들 사이는 대부분 높은 상관관계를 갖는다.
상관관계
⇒ 오디오, 영상처리에서 많이 사용하는 용어

이산 랜덤 변수
연속적인 값이 아닌 랜덤 변수

상관계수 예시


- 상관계수는 선형 관계만을 나타냄
- 0에 가까울 수룩 관계가 없고, 절대값 1에 가까울수록 관계가 높음
영상 프레임 별 부호화 및 복호화
✅ 첫 영상 프레임을 F1, 두번째 영상 프레임을 F2라고 가정한다.
같은 프레임이 연속될 경우
F2의 부호화: 1비트
- 비트 값(1): 이전 영상과 같음
- 비트값 (0): 이전 영상과 다름
⇒ 비트값이 1이면 F1 프레임을 복사
같은 프레임에서 조명(배경)만 바뀔 경우
비트값이 0인 경우
- Residual(잔차값) = F2 - F1
⇒ F2 = Residual + F1
움직임에 변화가 있을 경우
Case: 배경 - 변화없음, 차 - (dx,dy) 만큼 이동

⇒ 움직임 벡터 부호화
- dx = (x2 - x1)
- dy = (y2 - y1)
🔥 영상 압축을 위해 차를 자동으로 추출하는 기술은 거의 불가능 ⇒ 움직임 예측 기술을 사용
움직임 예측 (Motion Estimation)
⇒ 영상을 블록으로 분할하여 F1 블록에 가장 비슷한 블록을 찾아서 움직임 벡터와 Residual(잔차값)으로 예측 부호화 함
블록 간 거리 (Distance between Two Bolocks)
❗SAD ⇒ Sum of Absolute Difference
⇒ 동영상 인코더에서 많이 사용하는 블록 간의 거리
⇒ 각 프레임 블록 픽셀의 차이를 절댓값 후 모두 합산하는 연산

블록 간 거리와 SAD를 이용해서 다음 프레임 블록의 위치 값을 구하기

⇒ 예측블록 중 첫번째가 SAD: 4로 가장 작은 값

✅ 블록 위치는 좌,상단으로 지정한다.

⇒ 부호화기는 움직임 벡터, 잔차 블록 두 가지 값을 알고 있다.
B-frame
- B-frame 부호화의 계산과정을 예를 들어 설명할 수 있다.
- 움직임 예측의 SAD 계산에 필요한 연산수를 계산할 수 있다.
Inter-frame Coding 기법
P-frame Coding
- 하나의 참조 프레임을 사용
B-frame Coding
- 두개의 참조 프레임을 사용


움직임 예측 블록의 크기
- 블록마다 움직임 벡터를 부호화 해야하므로 블록의 크기가 작으면 움직임 벡터의 데이터 양이 증가
- 움직임 예측을 위한 블록의 크기가 크면 작은 물체의 움직임 예측을 할 수가 없음

8K UHD 동영상 확장 Padding한 P-frame 움직임 예측 SAD 계산에 필요한 더하기 연산

Fast Motion Search
막대한 움직임 예측에 필요한 연산을 압축 성능을 최대한 유지하면서 연산량을 감소시키는 기술
- 부호화 할 블록의 위치를 중심으로 9개의 위치 (S픽셀 만큼 떨어져 있는 주변의 8픽셀과
중심 위치의 픽셀)에서 SAD가 가장 작은 위치를 찾음 - SAD가 가장 작은 위치를 중심 위치로 하고 S를 ½로 줄여서 S가 1이 될 때 까지 반복함
(중심 위치는 SSD가 이미 계산되어 있음) - S가 1일 때 출력 위치가 예측 블록의 위치
동영상 그룹 구조 - IBBPBBP
- 정밀한 움직임 예측을 설명할 수 있다.
- Intra Prediction을 계산할 수 있다.
- 동영상 압축 과정 블록 다이어그램을 그리고 설명할 수 있다.
- Group of Picture를 선택해서 동영상을 부호화할 수 있다.
Half-pel(1/2) Motion Estimation
움직임 예측을 참조 프레임에서의 움직임 정밀도를 1/2픽셀로 높이는 기술

Quarter-pel Motion Estimation

Intra-prediction
하나의 영상안에서 이웃하는 픽셀 값들 사이의 높은 상관성에 기반해서 예측 부호화

이미지 프레임 영상 변환 과정

Video Frame 인코더 비교
- 계산 복잡도: I-frame < P-frame < B-frame
- 프레임 버퍼 메모리 크기: I-frame < P-frame < B-frame
- 압축 성능: I-frame < P-frame < B-frame
프레임 별 압축 순서 배치 - IBBP

- 순서마다 즉시 송출이 되지 않음 ⇒ Delay 발생, Live 방송에 부적합
- 저장된 동영상 스트리밍에 사용 (Youtube, Netflix)
'이모저모 > AVFoundation' 카테고리의 다른 글
| 12주차. 멀티미디어 시스템 & 스트리밍 (0) | 2024.07.28 |
|---|---|
| 11주차. 오디오 압축 및 처리 (0) | 2024.07.23 |
| 7주차. 영상처리(Image processing) (0) | 2024.07.07 |
| 동영상 UIImage 배열로 변환하기 (0) | 2024.06.29 |
| 6주차. 정지영상 파일 포맷 및 압축 (0) | 2024.06.23 |
댓글