Project RP002 Optimize H.264 Decoding in FFmpeg
Bidding Starts: Wednesday, November 15th, 2023
Bidding Ends: Friday, December 1st, 2023
Contract Start Date:
Summary:
Accelerate H.264 decoding by contributing RISC-V optimizations to FFmpeg. Specifically,
- Implement specialized RISC-V DSP routines for the identified functions in H.264 DSP Functions
- Using hardware feature detection so specialized functions are enabled at runtime
- Only ratified extensions to RISC-V can be used, for example V + Zb{a,b,c,s}
- Implementations should work on vector lengths 128b and greater
- Develop a test harness to verify correctness against the pure C implementation
- Randomized input verified against C for each specialized DSP function
- Update testing infrastructure to run full correctness test harness (2a) in CI
- Develop a test harness to measure performance against the pure C implementation
- Unit tests to benchmark specialized DSP functions, see https://code.videolan.org/videolan/dav1d/-/merge_requests/1463
- Integration tests that measure H.264 decoding speed for set of real-world videos
- Produce a performance report based on (3) that compares the pure C to optimized code
- DSP function speed-up on RISC-V hardware v C implementation
- Table of video sequence decode speeds (in FPS) before and after optimization
- Roughly equivalent data on alternate ISAs (for reference only)
- Testing shall be done on any conformant RISC-V hardware that contains RVV 1.0 extension, for example:
- Kendryte K230 - https://www.canaan.io/product/k230
- Software shall open source (MIT/BSD licensed, or similar) so it is available to other projects