Compaq Multimedia Services
for OpenVMS Alpha
Programmer's Guide


Previous Contents Index

B.1.5 Additional FullVideo Supreme JPEG Option Module Restrictions

This section describes additional restrictions to the FullVideo Supreme JPEG option module.

B.1.5.1 FullVideo Supreme JPEG Memory Usage

Buffers or regions of memory passed to FullVideo Supreme JPEG devices can only be registered once. For instance, the compression buffer from an analog video capture ( videoStreamAddBuffer ) cannot be used as the input buffer for decompression ( ICDecompress ). X image output buffers cannot be used as compression buffers for other operations.

Since the FullVideo Supreme JPEG option shares a command queue with low-level software and the details of the low-level management are difficult to map to the high-level multi-application environment, it is almost impossible to guarantee from the low level that no buffer will be used for two operations concurrently or while data is stale. The FullVideo Supreme JPEG device software also makes the restriction that a particular buffer may only appear once in the system at any given time.

In short, use separate buffers for each type of operation ( videoStreamAddBuffer , ICDecompress , ICCompress ) and for each type of buffer (input, output, compress, uncompress). If data needs to be passed from one operation to another, the application must copy the data.

B.1.5.2 FullVideo Supreme JPEG Image Size

The sizes of images are restricted as follows:

For all standards:

During analog video capture:

During analog video playback:

During compression and decompression:

B.1.5.3 FullVideo Supreme JPEG Mirroring

Mirroring is accomplished in software and will significantly slow down operations. Since analog video capture and playback operations depend on a set time interval, software mirroring might cause the next capture or playback operation to miss the next capture or playback slot, delaying it until the next time slot. For instance, if software mirroring slowed down a capture operation so that the next NTSC frame could not be captured within the 30 frames per second period, then the next capture operation would stall until 2 frame periods later, causing all other FullVideo Supreme JPEG operations (such as decompressions) to stall as well, since there is only one hardware queue. If mirroring is desirable and frame rates are important, Compaq suggests that applications perform mirroring in software on the application side. Sample code may be provided in a future release.

B.1.5.4 FullVideo Supreme JPEG Buffer Overwriting

Some FullVideo Supreme JPEG operations will overwrite the incoming data. In particular, when the input to an operation is an RGB image, the input buffer may be used as a scratch buffer by the hardware. This will happen with compression or decompression from RGB or during analog video playback of BI_BITFIELDS with RGB. Mirroring operations may also use the input buffer as a scratch buffer. If the input data is critical to retain, copy the data before passing it to Multimedia Services for OpenVMS.

B.1.5.5 FullVideo Supreme JPEG Video Fields

The Microsoft JPEG DIB standard specifies that when providing only single video fields instead of full video frames, odd fields are to be used. The FullVideo Supreme JPEG card, however, uses even fields when only one field is used on video output.

B.1.5.6 RGB and YUV Decompression for the FullVideo Supreme JPEG Option

On the FullVideo Supreme JPEG card, RGB and YUV decompressed to 8-bit dithered format cannot be run simultaneously with analog video playback operations. Currently, simultaneous analog video playback and these decompressed formats are not permitted due to hardware restrictions. The analog video playback interface videoOpen will return DV_ERR_ALLOCATED if these decompression operations are already in progress, and the decompression interface ICDecompressBegin will return ICERR_ERROR if analog video playback operations are already in progress.

No similar restrictions exist for the compression interfaces.

B.1.5.7 FullVideo Supreme JPEG Quality

Due to a hardware limitation, the highest quality factor for JPEG compression on the FullVideo Supreme JPEG option module is 8984. All quality factors from 8985 to 10000 will be treated as 8984 when JPEG data is encoded, and you will not see any quality improvement as values rise above 8984.

B.1.5.8 FullVideo Supreme JPEG State Information

The FullVideo Supreme JPEG option module does not deal with state information through the ICGetState and ICSetState functions. It does not store or make available any state information but always returns zero bytes for both get and set operations.

B.1.5.9 FullVideo Supreme JPEG Setting Port Numbers

The videoSetPortNum function will return an error for video output devices because all ports are active for video output. Also, if the standard is set to an SVIDEO standard, then the videoSetPortNum function will return an error because there is only one SVIDEO port, and it cannot be selected.

