LIP6421CORE_video_decoder
所属分类:VHDL/FPGA/Verilog
开发工具:VHDL
文件大小:12383KB
下载次数:12
上传日期:2011-02-20 14:50:35
上 传 者:
joneychen12
说明: Video decoder verilog source code
文件列表:
bench\main.v (5444, 2007-01-12)
bench\utils\CVS\Entries (21, 2007-01-12)
bench\utils\CVS\Repository (36, 2007-01-12)
bench\utils\CVS\Root (55, 2007-01-12)
bench\utils\CVS\Template (0, 2007-01-12)
bench\utils\bin\binary_vect_common.pl (2090, 2005-04-25)
bench\utils\bin\binary_vect_parse.pl (1309, 2004-07-22)
bench\utils\bin\h264_barrel_shifter.pl (7718, 2005-02-11)
bench\utils\bin\h264_cs_intra.pl (892, 2004-10-15)
bench\utils\bin\h264_huffman_cabac.pl (983, 2004-07-22)
bench\utils\bin\h264_huffman_cpu.pl (18781, 2005-04-05)
bench\utils\bin\h264_huffman_iscan.pl (1964, 2004-10-20)
bench\utils\bin\h264_huffman_mvp.pl (3736, 2004-10-20)
bench\utils\bin\h264_intra_pmem.pl (1555, 2004-10-15)
bench\utils\bin\h264_iscan_it.pl (6651, 2004-10-20)
bench\utils\bin\h264_mvp_cs.pl (2512, 2004-11-10)
bench\utils\bin\h264_mvp_dbk.pl (2259, 2004-10-15)
bench\utils\bin\h264_mvp_dram_read.pl (4742, 2004-10-28)
bench\utils\bin\h264_mvp_dram_write.pl (4851, 2004-10-28)
bench\utils\bin\h264_mvp_pmem.pl (812, 2004-10-15)
bench\utils\bin\h264_pmem_dbk_cmd.pl (755, 2004-10-15)
bench\utils\bin\h264_xform_intra.pl (1423, 2004-10-15)
bench\utils\bin\Makefile.divx3 (1498, 2007-01-12)
bench\utils\bin\Makefile.dv (259, 2007-01-12)
bench\utils\bin\Makefile.h264 (7922, 2007-01-12)
bench\utils\bin\Makefile.jpeg (747, 2007-01-12)
bench\utils\bin\Makefile.mpeg2 (273, 2007-01-12)
bench\utils\bin\Makefile.mpeg4 (174, 2007-01-12)
bench\utils\bin\Makefile.wmv (4878, 2007-01-12)
bench\utils\bin\vc9_dbk_cmd.pl (439, 2004-09-29)
bench\utils\bin\vc9_dbk_imem.pl (436, 2004-09-29)
bench\utils\bin\vdec_function.bash (3966, 2007-01-12)
bench\utils\bin\video_decoder_graph.pl (6372, 2005-11-21)
bench\utils\bin\wmfdecode_vc.exe (1585233, 2007-01-12)
bench\utils\bin\wmv_command_seq.pl (1483, 2004-10-20)
bench\utils\bin\wmv_huffman_iscan.pl (1263, 2004-06-24)
bench\utils\bin\wmv_idct_mc.pl (1704, 2004-10-21)
bench\utils\bin\wmv_iquant_idct.pl (999, 2004-10-21)
bench\utils\bin\CVS\Entries (1664, 2007-01-12)
bench\utils\bin\CVS\Repository (40, 2007-01-12)
... ...
Test process of the video decoder
This document explains the process of validation of the video decoder for the
tango chip family.
This is a first version of this document, the following sections need more
details.
* introduction
* codec supported
* reference software
* streams
* validation process
****************************************************************
* Introduction *
****************************************************************
The process is similar for each codec :
the bitstreams are decoded with the reference software implementation of the
codec and by the hardware solution.
The decoding results are compared bit to bit.
In order to limit the huge amount of the uncompressed bitstream and to save the
time of the transfer of big image, a checksum of the luma component and the
chroma component is computed for each picture.
In the software part, the computation of the checksum is either integrated into
the reference software or done in a second pass from the YUV output pictures.
In the hardware implementation, the checksum can be computed either in software
or with an hardware module. The hardware module is not present in tango and the
older chips.
The decoding order is used for the image comparison, a checksum difference shows
rapidly if the reference and the implementation mismatch and which is the first
image.
For the codec in which the display order is not trivial (H2***) the checksum are
also generated in display order. Therefore, the test process is done in decode
order first to validate the decoding of the bitstream and then in display order
to validate the output mode.
****************************************************************
* Codec supported *
****************************************************************
The following codec can be decoded with the video decoder :
The video decoder decodes the elementary bitstreams
MPEG1
MPEG2
MPEG4
H2***
VC1
JPEG
and the demuxed files DIVX 3.1 (from an AVI) and WMV9 (from an ASF).
****************************************************************
* Reference software *
****************************************************************
The source of the reference software are on CVS in codec_tools/.
These sources have been enhanced with a lot of debug information used for the
hardware development.
A compiled version of these decoders can generally be found in the bench/utils
directory of the video decoder.
A regular version of these decoders, without the hardware debug information,
so much faster, can be found in /utils/em8xxx/reference/
These binary versions of the software reference are used for the generation of
the reference checksum.
In /utils/em8xxx/reference/i686/bin :
mpeg2decode MPEG 1/2 decoder
vm_dec MPEG 4 decoder
divxdecode DIVX decoder
wmfdecode_vc.exe WMV9/VC1 decoder microsoft version
ldecod H2*** decoder, JVT reference software
vc1_decoder VC1 decoder, ARM reference software
The script build_reference_software.sh checkout the sources of the reference
software and compile the latest reference software that can be used for the
conformance verification
****************************************************************
* Streams *
****************************************************************
The streams used for the verification can be found in /media.
Each stream is in a directory with the same name as the file of the stream.
The streams are sorted in subdirectory to figure out where they come from.
The elementary video bitstreams are in /media/elementary/
WMV9 streams are in /media/asf/wmv9
DIVX3.1 streams are in /media/avi/divx3.11
Usually, an hardware and conformance directories are presents.
The hardware directory contains bitstreams generated or found by the hardware
team. These streams are small or stress the decoder to fast up the development
phase and cover specific cases.
The conformance directory contains the conformance bitstreams for the specific
codec.
Then, depending of the codec, real streams or test streams can be found in the
directory. These streams are not always conform with the standard be can be used
for demo or stressing the decoder.
Here is a source of the bitstreams for each codec :
MPEG 1/2 : conformance bitstream from Berkeley
MPEG 4 : MPEG-4 Platform Verification Bitstream Development Project
WMV9 : artificial bitstreams from Microsoft
H2*** : conformance bitstream from JVT
test streams from Allegro
real streams from Harmonic, Nero, Tandberg...
VC1 : artificial streams from Microsoft
conformance streams from ARM
****************************************************************
* Validation process *
****************************************************************
The script build_playvideo.sh retrieves the current source from CVS and compile
playvideo which is the application used for the validation of the video decoder.
This application decodes one stream and saves the YUV or the checksum
of the decoded image, it can also decode a list of stream of a codec and save
the checksum in a file.
4 main scripts used for the validation process can be found in the
checkvideo directory :
* generate_config_files : generate a config_.txt file for a codec. This
file is a list of reference streams to decode for the validation of the codec.
* generate_checksum : this script has been used to generate the checksum of the
reference streams. This script can be used to generate new checksum or to
regenerate the checksum of bitstreams.
* check_video_conformance : this script performs the decoding of the list of
streams generated by the script generate_config_files
* check_decoding_results : this script compares the results of
check_video_conformance against the reference checksum and outputs a summary
in the results directory.
All the streams are not matching perfectly between the reference software and
the hardware implementation.
The possible mismatch exists mainly because of errors in the streams or unfixed
bug in the software reference or unsupported feature in the hardware
implementation.
The results of the test for each codec can be found in the test_results,
the passing and failing files are listed for each codec and each chip.
Feel free to send any questions or requests to
近期下载者:
相关文件:
收藏者: