Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ENCODING AND DECODING OF ACOUSTIC ENVIRONMENT
Document Type and Number:
WIPO Patent Application WO/2022/248620
Kind Code:
A1
Abstract:
There are disclosed apparatus and methods for encoding and decoding of acoustic environment. In accordance to an example, there is provided an apparatus for decoding an acoustic environment, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data which links positional data of polygons with acoustic properties of acoustic materials, wherein the positional data includes, for each polygon, the position of the vertexes, the apparatus comprising: a bitstream reader for reading, from the bitstream, an encoded version of structural-acoustic data and at least one audio stream to be rendered as generated by the at least one audio source in the acoustic environment; an audio source decoding block to decode the at least one an audio stream representing the at least one audio source; a structural-acoustic data decoding block to decode the structural-acoustic data.

Inventors:
HERRE JÜRGEN (DE)
GHIDO FLORIN (DE)
Application Number:
PCT/EP2022/064327
Publication Date:
December 01, 2022
Filing Date:
May 25, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRAUNHOFER GES FORSCHUNG (DE)
International Classes:
G10L19/008
Other References:
"MPEG-I 6DoF Audio Encoder Input Format", no. n19211, 25 April 2020 (2020-04-25), XP030285463, Retrieved from the Internet [retrieved on 20200425]
Attorney, Agent or Firm:
ZINKLER, Franz et al. (DE)
Download PDF:
Claims:
Claims

1. An apparatus (300) for decoding an acoustic environment (302), the acoustic environ ment (302) including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data which links positional data (110ax, 120bx) of polygons (110, 120) with acoustic properties of acoustic materials (150), wherein the positional data includes, for each polygon, the position of the vertexes, the appa ratus comprising: a bitstream reader (330) for reading, from the bitstream (204), an encoded version (322) of structural-acoustic data and at least one audio stream (312) to be rendered as gen erated by the at least one audio source in the acoustic environment (302); an audio source decoding block (310) to decode the at least one an audio stream (312) representing the at least one audio source; a structural-acoustic data decoding block (320) to decode the structural-acoustic data

(211).

2. The apparatus claim 1, further comprising a Tenderer (350) to render the audio signal (301) obtained from the at least one an audio stream (312, 212) according to structural and positional relationships between the at least one source and the decoded structural-acoustic data (211).

3. The apparatus of any of the preceding claims, wherein the structural-acoustic data decoding block (320) includes a vertex list decoder (3800) to decode a vertex list (3802) indi cating the positions of vertexes, each vertex having a vertex index.

4. The apparatus of claim 3, wherein the vertex list decoder (3800) is configured, for each coordinate of each vertex, to retrieve the coordinate value or a vertex index of an ordi nal value, associated in a shortlist, of a previously encoded vertex.

5. The apparatus of claim 4, configured to read signaling in the bitstream (204), the sig nalling indicating whether there is encoded in the bitstream the coordinate value or the vertex index.

6. The apparatus of any of the preceding claims, wherein the structural-acoustic data decoding block (320) uses, for at least one dimension (x, y, z), an ordered shortlist, in which coordinate values of previously decoded vertexes are stored according to an order, wherein the structural-acoustic data decoding block (220) is configured, in case the bitstream (204) has encoded therein an ordinal value of the shortlist, to reconstruct the coor dinate value as the value stored in the shortlist (450) associated with the ordinal value.

7. The apparatus of claim 6, wherein the structural-acoustic data decoding block is con figured to evaluate, for each vertex, a binary mask value (160x, 160y, 160z) indicating whether the coordinate value or the ordinal value in the shortlist is encoded in the bitstream (204).

8. The apparatus of claim 6 or 7, configured, based on signalling form the bitstream, to select between activating and deactivating the ordered shortlist for at least one dimension, to thereby deactivate the ordered shortlist.

9. The apparatus of any of claims 6-8, configured to determine the multiplicity of coordi nates of vertexes, so as to assign higher ranking ordered values and/or a lower-bit ordered values for coordinates with higher multiplicity.

10. The apparatus of any of claims 6-9, configured to update the shortlist on the fly, based on the coordinate values and/or the ordinal values decoded from the bitstream.

11. The apparatus of any of claims 6-10, wherein the shortlist (450) includes one shortlist instantiation (450x, 450y, 450z) for each dimension.

12. The apparatus of claim 11 , wherein the structural-acoustic data decoding block is configured: in case, for a first dimension, a coordinate value of one current vertex is the same of one coordinate value of one previously decoded vertex stored in the shortlist instantiation re lated to the first dimension in a determined ordinal value, to decode the ordinal value of the shortlist instantiation, and in case, for a second dimension, the coordinate value of the current vertex is different of any coordinate value of one previously decoded vertex stored in the shortlist instantiation related to the second dimension, to decode the coordinate value.

13. The apparatus of any of the preceding claims, configured to decode structural-acous tic data using an arithmetic coding.

14. The apparatus of any of the preceding claims, using, to decode at least one struc tural-acoustic data, a second shortlist, according to which the at least one structural-acoustic data is decoded from the position in the second shortlist.

15. The apparatus of claim 14, configured so that, if the at least one structural-acoustic data is not in the second shortlist, the at least one structural-acoustic data is read in its en tirety from the bitstream.

16. The apparatus of claim 14 or 15, wherein the particular code has higher bitlength than the codes used for indicating the position in the second shortlist.

17. The apparatus of any of claims 14-16, wherein the last decoded structural-acoustic data is positioned in the first position in the second shortlist, and the other decoded struc tural-acoustic in the second shortlist are shifted.

18. The apparatus of any of claims 14-17, wherein the codes indicating first positions in the second shortlist have lower bitlength than the codes indicating last positions in the sec ond shortlist.

19. The apparatus of any of claims 14-18, using the second shortlist for decoding a polyg onal data list.

20. The apparatus of claim 19, using the second shortlist for decoding a polygonal data list in which there is indicated the vertex indexes of the vertexes in a vertex list.

21. The apparatus of any of the preceding claims, configured to read, signalled in the bit- stream (204), information on a bounding box (500) contained in the acoustic environment, the information on the bounding box including positional data, to localize the bounding box (500) within the environment, the apparatus being further configured to decode the structural- acoustic data within the bounding box.

22. The apparatus of claim 21 , wherein the decoder is configured to reconstruct the posi tion of each vertex based on the information on the bounding box including positional data.

23. The apparatus of claim 21 or 22, configured so that, in case the bitstream (204) sig nals that the acoustic environment presents at least one recurring pattern, to reconstruct the at least one acoustic object by applying a recurrence to a recurring pattern within the bound ing box.

24. The apparatus of claim 23, configured so that, in case the bitstream (204) signals that the at least one recurring pattern is a symmetric pattern enclosed in the bounding box, to re construct the at least one object by symmetrically generating structural-acoustic data in posi tions symmetrical to the positions of the vertexes in the bounding box.

25. The apparatus of claim 24, wherein the symmetry is a planar symmetry, and the sym metry data signalled in the bitstream include information associated with the symmetry plan, wherein the apparatus is configured to reconstruct the at least one object by symmetrically generating structural-acoustic data in positions symmetrical to the positions of the vertexes in the bounding box with respect to the symmetry plan.

26. The apparatus of any of claims 21-25, configured to perform a change of coordinates of the vertexes from a bounding box spatial coordinate system defined at least by one deter mined vertex of the bounding box onto an original coordinate system.

27. The apparatus of any of the preceding claims, further configured, in case the bit- stream (104) signals that at least two coordinate values of at least two vertexes are encoded in a factorized form according to a common divisor, to multiply each of the at least two coor dinate values encoded in the factorized form and the common divisor, so as to reconstruct the at least two coordinate values.

28. The apparatus of claim 27, wherein the common divisor is the greatest common divi sor.

29. The apparatus of any of the preceding claims, wherein the polygons are triangles.

30. A method for decoding an acoustic environment (302), the acoustic environment (302) including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data list (400) which links positional data (110ax, 120bx) of polygons (110, 120) onto structural-acoustic properties of materials (150), wherein the positional data includes, for each polygon, the position of one primary structural- acoustic vertex (110ax) and the position of the remaining structural-acoustic vertexes (110b), the method comprising: reading, from the bitstream (204), an encoded version (322) of structural-acoustic data (211) and at least one audio stream (212) to be rendered as generated by the at least one audio source in the acoustic environment (302); decoding the at least one an audio stream (312, 212); and decoding the structural-acoustic data (211).

31. An apparatus for encoding an acoustic environment, the acoustic environment includ ing at least one audio source and at least one audio object, the at least one audio object be ing represented by at least one structural-acoustic data which links positional data (110ax, 120bx) of polygons (110, 120) with acoustic properties of acoustic materials (150), wherein the structural-acoustic data include, for each polygon, the position the vertexes (110ax,

110ay, 110az), the apparatus comprising: an audio source encoding block (210) configured to encode at least one audio stream to be rendered, the at least one audio stream being associated with the at least one audio source; a structural-acoustic data encoding block (220) configured to encode at least one structural-acoustic data (221) to obtain an encoded version (222) of the at least one struc tural-acoustic data (221), a bitstream writer (230) configured for writing, in a bitstream (204), the at least one audio stream (212) and the encoded version (222) of the at least one structural-acoustic data (221).

