Here's a bunch of new yuv4mpeg-tools: ssim.tar.gz (20 KB)
Most importantly a SSE2-Implementation of the calculation of the necessary values for SSIM and PSNR for 8x8-blocks.
- fscan
-
Pipe in a y4m-stream, compares each frame with its successor and prints the SSIM and PSNR indices.
- fdel
-
usage: fdel <mod> <rem>
Passes only those frames from
stdin
tostdout
, whose (frame number % mod) != rem. Useful for very basic 3:2-pulldown. Also seey4mivtc
in the mjpegtools-distribution for a comparable (but rather fixed) approach. - y4mcat
-
Concatenates several y4m-streams into a single stream; warns about header information mismatches (may be disabled) and allows header adjustments.
pixel aspect ratio (N:M) -f force overridden header fields for all inputs, disable warnings -i {p|t|b} interlace code: p (none), t (top first), b (bottom first) -h this help message -r
frame rate in Hz as ratio (N:M) -v verbosity: 0 (quiet), 1 (normal), 2 (verbose/debug) -x specify chroma format, 'help' for list of formats Default is to copy the stream header from the first source, given options override that. If FILE is '-' then stdin is read at its place. Use ./- for an existing file with that name.]]> - y4moverlap
-
Compares each frame from the video on
stdin
to each frame in a video given as parameter using SSIM or PSNR. The resulting matrix gives precise information about the similarity of certain parts of the video (search for diagonal lines consisting of1.0
values, top-left to bottom-right).> overlap.matrix -m don't make use of seekability for second input: load all frames to memory (faster) -p
precision of output for non-quantized values (# fractional digits) [4] -q quantize output to integers (divide, truncate) -r enable rounding instead of truncation for quantization -s output SSIM instead of PSNR (slower) -v verbosity (0: quiet, 1: normal, 2: verbose/debug) Outputs an NxM matrix with N = #frames(stdin) and M = #frames( ). Each entry (i,j) contains the smilarity index between frame i from stdin and frame j from . A diagonal in direction from top-left to bottom-right containing high values indicates a match between the parts represented by the indices - an overlap between both inputs. If the second input, , is not seekable it will fully be loaded into memory. This may cause problems for large sequences.]]>
y4m
-Java-class providing support
for reading mjpegtools' YUV4MPEG2-streams.