You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+22-1
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,12 @@ This project is a JPEG decoder core for FPGA written in Verilog.
24
24
3. Be well tested (with verification against a reference C-model).
25
25
4. Map to FPGA resources such as BlockRAM, DSP macros wherever possible.
26
26
27
+
## FPGA Mapping
28
+
The current version of the JPEG decoder uses the following resources on a Xilinx 7 series FPGA (post-implementation);
29
+

30
+
31
+
The design is also able to meet timing >= 75MHz.
32
+
27
33
## Performance
28
34
Peak JPEG decode performance is as follows;
29
35
* Monochrome = 66 cycles per 8x8 pixels (1.0 cycles per pixel)
@@ -37,4 +43,19 @@ Motion JPEG has worse compression performance than MPEG based video, but the com
37
43
Video playback usually requires at least 25 frames per second, hence there is a budget of less than 40ms per JPEG frame.
38
44
This fact drives the design choices taken for this implementation.
39
45
40
-
Clearly, the higher the resolution, the more pixels that must be produced from the JPEG decoder within that 40ms budget, so this core is designed to have high throughput in the output stages - with additional resources dedicated to the IDCT transform, and output re-ordering stages to facilitate this.
46
+
Clearly, the higher the resolution, the more pixels that must be produced from the JPEG decoder within that 40ms budget, so this core is designed to have high throughput in the output stages - with additional resources dedicated to the IDCT transform, and output re-ordering stages to facilitate this.
47
+
48
+
## Limitations
49
+
The current release does not support;
50
+
* Optimised Huffman tables (that is to say that the 'std' Huffman tables are hardcoded in the design and ignored in the JPEG file).
51
+
* Restart markers
52
+
* 4:2:2 H/V chroma subsampling (only 4:4:4 and 4:2:0 are supported).
53
+
54
+
Under the GNU Image Manipulation Program, the following 'X' options are **not** supported currently;
55
+

56
+
57
+
## Future Work / TODO
58
+
* Add support for dynamic Huffman tables.
59
+
* Add support for the first layer of progressive JPEG images.
60
+
* Add option to reduce arithmetic precision to reduce design size.
61
+
* Add lightweight variant of the core with reduced performance (for smaller FPGAs).
0 commit comments