Initial Commit
This commit is contained in:
parent
70e5e62f3d
commit
368119aaba
128
testbin/AutoBuild_Linux.sh
Executable file
128
testbin/AutoBuild_Linux.sh
Executable 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
59
testbin/AutoBuild_Windows_VS2008.bat
Executable file
59
testbin/AutoBuild_Windows_VS2008.bat
Executable 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
|
||||||
|
|
||||||
|
|
||||||
|
|
66
testbin/AutoBuild_Windows_VS2010.bat
Executable file
66
testbin/AutoBuild_Windows_VS2010.bat
Executable 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
|
||||||
|
|
||||||
|
|
||||||
|
|
66
testbin/AutoBuild_Windows_VS2012.bat
Executable file
66
testbin/AutoBuild_Windows_VS2012.bat
Executable 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
53
testbin/AutoClean_Linux.sh
Executable 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
6
testbin/CmdLineExample.sh
Executable 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
20
testbin/CmdLineReadMe
Normal 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
39
testbin/layer2.cfg
Normal 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
39
testbin/layer2_vd.cfg
Normal 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
39
testbin/layer2_vd_rc.cfg
Normal 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
63
testbin/welsenc.cfg
Normal 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
63
testbin/welsenc_vd_1d.cfg
Normal 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
63
testbin/welsenc_vd_rc.cfg
Normal 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
|
Loading…
Reference in New Issue
Block a user