No description
Find a file
Narayan Kalaburgi f90307a9d6 libhevc: Implement 10-bit 444 Chroma Intra-Prediction
This commit adds spatial intra-prediction support for 10-bit 444
chroma blocks during the decoder's prediction stage.

Changes include:
- Updated ihevc_hbd_chroma_intra_pred_filters.c to add 444 scaling
  (sub_sample = 2 vs sub_sample = 1).
- Added support for 32x32 chroma block predictions (nt == 32), which
  is the maximum chroma transform unit size in the 444 profile.
- Integrated the new filtering logic by updating the CTB intra-prediction
  loop in ihevcd_iquant_itrans_recon_ctb.c
2026-08-14 21:34:32 +00:00
.github/workflows cmake.yml: Add runners to build arm and aarch63 builds 2026-02-22 20:55:28 -08:00
.vscode Rename test folder as examples 2026-04-13 12:02:22 +05:30
cmake Add initial tests for decoder and encoder 2026-07-27 13:15:45 -07:00
common libhevc: Implement 10-bit 444 Chroma Intra-Prediction 2026-08-14 21:34:32 +00:00
decoder libhevc: Implement 10-bit 444 Chroma Intra-Prediction 2026-08-14 21:34:32 +00:00
encoder Pass remaining bytes when reinitializing bitstream structure after tile or slice 2026-06-22 10:53:19 +05:30
examples Cleanup unnecessary changes in main.c 2026-08-09 23:47:45 +00:00
fuzzer Clean up HBD support before split 2026-08-07 17:25:44 +00:00
tests Added support for 420 10-bit decoding. 2026-08-07 03:21:32 +00:00
Android.bp Add HBD source files to Android.bp 2026-08-14 01:13:07 +00:00
CMakeLists.txt Add initial tests for decoder and encoder 2026-07-27 13:15:45 -07:00
FrameInfo.md Decoder: add support for QP and block_type map export in library 2022-08-04 11:40:43 +05:30
libhevc_blocklist.txt Remove assembly functions from CFI blocklist 2021-01-21 16:26:15 -08:00
LICENSE Add LICENSE to fix lint warning 2023-01-25 17:14:53 -08:00
METADATA Add METADATA to libhevc: Apache2=NOTICE 2020-04-28 08:53:23 -07:00
MODULE_LICENSE_APACHE2 Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
NOTICE Initial Version of HEVC decoder 2014-05-21 18:14:55 -07:00
OWNERS OWNERS: Include avic_OWNERS 2023-08-11 15:54:49 -07:00
PREUPLOAD.cfg point to new repo hooks for mainline uploads 2020-05-26 15:17:47 -07:00
README.md libhevc: Enable support for MacOS 2024-10-01 06:37:42 -07:00

LIBHEVC

Getting Started Document

LibHEVC build steps

Supports:

  • aarch32/aarch64 on Linux.
  • aarch32/aarch64 on Android.
  • x86_32/x86_64 on Linux.
  • aarch64 on Mac.
  • x86_64 on Mac.

Native Builds

Use the following commands for building on the target machine

$ cd external/libhevc
$ mkdir build
$ cd build
$ cmake ..
$ make

Cross-compiler based builds

Building for x86_32 on a x86_64 Linux machine

$ cd external/libhevc
$ mkdir build
$ cd build
$ CFLAGS="-m32" CXXFLAGS="-m32" LDFLAGS="-m32" cmake ..
$ make

Building for aarch32/aarch64

Update 'CMAKE_C_COMPILER', 'CMAKE_CXX_COMPILER', 'CMAKE_C_COMPILER_AR', and 'CMAKE_CXX_COMPILER_AR' in CMAKE_TOOLCHAIN_FILE passed below

$ cd external/libhevc
$ mkdir build
$ cd build

For aarch64

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake
$ make

For aarch32

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake
$ make

Building for android

NOTE: This assumes that you are building on a machine that has Android NDK.

$ cd external/libhevc
$ mkdir build
$ cd build

Armv7 (32-bit)

cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\
    -DHEVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\
    -DANDROID_ABI=armeabi-v7a\
    -DANDROID_PLATFORM=android-23 ../
make

Armv8 (64-bit)

cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\
    -DHEVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\
    -DANDROID_ABI=arm64-v8a\
    -DANDROID_PLATFORM=android-23 ../
make