32. The apparatus of claim 31 , further configured to search, for at least one dimension, a common divisor, different from 1 , among the coordinates of a plurality of vertexes, to thereby encode in the bitstream (204) the common divisor and the results of the divisions of the coor dinates by the common divisor.

33. The apparatus of claim 32, wherein the common divisor is the greatest common divi sor.

34. The apparatus of any of claims 32-33 when depending on claim 31 , configured to de fine the bounding block which maximizes the number of coordinates, with respect to a spatial coordinate system defined by the bounding box (500), which have a greatest common divisor greater than 1.

35. The apparatus of any of claims 31-34, wherein the structural-acoustic data encoding block (220) includes a vertex list encoder (800) to encode a vertex list (802) indicating the positions of vertexes, each vertex having a vertex index.

36. The apparatus of claim 35, wherein the vertex list encoder (800) is configured, for each coordinate of each vertex, to select between writing, in the encoded version (222) of the structural-acoustic data (202) the coordinate value and writing a vertex index of an ordinal value, associated in a shortlist, of a previously encoded vertex.

37. The apparatus of any of claims 35-36, wherein the vertex list encoder (800) uses, for at least one dimension (x, y, z), an ordered shortlist, in which coordinate values of previously encoded vertexes are stored according to an order, wherein the vertex list encoder (800) is configured, in case a coordinate value of one current vertex is the same of one coordinate value of one previously encoded vertex stored in the shortlist in a determined ordinal value, to encode the ordinal value of the shortlist, and in case the coordinate value of one current vertex is different of any coordinate value of one previously encoded vertex stored in the shortlist, to encode the coordinate value.

38. The apparatus of claim 37, wherein the vertex list encoder (800) is configured to en code, for at least one dimension, a binary mask value (160x, 160y, 160z) indicating whether the coordinate value or the ordinal value in the shortlist is encoded.

39. The apparatus of claim 37 or 38, wherein the vertex list encoder (800) is configured to determine the multiplicity of coordinates of vertexes, so as, in case the sum of the multiplici ties is less than a predetermined threshold, to deactivate the ordered shortlist for at least one dimension, so that each, at least for the dimension for which the ordered shortlist is deac tivated, all the coordinates are encoded only by encoding the coordinate values.

40. The apparatus of any of claims 37-39, wherein the vertex list encoder (800) is config ured to determine the multiplicity of coordinates of vertexes, so as to assign higher ranking ordered values and/or a lower-bit ordered values for coordinates with higher multiplicity.

41. The apparatus of any of claims 37-40, wherein the shortlist is updated on the fly, based on the coordinate values and/or the ordinal values encoded in the bitstream.

42. The apparatus of any of claims 37-41 , wherein the ordinal values have different bitlengths, so that more frequent coordinate values are assigned with ordinal values with lower bitlengths.

43. The apparatus of any of claims 37-42, wherein the shortlist (450) includes one shortlist instantiation (450x, 450y, 450z) for each dimension.

44. The apparatus of claim 43, wherein the structural-acoustic data encoding block is configured: in case, for a first dimension, a coordinate value of one current vertex is the same of one coordinate value of one previously encoded vertex stored in the shortlist instantiation re lated to the first dimension in a determined ordinal value, to encode the ordinal value of the shortlist instantiation, and in case, for a second dimension, the coordinate value of the current vertex is different of any coordinate value of one previously encoded vertex stored in the shortlist instantiation related to the second dimension, to encode the coordinate value.

45. The apparatus of any of claims 31-44, configured to encode structural-acoustic data using an arithmetic coding.

46. The apparatus of any of the preceding claims, using, to encode at least one struc tural-acoustic data, a second shortlist, according to which the at least one structural-acoustic data is encoded as the position in the second shortlist.

47. The apparatus of claim 46, configured so that, if the at least one structural-acoustic data is not in the second shortlist, the at least one structural-acoustic data is encoded in its entirety, signalling with a particular code.

48. The apparatus of claim 46 or 47, wherein the particular code has higher bitlength than the codes used for indicating the position in the second shortlist.

49. The apparatus of any of claims 46-48, wherein the last encoded structural-acoustic data is positioned in the first position in the second shortlist, and the other encoded struc tural-acoustic in the second shortlist are shifted.

50. The apparatus of any of claims 46-49, wherein the codes indicating first positions in the second shortlist have lower bitlength than the codes indicating last positions in the sec ond shortlist.

51. The apparatus of any of claims 46-50, using the second shortlist for encoding a polyg onal data list.

52. The apparatus of claim 51, using the second shortlist for encoding a polygonal data list by indicating the vertex indexes of the vertexes in a vertex list.

53. The apparatus of any of claims 31-51 , configured to define a bounding box (500) con tained in the acoustic environment and to encode the structural-acoustic data within the bounding box (500), positional data of the bounding box (500) being signalled in the bit- stream.

54. The apparatus of claim 53, configured to define the bounding box (500) by at least ex cluding portions of the acoustic environment which do not contain any vertex.

55. The apparatus of claim 53 or 54, configured to evaluate whether the acoustic environ ment presents at least one recurring pattern, so as to limit the bounding box (500) to the at least one recurring pattern, further configured to signal in the bitstream recurring pattern data.

56. The apparatus of claim 55, wherein the at least one recurring pattern is a symmetric pattern, further configured to signal in the bitstream (204) symmetry data.

57. The apparatus of claim 56, wherein the symmetry is a planar symmetry, and the sym metry data to be signalled in the bitstream include information associated with the symmetry plan.

58. The apparatus of any of claims 53-57, configured to perform a change of coordinates of the vertexes from an original spatial coordinate system onto a bounding box (500) coordi nate system defined at least by one determined vertex of the bounding box (500).

59. The apparatus of any of claims 31-58, wherein the polygons are triangles.

60. A method for encoding an acoustic environment, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data which links positional data (110ax,

120bx) of polygons (110, 120) onto structural-acoustic properties of materials (150), wherein the positional data include, for each polygon, the position of one primary polygonal vertex (110ax, 110ay, 110az) and the position of the remaining polygonal vertexes (110b, 110c, 120b), the method comprising: encoding at least one audio stream to be rendered in association with the at least one audio source; encoding at least one structural-acoustic data (221) to obtain an encoded version (222) of the at least one structural-acoustic data (221), and writing, in a bitstream (204), the at least one audio stream (212) and the encoded ver sion (222) of the at least one structural-acoustic data (221).

61. A bitstream encoding audio information in which an acoustic environment is encoded, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data list which maps positional data (110ax, 120bx) of polygons (110, 120) onto acoustic materials (150), wherein the positional data include, for each polygon, the position of one vertex, the bitstream comprising: at least one audio stream to be rendered; an encoded version (222) of the at least one structural-acoustic data (221).

62. The bitstream of claim 61 , wherein the encoded version (222) of the at least one structural-acoustic data (221) includes at least one data field in which there is encoded at least one coordinate value of at least one polygonal vertex and at least one data field in which there is encoded at least one ordinal value associated to a shortlist (450) updated on the fly based on previously encoded coordinate values and ordinal values.

63. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to control a decoding operation of an acoustic environment (302), the acoustic environ ment (302) including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data list (400) which links positional data (110ax, 120bx) of polygons (110, 120) onto structural-acoustic properties of materials (150), wherein the positional data includes, for each polygon, the position of one primary structural-acoustic vertex (110ax) and the position of the remaining structural-acoustic ver texes (110b), control a reading, from the bitstream (204), of an encoded version (322) of structural- acoustic data (211) and at least one audio stream (212) to be rendered as generated by the at least one audio source in the acoustic environment (302); control a decoding of the at least one an audio stream (312, 212); and decoding the structural-acoustic data (211).

64. A non-transitory storage unit storing instructions which, when executed by a proces sor, cause the processor to control a method encoding operation of an acoustic environment, the acoustic envi ronment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data which links positional data (110ax, 120bx) of polygons (110, 120) onto structural-acoustic properties of materials (150), wherein the positional data include, for each polygon, the position of one primary po lygonal vertex (110ax, 110ay, 110az) and the position of the remaining polygonal vertexes (110b, 110c, 120b), control an encoding of at least one audio stream to be rendered in association with the at least one audio source; control an encoding of at least one structural-acoustic data (221) to obtain an en coded version (222) of the at least one structural-acoustic data (221), and control a writing, in a bitstream (204), of the at least one audio stream (212) and the encoded version (222) of the at least one structural-acoustic data (221).

Description:
Encodinq and decodinq of acoustic environment

There are disclosed apparatus and methods for encoding and decoding of acoustic environ ment.

Background

Triangle mesh data is an important component of a virtual acoustic environment. The mesh is composed of a list of vertexes and a list of triangle faces. Each vertex is a point in 3D space, localized by its X, Y, and Z coordinates, and has an associated index in the vertex list. Each triangle identifies a simple surface, and contains three vertex indexes, and an associated acoustic material. The vertex indexes for a triangle are listed in a particular order, which defines the outside pointing normal of the simple surface.

