Difference between revisions of "X3D Binary Compression Capabilities and Plans"

From Web3D.org
Jump to: navigation, search
m (Polygon Reduction and Geometric Compression)
(fix typos)
Line 1: Line 1:
'''Synopsis''': Lots of work has been accomplished towards proper support of X3D Binary Compression for a wide variety of potential uses.
+
'''Synopsis''': Lots of work has been accomplished towards proper support of X3D Binary Compression for a wide variety of potential uses.
  
 
X3D appears to have have an '''80% solution already available''' that meets various requirements for a general 3D transmission format.
 
X3D appears to have have an '''80% solution already available''' that meets various requirements for a general 3D transmission format.
  
* ''TODO.'' We are updating this page and creating a draft 2013 Call For Contributions to further progress these technical capabilities for X3D.
+
* ''TODO:'' We are updating this page and creating a draft 2013 Call For Contributions to further progress these technical capabilities for X3D.
  
 
== Existing Compression Usage for X3D and VRML97 ==
 
== Existing Compression Usage for X3D and VRML97 ==
 
* Approved ISO standard [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/X3D_Binary.html Compressed Binary Encoding (CBE) for X3D].
 
* Approved ISO standard [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/X3D_Binary.html Compressed Binary Encoding (CBE) for X3D].
** Based on ISO standard [http://en.wikipedia.org/wiki/Fast_Infoset Fast Infoset (FI)] for XML compression.
+
** Based on ISO standard [http://en.wikipedia.org/wiki/Fast Infoset Fast Infoset (FI)] for XML compression.
 
* Optional, alternative gzip compression and MIME Type definitions for X3D.
 
* Optional, alternative gzip compression and MIME Type definitions for X3D.
 
** XML encoding ([http://www.web3d.org/files/specifications/19776-1/V3.2/Part01/concepts.html#X3DFilesAndTheWorldWideWeb .x3dz/.x3d.gz]), ClassicVRML encoding ([http://www.web3d.org/files/specifications/19776-2/V3.2/Part02/concepts.html#ClassicVRMLEncodedX3DFilesAndWWW .x3dvz/.x3dv.gz]) and Compressed Binary encoding ([http://www.web3d.org/files/specifications/19776-3/V3.1/Part03/concepts.html#X3DFilesAndTheWorldWideWeb .x3db.gz]) file extensions.
 
** XML encoding ([http://www.web3d.org/files/specifications/19776-1/V3.2/Part01/concepts.html#X3DFilesAndTheWorldWideWeb .x3dz/.x3d.gz]), ClassicVRML encoding ([http://www.web3d.org/files/specifications/19776-2/V3.2/Part02/concepts.html#ClassicVRMLEncodedX3DFilesAndWWW .x3dvz/.x3dv.gz]) and Compressed Binary encoding ([http://www.web3d.org/files/specifications/19776-3/V3.1/Part03/concepts.html#X3DFilesAndTheWorldWideWeb .x3db.gz]) file extensions.
 
* Optional, alternative gzip compression for VRML97.
 
* Optional, alternative gzip compression for VRML97.
 
** Original compression technique of applying gzip to .wrl compressed VRML97 files was called .wrz.
 
** Original compression technique of applying gzip to .wrl compressed VRML97 files was called .wrz.
** This emerged as a common practice when gzip was originally used. No formal specification of .wrz or corresponding mime type was produced.
+
** This emerged as a common practice when gzip was originally used. No formal specification of .wrz or corresponding mime type was produced.
 
** Occasionally authors might also gzip .wrl files while retaining the .wrl file extension.
 
** Occasionally authors might also gzip .wrl files while retaining the .wrl file extension.
  
 
== Polygon Reduction and Geometric Compression ==
 
== Polygon Reduction and Geometric Compression ==
 
Formal specifications:
 
Formal specifications:
* The X3D Compressed Binary Encoding defines extensible, repeatable [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DCompressionDataFlow compression] and [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DDecompressionDataFlow decompression] algorithms for [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#OverviewIntroduction data-flow production chains]. Multiple type-specific [http://www.web3d.org/files/specifications/19776-3/V3.1/Part03/EncodingOfFields.html field encoders] and geometric compression algorithms can be used in concert, but no specific geometric compression algorithms are referenced or required.
+
* The X3D Compressed Binary Encoding defines extensible, repeatable [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DCompressionDataFlow compression] and [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DDecompressionDataFlow decompression] algorithms for [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#OverviewIntroduction data-flow production chains]. Multiple type-specific [http://www.web3d.org/files/specifications/19776-3/V3.1/Part03/EncodingOfFields.html field encoders] and geometric compression algorithms can be used in concert, but no specific geometric compression algorithms are referenced or required.
 
* [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DCanonicalForm X3D Canonicalization (C14N)] provides standardized formatting so that digital signatures are not thwarted by whitespace variations.
 
* [http://www.web3d.org/files/specifications/19776-3/V3.2/Part03/concepts.html#X3DCanonicalForm X3D Canonicalization (C14N)] provides standardized formatting so that digital signatures are not thwarted by whitespace variations.
 
Best practices:
 
Best practices:
Line 51: Line 51:
 
** Java codebase: [http://www.xj3d.org Xj3D].
 
** Java codebase: [http://www.xj3d.org Xj3D].
 
* Ongoing status is maintained on Web3D-member wiki pages:
 
* Ongoing status is maintained on Web3D-member wiki pages:
** [[Player_support_for_X3D_components]]
+
** [[Player support for X3D components]]
** [[Tool_support_for_X3D_components]]
+
** [[Tool support for X3D components]]
 
* Several thousand [http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples X3D Examples] are available in ''.x3db'' form, encoded by Xj3D.
 
* Several thousand [http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples X3D Examples] are available in ''.x3db'' form, encoded by Xj3D.
 
** TODO: Plan to similarly automate conversions and comparisons, using both Xj3D and XIOT, for cross-check interoperability and validation testing.
 
** TODO: Plan to similarly automate conversions and comparisons, using both Xj3D and XIOT, for cross-check interoperability and validation testing.

Revision as of 12:41, 21 January 2013

Synopsis: Lots of work has been accomplished towards proper support of X3D Binary Compression for a wide variety of potential uses.

X3D appears to have have an 80% solution already available that meets various requirements for a general 3D transmission format.

  • TODO: We are updating this page and creating a draft 2013 Call For Contributions to further progress these technical capabilities for X3D.

Existing Compression Usage for X3D and VRML97

  • Approved ISO standard Compressed Binary Encoding (CBE) for X3D.
  • Optional, alternative gzip compression and MIME Type definitions for X3D.
  • Optional, alternative gzip compression for VRML97.
    • Original compression technique of applying gzip to .wrl compressed VRML97 files was called .wrz.
    • This emerged as a common practice when gzip was originally used. No formal specification of .wrz or corresponding mime type was produced.
    • Occasionally authors might also gzip .wrl files while retaining the .wrl file extension.

Polygon Reduction and Geometric Compression

Formal specifications:

Best practices:

Data-Centric Binary Encodings

Network Streaming

  • Multiple capabilities are already available in X3D for flexible network transmission.
    • Anchor, Inline, LOD, LoadSensor, Script and Prototype nodes support successive retrieval of content once initial model is displayed.
  • TODO: Willing to consider further addition of progressive-mesh geometric streaming technologies, perhaps by a public Call for Contributions. Note however that an effective progressive-mesh approach is likely dependent on the availability of a corresponding mesh compression algorithm.
  • Intellectual Property Rights (IPR) protections for X3D specification.
    • Patented technologies can be considered, but only when eventual use will be royalty free for X3D use (if eventually accepted).
    • Submitters can restrict access to patented submissions during member-only working group review, if desired.
  • TODO: Use cases and test examples can demonstrate whether http/https and local-file url retrieval are sufficient for a network protocol.
    • Other network protocols (Web sockets, P2P channels, etc.) might be possible, but only if security restrictions can be handled satisfactorily.

X3D Implementations

The following tools implement the X3D Compressed Binary Encoding (CBE) standard.

Looking Ahead

  • Web3D's X3D and CAD Working Groups each have member commitments to pursue this continued innovative work in 2013.
  • TODO: An open workshop on 3D Transmission Formats might be a thorough way to compare candidate technologies to complete these capabilities.
  • Consider common, sharable technical strategies with MPEG-4 and Collada.