DCT implement with Verilog and Python
Mainly works at jpeg.py
jpeg.py에서 돌아감
DCT -> Quantization -> Dequantization -> IDCT -> image plot
Test four cases of DCT - Normal DCT, Verilog-like DCT, Verilog 1d DCT output, Verilog 2d DCT output
4가지 DCT를 수행함 - 일반 DCT, python에서 돌아가는 Verilog-like DCT, 베릴로그 1d DCT 출력, 베릴로그 2d DCT 출력
40.30, 34.00, 34.17, 34.27
Quantization으로 손실 압축 구현
https://www.nayuki.io/page/fast-discrete-cosine-transform-algorithms
Algorithms at the link used to implement DCT.
해당 링크에서 알고리즘 참고함
Input data text file generation included at line 27~41. That used at Verilog simulation
27~41줄에 베릴로그를 위한 입력 벡터 파일을 만드는 코드 포함됨. 주석처리되어 있음.
Transform like verilog(integer implementation) added.
DCT를 정수 연산으로 구현한 Transform like Verilog가 추가됨
In Verilog, there are no coded with IDCT, so inverse transform with verilog not included.
베릴로그 파일은 DCT만 구현했기 때문에, IDCT를 python으로 구현하지는 않아 integer inverse transform 코드는 없음.
transform return result multiplied by 2
일반적인 DCT 결과값과 같게 하기 위해 스케일링 제거(2를 곱함)
inverse transform input divied by 2
IDCT에 스케일링을 위해 입력 값을 2로 나눔
Code with reading binary text file
2진수 텍스트 파일을 읽는 코드
Handle the data from verilog
베릴로그에서 출력된 데이터를 다룸
Implement the first 1-dimensional DCT
첫번째 1d DCT 구현
1d DCT verification code
첫 DCT 동작을 확인하기 위한 테스트벤치
Generate a text file with binary value
이진수 텍스트 파일 생성됨
Implement the second 1-demensional DCT
두번째 1d DCT 구현
Transpose memory implementation
Tests tp_mem module
tp_mem 모듈 테스트벤치
제대로 돌아가는지 실험하는 코드
Two 1d DCT modules included
transpose memory module included
Tests entire DCT computation
전체 DCT 연산 테스트벤치
Generate a text file with binary value
2진수 텍스트 파일 생성됨