core_jpeg_decoder
core_jpeg_decoder copied to clipboard
HW JPEG decoder wrapper with AXI-4 DMA
AXI-4 JPEG Decoder
Github: https://github.com/ultraembedded/core_jpeg_decoder
This component is a HW JPEG decoder (in Verilog) with AXI-4 DMA.
It is based around my JPEG Decoder core and adds a register interface and DMA for offloading data input and output transfers to and from the JPEG decoder core.
Cloning
This repo contains submodules. Make sure to clone them all with the following command;
git clone --recursive https://github.com/ultraembedded/core_jpeg_decoder.git
Features
- HW JPEG decoder.
- AXI-4 lite configuration interface.
- AXI-4 DMA for JPEG fetch, and RGB data writeback.
- RGB565 output format.
- ISO/IEC 10918-1 compliant JPEG Baseline decoding.
- Up to 64K x 64K image resolution.
Register Map
| Offset | Name | Description |
|---|---|---|
| 0x00 | JPEG_CTRL | [RW] JPEG Control Register |
| 0x04 | JPEG_STATUS | [R] Status Register |
| 0x08 | JPEG_SRC | [RW] DMA Source Address |
| 0x0c | JPEG_DST | [RW] DMA Target Address |
Register: JPEG_CTRL
| Bits | Name | Description |
|---|---|---|
| 31 | START | Start transfer. |
| 30 | ABORT | Abort transfer. |
| 23:0 | LENGTH | Source buffer length in bytes. |
Register: JPEG_STATUS
| Bits | Name | Description |
|---|---|---|
| 0 | BUSY | Core busy. |
Register: JPEG_SRC
| Bits | Name | Description |
|---|---|---|
| 31:0 | ADDR | Address (must be 32-byte aligned). |
Register: JPEG_DST
| Bits | Name | Description |
|---|---|---|
| 31:0 | ADDR | Address |
Testing
Tested on a Xilinx Artix 7 (Digilent Arty A7).