Method for adaptive entropy coding of tree structures
First Claim
1. A method for encoding a bitstream, the bitstream representing a traversed octree representation of a 3D mesh model, the method comprising:
- defining at least a first and a second symbol group of binary symbols, wherein the first symbol group is a subset of the second symbol group;
determining within the bitstream two or more first portions, zero or more second portions and two or more third portions, wherein each first portion has at least a first pre-defined number of consecutive symbols of the first symbol group, each second portion has at least a second pre-defined number of consecutive symbols of the second symbol group, and wherein remaining parts of the bitstream are third portions;
determining in the bitstream a part that comprises only first and third portions;
encoding the bitstream, wherein said first portions are encoded using a first code, said second portions are encoded using a second code and said third portions are encoded using a third code; and
encoding values indicating the boundary positions between the first, second and third portions in the bitstream, wherein in said part that comprises only first and third portions the encoding of a boundary position between a first portion and an adjacent third portion is skipped and implicitly encoded if the third portion has a pre-defined length.
2 Assignments
0 Petitions
Accused Products
Abstract
In 3D mesh coding, the geometry data is compressed by spatial tree based approaches. Bitstreams that result from the traversal of a tree structure of spatial tree based approaches for encoding 3D mesh models have systematically special redundancies, which is exploited for further improving the mesh model compression. A method for encoding a bitstream comprises steps of defining at least a first and a second symbol group of binary symbols, with S1 being a subset of S2, determining within the bitstream first portions, second portions and third portions, wherein first portions have Th1 or more consecutive S1 symbols and second portions have Th2 or more consecutive S2 symbols, encoding the bitstream, wherein first portions, second portions and third portions are encoded using different codes, and encoding values indicating the boundary positions between the first, second and third portions in the bitstream.
46 Citations
16 Claims
-
1. A method for encoding a bitstream, the bitstream representing a traversed octree representation of a 3D mesh model, the method comprising:
-
defining at least a first and a second symbol group of binary symbols, wherein the first symbol group is a subset of the second symbol group; determining within the bitstream two or more first portions, zero or more second portions and two or more third portions, wherein each first portion has at least a first pre-defined number of consecutive symbols of the first symbol group, each second portion has at least a second pre-defined number of consecutive symbols of the second symbol group, and wherein remaining parts of the bitstream are third portions; determining in the bitstream a part that comprises only first and third portions; encoding the bitstream, wherein said first portions are encoded using a first code, said second portions are encoded using a second code and said third portions are encoded using a third code; and encoding values indicating the boundary positions between the first, second and third portions in the bitstream, wherein in said part that comprises only first and third portions the encoding of a boundary position between a first portion and an adjacent third portion is skipped and implicitly encoded if the third portion has a pre-defined length. - View Dependent Claims (2, 3, 4, 5, 6, 14)
-
-
7. Method for decoding a bitstream, the bitstream representing a traversed octree representation of a 3D mesh model, comprising:
-
decoding from the beginning of the bitstream control information that comprises lengths of the first, second and third portions; determining, according to said control information, within the bitstream at least two or more first portions, each having consecutive symbols of a first symbol group, zero or more second portions, each having consecutive symbols of a second symbol group, and two or more third portions having symbols of a third symbol group, wherein at least one of said third portions and said zero or more second portions are in a consecutive first part of the bitstream, and at least one of said first portions and said at least two second portions are in a consecutive second part of the bitstream; decoding said consecutive symbols of the at least two or more first portions to symbols of a fixed length using a first symbol decoder based on a first symbol group; decoding said consecutive symbols of the zero or more second portions to symbols of said fixed length using a first symbol decoder based on a second symbol group, wherein the second symbol group comprises said symbols of the first symbol group and additional symbols if at least one second portion was determined; decoding the symbols of said two or more third portions to symbols of said fixed length using a third symbol decoder based on a third symbol group, wherein the third symbol group comprises only symbols that are not comprised in said second symbol group; and providing the decoded symbols of said first, second and third portions of the bitstream in a sequential order according to said control information. - View Dependent Claims (8, 9, 10, 15)
-
-
11. An apparatus for encoding a bitstream, comprising at least a memory and one or more processors, wherein the one or more processors are configured to:
-
define at least a first and a second symbol group of binary symbols, wherein the first symbol group is a subset of the second symbol group; determine within the bitstream two or more first portions, zero or more second portions and two or more third portions, wherein each first portion has at least a first pre-defined number of consecutive symbols of the first symbol group, each second portion has at least a second pre-defined number of consecutive symbols of the second symbol group, and wherein remaining parts of the bitstream are third portions; determine in the bitstream a part that comprises only first and third portions; encode the bitstream, wherein said first portions are encoded in a first sub-encoder using a first code, said second portions are encoded in a second sub-encoder using a second code and said third portions are encoded in a third sub-encoder using a third code; and encode values indicating the boundary positions between the first, second and third portions in the bitstream, wherein in said part that comprises only first and third portions the encoding of a boundary position between a first portion and an adjacent third portion is skipped and implicitely encoded if the third portion has a pre-defined length.
-
-
12. An apparatus for decoding a bitstream, comprising at least a memory and one or more processors, wherein the one or more processors are configured to:
-
decode from the beginning of the bitstream control information; determine, according to said control information, within the bitstream at least two or more first portions, each having consecutive symbols of a first symbol group, zero or more second portions, each having consecutive symbols of a second symbol group, and two or more third portions having symbols of a third symbol group, wherein at least one of said third portions and said zero or more second portions are in a consecutive first part of the bitstream, and at least one of said first portions and said at least two second portions are in a consecutive second part of the bitstream; decode said consecutive symbols of the at least two or more first portions to symbols of a fixed length using a first symbol decoder, based on a first symbol group; decode said consecutive symbols of the zero or more second portions to symbols of said fixed length using a first symbol decoder if at least one second portion was determined; and decode the symbols of said two or more third portions to symbols of said fixed length using a third symbol decoder based on a third symbol group, wherein the third symbol group comprises only symbols that are not comprised in said second symbol group; and provide the decoded symbols of said first, second and third portions of the bitstream in a sequential order according to said control information. - View Dependent Claims (13)
-
-
16. A non-transitory computer readable medium having stored thereon an encoded bitstream representing a 3D mesh model and being encoded using at least a first and a second symbol group of binary symbols, wherein the first symbol group is a subset of the second symbol group, the encoded bitstream comprising:
-
two or more first portions, zero or more second portions and two or more third portions, wherein each first portion has at least a first pre-defined number of consecutive symbols of the first symbol group, each second portion has at least a second pre-defined number of consecutive symbols of the second symbol group, and remaining parts of the bitstream are third portions, and wherein said first portions are encoded using a first code, said second portions are encoded using a different second code and said third portions are encoded using a third code different from the first and second codes; at least one part that comprises only first and third portions; and values indicating boundary positions between the first, second and third portions in the bitstream, wherein in a part that comprises only first and third portions the encoding of a boundary position between a first portion and an adjacent third portion is skipped and implicitely encoded if the third portion has a pre-defined length.
-
Specification