[x265] [PATCH] Add Regression scripts

mahesh at multicorewareinc.com mahesh at multicorewareinc.com
Tue Jul 23 04:57:42 CEST 2013


# HG changeset patch
# User maheshpittala
# Date 1374548233 25200
# Node ID 6d17f18b3a1bc15e15a3da94d648f7b72ad73330
# Parent  6cdc5ccdbd36a65a1cb06786a105ec2794c0723c
Add Regression scripts

diff -r 6cdc5ccdbd36 -r 6d17f18b3a1b source/BuildandRun.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/BuildandRun.bat	Mon Jul 22 19:57:13 2013 -0700
@@ -0,0 +1,64 @@
+ at echo off
+
+cd ..\"%buildconfig%"
+call:makesolution 8bit "ENABLE_PPA:BOOL=ON"
+call:makesolution 16bit "HIGH_BIT_DEPTH:BOOL=ON"
+EXIT /B
+
+:makesolution
+
+set build_folder=%~1
+set cmake_option=%~2
+if exist %build_folder% rd /s /q %build_folder%
+mkdir %build_folder%
+cd %build_folder%
+
+cmake  -D ENABLE_TESTS:BOOL=ON -D %cmake_option% -G "%generator%" ..\..\..\source
+
+if exist %solution% (
+
+ call %vcvars%
+ MSBuild /property:Configuration="Release" x265.sln >> buildlog_release.txt
+	
+  if %errorlevel% equ 1 (
+   echo %generator% %build_folder% build failed in release mode refer the build log  >> "%LOG%"
+   exit 1
+   )
+  if not exist Release\x265.exe echo build Application with %build_folder% failed for %generator%  refer the build log >> "%LOG%"
+	
+ 
+ MSBuild /property:Configuration="Debug" x265.sln >> buildlog_debug.txt
+		
+  if %errorlevel% equ 1 (
+   echo %generator% %build_folder% build failed in debug mode refer the build log  >> "%LOG%"
+   exit 1
+   )
+  if not exist Debug\x265.exe echo build Application with %build_folder% failed for %generator%  refer the build log >> "%LOG%"
+) else (
+echo %build_folder% solution is not created for %generator% >> "%LOG%"
+)
+
+
+if exist Release\x265.exe (
+		
+ Release\x265.exe  %video1%.y4m -f %frames% --wpp --tu-intra-depth 1 --tu-inter-depth 2 --no-tskip --max-merge 1 --threads 4 --no-rdoq --hash 1 -o str1.out -r rec1.yuv >> %build_folder%.txt 2>&1
+ Release\x265.exe  %video2%.y4m -f %frames% --wpp --tu-intra-depth 1 --tu-inter-depth 2 --no-tskip --max-merge 1 --threads 4 --no-rdoq --hash 1 -o str2.out -r rec2.yuv >> %build_folder%.txt 2>&1
+ Release\x265.exe  %video3%.y4m -f %frames% --wpp --tu-intra-depth 1 --tu-inter-depth 2 --no-tskip --max-merge 1 --threads 4 --no-rdoq --hash 1 -o str3.out -r rec3.yuv >> %build_folder%.txt 2>&1
+ Debug\x265.exe  %video1%.y4m -f %frames% --wpp --tu-intra-depth 1 --tu-inter-depth 2 --no-tskip --max-merge 1 --threads 4 --no-rdoq --hash 1 -o str4.out -r rec4.yuv >> %build_folder%.txt 2>&1
+
+ %decoder% -b str1.out -o str1.yuv >> "%workingdir%"\decoder_out_%build_folder%.txt
+ %decoder% -b str2.out -o str2.yuv >> "%workingdir%"\decoder_out_%build_folder%.txt
+ %decoder% -b str3.out -o str3.yuv >> "%workingdir%"\decoder_out_%build_folder%.txt
+
+ FC  /b rec1.yuv str1.yuv > NULL || echo Reconstructed frames mismatch for %video1% >> "%workingdir%"\DiffBin.txt
+ FC  /b rec2.yuv str2.yuv > NULL || echo Reconstructed frames mismatch for %video2% >> "%workingdir%"\DiffBin.txt
+ FC  /b rec3.yuv str3.yuv > NULL || echo Reconstructed frames mismatch for %video3% >> "%workingdir%"\DiffBin.txt
+) 
+
+if exist test\Release\TestBench.exe (
+ test\Release\TestBench.exe >> testbench.txt
+ if %errorlevel% equ -1 (
+   echo %generator% %build_folder% Testbench failed refer the testbench log  >> "%LOG%"
+   )
+)
+ cd ..\
diff -r 6cdc5ccdbd36 -r 6d17f18b3a1b source/Main.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/Main.bat	Mon Jul 22 19:57:13 2013 -0700
@@ -0,0 +1,41 @@
+ at echo off
+
+for /f "tokens=1,2,3,4,5,6,7,8 delims==" %%a in (config.txt) do (
+if %%a==repository set repository=%%b
+if %%a==FramesToCheck_BinMismatch set frames=%%b
+if %%a==FramesToRun_PSNRperformance set frames1=%%b
+if %%a==decoder set decoder=%%b
+if %%a==drpsnr set drpsnr=%%b
+if %%a==video1 set video1=%%b
+if %%a==video2 set video2=%%b
+if %%a==video3 set video3=%%b
+)
+
+set "save_path=%path%"
+set "save_include=%INCLUDE%"
+set "save_lib=%LIB%"
+set "save_libpath=%LIBPATH%"
+set solution="x265.sln"
+set HG=hg
+set workingdir=%CD%
+
+if exist "%workingdir%"\regression.log del "%workingdir%"\regression.log
+set LOG="%workingdir%"\regression.log
+
+if %errorlevel% equ 1 (
+ echo Working directory not created >> "%LOG%"
+ exit 1
+)
+
+"%HG%" pull -u "%repository%"
+"%HG%" summary >> "%LOG%"
+
+if %errorlevel% equ 1 (
+ echo "Pull failed" >> "%LOG%"
+ exit 1
+)
+
+call compilers.bat
+call %workingdir%\PSNR_Performance.bat
+start python %workingdir%\performance_csv.py
+start python %workingdir%\Send_Mail.py
diff -r 6cdc5ccdbd36 -r 6d17f18b3a1b source/compilers.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/compilers.bat	Mon Jul 22 19:57:13 2013 -0700
@@ -0,0 +1,28 @@
+ at echo off
+
+call:buildconfigs "%VS110COMNTOOLS%" vc11-x86_64 "Visual Studio 11 Win64"
+call:buildconfigs "%VS110COMNTOOLS%" vc11-x86 "Visual Studio 11"
+call:buildconfigs "%VS100COMNTOOLS%" vc10-x86_64 "Visual Studio 10 Win64"
+call:buildconfigs "%VS100COMNTOOLS%" vc10-x86 "Visual Studio 10"
+call:buildconfigs "%VS90COMNTOOLS%" vc9-x86_64 "Visual Studio 9 2008 Win64"
+call:buildconfigs "%VS90COMNTOOLS%" vc9-x86 "Visual Studio 9 2008 Win64"
+EXIT /B
+
+:buildconfigs
+
+set compiler=%~1
+set buildconfig=%~2
+set generator=%~3
+
+echo running %generator% >> "%LOG%"
+set vcvars="%compiler%\..\..\VC\vcvarsall.bat"
+call %workingdir%\BuildandRun.bat
+
+set path=""
+set INCLUDE=""
+set LIB=""
+set LIBPATH=""
+set "path=%save_path%"
+set "INCLUDE=%save_include%"
+set "LIB=%save_lib%"
+set "LIBPATH=%save_libpath%"
diff -r 6cdc5ccdbd36 -r 6d17f18b3a1b source/performance_csv.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/performance_csv.py	Mon Jul 22 19:57:13 2013 -0700
@@ -0,0 +1,157 @@
+#!/usr/bin/python
+import os
+import re
+searchquery1 = 'encoded'
+searchquery2 = '    Global'
+inputs_var=0
+cmd_var=0
+inc=0
+
+os.remove("Performance_Results.csv")
+enc_nordo = ['encoder_output_BasketballDrive_1920x1080_50_no_rdo.txt','encoder_output_FourPeople_1280x720_60_no_rdo.txt','encoder_output_Kimono1_1920x1080_24_no_rdo.txt']
+psnr_nordo =['dr_psnr_output_BasketballDrive_1920x1080_50_no_rdo.txt','dr_psnr_output_FourPeople_1280x720_60_no_rdo.txt','dr_psnr_output_Kimono1_1920x1080_24_no_rdo.txt']
+enc_rdo = ['encoder_output_BasketballDrive_1920x1080_50_rdo.txt','encoder_output_FourPeople_1280x720_60_rdo.txt','encoder_output_Kimono1_1920x1080_24_rdo.txt']
+psnr_rdo = ['dr_psnr_output_BasketballDrive_1920x1080_50_rdo.txt','dr_psnr_output_FourPeople_1280x720_60_rdo.txt','dr_psnr_output_Kimono1_1920x1080_24_rdo.txt']
+
+cmdlines = open('commandlines.txt', 'r').read().splitlines()
+
+inputs = [' 1.BasketballDrive_1920x1080_50.y4m', ' 2.FourPeople_1280x720_60.y4m', ' 3.Kimono1_1920x1080_24.y4m']
+
+log = open('Performance_Results.csv','w')
+print (",,,,,,,,,, NO_RDO,,,,,,,,,, RDO  ", file = log)
+        
+print ("    COMMAND LINE,,,,,,,     ,    TOTAL TIME(seconds),    SPEED(fps),    BITRATE(kb/s),    FRAMES,    PSNR(Y)_Global,    PSNR(U),    PSNR(V), avg,      ,    TOTAL TIME(seconds),    SPEED(fps),    BITRATE(kb/s),    FRAMES,    PSNR(Y)_Global,    PSNR(U),    PSNR(V), avg", file = log)
+print (" ", file = log)
+
+for enc in enc_nordo:        
+       print ("%s" %(inputs[inputs_var]), file = log)
+       print (" ", file = log)
+       psnr=psnr_nordo[inputs_var]
+
+       out1 = open('output1.txt', 'a')
+       print ("encoder output for nordo...", file = out1)
+       out1.close()
+       out2 = open('output2.txt', 'a')
+       print ("dr_psnr output for nordo...", file = out2)
+       out3 = open('output3.txt', 'a')
+       print ("encoder output for rdo...", file = out3)
+       out3.close()
+       out4 = open('output4.txt', 'a')
+       print ("dr_psnr output for rdo...", file = out4)
+       out4.close()
+       
+       #encoder output for nordo
+       f1 = open(enc, 'r')       
+       out1 = open('output1.txt', 'a')
+       line1 = f1.readlines()       
+       for i, line in enumerate(line1):
+         if line.startswith(searchquery1):
+             for char in line:
+              line = re.sub('[(]','',line)
+              line = re.sub('[s]','',line)
+             out1.write(line)
+       f1.close ()
+       out1.close()
+       
+       #dr_psnr output for nordo
+       f2 = open(psnr, 'r')       
+       out2 = open('output2.txt', 'a')
+       line2 = f2.readlines()
+       for i, line in enumerate(line2):
+         if line.startswith(searchquery2):
+             out2.write(line)
+       f2.close ()
+       out2.close()
+
+       #encoder output for rdo
+       f3 = open(enc_rdo[inc], 'r')
+       out3 = open('output3.txt', 'a')
+       line3 = f3.readlines()
+       for i, line in enumerate(line3):
+         if line.startswith(searchquery1):
+             for char in line:
+              line = re.sub('[(]','',line)
+              line = re.sub('[s]','',line)
+             out3.write(line)
+       f3.close ()
+       out3.close()
+
+       #dr_psnr output for rdo
+       f4 = open(psnr_rdo[inc], 'r')
+       out4 = open('output4.txt', 'a')
+       line4 = f4.readlines()
+       for i, line in enumerate(line4):
+         if line.startswith(searchquery2):
+             out4.write(line)
+       f4.close ()
+       out4.close()
+
+       out1 = open('output1.txt')
+       out2 = open('output2.txt')
+       out3 = open('output3.txt')
+       out4 = open('output4.txt')
+
+       log = open('Performance_Results.csv','a')
+       eof1 = out1.readline()
+       eof2 = out2.readline()
+       eof3 = out3.readline()
+       eof4 = out4.readline()
+
+       #for a in eof1:
+       num_lines = sum(1 for line in open('output1.txt'))      
+
+       for index in range(num_lines-1):
+           #for b in eof2:
+                  eof1 = out1.readline()
+                  eof2 = out2.readline()
+                  eof3 = out3.readline()
+                  eof4 = out4.readline()
+                  
+                  col1 = eof1.split()
+                  print (col1)
+                  col2 = eof2.split()
+                  print (col2)
+                  col3 = eof3.split()
+                  print (col3)
+                  col4 = eof4.split()
+                  print (col4)
+
+                  time = col1[4]
+                  time1 = col3[4] 
+                  
+                  speed = col1[5]
+                  speed1 = col3[5]
+
+                  bitrate = float(col1[7])
+                  bitrate1 = float(col3[7])
+
+                  frames = int(col1[1])
+                  frames1 = int(col3[1])
+ 
+                  psnr_y  = float(col2[1])
+                  psnr_u  = float(col2[2])
+                  psnr_v  = float(col2[3])
+                  avg_psnr = (float)((psnr_y+psnr_u+psnr_v)/3)
+
+                  psnr_y1  = float(col4[1])
+                  psnr_u1  = float(col4[2])
+                  psnr_v1  = float(col4[3])
+                  avg_psnr1 = (float)((psnr_y1+psnr_u1+psnr_v1)/3)
+
+                  print ("%s,,,,,,,,%s,%s,%f,%d,%f,%f,%f,%f,,%s,%s,%f,%d,%f,%f,%f,%f" %(cmdlines[cmd_var],time,speed,bitrate,frames,psnr_y,psnr_u,psnr_v,avg_psnr,time1,speed1,bitrate1,frames1,psnr_y1,psnr_u1,psnr_v1,avg_psnr1), file = log)
+                  cmd_var=cmd_var+1
+       
+       
+       out1.close()
+       out2.close()
+       out3.close()
+       out4.close()
+       os.remove("output1.txt")
+       os.remove("output2.txt")
+       os.remove("output3.txt")
+       os.remove("output4.txt")
+       inputs_var=inputs_var+1
+       cmd_var=0
+       inc=inc+1
+       print (" ", file = log)
+log.close()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: NEW_REPOSITOTY.patch
Type: text/x-patch
Size: 11450 bytes
Desc: not available
URL: <http://mailman.videolan.org/private/x265-devel/attachments/20130722/6751864a/attachment-0001.bin>


More information about the x265-devel mailing list