[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

rocJPEG is a high performance JPEG decode SDK for AMD GPUs. Using the rocJPEG API, you can access the JPEG decoding features available on your GPU. > [!NOTE] > The published documentation is available at [rocJPEG](https://rocm.docs.amd.com/projects/rocJPEG/en/latest/) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in `projects/rocjpeg/docs` in this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see [Contribute to ROCm documentation](https://rocm.docs.amd.com/en/latest/contribute/contributing.html). ## Supported JPEG chroma subsampling * YUV 4:4:4 * YUV 4:4:0 * YUV 4:2:2 * YUV 4:2:0 * YUV 4:0:0 ## Prerequisites ### Hardware * **GPU**: [AMD Radeon™ Graphics](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) / [AMD Instinct™ Accelerators](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html) > [!IMPORTANT] > `gfx908` or higher GPU required ### ROCm via TheRock rocJPEG is built and installed as part of [TheRock](https://github.com/ROCm/TheRock). All core dependencies are provided by the TheRock build, including: * HIP runtime and development libraries * AMD Clang++ compiler (C++17 required) * Libva and VA-API drivers * Libdrm (amdgpu) * CMake and pkg-config ## Build and install rocJPEG is built as part of [TheRock](https://github.com/ROCm/TheRock). To build standalone from source: ```shell git clone https://github.com/ROCm/rocm-systems.git cd rocm-systems/projects/rocjpeg mkdir build && cd build cmake ../ make -j8 sudo make install ``` ### Run tests ```shell make test ``` > [!NOTE] > To run tests with verbose option, use `make test ARGS="-VV"`. ## Verify installation After installation, the following files are available: * Libraries in `/opt/rocm/lib` * Header files in `/opt/rocm/include/rocjpeg` * Samples in `/opt/rocm/share/rocjpeg` * Documents in `/opt/rocm/share/doc/rocjpeg` ### Using sample application To verify your installation using a sample application, run: ```shell mkdir rocjpeg-sample && cd rocjpeg-sample cmake /opt/rocm/share/rocjpeg/samples/jpegDecode/ make -j8 ./jpegdecode -i /opt/rocm/share/rocjpeg/images/mug_420.jpg ``` ### Using CTest To verify your installation using CTest, run: ```shell mkdir rocjpeg-test && cd rocjpeg-test cmake /opt/rocm/share/rocjpeg/test/ ctest -VV ``` ## Samples You can access samples to decode your images in the [samples](https://github.com/ROCm/rocm-systems/tree/develop/projects/rocjpeg/samples) directory. Refer to the individual folders to build and run the samples. ## Tested configurations * Linux * Ubuntu - `22.04` / `24.04` * [TheRock](https://github.com/ROCm/TheRock) - `7.12` or later