B.1.6 FullVideo Supreme JPEG Video Field Mode Support

The video interfaces videoGetFieldMode and videoSetFieldMode provide better control over frame and field modes, and in field mode, identify which field is the target of operation. The FullVideo Supreme JPEG option module supports the following modes:
Mode NTSC PAL/SECAM
FRAME Yes No
EVEN_ONLY Yes Yes
ODD_ONLY No No
BOTH Yes Yes

Note

If alternate odd and even fields are captured in a dithered format, the quality of the resulting frame will not be as good as the quality from a captured frame. Dithered images captured from the FullVideo Supreme option modules in even and odd field modes will look grainy. It is possible to capture the images in YUV format and then dither them by calling the ICDecompress function to convert the YUV format to dithered format.

B.1.6.1 Field Mode Dominance Adjustment --- FullVideo Supreme JPEG Option Module

The FullVideo Supreme JPEG option module allows adjustment of video capture field dominance. By default, this option module uses odd dominance for video capture. It uses odd dominance for video playback, but the dominance cannot be adjusted.

The FullVideo Supreme JPEG option module that supports this can be determined by examining the part number on the module itself:

Revision A 54-23296-04.A01
Revision B 54-23296-04.B01

B.2 FullVideo Supreme (AV301) Option Module

The FullVideo Supreme option module video card enables you to produce multimedia applications using video. You can capture, view, store, and display full-motion video images, and incorporate them into your documents and applications.

This section describes device details for the FullVideo Supreme option module.

B.2.1 FullVideo Supreme Option Module Restrictions

The following restriction is associated with the FullVideo Supreme option module: simultaneous video capture and playback operations are not supported. The device can be opened as either a capture or a playback channel at any given time.

B.2.2 FullVideo Supreme Connectors

Figure B-2 depicts the back of the FullVideo Supreme card.

Figure B-2 FullVideo Supreme Connectors


B.2.3 FullVideo Supreme Video Device Supported Video Formats

The FullVideo Supreme option module supports the video formats described in Table B_6 and Table B-7. The tables describe the compression and bitcount as used in the BITMAPINFOHEADER data structure.

Chapter 7 of this guide contains details of the fields in the BITMAPINFOHEADER data structure.

Note

The following applies to Table B-6. For 24-bit BICOMP_DECXIMAGEDIB and 32-bit BI_BITFIELDS input, software converts this format into BICOMP_DECYUVDIB data, which the hardware uses as input. For 32-bit BI_BITFIELDS input, this format only supports 8-bit masks in RGB or BGR order with 8 bits of padding.

Table B-6 FullVideo Supreme (AV301) Decompression Formats Supported
Input   Output  
biCompression biBit-
Count
biCompression biBit-
Count
BICOMP_DECXIMAGEDIB 1 24 BICOMP_DECXIMAGEDIB 8
BI_BITFIELDS 1,2 32 BICOMP_DECXIMAGEDIB 8
BICOMP_DECYUVDIB 16 BICOMP_DECXIMAGEDIB 8
BICOMP_DECXIMAGEDIB 24 BICOMP_DECXIMAGEDIB 8
BI_BITFIELDS 32 BICOMP_DECXIMAGEDIB 8
BICOMP_DECYUVDIB 16 BICOMP_DECXIMAGEDIB 8


1Software converts this format into BICOMP_DECYUVDIB data, which the hardware uses as input.
2These BI_BITFIELDS formats only support 8-bit masks in RGB or BGR order with 8 bits of padding.

Note

The following applies to Table B-7. For 24-bit BICOMP_DECXIMAGEDIB and 32-bit BI_BITFIELDS formats, the hardware actually captures BICOMP_DECYUVDIB data, and software is used to convert it into this format. For 32-bit BI_BITFIELDS format, this format only supports 8-bit masks in RGB or BGR order with 8 bits of padding.

Table B-7 FullVideo Supreme (AV301) Analog Video Capture Formats Supported
biCompression biBitCount
BICOMP_DECXIMAGEDIB 8
BICOMP_DECXIMAGEDIB 1 24
BICOMP_DECYUVDIB 16
BI_BITFIELDS 1,2 32


1The hardware actually captures BICOMP_DECYUVDIB data and software is used to convert it into this format.
2These BI_BITFIELDS formats only support 8-bit masks in RGB or BGR order with 8 bits of padding.

