video input의 rgb redundancy가 높아서 yuv로 바꾸고 그과정에서 sub-sampling(다운샘플링)을 수행⇒
데이터를 4:2:0포맷으로 원본 데이터를 줄이고 predictive과정에서 dpcm, motion compensation은
주변 화소간의 중복성이 높기 때문에 중복성을 제거하기 위해서 차를 구해서 처리하는것이 DPCM이고
영상 간의 temporal model을 구하는것이 motion estimation으로 motion이 찾아진 영상과의 차 residual을 spatial모델 통해서 coefficient를 구해서 entropy encoder로 보내고
transform과정에서 discrete cosine transform DCT
그렇게 만들어진 coefficient가 엔트로피 인코더로 가서 통계적인 중복성을 제거하는 과정으로 처리한다.
DPCM은 인접화소간 difference를 취하는 것으로 DPCM만으로는 오히려 데이터가 9비트로 늘어나고 오히려 laplacian distribution data의 확률편중을 활용해서 entrophy coding한다.
인접한 세 화소를 조합하여 예측치를 생성한다.
Encoder는 Decoder가 받는 방식대로 데이터를 보내야 하며 둘 간의 mismatch가 발생해서는 안된다.
r은 reconstructed, p는 predictor
인접한 세 화소 수평방향 수직방향 대각선방향과 비슷한지 물어보고
na는 받은적이 없는 미래의 값들을 의미하며 디코더는 알 수 없는 값이다. 디코더는 모르는 값이 있기 때문에 알고있는 값으로 처리해야한다. encoder decoder간에 mismatch가 발생하면 안된다.
a, b, c로 dpcm으로 차를 구해서 셋중 하나랑 같다면 값은 0이 된된다.
디코더는 차를 구한 값이 왔는데 뭐랑 뺀 차값인지 알 수 없기 때문에 mode정보를 보내줘야 한다. 수평방향 수직방향 대각선방향중 어떤것과 차를 구한 값인지 알려주는것이 mode이다. r은 reconstructed로 재생된 데이터로부터 빼야함을 의미하고 original 값에서 빼는게 아니라 디코더에서 재생된 a값에서 뺐다는 것이다. x값의 predicted value를 의미하는것이 Px이다.
mode 정보를 하나 보내려면 8비트 = 1바이트가 필요하다. mode difference를 인코더에서 같이 에서 보낸다 ex) (2,3) ⇒ 디코더는 2를 보고 모드가 2번인 것을 알 수 있고 Px = Rb이고 차가 3이라는 뜻이므로 Rb에 3을 더해서 값을 구한다.