• Home
Name Date Size #Lines LOC

..--

.github/workflows/04-Jul-2025-220181

android/04-Jul-2025-9674

app/04-Jul-2025-3,3952,773

inc/04-Jul-2025-529285

pkgconfig/04-Jul-2025-1611

readme/04-Jul-2025-190130

src/04-Jul-2025-11,8958,655

test/04-Jul-2025-2319

util/04-Jul-2025-226172

.clang-formatD04-Jul-20251.2 KiB6248

.gitignoreD04-Jul-2025446 5546

Android.bpD04-Jul-20253.3 KiB170145

CMakeLists.txtD04-Jul-20259.6 KiB251212

LICENSED04-Jul-20251.5 KiB2923

METADATAD04-Jul-2025610 2220

MODULE_LICENSE_BSDD04-Jul-20250

OWNERSD04-Jul-2025123 32

README.mdD04-Jul-20254.8 KiB12786

arm64_toolchain.cmakeD04-Jul-2025351 149

cmake_uninstall.cmake.inD04-Jul-2025855 2220

version.txtD04-Jul-202512 21

windows_x86_64_toolchain.cmakeD04-Jul-2025499 1611

README.md

1![OAPV](/readme/img/oapv_logo_bar_256.png)
2# OpenAPV (Open Advanced Professional Video Codec)
3
4[![Build and test](https://github.com/openapv/openapv/actions/workflows/build.yml/badge.svg)](https://github.com/openapv/openapv/actions/workflows/build.yml)
5
6OpenAPV provides the reference implementation of the [APV codec](#apv-codec) which can be used to record professional-grade video and associated metadata without quality degradation. OpenAPV is free and open source software provided by [LICENSE](#license).
7
8The OpenAPV supports the following features:
9
10- fully compliant with 422-10 and 400-10 profile of [APV codec](#apv-codec)
11- Low complexity by optimization for ARM NEON and x86(64bit) SEE/AVX CPU
12- Supports tile-based multi-threading
13- Supports Various metadata including HDR10/10+ and user-defined format
14- Constant QP (CQP), average bitrate (ABR), and constant rate factor (CRF) are supported
15
16
17## APV codec
18The APV codec is a professional video codec, which was developed in response to the need for professional level high quality video recording and post production. The primary purpose of the APV codec is for use in professional video recording and editing workflows for various types of content.
19
20APV codec utilizes technologies known to be over 20 years to achieve a royalty free codec. APV builds a video codec using only conventional coding technologies, which consist of traditional methods published between the early 1980s and the end of the 1990s.
21
22The APV codec standard has the following features:
23
24- Perceptually lossless video quality, which is close to raw video quality
25- Low complexity and high throughput intra frame only coding without pixel domain prediction
26- Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
27- Frame tiling for immersive content and for enabling parallel encoding and decoding
28- Support for various chroma sampling formats from 4:2:2 to 4:4:4, and bit-depths from 10 to 16
29- Support for multiple decoding and re-encoding without severe visual quality degradation
30- Support multi-view video and auxiliary video like depth, alpha, and preview
31- Support various metadata including HDR10/10+ and user-definded format
32
33### Related specification
34- APV Codec (bitstream): [https://datatracker.ietf.org/doc/draft-lim-apv/](https://datatracker.ietf.org/doc/draft-lim-apv/)
35  - Scope of OpenAPV project
36- APV ISO based media file format: [APV-ISOBMFF](/readme/apv_isobmff.md)
37- APV RTP payload format: [https://datatracker.ietf.org/doc/draft-lim-rtp-apv/](https://datatracker.ietf.org/doc/draft-lim-rtp-apv/)
38
39## How to build
40- Build Requirements
41  - CMake (download from [https://cmake.org/](https://cmake.org/))
42  - GCC
43
44  For ARM
45  - gcc-aarch64-linux-gnu
46  - binutils-aarch64-linux-gnu
47
48  For Windows (crosscompile)
49  - mingw-w64
50  - mingw-w64-tools
51
52- Build Instructions PC (Linux)
53  ```
54  cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
55  cmake --build build
56  ```
57
58- Build Instructions ARM (Crosscompile)
59  ```
60  cmake -S . -B build-arm -DCMAKE_TOOLCHAIN_FILE=aarch64_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
61  cmake --build build-arm
62  ```
63
64- Build Instructions Windows (Crosscompile)
65  ```
66  cmake -S . -B build-windows -DCMAKE_TOOLCHAIN_FILE=windows_x86_64_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
67  cmake --build build-windows
68  ```
69
70- Output Location
71  - Executable applications can be found under build*/bin/
72  - Library files can be found under build*/lib/
73
74## How to use
75### Encoder
76
77Encoder as input require raw YCbCr file (422, 444), 10-bit or more.
78
79Displaying help:
80
81    oapv_app_enc --help
82
83Encoding:
84
85    oapv_app_enc -i input_1920x1080_yuv422_10bit.yuv -w 1920 -h 1080 -d 10 -z 30 --input-csp 2 -o encoded.apv
86    oapv_app_enc -i input.y4m -o encoded.apv
87
88### Decoder
89
90Decoder output can be in yuv or y4m formats.
91
92Displaying help:
93
94    oapv_app_dec --help
95
96Decoding:
97
98    oapv_app_dec -i encoded.apv -o output.y4m
99
100## Utility
101
102### Graphical APV bitstream parser
103
104Pattern file of APV bitstream for [ImHex](https://github.com/WerWolv/ImHex) is provided [here](/util/apv.hexpat).
1051. Install [ImHex](https://github.com/WerWolv/ImHex) application
1062. Download [APV pattern file](/util/apv.hexpat)
1072. Open APV bitstream (\*.apv file) with ImHex
1083. Import the APV pattern file on Pattern editor view of ImHex and apply
109
110![APV_on_ImHex](/readme/img/apv_parser_on_imhex.png)
111
112## Testing
113
114In build directory run ``ctest``
115
116## Packaging
117
118For generating package ready for distribution (default deb) execute in build directory ``cpack``,  or other formats (tgz, zip etc.) ``cpack -G TGZ``.
119
120## License
121
122See [LICENSE](LICENSE) file for details.
123
124## Graphic logo
125![OAPV](/readme/img/oapv_logo_bar_64.png) ![OAPV](/readme/img/oapv_logo_bar_128.png) ![OAPV](/readme/img/oapv_logo_bar_256.png)
126![OAPV](/readme/img/oapv_logo_btn_64.png) ![OAPV](/readme/img/oapv_logo_btn_96.png) ![OAPV](/readme/img/oapv_logo_btn_128.png)
127