H.264/AVC Prediction_3

Learning stuff 2013. 2. 15. 22:54

아까 하던 Prediction 계소옥

 

●Inter-prediction의 전체적인 순서

◆interpolate the picture(s) in the DPB(Decoded Picture Buffer) to generate 1/4-sample position in the luma component and 1/8-sample positions in the chroma components.

◆Choose an inter prediction mode : reference picture, block size, prediction type

◆Choose motion vector

◆Predict the motion vectors from already transmitted motion vectors : motion vector difference 생성

◆Code (the macroblock type, choice of prediction reference, motion vector difference, residual)

 

●Interpolating and divide reference pictures

◆움직임 보상 예측을 할 때 정수화소 이하의 화소정밀도 신호(1/4, 1/8-pixel resoultion)는 참조픽처의 화소값들간의 보간을 통해 생성한다.

◆inter-prediction 의 단위는 저번에도 말했다 싶이 Macroblock 이고 이것은 상황에 따라 submacro-block 으로 나뉘어 질 수 있음. 물론 이 과정은 서로 비교해보고 더 이득을 보겠다 싶은걸로 가져감

 

●Motion vector prediction

◆ 시작하기에 앞서 motion vector 가 필요한 이유에 대해서 생각해보아여. 당연한 것이지만 헤깔림..... 특히 B-frame 같은 경우 무엇을 어떻게 참조하길래 2개나 참조하는것일까? 3개는 안될까? 이런거... 여튼 다음그림

 

◆Motion vectors for neighboring partitions are often highly correlated and so each motion vector is predicted from vectors of nearby.

◆먼저 same block size 의 경우는 다음과 같이

◆16*8 일 경우 upper block 은 B에서 lower block 은 A에서

◆8*16 일 경우 left block은 A에서 right block은 C에서

 

◆B block 에서 motion vector prediction 하는 방법

▲Bipredicted motion vector prediction

-두 reference frame이 각각 past 와 future 인 경우

two vectors are predicted from neighboring motion vectors that have the same temporal direction (transmission 되는것은 prediction한것과의 차이값 각각 2개)

 

 

-두 reference frame이 둘다 past 거나 둘다 future 인 경우( 잘 모르겠음... )

one vector(from list 0) is predicted from neighboring motion vectors and the other vector(list1) is predicted from the differentail vector (transmission 되는것은 prediction 한것과(list0) 차이값 한개와 그 prediction 한거와 실제 값의 차이)

▲Direct mode motion vector prediction

- No motion vector is transmitted for B slice macro block.

- 시간 직접 예측 모드에서는 앵커픽처에서 부호화대상블록과 같은 위치에 있는 블록의 움직임 벡터를 스케일링하여 2개의 움직임 벡터를 구한다..... 말로 들으니까 뭔말인지 한개도 모르겠지?

-시간 직접예측 (temporal direct mode)는 위와 같은 방법으로 구하기 때문에 일정한 속도를 가지는 물체를 나타내는 영상에 좋다.

- 공간 직접 예측 모드에서는, list0 and list1 vectors of neighboring previously coded macroblocks or partitions in the same slice are used to caculate the list 0 and list 1 vectors of current MB or partition.

 

●Motion compensated prediction

◆One reference : 그냥 한다.......

◆Two references : biprediction

보통 두개의 motion vector 로 가져온 값의 평균값을 취한다.

◆Weighted prediction : 여기저기서 엄청 새로운것처럼 설명해놨지만, 별거 아니다. 이때까지 그랬듯이 Temporal distance 가 있을 경우 weight를 취해서 prediction 을 해준다.

▲Explicit mode : weight W0 또는 W1 그리고 차분값(offset) D를 준다

▲Implicit mode : 안준다 구해라

 

막 복잡해 보이진만 x,y 그래프 위에서 1차 extrapolation 또는 interpolation 한거임(temporal distance 만큼 떨어진 점 두개주고 한 점을 구하여라)

 

 

'Learning stuff' 카테고리의 다른 글

NAND FLASH_특징  (0) 2013.02.23
Flash Memory 쪽의 기본  (0) 2013.02.23
H.264/AVC Prediction_2  (0) 2013.02.15
H.264/AVC Prediction_1  (0) 2013.02.15
H.264/AVC intro  (2) 2013.02.14