Initial Commit

This commit is contained in:
Ethan Hugg 2013-12-09 04:56:50 -08:00
parent 70e5e62f3d
commit 368119aaba
13 changed files with 704 additions and 0 deletions

128
testbin/AutoBuild_Linux.sh Executable file
View File

@ -0,0 +1,128 @@
#!/bin/bash
usage="this file must located in ../testbin/ based on our code structure "
echo $usage
CurDir=`pwd`
EncoderMakeDir="../codec/build/linux/enc/"
DecoderMakeDir="../codec/build/linux/dec/"
VPMakeDir="../processing/build/linux/"
CodecBinDir="../codec/build/linux/bin/"
VPBinDir="../bin/linux"
let "EncoderBuildFlag=1"
let "DecoderBuildFlag=1"
let "VPBuildFlag=1"
MakefileLogFile="${CurDir}/CodecVPBuild.log"
#************************************************
#call Encoder make file
echo "encoder building....."
cd ${EncoderMakeDir}
make clean >${MakefileLogFile}
make >>${MakefileLogFile}
cd ${CurDir}
cd ${CodecBinDir}
if [ ! -e welsenc.a ]
then
let "EncoderBuildFlag=0"
fi
if [ ! -e welsenc.so ]
then
let "EncoderBuildFlag=0"
fi
if [ ! -e welsenc.exe ]
then
let "EncoderBuildFlag=0"
fi
if [ "$EncoderBuildFlag" -eq 1 ]
then
echo "encoder build success!"
else
echo "encoder build failed!"
fi
#************************************************
#call Decoder make file
echo "decoder building....."
cd ${CurDir}
cd ${DecoderMakeDir}
make clean >>${MakefileLogFile}
make >>${MakefileLogFile}
cd ${CurDir}
cd ${CodecBinDir}
if [ ! -e welsdec.a ]
then
let "DecoderBuildFlag=0"
fi
if [ ! -e welsdec.so ]
then
let "DecoderBuildFlag=0"
fi
if [ ! -e welsdec.exe ]
then
let "DecoderBuildFlag=0"
fi
if [ "$DecoderBuildFlag" -eq 1 ]
then
echo "decoder build success!"
else
echo "decoder build failed!"
fi
#************************************************
#call VP make file
echo "VP building....."
cd ${CurDir}
cd ${VPMakeDir}
make clean >>${MakefileLogFile}
make >>${MakefileLogFile}
cd ${CurDir}
cd ${VPBinDir}
if [ ! -e libwelsvp.so ]
then
let "VPBuildFlag=0"
fi
if [ "$VPBuildFlag" -eq 1 ]
then
echo "VP build success!"
else
echo "VP build failed!"
fi
#****************************
cd ${CurDir}
rm -f *.a *.exe *.so
for file in ${CodecBinDir}/*
do
cp ${file} ./
echo "file ${file} under ../openh264/bin/"
done
for file in ${VPBinDir}/*
do
cp ${file} ./
echo "file ${file} under ../openh264/bin/"
done

View File

@ -0,0 +1,59 @@
echo off
SET usage="this file must located in ..\testbin\ based on our code structure "
echo %usage%
echo "Auto build of openH264 by VS2008"
SET VCBUILDEXE="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe"
SET CurDir=%~dp0
SET EncoderProjectDir="..\codec\build\win32\enc\"
SET DecoderProjectDir="..\codec\build\win32\dec\"
SET VPProjectDir="..\processing\build\win32\"
SET CodecBinDir="..\codec\build\win32\bin\"
SET VPBinDir="..\processing\bin\"
SET EncoderBuildFlag=1
SET DecoderBuildFlag=1
SET VPBuildFlag=1
SET MakefileLogFile="${CurDir}\CodecVPBuild.log"
rem ************************************************
rem call VP build
echo "Welsvp Building....."
cd %VPProjectDir%
rem vcclean
%VCBUILDEXE% WelsVP_2008.vcproj
rem ************************************************
rem call WelsEncoder build
echo "WelsEncoder Building....."
cd %CurDir%
cd %EncoderProjectDir%
rem vcclean
%VCBUILDEXE% WelsEncCore.vcproj
%VCBUILDEXE% WelsEncPlus.vcproj
%VCBUILDEXE% encConsole.vcproj
rem ************************************************
rem call WelsDecoder build
echo "WelsDecoder Building....."
cd %CurDir%
cd %DecoderProjectDir%
rem vcclean
%VCBUILDEXE% WelsDecCore.vcproj
%VCBUILDEXE% WelsDecPlus.vcproj
%VCBUILDEXE% decConsole.vcproj
cd %CurDir%
echo "this is the end of auto build..."
pause
rem TBD

View File

@ -0,0 +1,66 @@
echo off
SET usage="this file must located in ..\testbin\ based on our code structure "
echo %usage%
echo "Auto build of openH264 by VS2010"
SET VCENVSETBAT="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
Rem ************************************************
rem reset the dev env for VS2010
echo "reset the developing env for VS2010"
call %VCENVSETBAT%
SET VCMSBUILDEXE_RELEASE=MSbuild /t:Rebuild /p:Configuration=Release
SET VCMSBUILDEXE_DEBUG=MSbuild /t:Rebuild /p:Configuration=Debug
SET CurDir=%~dp0
SET EncoderProjectDir="..\codec\build\win32\enc\"
SET DecoderProjectDir="..\codec\build\win32\dec\"
SET VPProjectDir="..\processing\build\win32\"
SET CodecBinDir="..\codec\build\win32\bin\"
SET VPBinDir="..\processing\bin\"
SET EncoderBuildFlag=1
SET DecoderBuildFlag=1
SET VPBuildFlag=1
SET MakefileLogFile="${CurDir}\CodecVPBuild.log"
rem ************************************************
rem call WelsEncoder build
echo "WelsEncoder Building....."
cd %CurDir%
cd %EncoderProjectDir%
echo current directory is %EncoderProjectDir%
rem vcclean
echo %VCMSBUILDEXE_RELEASE% WelsEncoder_2010.sln
%VCMSBUILDEXE_RELEASE% WelsEncoder_2010.sln
%VCMSBUILDEXE_DEBUG% WelsEncoder_2010.sln
rem ************************************************
rem call WelsDecoder build
echo "WelsDecoder Building....."
cd %CurDir%
cd %DecoderProjectDir%
echo current directory is %DecoderProjectDir%
rem vcclean
echo %VCMSBUILDEXE_RELEASE% WelsDecoder_2010.sln
%VCMSBUILDEXE_RELEASE% WelsDecoder_2010.sln
%VCMSBUILDEXE_DEBUG% WelsDecoder_2010.sln
cd %CurDir%
echo "this is the end of auto build..."
pause
rem TBD

View File

@ -0,0 +1,66 @@
echo off
SET usage="this file must located in ..\testbin\ based on our code structure "
echo %usage%
echo "Auto build of openH264 by VS2012"
SET VCENVSETBAT="C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
Rem ************************************************
rem reset the dev env for VS2012
echo "reset the developing env for VS2012"
call %VCENVSETBAT%
SET VCMSBUILDEXE_RELEASE=MSbuild /t:Rebuild /p:Configuration=Release
SET VCMSBUILDEXE_DEBUG=MSbuild /t:Rebuild /p:Configuration=Debug
SET CurDir=%~dp0
SET EncoderProjectDir="..\codec\build\win32\enc\"
SET DecoderProjectDir="..\codec\build\win32\dec\"
SET VPProjectDir="..\processing\build\win32\"
SET CodecBinDir="..\codec\build\win32\bin\"
SET VPBinDir="..\processing\bin\"
SET EncoderBuildFlag=1
SET DecoderBuildFlag=1
SET VPBuildFlag=1
SET MakefileLogFile="${CurDir}\CodecVPBuild.log"
rem ************************************************
rem call WelsEncoder build
echo "WelsEncoder Building....."
cd %CurDir%
cd %EncoderProjectDir%
echo current directory is %EncoderProjectDir%
rem vcclean
echo %VCMSBUILDEXE_RELEASE% WelsEncoder_2012.sln
%VCMSBUILDEXE_RELEASE% WelsEncoder_2012.sln
%VCMSBUILDEXE_DEBUG% WelsEncoder_2012.sln
rem ************************************************
rem call WelsDecoder build
echo "WelsDecoder Building....."
cd %CurDir%
cd %DecoderProjectDir%
echo current directory is %DecoderProjectDir%
rem vcclean
echo %VCMSBUILDEXE_RELEASE% WelsDecoder_2012.sln
%VCMSBUILDEXE_RELEASE% WelsDecoder_2012.sln
%VCMSBUILDEXE_DEBUG% WelsDecoder_2012.sln
cd %CurDir%
echo "this is the end of auto build..."
pause
rem TBD

53
testbin/AutoClean_Linux.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
usage="this file must located in ../testbin/ based on our code structure "
echo $usage
CurDir=`pwd`
EncoderMakeDir="../codec/build/linux/enc/"
DecoderMakeDir="../codec/build/linux/dec/"
VPMakeDir="../processing/build/linux/"
CodecBinDir="../codec/build/linux/bin/"
VPBinDir="../bin/linux"
let "EncoderBuildFlag=1"
let "DecoderBuildFlag=1"
let "VPBuildFlag=1"
MakefileLogFile="${CurDir}/CodecVPBuild.log"
#************************************************
#call Encoder make file
echo "encoder cleanning....."
cd ${EncoderMakeDir}
make clean >${MakefileLogFile}
#make >>${MakefileLogFile}
#************************************************
#call Decoder make file
echo "decoder cleanning....."
cd ${CurDir}
cd ${DecoderMakeDir}
make clean >>${MakefileLogFile}
#make >>${MakefileLogFile}
#************************************************
#call VP make file
echo "VP cleanning....."
cd ${CurDir}
cd ${VPMakeDir}
make clean >>${MakefileLogFile}
#make >>${MakefileLogFile}
cd ${CurDir}
rm -f *.exe *.so *.a *.log
rm -fr ../bin # remove the bin directory

6
testbin/CmdLineExample.sh Executable file
View File

@ -0,0 +1,6 @@
chmod 777 ../bin/linux/welsenc.exe
../bin/linux/welsenc.exe welsenc_vd_1d.cfg
../bin/linux/welsenc.exe welsenc_vd_rc.cfg
../bin/linux/welsdec.exe test_vd_1d.264 test_vd_1d.yuv
../bin/linux/welsdec.exe test_vd_1d.264 test_vd_rc.yuv

20
testbin/CmdLineReadMe Normal file
View File

@ -0,0 +1,20 @@
/* Instant Runable Configurations */
//for encoder configure files
welsenc_vd_1d.cfg
welsenc_vd_rc.cfg
//the actual generated decoder EXE files are in folder ../bin/win32/release/ with Release build
//user may copy "decConsole.exe" and "welsdec.dll" into ../bin
//Now assume the generated EXE files are in folder ../bin
Example Command Line for encoding in Windows:
../bin/encConsole.exe welsenc_vd_1d.cfg
../bin/encConsole.exe welsenc_vd_rc.cfg
Example Command Line for decoding in Windows
../bin/decConsole.exe welsenc_vd_1d.264 welsenc_vd_1d.yuv
../bin/decConsole.exe welsenc_vd_rc.264 welsenc_vd_rc.yuv
Example shell script for Linux for encoder & decoder:
CmdLineExample.sh

