Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ CellB(3) — SunOS 5.6

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

xil_cis_get_attribute(3)

xil_cis_create(3)

xil_cis_put_bits(3)

xil_cis_put_bits_ptr(3)

xil_cis_get_bits_ptr(3)

xil_compress(3)

xil_decompress(3)

CellB(3)

NAME

CellB − XIL driver for CellB video compression/decompression

DESCRIPTION

CellB is a video compression format based on the techniques of block truncation coding and vector quantization.  It is well suited for video conferencing, providing fast encoding as well as decoding.  Even though it uses interframe compression, it guarantees that all cells are intraframe encoded periodically, allowing for dropped frames. 

Creating a CellB CIS

To compress a compressed image sequence (CIS) with the XIL CellB compressor, specify "CellB" for the compressorname argument in xil_cis_create(3). 

Getting and Setting CellB Attributes

Use xil_cis_get_attribute(3) and xil_cis_set_attribute(3) to get and set CellB CIS attributes.  These attributes are as described in the following sections.  Refer to the example section for additional information. 

CellB Attributes

The following paragraphs describe the CellB CIS attributes available with the XIL library. All structures and enumerations are defined via xil.h.  Note that some attributes are "set-only" and others are "get-only."  This is noted under the Access heading for each attribute. 

Note that if you are setting an attribute and that attribute is a structure, you must pass the address of that structure.  If you are getting an attribute, you must always pass its address. 

WIDTH

Description Sets the frame width of the encoded bitstream.  It is only necessary to set this attribute to decompress a bitstream that has been input via a call to xil_cis_put_bits(3) or xil_cis_put_bits_ptr(3). 

Access set

Type integer

HEIGHT

Description Sets the frame height of the encoded bitstream.  It is only necessary to set this attribute to decompress a bitstream that has been input via a call to xil_cis_put_bits(3) or xil_cis_put_bits_ptr(3). 

Access set

Type integer

IGNORE_HISTORY

Description CellB bitstreams do not contain "key" frames, i.e. frames which can be reconstructed without reference to other frames in the CIS.  In general, this means that these bitstreams are not randomly seekable, because it is expensive to back up far enough so that all cells/macroblocks can be properly decoded for the frame you want to seek to.  By setting IGNORE_HISTORY to TRUE, you inform the decoder that it should reconstruct frames after a seek, without decoding the intermediate frames.  This will, of course produce invalid results for some cells. The results will eventually self-correct after several frames as new values for the cells are calculated.  Setting this attribute to TRUE allows applications to trade some temporary decoding errors to achieve fast seeks. 

Values FALSE: the decoder sets the RandomAccess attribute of such CISs to FALSE (i.e., xil_cis_get_random_access(3) returns FALSE), and it becomes impossible to seek backwards.  Also, seeks forward will actually decode all intermediate frames, instead of just jumping to the appropriate location and decoding the sought frame.  TRUE: (i.e., xil_cis_get_random_access(3) returns TRUE), seeking backwards is possible, and forward seeks may not decode the intermediate frames.  After an IGNORE_HISTORY seek, the decoded picture may have some bad cells (macroblocks).  As these are encoded in subsequent frames, these will "twinkle" in. 

Type Boolean

Access set/get

Default FALSE

ERRORS

For a complete list of XIL error messages by number, consult Appendix B of the XIL Programmer’s Guide. 

EXAMPLES

The following example opens and closes a CellB CIS using the XIL library:

XilSystemState State;
XilCis cis;
State = xil_open();
cis = xil_cis_create(State, "CellB");
 -- calls to CellB-specific compression routines --
 xil_cis_destroy(cis);
xil_close(State);

NOTE

The CellB bitstream definition (unlike the one for H261(3)) does not define a maximum number of frames before a cell must be encoded in the bitstream.  However, the encoder that comes with the XIL library does enforce this behavior. 

SEE ALSO

xil_cis_get_attribute(3), xil_cis_create(3), xil_cis_put_bits(3), xil_cis_put_bits_ptr(3), xil_cis_get_bits_ptr(3), xil_compress(3), xil_decompress(3). 
 

SunOS 5.6  —  Last change: 03 June 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026