add encoder binary comparison test model
This commit is contained in:
131
test/encoder_binary_comparison/Scripts/run_BitStreamToYUV.sh
Executable file
131
test/encoder_binary_comparison/Scripts/run_BitStreamToYUV.sh
Executable file
@@ -0,0 +1,131 @@
|
||||
#!/bin/bash
|
||||
#*******************************************************************************
|
||||
# Encoder binary comparison test model
|
||||
# -- Compared with benchmark version using SHA-1 string
|
||||
# -- Test bit stream under folder openh264/res
|
||||
# -- SHA-1 string of benchmark version for all cases of all bit streams
|
||||
# under folder openh264/test/encoder_binary_comparion/SHA1Table
|
||||
# -- For more detail,please refer to file AboutTest.
|
||||
#
|
||||
#brief:
|
||||
# -- Transform test bit stream into YUV as test sequence,
|
||||
# 1) Called by run_OneBitStream.sh before testing all cases
|
||||
# 2) eg:
|
||||
# -- input: ./run_BitStreamToYUV.sh TestABC.264
|
||||
# -- output: TestABC.264_382X288.yuv
|
||||
# -- Usage: run_BitStreamToYUV.sh ${BitStreamFile}
|
||||
#
|
||||
#
|
||||
# date: 10/06/2014 Created
|
||||
#*******************************************************************************
|
||||
#usage: run_ParseDecoderLog $Decoder_LogFile
|
||||
#eg: input: run_ParseDecoderLog test.264.log
|
||||
# output 1024 720
|
||||
run_ParseDecoderLog()
|
||||
{
|
||||
if [ ! $# -eq 1 ]
|
||||
then
|
||||
echo "usage: run_ParseDecoderLog \$Decoder_LogFile"
|
||||
return 1
|
||||
fi
|
||||
local LogFile=$1
|
||||
local Width=""
|
||||
local Height=""
|
||||
while read line
|
||||
do
|
||||
if [[ $line =~ "iWidth" ]]
|
||||
then
|
||||
Width=`echo $line | awk 'BEGIN {FS="[:\n]"} {print $2}'`
|
||||
fi
|
||||
if [[ $line =~ "height" ]]
|
||||
then
|
||||
Height=`echo $line | awk 'BEGIN {FS="[:\n]"} {print $2}'`
|
||||
fi
|
||||
done < ${LogFile}
|
||||
echo "${Width} ${Height}"
|
||||
}
|
||||
#usage: run_BitStream2YUV $BitstreamName $OutputYUVName $LogFile
|
||||
run_BitStream2YUV()
|
||||
{
|
||||
if [ ! $# -eq 3 ]
|
||||
then
|
||||
echo "usage: run_BitStream2YUV \$BitstreamName \$OutputYUVName \$LogFile "
|
||||
return 1
|
||||
fi
|
||||
local BitStreamName=$1
|
||||
local OutputYUVNAMe=$2
|
||||
local LogFile=$3
|
||||
|
||||
if [ ! -f ${BitStreamName} ]
|
||||
then
|
||||
echo "bit stream file does not exist!"
|
||||
echo "detected by run_BitStreamToYUV.sh"
|
||||
return 1
|
||||
fi
|
||||
#decode bitstream
|
||||
./h264dec ${BitStreamName} ${OutputYUVNAMe} 2> ${LogFile}
|
||||
|
||||
return 0
|
||||
}
|
||||
#usage: run_RegularizeYUVName $BitstreamName $OutputYUVName $LogFile
|
||||
run_RegularizeYUVName()
|
||||
{
|
||||
if [ ! $# -eq 3 ]
|
||||
then
|
||||
echo "usage: run_RegularizeYUVName \$BitstreamName \$OutputYUVName \$LogFile "
|
||||
return 1
|
||||
fi
|
||||
local BitStreamName=$1
|
||||
local OrignName=$2
|
||||
local LogFile=$3
|
||||
local RegularizedYUVName=""
|
||||
|
||||
declare -a aDecodedYUVInfo
|
||||
|
||||
aDecodedYUVInfo=(`run_ParseDecoderLog ${LogFile}`)
|
||||
|
||||
BitStreamName=`echo ${BitStreamName} | awk 'BEGIN {FS="/"} {print $NF}'`
|
||||
RegularizedYUVName="${BitStreamName}_${aDecodedYUVInfo[0]}x${aDecodedYUVInfo[1]}.yuv"
|
||||
mv -f ${OrignName} ${RegularizedYUVName}
|
||||
echo ""
|
||||
echo "file : ${OrignName} has been renamed as :${RegularizedYUVName}"
|
||||
echo ""
|
||||
|
||||
return 0
|
||||
}
|
||||
#usage: runMain ${BitStreamName}
|
||||
runMain()
|
||||
{
|
||||
if [ ! $# -eq 1 ]
|
||||
then
|
||||
echo "usage: runMain ${BitStreamName} "
|
||||
return 1
|
||||
fi
|
||||
|
||||
local BitStreameFile=$1
|
||||
local BitSteamName=`echo ${BitStreameFile} | awk 'BEGIN {FS="/"} {print $NF}'`
|
||||
local DecoderLogFile="${BitSteamName}_h264dec.log"
|
||||
local DecodedYUVName="${BitSteamName}_dec.yuv"
|
||||
local RegularizedName=""
|
||||
|
||||
#**********************
|
||||
#decoded test bit stream
|
||||
run_BitStream2YUV ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile}
|
||||
if [ ! $? -eq 0 ]
|
||||
then
|
||||
echo "bit stream decoded failed!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
#*********************
|
||||
#regularized YUV name
|
||||
run_RegularizeYUVName ${BitStreameFile} ${DecodedYUVName} ${DecoderLogFile}
|
||||
|
||||
return 0
|
||||
}
|
||||
BitStreamFile=$1
|
||||
runMain ${BitStreamFile}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user