8000 GitHub - ROCm/rocJPEG at rocm-6.3.0
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
8000
/ rocJPEG Public

rocJPEG is a high-performance jpeg decode SDK for decoding jpeg images using a hardware-accelerated jpeg decoder on AMD’s GPUs.

License

Notifications You must be signed in to change notification settings

ROCm/rocJPEG

Repository files navigation

MIT licensed

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.

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

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-API
    sudo 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 later

    sudo 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

Prerequisites setup script for Linux

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.

Installation instructions

The installation process uses the following steps:

Package install

Install rocJPEG runtime, development, and test packages.

  • Runtime package - rocjpeg only provides the rocjpeg library librocjpeg.so
  • Development package - rocjpeg-dev/rocjpeg-devel provides the library, header files, and samples
  • Test package - rocjpeg-test provides CTest to verify installation

Ubuntu

sudo apt install rocjpeg rocjpeg-dev rocjpeg-test

RHEL

sudo yum install rocjpeg rocjpeg-devel rocjpeg-test

SLES

sudo zypper install rocjpeg rocjpeg-devel rocjpeg-test

Note

Package install auto installs all dependencies.

Source install

git clone https://github.com/ROCm/rocJPEG.git
cd rocJPEG
mkdir build && cd build
cmake ../
make -j8
sudo make install

Run tests

make test

NOTE: run tests with verbose option make test ARGS="-VV"

Make package

sudo make package

Verify installation

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

Using sample application

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

Using test package

To verify your installation using the rocjpeg-test package, run:

mkdir rocjpeg-test && cd rocjpeg-test
cmake /opt/rocm/share/rocjpeg/test/
ctest -VV

Samples

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.

Docker

You can find rocJPEG Docker containers in our GitHub repository.

Documentation

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.

0