39
testbin/layer2.cfg Normal file
View File

@ -0,0 +1,39 @@
# Layer Configuration File
#============================== INPUT / OUTPUT ==============================
SourceWidth 640 # Input frame width
SourceHeight 384 # Input frame height
FrameRateIn 24 # Input frame rate [Hz]
FrameRateOut 24 # Output frame rate [Hz]
InputFile CiscoVT2people_640x384_24fps.yuv # Input file
ReconFile rec_layer2.yuv # Reconstructed file
#============================== CODING ==============================
ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
InitialQP 24 # Quantization parameters for base quality layer
#================================ RATE CONTROL ===============================
SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
#============================== MultiSlice Slice Argument ==============================
# for S/M Slice(s) mode settings
SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
SliceSize 1500
SliceNum 1 # multiple slices number specified
SlicesAssign0 960 # count number of MBs in slice #0
SlicesAssign1 0 # count number of MBs in slice #1
SlicesAssign2 0 # count number of MBs in slice #2
SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
SlicesAssign4 0 # count number of MBs in slice #4
SlicesAssign5 0 # count number of MBs in slice #5
SlicesAssign6 0 # count number of MBs in slice #6
SlicesAssign7 0 # count number of MBs in slice #7
### DESIGN OF SLICE MODE ####
# 0 SM_SINGLE_SLICE | SliceNum==1
# 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | Enabled dynamic slicing for multi-thread
# 2 SM_RASTER_SLICE | according to SlicesAssign | Need input of MB numbers each slice. In addition, if other constraint in slice_argument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
# 3 SM_ROWMB_SLICE | according to PictureMBHeight | Typical of single row of mbs each slice?+ slice size constraint which including re-encoding
# 4 SM_DYN_SLICE | according to SliceSize | Dynamic slicing (have no idea about slice_nums until encoding current frame)

