Methods and apparatus for video encoding and decoding binary sets using adaptive tree selection

By adopting multiple trees and subtree structures in video encoding and decoding, combining adaptive tree selection and tree node transformation, the problem that traditional encoding methods are difficult to utilize the statistical characteristics of video content changes is solved, and more efficient encoding and decoding effects are achieved.

JP2025069199AActive Publication Date: 2025-04-30INTERDIGITAL VC HOLDINGS INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025006841
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2009-07-02
Filing Date
2025-01-17
Publication Date
2025-04-30
Estimated Expiration
2030-06-23

AI Technical Summary

Technical Problem

Traditional tree structures are difficult to effectively utilize the statistical characteristics of video content changes in video encoding and decoding, resulting in low encoding efficiency.

Method used

Multi-tree and subtree structures are used to encode and decode binary data sets, and the encoding process is optimized through adaptive tree selection and tree node transformation.

Benefits of technology

Through the combination and adaptive selection of multiple trees and subtrees, the diversity of video content can be captured more effectively, and the encoding efficiency and compression ratio can be improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025069199000001_ABST
    Figure 2025069199000001_ABST
Patent Text Reader

Abstract

To provide methods and apparatus for encoding and decoding binary sets using adaptive tree selection.SOLUTION: In a method 500, a functional block 510 performs prediction mode selection and passes control to a functional block 515, the functional block 515 transmits the prediction via a signal and passes control to a loop-end block 520, the loop-end block 520 performs a loop of entropy encoding for a binary set and passes control to a functional block 525, the functional block 525 selects the optimal tree and passes control to a functional block 530, the functional block 530 encodes the index of the selected tree and passes control to a functional block 535, the functional block 535 encodes the binary set using the selected tree and passes control to a loop-end block 540, and the loop-end block 540 ends the loop and passes control to an end block 599.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 61 / 222,729, filed July 2, 2009, the entire disclosure of which is incorporated herein by reference. Additionally, the subject matter disclosed in this application is related to a common application, Attorney Docket No. PU100131, entitled "METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING BINARY SET SUSING ADAPTIVE TREE SELECTION," filed on the same assignee as this application, which also claims the benefit of U.S. Provisional Patent Application No. 61 / 222,729, filed July 2, 2009, the entire disclosure of which is incorporated herein by reference.

[0002] The present principles relate generally to video encoding and decoding, and more particularly to methods and apparatus for video encoding and decoding binary sets using adaptive tree selection. [Background technology]

[0003] Block-based discrete transforms are fundamental components of many image and video compression standards in widespread use, including the Joint Photographic Experts Group (JPEG), the International Telecommunication Union, Telecommunication Sector (ITU-T) H.263 Recommendation (hereafter referred to as the "H.263 Recommendation"), the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) Moving Picture Experts Group-1 (MEPG-1) standard, the ISO / IEC MPEG-2 standard, the ISO / IEC MPEG-4 Part 10 Part 10 Advanced Video Coding (AVC) standard, the International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereafter referred to as the "MPEG-4 AVC standard"), and many others. Most modern video coding standards use transforms to efficiently reduce residual correlation in the spatial domain. The discrete cosine transform (DCT) is the most widely used block transform.

[0004] After the transform process, the transform coefficients are quantized. Then, each quantized coefficient is entropy coded to signal their level and sign. Because the percentage of zero coefficients is very high, it is efficient to split the coding process into two steps. In the first step, the positions of the non-zero coefficients are signaled. In the second step, the levels and signs of these coefficients are signaled.

[0005] An efficient way to code the positions involves the use of a tree structure. However, transmitting the position of each coefficient is still very costly because video content data has varying statistics and characteristics, and the significance of transform coefficients also varies depending on the position of the coefficient. However, conventional tree-based significance coding does not adequately take into account these varying statistics and characteristics between each coefficient and the content. Summary of the Invention

[0006] These and other shortcomings and drawbacks of the prior art are addressed by the principles of the present invention, which are directed to methods and apparatus for video encoding and decoding binary sets using adaptive tree selection.

[0007] According to an aspect of the present principles, there is provided an apparatus including a video encoder for encoding picture data for at least a block in a picture, the video encoder selecting from a plurality of trees to encode a binary set of data indicative of coefficient significance for at least the block.

[0008] According to another aspect of the present principles, there is provided a method in a video encoder comprising the steps of: encoding picture data for at least a block in a picture, the encoding step including selecting from a plurality of trees for encoding a binary set of data indicative of coefficient significance for at least the block.

[0009] According to yet another aspect of the present principles, there is provided an apparatus including a video decoder for decoding picture data for at least a block in a picture, the video decoder selecting from a plurality of tree structures to encode a binary set of data indicative of coefficient significance for at least the block.

[0010] According to yet another aspect of the present principles, there is provided a method in a video decoder comprising: decoding picture data for at least a block in a picture, the decoding comprising selecting from a plurality of trees to encode a binary set of data indicative of coefficient significance for at least the block.

[0011] According to yet another aspect of the present principles, there is provided an apparatus including a video encoder for encoding picture data for at least a block in a picture, encoding a binary set of data indicative of coefficient significance for at least the block using one or more trees, each of the one or more trees having a plurality of nodes, and wherein in at least one of the one or more trees, at least one of the nodes of the tree is altered in response to one or more parameters.

[0012] According to yet another aspect of the present principles, there is provided a method in a video encoder comprising the steps of: encoding picture data for at least a block in a picture; encoding a binary set of data indicative of coefficient significance for at least the block using one or more trees, each of the one or more trees having a plurality of nodes. In at least one of the one or more trees, at least one of the nodes of the tree is altered in response to one or more parameters.

