Custom ASIP for Real-Time Video Slice Header Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video coding standards, such as H.264/AVC and HEVC, face challenges in real-time decoding of complex slice headers, which are beyond the capacity of most embedded RISC processors, leading to inefficiencies in video coding and decoding processes.
Innovation Solution
The implementation of a custom instruction set processor (ASIP) with specialized instructions for accelerating video sequence encoding and decoding, specifically designed to handle slice header processing, enables real-time processing of both typical and worst-case scenarios by optimizing processor architecture and adding custom functional units for enhanced performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a standard embedded RISC processor is used for video decoding, then the processor is simple and flexible, but it cannot decode complex slice headers in real-time
Solution Approach 1:
The processor architecture is segmented into a standard RISC core for general control and a dedicated hardwired slice processing unit for complex slice header decoding. This segmentation allows the simple RISC processor to offload specific complex tasks to the specialized hardware unit, achieving real-time decoding of complex slice headers without requiring the entire processor to be complex.
Solution Approach 2:
A control processor acts as an intermediary between the bit stream input and the slice processing unit. It fetches instructions, manages the instruction pipeline, and coordinates the interaction between the standard RISC processor and the hardwired slice processing unit, enabling seamless real-time processing of complex slice headers.
2Productivity
If hardwired slice processing control logic is implemented, then real-time decoding of complex slice headers is achieved, but the ability to tune the decoder for error conditions is reduced
Solution Approach 1:
The system dynamically switches between the hardwired slice processing unit for normal operation and the programmable RISC processor for error condition handling. The control processor manages this dynamic behavior, allowing the decoder to be tuned for different error conditions by loading different instruction sequences while maintaining real-time processing capability through the hardwired unit.
Solution Approach 2:
The control processor serves multiple functions: it manages the instruction pipeline for the hardwired unit, handles error condition processing, and coordinates overall decoder operation. This multi-functional design allows the system to maintain real-time processing while preserving adaptability for error conditions through a single versatile control component.
3Productivity
If custom processor instructions are added for video coding acceleration, then encoding and decoding performance is improved, but the processor design becomes more complex
Solution Approach 1:
Complex video coding functions are extracted from the general-purpose RISC processor and implemented as dedicated hardwired functional units. This extraction removes the burden of implementing complex video algorithms in software, improving throughput while keeping the RISC instruction set simple and focused on control functions.
Solution Approach 2:
Software-based video decoding operations are replaced with hardwired hardware logic for slice header processing. This substitution of mechanical/software operations with dedicated hardware circuits dramatically improves processing speed and throughput for specific video coding tasks without requiring complex software instruction sequences.
Data Source
AI summary
A control processor for a video encode-decode engine is provided that includes an instruction pipeline. The instruction pipeline includes an instruction fetch stage coupled to an instruction memory to fetch instructions, an instruction decoding stage coupled to the instruction fetch stage to receive the fetched instructions, and an execution stage coupled to the instruction decoding stage to receive and execute decoded instructions. The instruction decoding stage and the instruction execution stage are configured to decode and execute a set of instructions in an instruction set of the control processor that are designed specifically for accelerating video sequence encoding and encoded video bit stream decoding.


