cocorico!

vooya YUV/RGB Player - Usage Guide

Jump to:
Quick StartMenu OptionsVideo FormatsError Metrics

Quick Start

Drag & Drop is supported, or use Ctrl-O to open a file. Unless you have to specify the format due to improper file naming, hit Space to start playback (You should need to enter the format once only - it will be remembered).

Common shortcuts like LEFT, RIGHT, PageUp, PageDown, Pos1/Home, End work as expected. Press F11 (Ctrl-Shift-F on Mac) to toggle full screen mode, and N to step through color channels. Resize the window as you like with the mouse, or use +/-. Toggle a timecode overlay with T. You can always alter the format (color space, width, height etc.) with Ctrl-F.

(All shortcuts are listed in the Keyboard Cheat Sheet)

You can draw with the right mouse button, enable the Magnifier with the middle mouse button (or M, or with mouse wheel/touch pad scroll) and drop a bitmap to wherever you like (a skype chat for instance) with the left mouse button. You can also hit Ctrl-C to copy a frame as bitmap, or Ctrl-SHIFT-S to save it. Clear a drawing with double click or DEL, enable advanced deinterlacing wit I.

If you drag two files onto a vooya window, you will see the difference. If you drop a file onto vooya (playing another file) holding SHIFT, again you will get the difference. More files will open more player instances. If you drag a frame from vooya onto another vooya, that latter one will play the difference.

Menu Options

File

Open File(s)... O
You can load multiple files at once, opening multiple player instances. As a special case, if you open two files at once, the difference mode will be enabled. Note that you can also simply drag files over the playing area and drop them there with the same results.

Reload File Ctrl-R
Reload the file and update the frame count. The current seeking position is maintained if possible.

Close File 
Closes the current file and displays the startup panel.

Format Ctrl-F
shows the format dialog.

New Window Ctrl-N
opens a new vooya instance.

Close Window ESC
Close this vooya instance.

Open in Explorer Ctrl-E
Tries to open the containing directory.

Copy Frame Ctrl-Shift-C
copies the current frame (including timestamp overlays and drawing annotations) to the clipboard. Note that you can also drag a frame with the mouse off the display into a folder or something that accepts bitmap clipboard data.

Save Frame Ctrl-S
Save a frame as image (PNG, JPG, TIF or BMP) to a user-specified folder.

On the bottom of the file menu, a list of recently used sequences should be displayed.

Control

Should be pretty self-explanatory.

The Sync icon on the lower right of the player window can be dragged onto another player instance; the two will then be coupled for playing. This is useful for playing side-by-side. (not available on Centos)

Go To Frame Ctrl-G
Go to frame ….

View

Size +/-
Display the video at greater or smaller size. Using "+" and "-", you can also do this with keyboard shortcuts, or even resize the window with the mouse, as usual.

Fit To Window F
Toggle: (a) Fit video display size to current window size and let video scale with window size or (b) leave window size untouched and scale video inside vooya.

1:1 .
Reset video size to 100% (if possible; on smaller screens, Fit To Window must be OFF for that).

Maintain Aspect Ratio A
Upon resizing the window, the video can be set to maintain its actual aspect ratio.

Fullscreen F11
As it tells, enables fullscreen mode.

Time Code T
Display a time code on the bottom left corner of every frame. This includes the frame number and the current time stamp based on the FPS given in the format dialog, in the format mm'ss''ms.

Next Channel N
Cycle through the color channels (N). The order of channels depends on the current color format.

Stay on Top Ctrl-T
As it says, keeps the window on top of all others. Useful if you need a video reference while programming in Visual Studio, XCode, Emacs, où que ce soit.

Tools

Enable Magnifier M
Show a magnifying rectangle around the pointer, showing the current position and the respective values of all color channels.

The magnifier is best turned on with mouse wheel / touch pad scroll, on middle click, or keyboard shortcut. The magnifier can be moved around with the mouse and can be closed with ESC. The magnifier can be fine-tuned with

  • Q 1 pixel leftwards
  • W 1 pixel upwards
  • E 1 pixel rightwards
  • S 1 pixel downwards

Difference Against … D
Turn on diff mode. A file dialog will pop up and let you choose the second reference file. It is assumed that this file has exactly the same format settings as the current one. On the upper right, PSNR, MSE and SSIM values per color channel are displayed, along with the first difference pixel from top left. You can cycle through diff components with

  • C previous component
  • V next component

