Video Processing Circuit Buffering for Bubble Cycle Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video processing circuits face significant performance drops due to bubble cycles caused by switching between stages and block size changes during size-based parallel computations, particularly in video coding standards like VVC.
Innovation Solution
A video processing circuit with a high-performance serial architecture that includes a first buffer and computation circuit to generate and store processing results for consecutive blocks, using a ring FIFO TM buffer to buffer 1st stage results and a stage decision-making switch to adaptively switch between stages, and SIVO and VISO buffers to manage data throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If a single transform kernel is reused for both 1st stage and 2nd stage processing, then computation resource is saved, but bubble cycles occur due to switching between stages and block sizes
Solution Approach 1:
The processing architecture is segmented into dedicated 1st stage processing units and 2nd stage processing units that operate independently and in parallel. This segmentation eliminates the need for switching between different processing modes, thereby removing bubble cycles while maintaining computational efficiency through parallel operation of specialized units.
Solution Approach 2:
The 1st stage processing is performed in advance on all blocks before 2nd stage processing begins. By completing the 1st stage transformation and buffering results beforehand, the system prepares data for 2nd stage processing without interruption, eliminating waiting periods and bubble cycles that would occur with sequential processing.
2Device complexity
If conventional sequential processing is used to handle blocks of different sizes, then device complexity is reduced, but productivity drops due to frequent stage switching
Solution Approach 1:
The system dynamically processes multiple block sizes simultaneously using dedicated processing units configured for specific block dimensions. Each processing unit is optimized for particular block sizes (e.g., 4x4, 8x8, 16x16), allowing the system to adapt to varying block size requirements without reconfiguration overhead or stage switching, thereby maintaining high productivity across different video content types.
Solution Approach 2:
Multiple processing streams for different block sizes are merged into a unified parallel processing architecture where 1st stage and 2nd stage units work concurrently. This combining of processing paths eliminates the need for sequential stage switching while handling variable block sizes, improving throughput without significantly increasing overall system complexity through shared buffering and control mechanisms.
Data Source
AI summary
A video processing circuit includes a first buffer and a computation circuit. Before a second one-dimensional processing operation is performed upon a plurality of consecutive blocks in a second direction, the first computation circuit generates a first processing result for each of the plurality of consecutive blocks by performing a first one-dimensional processing operation upon each of the plurality of consecutive blocks in a first direction that is different from the second direction, and further stores a plurality of first processing results of the plurality of consecutive blocks into the first buffer.


