2 from time
import millitimer
5 filename
= 'film2.video'
6 if sys
.argv
[1:]: filename
= sys
.argv
[1]
7 f
= open(filename
, 'r')
10 w
, h
= eval(line
[:-1])
14 data
= data2
= t
= t0
= t1
= None
30 fps
= 0.1 * int(10*nframes
/t
)
31 print nframes
, 'frames in', t
, 'sec. =', fps
, 'frames/sec.'
33 def dostat(w
, h
, data
):
37 # Statistic op 1: frequencies of byte values
38 def stat1(w
, h
, data
):
51 s
= s
+ string
.rjust(`bins
[i
]`
, 4)
53 print s
, string
.rjust(`tot`
, 7)
57 # Statistic op 2: run lengths
58 def stat2(w
, h
, data
):
61 count
, value
= 0, ord(data
[y
*w
])
62 for c
in data
[y
*w
: y
*w
+w
]:
65 runs
.append(count
, value
)
68 runs
.append(count
, value
)
69 print len(runs
), 'runs =', 0.1 * (10*w
*h
/len(runs
)), 'bytes/run'
71 # Statistic op 3: frequencies of byte differences
72 def stat3(w
, h
, data
):
77 delta
= divmod(i
-prev
, 256)[1]
79 bins
[delta
] = bins
[delta
]+1
83 def packblock(w
, h
, data
):
86 res
= res
+ packline(data
[y
*w
: y
*w
+w
])
96 for pack
in (0, 2, 4, 8):
100 hi
= pow(2, pack
-1)-1
108 if not lo
<= delta
<= hi
:
113 def byte(x
): return divmod(x
, 256)[1]