[0013] According to yet another aspect of the present principles, there is provided an apparatus including a video decoder for decoding picture data for at least a block in a picture, and decoding a binary set of data indicative of coefficient significance for at least the block using one or more trees, each of the one or more trees having a plurality of nodes, and in at least one of the one or more trees, at least one of the nodes of the tree is altered in response to one or more parameters.

[0014] According to yet another aspect of the present principles, there is provided a method in a video decoder, the method including the steps of: decoding picture data for at least a block in a picture; decoding a binary set of data indicative of coefficient significance for at least the block using one or more trees, each of the one or more trees having a plurality of nodes. In at least one of the above trees, at least one of the nodes of the tree is modified in response to one or more parameters.

[0015] These and other aspects, features and advantages of the present principles will become apparent from the following detailed description of illustrative embodiments, which is to be read in connection with the accompanying drawings.

[0016] The principles of the present invention will be better understood in accordance with the following illustrative drawings. [Brief description of the drawings]

[0017] [Figure 1] 1 is a block diagram showing an exemplary video encoder to which the present principles may be applied, in accordance with an embodiment of the present principles; FIG. [Diagram 2] 1 is a block diagram showing an exemplary video decoder to which the present principles may be applied, in accordance with an embodiment of the present principles; FIG. [Diagram 3] 1 is a diagram showing an exemplary tree structure to which the present principles may be applied, in accordance with an embodiment of the present principles; [Figure 4] 1 is a diagram showing an exemplary binary tree to which the present principles may be applied, in accordance with an embodiment of the present principles; [Diagram 5] FIG. 11 is a flow diagram showing an exemplary method for encoding with adaptive tree selection, in accordance with an embodiment of the present principles; [Figure 6] FIG. 11 is a flow diagram showing an exemplary method for decoding with adaptive tree selection, in accordance with an embodiment of the present principles; [Figure 7]FIG. 11 is a flow diagram showing an exemplary method for encoding using tree node transformation, in accordance with an embodiment of the present principles; [Figure 8] FIG. 11 is a flow diagram showing an exemplary method for decoding using tree node transformation, in accordance with an embodiment of the present principles; [Figure 9] FIG. 11 is a flow diagram showing another exemplary method for encoding using tree-node transformation, in accordance with an embodiment of the present principles; [Figure 10] FIG. 11 is a flow diagram showing another exemplary method for decoding using tree node transformation, in accordance with an embodiment of the present principles; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0018] The present principles are directed to methods and apparatus for video encoding and decoding binary sets using adaptive tree selection.

[0019] The present description illustrates the principles of the present invention. It will be appreciated that those skilled in the art will be able to contemplate various configurations which embody the principles of the invention, even if not described or illustrated, and such configurations are encompassed within the spirit and scope of the invention.

[0020] All examples and conditional language described herein are for instructional purposes to aid the reader in understanding the principles of the invention, and the concepts contributed by the inventors advance the art, and should not be construed as being limited to such specifically described examples and conditions.

[0021] Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents. Additionally, such equivalents are intended to encompass not only currently known equivalents, but also equivalents developed in the future, i.e., all elements developed that perform the same function, regardless of structure.

[0022] Thus, for example, those skilled in the art will appreciate that the block diagrams presented herein are conceptual diagrams illustrating circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, etc., represent various processes, which may be represented in a computer-readable medium substantially and executed by a computer or processor, whether or not such a computer or processor is explicitly illustrated.

[0023] The functionality of the various elements illustrated in the figures may be provided through the use of dedicated hardware or hardware capable of executing software in association with appropriate software. Where functionality is provided by a processor, it may be provided by a single dedicated processor, a single shared processor, or multiple separate processors, some of which may be shared among processors. Furthermore, any explicit use of the terms "processor" or "controller" should not be construed to mean only hardware capable of executing software, but may implicitly include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.

[0024] It may also include other hardware, conventional and / or customary. Similarly, any switches shown in the drawings are conceptual only. These functions may be performed through operation of program logic, through dedicated logic, through interaction of program control with dedicated logic, or even manually. The particular technique may be selected by the implementer as specifically understood by the circumstances.

[0025] In the claims, any element expressed as a means for performing a certain function is intended to encompass any manner of performing that function, such as a) a combination of circuitry performing the function, or b) a combination of software, regardless of form, including firmware, microcode, etc., with circuitry suitable for executing software to perform the function. The principle of the invention defined by such claims is based on the fact that the functionality provided by the various means recited in the claims is combined and brought together as required by the claims. Any means capable of providing such functionality are therefore deemed equivalent to those shown in this application.

[0026] When the specification refers to "one embodiment," "an embodiment," or a similar phrase of the present principles, this means that the particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrases "in one embodiment," "in an embodiment," or a similar phrase in various places throughout the specification are not necessarily all referring to the same embodiment.

[0027] The use of " / ", "and / or", and "at least one of" are intended to encompass the selection of only the first listed option (A), only the second listed option (B), or both options (A and B), e.g., "A / B", "A and / or B", and "at least one of A and B". As another example, "A, B, and / or C" and "at least one of A, B, and C" are intended to encompass the selection of only the first listed option (A), only the second listed option (B), or both options (A and B). The present invention is intended to encompass the selection of only option (B), only option (C), only option (A) and option (B) enumerated in the first and second enumerated options, only option (A) and option (B) enumerated in the third enumerated option, only option (C) enumerated in the first and second enumerated options, only option (A) and option (B) enumerated in the first and third enumerated options, only option (A) and option (C) enumerated in the second and third enumerated options, or all three options (A, B, and C). The extension of this to the number of items enumerated will be readily apparent to one of ordinary skill in the art and to the relevant art.