39
testbin/layer2_vd.cfg Normal file
View File

@ -0,0 +1,39 @@
# Layer Configuration File
#============================== INPUT / OUTPUT ==============================
SourceWidth 640 # Input frame width
SourceHeight 384 # Input frame height
FrameRateIn 24 # Input frame rate [Hz]
FrameRateOut 24 # Output frame rate [Hz]
InputFile CiscoVT2people_640x384_24fps.yuv # Input file
ReconFile rec_layer2.yuv # Reconstructed file
#============================== CODING ==============================
ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
InitialQP 24 # Quantization parameters for base quality layer
#================================ RATE CONTROL ===============================
SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
#============================== MultiSlice Slice Argument ==============================
# for S/M Slice(s) mode settings
SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
SliceSize 1500
SliceNum 1 # multiple slices number specified
SlicesAssign0 960 # count number of MBs in slice #0
SlicesAssign1 0 # count number of MBs in slice #1
SlicesAssign2 0 # count number of MBs in slice #2
SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
SlicesAssign4 0 # count number of MBs in slice #4
SlicesAssign5 0 # count number of MBs in slice #5
SlicesAssign6 0 # count number of MBs in slice #6
SlicesAssign7 0 # count number of MBs in slice #7
### DESIGN OF SLICE MODE, 100804, Sijia ####
# 0 SM_SINGLE_SLICE | SliceNum==1
# 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | Enabled dynamic slicing for multi-thread
# 2 SM_RASTER_SLICE | according to SlicesAssign | Need input of MB numbers each slice. In addition, if other constraint in slice_argument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
# 3 SM_ROWMB_SLICE | according to PictureMBHeight | Specially for TP. Typical of single row of mbs each slice?+ slice size constraint which including re-encoding
# 4 SM_DYN_SLICE | according to SliceSize | Dynamic slicing (have no idea about slice_nums until encoding current frame)

