Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- onderdeel = 3
- qp_values = (1..20).to_a + (1..15).collect { |i| 2*i + 20 }.to_a
- input_file = "yuvs\\football_50_cif.yuv"
- extra_params = {
- 1 => "-I 1 -i 1",
- 2 => "-I 6 -i 6",
- 3 => "-I 17 -i 17 -b 3 --no-b-adapt --scenecut 0"
- }
- psnr_values = {}
- qp_values.each do |qp|
- puts "QP: #{qp}"
- puts " > encoding..."
- encode_cmd = `executables\\x264.exe #{extra_params[onderdeel]} -q #{qp} -o temp\\op2enc.264 #{input_file} 352x288 2> temp\\rommel.txt`
- # 2> rommel gets rid of the encoder output, which is apparently written to stderr.
- puts " > decoding..."
- decode_cmd = `executables\\Ref_decoder.exe -i temp\\op2enc.264 -o temp\\op2dec.yuv`
- puts " > calculating PSNR..."
- psnr_cmd = `executables\\PSNR_Tool.exe #{input_file} temp\\op2dec.yuv 352 288 -non-verbose`
- psnr_values[qp] = psnr_cmd.gsub("Avg PSNR-Y:", "").strip.to_f
- puts " PSNR = #{psnr_values[qp]}"
- puts
- end
- puts
- puts "Generating CSV file..."
- File.open("opgave2\\opgave2-#{onderdeel}.csv", "w") do |f|
- f.puts "OPGAVE 2.#{onderdeel}"
- f.puts
- f.puts "QP;PSNR"
- qp_values.each do |qp|
- f.print qp, ";", psnr_values[qp], "\n"
- end
- end
- -----------------------
- QP: 10
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 49.31
- QP: 11
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 48.57
- QP: 12
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 47.36
- QP: 13
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 46.73
- QP: 14
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 46.02
- QP: 15
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 45.08
- QP: 16
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 44.4
- QP: 17
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 43.65
- QP: 18
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 42.79
- QP: 19
- > encoding...
- > decoding...
- > calculating PSNR...
- PSNR = 42.05
- QP: 20
- > encoding...
- > decoding...
Add Comment
Please, Sign In to add comment