[0028] Also, as used herein, the words "picture" and "image" are used interchangeably to mean either a still image or a picture from a video sequence. As is known, a picture can be a frame or a field.

[0029] Also, the word "signal" as used herein refers to indicating something to a corresponding decoder. For example, an encoder may signal one or more trees or subtrees for use in decoding data, such as a binary set of data indicating coefficient significance for one or more blocks in a picture, and / or one or more parameters for use in determining modifications to one or more nodes of one or more trees and / or subtrees. In this way, the same trees, subtrees, and / or modifications can be used at both the encoder and decoder side. Thus, for example, the encoder may send a set of trees and / or subtrees to the decoder so that the decoder can use the same trees and / or subtrees, or, if the decoder already has trees and / or subtrees among others, the encoder may simply inform the decoder of the trees and / or subtrees and select them (without sending data). By avoiding sending the actual trees and / or subtrees and / or parameters (used to modify the nodes), bit savings can be realized. It will be appreciated that the signaling can be done in a variety of ways. For example, one or more syntax elements, flags, etc. may be used to signal information to a corresponding decoder.

[0030] Turning to FIG. 1, a video encoder to which the present principles may be applied is indicated generally by the reference numeral 100 .

[0031] The video encoder 100 includes a frame ordering buffer 110 having an output in signal communication with a non-inverting input of a combiner 185. The output of the combiner 185 is connected in signal communication with a first input of a transformer / quantizer 125. The output of the transformer / quantizer 125 is connected to an entropy coder using adaptive tree selection and tree node transformation 145. and a first input of the inverse transformer / inverse quantizer 150. An output of the entropy coder using adaptive tree selection and tree node transformation 145 is connected in signal communication with a first non-inverting input of a combiner 190. An output of the combiner 190 is connected in signal communication with a first input of the output buffer 135.

[0032] A first output of the encoder controller 105 is coupled in signal communication with a second input of the frame ordering buffer 110, a second input of the inverse transformer / inverse quantizer 150, an input of the picture type decision module 115, a first input of the macroblock type (MB type) decision module 120, a second input of the intra prediction module 160, a second input of the deblocking filter 165, a first input of the motion compensator 170, a first input of the motion estimator 175, and a second input of the reference picture buffer 180.

[0033] A second output of the encoder controller 105 is coupled in signal communication with a first input of a supplemental enhancement information (SEI) inserter 130, a second input of the transformer / quantizer 125, a second input of the entropy coder with adaptive tree selection and tree node transformation 145, a second input of the output buffer 135, and an input of a Sequence Parameter Set (SPS) / Picture Parameter Set (PPS) inserter 140.

[0034] An output of the SEI inserter 130 is connected in signal communication with a second non-inverting input of the combiner 190 .

[0035] A first output of the picture type decision module 115 is connected in signal communication with a third input of the frame ordering buffer 110. A second output of the picture type decision module 115 is connected in signal communication with a second input of a macroblock type decision module 120.

[0036] An output of the sequence parameter set (SPS) / picture parameter set (PPS) inserter 140 is connected in signal communication with a third non-inverting input of the combiner 190 .

[0037] An output of the inverse transformer / inverse quantizer 150 is connected in signal communication with a first non-inverting input of a combiner 119. An output of the combiner 119 is connected in signal communication with a first input of an intra prediction module 160 and a first input of a deblocking filter 165. An output of the deblocking filter 165 is connected in signal communication with a first input of a reference picture buffer 180. An output of the reference picture buffer 180 is connected in signal communication with a second input of a motion estimator 175 and a third input of a motion compensator 170. A first output of the motion estimator 175 is connected in signal communication with a second input of the motion compensator 170. A second output of the motion estimator 175 is connected in signal communication with a third input of the entropy coder with adaptive tree selection and tree node transformation 145.

[0038] An output of the motion compensator 170 is connected in signal communication with a first input of a switch 197. An output of the intra prediction module 160 is connected in signal communication with a second input of the switch 197. An output of the macroblock type decision module 120 is connected in signal communication with a third input of the switch 197. The third input of the switch 197 is compared to a control input (i.e., third input) of the switch. Determines whether the “data” input is provided by the motion compensator 170 or the intra prediction module 160. An output of the switch 197 is connected in signal communication with a second non-inverting input of the combiner 119 and an inverting input of the combiner 185.

[0039] A first input of the frame ordering buffer 110 and an input of the encoder controller 105 are available as inputs of the encoder 100 for receiving input pictures. Furthermore, a second input of the supplemental enhancement information (SEI) inserter 130 is available as an input of the encoder 100 for receiving metadata. An output of the output buffer 135 is available as an output of the encoder 100 for outputting a bitstream.

[0040] Turning to FIG. 2, an exemplary video decoder to which the present principles may be applied is indicated generally by the reference numeral 200 .

[0041] The video decoder 200 includes an input buffer 210 having an output connected in signal communication with a first input of an entropy decoder using adaptive tree selection and tree node transformation 245. The first output of the entropy decoder using adaptive tree selection and tree node transformation 245 is connected in signal communication with a first input of an inverse transformer / inverse quantizer 250. The output of the inverse transformer / inverse quantizer 250 is connected in signal communication with a second non-inverting input of a combiner 225. The output of the combiner 225 is connected in signal communication with a second input of a deblocking filter 265 and a first input of an intra prediction module 260. The second output of the deblocking filter 265 is connected in signal communication with a first input of a reference picture buffer 280. The output of the reference picture buffer 280 is connected in signal communication with a second input of a motion compensator 270.

