Cuneiform inscriptions, which scholars consider the first written language, were made in moist, clay tablets. We've developed a semiautomatic method for concisely displaying the tablets' inscribed ...writing, thereby providing a clear visualization that can be printed on paper. We first scan the tablets with 3D range scanners and use the scan data to construct a high-resolution 3D model (at a resolution of 50 microns). Next, we unwrap and warp the tablet surface to form a set of flat rectangles, one per side or edge of the tablet. This process permits all the writing to be seen at once, although necessarily slightly distorted. Finally, we apply curvature coloring and accessibility coloring to the unwrapped text, thereby replacing raking illumination with a nonphotorealistic rendering technique.
Halide Ragan-Kelley, Jonathan; Adams, Andrew; Sharlet, Dillon ...
Communications of the ACM,
01/2018, Letnik:
61, Številka:
1
Magazine Article
Odprti dostop
Writing high-performance code on modern machines requires not just locally optimizing inner loops, but globally reorganizing computations to exploit parallelism and locality---doing things such as ...tiling and blocking whole pipelines to fit in cache. This is especially true for image processing pipelines, where individual stages do much too little work to amortize the cost of loading and storing results to and from off-chip memory. As a result, the performance difference between a naive implementation of a pipeline and one globally optimized for parallelism and locality is often an order of magnitude. However, using existing programming tools, writing high-performance image processing code requires sacrificing simplicity, portability, and modularity. We argue that this is because traditional programming models conflate the computations defining the
algorithm
with decisions about intermediate storage and the order of computation, which we call the
schedule.
We propose a new programming language for image processing pipelines, called Halide, that separates the algorithm from its schedule. Programmers can change the schedule to express many possible organizations of a single algorithm. The Halide compiler then synthesizes a globally combined loop nest for an entire algorithm, given a schedule. Halide models a space of schedules which is expressive enough to describe organizations that match or outperform state-of-the-art hand-written implementations of many computational photography and computer vision algorithms. Its model is simple enough to do so often in only a few lines of code, and small changes generate efficient implementations for x86, ARM, Graphics Processors (GPUs), and specialized image processors, all from a single algorithm.
Halide has been public and open source for over four years, during which it has been used by hundreds of programmers to deploy code to tens of thousands of servers and hundreds of millions of phones, processing billions of images every day.
Volume rendering in radiation treatment planning Levoy, M.; Fuchs, H.; Pizer, S.M. ...
1990 Proceedings of the First Conference on Visualization in Biomedical Computing,
1990
Conference Proceeding
Successful treatment planning in radiation therapy depends in part on understanding the spatial relationship between patient anatomy and the distribution of radiation dose. Several visualizations ...based on volume rendering that offer potential solutions to this problem are presented. The visualizations use region boundary surfaces to display anatomy, polygonal meshes to display treatment beams, and isovalue contour surfaces to display dose. To improve perception of spatial relationships, metallic shading, surface and solid texturing, synthetic fog, shadows, and other artistic devices are used. Also outlined is a method based on 3-D mip maps for efficiently generating perspective volume renderings and beam's-eye views.< >
Synthetic texturing using digital filters Feibush, Eliot A.; Levoy, Marc; Cook, Robert L.
International Conference on Computer Graphics and Interactive Techniques: Proceedings of the 7th annual conference on Computer graphics and interactive techniques; 14-18 July 1980,
07/1980
Conference Proceeding
Odprti dostop
Aliasing artifacts are eliminated from computer generated images of textured polygons by equivalently filtering both the texture and the edges of the polygons. Different filters can be easily ...compared because the weighting functions that define the shape of the filters are pre-computed and stored in lookup tables. A polygon subdivision algorithm removes the hidden surfaces so that the polygons are rendered sequentially to minimize accessing the texture definition files. An implementation of the texture rendering procedure is described.
Although there has been much interest in computational photography within the research and photography communities, progress has been hampered by the lack of a portable, programmable camera with ...sufficient image quality and computing power. To address this problem, we have designed and implemented an open architecture and application programming interface (API) for such cameras: the Frankencamera. It consists of a base hardware specification, a software stack based on Linux, and an API for C++. Our architecture permits control and synchronization of the sensor and image processing pipeline at the microsecond timescale, as well as the ability to incorporate and synchronize external hardware like lenses and flashes. This paper specifies our architecture and API, and it describes two reference implementations we have built. Using these implementations, we demonstrate several computational photography applications: high dynamic range (HDR) viewfinding and capture, automated acquisition of extended dynamic range panoramas, foveal imaging, and inertial measurement unit (IMU)-based hand shake detection. Our goal is to standardize the architecture and distribute Frankencameras to researchers and students, as a step toward creating a community of photographer-programmers who develop algorithms, applications, and hardware for computational cameras.