소개글
- Encoding: YUV
: Intra Prediction
: Inter Prediction
: DCT
: Quantization
: Rounding
: Zigzag scan
: Entropy Coding
- Decoding
:Entropy Coding
: Inverse zigzag scan
: De-Quantization, Inverse DCT
: Motion Compensation
에 따른 모든 과정을 진행하였습니다.
목차
1. Object2. Theory & Algorithm
- Encoding
: YUV
: Intra Prediction
: Inter Prediction
: DCT
: Quantization
: Rounding
: Zigzag scan
: Entropy Coding
- Decoding
: Entropy Coding
: Inverse zigzag scan
: De-Quantization, Inverse DCT
: Motion Compensation
3. Comparison between methods
4. Afternote
5. Reference
본문내용
: ObjectiveI get 3 Image - Foreman_qcif.yuv, the JVT test sequence - files. I have to send all these Image. But to improve performance - such as improving PSNR and Bits Rate do a lot of Video encoding, decoding techniques.
: Theory and Algorithm
Encoding
전체 인코딩 과정의 대략적인 개요는 다음과 같습니다.
[ Figure 1. Overall Video Encoding Process ]
다만 과제에 주어진 대로 16x16 Macroblocks 대신 8x8 Macroblocks를 이용하였습니다.
주어진 bmp 이미지들을 RGB 에서 YUV로 변환한 뒤 Y-component를 가지고 전체적인 Process를 진행하였습니다.
Y component Matrix(144x176)을 8x8 sub matrix로 나누어 각각의 matrix에 Intra/Inter Prediction, DCT, Quantization, Rounding, Zigzag Scan, Entropy coding을 통해 전송에 쓰일 bit stream을 만들었습니다.
Decoding
Decoding과정은 Encoding 과정의 역과 같습니다. 전송받은 bit stream을 바탕으로 Entropy coding을 통해 행렬 요소들을 얻은 뒤, EOB를 기준으로 원래의 Sub matrix들을 자른 후에 각 Sub Matrix 별로 Inverse Zigzag Scan, De-Quantization, Inverse DCT를 통해 Intra/Inter Coding 의 Error 값을 구하고 이를 Reference Block과의 연산을 통해서 Decoding 과정을 완료하였습니다. 이 이후에서 각 과정별로 상세한 설명을 하고자 합니다.
덧붙여, 제가 프로젝트를 수행하기 위해 Matlab 7.10.0 (R2010a)Ver를 사용하였습니다.
Encoding - YUV
주어진 bmp 이미지를 matlab 명령어인 imread(`foreman_qcif_frm1.bmp`)를 통하여 읽으면 왼쪽과 같습니다. 이는 Red, Green, Blue의 3가지 Primary color component로 이루어져 있습니다. 이는 색의 3원소로 System 이며 3차원인 Matrix를 각 차원별로 쪼개면 Red, Blue, Green 이미지를 얻을 수 있습니다. 하지만 이번 프로젝트에서는 1개의 Luminance 성분인 Y와 2개의 Chrominance - UV로 이루어진 YUV System을 사용하도록 되어 있습니다. RGB는 원색신호에 대한 정보를 가지고 있는데 비해 YUV는 색차 신호에 대한 정보를 가지고 있습니다. YUV는 유럽 TV 방송 표준으로 쓰이며 그 변환식은 다음과 같습니다.
참고 자료
없음압축파일 내 파일목록
영상처리.hwp
프로젝트2.zip
프로젝트2.zip