Guest User

Untitled

a guest
Apr 20th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. onderdeel = 3
  2.  
  3. qp_values = (1..20).to_a + (1..15).collect { |i| 2*i + 20 }.to_a
  4. input_file = "yuvs\\football_50_cif.yuv"
  5.  
  6. extra_params = {
  7. 1 => "-I 1 -i 1",
  8. 2 => "-I 6 -i 6",
  9. 3 => "-I 17 -i 17 -b 3 --no-b-adapt --scenecut 0"
  10. }
  11.  
  12. psnr_values = {}
  13. qp_values.each do |qp|
  14. puts "QP: #{qp}"
  15. puts " > encoding..."
  16. encode_cmd = `executables\\x264.exe #{extra_params[onderdeel]} -q #{qp} -o temp\\op2enc.264 #{input_file} 352x288 2> temp\\rommel.txt`
  17. # 2> rommel gets rid of the encoder output, which is apparently written to stderr.
  18. puts " > decoding..."
  19. decode_cmd = `executables\\Ref_decoder.exe -i temp\\op2enc.264 -o temp\\op2dec.yuv`
  20. puts " > calculating PSNR..."
  21. psnr_cmd = `executables\\PSNR_Tool.exe #{input_file} temp\\op2dec.yuv 352 288 -non-verbose`
  22. psnr_values[qp] = psnr_cmd.gsub("Avg PSNR-Y:", "").strip.to_f
  23. puts " PSNR = #{psnr_values[qp]}"
  24. puts
  25. end
  26.  
  27. puts
  28. puts "Generating CSV file..."
  29. File.open("opgave2\\opgave2-#{onderdeel}.csv", "w") do |f|
  30. f.puts "OPGAVE 2.#{onderdeel}"
  31. f.puts
  32. f.puts "QP;PSNR"
  33.  
  34. qp_values.each do |qp|
  35. f.print qp, ";", psnr_values[qp], "\n"
  36. end
  37. end
  38.  
  39.  
  40.  
  41. -----------------------
  42.  
  43.  
  44. QP: 10
  45. > encoding...
  46. > decoding...
  47. > calculating PSNR...
  48. PSNR = 49.31
  49.  
  50. QP: 11
  51. > encoding...
  52. > decoding...
  53. > calculating PSNR...
  54. PSNR = 48.57
  55.  
  56. QP: 12
  57. > encoding...
  58. > decoding...
  59. > calculating PSNR...
  60. PSNR = 47.36
  61.  
  62. QP: 13
  63. > encoding...
  64. > decoding...
  65. > calculating PSNR...
  66. PSNR = 46.73
  67.  
  68. QP: 14
  69. > encoding...
  70. > decoding...
  71. > calculating PSNR...
  72. PSNR = 46.02
  73.  
  74. QP: 15
  75. > encoding...
  76. > decoding...
  77. > calculating PSNR...
  78. PSNR = 45.08
  79.  
  80. QP: 16
  81. > encoding...
  82. > decoding...
  83. > calculating PSNR...
  84. PSNR = 44.4
  85.  
  86. QP: 17
  87. > encoding...
  88. > decoding...
  89. > calculating PSNR...
  90. PSNR = 43.65
  91.  
  92. QP: 18
  93. > encoding...
  94. > decoding...
  95. > calculating PSNR...
  96. PSNR = 42.79
  97.  
  98. QP: 19
  99. > encoding...
  100. > decoding...
  101. > calculating PSNR...
  102. PSNR = 42.05
  103.  
  104. QP: 20
  105. > encoding...
  106. > decoding...
Add Comment
Please, Sign In to add comment