Video Encoder Block Grouping for Buffer Delay Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Motion video encoding technologies face challenges in reducing decoding delay due to buffer overflow or underflow issues, leading to frame skipping and display delays, as they struggle to manage code amounts effectively across different picture types and complexities at constant transmission rates.
Innovation Solution
A motion video encoding apparatus that divides pictures into blocks, determines block groups, computes decode times, and controls code amounts to ensure data arrival at the receive buffer by the computed decode time, thereby reducing decoding delay.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If the buffer size is reduced to reduce buffer delay, then the display delay at the decoder end is reduced, but the picture quality degrades due to decreased freedom in distributing code amounts
Solution Approach 1:
The picture is divided into multiple blocks, and each block is assigned to one of several groups. By controlling code amounts at the block level within each group rather than at the picture level, the system achieves finer-grained distribution freedom. This segmentation enables effective code amount control even with reduced buffer sizes, thereby maintaining picture quality while reducing buffer delay.
2Loss of time
If the receive buffer is made smaller to reduce decoding delay, then the display delay is reduced, but buffer underflow or overflow occurs more frequently
Solution Approach 1:
The system computes decode times for each block group in advance and uses this information to control code amounts proactively. By determining the timing requirements beforehand and adjusting code distribution accordingly, the system prevents buffer underflow and overflow conditions before they occur, enabling reliable operation with smaller receive buffers.
Solution Approach 2:
The system implements feedback control by monitoring the actual code amounts generated for each block group and comparing them against the target code amounts calculated based on decode times. This feedback mechanism allows dynamic adjustment of quantization parameters and other encoding controls to maintain buffer occupancy within safe boundaries, preventing overflow and underflow.
3Manufacturing precision
If the code amount for each picture is increased to improve picture quality, then the compression efficiency improves, but the receive buffer may underflow causing frame skipping
Solution Approach 1:
Instead of applying uniform code amount control across an entire picture, the system applies different code amount controls to different block groups based on their specific decode times and complexity. This local quality approach allows the encoder to allocate more bits to important blocks while maintaining overall quality, preventing buffer underflow that would cause frame skipping.
4Ease of operation
If the transmission rate is kept constant to simplify transmission, then the system is easier to operate, but the freedom in distributing code amounts among pictures decreases
Solution Approach 1:
The system introduces dynamic code amount control at the block group level, where target code amounts are calculated based on decode times and actual encoding progress. This dynamic adjustment mechanism provides adaptability in code distribution while maintaining constant transmission rate, allowing the system to respond to varying picture complexities without changing the overall transmission rate.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A motion video encoding apparatus includes: a group determining unit which determines to which of a plurality of groups each block belongs; a group decode time information computing unit which computes a decode time for each of the groups; a group information appending unit which appends group information identifying the group to which each block belongs to data to be output; a code amount control unit which controls an amount of code for each block contained in the group so that data needed for decoding all the blocks contained in the group will arrive at a stream receive buffer provided in a motion video decoding apparatus by the decode time of the group when the data is transmitted to the motion video decoding apparatus at a prescribed transmission rate; and an encode processing unit which encodes each block, based on control information concerning the amount of code.