39
testbin/layer2_vd_rc.cfg Normal file
View File

@ -0,0 +1,39 @@
# Layer Configuration File
#============================== INPUT / OUTPUT ==============================
SourceWidth 640 # Input frame width
SourceHeight 384 # Input frame height
FrameRateIn 24 # Input frame rate [Hz]
FrameRateOut 24 # Output frame rate [Hz]
InputFile CiscoVT2people_640x384_24fps.yuv # Input file
ReconFile rec_layer2.yuv # Reconstructed file
#============================== CODING ==============================
ProfileIdc 66 # value of profile_idc (or 0 for auto detection)
InitialQP 24 # Quantization parameters for base quality layer
#================================ RATE CONTROL ===============================
SpatialBitrate 600 # Unit: kbps, controled by DisableRC also
#============================== MultiSlice Slice Argument ==============================
# for S/M Slice(s) mode settings
SliceMode 0 # 0: sigle slice mode; >0: multiple slices mode, see below;
SliceSize 1500
SliceNum 1 # multiple slices number specified
SlicesAssign0 960 # count number of MBs in slice #0
SlicesAssign1 0 # count number of MBs in slice #1
SlicesAssign2 0 # count number of MBs in slice #2
SlicesAssign3 0 # count number of MBs in slice #3 -- seting here is for better testing
SlicesAssign4 0 # count number of MBs in slice #4
SlicesAssign5 0 # count number of MBs in slice #5
SlicesAssign6 0 # count number of MBs in slice #6
SlicesAssign7 0 # count number of MBs in slice #7
### DESIGN OF SLICE MODE, 100804, Sijia ####
# 0 SM_SINGLE_SLICE | SliceNum==1
# 1 SM_FIXEDSLCNUM_SLICE | according to SliceNum | Enabled dynamic slicing for multi-thread
# 2 SM_RASTER_SLICE | according to SlicesAssign | Need input of MB numbers each slice. In addition, if other constraint in slice_argument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.
# 3 SM_ROWMB_SLICE | according to PictureMBHeight | Specially for TP. Typical of single row of mbs each slice?+ slice size constraint which including re-encoding
# 4 SM_DYN_SLICE | according to SliceSize | Dynamic slicing (have no idea about slice_nums until encoding current frame)

