WO2013010476A1 - Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data - Google Patents

Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data Download PDF

Info

Publication number
WO2013010476A1
WO2013010476A1 PCT/CN2012/078750 CN2012078750W WO2013010476A1 WO 2013010476 A1 WO2013010476 A1 WO 2013010476A1 CN 2012078750 W CN2012078750 W CN 2012078750W WO 2013010476 A1 WO2013010476 A1 WO 2013010476A1
Authority
WO
WIPO (PCT)
Prior art keywords
component
vector
quantized
absolute
components
Prior art date
Application number
PCT/CN2012/078750
Other languages
French (fr)
Inventor
Wenfei JIANG
Kangying Cai
Jiang Tian
Original Assignee
Technicolor (China) Technology Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technicolor (China) Technology Co., Ltd. filed Critical Technicolor (China) Technology Co., Ltd.
Priority to BR112014001016A priority Critical patent/BR112014001016A2/en
Priority to CN201280035527.7A priority patent/CN103748615A/en
Priority to EP12815168.5A priority patent/EP2734979A4/en
Priority to KR1020147004053A priority patent/KR20140056276A/en
Priority to US14/233,595 priority patent/US20140146043A1/en
Priority to JP2014520511A priority patent/JP2014527736A/en
Publication of WO2013010476A1 publication Critical patent/WO2013010476A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding

Definitions

  • said method further comprising encoding of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by determining a reconstructed third component using the data encoded according to claim 1, determining that the reconstructed third component is smaller than a second threshold, comparing absolutes of the de-quantized first and second components, wherein, in case absolute of the de-quantized first component is larger than absolute of the de-quantized second component, a bit signalling the sign of a first of the further components is encoded, and, in case absolute of the de-quantized first component is not larger than absolute of the de-quantized second component, a bit signalling the sign of a second of the further components is encoded, and quantizing and encoding a third further component .
  • bit_num_orient_res_cartesian ( ) compute the number of bits for each orientation residual value in cartesian coordinate system based on QP.
  • compute_zl() compute zl of the ith instance using xO , yO , zO , xl and yl .
  • the invented coding method comprises encoding a first and a second quantized float component values of one of the pair of vectors and either a first or a second quantized float component value of the other of the pair of vectors.
  • two signs bits or flag bits i.e. to single bits, are further encoded to represent an orientation of the 3D component.
  • the encoding scheme of said specific embodiment is designed based on the following points :
  • a zO Derivation module computes an approximation zOa of the third component of the one vector using the predetermined length of the one vector and reconstructions of the encoded data. That is, at least as long as absolute of de-quantization value xOr of first quantized vector component is unequal to 1, the sign bit as well as de-quantization values xOr, yOr of the first and second quantized vector component are used for determining zOa. In case absolute of de-quantization value xOr of first quantized vector
  • zOa can be determined as Zero.
  • a zl Derivation module computes an absolute of zl, in case zO is below said first threshold, using square root

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

The invention is made in the field of encoding and decoding at least one orientation vector of a connected component. When quantizing vector components for encoding, an acceptable quantization deviation of encoded vector components sometimes leads to unacceptable deviations of calculated vector components. Therefore, a method is proposed which comprises quantizing and de-quantizing a first and a second component of the vector, and encoding the quantized first and second component and a bit signalling the sign of a third component of said vector, using the pre-determined length and the de-quantized first and second component for determining whether a calculated absolute of an approximation of the third component of said vector is smaller than a first threshold, and, if the calculated absolute is smaller than the first threshold, determining, quantizing and encoding a residual between the calculated absolute of the third component and the absolute of the third component.

Description