Deinterlace I
Turn on (high quality!) deinterlacing. The frame rate is halved.

Extract
Opens a dialog where you can create a new sequence from a range of frames.

Reverse
Allows to reverse the current sequence, giving you a new one.

Image Adjustments X
Opens a toolbar where you can adjust brightness, contrast and gamma, e.g. for better examining coding artefacts. Exit with ESC. Settings can be stored for later use. The Exposure slider enables you to see color content of HDR images with higher bit depth on your regular 8bit display.

Histogram H
opens a histogram. There, a context menu gives you some export options. Exit with ESC.

Video Formats

vooya supports the following input formats:

  • Data Arrangement:
  • P420, P422, P444 (4:2:0, 4:2:2, 4:4:4 planar formats), up to 16bits
  • I444, I422, I411 (4:2:0, 4:2:2, 4:4:4 interleaved formats), up to 16bits
  • UYVY, YUY2, YUYV, v210(<=10bit only) (interleaved 4:2:2 YUV formats)
  • NV12 (interleaved/planar yuv 4:2:0 format)
  • BW (Gray only)
  • Planar floating point 32/64bit 444,422,420
  • Color Spaces:
  • YUV (BT.709, BT.601, BT.2020), RGB, HSV, XYZ, YIQ, Gray
  • Channel permutations:
  • All, if applicable. (Yuv, Yvu, RGB, BGR, GRB etc. …)
  • Other features:
  • signed / unsigned treatment everywhere
  • header bytes skip
  • endianness toggle
  • planar interlaced

For most formats data up to 16bits is supported. This generic approach yields hundreds of possible combinations.

vooya supports skipping header bytes at the beginning of a file. Videos can be marked flipped, indicating that they should be played upside-down.

Note that vooya supports various input formats, whereas its output is currently limited to the OS's output bit depth and color space, i.e. 8bit RGB.

File Names

To avoid entering formats every time, it is convenient to name raw data files appropriately. A file name vooya can handle should at least contain the video's resolution, e.g.
     myfile_720x480.yuv                         hisfile_1920x1080.rgb

More generically, a valid file name looks like
     youNameIt_WIDTHxHEIGHT[_FPS[Hz|fps]][_BITSbit][_(P420|P422|P444|UYVY|YUY2|YUYV|I444)].[rgb|yuv|bw|rgba|bgr|bgra … ]

Fallback is P420, 8bit YUV. Some examples:

  • foo_720x480_25Hz_8bit_P420.yuv
  • foo_720x480_16bit_P422.yuv
  • foo_720x480_25Hz_YUY2.yuv
  • foo_720x480_25Hz_I444.bgr
  • foo_720x480_29.97Hz.rgba
  • foo.vix

Kakadu's '.vix' files are essentially planar YUV files cat'd to a text file like 

vix
>VIDEO<
25.000000 055
>COLOUR<
YCbCr
>IMAGE<
unsigned char 8 little-endian
1280 720 3
1 1
2 2
2 2

with frame rate and count in a >VIDEO< section, and resolution, color channel count and x/y chroma subsampling in an image header. There was also a version for RGB data, but I don't remember how that one worked - presumably similar.

Since Rev 482, also YUVPlayer Deluxe ".hdr"-files can be read. These are plain text files residing in the same directory as their corresponding raw data video file and have the same name, except for the suffix, which is '.hdr'. The content of an example hdr-file is given below:

width = 832; width of a video frame, in pixels
height = 480; height of a video frame, in pixels
framerate = 50; frames per second
format = "YUV444"; pixel format
offset = 0; file header bytes to be skipped
interlaced = true; bit depth as per channel 
anamorph = false; use anamorphic pixel stretch
flipped = true; flip upside-down

supported color formats for '.hdr' files are

  • YUV420, YUV422, YUV444, YUV410, YUV411
  • UYVY, YUYV, YUY2
  • Y
  • RGB24, RGB32, BGR24, BGR32
 

Error Metrics

MSE, and PSNR are calculated as described in Wikipedia.
SSIM calculation follows the proposals in the publication of Zhou Wang et al., with non-overlapping 8x8 windows and 8x8 Gaussian filtering @1.5 standard deviation.