The FullVideo Supreme option module supports video output of the supported video capture formats as shown in Table B-8.

Note

The following applies to Table B-8. For 24-bit BICOMP_DECXIMAGEDIB and 32-bit BI_BITFIELDS formats, the FullVideo Supreme option modules do not have true 24-bit output capability. Data is converted from 8/8/8 bits of blue/green/red to 5/6/5 bits of blue/green/red. In addition, BI_BITFIELDS formats, whose color masks indicate RGB, will use software to convert to BGR. For true color video output, first convert BGR data to 16-bit YUV. For 32-bit BI_BITFIELDS format, this format only supports 8-bit masks in RGB or BGR order with 8 bits of padding.

Table B-8 FullVideo Supreme (AV301) Analog Video Playback Formats Supported
biCompression biBitCount
BICOMP_DECXIMAGEDIB 1 24
BICOMP_DECXIMAGEDIB 8
BICOMP_DECYUVDIB 16
BI_BITFIELDS 1,2 32


1The FullVideo Supreme option modules do not have true 24-bit output capability. Software converts data from 8/8/8 bits of blue/green/red to 5/6/5 bits of blue/green/red. In addition, BI_BITFIELDS formats, whose color masks indicate RGB, will use software to convert to BGR. For true color video output, first convert BGR data to 16-bit YUV.
2These BI_BITFIELDS formats only support 8-bit masks in RGB or BGR order with 8 bits of padding.

B.2.4 Additional FullVideo Supreme Option Module Restrictions

This section describes additional restrictions to the FullVideo Supreme option module.

B.2.4.1 FullVideo Supreme Memory Usage

Buffers or regions of memory passed to FullVideo Supreme devices can only be registered once. For instance, the output JPEG data buffer from an analog video capture ( videoStreamAddBuffer ) cannot be used as the input buffer for decompression ( ICDecompress ). X image output buffers cannot be used as JPEG buffers for other operations.

Since the FullVideo Supreme option shares a command queue with low-level software and the details of the low-level management are difficult to map to the high-level multi-application environment, it is almost impossible to guarantee from the low level that no buffer will be used for two operations concurrently or while data is stale. The FullVideo Supreme device software also makes the restriction that a particular buffer may only appear once in the system at any given time.

In short, use separate buffers for each type of operation ( videoStreamAddBuffer , ICDecompress , ICCompress ) and for each type of buffer (input, output, compress, uncompress). If data needs to be passed from one operation to another, the application must copy the data.

B.2.4.2 FullVideo Supreme Image Size

The sizes of images are restricted as follows:

For all standards:

During analog video capture:

During analog video playback:

B.2.4.3 FullVideo Supreme Mirroring

Mirroring is accomplished in software and will significantly slow down operations. Since analog video capture and playback operations depend on a set time interval, software mirroring might cause the next capture or playback operation to miss the next capture or playback slot, delaying it until the next time slot. For instance, if software mirroring slowed down a capture operation so that the next NTSC frame could not be captured within the 30 frames per second period, then the next capture operation would stall until 2 frame periods later, causing all other FullVideo Supreme operations (such as decompressions) to stall as well, since there is only one hardware queue. If mirroring is desirable and frame rates are important, Compaq suggests that applications perform mirroring in software on the application side. Sample code may be provided in a future release.

B.2.4.4 FullVideo Supreme Buffer Overwriting

Some FullVideo Supreme operations will overwrite the incoming data. In particular, when the input to an operation is an RGB image, the input buffer may be used as a scratch buffer by the hardware. Mirroring operations may also use the input buffer as a scratch buffer. If the input data is critical to retain, copy the data before passing it to Multimedia Services for OpenVMS.

B.2.4.5 RGB and YUV Decompression for the FullVideo Supreme Option Module

On the FullVideo Supreme card, RGB and YUV decompressed to 8-bit dithered format cannot be run simultaneously with analog video playback operations. Currently, simultaneous analog video playback and these decompressed formats are not permitted due to hardware restrictions. The analog video playback interface videoOpen will return DV_ERR_ALLOCATED if these decompression operations are already in progress, and the decompression interface ICDecompressBegin will return ICERR_ERROR if analog video playback operations are already in progress.

No similar restrictions exist for the compression interfaces.


Previous Next Contents Index