METHOD AND DEVICE FOR ENCODING AN ORIENTATION VECTOR OF A CONNECTED COMPONENT, CORRESPONDING DECODING METHOD AND DEVICE AND STORAGE MEDIUM CARRYING SUCH ENCODED DATA
TECHNICAL FIELD
The invention is made in the field of encoding of
components of vectors. In particular, the invention is concerned with encoding of an orientation vector of a connected component, said vector having a pre-determined length and comprising three components.
BACKGROUND OF THE INVENTION
Orientation vectors of connected components serve for rotational transformation of a template of the component into an instance of the component and are used in many different ways in processing of audiovisual content. For instance, when modelling aural objects the object may represent a sound source. When modelling visual objects the object may represent a rigid body.
When modelling visual objects, in particular in three dimensions (3D) for use in e.g. CAD systems, 3D games, 3D TV or 3D cinema, to name a few, often repetitive structures are encountered. Such repetitive structures, e.g. objects or object-parts which occur several times, can be compress encoded by encoding a template of the structure once and encoding, for each instance of the structure, data allowing for transformation of the template into the instance.
Templates are also called patterns and can result from clustering .
Most generally speaking, such transformation is an affine transformation which can be decomposed into rotation, scaling, shear and/or displacement. Rotation, scaling, shear are linear transformations which are commutative, i.e. order of their application does not affect the overall transformation result, and data allowing for each of the linear transformation can be encoded independently.
Among the linear transformations, rotations in ordinary three-dimensional space can be further decomposed into rotations around three different axes, i.e. rotational data of rotations in 3D in general has three degrees of freedom.
That is, the rotational transformation part of the affine transformation can be represented by parameters specifying a pair of normalized orientation vectors orthogonal to each other. Due to the perpendicularity constraint and the normality constraints this pair of orientation vectors has three degrees of freedom, i.e. three parameters have to be determined in order to allow unequivocally determination of the two vectors since the other parameters can be
calculated using the encoded parameters and the
constraints .
In case of so-called gimbal lock where a specific one of the rotations is Zero or n (also written as Pi,
corresponding to 180°), precession rotation and intrinsic rotation occur around a same axis, i.e. in a same plane. Then precession rotation and intrinsic rotation are
commutative and can be represented by a cumulated rotation. Thus, in such case a degree of freedom is lost and the rotation is uniquely specified by two parameters.
M. Deering: "Geometry Compression", Proceedings of ACM SIGGRAPH, 1995, pp. 13-20, proposed, for encoding of orientation vectors, a normal sphere on which the end points of unit normal lie and which is divided into eight octants, each octant being further divided into six
sextants .
For the cases where orientation axes of the connected components have some dominate orientations, Deok-Soo Kim, Youngsong Cho and Hyun Kim: "Normal Compression Based on Clustering and Relative Indexing", Pacific Conference on Computer Graphics and Applications IEEE, 2002, propose an approach based on k-means clustering with a fixed number of clusters.
Another approach towards exploiting repetitive patterns for compression is described in Kangying Cai, Wencheng Wang, Zhibo Chen, Quqing Chen, Jun Teng : "Exploiting repeated patterns for efficient compression of massive models", Proceedings of the 8th International Conference on Virtual Reality Continuum and its Applications in Industry (VRCAI 2009) : 145-150, 2009.
SUMMARY OF THE INVENTION
When quantizing vector components for encoding, the
inventors observed that an acceptable deviation introduced by quantization of the components which are encoded
sometimes leads to unacceptable deviations of components which are calculated. The inventors recognized that this is due to a dividing step comprised in the calculation which in case of a divisor close to Zero leads to unacceptable propagation of an error present in the divisor.
Therefore, a method according to claim 1 is proposed for encoding an orientation vector of a connected component, said vector having a pre-determined length and comprising three components.
The methods according the present invention is
advantageously used in encoding/decoding of connected component that correspond to instances of a repetitive pattern that occurs in a 3D model . Said method comprises quantizing and de-quantizing a first and a second component of the vector, and encoding the quantized first and second component and a bit signalling the sign of a third component of said vector, using the pre-determined length and the de-quantized first and second component for determining whether a calculated absolute of an approximation of the third component of said vector is smaller than a first threshold, and if the calculated absolute is smaller than the first threshold, determining, quantizing and encoding a residual between the calculated absolute of the third component and the absolute of the third component. In an embodiment, said method further comprising encoding of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by determining a reconstructed third component using the data encoded according to claim 1, determining that the reconstructed third component is smaller than a second threshold, comparing absolutes of the de-quantized first and second components, wherein, in case absolute of the de-quantized first component is larger than absolute of the de-quantized second component, a bit signalling the sign of a first of the further components is encoded, and, in case absolute of the de-quantized first component is not larger than absolute of the de-quantized second component, a bit signalling the sign of a second of the further components is encoded, and quantizing and encoding a third further component .
In a different embodiment, said method further comprising encoding of a further vector perpendicular to the vector, said further vector having said pre-determined length and comprising three further components, by determining a reconstructed third component using the data encoded according to claim 1, determining that the reconstructed third component is not smaller than a second threshold smaller than the first threshold, using absolutes of the de-quantized first and second components for selecting, quantizing and de-quantizing one of a first and a second of the further components, using a reconstruction of said vector, the pre-determined length and the de-quantized selected further component for calculating the two possible values of the non- selected one of the first and the second further component of said further vector, setting a flag in dependency on which of the calculated two possible values approximates the non- selected further component better, and encoding the quantized selected further component and the flag.
In said different embodiment, said method can further comprise using the pre-determined length, the flag and the de-quantized selected further component for determining whether a calculated further absolute of an approximation of the third further component of said further vector is smaller than the first threshold, and if the calculated further absolute is smaller than the first pre-determined threshold determining, quantizing and encoding a further residual between the calculated absolute and the absolute of the third further component of said further vector.
Said method can but need not comprise storing all data encoded on a non- transitory storage medium.
It is further proposed a storage medium carrying data stored thereon according to the proposed method or one of the embodiments of said method.
And it is proposed a method according to claim 7 for reconstructing an orientation vector of a connected
component, said vector having a pre-determined length and comprising three components.
Said reconstructing method comprises decoding a bit
signalling the sign of the third component, a first and a second component of the vector and de-quantizing the first and second component, using the pre-determined length and the de-quantized first and second component for determining whether a calculated absolute of an approximation of the third component of said vector is smaller than a first threshold, if the calculated absolute is smaller than the first threshold, determining, decoding and de-quantizing a residual between the calculated absolute of the third component and the absolute of the third component, and using the decoded data for reconstructing the third
component of said vector.
In an embodiment, said reconstructing method further comprising decoding of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by determining that the reconstructed third component is smaller than a second threshold smaller than the first threshold, comparing absolutes of the de-quantized first and second components, wherein, in case absolute of the de-quantized first
component is larger than absolute of the de-quantized second component, a bit signalling the sign of a first of the further components is encoded, and, in case absolute of the de-quantized first component is not larger than
absolute of the de-quantized second component, a bit signalling the sign of a second of the further components is encoded, and decoding and de-quantizing a third further component of said vector.
In a different embodiment, said reconstructing method further comprising decoding of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by determining that the reconstructed third component is not smaller than a second threshold, decoding a flag and one of the further components and de-quantizing one of the further component, using absolutes of the de-quantized first and second components for determining whether the one of the further components is a first or a second further component of said further vector, using a reconstruction of said vector, the pre-determined length, the flag and the de-quantized one of the further components for calculating that further
component of said further vector which the one of the further components is determined not to be, and using the pre-determined length, the de-quantized one further
component and the calculated further components for
determining an approximation of a third further component.
In said different embodiment, said reconstructing method can further comprise determining that an absolute of the determined approximation of the third further component is smaller than the first threshold, decoding and de- quantizing a further residual and updating the determined approximation using the de-quantized further residual.
Further, a device is proposed comprising a processor for performing one of the proposed methods. Further, the invention provides for a device including an encoder or a decoder for encoding/decoding the orientation vector of a connected component, wherein the connected component corresponds to a instance of a repetitive pattern in a 3D model . The features of further advantageous embodiments are specified in the dependent claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Exemplary embodiments of the invention are illustrated in the drawings and are explained in more detail in the following description. The exemplary embodiments are explained only for elucidating the invention, but not for limiting the invention's disclosure or scope defined in the claims . In the figures:
Fig. 1 exemplarily depicts a flow chart of an embodiment of the encoding method; Fig. 2 exemplarily depicts a flow chart of an embodiment of the decoding method; and
Fig. 3 shows an exemplary encoder of 3D models according to the present principles; and Fig. 4 shows an exemplary decoder of 3D models according to the present principles.
EXEMPLARY EMBODIMENTS OF THE INVENTION The invention may be realized on any electronic device comprising a processing device correspondingly adapted. A non-exhaustive list of exemplary devices on which the invention can be realized comprises a television, a mobile phone, a personal computer, a digital still camera, a digital video camera, an mp3 -player, a navigation system or a car audio system.
The invention can be used for encoding a vector of a predetermined length independent from any purpose for which the encoded vector may be used. The exemplary embodiment described in the following relates to modelling of visual objects wherein the encoded vector is an orientation vector, but the invention is not limited thereto .
In table 1, an example of a bit stream format is presented by which a pair of perpendicular normalized vector encoded according to an embodiment of the present invention can be conveyed : compr ith insta orient cartesian class
Figure imgf000010_0001
Table 1
The orientation of ith instance in Cartesian mode is represented by 2 orthogonal axes (xO, yO , zO ) and (xl, yl , zl) . compr_ith_insta_orient_xO : contains the compressed xO of ith instance's orientation. compr_ith_insta_orient_yO : contains the compressed yO of instance's orientation. compr_ith_insta_orient_zO_sgn : a 1-bit unsigned integer indicating the sign of zO needed for calculating zO using xO and yO . 0 for and 1 for "+" . compr_ith_insta_orient_zO_res : contains the compressed residual of zO which is calculated by (zO - computer_zO ( ) ) . compr_ith_insta_orient_zl : contains the compressed zl of ith instance's orientation. ith_insta_orient_xl_sgn : a 1-bit unsigned integer
indicating the sign of xl needed for calculating xl using xO, yO. 0 for and 1 for "+" . ith_insta_orient_yl_sgn: a 1-bit unsigned integer
indicating the sign of yl needed for calculating yl using xO, yO . 0 for and 1 for "+" . compr_ith_insta_orient_xl : contains the compressed xl of ith instance's orientation. compr_ith_insta_orient_yl : contains the compressed yl of ith instance's orientation. ith_insta_orient_delta_sgn: a 1-bit unsigned integer
indicating the sign needed for calculating xl or yl using xO , yO , zO and yl or xl . 0 for and 1 for "+" . compr_ith_insta_orient_zl_res : contains the compressed residual of zl which is calculated by (zl - computer_zl ( ) ) threshold: a threshold widely accepted in compression field. compute_z0() : compute zO of the ith instance using xO , yO and zO sign. bit_num_orient_cartesian ( ) : compute the number of bits for each orientation value in cartesian coordinate system based on QP. bit_num_orient_res_cartesian ( ) : compute the number of bits for each orientation residual value in cartesian coordinate system based on QP. compute_zl() : compute zl of the ith instance using xO , yO , zO , xl and yl .
In table 2, another example of a bit stream format is presented : compr_ith_insta_orient_spherical class
Figure imgf000012_0001
Table 2
The orientation of ith instance in spherical mode is represented by 3 angles, alpha, beta & gamma. compr_ith_insta_orient_alpha : contains the compressed alpha of ith instance's orientation. compr_ith_insta_orient_beta : contains the compressed beta of ith instance's orientation. compr_ith_insta_orient_gamma : contains the compressed gamma of ith instance's orientation. compr_ith_insta_orient_res : contains the compressed residual in Cartesian coordinate system of ith instance's orientation . bit_num_orient_alpha ( ) : compute the number of bits for each alpha value based on QP bit_num_orient_beta ( ) : compute the number of bits for each beta value based on QP bit_num_orient_gamma ( ) : compute the number of bits for each gamma value based on QP need_correction ( ) : check the orientation, if it is in the edge condition which probably results in a large error, return true; otherwise, return false.
An example where the necessity for the encoding of a normalized vector occurs is representation of orientation of an 3D connected component. Ordinarily, directions are encoded of two of a connected component's orientation axes, in either Cartesian coordinates or spherical coordinates. Because the three orientation axes of a 3D connected component are orthogonal to each other, the third axis can be obtained by computing the cross product of the first two axes .
Denote the three axes by d0 (xO, yO, zO) , <¾ (xl , yl , zl) , and d2 (x2,y2, z2) , we have, d0 '' d±=0 and d2=d0xdll then an encoding method of the orientation axes may comprise: 1) Compress xO and yO .
2) Encoded sign of zO.
3 ) Compress xl .
Then yl , zO and zl can be calculated using: zl= sqrt (1-xl2 -yl2) ,
zl= sqrt (1-xl2 -yl2) , and
0= x0*xl + y0*yl + z0*zl.
The orientation axis d2 is determinable using d2=d0xd1.
But, because the float values of xO , yO and xl are
quantized before coding a deviation is introduced which due to error propagation in the calculations results in much larger errors in the calculated components.
For example, after compressing the following orientation with 12-bit quantization: do (-0.984644, -0.174418, -0.00737644) and
di (-0.121407, 0.714518, -0.689003) reconstruction will result in do (-0.984462, -0.174202, -0.0220894) and
di (-0.121595, 0.767049, -0.629961) .
The quantization errors of xO , yO and xl are acceptable: 0.000182, 0.000216 and 0.000188. However, the errors of calculated values zO, yl and zl are 0.01471296, 0.052531 and 0.059042, which is totally unacceptable.
The primary cause of the above is the calculation error of zO. If l-x02-y02 is small and thus zO is small, tiny errors on x or y grow to larger errors of zO since zO is the square root of l-x02-y02. The invention therefore proposes further encoding a correction in case zO is small, i.e. its absolute is below a first threshold.
Furthermore, reconstructing zl comprises a division by zO. This division also leads to unacceptable error propagation in case of zO being closed to Zero. Similarly, in case xl is encoded reconstructing yl comprises a division by (1- x02) . Alternatively, in case yl is encoded xl can be reconstructed using a division by (1-yO2) . The invented compression method ensures that a
reconstruction of a vector deviates from the vector by no more than a maximum deviation.
As said, some values in the orientation representation can be calculated rather than coded. Unfortunately, this may result in unacceptable errors since the encoded values used for calculation themselves are imprecise because of the quantization. The current invention addresses this problem and proposes a compression method that minimizes the calculation error in that it comprises encoding residual data for those calculated components which are considerably small .
In a specific embodiment where a pair of perpendicular vectors is encoded, the invented coding method comprises encoding a first and a second quantized float component values of one of the pair of vectors and either a first or a second quantized float component value of the other of the pair of vectors. In said specific embodiment two signs bits or flag bits, i.e. to single bits, are further encoded to represent an orientation of the 3D component. To minimize the reconstruction error, the encoding scheme of said specific embodiment is designed based on the following points :
1. Let the denominator in the calculation as large as possible .
2. Special treatment for the cases in which the
denominator is extremely small or zero.
3. Automatically identication of cases that probably lead to unacceptable error and transmit the residual data for such cases.
Fig.l exemplarily illustrates the encoding process
according to said specific embodiment.
The first component xO of the one vector is always
quantized and encoded. At least as long as de-quantization value xOr of first quantized vector component is unequal to 1, a sign bit is further encoded, the sign bit signaling the sign of the third component zO of the one vector, and the second component yO of the one vector is further quantized and encoded. A zO Derivation module computes an approximation zOa of the third component of the one vector using the predetermined length of the one vector and reconstructions of the encoded data. That is, at least as long as absolute of de- quantization value xOr of first quantized vector component is unequal to 1, the sign bit as well as de-quantization values xOr, yOr of the first and second quantized vector component are used for determining zOa. In case absolute of de-quantization value xOr of first quantized vector
component is equal to 1, zOa can be determined as Zero.
An Error Correction module is enabled in case a calculated value for zOa is very small, i.e. smaller than the first threshold, and thus probably inaccurate. In such cases, the encoder further encodes a quantized residual between the original and the approximation zOa. That is, a
reconstruction zOr of zO is either equal to zOa or differs from zOa by the de-quantized residual.
In case the first component of the other vector is encoded, yl Derivation module computes two possible solutions for the second component of the other vector using the de- quantized first and second quantized float component values xOr, yOr of the one vector as well as the de-quantized first quantized float component value xlr of the other vector : ylr= (x0r*y0r*xlr+^A) / (1-xOr2) or ylr= (x0r*y0r*xlr-^A) / (1-xOr2)
In these equations, Δ equals z0r2*(l- xOr2 - yOr2) with zOr being the possibly residual corrected reconstruction.
Similarly, in case the second component of the other vector is encoded, xl Derivation module computes two possible solutions for the first component of the other vector using the de-quantized first and second quantized float component values xOr, yOr of the one vector as well as the de- quantized second quantized float component value ylr of the other vector: xlr= (x0r*y0r*ylr+^A) / (1-yOr2) or xlr= (x0r*y0r*ylr-^A) / (1-yOr2)
In these equations, Δ equals z0r2*(l- xOr2- yOr2) with zOr being the possibly residual corrected reconstruction.
In case is absolute of zOr very small, i.e. smaller than a second threshold which is even smaller than the first threshold, neither xl Derivation module nor yl Derivation module is activated. Instead zl is quantized and encoded. In addition, a further sign bit is encoded, the further sign bit indicating the sign of that one of the
reconstructed first and second components of the other vector which has the smaller absolute value.
Whether xl Derivation module or yl Derivation module is activated in case the absolute of zOr is not smaller than the second threshold depends on the relation of the
absolutes of reconstructed first and second components xOr and yOr of the one vector. In case abs {xOr) >abs (yOr) , xl is quantized and encoded and the yl Derivation module is activated. In case abs {xOr)≤abs (yOr) , yl is quantized and encoded and the xl Derivation module is activated. Since, each of the xl Derivation module and the yl Derivation module provides to possible solutions, a flag bit is further encoded to indicate a decoder the solution to be used .
A zl Derivation module computes an absolute of zl, in case zO is below said first threshold, using square root
function sqrt('), the predetermined length of the one vector as well as the de-quantized first and second
quantized float component values of the one vector: zl=sqrt (1-xlr2 -ylr2)
In case zO is not below said first threshold, absolute of zl is calculated as follows using absolute function abs('): zl=abs ( (-x0r*xlr-y0r*ylr) /zO) The Error Correction module can also be enabled in case a calculated value for zl is small and thus probably
inaccurate. If the Error Correction module is also enabled in case the calculated value for zl is small, the encoder further encodes a further quantized residual between the original and the calculated value of zl .
Fig.2 exemplarily illustrates the decoding process
according to said specific embodiment.
The first xOr float component value of the one vector is always decoded and de-quantized. Further, a flag bit is always decoded. At least as long as de-quantization value xOr of the first quantized vector component is unequal to One, a sign bit is further decoded, the sign bit signaling the sign of the third component zOr of the one vector, and the second component yO of the one vector is further decoded and de-quantized.
A zO Derivation module computes an approximation zOa of the third component of the one vector using the predetermined length of the one vector and the decoded and de-quantized data. That is, at least as long as absolute of de- quantization value xOr of first quantized vector component is unequal to 1, the sign bit as well as de-quantization values xOr, yOr of the first and second quantized vector component are used for determining zOa. In case absolute of de-quantization value xOr of first quantized vector
component is equal to 1, yOr and zOa, both, can be
determined as Zero. An Error Correction module is enabled in case a calculated value for zOa is very small, i.e. smaller than the first threshold, and thus probably inaccurate. In such cases, the decoder further decodes and de-quantizes the quantized residual between the original and the approximation zOa. That is, a reconstruction zOr of zO is either equal to zOa or differs from zOa by the de-quantized residual.
In case zOr is not smaller than the second threshold smaller than the first threshold and absolute of xOr is smaller than absolute of yOr, the second quantized
component of the other vector is decoded and de-quantized for obtaining ylr wherein the flag bit indicates which one of two possible solutions to be used for calculating the first component of the other vector. Then, xlr and zlr are calculated.
In case zOr is not smaller than the second threshold smaller than the first threshold and absolute of xOr is smaller than absolute of yOr, yl Derivation module uses the flag bit for selecting one of the two possible solutions for computing the second component of the other vector: ylr= (x0r*y0r*xlr+^A) / (1-xOr2) or ylr= (x0r*y0r*xlr-^A) / (1-xOr2)
In these equations, Δ equals z0r2*(l- xOr2- yOr2) with zOr being the possibly residual corrected reconstruction. In case zOr is not smaller than the second threshold smaller than the first threshold and absolute of xOr is not smaller than absolute of yOr, the first quantized component of the other vector is decoded and de-quantized for
obtaining xlr wherein the flag bit indicates which one of two possible solutions to be used for calculating the second component of the other vector. Then, ylr and zlr are calculated . In case zOr is not smaller than the second threshold smaller than the first threshold and absolute of xOr is not smaller than absolute of yOr, xl Derivation module uses the flag bit for selecting one of two possible solutions for calculating the first component of the other vector: xlr= (x0r*y0r*ylr+^A) / (1-yOr2) or xlr= (x0r*y0r*ylr-^A) / (1-yOr2)
In these equations, Δ equals z0r2*(l- xOr2- yOr2) with zOr being the possibly residual corrected reconstruction. In case zOr is smaller than the second threshold smaller than the first threshold and absolute of yOr is smaller than absolute of xOr, the third quantized component of the other vector is decoded and de-quantized for obtaining zlr, the flag bit is used for determining sign (ylr) of ylr and xlr and ylr are calculated: ylr= sign (ylr) *abs (xOr)V(1-zlr2) xlr= -x0r*xlr/y0r
In case zOr is smaller than the second threshold smaller than the first threshold and absolute of yOr is not smaller than absolute of xOr, the third quantized component of the other vector is decoded and de-quantized for obtaining zlr, the flag bit is used for determining sign (xlr) of xlr and ylr are calculated: xlr= sign (xlr) *abs (xOr)V(1-zlr2) ylr= -x0r*xlr/y0r
In case zlr does not result from decoding and de-quantizing but from calculation and has an absolute value below the first threshold, the Error Correction module can be
enabled. In such cases the decoder further decodes and de- quantizes the further quantized residual between the original and zlr and corrects zlr according to the de- quantized further residual.
Though the specific embodiment describes the invention in terms of Cartesian coordinates, the invention is not limited thereto. In spherical coordinates a similar problem occurs for angles closed to n/2, also written as 90° or PI/2. That is, it is proposed to encode a residual of a calculated angle of a normalized vector in case absolute of said calculated angle does not differ from n/2 by a
threshold .
As previously discussed, the present principles may be advantageously applied in the context of encoding 3D models repetitive structures. To efficiently encode 3D models, repetitive structures may be organized into patterns and instances, wherein an instance is represented as a
transformation of a corresponding pattern, for example, using a pattern ID of the corresponding pattern and a transformation matrix which contains information on
translation, rotation, and scaling.
When an instance is represented by a pattern ID and a transformation matrix, the pattern ID and the
transformation matrix are to be compressed when compressing the instance. Consequently, an instance may be
reconstructed through the pattern ID and the decoded transformation matrix, that is, an instance may be
reconstructed as transformation (from the decoded
transformation matrix) of a decoded pattern indexed by the pattern ID.
FIG. 3 depicts a block diagram of an exemplary 3D model encoder 300. The input of apparatus 300 may include a 3D model, quality parameter for encoding the 3D model and other metadata. The 3D model first goes through the repetitive structure discovery module 310, which outputs the 3D model in terms of patterns, instances and unique components. A pattern encoder 320 is employed to compress the patterns and a unique component encoder 350 is employed to encode the unique components. For the instances, the instance component information is encoded based on a user- selected mode. If instance information group mode is selected, the instance information is encoded using grouped instance information encoder 340; otherwise, it is encoded using an elementary instance information encoder 330. The encoded components are further verified in the repetitive structure verifier 360. If an encoded component does not meet its quality requirement, it will be encoded using unique component encoder 350. Bitstreams for patterns, instances, and unique components are assembled at bitstream assembler 370.
FIG. 4 depicts a block diagram of an exemplary 3D model decoder 400. The input of apparatus 400 may include a bitstream of a 3D model, for example, a bitstream generated by encoder 300. The information related to patterns in the compressed bitstream is decoded by pattern decoder 420. Information related to unique components is decoded by unique component decoder 450. The decoding of the instance information also depends on the user- selected mode. If instance information group mode is selected, the instance information is decoded using a grouped instance information decoder 440; otherwise, it is decoded using an elementary instance information decoder 430. The decoded patterns, instance information and unique components are
reconstructed to generate an output 3D model at model reconstruction module 460.
The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a
software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method) , the
implementation of features discussed may also be
implemented in other forms (for example, an apparatus or program) . An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs") , and other devices that facilitate communication of information between end-users.
Reference to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present
principles. Thus, the appearances of the phrase "in one embodiment" or "in an embodiment" or "in one
implementation" or "in an implementation", as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment . As will be evident to one of skill in the art,
implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry the bitstream of a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
In principle, the disclosed invention can also be applied to other data compression areas. The invention results in a unique bitstream format.
While the bitstream embeds all the transformation data, it is efficient and may address several applications, where sometimes either bitstream size or decoding efficiency or error resilience matters the most. Therefore, two mode options are disclosed for how to put the transformation data of one instance, i.e. its position, orientation and scaling factor, in the bitstream. In the first mode (Option A) , the position, orientation and possible scaling factor of one instance are packed together in the bitstream. In the second mode (Option B) , the positions, orientations or possible scaling factors of all instances are packed together in the bitstream.
It will be understood that the present invention has been described purely by way of example, and modifications of detail can be made without departing from the scope of the invention .
Each feature disclosed in the description and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination. Features may, where appropriate be implemented in hardware, software, or a combination of the two. Connections may, where
applicable, be implemented as wireless connections or wired, not necessarily direct or dedicated, connections.
Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.

Claims

Method for encoding an orientation vector of a connected component, said vector having a pre-determined length and comprising three components, said method comprising
- Quantizing and de-quantizing a first and a second
component of the vector, and encoding the quantized first and second component and a bit signalling the sign of a third component of said vector,
- using the pre-determined length and the de-quantized first and second component for determining whether a calculated absolute of an approximation of the third component of said vector is smaller than a first threshold,
- and if the calculated absolute is smaller than the
first threshold, determining, quantizing and encoding a residual between the calculated absolute of the third component and the absolute of the third
component .
2. Method according to claim 1, said method further comprising encoding of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by - determining a reconstructed third component using the data encoded according to claim 1,
- determining that the reconstructed third component is smaller than a second threshold,
- comparing absolutes of the de-quantized first and
second components, wherein, - in case absolute of the de-quantized first component is larger than absolute of the de-quantized second component, a bit signalling the sign of a first of the further components is encoded, and,
- in case absolute of the de-quantized first component is not larger than absolute of the de-quantized second component, a bit signalling the sign of a second of the further components is encoded, and
- quantizing and encoding a third further component.
3. Method according to claim 1, said method further
comprising encoding of a further vector perpendicular to the vector, said further vector having said pre-determined length and comprising three further components, by
- determining a reconstructed third component using the data encoded according to claim 1,
- determining that the reconstructed third component is not smaller than a second threshold smaller than the first threshold,
- using absolutes of the de-quantized first and second components for selecting, quantizing and de-quantizing one of a first and a second of the further components,
- using a reconstruction of said vector, the predetermined length and the de-quantized selected further component for calculating the two possible values of the non- selected one of the first and the second further component of said further vector,
- setting a flag in dependency on which of the
calculated two possible values approximates the non- selected further component better, and - encoding the quantized selected further component and the flag.
4. Method according to claim 3, said method further comprising
- using the pre-determined length, the flag and the de- quantized selected further component for determining whether a calculated further absolute of an
approximation of the third further component of said further vector is smaller than the first threshold,
- and if the calculated further absolute is smaller than the first pre-determined threshold determining, quantizing and encoding a further residual between the calculated absolute and the absolute of the third further component of said further vector.
5. Method of one of the claims 1-4, further comprising storing all data encoded on a non-transitory storage medium .
6. Storage medium wherein the storage medium carries data stored thereon according to the method of claim 5.
7. Method for reconstructing an orientation vector of a connected component, said vector having a pre-determined length and comprising three components, said method
comprising
- decoding a bit signalling the sign of the third
component, a first and a second component of the vector and de-quantizing the first and second
component ,
- using the pre-determined length and the de-quantized first and second component for determining whether a calculated absolute of an approximation of the third component of said vector is smaller than a first threshold,
- if the calculated absolute is smaller than the first threshold, determining, decoding and de-quantizing a residual between the calculated absolute of the third component and the absolute of the third component, and
- using the decoded data for reconstructing the third component of said vector.
8. Method according to claim 7, said method further
comprising reconstructing of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by
- determining that the reconstructed third component is smaller than a second threshold smaller than the first threshold,
- comparing absolutes of the de-quantized first and
second components, wherein,
- in case absolute of the de-quantized first component is larger than absolute of the de-quantized second component, a bit signalling the sign of a first of the further components is encoded, and,
- in case absolute of the de-quantized first component is not larger than absolute of the de-quantized second component, a bit signalling the sign of a second of the further components is encoded,
- and decoding and de-quantizing a third further
component of said vector.
9. Method according to claim 7, said method further
comprising reconstructing of a further orientation vector of said connected component perpendicular to said vector, said further vector having said pre-determined length and comprising three further components, by
- determining that the reconstructed third component is not smaller than a second threshold,
- decoding a flag and one of the further components and de-quantizing one of the further component,
- using absolutes of the de-quantized first and second components for determining whether the one of the further components is a first or a second further component of said further vector,
- using a reconstruction of said vector, the predetermined length, the flag and the de-quantized one of the further components for calculating that further component of said further vector which the one of the further components is determined not to be, and
- using the pre-determined length, the de-quantized one further component and the calculated further
components for determining an approximation of a third further component .
10. Method according to claim 9, said method further comprising
- determining that an absolute of the determined
approximation of the third further component is smaller than the first threshold,
- decoding and de-quantizing a further residual and
- updating the determined approximation using the de- quantized further residual.
. Device comprising a processor for performing the method one of the claims 1-5 or one of the claims 7-10.
12. Device comprising: a repetitive structure discovery module that determines a orientation vector associated with a connected component, wherein said connected component corresponds to an instance of a pattern, the pattern corresponding to a repetitive structure that occurs in a 3D model; and an encoder that performs the method of one of the claims 1-5 to encode said orientation vector.
13. Device comprising: a decoder that decodes a
orientation vector encoded according to the method of one of the claims 7-10, wherein said connected component corresponds to an instance of a pattern, the pattern corresponding to a repetitive structure that occurs in a 3D model; and a model reconstruction module that generates the 3D model including the connected component.
14. Method according to claims 1-5, wherein said connected component corresponds to an instance of a pattern, the pattern corresponding to a repetitive structure that occurs in a 3D model, and further comprising the step of
determining said orientation vector associated with said connected component .
15. Method according to claims 7-10, wherein said
connected component corresponds to an instance of a
pattern, the pattern corresponding to a repetitive
structure that occurs in a 3D model, and further comprising the step of generating said 3D model including said
connected component .
PCT/CN2012/078750 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data WO2013010476A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
BR112014001016A BR112014001016A2 (en) 2011-07-18 2012-07-17 method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
CN201280035527.7A CN103748615A (en) 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
EP12815168.5A EP2734979A4 (en) 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
KR1020147004053A KR20140056276A (en) 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
US14/233,595 US20140146043A1 (en) 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
JP2014520511A JP2014527736A (en) 2011-07-18 2012-07-17 Method and apparatus for encoding orientation vectors of connected components, corresponding decoding method and apparatus, and storage medium carrying such encoded data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNPCT/CN2011/077277 2011-07-18
CN2011077277 2011-07-18

Publications (1)

Publication Number Publication Date
WO2013010476A1 true WO2013010476A1 (en) 2013-01-24

Family

ID=47557669

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/078750 WO2013010476A1 (en) 2011-07-18 2012-07-17 Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data

Country Status (6)

Country Link
US (1) US20140146043A1 (en)
EP (1) EP2734979A4 (en)
JP (1) JP2014527736A (en)
KR (1) KR20140056276A (en)
BR (1) BR112014001016A2 (en)
WO (1) WO2013010476A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7397360B2 (en) 2019-11-15 2023-12-13 日本電信電話株式会社 Video encoding method, video encoding device and computer program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5010574A (en) * 1989-06-13 1991-04-23 At&T Bell Laboratories Vector quantizer search arrangement
KR19990062397A (en) * 1997-12-11 1999-07-26 아끼구사 나오유끼 Paper discriminator
US20080219351A1 (en) * 2005-07-18 2008-09-11 Dae-Hee Kim Apparatus of Predictive Coding/Decoding Using View-Temporal Reference Picture Buffers and Method Using the Same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304275B1 (en) * 1998-10-31 2001-10-16 Hewlett-Packard Company Memory efficient surface normal decompression
JP4506039B2 (en) * 2001-06-15 2010-07-21 ソニー株式会社 Encoding apparatus and method, decoding apparatus and method, and encoding program and decoding program
GB0216668D0 (en) * 2002-07-17 2002-08-28 Imagination Tech Ltd Method and apparatus for compressed data storage and retrieval
JP4787100B2 (en) * 2006-07-27 2011-10-05 パナソニック株式会社 Image encoding device
WO2010149492A1 (en) * 2009-06-23 2010-12-29 Thomson Licensing Compression of 3d meshes with repeated patterns

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5010574A (en) * 1989-06-13 1991-04-23 At&T Bell Laboratories Vector quantizer search arrangement
KR19990062397A (en) * 1997-12-11 1999-07-26 아끼구사 나오유끼 Paper discriminator
US20080219351A1 (en) * 2005-07-18 2008-09-11 Dae-Hee Kim Apparatus of Predictive Coding/Decoding Using View-Temporal Reference Picture Buffers and Method Using the Same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2734979A4 *

Also Published As

Publication number Publication date
EP2734979A1 (en) 2014-05-28
KR20140056276A (en) 2014-05-09
EP2734979A4 (en) 2015-09-09
BR112014001016A2 (en) 2017-02-21
JP2014527736A (en) 2014-10-16
US20140146043A1 (en) 2014-05-29

Similar Documents

Publication Publication Date Title
US10853447B2 (en) Bezier volume representation of point cloud attributes
KR20140116114A (en) Method and apparatus for compressing texture information of three-dimensional (3d) models
AU2012283580B2 (en) System and method for encoding and decoding a bitstream for a 3D model having repetitive structure
US20140320492A1 (en) Methods and apparatus for reflective symmetry based 3d model compression
JP6246233B2 (en) Method and apparatus for vertex error correction
AU2012283580A1 (en) System and method for encoding and decoding a bitstream for a 3D model having repetitive structure
JP6093847B2 (en) Method and apparatus for 3D model compression based on iterative structure discovery
US20140146043A1 (en) Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
KR20230006016A (en) Decoded tile hash SEI message for V3C/V-PCC
KR101883532B1 (en) Method and apparatus for generating a bitstream of repetitive structure discovery based 3d model compression
EP2839439B1 (en) Vertex correction method and apparatus for rotated three-dimensional (3d) components
WO2014005415A1 (en) System and method for multi-level repetitive structure based 3d model compression
US20020122035A1 (en) Method and system for parameterized normal predictive encoding
CN103748615A (en) Method and device for encoding an orientation vector of a connected component, corresponding decoding method and device and storage medium carrying such encoded data
WO2013010315A1 (en) Method and device for encoding rotational data, corresponding decoding method and device and storage medium carrying encoded rotational data
EP2860728A1 (en) Method and apparatus for encoding and for decoding directional side information
TW201937944A (en) Apparatuses for converting an object position of an audio object, audio stream provider, audio content production system, audio playback apparatus, methods and computer programs
US11822516B2 (en) Compression techniques for vertices of graphic models
EP4336835A1 (en) Encoding method and apparatus, decoding method and apparatus, device, storage medium, and computer program and product
CN108230410B (en) Method and device for compressing polygon data
CN104303210B (en) Method and device for the threedimensional model compression explored based on repetitive structure

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12815168

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014520511

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14233595

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2012815168

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012815168

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20147004053

Country of ref document: KR

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112014001016

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112014001016

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20140115