VencH264_src
所属分类:DSP编程
开发工具:Unix_Linux
文件大小:1650KB
下载次数:7
上传日期:2012-03-17 12:06:18
上 传 者:
格物而致知
说明: PNX TriMedia DSP pnx100x 上面的H.264编码器源码
(PNX TriMedia DSP pnx100x H.264 encoder source code)
文件列表:
VencH264 (0, 2010-11-25)
VencH264\sd (0, 2010-11-25)
VencH264\prod (0, 2010-11-25)
VencH264\sd\avs (0, 2010-11-25)
VencH264\prod\mptk (0, 2010-11-25)
VencH264\sd\avs\vencsw (0, 2010-11-25)
VencH264\prod\mptk\apps (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps (0, 2010-11-25)
VencH264\prod\mptk\apps\exSecurity (0, 2010-11-25)
VencH264\prod\mptk\apps\exH264Codec (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282 (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264CoreIptm3282 (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264 (0, 2010-11-25)
VencH264\prod\mptk\apps\exSecurity\src (0, 2010-11-25)
VencH264\prod\mptk\apps\exSecurity\cfg (0, 2010-11-25)
VencH264\prod\mptk\apps\exH264Codec\docs (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\src (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\inc (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\ex (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264CoreIptm3282\lib (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264CoreIptm3282\inc (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264\src (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264\inc (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264\docs (0, 2010-11-25)
VencH264\prod\mptk\apps\exSecurity\src\version (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\ex\src (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\ex\inc (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\ex\bin (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264CoreIptm3282\lib\tm_5_psos_el_tm3282 (0, 2010-11-25)
VencH264\sd\avs\vencsw\comps\tmVencH264\src\version (0, 2010-11-25)
VencH264\prod\mptk\apps\exSecurity\makefile (12432, 2010-03-04)
VencH264\prod\mptk\apps\exSecurity\diversity.mk (2442, 2009-07-08)
VencH264\prod\mptk\apps\exH264Codec\sys_conf.h (36684, 2009-07-07)
VencH264\prod\mptk\apps\exH264Codec\makefile (7366, 2009-09-30)
VencH264\prod\mptk\apps\exH264Codec\exH264Codec.c (149343, 2010-02-04)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\makefile (19460, 2009-09-17)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\make3282_hw.mk (10902, 2009-10-28)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\make3282.mk (10888, 2009-09-17)
VencH264\sd\avs\vencsw\comps\tmVencH264Coretm3282\diversity.mk (961, 2009-09-17)
... ...
Readme for exSecurity
April 2009
The exSecurity application is designed to demonstrate the PNX1005
operating at full capacity by encoding 8 CIF resolution streams into H2***
format. It simultaneously decodes one stream, and displays all on a 3x3
matrix in a 720p display. exSecurity provides an extremely heavy load on
the pnx1005 and the program is carefully optimized to work most
efficiently. Some of these things are unorthodox by TriMedia standards.
If you stray too far from the "usual" mode of operation, you can lose some
of this efficiency.
This readme is a condensed version of the information found in the "Getting
Started with Surveillance Tool Kit" section of the Getting Started manual
delivered with NDK 6.0. Please refer there for more information.
Please also refer to the latest release notes where any known problems might be
recorded.
To Build exSecurity:
We most often test with an assert build. Using a
trace or debug build will have a big effect on performance. We often use
a TimeDoctor build, though we have noted that dumping the TimeDoctor
buffer can result in a brief underrun. Note the _dh2***e diversity. This
selects the H2*** decoder that is matched to the encoder.
set _TMTCSHOST=WinNT
set _TMTGTREL=assert
set _TMDIVERSITY=_dh2***e_pnx1005_sp_
set _APP=exSecurity
title %_APP% (proj=%_TMPROJECT%) - %_TMDIVERSITY% (%_TMTGTREL%)
build_exeWin -gh %_TMROOT%/prod/mptk/apps/exSecurity 2>&1 | tee logs/Security_ad.txt
To Run exSecurity:
Be sure your hardware is up to date. exSecurity will not reach its full
potential if the CPU is running at less than 400MHz or if the memory is
running at less than 266MHz. The bootscript generator in NDK 6.0 is updated
and those bootscripts work.
As of NDK 6.0, we have not tested with PAL sources. Use NTSC sources.
Key command line switches are "-ns" and "-ds". These configure the number of
encoders and decoders, respectively. -ns 8 and -ds 1 is the commom case.
You can specify less encoders to get a lower CPU load. A typical command line is
-ns 8 -file c:\temp\test -bitrate 512000 -ds 1
Which writes the 8 encoded files to c:\temp, with the prefix "test". The 8
files are named test0.h2*** through test7.h2***. When -ds is specified, the
decode waits a few seconds until a file has been written, and then it begins
decoding that file. So it's typical for the decode file to be a few seconds
behind the live feed.
The -nofile option is interesting. It disables file writing, and hence -ds
also will not work. But the command line
-ns 8 -nofile
is useful to isolate the operation of the encoders from the file writing system.
exSecurity queries the BSL to find out about availabel inputs. On a "test" board
with Techwells for input, these 8 inputs are chose. On a demo board, CVBS is the
default. If you plug in an HDMI input (NTSC format), this will be used.
The complete set of switches is reproduced here.
Command line switches supported by exSecurity:
-ns
Encode N streams. 1-8.
-file
Output file names begin with this base, including path.
-nofile
Disable file output for long term testing.
-videoOutMode|-mode
is xx
e.g. 720x480x60p
e.g. 720x576x25i (PAL)
Default: auto detect best match
-videoInMode|-mode
is xx
e.g. 720x480x60p
e.g. 720x576x25i (PAL)
-bitrate
bitrate in bits per second.
-ds
Number of decoders to run.
-sl
Sets tmTr unit to level for debugging
-sf [.dsioELel12345crw]+
Sets tmDbg unit flags for debugging
-verboseError
Displays all component error callbacks on the console
-crashOnFatal
Disable interrupts and loop forever on a fatal error (useful for diagnosing errors in ISR code)
-ramdisk
RAM disk size, in megabytes. At least 5 MB, default is 8 MB.
All options are case-insensitive
How exSecurity Works:
The basic requirement for exSecurity is that it must:
- accept 8 D1 streams
- Display them slightly scaled down in a 3x3 matrix on a 720p monitor
- Encode the 8 streams to H2*** at 30fps CIF
- Decode one H2*** stream, CIF resolution at 30fps.
The encoder and the decoder have approximately equal loads near 40MHz each.
9 streams at 40Mhz is 360MHz, which is a 90% load on a 400MHz PNX1005.
With such a heavy load, there is little room for overhead. Well known
academic papers have long ago shown (Google Liu and Layland) that a system
using a priority based scheduler cannot guarantee it will meet its deadlines
if the load is more than 80% of the CPU. For this reason, the 8 encoders
are all run deterministically in one task. We call this task the "task manager".
The decoders run for a few frames on each stream before switching to another
stream. After the encoding is complete, the decoder task is allowed to run.
The decoder task runs at a lower priority, so if the system is starved for MHz,
the decoder suffers.
近期下载者:
相关文件:
收藏者: