Rectangular Slice Bitstreams for Multicore Image Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing video encoding methods, such as HEVC and VVC, face inefficiencies in parallel processing due to redundant syntax elements and lack of optimal division techniques for tiles and slices, which hinder effective utilization of multicore CPUs for faster encoding and decoding.
Innovation Solution
The proposed solution involves dividing images into rectangular regions with at least one block row and slicing them in raster order, specifying start positions of coded data based on first and second information, and multiplexing these with the coded data to generate a bitstream.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If tiles or slices are divided for parallel processing in HEVC, then processing speed is improved, but redundant syntax elements increase device complexity
Solution Approach 1:
The patent extracts and removes the redundant num_entry_point_offset syntax element from the bitstream. By deriving the number of entry points from existing slice height and brick row information, the patent eliminates unnecessary data transmission while maintaining parallel processing capabilities through WPP.
Solution Approach 2:
The patent enables the decoding system to self-determine the number of entry points by deriving it from existing slice parameters (sliceHeight, numBrickRowsInSlice). This self-service mechanism eliminates the need for explicit num_entry_point_offset signaling, reducing syntax complexity while preserving parallel processing functionality.
2Productivity
If VVC divides tiles into bricks for parallel processing, then encoding efficiency is improved, but redundant num_entry_point_offset syntax increases bitstream size
Solution Approach 1:
The patent removes the redundant num_entry_point_offset syntax element from the bitstream by deriving its value from existing slice parameters. This extraction eliminates unnecessary bits while maintaining the brick-based parallel processing structure introduced in VVC.
Solution Approach 2:
The patent changes the representation method of the number of entry points from explicit signaling (num_entry_point_offset) to implicit derivation based on sliceHeight and numBrickRowsInSlice parameters. This parameter transformation reduces bitstream size while preserving encoding efficiency.
3Reliability
If conventional HEVC encoding is used, then compatibility is maintained, but parallel processing capability is limited
Solution Approach 1:
The patent segments the picture into tiles and further into bricks with well-defined entry points, enabling independent parallel processing of multiple block rows. This segmentation maintains HEVC compatibility while significantly enhancing parallel processing capability through the Wavefront Parallel Processing technique.
Solution Approach 2:
The patent performs preliminary division of the picture into tiles and bricks with predetermined entry points before encoding. This preliminary structuring enables subsequent parallel processing without compromising HEVC compatibility, as the division follows standard HEVC tile/slice concepts.
Data Source
AI summary
An image is divided into rectangular regions each including at least one block row, and the image is divided into rectangular slices or slices to be processed in raster order. In a case where the image is divided into the rectangular slices, based on first information for specifying a rectangular region to be processed first and second information for specifying a rectangular region to be processed last, the rectangular regions in the rectangular slice is specified. Based on the number of blocks in a vertical direction in each of the specified rectangular regions, the number of pieces of information for specifying a start position of coded data of the block row in the rectangular slice is specified. A bitstream in which at least the pieces of information, the first and second information, and the coded data are multiplexed is generated.