63
testbin/welsenc.cfg Normal file
View File

@ -0,0 +1,63 @@
# Cisco Scalable H.264/AVC Extension Encoder Configuration File
#============================== GENERAL ==============================
OutputFile test.264 # Bitstream file
MaxFrameRate 30 # Maximum frame rate [Hz]
FramesToBeEncoded -1 # Number of frames (at input frame rate)
GOPSize 4 # GOP Size (at maximum frame rate), 16
IntraPeriod 0 # Intra Period ( multipler of GoP size or -1)
EnableSpsPpsIDAddition 1
EnableFrameCropping 1 # enable frame cropping flag
#============================== LOOP FILTER ==============================
LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
InterLayerLoopFilterDisableIDC 0 # filter idc for inter-layer deblocking (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off in enh. layer (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
InterLayerLoopFilterAlphaC0Offset 0 # AlphaOffset for inter-layer deblocking
InterLayerLoopFilterBetaOffset 0 # BetaOffset for inter-layer deblocking
#============================== SOFTWARE IMPLEMENTATION ==============================
MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads;
#============================== RATE CONTROL ==============================
EnableRC 1 # ENABLE RC
TargetBitrate 5000 # Unit: kbps, controled by EnableRC also
#============================== DENOISE CONTROL ==============================
EnableDenoise 0 # Enable Denoise (1: enable, 0: disable)
#============================== SCENE CHANGE DETECTION CONTROL =======================
EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
#============================== BACKGROUND DETECTION CONTROL ==============================
EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
#============================== ADAPTIVE QUANTIZATION CONTROL =======================
EnableAdaptiveQuantization 1 # Enable Adaptive Quantization (1: enable, 0: disable)
#============================== LONG TERM REFERENCE CONTROL ==============================
EnableLongTermReference 0 # Enable Long Term Reference (1: enable, 0: disable)
LtrMarkPeriod 30 # Long Term Reference Marking Period
#============================== LAYER DEFINITION ==============================
PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
# It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
# Can be disabled when no inter spatial layer prediction in case of its value as 0
NumLayers 1 # Number of layers
//LayerCfg layer0.cfg # Layer 0 configuration file
//LayerCfg layer1.cfg # Layer 1 configuration file
LayerCfg layer2.cfg # Layer 2 configuration file

63
testbin/welsenc_vd_1d.cfg Normal file
View File