There are many interchange and compression formats for generic triangle mesh data. How ever, they are usually intended for coding visual triangle mesh data, typically of objects and environments. In contrast, mesh triangle data for virtual acoustic environments and objects have several particular properties. For example, the mesh data usually contains only the acoustically relevant surfaces of enough size. A significant number of object surfaces are lo cated on a small number of planes, or have a layered structure. Surfaces that do not contain an acoustic material are invisible for acoustic purposes and can be discarded. There may also be coordinate symmetries generated by the fact that objects with regular shapes are using a relative coordinate system centered in their apparent center of gravity. All these additional properties may be used for a more efficient and at the same time low complexity custom coding scheme.

Summary

In accordance to an example, there is provided an apparatus for decoding an acoustic envi ronment, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data which links positional data of polygons with acoustic properties of acoustic materials, wherein the positional data includes, for each polygon, the position of the vertexes, the apparatus com prising: a bitstream reader for reading, from the bitstream, an encoded version of structural- acoustic data and at least one audio stream to be rendered as generated by the at least one audio source in the acoustic environment; an audio source decoding block to decode the at least one an audio stream repre senting the at least one audio source; a structural-acoustic data decoding block to decode the structural-acoustic data. There is also provided an apparatus for encoding an acoustic environment, the acoustic envi ronment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data which links positional data of polygons with acoustic properties of acoustic materials, wherein the structural-acous tic data include, for each polygon, the position the vertexes, the apparatus comprising: an audio source encoding block configured to encode at least one audio stream to be rendered, the at least one audio stream being associated with the at least one audio source; a structural-acoustic data encoding block configured to encode at least one structural- acoustic data to obtain an encoded version of the at least one structural-acoustic data, a bitstream writer configured for writing, in a bitstream, the at least one audio stream and the encoded version) of the at least one structural-acoustic data.

There is also provided a method for encoding an acoustic environment, the acoustic environ ment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data which links positional data of polygons onto structural-acoustic properties of materials, wherein the positional data in clude, for each polygon, the position of one primary polygonal vertex and the position of the remaining polygonal vertexes, the method comprising: encoding at least one audio stream to be rendered in association with the at least one audio source; encoding at least one structural-acoustic data to obtain an encoded version of the at least one structural-acoustic data, and writing, in a bitstream, the at least one audio stream and the encoded version of the at least one structural-acoustic data.

There is also provided a bitstream encoding audio information in which an acoustic environ ment is encoded, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural- acoustic data list which maps positional data of polygons onto acoustic materials, wherein the positional data include, for each polygon, the position of one vertex, the bitstream com prising: at least one audio stream to be rendered; an encoded version of the at least one structural-acoustic data.

There is also provided a non-transitory storage unit storing instructions which, when exe cuted by a processor, cause the processor to control a decoding operation of an acoustic environment, the acoustic environment including at least one audio source and at least one audio object, the at least one audio ob ject being represented by a structural-acoustic data list which links positional data of poly gons onto structural-acoustic properties of materials, wherein the positional data includes, for each polygon, the position of one primary structural-acoustic vertex and the position of the remaining structural-acoustic vertexes, control a reading, from the bitstream, of an encoded version of structural-acoustic data and at least one audio stream to be rendered as generated by the at least one audio source in the acoustic environment; control a decoding of the at least one an audio stream; and decoding the structural-acoustic data.

There is also provided a non-transitory storage unit storing instructions which, when exe cuted by a processor, cause the processor to control a method encoding operation of an acoustic environment, the acoustic envi ronment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data which links positional data of polygons onto structural-acoustic properties of materials, wherein the positional data include, for each polygon, the position of one primary polygonal vertex and the position of the remaining polygonal vertexes, control an encoding of at least one audio stream to be rendered in association with the at least one audio source; control an encoding of at least one structural-acoustic data to obtain an encoded ver sion of the at least one structural-acoustic data, and control a writing, in a bitstream, of the at least one audio stream and the encoded ver sion of the at least one structural-acoustic data.

Figures

Fig. 1 shows an example of polygons (triangles) to be encoded/decoded.

Fig. 2 shows an example of an apparatus for encoding an acoustic environment.

Fig. 3 shows an example of an apparatus for decoding an acoustic environment.

Fig. 4 shows an example of operation of encoding or decoding a vertex list.

Fig. 5 shows an example of a bounding box.

Figs. 6a and 6b show examples of operations at the encoder and decoder, respectively, for encoding a triangle list.

Fig. 7 shows an example of the data structures that can be used in the present examples. Fig. 8 shows an example of structural-acoustic data encoding block which may be a part of the encoder of Fig. 2.

Fig. 9 shows an example of structural-acoustic data encoding block which may be a part of the decoder of Fig. 3.

Figs. 10a-10h show a sequence of operation at the encoder.

Encoder

Fig. 2 shows an encoder 200 which may be understood as an apparatus for encoding an acoustic environment 202. The acoustic environment may be understood as a way of repre senting an audio signal 211 in a particular acoustic environment, to be encoded in a bitstream 204. The acoustic environment may be represented according to spatial coordinates. The acoustic environment may be represented according to a spatial coordinate system (e.g., x, y, z, such as in Fig. 1). The acoustic environment may include at least one audio source which is virtually located in some portions of the environment. The environment may be understood as a virtual environment, which is to be rendered at the highest fidelity possible. The encoder 200 may include an structural-acoustic data encoding block 220, which may link positional data of polygons with properties associated with acoustic materials. The polygons may be triangles. Each polygon (or more in particular triangle) may be represented as a tern (triplet) of the ver texes. The output of the polygon data encoding block 222 may therefore be in principle repre sented by the triplet of structural-acoustic data and a value encoding the material. The poly gons may therefore be surfaces of a voluminous material element, which have an influence on the behavior of the audio signal virtually generated by the audio source at the position indicated by the audio source. The encoder 200 may include a bitstream writer 230 to write the bitstream 204. Therefore, the audio sources which represents the audio signal virtually generated by them and their position in the environment 212 and the structural-acoustic data 222 represent ing the various materials in the environment can be encoded in the bitstream 204.

In general terms, the encoder 200 may be seen as an apparatus for encoding an acoustic environment, the acoustic environment including at least one audio source and at least one audio object, the at least one audio object being represented by at least one structural-acoustic data list which links positional data of polygons with acoustic properties of acoustic materials. The positional data may include, for each polygon, the position of one primary polygonal vertex (110ax, 110ay, 110az) and the position of the remaining polygonal vertexes (110b, 110c, 120b). The apparatus may comprise: the audio source encoding block 210 configured to encode at least one audio stream to be rendered; the structural-acoustic data encoding block 220 configured to encode a version (222) of the at least one structural-acoustic data (221); and a bitstream writer 230 configured for writing, in the bitstream 204, the at least one audio stream 212 and positional data, including the encoded versions of the structural-acoustic data.

Also the audio stream 212 is in general associated with audio source positional data, so that the audio source 211 represented by the audio stream 212 can correspond to determined positions in the acoustic environment in which they are virtually generated. In general terms, the at least one audio source, which is encoded in the bitstream 204 in association with the position in which it is virtually generated in the acoustic environment, is also encoded with side information providing its virtual position in the acoustic environment. Therefore, spatial data may also be encoded, as side information of the at least one audio stream 212, indicating positional relationships between the at least one audio source and the acoustic environment. Once decoded, the audio source will be rendered by keeping into account the spatial relation ships between the audio source and the at least one audio object.

Decoder

Fig. 3 shows a decoder 300 which operate to render the acoustic environment encoded in the bitstream 304. An audio signal 301 may therefore be generated by the decoder 300. Notwith standing, the claimed decoder 300 may have, as an output, the acoustic environment 302 which is, possibly, the best representation of the original acoustic environment 202 to be rep resented by the Tenderer 350. The decoder 300 may include a bitstream reader 330 which may read the bitstream 204. The bitstream reader may therefore provide an encoded version 312 of the at least one audio source as encoded (as 212) by the audio source encoding block 210. The bitstream reader 330 may also provide an encoded version 322 of the structural-acoustic data 222 as encoded by the structural-acoustic data encoding block 220. The audio source decoding block 310 may provide a decoded version 311 of the original audio source 211. The structural-acoustic data decoding block 320 may provide a decoded version 321 of the original structural-acoustic data 221. The decoded version 311 of the original audio source 211 and the decoded version 321 of the original structural-acoustic data 221 may therefore be collec tively considered a decoded version 302 of the environment 202.

The Tenderer 350 will receive the decoded environment 302 (including its components 311 and 321) to render the audio signal 301 as closest as possible to the original audio signal 202. In particular, the Tenderer 350 may represent the at least one audio source by keeping into ac count its position (e.g. virtual position) in the acoustic environment and the conditioning to which the sound is (virtually or in reality) subjected by virtue of the presence of the at least one audio object.

In general terms, the audio source, which is encoded in the bitstream 204 in association with the position in which it is virtually generated in the acoustic environment, is also encoded with side information providing its virtual position in the acoustic environment. Therefore the Ten derer 350 may represent the sound as being virtually generated in a particular location (e.g. indicated by the positional data of the audio source), under the effect of the presence (e.g. virtual presence) of the at least one audio object.

