view TOOLS/countquant.pl @ 15915:b3924612667a

Update of the x264 encoding guide: - Reorganized things, options are now divided into "speed vs quality" and "other" (more or less). subq is now where it belongs. - subq=6 is documented - explanation of what 2-pass really does, and why you'd better use it - mention 3-pass (and the fact that it usually doesn't help) - documented qcomp - documented keyint (not like it needed any more explanation, though) - deblocking parameter tweaking no longer categorized as options that "affect speed and quality ;) - updated example cpu requirements for decoding, in codecs.xml (720x480 @ 1500kbps 50%->35%, for my CPU)
author gpoirier
date Mon, 04 Jul 2005 05:37:27 +0000
parents 85ebbeeb913b
children 32725ca88fed
line wrap: on
line source

#!/usr/bin/perl -w

sub display_quants {
  $frames = 0;
  foreach $key (sort(keys(%quants))) {
    $frames += $quants{$key};
  }
  foreach $key (sort({ $a <=> $b } keys(%quants))) {
    printf("q=%d:\t% 6d, % 6.2f%%\n", $key, $quants{$key}, $quants{$key} *
           100 / $frames);
  }
  print("$lines lines processed, $frames frames found\n");
  printf("average quant. is: %f\n", $quant_total/$frames);
}

$lines = 0;
$thislines = 0;
$quant_total = 0;

while (<STDIN>) {
  $lines++;
  $thislines++;
  if (/ q:([0-9]+) /) {
    $quants{$1}++;
  } elsif (/ q:(([0-9]+)\.[0-9]+) /) {
    $quants{$2}++;
    $quant_total += $1;
  }
  if ((scalar(@ARGV) > 0) && ($thislines > $ARGV[0])) {
    display_quants();
    $thislines = 0;
  }
}

display_quants();