APPLICATION NOTES

Above is a graphical illustration showing how PXGF chunks of different type are ordered in a stream/file. Below are some notes to the developer to keep in mind when using the PXGF format in an application.

PXGF Chunk format. Cross section of typical stream.

Ø The PXGF framework for streaming and storage is designed to be extensible. Different applications require different information and if this information is not available in a stream, then that application will not be able to process that stream successfully. Just because an application uses the PXGF format doesn't mean that it will be able to process all PXGF streams or files. For a particular project care should be taken to ensure that all necessary chunks are included.

Ø It is recommended that meta data like the sample rate and packing description be sent every second. This allows state information to be recovered if synchronization is lost and makes it possible to process large files from the middle of the file.

Ø Only data from one data source and of one format must be included in each stream or file. Current formats include “SSIQ” for single channel data and “GSIQ” for multi-channel data. The format used in files should be indicated using the SOFH chunk. The format name may also be used for the file extension to allow visual discrimination of different files.

Ø State information is accumulated by an application by reading different chunks sequentially. If synchronization is lost, state information needs to be reset. This is why it is essential to resend meta data every second.

Ø It is necessary to be able to distinguish between continuous data and block data where only part of the time data is available. Data chunks contain timestamps to enable detection of discontinuities. A chunk has also been defined to indicate discontinuities in the time data, namely the "IQDC" chunk.

Ø Playback control is essential for the off-line analysis of files, however due to the stream based design of the PXGF format, playback control is not easily supported. The PXGF format uses data chunks supported by a number of meta chunks that describe the state of the data stream. Before processing data chunks it is necessary to obtain sufficient state information, like the sample rate, by processing the necessary chunks in the data stream. The use of an index file has been proposed as a possible solution to the problem of playback control. By reading an index file an application could determine over what period the recording was made and determine where to start processing the stream to play back a particular section.

Ø C++ and Java libraries have been developed for the writing and reading of PXGF streams. The libraries take care of synchronization and formatting issues; they do not provide or dictate the communication medium.

Ø The PXGF streaming format does not provide any mechanism for communication between the source of the data stream and the application receiving the data stream. The PXGF stream therefore represents a unidirectional flow of information from the source to the sink of the stream.

Ø Applications that process PXGF input streams should not make assumptions about the data. For example, if the sample data were being sent using the SSIQ chunk the application should wait for a SIQP chunk to determine the packing of the data rather than assuming a particular packing.