소개글
HDL 중에서 범용적으로 사용되는 Verilog를 이용하여IDCT를 구현한 것입니다.
실험 전반적인 과정과 배경지식 내용이 포함되어 있고,
소스 코드도 포함되어 있습니다.
DCT에 대한 개념과 원리 등에 대한 배경지식도 포함되어 있습니다.
실험결과는 성공적이었습니다.
실제 문서의 내용은 한글입니다.
(실험의 목적, 목차등만 영어로 되어 있습니다.)
최종 A+ 받은 자료입니다.
목차
(1) Explain the mathematical definition of DCT/IDCT and show their applications.(2) What are the two famous types of FSM (Finite State Machine)? How are they distinguished?
(3) Describe the operation of a counter using Verilog.
(4) What are shift registers? Write a Verilog code for a 4-bit, 3-stage shift register. (First 4-bit input
is visible in the output port three clocks later.)
1) Does your design work well with the given input file?
2) Draw the block diagram of your design and explain the operation of your transpose matrix
module. (No need to draw a block diagram for the 1-D IDCT unit.)
3) What is the definition of ‘latency’ in hardware design? What is your design’s latency?
본문내용
1. PurposeHardware description languages (HDLs) such as Verilog HDL are basic tools for describing digital circuits which performs specified functionalities. In this experiment, we design hardware for IDCT (Inverse Discrete Cosine Transform) that constitutes H.264/AVC encoder/decoders. Students should become familiar with designing hardware using both combinational and sequential logic blocks to implement simple arithmetic and logic operations.
2. Problem statement
1) Understand the principles of DCT and IDCT.
2) Describe an IDCT hardware architecture using Verilog.
3) Verify the operation of the designed hardware with a logic simulator (e.g., Modelsim).
3. Pre-report
(1) Explain the mathematical definition of DCT/IDCT and show their applications.
DCT는 Discrete Cosine Transform의 약자로, 영상 압축 기술에 이용되는 transform의 하나이다. IDCT는 Inverse Discrete Cosine Transform의 약자로, transform된 영상에 대해, 원래의 영상으로 다시 되돌리는 transform을 말한다. DCT/IDCT는 정지영상과 동영상 모두에 적용되지만, 엄밀히 말하면, ‘정지영상’ 즉 time domain을 동반한 3차원의 영상이 아닌, x, y 축만을 가진 2차원 image에 대한 적용을 이른다. 동영상은 이 transform을 연속적으로 수행한(time domain을 추가한) 것이라고 볼 수 있다. IDCT는 DCT의 원리를 반대로 적용시킨 것이기 때문에 DCT에 중점을 맞추어 설명하도록 하겠다.
DCT는 DFT (Discrete Fourier Transform)과 같이 time domain 상의 내용을 Frequency domain으로 transform을 한다. DCT와 DFT의 차이점이라 하면, DFT는 이 변환을 하는데 있어 sine과 cosine function을 둘 다 사용하는 반면, DCT는 cosine function만을 사용한다. 따라서, 연산을 할 때 imaginary part를 이용하지 않기 때문에 훨씬 간단한 Hardware 구성을 보일 수 있다.
DCT가 영상압축에 이용되는 원리는 spatial redundancy를 줄인다는 것으로 표현 될 수 있다. Frequency란 것은 어떤 것의 변화’율’로도 표현이 될 수 있다. 즉, 어떤 값이 급격히 변한다면 우리는 high frequency로 간주할 수 있고, 어떤 값이 천천히 변한다면 low frequency로 간주할 수 있는 것이다. 실제 이미지들은 보통 pixel 단위로 구성되어 있다. 이 pixel들의 값들은 보통 RGB로 표현이 되는데, 인근의 RGB 값들은 edge 부분을 제외하고는 크게 다른 값을 가지지 않는다. 예를 들어 사람의 머리카락 부분만을 가진 사진을 예로 들어보자. 사람의 머리카락이 단순 검은색으로만 표현되는 것이 아니라, 빛의 여부에 따라 조금 밝은 검은색부터, 그림자진 부분까지 어두운 검은색 등 수십에서 많게는 수백 가지의 색으로 표현되어 있다. 확대하여 pixel 단위로 본다면 이 차이를 확실히 알 수 있다. 여기서 우리가 발견할 수 있는 것은, 비록 색상의 차이가 조금씩은 있지만, 우리의 인지와 비슷하게 검은색 계열이라는 것이다. 즉 색의 변화가 크지 않다는 것이다. 이것을 우리는 low frequency 로 간주할 수 있다. 따라서 이 색의 변화를 가장 효율적으로 표현하면, 정보의 압축에 크게 기여할 수 있고, 이것을 구현한 것이 DCT이다. 아래의 그림을 참조하여 알아보자.
참고 자료
없음압축파일 내 파일목록
main_9.docx
pre_lab9.docx
pre_lab9.docx
이 자료와 함께 구매한 자료
- C언어를 이용한 DCT구현과 결과영상 8페이지