Skip to content
/ libshvio Public
forked from pedwo/libshveu

A library for controlling Renesas SoC VIO/VEU (Scale/Color Conversion) hardware

License

Notifications You must be signed in to change notification settings

matsu/libshvio

 
 

Repository files navigation

libshvio
===========

libshvio: A library for controlling the SH-Mobile VIO/VEU.

Copyright (C) 2009 Renesas Technology Corp.
Copyright (C) 2010 Renesas Electronics Corporation

The [SH-Mobile][0] processor series includes a hardware video engine unit (VIO/VEU)
that supports colorspace conversion, rotation and scaling.

This source archive contains:

 * src/libshvio: the libshvio shared library
 * src/tools: commandline tools

libshvio API
------------

libshvio provides simple scale and rotate capability via the shvio_resize and
shvio_rotate blocking functions.
	vio = shvio_open()
	do {
		shvio_resize(vio, ...);
	} while (processing);
	shvio_close(vio);

For more flexibility, such as operating on a selection of a larger frame the
shvio_setup function can be used along with shvio_start and shvio_wait.
	vio = shvio_open()
	do {
		shvio_setup(vio, ...);
		shvio_start(vio);
		shvio_wait(vio);
	} while (processing);
	shvio_close(vio);

For low latency and reduced memory use, bundle mode is supported via the
shvio_start_bundle function. Using this mode requires that the input and output
buffer addresses are updated before the start of the next bundle.
	vio = shvio_open()
	do {
		shvio_setup(vio, ...);
		do {
			shvio_set_src(vio, ...);
			shvio_set_dst(vio, ...);
			shvio_start_bundle(vio, ...);
			end = shvio_wait(vio);
		} while (!end);
	} while (processing);
	shvio_close(vio);

Please see doc/libshvio/html/index.html for API details.


shvio-convert
-------------

shvio-convert is a commandline program for converting raw image or video files.
It uses the SH-Mobile VIO to perform simultaneous colorspace conversion and
either rotation or scaling on each input frame.

    Usage: shvio-convert [options] [input-filename [output-filename]]
    Convert raw image data using the SH-Mobile VIO.

    If no output filename is specified, data is output to stdout.
    Specify '-' to force output to be written to stdout.

    If no input filename is specified, data is read from stdin.
    Specify '-' to force input to be read from stdin.

    Input options
      -c, --input-colorspace (RGB565, NV12, YCbCr420, YCbCr422)
                             Specify input colorspace
      -s, --input-size       Set the input image size (qcif, cif, qvga, vga, d1)

    Output options
      -o filename, --output filename
                             Specify output filename (default: stdout)
      -C, --output-colorspace (RGB565, NV12, YCbCr420, YCbCr422)
                             Specify output colorspace

    Transform options
      Note that the VIO does not support combined rotation and scaling.
      -S, --output-size      Set the output image size (qcif, cif, qvga, vga, d1)
                             [default is same as input size, ie. no rescaling]
      -r, --rotate           Rotate the image 90 degrees clockwise

    Miscellaneous options
      -h, --help             Display this help and exit
      -v, --version          Output version information and exit

    File extensions are interpreted as follows unless otherwise specified:
      .yuv    YCbCr420
      .rgb    RGB565


shvio-display
-------------

shvio-display is a commandline program for displaying raw image or video files.
It uses the SH-Mobile VIO to perform simultaneous colorspace conversion and
scaling on each input frame. It allows the user to zoom in/out and pan the image.

    Usage: shvio-display [options] [input-filename]
    Processes raw image data using the SH-Mobile VIO and displays on screen.

    If no input filename is specified, a simple image will be created.

    Input options
      -c, --input-colorspace (RGB565, NV12, YCbCr420, YCbCr422)
                             Specify input colorspace
      -s, --input-size       Set the input image size (qcif, cif, qvga, vga, d1, 720p)

    Control keys
      +/-                    Zoom in/out
      Cursor keys            Pan
      =                      Reset zoom and panning
      q                      Quit

    Miscellaneous options
      -h, --help             Display this help and exit
      -v, --version          Output version information and exit

    File extensions are interpreted as follows unless otherwise specified:
      .yuv    YCbCr420
      .rgb    RGB565


SH-Mobile
---------

The [SH-Mobile][0] processor series includes a hardware video engine unit that
supports colorspace conversion, rotation and scaling. Some models also include
support for camera capture, JPEG processing, and DSP instructions.

[0]: http://www.renesas.com/fmwk.jsp?cnt=sh_mobile_family_landing.jsp&fp=/products/mpumcu/sh_mobile/

Kernel configuration
--------------------

libshvio uses the Linux kernel UIO support for the SH-Mobile VIO/VEU, which was
added in 2.6.27.

The following kernel boot option reserves physically contiguous memory for VIO/VEU
use:

    memchunk.veu0=4m

License
-------

See the file COPYING for details.

About

A library for controlling Renesas SoC VIO/VEU (Scale/Color Conversion) hardware

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 99.3%
  • Shell 0.7%