[0042] A second output of the entropy decoder using adaptive tree selection and tree node transformation 245 is connected in signal communication with a third input of the motion compensator 270, a first input of the deblocking filter 265, and a third input of the intra prediction module 260. A third output of the entropy decoder using adaptive tree selection and tree node transformation 245 is connected in signal communication with an input of a decoder controller 205. A first output of the decoder controller 205 is connected in signal communication with a second input of the entropy decoder using adaptive tree selection and tree node transformation 245. A second output of the decoder controller 205 is connected in signal communication with a second input of the inverse transformer / inverse quantizer 250. A third output of the decoder controller 205 is connected in signal communication with a third input of the deblocking filter 265. A fourth output of the decoder controller 205 is coupled in signal communication with a second input of the intra prediction module 260, a first input of the motion compensator 270, and a second input of the reference picture buffer 280.

[0043] An output of the motion compensator 270 is connected in signal communication with a first input of a switch 297. An output of the intra prediction module 260 is connected in signal communication with a second input of the switch 297. An output of the switch 297 is connected in signal communication with a first non-inverting input of the combiner 225.

[0044] An input of the input buffer 210 is available as an input of the decoder 200 for receiving an input bitstream. A first output of the deblocking filter 265 is available as an output of the decoder 200 for outputting an output picture.

[0045] As described above, the principles of the present invention employ adaptive tree selection for encoding and decoding. Such adaptive tree selection may be used, for example, to encode or decode a binary set of data indicating coefficient significance for one or more blocks in a picture.

[0046] In the MPEG-4 AVC standard, each position of a non-zero coefficient is coded by a significance map. The significance map in MPEG-4 AVC works as follows: If the coded_block_flag indicates that the block has significant coefficients, a binary significance map is coded. For each coefficient in scan order, a 1-bit symbol significant_coeff_flag is transmitted. If significant_coeff_flag is 1, i.e. if there is a non-zero coefficient at this scan position, an additional 1-bit symbol last_significant_coeff_flag is transmitted. This symbol indicates whether the current significant coefficient is the last one in the block or if other significant coefficients follow. Note that the flags (significant_coeff_flag, last_significant_coeff_flag) at the last scanning position of a block are not transmitted. If the last scanning position is reached and the coding of the significance map has not already been terminated by last_significant_coeff_flag having a value of 1, then it is clear that the last coefficient must be significant.

[0047] Another way to indicate significance concerns "zero-trees". An example can be found in the wavelet transform for image compression. A tree structure is used to convey the significance map. With reference to FIG. 3, an exemplary tree structure to which the principles of the present invention are applied is generally indicated by reference number 300. Each small square represents a transform coefficient. The root of the tree is represented by a square containing a star. The child nodes are the neighboring coefficients. Furthermore, the relationships of the child nodes are indicated by arrows. As shown, each parent has four other coefficients as children. The tree structure 300 is only an example of these relationships and also how a tree structure might look, but does not represent the entire tree or the parent-child relationships within the tree. In this case, each node of the tree is associated with a coefficient, and the tree is constructed considering the spatial relationships between the wavelet transform coefficients in two dimensions (2-D). Then, for each node, a 0 or a 1 is transmitted. A value / symbol of 0 means that the coefficient at that particular node in the tree and also all coefficients below this coefficient in the tree are zero. In this way, many zero coefficients are coded using only one symbol. This can result in good compression when many zeros are present. It will be understood that in this disclosure and application, the term "tree" is used interchangeably with the term "tree structure" and the term "subtree" is used interchangeably with the term "subtree structure."

[0048] Many algorithms followed the concept of so-called zero trees. One variation of it is the so-called binary tree coding, which is a type of simple but efficient tree. In this case, each leaf of the tree may be associated with a transform coefficient, but the internal nodes of the tree are not associated with any coefficients. The coding is then more similar than in the previous case, i.e., if all coefficients below a node are zero (0), then one does not need to go below that node and explicitly indicate the significance / zero value of each coefficient, since a zero can indicate that situation. Referring to FIG. 4, an exemplary binary tree to which the principles of the present invention may be applied is indicated generally by the reference numeral 400. The binary tree 400 includes nodes 1-13. Node 1 is the root node. Nodes 2, 3, 6, 9 and 11 are internal nodes. Nodes 4, 5, 7, 8, 10, 12 and 13 are leaf nodes.

[0049] The probability of significance depends on many factors that these methods do not adequately take into account. There is spatial correlation between the significance of each coefficient. Also, the statistical properties of the coefficients on the low frequency side are different from those on the high frequency side. Moreover, the differences between the significance maps of each residual block can be very large. Therefore, using one data structure and coding process is not sufficient to capture all of this diversity.

[0050] Therefore, taking into account at least the above-mentioned deficiencies of the prior art, at least one embodiment of the present principles proposes the use of several trees and subtrees to better accommodate the diversity of significance maps. By having several trees and subtrees available simultaneously and encoding a given binary set by selecting from these trees, the coding efficiency can be improved. For example, in one embodiment, the final bit rate for encoding each of the subtrees is a suitable measure on which to base the selection. In one embodiment, it is proposed to select for each significance map the best tree or combination of subtrees to encode it. Also, in one embodiment, In an embodiment, we propose using transformations, groupings, sign flipping, and other operations that exploit statistical properties and correlations between values ​​in the leaves. In one embodiment, we propose using these operations on trees, subtrees, or parts of trees or subtrees. In one embodiment, we also propose pre-processing each leaf through binary operators to further exploit potential interdependencies of binary sets.

