NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Digital Video Test Bench (DVTB)
Contents
Overview[edit]
The Digital Video Test Bench (DVTB) is a generic test bench that can be used to test codec servers, drivers or any system level use case. It allows to configure the codecs and to select a variety of inputs (camera, line-in, file) and outputs (display, line-out, file). Scripting capabilities make it very flexible for exploring system level use cases and general testing. DVTB can also be extended to support application specific use cases by adding new handlers.
This test bench is available on Linux and DSP/BIOS DVSDK platforms.
Where can I get it?[edit]
The DVTB can be found in two different packages
This DVTB supports the codecs provided with the DVSDK. The source code is provided to rebuild it. A release and a debug version are generated. The debug version provides more detailed debug information.
- Evaluation Codec Combo
The codec packages received throught the codec evaluation program include a DVTB that supports only the specific codec. A release and a debug version are provided. Source code is not provided.
How can I use it?[edit]
The DVTB can be used in command line mode or in scripting mode.
Commands, Classes and Parameters[edit]
All commands in DVTB have the following syntax:
<Command> <Class> [Options]
The following commands are supported:
- func: Functionality - Execute data flows
- setp: Set parameter
- getp: Get parameter
The entity on which the commands operate is called <Class>. The classes can be grouped in peripheral classes and codec classes.
The peripheral classes are:
- audio: Audio device specific parameters.
- vpbe: Video Processing Back End (VPBE) specific parameters
- vpfe: Video Processing Front End (VPFE) specific parameters
- vdce: Video data conversion engine (VDCE) specific parameters
The Codec Engine class is:
- engine: Codec Engine parameters
There are multiple codec classes included for different XDM versions across different platforms. The codec clasees for XDM 0.9 compliant codecs are:
- viddec: Video Decoder XDM version 0.9 specific parameters
- videnc: Video Encoder XDM version 0.9 specific parameters
- auddec: Audio Decoder XDM version 0.9 specific parameters
- audenc: Audio Encoder XDM version 0.9 specific parameters
- sphdec: Speech Decoder XDM version 0.9 specific parameters
- sphenc: Speech Encoder XDM version 0.9 specific parameters
- imgdec: Image Decoder XDM version 0.9 specific parameters
- imgenc: Image Encoder XDM version 0.9 specific parameters
For XDM 1.0 and 1.2 compliant codecs, the classes are:
- viddec2: Video Decoder XDM version 1.2 specific parameters
- videnc1: Video Encoder XDM version 1.0 specific parameters
- auddec1: Audio Decoder XDM version 1.0 specific parameters
- sphdec1: Speech Decoder XDM version 1.0 specific parameters
- sphenc1: Speech Encoder XDM version 1.0 specific parameters
- imgdec1: Image Decoder XDM version 1.0 specific parameters
- imgenc1: Image Encoder XDM version 1.0 specific parameters
Each <class> has a set of specific parameters. These parameters must be provided in the <Option> field. The list of parameters is provided in the DVTB User's Guide located in dvtb_n_nn_nnn/docs
DVTB Command Line Mode[edit]
Start DVTB (release version)
root@156.117.95.135:/opt/dvsdk/dm6446# ./dvtb-r
Get the DVTB command prompt:
[DVTB-LOG]: dvevmStEngine.c: Codec Engine Runtime initialized ----------------------------------------------------------------------------- ===================***********************************======================= Digital Video Test Bench For DM6446 ( DVTB ) Ver 1.12.000 ===================**********************************======================== ----------------------------------------------------------------------------- <DVTB> $
We can get the list of the classes supported in this release as follows:
<DVTB> $ getp [DVTB-ERROR]: dvevmStGetParam.c: Usage: getp <auddec|sphenc|sphdec|videnc|viddec |mp3basedec> <option> FAIL: getp
This release supports the six classes above. The getp command applied to a class will provide the class parameters. The default configuration parameters of the videnc class are:
<DVTB> $ getp videnc codec => h264enc encodingPreset => 0 rateControlPreset => 1 maxHeight => 480 maxWidth => 720 maxFrameRate => 30000 maxBitRate => 4000000 dataEndianness => 1 maxInterFrameInterval => 0 inputChromaFormat => 4 inputContentType => 0 inputHeight => 480 inputWidth => 720 refFrameRate => 30000 targetFrameRate => 30000 targetBitRate => 4000000 intraFrameInterval => 30 generateHeader => 0 captureWidth => 0 forceIFrame => 0 numFrames => 30 PASS: getp
The followind commands change some of the parameters and encode an input yuv file, input.yuv with the MPEG4 Encoder. The output is stored in the file output.mpeg4
<DVTB> $ setp engine name encode PASS: setp <DVTB> $ setp videnc codec mpeg4enc PASS: setp <DVTB> $ setp videnc maxBitRate 2000000 PASS: setp <DVTB> $ setp videnc targetBitRate 2000000 PASS: setp <DVTB> $ func -s input.yuv -t output.mpeg4
DVTB Scripting Mode[edit]
Instead of using the command line, it is possible to write a script to control the DVTB. Sample dvtb scripts are provided in dvtb_n_nn_nnn/dvtb-scripts .
The following script has same functionality as the commands above:
setp engine name encode setp videnc codec mpeg4enc setp videnc maxBitRate 2000000 setp videnc targetBitRate 2000000 func -s input.yuv -t output.mpeg4
Run the script:
root@156.117.95.135:/opt/dvsdk/dm6446# ./dvtb -s dvtb_script.sh
What are the DVTB versions/features in DVSDK 1.40?[edit]
The following table provides a summary of the features of the DVTBs included in DVSDK 1.40 (Production release)
Platform | DVTB Version | xDM Support | Extended Param Support |
---|---|---|---|
DM6446 | v 1.13.000 | xDM 0.9 - Video E/D; Audio E/D; Speech E/D | No |
DM355 | v 1.24.000 | xDM 1.2 - Video E/D; Image E/D | Yes |
DM6467 | v 2.13.000 | xDM 1.2 - Video E/D; xDM 0.9 - Audio E/D; Speech E/D | No Except for H264 Encoder |