@ -0,0 +1,63 @@
# Cisco Scalable H.264/AVC Extension Encoder Configuration File
#============================== GENERAL ==============================
OutputFile test_vd_1d.264 # Bitstream file
MaxFrameRate 30 # Maximum frame rate [Hz]
FramesToBeEncoded -1 # Number of frames (at input frame rate)
GOPSize 4 # GOP Size (at maximum frame rate), 16
IntraPeriod 0 # Intra Period ( multipler of GoP size or -1)
EnableSpsPpsIDAddition 1
EnableFrameCropping 1 # enable frame cropping flag
#============================== LOOP FILTER ==============================
LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
InterLayerLoopFilterDisableIDC 0 # filter idc for inter-layer deblocking (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off in enh. layer (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
InterLayerLoopFilterAlphaC0Offset 0 # AlphaOffset for inter-layer deblocking
InterLayerLoopFilterBetaOffset 0 # BetaOffset for inter-layer deblocking
#============================== SOFTWARE IMPLEMENTATION ==============================
MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads;
#============================== RATE CONTROL ==============================
EnableRC 0 # ENABLE RC
TargetBitrate 5000 # Unit: kbps, controled by EnableRC also
#============================== DENOISE CONTROL ==============================
EnableDenoise 0 # Enable Denoise (1: enable, 0: disable)
#============================== SCENE CHANGE DETECTION CONTROL =======================
EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
#============================== BACKGROUND DETECTION CONTROL ==============================
EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
#============================== ADAPTIVE QUANTIZATION CONTROL =======================
EnableAdaptiveQuantization 0 # Enable Adaptive Quantization (1: enable, 0: disable)
#============================== LONG TERM REFERENCE CONTROL ==============================
EnableLongTermReference 1 # Enable Long Term Reference (1: enable, 0: disable)
LtrMarkPeriod 30 # Long Term Reference Marking Period
#============================== LAYER DEFINITION ==============================
PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
# It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
# Can be disabled when no inter spatial layer prediction in case of its value as 0
NumLayers 1 # Number of layers
//LayerCfg layer0_vd.cfg # Layer 0 configuration file
//LayerCfg layer1_vd.cfg # Layer 1 configuration file
LayerCfg layer2_vd.cfg # Layer 2 configuration file

63
testbin/welsenc_vd_rc.cfg Normal file
View File

@ -0,0 +1,63 @@
# Cisco Scalable H.264/AVC Extension Encoder Configuration File
#============================== GENERAL ==============================
OutputFile test_vd_rc.264 # Bitstream file
MaxFrameRate 30 # Maximum frame rate [Hz]
FramesToBeEncoded -1 # Number of frames (at input frame rate), -1
GOPSize 8 # GOP Size (at maximum frame rate), 16
IntraPeriod 0 # Intra Period ( multipler of GoP size or -1)
EnableSpsPpsIDAddition 1
EnableFrameCropping 1 # enable frame cropping flag
#============================== LOOP FILTER ==============================
LoopFilterDisableIDC 0 # Loop filter idc (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
LoopFilterAlphaC0Offset 0 # AlphaOffset(-6..+6): valid range
LoopFilterBetaOffset 0 # BetaOffset (-6..+6): valid range
InterLayerLoopFilterDisableIDC 0 # filter idc for inter-layer deblocking (0: on, 1: off,
# 2: on except for slice boundaries,
# 3: two stage. slice boundries on in second stage
# 4: Luma on but Chroma off in enh. layer (w.r.t. idc=0)
# 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)
# 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)
InterLayerLoopFilterAlphaC0Offset 0 # AlphaOffset for inter-layer deblocking
InterLayerLoopFilterBetaOffset 0 # BetaOffset for inter-layer deblocking
#============================== SOFTWARE IMPLEMENTATION ==============================
MultipleThreadIdc 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads;
#============================== RATE CONTROL ==============================
EnableRC 1 # ENABLE RC
TargetBitrate 600 # Unit: kbps, controled by EnableRC also
#============================== DENOISE CONTROL ==============================
EnableDenoise 1 # Enable Denoise (1: enable, 0: disable)
#============================== SCENE CHANGE DETECTION CONTROL =======================
EnableSceneChangeDetection 1 # Enable Scene Change Detection (1: enable, 0: disable)
#============================== BACKGROUND DETECTION CONTROL ==============================
EnableBackgroundDetection 1 # BGD control(1: enable, 0: disable)
#============================== ADAPTIVE QUANTIZATION CONTROL =======================
EnableAdaptiveQuantization 1 # Enable Adaptive Quantization (1: enable, 0: disable)
#============================== LONG TERM REFERENCE CONTROL ==============================
EnableLongTermReference 1 # Enable Long Term Reference (1: enable, 0: disable)
LtrMarkPeriod 30 # Long Term Reference Marking Period
#============================== LAYER DEFINITION ==============================
PrefixNALAddingCtrl 0 # Control flag of adding prefix unit (0: off, 1: on)
# It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)
# Can be disabled when no inter spatial layer prediction in case of its value as 0
NumLayers 1 # Number of layers
//LayerCfg layer0_vd.cfg # Layer 0 configuration file
//LayerCfg layer1_vd.cfg # Layer 1 configuration file
LayerCfg layer2_vd_rc.cfg # Layer 2 configuration file