[0051] We also propose to use a set of subtrees and to adaptively select among them to improve the efficiency in coding the positions of zero / non-zero coefficients. We further propose to perform a process / transformation for each node / leaf of the tree, modifying their original meaning in order to better exploit the interdependencies between them.

[0052] In a zero-tree structure for encoding a binary set (such as a significance map of transformed coefficients), each leaf is given the binary value of an element in this set. Thus, there is a one-to-one relationship between the value of each leaf and each element of the binary set. The significance map of the residual coefficients forms a binary set.

[0053] The value of each internal node can be derived by finding the value of each node below this internal node. In this way, the significance / binary value of each internal node is derived from each leaf (node) to the root node. The tree is then encoded by signaling the value of each node starting from the root node. Compression is achieved because when a node is marked with "0", all nodes below this node are "0", meaning there is no need to specifically signal the value of each node.

[0054] The probability of significance depends on many factors that the prior art methods do not adequately take into account. There is spatial correlation between the significance of each coefficient. Also, the statistical properties of the coefficients on the low frequency side are different from those on the high frequency side. Moreover, the differences between the significance maps of each residual block can be very large. Therefore, using one data structure and coding process is not sufficient to capture all of this diversity.

[0055] In one embodiment, we propose to encode a given binary set, such as a significance map, by selecting among several trees and subtrees. Furthermore, we propose to potentially modify the meaning of the tree leaf values ​​in some leaves via transformations, flipping bits, or other operators. The modification aims to make the tree encoding process more efficient by representing the values ​​more compactly as "0"s and "1"s than the original values ​​in the tree.

[0056] Certain embodiments are described below, and of course, these and other modifications of the principles of the present invention may be contemplated by those skilled in the art of this and related arts in light of the disclosure of the principles of the present invention provided herein, without departing from the spirit and scope of the principles of the present invention.

[0057] In one embodiment, the cost of encoding the set with each tree is calculated, and the tree with the smallest cost is used to encode the significance map. The cost function can be the final bit rate, entropy, and / or one or more other parameters. The selected tree is signaled, for example, using a flag.

[0058] In one embodiment, several trees are at disposal, and the tree selected depends on the prediction mode, on the particular transform used for the block, and / or on other decoded data, and the correct (i.e., selected) tree to use is determined. The encoder does not need to signal explicitly.

[0059] In one embodiment, the significance map is divided into several parts. For each part, a set of subtrees is used to code that particular part. The cost of each subtree is calculated and the one with the lowest cost is selected for coding that part of the significance map. In each part, a flag can indicate the selected subtree. Furthermore, when a subtree is coded, it must be indicated whether the rest of the map is being coded (i.e. there are significant coefficients remaining) or is not being coded (i.e. all remaining coefficients are zero). To this end, in one embodiment, a flag can indicate the significance of the rest of the map. In another embodiment, this is indicated by means of an additional node in the subtree. If the rest of the map is zero, this node is "0" and if the rest of the map has at least one significant coefficient, this node is "1". This node / leaf is coded together with the rest of the tree and no explicit signaling is required. In this embodiment, the subtree may have an additional node for that purpose (i.e. for that purpose). As an exception, the subtrees devoted to encoding the last part of the map do not need this additional node. Moreover, some subtrees for encoding intermediate parts of the tree may not have this node, and the selection of such a subtree implicitly means that the remainder of the map is zero.

[0060] In one embodiment, a set of trees and subtrees can be used to encode the significance map. Each subtree can have a different size. The cost of different combinations of subtrees and the cost of the entire tree are calculated, and the combination or tree with the smallest cost is selected to encode the binary set.

[0061] In at least one embodiment, the second part to our approach to encoding / decoding using adaptive tree selection is how to combine / modify / transform nodes in the tree, or subsets of nodes, to better exploit correlations and dependencies between them. Tree coding is more efficient when the fraction of binary sets that are zero (compared to the non-zero fraction) is large, so any process that has a large amount of zeros helps the coding process. For example, in the case of a significance map, a coefficient is less likely to be significant if its neighbors are zero than if its neighbors are non-zero. The particular structure of the tree partially accounts for that fact, but does not fully capture and exploit all dependencies. The set of proposed sets for leaves The combination and processing aims to solve this problem.

[0062] In the case of significance maps, each node of the tree is linked to nearby coefficients in two dimensions (2-D). This is because the two-dimensional significance map is scanned in one dimension (1-D) and then mapped to the tree nodes. Since the residuals of a 2-D block show dependencies between nearby coefficients, the corresponding tree also shows dependencies between nearby nodes / leaves. For this reason, a binary processing of the nodes lends itself to improved efficiency.

[0063] In one embodiment, binary processing can consider the data at each leaf of the tree as a one-dimensional array of data and apply binary operators / transformations to the array.

[0064] In certain embodiments, a binary wavelet transform, a binary discrete Fourier transform, and / or other binary transforms can be applied to the data, reducing the spatial correlation of the sequences and allowing for more efficient encoding of the trees.

