Browse Prior Art Database

Scheme for Employing IEEE Not-A-Numbers to Partition Multimedia Data Streams

IP.com Disclosure Number: IPCOM000105430D
Original Publication Date: 1993-Jul-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 170K

Publishing Venue

IBM

Related People

Karim, FO: AUTHOR [+4]

Abstract

The following describes a method for classifying floating point data through the use of IEEE NaN's (Not-a-Numbers). In the scenario of interest, a dynamically constructed IEEE floating point data stream of indeterminate length must be partitioned into logical groupings. A practical example of such a stream would be the floating point values presented to a graphics adapter by a GL graphics application. The data sequence delivered to the adapter is logically divided into tuples distinguished as coordinates, normals, color values, lighting constants, and so forth although they are all physically IEEE floating point values.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 28% of the total text.

Scheme for Employing IEEE Not-A-Numbers to Partition Multimedia Data Streams

      The following describes a method for classifying floating point
data through the use of IEEE NaN's (Not-a-Numbers).  In the scenario
of interest, a dynamically constructed IEEE floating point data
stream of indeterminate length must be partitioned into logical
groupings.  A practical example of such a stream would be the
floating point values presented to a graphics adapter by a GL
graphics application.  The data sequence delivered to the adapter is
logically divided into tuples distinguished as coordinates, normals,
color values, lighting constants, and so forth although they are all
physically IEEE floating point values.  The stream is constructed as
the result of individual, isolated GL library calls made by
application programs, hence the stream length and overall composition
are not communicated to the adapter before the stream is issued.

As an illustration, consider the sample stream of floating point
values below:

       0.0 1.8 2.0 3.2 4.0 5.7 2.3 2.0 7.7 1.0 2.0 3.0
       |-NORMAL--| |-COORDINATE (X,Y,Z)--| |--COLOR--|

The stream of twelve numbers are all floating point values, logically
classified as normal, coordinate, and color data.

      The nature of the stream constrains the realm of possible parti
tioning solutions in the following manner.  First, the premise that
the stream is generated dynamically precludes solutions which perform
analysis on the sequence a-priori.  One such solution would be to
examine the stream to discover "runs" of logically homogeneous tuples
and insert a "marker" into the stream which characterized the ensuing
tuples and foretold the length of the run which followed.  Hence the
sample would be partitioned as:

       NRM1 0.0 1.8 2.0 XYZ2 3.2 4.0 5.7 2.3 2.0 7.7 CLR1 1.0 2.0 3.0
where "NRM1" indicates the values that follow are to be interpreted
as data for a single vector normal, "XYZ2" declares two coordinates
follow, and "CLR1" classifies the next values as color data.

           Since the stream composition and length are indeterminate,
it is not possible to ascertain the length of the run at the instant
the marker must appear in the stream.

            Second, the premise that the stream contains only IEEE
floating point values restricts the choice of suitable markers to
those values which physically conform to the IEEE standards.

           The approach currently being employed is to partition the
data set at regular intervals, so that each logical data tuple is
preceded by a marker that serves to describe the nature of the data
following it.  This solution produces the following stream from the
sample data:

       NRM 0.0 1.8 2.0 XYZ 3.2 4.0 5.7 XYZ 2.3 2.0 7.7 CLR 1.0 2.0
3.0

The markers "NRM", "XYZ", and "CLR" are themselves data values which
are detected because of their position in the stream.  The drawback
to this method is that "runs"...