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

近期下载者

相关文件


收藏者