[0065] In another particular embodiment, the correlation of the neighborhood can be reduced as follows: In this case, a string of consecutive ones and zeros occurs in the significance map scanned in one dimension. Starting from the second leaf of the tree, the correlation is reduced by iteratively subtracting the value of the leaf from the previous leaf. A particular embodiment of this point involves applying a logical XOR operation to successive leaves. In this case, the following binary set 1111000001111 is transformed into the set 10001000001000. It can be seen that this operation reduces the number of non-zeros taking advantage of the one-dimensional spatial correlation of the tree leaves.

[0066] In certain other embodiments, we flip the meaning of the tree leaf nodes so that the null tree encoding becomes a significance tree encoding, which is useful when the binary tree contains more ones than zeros.

[0067] In other embodiments, a tree can have two meanings; some nodes can be processed one way and other nodes can be processed another way. This leads to a particular embodiment of what we call a dual tree. The first coefficient of the tree is known to be normally non-zero (not zero) and the remaining coefficients are normally zero. So a dual tree would flip the value of each leaf of the first coefficient while maintaining the normal significance meaning of the remaining leaves. This is a dual tree that effectively encodes non-zeros and zeros in both parts of the tree.

[0068] Building on this proposal, there are further points within the tree leaves where the meaning changes (from flipping a bit value to not flipping a bit value). This point can be adaptively changed and can be either explicitly indicated in the bitstream or derived from previously reconstructed data. Applicant calls this embodiment an "adaptive-flipping dual binary tree."

[0069] It is clear that the "dual" tree can be extended in several ways to pre-process the tree or one or more parts of the tree, and some "semantic change points" can be adapted and modified as needed (i.e. not just flipping bits, but potentially any transformation / modification of the nodes).

[0070] Both parts of our proposal can be combined in many ways, as would be readily understood by one skilled in the art in this and related arts, given the disclosure of the inventive principles provided herein, e.g., some subtrees can be processed and others not.

[0071] Syntax Table 1 shows an exemplary syntax for an adaptive tree selection sequence parameter set for encoding a binary set, in accordance with an embodiment of the present principles. Table 2 shows an exemplary syntax for a block parameter indicating a particular tree used to encode a significance map for a block, in accordance with an embodiment of the present principles. [Table 1] [Table 2]

[0072] The semantics of at least some of the syntax elements shown in Tables 1 and 2 are as follows:

[0073] adaptive_tree_selection_flag: adaptive_tree_selection_flag equal to 0 means that no adaptive tree selection is performed for coding the transformed residual coefficients (coded as a binary set), and adaptive_tree_selection_flag equal to 1 means that adaptive tree selection is performed for coding the transformed residual coefficients.

[0074] binary_tree_index: The binary_tree_index specifies which tree is selected to code the current residual block.

[0075] Turning to FIG. 5, an exemplary method for encoding using adaptive tree selection is indicated generally by the reference numeral 500. The method 500 includes a start block 505 that passes control to a function block 510. The function block 510 performs a prediction mode selection and passes control to a function block 515. The function block 515 signals a prediction (obtained from the prediction mode) and passes control to a loop limit block 520. The loop limit block 520 performs an entropy coding loop on the binary set and passes control to a function block 525. The function block 525 selects the best tree (e.g., one or more trees). The function block 530 encodes an index of the selected tree and passes control to a function block 535. The function block 535 encodes a binary set using the selected tree and passes control to a loop limit block 540. The loop limit block 540 ends the loop and passes control to an end block 599.

[0076] Turning to FIG. 6, an exemplary method for decoding using adaptive tree selection is indicated generally by the reference numeral 600. The method 600 includes a start block 605 that passes control to a loop limit block 610. The loop limit block 610 executes a loop to entropy decode the binary set and passes control to a function block 615. The function block 615 parses the tree index syntax and selects the tree index syntax used by the encoder. The function block 620 gets the used tree and passes control to a function block 620. The function block 620 decodes the binary set using the decoded tree and passes control to a loop limit block 625. The loop limit block 625 ends the loop and passes control to an end block 699.

[0077] Turning to FIG. 7, an exemplary method for encoding using tree node transformation is indicated generally by the reference numeral 700. The method 700 includes a start block 705 that passes control to a function block 710. The function block 710 determines a binary set and a prediction mode and passes control to a function block 720. The function block 720 performs regular tree construction based on the binary set and prediction mode (determined by the function block 710) and passes control to a function block 730. The function block 730 performs a tree node transformation and passes control to a function block 740. The function block 740 performs entropy coding of the tree and passes control to a function block 799.

[0078] Turning to FIG. 8, an exemplary method for decoding using tree node transform is indicated generally by the reference numeral 800. The method 800 includes a start block 805 that passes control to a start block 810. The function block 810 determines the (particular) tree to use based on the prediction mode and the binary set and passes control to a function block 820. The function block 820 entropy decodes the tree and passes control to a function block 830. The function block 830 performs an inverse transform of the tree nodes and passes control to a function block 840. The function block 840 outputs a binary set (based on the results of the inverse transform) and passes control to an end block 899.

[0079] Turning to FIG. 9, another method for encoding using tree node transformation is indicated generally by the reference numeral 900. The method 900 includes a start block 905 that passes control to a function block 910. The function block 910 divides the binary set into several subsets (possibly of different sizes) and passes control to a loop limit block 915. The loop limit block 915 starts a loop over all binary subsets and passes control to a loop limit block 920. The loop limit block 920 starts a loop over multiple trees and passes control to a function block 925. The function block 925 adds the significance of the next binary subset to the current subset and passes control to a function block 930. The function block 930 entropy encodes the tree and passes control to a loop limit block 935. The loop limit block 935 ends the loop over multiple trees and passes control to a function block 940. The function block 940 selects the tree with the best performance and passes control to a function block 945. The function block 945 entropy encodes the selected tree and passes control to a decision block 950. The decision block 950 determines whether the selected tree is a terminal subtree. If so, then control is passed to an end block 999. Otherwise, control is passed to a loop limit block 955. The loop limit block 955 ends the loop on the binary set, and passes control to an end block 999.

