|
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
|
Accelerating DTP with Reconfigurable Computing Engines
By Donald MacVicar, The University of Glasgow (donald@dcs.gla.ac.uk) and Satnam Singh, Xilinx Inc.(Satnam.Singh@xilinx.com)
Introduction
Imagine taking an off-the-shelf FPGA PCI card and slotting it into these machines to accelerate typical desk top publishing functions. That vision is exactly what we are striving for in our projects at the University of Glasgow in conjunction with Xilinx Inc. This paper concentrates on how we are working to accelerate PostScript rendering with reconfigurable technology. Other projects have shown that it is possible to extend and accelerate the filtering operations of Adobe Photoshop using exactly the same hardware.
This paper introduces the desktop publishing market and describes the PostScript rendering technology that we are currently developing. This includes one example of the circuits we have developed to accelerate the rendering process. The circuits are dynamically swapped onto the FPGA as and when required. It also includes a software architecture that manages the FPGA. Rather than providing a stand alone rasterisation application, we show how this system can be used with the Windows operating system to systematically provide seamless support for hardware based PostScript rendering.
Desk Top Publishing
Adobe Systems Inc. have recently introduced two solutions for PostScript print-ing. Adobe PrintGear [2] is a custom processor designed specifically for executing the commands in the PostScript language and is aimed towards desktop printers. The second solution is called PostScript Extreme [1], which is a parallel PostScript RIP system. It consists of upto ten RIP engines each of which processes one page before-sending the rasterised page to the print engine. The first version of this system was built together with the IBM and costs arround $810,000 for printer and RIP system. This can produce 464 impressions per minute, on a RIP while printing basis, at 600dpi.
FPGA Technology
Since space is limited on the FPGA, we use the discipline of virtual hardware[4] to dynamically swap in circuits as they are required. Whenever possible, it helps to order rendering operations to avoid swapping, otherwise we might experience thrashing.
A brief overview of the rasteriser is given here a more complete description can be found in [8]. The system takes a PostScript print job as input and converts this into a PDF document which is then parsed to obtain the list of objects on each page. The bitmap for each page is then created using a combination of hardware and software. The final result is compressed before sending to the printer. Hardware is used to accel-erate the following functions: matrix multiplication, rasterisation of lines, curves, circles and fonts, anti-ailasing, colour correction and compression.PDF is used as it provides a static page independant description of each page in a document unlike Post-Script which allows variables to be dependant on later pages in a document.
A Case Study: Rendering Býzier Curves
The general technique for rasteristing curves is to approximate the curve with a number of straight line segments. After investigation it was decided that the best method to use was a recursive subdivision technique. Rather than performing complex straightness checks we use a fixed depth recursion. The distance between P1, P2, P3, P4 is used as a pessimistic estimate of the length of the curve. The distance P1, L4, P4 in Fig. 1 is used as an optimistic estimate of the length of the curve. The logarithm of each of the above lengths is found. The depth of recursion is then set too the average of the two logarithm values.
A circuit for dividing Býzier curves has been designed and built using only integer arithmetic but could be improved by using fixed point arithmetic. To perform the divi-sion of a curve two identical circuits are used one for the x components and one for the y components.
All the circuits were implemented in an hardware description language called Lava, which is a variant of the relational algebraic hardware description language Ruby [3][5]. A key feature of this language is that it provides circuits combinators that encode circuit behaviour and layout. This allows us to specify circuit topology without explicitly calculating the co-ordinate of each cell. This in turn allows us to generate circuits which are far more likely to route in a reasonable amount of time.
Platform
Many printers can interpret the PostScript internally but this can be a very slow process. The FPGA system performs as much of the processing as possible and sends a bitmap to the printer which requires no further processing.
Performance
One of the severest limitations of our system is the very low performance of the PCI interface. Using one of the earlier VCC Hotworks boards, we have measured a transfer rate of just 0.7Mb/s, but the theoretical limit for PCI is 132Mb/s. In the future, we plan to investigate using Intel's Accelerated Graphics Port (AGP) system allowing us to rapidly transfer the image over this dedicated bus (up to 533Mb/s), leaving the PCI bus for control signals.
Accelerating Image Processing
Summary
The main barriers at the moment include the unsuitability of the VCC Hotworks board for our applications. In the next stage of the project, we will investigate using a board with a superior PCI interface, or one that has an alternative channel for commu-nicating the image (e.g. AGP). We also need far more image memory on the card, which might require us to move to DRAM instead of continuing with SRAM based cards. The TSI-TelSys cards are a likely system for us to investigate. They would allow us to cache enough circuits on the board to accelerate swapping virtual circuits.
The authors acknowledge the assistance of Dr. John Patterson with Býzier curve rendering. This work is supported by a grant from the UK's EPSRC.
References
Home | Product of the Week | Tech Note | AppReview | Vendor Tools | Feedback
|
|||||||||||||||||||||||||||||||||
|
Copyright © 2003 ChipCenter-QuestLink About ChipCenter-Questlink |
||||||||||||||||||||||||||||||||||