The decoder 300 may be an apparatus for decoding the acoustic environment 302, the acous tic environment 302 including at least one audio source and at least one audio object, the at least one audio object being represented by a structural-acoustic data list which links positional data of polygons with acoustic properties of acoustic materials. The positional data may in clude, for each polygon, the position of one primary structural-acoustic vertex and the position of the remaining structural-acoustic vertexes. The apparatus may comprise at least one of: the bitstream reader 330 configured for reading, from the bitstream 204, the encoded version (322, 222) of the structural-acoustic data 211 and at least one audio stream 212 to be rendered as generated by the at least one audio source in the acoustic environment 302; the audio source decoding block 310 to decode the at least one an audio stream (312,

212); the structural-acoustic data decoding block 320 to decode the structural-acoustic data

211.

Structural-acoustic Data

As shown in Fig. 1, an structural-acoustic data may be associated to polygons (or more in particular in thins example, triangles). The polygons may be polygons of a mesh. Here, there are shown three triangles 110, 120 and 130. The first triangle has a main vertex 110a and two remaining vertexes 110b and 110c. The second triangle 120 has a main vertex which is coin cident with the main vertex 110a of the first triangle 110 (and is therefore indicated with the same reference sign), and two other remaining vertexes 120b (which is not coincident with another vertex of the first triangle 110) and 110c (which is coincident with another vertex of the first triangle 110). The third triangle 130 has a main vertex 130a and two remaining vertexes 130b and 130c. In this case, the y coordinate of the main vertex 130a happens to be the same of the y coordinate of the vertex 110 of the first and second triangles. Fig. 7 shows an example of how the structural-acoustic data can be understood. As can be seen, the triangles 110 and 120 with the vertexes 110a, 110b, 110c for the triangle 110a, 110c and 120b are shown (triangle 130 is not shown here). As can be seen, a first vertex list (804, 3804, 400) encompasses a vertex (e.g., 110a, 110b, 110c, 120b, etc.) in each record, in com bination with its coordinates (x coordinate, y coordinate, z coordinate). Therefore, a link be tween each vertex index 403 in the vertex list and the coordinates of each vertex is stated (coordinate sings are represented with the addition of a “x”, “y” or “z”). The vertex list (804, 3804, 400), therefore, associates a vertex index 403 to a triplet (or an n-tuple, according to the dimensions) of spatial coordinates, which identify the vertex position. In some cases, it is pos sible that some vertexes are repeated, by virtue of being vertexes coincident of different trian gles (e.g., vertexes 110a and 11c are repeated, since they are coincident but in different trian gles).

Fig. 7 also shows a triangle list (802, 3802) which links each triangle with the vertex indexes 403 of the triangle (or, more in general, the polygon). For example, associated with the triangle 110, we see that there are the vertex index 0 (associated to the coordinates of the vertex 110a), the vertex index 1 (associated to the vertex 110b), and the vertex index 2 (associated to the vertex 110c). In the triangle list (802, 3802), the triangle 120 is associated with the vertex indexes 3 (associated to the vertex 110a), 4 (associated to the triangle vertex 110c), and 5 (associated with the triangle vertex 120b). As can be seen, in the triangle list (802, 3802), together with the identification of the triangle and the vertex data mapping to the vertexes of the vertex list (and, subsequently, to the positions of the vertexes), there are also stored acous tic features (806, 3806), e.g., associated to the acoustic properties of the material.

Basically, Fig. 7 shows an example of structural-acoustic data (to be encoded) 221 which link triangles (110, 120, 130) and their positional data (e.g. coordinates of the vertexes) with acous tic properties of the materials. It will be shown that it is possible to compress these structural- acoustic data and to write them in the bitstream 204.

