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.
- YUV 4:4:4
- YUV 4:4:0
- YUV 4:2:2
- YUV 4:2:0
- YUV 4:0:0
-
Linux distribution
- Ubuntu -
20.04
/22.04
/24.04
- RHEL -
8
/9
- SLES -
15-SP5
- Ubuntu -
Important
gfx908
or higher GPU required
- Install ROCm
6.3.0
or later with amdgpu-install: Required usecase - rocm
Important
sudo amdgpu-install --usecase=rocm
- Video Acceleration API (VA-API) Version
2.16.0+
-Libva
is an implementation for VA-APIsudo apt install libva-amdgpu-dev
Note
RPM Packages for RHEL
/SLES
- libva-amdgpu-devel
- AMD VA Drivers
sudo apt install libva2-amdgpu libva-amdgpu-drm2 libva-amdgpu-wayland2 libva-amdgpu-x11-2 mesa-amdgpu-va-drivers
Note
RPM Packages for RHEL
/SLES
- libva-amdgpu mesa-amdgpu-va-drivers
-
CMake
3.5
or latersudo apt install cmake
-
pkg-config
sudo apt install pkg-config
Important
- If using Ubuntu 22.04, you must install
libstdc++-12-dev
sudo apt install libstdc++-12-dev
Note
- All package installs are shown with the
apt
package manager. Use the appropriate package manager for your operating system. - To install rocJPEG with minimum requirements, follow the quick-start instructions
For your convenience, we provide the setup script, rocJPEG-setup.py which installs all required dependencies. Run this script only once.
Usage:
python rocJPEG-setup.py --rocm_path [ ROCm Installation Path - optional (default:/opt/rocm)]
NOTE: This script only needs to be executed once.
The installation process uses the following steps:
-
ROCm-supported hardware install verification
-
Install ROCm
6.3.0
or later with amdgpu-install with--usecase=rocm
-
Use either Package install or Source install as described below.
Install rocJPEG runtime, development, and test packages.
- Runtime package -
rocjpeg
only provides the rocjpeg librarylibrocjpeg.so
- Development package -
rocjpeg-dev
/rocjpeg-devel
provides the library, header files, and samples - Test package -
rocjpeg-test
provides CTest to verify installation
sudo apt install rocjpeg rocjpeg-dev rocjpeg-test
sudo yum install rocjpeg rocjpeg-devel rocjpeg-test
sudo zypper install rocjpeg rocjpeg-devel rocjpeg-test
Note
Package install auto installs all dependencies.
git clone https://github.com/ROCm/rocJPEG.git
cd rocJPEG
mkdir build && cd build
cmake ../
make -j8
sudo make install
make test
NOTE: run tests with verbose option make test ARGS="-VV"
sudo make package
The installer will copy
- Libraries into
/opt/rocm/lib
- Header files into
/opt/rocm/include/rocjpeg
- Samples folder into
/opt/rocm/share/rocjpeg
- Documents folder into
/opt/rocm/share/doc/rocjpeg
To verify your installation using a sample application, run:
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
To verify your installation using the rocjpeg-test
package, run:
mkdir rocjpeg-test && cd rocjpeg-test
cmake /opt/rocm/share/rocjpeg/test/
ctest -VV
The tool provides a few samples to decode JPEG images here. Please refer to the individual folders to build and run the samples. You can access samples to decode your images in our GitHub repository. Refer to the individual folders to build and run the samples.
You can find rocJPEG Docker containers in our GitHub repository.
Run the following code to build our documentation locally.
cd docs
pip3 install -r sphinx/requirements.txt
python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
For more information on documentation builds, refer to the Building documentation page.