[0080] Turning to FIG. 10 , another exemplary method for decoding using a tree node transformation is indicated generally by the reference numeral 1000. The method 1000 includes a start block 1005 that passes control to a function block 1010. The function block 1010 splits the binary set into several subsets (possibly of different sizes) and passes control to a loop limit block 1020. The loop limit block 1020 starts a loop over all binary subsets and passes control to a function block 1030. The function block 1030 decodes the selected tree, entropy decodes the tree, and passes control to a function block 1040. The function block 1040 determines if the current tree has additional leaves, The next binary subset is determined to be significant and control is passed to a decision block 1050. The decision block 1050 determines whether the selected tree is a terminal subtree or whether the next binary subset is not significant. If the selected tree is a terminal subtree or the next binary subset is not significant, control is passed to an end block 1099. Otherwise, control is passed to a loop limit block 1060. The loop limit block 1060 ends the loop for all binary subsets and passes control to an end block 1099.

[0081] Some of the many attendant advantages / features of the present invention will now be described, some of which have been mentioned above. For example, one advantage / feature is an apparatus having an encoder for encoding picture data for at least a block in a picture, the video encoder selecting from a plurality of trees to encode a binary set of data indicative of coefficient significance for at least the block.

[0082] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the video encoder selects one or more trees from the plurality of trees.

[0083] Moreover, another advantage / feature is an apparatus having a video encoder, as described above, wherein the video encoder selects one or more trees from a plurality of trees, the one or more trees being selected based on one or more measures, the one or more measures including at least one of a bit rate value and a rate distortion value.

[0084] Moreover, another advantage / feature is an apparatus having a video encoder as described above, wherein the video encoder selects one or more trees from the plurality of trees, the selected one or more trees being indicated as side information.

[0085] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the video encoder selects from the plurality of trees according to at least one of a prediction mode, a transform, decoded data of one or more previously decoded blocks, and other decoded data of the block.

[0086] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the binary set of data is encoded by dividing the binary set of data into a plurality of subsets and encoding the plurality of subsets, and the video encoder selects from the plurality of trees and the plurality of subsets to encode the plurality of subsets.

[0087] Moreover, another advantage / feature has the video encoder as described above, wherein the binary set of data is encoded by dividing the binary set of data into a plurality of subsets and encoding the plurality of subsets, the video encoder comprising: 16. An apparatus for selecting from subsets of numbers and encoding a plurality of subsets, wherein at least one of the plurality of subtrees has an additional node that indicates zero or nonzero values ​​of remaining subordinate nodes in at least one of the plurality of subtrees.

[0088] Moreover, another advantage / feature is having the video encoder as described above, wherein the binary set of data is encoded by dividing the binary set of data into a plurality of subsets and encoding the plurality of subsets, the video encoder being an apparatus for encoding the plurality of subsets by selecting from a plurality of trees and a plurality of subsets, at least one of the plurality of subtrees being a terminal subtree, and the selection of the terminal subtree indicating that all remaining portions of the binary set of data are zero.

[0089] Moreover, another advantage / feature is the apparatus having a video encoder as described above, wherein the binary set of data is encoded by dividing the binary set of data into a plurality of subsets and encoding the plurality of subsets, wherein the video encoder is an apparatus for selecting from a plurality of trees and a plurality of subsets to encode the plurality of subsets, each of the plurality of trees including a plurality of nodes, at least some of the plurality of trees having different sizes corresponding to a different number of nodes included in the tree.

[0090] Moreover, another advantage / feature is an apparatus having a video encoder for encoding picture data for at least a block in a picture, wherein the binary set of data indicating coefficient significance for the at least one block is encoded using one or more trees, each of the one or more trees having a plurality of nodes, and wherein in at least one of the one or more trees, at least one of the nodes of the tree is altered in response to one or more parameters.

[0091] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the plurality of nodes includes, for each of the one or more trees, a root node and at least one leaf node, and the binary transform is applied to at least one of the at least one leaf node.

[0092] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the plurality of nodes includes, for each of the one or more trees, a root node and at least one leaf node, and a binary transform is applied to at least one of the at least one leaf node, wherein the binary transform is a binary wavelet transform or a binary Fourier transform.

[0093] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the apparatus modifies at least one of the nodes by applying a subtraction to at least one of the nodes.

[0094] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein the plurality of nodes includes, for each of the one or more trees, a root node and two or more consecutive leaf nodes, and at least one of the modified nodes includes two or more consecutive leaf nodes, and the apparatus applies an exclusive OR operation to at least two of the two or more consecutive leaf nodes to modify at least the two or more consecutive leaf nodes.

[0095] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein a bit in at least one of the nodes is flipped in value to change at least one of the nodes.

[0096] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein at least one of the nodes being modified indicates that only a portion of a total number of nodes in one or more trees are modified, such that only a portion of the total number of nodes are modified.

[0097] Moreover, another advantage / feature is an apparatus having a video encoder, as described above, for detecting at least one of the nodes being modified, such that only a portion of a total number of nodes in one or more trees are modified, where one or more of the one or more trees are modified in response to one or more parameters, and the particular nodes at which the modification is initiated are at least two nodes from one or more of the one or more trees. It is a device that changes between trees.

