Previous | Contents | Index |
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:
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 |
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. |
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
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
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.
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. |
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 |
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. |
biCompression | biBitCount |
---|---|
BICOMP_DECXIMAGEDIB | 8 |
BICOMP_DECXIMAGEDIB 1 | 24 |
BICOMP_DECYUVDIB | 16 |
BI_BITFIELDS 1,2 | 32 |
The FullVideo Supreme option module supports video output of the supported video capture formats as shown in Table B-8.
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. |
biCompression | biBitCount |
---|---|
BICOMP_DECXIMAGEDIB 1 | 24 |
BICOMP_DECXIMAGEDIB | 8 |
BICOMP_DECYUVDIB | 16 |
BI_BITFIELDS 1,2 | 32 |
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:
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 |