Fig. 4 shows an example of the structural-acoustic data list 400 (which may be an example of the vertex list 400 (802, 3802) which lists, in different records, materials associated to the positional data of the primary vertex and the remaining vertexes of each of the triangles 110, 120. Here, the structural-acoustic data list 400 is shown as divided among the x coordinates (for the x dimension), y coordinates (for the y dimension), and z coordinates (for the z dimen sion). For example, in the x coordinates, the structural-acoustic data list 400 has stored therein, for the first triangle 110: an x coordinate 110ax of the primary vertex 110a; and the x coordinates 110bx and 110cx of the remaining vertexes 110b and 110c, respec tively.

Analogously, in a corresponding record of the y coordinates of the structural-acoustic data list 400 (not shown in Fig. 4), a corresponding column of the primary vertex includes a y coordinate 110ay of the primary vertex 110a, while corresponding columns for the remaining vertexes have inserted y coordinates 110by and 110cy of the remaining vertexes 110b and 110c, re spectively. The same applies to the z dimension: in a corresponding record of the z coordinates of the structural-acoustic data list 400 (not shown in Fig. 4), a corresponding column of the primary vertex includes a z coordinate 110az of the primary vertex 110a, while corresponding columns for the remaining vertexes 110b and 110c have inserted y coordinates 110by and 110cy, respectively.

In the second record (second horizontal row from above) of the structural-acoustic data list 400, the coordinates of the second triangle 120 are stored. It is possible to see that the coor dinates of the primary vertex 110ax (but also 110ay, 110az) are repeated (for example, the x coordinate 110ax of the primary vertex 110a of the second triangle 120 repeats the same value stored for representing the primary vertex of the first triangle, despite the fact that these values are identical). The same applies to the vertex 110c whose coordinates 110cx, 110cy, 110cz are the same for the first triangle 110 and the second triangle 120.

Audio source encodinq/decodinq

The audio source encoding block 210 and the audio source decoding block 210 are important elements of the encoder 200 and the decoder 300, respectively. The sound source to be en coded and decoded may be represented by the at least one audio stream 212, 312. Notwith standing, it is not. The at least one sound source may be associated with positional data (e.g. metadata) which locate the position (e.g. virtual position) of the at least one sound source in the acoustic environment. Accordingly, the sound (audio signal) 301 may be rendered (e.g. by the Tenderer 350) based on the structural-acoustic relationships between the positional data of the at least one audio object, the acoustic properties of the materials (imagined as being the materials of the object), and the positional data of the at least one audio source. This operation may be performed by the Tenderer 350 at the decoder (which may be an external device).

For example, the at least one audio source may have positional data which include coordinates which permit to localize the at least one audio source in the acoustic environment, by taking into account the positional data of the at least one object (and in particular, the vertexes and the triangles) and the structural properties of the materials. The at least one audio source will therefore be localized in a particular position in the acoustic environment, and the listener will experience the sound as coming from that position and under the effect of the properties of the materials.

When it is referred to acoustic environment, therefore, reference is made not only to a spatial environment, but also to a complete audio scene which is to be encoded/decoded before being rendered. The acoustic environment has its own spatial characteristics (e.g., positional data, such as vertex list and triangle list, either compressed or non-compressed), but also the prop erties of the materials which constitute the objected in the environment, and also the sound which may be virtually generated at an audio source localized in a particular position in the spatial environment, and which is virtually conditioned by the structural-acoustic data (posi tional data and properties of the acoustic materials) which are encountered in the spatial envi ronment.

Structural-acoustic data encoding block Fig. 8 shows an example of the structural-acoustic data encoding block 220 of the encoder 200. As can be seen, the input to the structural-acoustic data encoding block 220 includes structural-acoustic data 221. The structural-acoustic data 221 may comprise, for example, a triangle list 802, a vertex list 804, and acoustic features 806. The acoustic features 806 may be part of the triangle list 802, but they are here shown differently for the sake of clarity.

The structural-acoustic data encoding block 220 may comprise a vertex list encoder 800, which may encode the vertex list 804 to obtain an encoded vertex list 808. It will be explained later how the encoder vertex list 808 may be generated.

The structural-acoustic data encoding block 220 may include a triangle list encoder 850. The triangle list encoder may be inputted by the triangle list 802 including the acoustic features 806, and the encoded vertex list 808 in the cases in which the encoded vertex list is provided in an encoded version or, as an alternative, by the vertex list 804 in a non-encoded version. Therefore, in some cases, it is not necessary that both the input 804 and 808 are provided to the triangle list encoder 850. The triangle list encoder 850 may provide an encoded triangle list 852 in which the triangle list 802 is compressed. Even though Fig. 8 is mainly discussed by using the word “triangle”, the same result may be obtained by using different polygons.

Structural-acoustic data encoding block Fig. 9 shows an example of the structural-acoustic data decoding block 320 of the decoder 300. From the bitstream 204, an encoded version of the structural-acoustic data 322 (which is the encoded version 222 of the structural-acoustic data as encoded by the encoder 200) is obtained. The bitstream reader 330 may provide an encoded version 3852 of the triangle list (which is a copy of the encoder triangle list 852 as encoded by the triangle list encoder 850) and an encoded version 3808 of the vertex list (which is a copy of the encoded vertex list 808 as encoded by the vertex list encoder 800). A triangle list decoder 3850 may be inputted by the encoder triangle list 3852. The vertex list decoder 3800 may be inputted by the encoded vertex list 3808, so as to provide a decoded vertex list 3804. The triangle list decoder 3850 may output a decoded triangle list 3802. The triangle list decoder 3850 may be inputted by either the encoded vertex list 3808 or by the vertex list 3804 as outputted by the vertex list decoder 3800. The structural-acoustic data 321 may therefore comprise the triangle list 3802 (including the acoustic features 3806) and the vertex list 3804. The triangle list 3802 may indi cate, for each triangle, a vertex index taken from the vertex list 804 and 3804. Even though Fig. 9 is mainly discussed by using the word “triangle”, the same result may be obtained by using different polygons.

Vertex index encoding and decoding It could be theoretically possible to simply encode all the coordinates of each vertex in the bitstream 204. For example, it could be possible to encode, for the primary vertex, all its x, y, z coordinates (110ax, 110ay, 110az); the same for the remaining vertexes 110b and 110c of the first triangle 110 and repeating all the fields also for the second triangle 120 (i.e. , to repre sent all thex, y, z coordinates for the primary vertex 110a and for the remaining vertexes 120bx and 110cx). However, it has been understood that, in this way, a repetition of data fields would be caused. The fact, for example, that the coordinates of the primary vertex 110a (which is common to both the triangles 110 and 120) are repeated increases the length of the bitstream 204 and reduces efficiency.

Hence, it has been preferred to adopt a technigue according to which, for at least one dimen sion (x, y, z) (and in some examples for each dimension of the acoustic environment) it is possible to write the coordinate only once for a first triangle (e.g., 110), and by referring to at least one previously encoded coordinate when encoding at least one coordinate of a subse- guent triangle (e.g., 120). In the example of Fig. 1 , it is therefore advantageously possible to apply such a technigue to each to the coordinates x, y, z of the main vertex 110a of the second triangle 120, and each of the coordinates x, y, z of the vertex 110c of the second triangle 120 (this is not possible for the coordinates of the vertex 120b, and their value shall be inserted in the bitstream 204). The technigue may imply a reference, e.g. through a short code, to a pre viously encoded coordinate of a vertex. It will be shown that it is possible to store the already encoded coordinates in an ordered shortlist 450 (with instantiations 450x, 450y, 450z for the different dimensions), and to address them simply by encoding an ordered value (e.g. index) which is the ordered value which, in the shortlist 450, is associated with the previously encoded coordinate.

The example above may also apply to single coordinates of each vertex. For example, if a group of vertexes has the same x coordinate, or z coordinate, or y coordinate, they can be encoded by referring to the previous one (notably, the encoder may decide to decode them in closed succession, so that the stored coordinates are maintained in the shortlist, before the update). For example, the coordinate (whether x, y, or z) may be actually written in the bit- stream 204 only for the first vertex, which is encoded, while the subsequent vertexes may be encoded by simply referring to the preceding encoded coordinate. For example, the y coordi nates 110ay and 130ay of the vertex 110a (in the triangles 110 and 120) and of the vertex 130a, respectively, are the same (see Fig. 1); hence, it is preferable to write in the bitstream 204 (and, before, in the encoded vertex list 808) the coordinate value 110ay, and to refer to it subsequently by encoding a value which is an order value in the ordered shortlist 450. Since encoder and decoder update the shortlist in the same way (in a replica-fashion), they share the knowledge of the values in the ordered shortlist 450 (and in its instantiations 450x, 450y, 450z). More in general, it has been understood that an ordered shortlist 450 in which coordi nates of previously encoded vertexes are stored in association with an ordinal value 455 (in stantiated by 455x, 455y, 455z).

Fig. 4 shows a first shortlist instantiation 450x for the x coordinate, a second shortlist 450y for the y coordinate, and a third shortlist 450z for the z coordinate. As can be seen, in the shortlist instantiation 450x, a first value (associated to the ordered value 0) is stored as 110ax since it is the x coordinate 110ax of the first processed vertex of the first triangle 110. In the second ordered value 1 , there is stored the value 110bx, which refers to the x coordinate 110bx of the vertex 110b of the triangle 110. At the third ordered value 2 (third index) there is stored the value 110cx obtained from the x coordinate 110cx of the vertex 110c of the first triangle 110. In the fourth ordered value 3 (fourth index) there is written the x coordinate 120bx of the vertex 120b of the second triangle 120. This analogously will happen for the shortlist 450y and shortlist 450z for the y and z coordinates, respectively (there is an ordinal value for each of the shortlists, i.e. for each of the dimensions). It is to be noted that the ordered list 450 is replen ished (stored) on the fly during the encoding of the bitstream 204 (or of the encoded version of the structural-acoustic data 422). In examples, the ordered shortlist 450 is replenished as long as the encoded version 222 of the structural-acoustic data 221 is generated. For example, when the x coordinate 110ax is written in the encoded version 222 of the structural-acoustic data 221 (and in particular in the encoded vertex list 808), the values 110bx, 110cx, 120bx, are still not present in the shortlist instantiation 450x for the x coordinate. Therefore, the or dered shortlist 450 (and in its instantiations 450x, 450y, 450z) is updated on the fly, while the encoded version 222 of the structural-acoustic data 221 is generated (and more in particular the encoded vertex list 808 is generated).

Fig. 4 also shows the encoding of vertex 130a. Since the y coordinate of the vertexes 110a and 130a are the same (but the x and z coordinates are not), the y coordinate of the vertexes is not repeated in the shortlist instantiation 450y for the y coordinate (and, indeed, the shortlist instantiation 450y has less coordinates stored therein as compared to the shortlist instantia tions 450x and 450z). And, this is notwithstanding the fact that the same coordinate value 110ay is repeated in the y coordinates of both vertex 110a and 130a! Moreover, when encod ing the version 222 of the structural-acoustic data 221 (or more in general when encoding the encoded version 808 of the vertex list 400, 804), it will be possible to base refer to the index 0 of the shortlist instantiation 450y, which has in general a shorter bitlength than longer codes.

Fig. 4 shows an example of the encoded version 222 of the structural-acoustic data 221 to be written in the bitstream 204 (and in particular of the encoded version 808, 3808 of the encoded vertex list). Each encoding of each vertex includes a mask 160 for each vertex, informing whether the coordinate values are actually encoded or only their reference through the ordered value (450) stored in the shortlist (450x, 450y, 450z) is encoded. The mask 160 is, in this case, represented as three binary values 160x, 160y, 160z, each indicating a binary information se lecting between: the encoding of the coordinate of the vertex; and the encoding of the ordered value (index) from the ordered shortlist.

When the primary vertex 110a of the first triangle 110 is encoded, no other vertex has actually previously stored in the shortlist 450: this means that the shortlist 450 is void, and it is therefore not possible to refer to a position 455 of any previously encoded coordinate. Hence, all the binary values 160x, 160y, 160z of the mask 160 are 0 (it is here imagined that 0 means that the coordinates are to be encoded in the encoded version 222 of the structural-acoustic data 221 , while the binary value 1 means that only the ordered value of the ordinate list 450 is encoded, but the binary values could have the opposite meaning in different examples). Sub sequently, both the vertex index 403 is encoded (or another identifier of the vertex) and, in coordinate value data fields 170c, also the coordinate values 110ax, 110ay, 110az are en coded. The same is repeated for encoding the remaining vertexes 110b, 110c. Fig. 4 also shows the encoding of vertex 130a. Since the y coordinates of the vertexes 110a and 130a are the same (but the x and z coordinates are not), it is not necessary to repeat the encoding of the y coordinate value of vertex 130a. As seen, its value 110ay is already stored in the first position of the instantiation 450y of the shortlist 450. For this reason, the ordered value 0 is inserted in the encoded version 222 of the structural-acoustic data 221 (or more in particular in the encoded version 808, 3808 of the encoded vertex list, and in the bitstream). As can be see, the mask 160 is 0 for the binary values 160x and 160z, but 1 for the binary value 160y. Indeed, subsequently an ordinal value data field 170v (carrying the ordered value 0, which is the ordered value of the referenced coordinate 110ay in the shortlist instantiation 450y) is encoded instead of the coordinate value in its length. As indicated by the binary values 160x and 160z, the coordinate values 130ax and 130az are not referenced through ordered values, but with the entire coordinate values, in coordinate value data fields 170c.

In examples, the vertex 110a is not encoded twice in the encoded version 222 of the structural- acoustic data 221 (or more in particular in the encoded version 808, 3808 of the encoded vertex list). Simply, the triangle list will refer to the same vertex 110a for both the triangles 110 and 120.

In general terms, for each coordinate of each vertex (primary vertex or remaining vertex), the structural-acoustic data encoding block 220 (and in particular the vertex list encoder 800) en codes: a value selected between the value of the coordinate; and the ordinal value (455x, 455y, 455z) of a previously encoded coordinate (and therefore previously encoded in the encoded version 222 to be written in the bitstream 204, or more in particular in the encoded version 808, 3808 of the encoded vertex list).

The choice between encoding the value coordinate and the ordinal value 455 (455x, 455y, 455z) can be made based on whether the previously encoded coordinate is in the shortlist 450.

Of course, if the second vertex of a triangle shares the same coordinate axis with another triangle (but is not coincident), then the binary values in the fields 160x, 160y, 160z of the mask 160 may be different (because maybe one or two coordinates are to be actually encoded in the encoded version 122 of the structural-acoustic data 221) while at least one binary field shall be 1 (and it shall be indicated which ordered value in the encoded version 222 of the polygon data 221). This is the case of vertex 130a, which shares the same y coordinate with vertex 110a. For this reason, for each vertex, we may have some coordinates which may be written in the coded version 222 of the polygon data 221, while those that have already been written perfectly (and stored in the ordered shortlist 450) can simply be defined with ordinal values.

The shortlist 450 may be updated, e.g. in such a way that less frequent coordinate values are expelled from the shortlist 450 (e.g. by virtue of more frequent coordinate values being en coded). In addition or alternative, the shortlist 450 may be updated in such a way that the last coordinate values encoded in the bitstream 204 take over the previously encoded coordinate values. These techniques may be combined with each other: for example, a ranking may be established among the already encoded coordinates, the ranking being based on a score as signed to each already encoded coordinate based on a mixed criterion which encompasses both the frequency of the encoding of a coordinate (by increasing the score for the most fre quent coordinate) and the freshness of the coordinate (by increasing the score for the last coordinate), so as to award the first positions in the shortlist 450 (associated with smaller bitlengths) to those already encoded coordinates having higher score, and by excluding from the shortlist 450 the those already encoded coordinates having lower score, to the point of excluding those already encoded coordinates having minimal score.

It is also possible to encode different polygons (e.g. triangles) having vertexes which share the same coordinates in short succession from each other, so as to increase the probability that a coordinate is already present in the shortlist 450. More in general, it is possible to order the encoding of the structural-acoustic data 221 in such a way that polygons (e.g. triangles) having vertexes which share the same coordinates are encoded at steps closer than polygons (e.g. triangles) having vertexes which do not share the same coordinates. In examples, the ordering of the encoding may be chosen in such a way that the more the common coordinates are, the closer the encoding of the vertexes.

By virtue of the techniques above, those indexes (ordinal values) 450 which are mostly used are extremely reduced in dimension, implying that also the encoded version 222 of the struc tural-acoustic data 221 are compressed and the bitstream 204 is reduced in length.

It is to be noted that, here above, it has been imagined that the values in the ordered shortlist 450 are encoded on the fly, by subsequently updating the ordered shortlist. This may occur, for example, in case of streaming.

Therefore, the structural-acoustic data encoding block 220 may use, for at least one dimension (x, y, z) of the acoustic environment (or of the bounding box, see below), the ordered shortlist 450, in which coordinate values of previously encoded polygonal vertexes are stored according to an order (index, ordinal value 450). The structural-acoustic data encoding block 220 may, in case a coordinate value of one current main polygonal vertex or remaining polygonal vertex is the same of one coordinate value of one previously encoded main polygonal vertexes or remaining polygonal vertexes stored in the shortlist in a determined ordinal value, to encode the ordinal value of the shortlist 450. In case the coordinate value of one current polygonal is different of any coordinate value of one previously encoded main polygonal vertex or remaining vertex stored in the shortlist 450, then the coordinate value is encoded in the bitstream 204. In turn, the structural-acoustic data decoding block 320 of the encoder 200 may also use, for at least the same dimension, an ordered shortlist, in which coordinate values of previously de coded main polygonal vertexes or remaining polygonal vertexes are stored according to an order. The structural-acoustic data decoding block 320 may, in case the bitstream 204 has encoded therein a particular ordinal value of the shortlist, reconstruct the coordinate value as the value stored in the shortlist 450 associated with the ordinal value.

Basically, the shortlist 450 at the decoder 300 may be understood as a replica of the shortlist 450 at the encoder 200.

The structural-acoustic data encoding block 220 of the encoder 200 may encode, for at least one dimension (but preferably for each of the three dimensions), the binary mask value (160x, 160y, 160z), indicating whether the coordinate value or the ordinal value in the shortlist is encoded (in the field 170c or 170v). In turn, the structural-acoustic data decoding block 320 of the decoder 300 may evaluate, for each vertex, the binary mask value 160 (160x, 160y, 160z) indicating whether the coordinate value or the ordinal value in the shortlist is encoded in the bitstream (204). Accordingly, the structural-acoustic data decoding block 320 may determine whether each coordinate is encoded as coordinate value or as index (ordinal value).

As explained above, if two vertexes have only one or two same coordinates (like the vertexes 130a and 110a), the encoding/decoding of the ordinal value (index) instead of the coordinate value will occur only for the same coordinates, while for the different one or two coordinates there will be independently encoded/decoded the coordinate value.

As explained above, the shortlist 450 may be divided in instantiations 450x, 450y, 450z, which can be independently treated. In examples, the structural-acoustic data encoding block 220 is configured so that: in case, for a first dimension, a coordinate value of one current vertex is the same of one coordinate value of one previously encoded vertex stored in the shortlist instantiation related to the first dimension in a determined ordinal value, to encode the ordinal value of the shortlist instantiation, and in case, for a second dimension, the coordinate value of the current vertex is different of any coordinate value of one previously encoded vertex stored in the shortlist instantiation related to the second dimension, to encode the coordinate value.

Analogously, at the decoder 300: in case, for a first dimension, a coordinate value of one current vertex is the same of one coordinate value of one previously decoded vertex stored in the shortlist instantiation related to the first dimension in a determined ordinal value (and this may be signalled in the bitstream 204, e.g. in one first of the binary values of the mask 160), to decode the ordinal value of the shortlist instantiation, and in case, for a second dimension, the coordinate value of the current vertex is different of any coordinate value of one previously decoded vertex stored in the shortlist instantiation related to the second dimension (and this may also be signalled in the bitstream 204, e.g. in one second of the binary values of the mask 160), to decode the coordinate value.

Triangle list encodinq/decodinq

Fig. 6a shows how to encode the encoding triangle list 852. As explained, each triangle is encoded by linking the vertex indexes of the vertexes from the vertex list (in compressed form 804, 3804, 400) and the acoustic features of the material. For each triangle, there may be encoded either the vertex index of the vertex from the vertex list in compressed form (808) or from an index in a second shortlist (also called here MTF, move to forward, list). The second shortlist (MTF list), which is explained in more detail later, contains vertex indexes, which have previously been used. If a vertex index is already in the second shortlist, then its position is encoded. Otherwise, the vertex index from the encoded vertex list 808 is written. The symbols associated with the different positions may be so that their bit length increases with the dis tance from the first position. An additional value (which may be longer than any other value of the second shortlist) may be encoded any time a vertex index is to be written instead of the position in the second shortlist. An example is provided in Fig. 6a. At step 602, a vertex to be written in the bitstream 204 is obtained. At step 604, it is evaluated whether the vertex index is already in the second shortlist (MTF list). If the vertex index is not in the second shortlist (MTF list), then a symbol (e.g., 0b11111111) is written in the bitstream and, subsequently, also the vertex index as taken from the encoded vertex list 808 or from the original vertex 804. At step 612, the second shortlist may be updated by writing the vertex index written in the bit- stream (or more in general, in the encoded triangle list 852). Further, it is possible to modify the statistics of the occurrences of the vertex indexes, by modifying opportunely histograms associated to the vertex index. It is noted that the order of the steps 610 and 612 may be inverted or reversed. If at step 604 it is determined that the vertex index is already in the second shortlist (MTF list), then its position is written in the bitstream (or more in general, in the en coded list 852). Also in this case, the histograms and the MTF list may be modified at step 608. Also, the order of steps 606 and 608 may be inverted. Subsequently, a new vertex index may be encoded. It is to be noted that both the position and the vertex index may be encoded according to the so-called arithmetic coding, which requires histograms of the probability of each vertex index to be known both by the encoder and the decoder.

Fig. 6b shows an example of the triangle list decoding. At step 3602, a new vertex index is to be decoded. At step 3604, it is determined whether the vertex index is already in the MTF list or not. This may be determined, for example, by checking the in the bitstream. In the case of the bitstream having a symbol indicating that the vertex index is written in its entirety (and not its position from the second shortlist), then the steps 3610 and 3612 are invoked. At step 3610, the vertex index is read and written in the decoded version of the triangle list. At step 3612, the histograms and the MTF list are updated. In case the evaluation at step 3604 provides that the vertex index is already in the second shortlist (MFT list), then the steps 3606 and 3608 are invoked. In the step 3606, the position of an index vertex is read from the second shortlist (by point at the specific order value of the second shortlist) and its value is read from the shortlist. At step 3608, the histograms in the MTF list are modified. In steps 3608 and 3612, when the histograms are modified, it means that the probability of having the particular vertex index is increased. When it is referred that the MTF list is modified, it means that the vertex index is inserted in the first position (the one with the lowest position of the second shortlist). The steps 3606 and 3608 may be inverted with each other. The steps 3610 and 3612 may be inverted with each other.

Basically, both the encoder and the decoder comprise a second shortlist (MTF list), and the second shortlist of the decoder is understood to be a replica of the second shortlist of the encoder. Basically, the operations are the same, apart from the fact that in one case the en coded triangle list 852 is encoded and the other is decoded.

Figs. 10a-10g show an example of operations at the triangle list encoder 850 (they can be easily adapted to the operations at the triangle list decoder 3850). Reference is made to the encoder only for clarity, but the same example may be reported for the decoder. In Fig. 10a, a step 0 of initialization is shown, in which the second shortlist (MTF list) 1450 is void of values. In Fig. 10b (step 1), first vertex indexes 0 and 10 are to be encoded. They are both the second shortlist 1450 and histograms 1460 are updated. In particular, the second shortlist 1450 has, in its first positions, the values 0 and 5, which are to be encoded. The histograms associate occurrences 1 for each of the values 0 and 6. The occurrences are to be understood as asso ciated with the probabilities. In Fig. 10c, a vertex 5 is encoded. The second shortlist 1450 and the histograms 1460 are updated. As can be seen in the second shortlist 1450, the value 5 takes the first position, while the values 0 and 10 are shifted towards less significant positions in the second shortlist. In Fig. 107, another vertex 7 is encoded. It is placed in the second shortlist 1450 and the histograms 1460 are updated. In Fig. 10e, the vertex 5 is to be written again. Accordingly, in the encoded version 852 of the triangle list (and subsequently in the bitstream 204), there is encoded the position 1470 (indicated with 0b10) of the value 5 (as can be seen, the value 5 is in the second position). At this point, also the vertex 5 takes the first position in the second shortlist (MTF list) 1450. It is to be noted that Fig. 10e substantially shows a step 606 of the method shown in Fig. 6a, since the position is written, with symbol 1470, as in step 606 of Fig. 6a. It is to be noted that the position that is taken is the second position as before the update of the second shortlist 1450 (step 608, which are indicated in Fig. 10a). Fig. 10f simply shows that other codes are encoded. Fig. 10g shows an example in which the vertex 8 shall be encoded, but 8 is not in the shortlist 1450 (the shortlist being full). This is an example of step 610 of Fig. 6a. In this case, the code 0b11111111 (or another code indicating the same situation) is encoded to indicate that a code is not in the second shortlist 1450. As can be seen, the second shortlist 1450 is updated by putting the value 8 at the first position, and by excluding (popping) the last value in the list.

Fig. 10h shows an example of codes associated with the position. As can be seen, the first position is associated with ObO, which is the shortest code, while a final code 0b11111111 indicates that the position is not encoded, but the value of the vertex index is to be encoded. The same will apply to the decoder, but in that case, the encoded value is read and it is under stood whether to search a particular vertex index from the second shortlist (MTF list) 1450 or whether the vertex index is encoded.

In any case, arithmetic coding may be used, in which shorter codes are assigned to more recurring index values to be encoded.

Bounding Box

It is possible to reduce the data length to be encoded in the encoded version 222 and/or in the bitstream 204 by intelligently changing the spatial coordinate system from an original spatial coordinate system to a coordinate system having advantageous peculiarities. For example, it is possible to change the coordinate system to have the origin closer to the polygonal vertexes, therefore reducing the distances from the origin (and the length of the coordinates, as well). For example, it may be chosen to reduce the volume to be encoded to a bounding box in particular in the cases in which no vertex is excluded. In particular, a bound ing box may be contained in the acoustic environment and the structural-acoustic data to be encoded in the bitstream 204 and/or in the version 222 are encoded with reference to a spatial coordinate system defined by one determined vertex of the bounding box.

An example of bounding box 500 is provided by Fig. 5. The bounding box may be a parallele piped volume (or more in general a polyhedral volume) but in general terms may be exempli fied as a prismatic volume (in particular with a rectangular base) and in some cases, it may be a cube. Fig. 5 shows a bounding box 500 and, just to show, a polygon 510 contained in the bounding box 500. The polygon 510 (triangle) as a primary vertex 510a and two remaining vertexes 510b and 510c. The polygon 510 is contained in the bounding box 500 (in general terms, it is the bounding box 500 which is chosen in such a way that all the polygons are contained). In Fig. 5 there is not shown any other triangle only for simplicity. The bounding box 500 may be signaled, e.g. by writing its positional features and/or orientation features. For example, there may be encoded the position of a determined vertex 502 (e.g. the one closer to the original origin of the coordinate system). In some cases, either the other vertexes of the bounding box 500 and/or an orientation information of the bounding box 500 may be encoded in teh bitstream. The shape and the orientation of the bounding box 500 is signaled univocally, so that the decoder can reconstruct the position of the vertexes 510a, 510b, 510c with respect to the bounding box and, in turn, in respect to the origin of the original axes. The bounding box 500 may also constitute a new spatial coordinate system by translation, rotation, or, more in general, roto-translation. In the simple case of Fig. 5, the coordinates along the dimensions y and z are maintained identical between the old coordinate system and the new coordinate system, but the x is shifted by an amount “bounding_box_min”, caused by the shifting of the origin to correspond to the vertex 502 of the bounding box 500. This is advantageous in the case in which, in the interspace between the vertex 502 and the origin O of the original spatial coordinate system, there are no vertexes present. Hence, when the coordinates of the vertexes 510a, 510b and 510c of the polygon 510 are encoded (in the version 222 and/or in the bit- stream 204), the bitlength of the coordinates in the x direction is reduced. Therefore, the bound ing box 500 may be defined in such a way that it contains all the vertexes to be encoded, but reducing the space between the original origin of the coordinate system and the new origin of the coordinate system (which in this case corresponds to the vertex 502 of the bounding box 500). Basically, a change of the coordinate system is effected, in such a way of reducing the length of the coordinates to be encoded in the bitstream 204 and/or in the version 222 of the structural-acoustic data.

In addition or alternative, other kinds of optimizations may be performed, associated with the definition of the bounding box. For example, it is possible to evaluate possible recurring pat terns. Were the acoustic environment presents at least one recurring pattern, it is possible to limit the bounding box to the at least one recurring pattern. The recurring pattern may be for example a symmetric pattern. For example, the symmetry could be radial symmetry or planar symmetry (other symmetries are possible). In case of symmetry (or more in general of a recur rent pattern) it is not necessary to encode all the vertexes of all the polygons, since it is possible to only encode the coordinates of the recurrent pattern (e.g. in the case of planar symmetry, of half of the symmetrical volume) so as to reduce the amount to of vertexes to be encoded in the bitstream 204. Basically, there may be defined the bounding box 500 so as to contain the recurring pattern once, without re-encoding the other recurring patterns (e.g. in the case of planar symmetry, it is not only necessary that the bounding box 500 contains the half of the symmetrical volume from the symmetry planar towards one of the two directions). Recurring pattern data are signaled in the bitstream 204 (e.g. in the case of planar symmetry, symmetry data are to be encoded so that the encoder 200 may reconstruct the shape of the represented acoustic object; e.g. in the case of a planar symmetry it is simply possible to provide information defining the symmetry plan, so that the decoder can reconstruct the final shape by reinserting the non-encoded half of the symmetric shape). The same can be performed in the case recur ring patterns are periodical shapes: the bounding box may be limited to the shape which is periodically repeated, while the recurring pattern data may include the information which per mits to reconstruct the final shape of the acoustic object by the decoder (e.g. including the spatial period, e.g. in the three dimensions, and so on). The same can also apply in the case of variable symmetry, according to which only an angular shape is defined, and recurring pat tern data are signaled regarding the symmetry point and/or the symmetry radius, so that the decoder 300 can reconstruct the final radial symmetrical shape based on the symmetry data.

As will be apparent in the following passages, it is also possible to define a bounding block which, when the spatial coordinate system is changed onto the spatial coordinate system de fined by the bounding box, the coordinates whose values have a greatest common divisor greater than 1 is maximized.

In examples, the audio source encoding block 210 of the encoder 200 may therefore define a bounding box contained in the acoustic environment and encode the structural-acoustic data within the bounding box, thereby refraining from writing structural-acoustic data in the regions outside the bounding box. The bounding box may exclude portions of the acoustic environment which do not contain any primary vertex and any remaining polygonal vertex. Information on the bounding box including positional data of the bounding box may be signalled in the bit- stream 204 so as to permit the localization of the bounding box in the acoustic environment. The structural-acoustic data may be therefore subjected to a change of coordinate system onto a new coordinate system defined by the bounding box, and the coordinates of the vertexes of the polygons may therefore be encoded with reference to the new coordinate system defined by the bounding box. In turn, the audio source decoding block 310 of the decoder 300 may read, in the side information of the bitstream 204, the information on the bounding box, and in particular the positional data. Hence, the audio source decoding block 310 may localize the bounding box within the environment. Moreover, the audio source decoding block 310 may decode the structural-acoustic data within the bounding box, and, based on the localization performed through the positional data of the bounding box, the audio source decoding block 310 may reconstruct the positional data of the bounding box in the environment. The audio source decoding block 310 perform a change of coordinates form the coordinate system de fined by the bounding box onto the original coordinate system of the environment, e.g. by performing the change of coordinates inverse with respect to that carried out at the encoder 200.

As explained above, the audio source encoding block 210 of the encoder 200 may also eval uate whether the acoustic environment presents at least one recurring pattern, and limit the bounding box to the at least one recurring pattern. Recurring pattern data may therefore be signaled in the bitstream 204. In this case, the audio source decoding block 310 of the decoder 300 may reconstruct the at least one acoustic object by applying a recurrence (e.g., by pro longing by symmetry, by periodicity, etc.) to the recurring pattern within the bounding box.

For example, the at least one recurring pattern may be a symmetric pattern (e.g. a plaraly symmetric pattern), and the recurring pattern data may therefore be symmetry data (e.g., the positional data indicating the position and/or the orientation of the symmetry plan) may be signalled in the bitstream 204. In turn, the audio source decoding block 310 of the decoder 300 may reconstruct the at least one object by symmetrically generating structural-acoustic data in positions symmetrical to the positions of the primary vertexes and the remaining polygonal vertexes in the bounding box (e.g. with respect to the symmetry plan).

Greatest Common Divisor

With or without the presence of the bounding box, in examples, the encoder may search for vertexes which have, at least in one coordinate, a common greatest common divisor. Hence, the encoder 200 is further configured to search, for a particular dimension of the acoustic en vironment to be encoded, and for a multiplicity of primary polygonal vertexes or remaining polygonal vertexes, at least one common divisor dividing the coordinates of the primary polyg onal vertexes or remaining polygonal vertexes, to thereby encode a divided version of the coordinate value.

Let us consider, in Fig. 5, the x coordinate x a of the vertex 510a and the x coordinate X b of the vertex 510b (the coordinates x a and X b may have been discretized to be integer numbers, for example). If the coordinates x a and X b have a greatest common divisor g>1 , then it is possible to factorize x a and x b , so that x a =g*d a and X b =g*d b and, with both d a and d a integer, with d a <x a and d b <X b , and with g<x a and g<x b . Therefore, instead of encoding (in the encoded version 222 of the structural-acoustic data and/or in the bitstream 204) the big numbers (with high bitlength) X a and x b , the small numbers (with low bitlength) g, d a and d b may be encoded. Accordingly, an appropriate reduction of the bitlength can be achieved, in particular when a greatest com mon divisor is retrieved for a multiplicity of coordinates of vertexes.

In examples, the audio source encoding block 210 of the encoder 200 may therefore search, for at least one dimension of the environment or of the bounding box, a common divisor, dif ferent from (greater than) 1 , among the coordinates of a plurality of primary polygonal vertexes or remaining polygonal vertexes, to thereby encode in the bitstream 204 the common divisor and the results of the divisions of the coordinates by the common divisor. Hence, the bitstream 204 has encoded herein at least two coordinate values of at least two different vertexes in a factorized form according to a common divisor. This is signalled in the bitstream 204 (also the common divisor is encoded). In turn, the audio source decoding block 310 of the decoder 300 may reconstruct the at least two coordinate values encoded in factorized form by multiplying each of the at least two coordinate values by the common divisor, so as to reconstruct the at least two coordinate values.

In Fig. 4 there are shown the bitstream 204 to have coordinate value data fields 170c in which there are encoded the coordinate values, and ordinal value data fields 170v in which there are encoded the ordinal values of the shortlist 450. The value data fields 170c have in general a greater bitlength than the ordinal value data fields 170v.

Quantization It is to be noted that the structural-acoustic data encoding block may preliminarily perform a quantization on the structural-acoustic data 221 , eliminating duplicate vertexes and degener ate polygons. When this applies, the example discussed above (with reference to Figs. 1 and 4) can basically be managed through the quantization.

Discussion

The new triangle mesh coding approach is composed of several stages, each contributing to improved efficiency. It is not strictly necessary to carry out all the stages together.

The first stage uniformly quantizes the vertex coordinates, using an encoder selectable quan tization step and eliminates all duplicate vertexes and all duplicate and degenerate triangles. The second stage computes the bounding box for the entire list of vertexes. The third stage acts as a preprocessor, detecting implicitly reduced precision of coordinates, meaning all ver tex coordinates are multiple of some integer number, separately on each dimension. The fourth stage takes advantage of geometries where a significant number of vertexes are located on common planes that are parallel with the coordinate axes. The fifth stage refines the fourth stage, by taking into account and creating a statistical model of the recency information of repeated coordinates, separately on each dimension. Each of these stages compute several model parameters for the best representation found by the encoder, which are coded very efficiently as side information together with the data itself using a range coder.

The first stage uniformly quantizes the vertex coordinates, using an encoder selectable quan tization step. The quantization step is usually chosen to be small enough so that the quantiza tion process does not introduce any acoustic artifacts, typically on the range from 1 mm to 2 cm. After quantization, all duplicate vertexes and all duplicate and degenerate triangles are eliminated. Depending on the generation algorithm for the triangle mesh, the same exact du plicate vertexes can potentially appear many times.

The second stage computes the exact bounding box for the entire list of vertexes, to exclude from coding any ranges that are not actually used. The bounding box is coded very efficiently, optimizing for some frequently encountered patterns. One frequent pattern is when a bounding box coordinate range is symmetric around zero, e.g., -150 and 150, where only the absolute value is coded once. This applies when the acoustic environment or object is symmetric with the respect to that coordinate. Another pattern is when a bounding box coordinate range has width zero, e.g. 150 and 150, where only one value is coded once. This applies when the acoustic object is completely flat. The third stage acts as a preprocessor, detecting implicitly reduced precision of coordinates, meaning all vertex coordinates are multiples of some integer number, separately on each di mension. For example, if we assume that the quantization precision is set to 1 mm, and that all the X coordinates are actually expressed in multiples of 10 mm, then all the quantized X coordinates, and therefore all the quantized sizes on the X coordinate, are multiples of 10. Moreover, if the coordinates are made relative to the bounding box, complete translation in variance is achieved (e.g., all the sizes may be multiples of 10, but the coordinates may be all shifted with 1). These common multiples, when different from 1 , can to be removed from the values to reduce the data range. The common multiples for each coordinate are coded very efficiently, optimizing for some frequently encountered patterns, like for a value of 1 (meaning no common multiple was found) and for a value exactly equal to the corresponding width of the bounding box (meaning there are exactly two different values present for that coordinate). Thus, a cube aligned to the coordinate axes will have, on each coordinate, as common multiple exactly the width of the bounding box of that each coordinate. Therefore, after preprocessing, for each coordinate, only values of 0 and 1 will remain.

The fourth stage takes advantage of geometries where a significant number of vertexes are located on common planes that are parallel with the coordinate axes. For example, if a number of vertexes are located on a plane parallel with the X and Y coordinate axes, this means that all the Z coordinate values of those vertexes are identical. The way to take advantage of re peating coordinate values, separately on each axis, is to code each coordinate value either as an index into a list of previously coded unique values, or as a new value coded explicitly, which will them be added to the list of previously coded unique values. Indicating which of the two ways a value is actually coded requires a "mask" bit, separately for each coordinate. These 3 "mask" bits per vertex are optimally coded using an adaptive binary probability estimator. If the number of distinct values for each coordinate is significantly smaller than the number of ver texes, then even with the overhead of the "mask" bits, the coded size is significantly smaller. The encoder can optimally decide, based only on the number of unique values for a coordinate and the number of vertexes if this representation is more efficient than the direct one.

The fifth stage refines the fourth stage, by taking into account and creating a statistical model of the recency information of repeated coordinates, separately on each dimension. The fourth stage would code for a repeating value its index into the list of previously coded unique values, using a uniform distribution. However, a significant proportion of repeating values map to in dexes that were used very recently. Introducing a parameter representing the maximum num ber nr of recent index values to be remembered, a statistical model is created to code the last nr unique index values used more efficiently than all the others. A Move To Front (MTF) list of nr + 1 entries is used to keep track of the values of the most recent nr index values, while the last entry represents all the other indexes. If an index value is found in the MTF list, its position in the list is coded, and that index value is moved to the beginning of the MTF list. Otherwise, the position nr in the list is coded, indicating that the index was not used recently, followed by the uniform coding of the index value itself. The positions in the MTF list are coded using an adaptive probability estimator, to match optimally the relative recency distribution. Increasing nr improves coding efficiency, however a small value of 8 for nr already achieves close to optimal results, allowing for a low complexity implementation.

Alternative examples

It is to be mentioned here that all alternatives or aspects as discussed before and all aspects as defined by independent claims in the following claims can be used individually, i.e. , without any other alternative or object than the contemplated alternative, object or independent claim. However, in other embodiments, two or more of the alternatives or the aspects or the inde pendent claims can be combined with each other and, in other embodiments, all aspects, or alternatives and all independent claims can be combined to each other. An inventively encoded signal can be stored on a digital storage medium or a non-transitory storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.

Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.

Depending on certain implementation requirements, embodiments of the invention can be im plemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed.

Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed. Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.

Other embodiments comprise the computer program for performing one of the methods de scribed herein, stored on a machine readable carrier or a non-transitory storage medium.

In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the com puter program runs on a computer.

A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer pro gram for performing one of the methods described herein.

A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be trans ferred via a data communication connection, for example via the Internet.

A further embodiment comprises a processing means, for example a computer, or a program mable logic device, configured to or adapted to perform one of the methods described herein. A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a micro processor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware apparatus.

The above described embodiments are merely illustrative for the principles of the present in vention. It is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending patent claims and not by the specific details pre sented by way of description and explanation of the embodiments herein.