[0098] Moreover, another advantage / feature is the apparatus having the video encoder as described above, wherein one or more of the one or more trees are modified in response to the one or more parameters, each tree including a set of nodes, and different modifications are applied to different subsets of nodes between at least two trees from one or more of the one or more trees.

[0099] Moreover, another advantage / feature is the apparatus having a video encoder, as described above, where one or more of the one or more trees are modified in response to one or more parameters, each tree including a set of nodes, and where different modifications are applied to different subsets of nodes between at least two trees from one or more of the one or more trees, wherein the different subsets of nodes to which the different modifications are applied are adaptively determined.

[0100] These and other features of the present principles may be readily ascertained by one of ordinary skill in the relevant art based on the disclosure herein. It is to be understood that the present principles may be implemented in the form of hardware, software, firmware, special purpose processors, or combinations thereof.

[0101] More preferably, the teachings of the present principles are implemented as a combination of hardware and software. Furthermore, the software is implemented as an application program tangibly embodied on a program storage unit. The application program may be uploaded to a machine of suitable architecture and executed by the machine. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPUs), a random access memory (RAM), and input / output (I / O) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions disclosed herein may be part of the microinstruction code, part of the application program, or a combination thereof, executed by the CPU. Furthermore, various other peripheral devices may be connected to the computer platform, such as additional data storage devices and printers.

[0102] It will be appreciated that some of the system components and method steps shown in the accompanying drawings are preferably implemented in software form, and therefore the actual coupling between the system components or processing function blocks may vary depending on how the principles of the present invention are programmed. Based on the disclosure herein, those of ordinary skill in the relevant art will be able to easily implement or implement the principles of the present invention, as well as similar embodiments or configurations thereof. Any embodiment or configuration may be envisaged.

[0103] Although exemplary embodiments have been described herein with reference to the accompanying drawings, it will be understood that the present invention is not strictly limited to these embodiments, and that various changes and modifications may be made by those of ordinary skill in the relevant art without departing from the scope or spirit of the principles of the present invention. All such changes and modifications are intended to be included within the scope of the principles of the present invention as set forth in the appended claims.

Claims

1. 1. An apparatus having a video encoder (100) for encoding picture data for a block in a picture, the video encoder selecting from a plurality of tree structures to encode a binary set of data indicating coefficient significance for the block.

2. 1. A method, in a video encoder, comprising: encoding picture data for a block in a picture, the encoding comprising selecting from a plurality of tree structures for encoding a binary set of data indicating coefficient significance for the block (525).

3. 3. The method of claim 2, wherein the selecting step selects (525) at least one tree structure from the plurality of tree structures.

4. 4. The method of claim 3, wherein the at least one tree structure is selected as a function of at least one metric, the at least one metric including at least one of a bit rate value and a rate distortion value (525).

5. The method of claim 3 , wherein the selected at least one tree structure is communicated as side information ( 530 ).

6. 3. The method of claim 2, wherein the selecting step selects from the plurality of tree structures depending on at least one of a prediction mode, a transformation, decoded data of one or more previously decoded blocks, and other decoded data of a block (710, 720).

7. 3. The method of claim 2, wherein the binary set of data is divided into a plurality of subsets and the plurality of subsets are encoded, the encoding of the plurality of subsets being done by selecting from a plurality of subtree structures (900, 910).

8. 8. The method of claim 7, wherein at least one of the plurality of subtree structures has an additional node (925, 930) that indicates zero or non-zero values ​​of remaining subordinate nodes in the at least one of the plurality of subtrees.

9. 9. The method of claim 8, wherein at least one of the plurality of subtree structures is a terminal subtree, and selection of the terminal subtree indicates that all remaining portions of the binary set of data are zero (930, 950).

10. 1. An apparatus having a video decoder (200) for decoding picture data for a block in a picture, the video decoder selecting from a plurality of tree structures to decode a binary set of data indicating coefficient significance for the block.

11. 1. A method, in a video decoder, comprising: decoding picture data for a block in a picture, the decoding comprising selecting from the plurality of tree structures to decode a binary set of data intended to indicate coefficient significance for the block (620).

12. The method of claim 11 , wherein the selecting step selects (615, 620) at least one tree structure from the plurality of tree structures.

13. The at least one tree structure is selected according to at least one measure, and the at least one tree structure is 13. The method of claim 12, wherein the at least one measure comprises at least one of a bit rate value and a rate distortion value (615).

14. The method of claim 12, wherein the selected at least one tree structure is communicated as side information (615).

15. 12. The method of claim 11, wherein the selecting step selects from the plurality of tree structures depending on at least one of a prediction mode, a transformation, decoded data of one or more previously decoded blocks, and other decoded data of a block (810).

16. 1. A non-transitory storage medium having encoded video signal data, comprising:

11. A storage medium comprising a binary set of data indicative of coefficient significance for a block in a picture, the binary set of data being encoded by selecting from a plurality of tree structures.

Citation Information

Patent Citations

  • Image-coding method and image-decoding method, image coder and image decoder, and medium stored with their programs thereon

    JP2001218209A

  • Method for image coding by rate-distortion adaptive zerotree-based residual vector quantization and system for effecting same

    US20020080408A1

  • Video frame or picture encoding and decoding

    US20050123207A1

  • Data compression system including successive approximation quantizer

    US5321776A

  • Data compression using set partitioning in hierarchical trees

    US5764807A