Welcome to the YAPI home page ! |
Y-chart Application Programmer's Interface
Abstract
YAPI is an application programmer's interface to write signal and
stream processing applications as process networks. The communication
between processes is based on Kahn Process Networks with blocking
reads on theoretically unbounded fifos. The library contains a C++
run-time environment to execute applications on desktops and
workstations.
History
YAPI has been developed at Philips Research. The
Electronic Design and Tools department maintained and supported YAPI
up to 2005. Currently, the project is hosted at SourceForge.net
User's Guides
YAPI (
HTML |
PDF |
PS)
VYA: Applying YAPI to Video (
HTML |
PDF |
PS)
Publications
E.A. de Kock, G. Essink, W.J.M Smits, P. van der Wolf, J.-Y. Brunel,
W.M. Kruijtzer, P. Lieverse, K.A. Vissers, YAPI: Application Modeling
for Signal Processing Systems, Proceedings 37th Design Automation
Conference, Los Angeles, 2000.
PDF
Getting and Installing YAPI |
Releases
The latest release is
yapi-2.1.0 (Release Notes).
You can browse the sources
using doxygen.
We provide a few example applications.
You can browse the sources using doxygen. The
examples use VYA and a parsing utility.
- Producer-Consumer
is the hello world type of application.
- Bytestream frontend and
backend. The frontend converts a file to a stream of bytes. The
backend converts a stream of bytes to a file.
- PFSPD frontend and
backend. PFSPD (Philips
File Standard for Pictoral Data) is a file format for the storage of uncompressed
video sequences with arbitrary word width, color space and number of components.
The PFSPD frontend and backend require the CPFSPD package. They convert the PFSPD
format to the VYA (Video YApi) format for streaming video data.
- Video scaling. This scaling
process network provides a skeleton for two dimensional video scaling of VYA
compiant video streams by means of horizontal and vertical sample rate conversion.
The sample rate conversion algorithms for a single color component are coded in the
files src/hs.cc and src/vs.cc for horizontal and vertical scaling, respectively.
The currently coded algorithms are based on sample removal for compression and
sample duplication for expansion. Please insert your own sample rate convertors to
obtain better quality. The test example uses the PFSPD frontend and backend.
- Video multiplexing
combines several VYA compliant video streams into one video streaming based on the
given screen positions and depths of the images. The test example uses the PFSPD
frontend and backend.
- JPEG decoding of a JPEG
compressed file in JFIF format into a VYA compliant video stream. In the test
example the input is read from file by a bytestream frontend. The output of JPEG
decoding is converted to the 4:4:4 sampling scheme using the video scaling process
network. Subsequently the output is converted to the RGB format and written to
file in PFSPD format by a PFSPD backend.
You can subscribe
to the YAPI user's
mailinglist.
Please submit bugs,
support
requests, and feature
requests through the SourceForge.net
site.
We gratefully acknowledge the contributions to the development of
YAPI from Jean-Yves Brunel, Arjan Kenter, Wido Kruijtzer, Paul
Lieverse, Wim Smits, Kees Vissers, and Pieter van der Wolf.
We thank Kees van Zon for being our first enthousiastic user and for
setting up the Philips internal website with YAPI applications.
We thank Martin Klompstra and Eric Kamps for maintaining and
supporting YAPI the last four years.
We thank Jan Hoogerbrugge for allowing us to use TRT as the
underlying cooperative multithreading kernel.
Finally, we thank SourceForge.net
for hosting this project.
© Royal Philips Electronics N.V. 2006.
All rights are reserved.
Last modified:
Thu Feb 23 14:10:31 CET 2006
This page is hosted by