Transform Coefficient Coding for Video Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video coding standards like AVS face inefficiencies due to long runs and high overhead of EOB flags, which lead to increased computational complexity and reduced compression efficiency, especially in blocks with many non-zero coefficients, and the decoder lacks a priori knowledge of coefficient locations until all data is decoded.
Innovation Solution
The method involves partitioning transform blocks into non-overlapping coefficient groups, signaling the last non-zero coefficient group and its position, and encoding level, run, and sign data within these groups, eliminating the need for EOB flags and enabling context-adaptive entropy coding, with a doubly-linked list for rate-distortion optimization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If coefficients are coded using level, run, sign, and EOB flag in reverse zig-zag direction, then compression is achieved, but long runs result in increased number of bins to be coded and high overhead from EOB flags
Solution Approach 1:
The transform block is divided into multiple coefficient groups (e.g., four 4x4 groups in a 16x16 block). Each coefficient group is independently coded with its own last-coefficient-position flag, allowing the coding process to be segmented and parallelized, reducing the computational burden on long runs spanning multiple groups.
Solution Approach 2:
The last-coefficient-position flag for each coefficient group is determined and prepared in advance during the encoding process. This preliminary action allows the decoder to know the position of the last non-zero coefficient in each group before actual decoding, eliminating the need to process all possible bins and reducing computational complexity.
2Loss of information
If EOB flags are used to mark the end of non-zero coefficients, then coefficient positioning is tracked, but overhead increases significantly especially in blocks with many non-zero coefficients
Solution Approach 1:
The EOB flag function is extracted and replaced by the last-coefficient-position flag mechanism. Instead of using EOB flags throughout the coefficient sequence, the invention extracts the essential information (position of last non-zero coefficient) and encodes it directly, eliminating the overhead of multiple EOB flags while maintaining coefficient location tracking.
Solution Approach 2:
Instead of marking the end of non-zero coefficients with EOB flags in the traditional forward direction, the invention inverts the approach by directly specifying the position of the last non-zero coefficient. This inversion eliminates the need for continuous EOB flagging and reduces overhead significantly.
3Loss of substance
If coding is performed in reverse zig-zag direction from the last non-zero coefficient, then compression is achieved, but the decoder lacks a priori knowledge of coefficient locations until all data is decoded
Solution Approach 1:
The last-coefficient-position flag for each coefficient group is determined and encoded in advance, providing the decoder with a priori knowledge of coefficient locations. This preliminary encoding of position information allows the decoder to optimize its processing without having to wait for all data to be decoded.
Solution Approach 2:
The last-coefficient-position flag acts as an intermediary that carries location information from the encoder to the decoder. This intermediary element provides the decoder with advance knowledge of coefficient positions, enabling optimized decoding without requiring full data decoding first.
Data Source
AI summary
Methods and devices for encoding and decoding video are described that partition transform blocks into coefficient groups. The coefficients within non-zero coefficients are run-length coded in a reverse scan order within the group. Prior to coefficient coding, data is encoded indicating which coefficient group in group scan order is the last to contain a non-zero coefficient. Then data is encoded indicating the position within that last non-zero coefficient group of the last non-zero coefficient in scan order inside the coefficient group. Thus the decoder is able to decode run-length data knowing the positions of the coefficients and eliminating the need for end-of-block flags.


