Video Bitstream Tranching for Low-Delay Parallel CABAC Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current parallel processing techniques for HEVC video coding, such as wavefront processing and tile processing, face challenges in reducing coding delay while maintaining coding efficiency, especially in multi-threaded decoding environments where data locality is compromised, leading to increased end-to-end delays in video transmission.
Innovation Solution
The approach involves segmenting data into smaller tranches within WPP substreams or tiles, allowing for continued context-adaptive binary arithmetic coding probability adaptation across tranche boundaries, enabling earlier transmission and decoding of these tranches, which are interleaved and packetized to match maximum transfer unit sizes, thereby reducing delay without compromising entropy coding efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If wavefront processing or tile processing is used for parallel decoding, then decoding speed is improved, but coding efficiency is reduced due to interrupted CABAC probability adaptation
Solution Approach 1:
The picture is divided into multiple WPP substreams, with each substream processed independently by a separate decoding thread. This segmentation enables parallel processing while maintaining continuous CABAC probability adaptation within each substream, resolving the contradiction between parallel decoding speed and coding efficiency.
2Loss of time
If data is segmented into smaller tranches for earlier transmission, then transmission delay is reduced, but data locality is compromised
Solution Approach 1:
Each WPP substream is further divided into smaller tranches that can be transmitted independently and earlier. This allows the system to reduce transmission delay by sending data in smaller chunks while the continuous CABAC probability adaptation within each substream maintains coding efficiency despite the segmentation.
Solution Approach 2:
Tranches are prepared and organized in advance within their respective WPP substreams, allowing the decoder to start processing earlier tranches before receiving later ones. This preliminary organization enables parallel decoding to begin sooner without compromising the overall coding structure.
3Productivity
If CABAC probability adaptation is interrupted at slice or substream boundaries for parallel processing, then parallel decoding is enabled, but entropy coding efficiency is reduced
Solution Approach 1:
The picture is segmented into multiple WPP substreams, where each substream maintains its own continuous CABAC probability adaptation. This segmentation allows parallel processing at the substream level while preserving entropy coding efficiency within each substream, avoiding the efficiency loss that would occur with complete CABAC interruption.
Solution Approach 2:
Each WPP substream has its own local CABAC probability state that is adapted continuously within that substream. This local quality approach ensures that entropy coding efficiency is maintained locally within each substream while still enabling global parallel processing across multiple substreams.
Data Source
AI summary
A raw byte sequence payload describing a picture in slices, WPP substreams or tiles and coded using context-adaptive binary arithmetic coding is subdivided into tranches with continuing the context-adaptive binary arithmetic coding probability adaptation across tranche boundaries. Thereby, tranche boundaries additionally introduced within slices, WPP substreams or tiles do not lead to a reduction in the entropy coding efficiency of these entities. However, the tranches are smaller than the original slices, WPP substreams or tiles and accordingly they may be transmitted earlier, i.e. with lower delay, than the un-chopped original entities. According to another aspect combinable with the first aspect, substream marker NAL units are used within a sequence of NAL units of a video bitstream to enable a transport demultiplexer to assign data of slices within NAL units to the corresponding substreams or tiles so as to be able to, in parallel, serve a multi-threaded decoder with the corresponding substreams or tiles.


