Darkroom: Compiling High-Level Image Processing Code into Hardware Pipelines

被引:120
作者
Hegarty, James [1 ]
Brunhaver, John [1 ]
DeVito, Zachary [1 ]
Ragan-Kelley, Jonathan [2 ]
Cohen, Noy [1 ]
Bell, Steven [1 ]
Vasilyev, Artem [1 ]
Horowitz, Mark [1 ]
Hanrahan, Pat [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
[2] MIT CSAIL, Cambridge, MA USA
来源
ACM TRANSACTIONS ON GRAPHICS | 2014年 / 33卷 / 04期
关键词
Image processing; domain-specific languages; hardware synthesis; FPGAs; video processing; LANGUAGE;
D O I
10.1145/2601097.2601174
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Specialized image signal processors (ISPs) exploit the structure of image processing pipelines to minimize memory bandwidth using the architectural pattern of line-buffering, where all intermediate data between each stage is stored in small on-chip buffers. This provides high energy efficiency, allowing long pipelines with tera-op/sec. image processing in battery-powered devices, but traditionally requires painstaking manual design in hardware. Based on this pattern, we present Darkroom, a language and compiler for image processing. The semantics of the Darkroom language allow it to compile programs directly into line-buffered pipelines, with all intermediate values in local line-buffer storage, eliminating unnecessary communication with off-chip DRAM. We formulate the problem of optimally scheduling line-buffered pipelines to minimize buffering as an integer linear program. Finally, given an optimally scheduled pipeline, Darkroom synthesizes hardware descriptions for ASIC or FPGA, or fast CPU code. We evaluate Darkroom implementations of a range of applications, including a camera pipeline, low-level feature detection algorithms, and deblurring. For many applications, we demonstrate gigapixel/sec. performance in under 0.5mm(2) of ASIC silicon at 250 mW (simulated on a 45nm foundry process), real-time 1080p/60 video processing using a fraction of the resources of a modern FPGA, and tens of megapixels/sec. of throughput on a quad-core x86 processor.
引用
收藏
页数:11
相关论文
共 29 条
[1]   The Frankencamera: An Experimental Platform for Computational Photography [J].
Adams, Andrew ;
Jacobs, David E. ;
Dolson, Jennifer ;
Tico, Marius ;
Pulli, Kari ;
Talvala, Eino-Ville ;
Ajdin, Boris ;
Vaquero, Daniel ;
Lensch, Hendrik P. A. ;
Horowitz, Mark ;
Park, Sung Hee ;
Gelfand, Natasha ;
Baek, Jongmin ;
Matusik, Wojciech ;
Levoy, Marc .
ACM TRANSACTIONS ON GRAPHICS, 2010, 29 (04)
[2]  
[Anonymous], 2004, P 2004 INT S COD GEN
[3]  
BERKELAAR M, 2004, EINDHOVEN U TECHNOLO
[4]  
BILSEN G, 1995, INT CONF ACOUST SPEE, P3255, DOI 10.1109/ICASSP.1995.479579
[5]  
Bouguet J-Y., 2001, Pyramidal implementation of the Lucas Kanade Feature Tracker Description of the Algorithm
[7]   Terra: A Multi-Stage Language for High-Performance Computing [J].
DeVito, Zachary ;
Hegarty, James ;
Aiken, Alex ;
Hanrahan, Pat ;
Vitek, Jan .
ACM SIGPLAN NOTICES, 2013, 48 (06) :105-115
[8]  
ELLIOTT C, 2001, P BRIDGES
[9]  
Frigo Matteo, 2005, P 19 ANN INT C SUPER, P361, DOI DOI 10.1145/1088149.1088197
[10]  
Gummaraju J, 2005, INT SYMP MICROARCH, P343