| synopsis || arguments || prev || next |

kdu_codestream::create

Java: Kdu_codestream::Create

Overload navigation: 1, 2, 3

void create( siz_params * siz)

Java: void Create( Siz_params siz)

[Declared in "../coresys/common/kdu_compressed.h"]

Go to class description.


Synopsis

This third form of the create function is used to create what we refer to as an interchange codestream, for want of a better name. There is no source and no target for the compressed data. Code-blocks are generally pushed into the internal code-stream management machinery with the aid of the kdu_precinct::open_block function and assembled code-stream packets are generally recovered using kdu_precinct::get_packets. The kdu_subband and kdu_precinct interfaces may ultimately be recovered from the top level kdu_codestream interface by exercising appropriate functions to open tiles, and access their tile-components, resolutions, subbands and precincts.

It is perhaps easiest to think of an interchange codestream as an output codestream (see the first form of the create function) without any compressed data target. By and large, code-blocks are pushed into the object in the same manner as they are for an output codestream and this may be accomplished either by the data processing machinery (see "kdu_sample_processing.h") or (more commonly) by handing on code-blocks recovered from a separate input codestream.

There are a number of key points at which the behaviour of an interchange codestream differs sigificantly from that of an output codestream. Firstly, the kdu_precinct interface is accessible only when the internal code-stream management machinery is created for interchange. Moreover, when a precinct is closed (by calling kdu_precinct::close), all of the associated code-block data is discarded immediately, regardless of whether it has been put to any good purpose or not.

Interchange codestreams are primarily intended for implementing dynamic code-stream servers. In such applications, a separate input codestream (usually one with the persistent mode enabled — see set_persistent) is used to derive compressed data on an as-needed basis, which is then transcoded on-the-fly into packets which may be accessed in any order and delivered to a client based upon its region of interest. The precinct size adopted by the interchange codestream object may be optimized for the communication needs of the client-server application, regardless of the precinct size used when compressing the separate input code-stream. Other transcoding operations may be employed in this interchange operation, including the insertion of error resilience information.


Arguments

siz [siz_params *]

Plays the same role as its namesake in the first form of the create function, used to create an output codestream. As in that case, the siz_params object must have been filled out (and finalized) by the caller; an internal copy of the object is made for use by the internal machinery.


| top || synopsis || arguments || prev || next |