Computer Architectures for Medical Applications 3 rd Exercise, May 2, 2016

Size: px
Start display at page:

Download "Computer Architectures for Medical Applications 3 rd Exercise, May 2, 2016"

Transcription

1 Computer Architectures for Medical Applications 3 rd Exercise, May 2, 2016 University Erlangen-Nuremberg Computer Science 3 & Professorship for High Performance Computing CAMA Exercise 03 May 2,

2 Overview Solution of Previous Assignment Visualization of the Reconstruction Bilinear Interpolation Optimization o Exercise 1. Avoid Unnecessary Computations CAMA Exercise 03 May 2,

3 Sample Solution int RCTLoadAlgorithm(RabbitCtGlobalData* rcgd) { int L = rcgd->l; float *VOL = rcgd->f_l; /* allocate memory for the volume */ VOL = (float *)malloc(l*l*l * sizeof(float)); if (VOL == NULL) { perror("malloc"); exit(exit_failure); } /* initialize all voxels with 0.0f */ for (int i = 0; i < L*L*L; ++i) VOL[i] = 0.0f; return 1; } CAMA Exercise 03 May 2,

4 Sample Solution struct RabbitCtGlobalData { ///< problem size \in {128, 256, 512, 1024} unsigned int L; ///< projection image width unsigned int S_x; ///< projection image height (detector rows) unsigned int S_y; ///< 3x4 projetion matrix double * A_n; ///< projection image buffer float * I_n; ///< position of the 0-index in the world coordinate system float O_L;... CAMA Exercise 03 May 2,

5 Sample Solution int RCTAlgorithmBackprojection(RabbitCtGlobalData* rcgd) { int L = rcgd->l; float *I = rcgd->i_n; float *VOL = rcgd->f_l; double *A = rcgd->a_n; float O = rcgd->o_l; float V = rcgd->r_l; int width = rcgd->s_x; int height = rcgd->s_y; for (int z = 0; z < L; ++z) { for (int y = 0; y < L; ++y) { for (int x = 0; x < L; ++x) { // voxel update... CAMA Exercise 03 May 2,

6 Sample Solution /* convert voxel coordinates to world coordinates */ float wx = O+x*V; float wy = O+y*V; float wz = O+z*V; /* convert world coordinates to image coordinates */ float u = wx*a[0] + wy*a[3] + wz*a[6] + A[9]; float v = wx*a[1] + wy*a[4] + wz*a[7] + A[10]; float w = wx*a[2] + wy*a[5] + wz*a[8] + A[11]; /* normalize image coordinates */ int ix = u/w; int iy = v/w; CAMA Exercise 03 May 2,

7 Sample Solution... /* normalize image coordinates */ int ix = u/w; int iy = v/w; /* load intensity value from projection image; */ /* if the ray doesn t hit the detector, set value to 0.0f */ float val = 0.0f; if (ix >= 0 && ix < width && iy >= 0 && iy < height) val = I[iy*width+ix]; /* add weighted value to voxel in volume */ VOL[z*L*L + y*l + x] += val / (w*w); CAMA Exercise 03 May 2,

8 Sample Solution $./rabbitctrunner reference.so Running... this may take some time. (\_/) (=. =) (")_(") Quality of reconstructed volume: Root Mean Squared Error: HU Mean Squared Error: HU^2 Max. Absolute Error: 674 HU PSNR: db CAMA Exercise 03 May 2,

9 Overview Solution of Previous Assignment Visualization of the Reconstruction Bilinear Interpolation Optimization o Exercise 1. Avoid Unnecessary Computations CAMA Exercise 03 May 2,

10 Visualization of the Reconstruction Save volume to disk after reconstruction emmyxx$./rabbitctrunner reference.so o output_file Copy volume from Emmy to your CIP home faui04d$ scp camaxx@lima:path/to/rabbit/output_file.vol. Start Paraview faui04d$ paraview Open Volume in Paraview CAMA Exercise 03 May 2,

11 Visualization of the Reconstruction Paraview o File - Open output_file.vol (might not be shown in file dialog) o Open Data with RAW (binary) Files o Data Scalar Type: float o Data Byte Order: LittleEndian (x86) o Data Extent: 0, 127, 0, 127, 0, 127 o Representation: Volume CAMA Exercise 03 May 2,

12 Visualization of the Reconstruction CAMA Exercise 03 May 2,

13 Overview Visualization of the Reconstruction Bilinear Interpolation Optimization o Exercise 1. Avoid Unnecessary Computations CAMA Exercise 03 May 2,

14 Bilinear Interpolation Flat Panel Detector X-Ray Source CAMA Exercise 03 May 2,

15 Bilinear Interpolation Flat Panel Detector X-Ray Source CAMA Exercise 03 May 2,

16 Bilinear Interpolation iy 3 Integral values of the DCS are located in the pixel centers ix CAMA Exercise 03 May 2,

17 Bilinear Interpolation iy 3 Integral values of the DCS are located in the pixel centers ix CAMA Exercise 03 May 2,

18 Bilinear Interpolation iy 3 Integral values of the DCS are located in the pixel centers ix CAMA Exercise 03 May 2,

19 Bilinear Interpolation iy Integral values of the DCS are located in the pixel centers ix CAMA Exercise 03 May 2,

20 Bilinear Interpolation iy Integral values of the DCS are located in the pixel centers Up until now Round down (cast to int) ix CAMA Exercise 03 May 2,

21 Bilinear Interpolation iy Integral values of the DCS are located in the pixel centers Up until now Round down (cast to int) To increase quality of the result Bilinear Interpolation ix CAMA Exercise 03 May 2,

22 Bilinear Interpolation iy ix Integral values of the DCS are located in the pixel centers Up until now Round down (cast to int) To increase quality of the result Bilinear Interpolation Example here: low=i[2*4+1]*0.8+i[2*4+2]*0.2 CAMA Exercise 03 May 2,

23 Bilinear Interpolation iy ix Integral values of the DCS are located in the pixel centers Up until now Round down (cast to int) To increase quality of the result Bilinear Interpolation Example here: low=i[2*4+1]*0.8+i[2*4+2]*0.2 high=i[3*4+1]*0.8+i[3*4+2]*0.2 CAMA Exercise 03 May 2,

24 Bilinear Interpolation iy ix Integral values of the DCS are located in the pixel centers Up until now Round down (cast to int) To increase quality of the result Bilinear Interpolation Example here: low=i[2*4+1]*0.8+i[2*4+2]*0.2 high=i[3*4+1]*0.8+i[3*4+2]*0.2 val=low*0.2+high*0.8 CAMA Exercise 03 May 2,

25 Overview Visualization of the Reconstruction Bilinear Interpolation Optimization o Exercise 1. Avoid Unnecessary Computations CAMA Exercise 03 May 2,

26 for (int z = 0; z < L; ++z) { for (int y = 0; y < L; ++y) { for (int x = 0; x < L; ++x) { /* convert voxel coordinates to world coordinates */ float wx = O+x*V; float wy = O+y*V; float wz = O+z*V; /* convert world coordinates to image coordinates */ float u = wx*a[0] + wy*a[3] + wz*a[6] + A[9]; float v = wx*a[1] + wy*a[4] + wz*a[7] + A[10]; float w = wx*a[2] + wy*a[5] + wz*a[8] + A[11]; /* normalize image coordinates */ int ix = u/w; int iy = v/w; /* load intensity value from projection image; */ /* if the ray doesn t hit the detector, set value to 0.0f */ float val = 0.0f; if (ix >= 0 && ix < width && iy >= 0 && iy < height) val = I[iy*width+ix]; /* add weighted value to voxel in volume */ VOL[z*L*L + y*l + x] += val / (w*w); }}} CAMA Exercise 03 May 2,

27 for (int z = 0; z < L; ++z) { for (int y = 0; y < L; ++y) { for (int x = 0; x < L; ++x) { /* convert voxel coordinates to world coordinates */ float wx = O+x*V; float wy = O+y*V; float wz = O+z*V; /* convert world coordinates to image coordinates */ float u = wx*a[0] + wy*a[3] + wz*a[6] + A[9]; float v = wx*a[1] + wy*a[4] + wz*a[7] + A[10]; float w = wx*a[2] + wy*a[5] + wz*a[8] + A[11]; /* normalize image coordinates */ int ix = u/w; int iy = v/w; /* load intensity value from projection image; */ /* if the ray doesn t hit the detector, set value to 0.0f */ float val = 0.0f; if (ix >= 0 && ix < width && iy >= 0 && iy < height) val = I[iy*width+ix]; /* add weighted value to voxel in volume */ VOL[z*L*L + y*l + x] += val / (w*w); }}} CAMA Exercise 03 May 2,

28 Overview Visualization of the Reconstruction Bilinear Interpolation Optimization o Exercise 1. Avoid Unnecessary Computations CAMA Exercise 03 May 2,

29 Exercise Implement the bilinear interpolation o Measure runtime without and with bilinear interpolation o Hint: PSNR should be 100+ db o Visualize the result and look for differences Avoid unnecessary computations o Runtime before/after Hint o Create a new shared object for each improvement $ cp modules/reference.c modules/bilinear.c $ cp modules/bilinear.c modules/bilinear_opt1.c o All new modules are automatically compiled using make o Run with e.g../rabbitctrunner bilinear.so CAMA Exercise 03 May 2,

Computer Architectures for Medical Applications 4 th Exercise, May 9, 2016

Computer Architectures for Medical Applications 4 th Exercise, May 9, 2016 Cmputer Architectures fr Medical Applicatins 4 th Exercise, May 9, 2016 Universität Erlangen-Nürnberg Lehrstuhl für Infrmatik 3 / Prfessur für Höchstleistungsrechnen CAMA Exercise 04 May 9, 2016 1 Overview

More information

Computer Architectures for! Medical Applications

Computer Architectures for! Medical Applications Computer Architectures for! Medical Applications 1. Exercise, 14.4.2014 University Erlangen-Nuremberg Chair for Computer Architecture & Professorship for High Performance Computing Organizational Matters!

More information

Evaluation of Intel Xeon Phi "Knights Corner": Opportunities and Shortcomings

Evaluation of Intel Xeon Phi Knights Corner: Opportunities and Shortcomings ERLANGEN REGIONAL COMPUTING CENTER Evaluation of Intel Xeon Phi "Knights Corner": Opportunities and Shortcomings J. Eitzinger 29.6.2016 Technologies Driving Performance Technology 1991 1992 1993 1994 1995

More information

Comparison of High-Speed Ray Casting on GPU

Comparison of High-Speed Ray Casting on GPU Comparison of High-Speed Ray Casting on GPU using CUDA and OpenGL November 8, 2008 NVIDIA 1,2, Andreas Weinlich 1, Holger Scherl 2, Markus Kowarschik 2 and Joachim Hornegger 1 1 Chair of Pattern Recognition

More information

Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:

Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements: Chapter 3 Texture mapping Learning Goals: 1. To understand texture mapping mechanisms in VRT 2. To import external textures and to create new textures 3. To manipulate and interact with textures 4. To

More information

Real-Time High-Resolution Sparse Voxelization with. Application to Image-Based Modeling

Real-Time High-Resolution Sparse Voxelization with. Application to Image-Based Modeling Real-Time High-Resolution Sparse Voxelization with Application to Image-Based Modeling Charles Loop Cha Zhang Zhengyou Zhang Goal: live free-viewpoint visualization of remote scenes Scene capture from

More information

Implementation of a backprojection algorithm on CELL

Implementation of a backprojection algorithm on CELL Implementation of a backprojection algorithm on CELL Mario Koerner March 17, 2006 1 Introduction X-ray imaging is one of the most important imaging technologies in medical applications. It allows to look

More information

Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm

Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm 15-123 Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm The Assignment Summary: In this assignment we are planning to manipulate

More information

CUDA. Schedule API. Language extensions. nvcc. Function type qualifiers (1) CUDA compiler to handle the standard C extensions.

CUDA. Schedule API. Language extensions. nvcc. Function type qualifiers (1) CUDA compiler to handle the standard C extensions. Schedule CUDA Digging further into the programming manual Application Programming Interface (API) text only part, sorry Image utilities (simple CUDA examples) Performace considerations Matrix multiplication

More information

Digital Image Fundamentals. Prof. George Wolberg Dept. of Computer Science City College of New York

Digital Image Fundamentals. Prof. George Wolberg Dept. of Computer Science City College of New York Digital Image Fundamentals Prof. George Wolberg Dept. of Computer Science City College of New York Objectives In this lecture we discuss: - Image acquisition - Sampling and quantization - Spatial and graylevel

More information

Programming refresher and intro to C programming

Programming refresher and intro to C programming Applied mechatronics Programming refresher and intro to C programming Sven Gestegård Robertz sven.robertz@cs.lth.se Department of Computer Science, Lund University 2018 Outline 1 C programming intro 2

More information

Watershed Sciences 4930 & 6920 GEOGRAPHIC INFORMATION SYSTEMS

Watershed Sciences 4930 & 6920 GEOGRAPHIC INFORMATION SYSTEMS HOUSEKEEPING Watershed Sciences 4930 & 6920 GEOGRAPHIC INFORMATION SYSTEMS CONTOURS! Self-Paced Lab Due Friday! WEEK SIX Lecture RASTER ANALYSES Joe Wheaton YOUR EXCERCISE Integer Elevations Rounded up

More information

GPU Computing with CUDA

GPU Computing with CUDA GPU Computing with CUDA Hands-on: CUDA Profiling, Thrust Dan Melanz & Dan Negrut Simulation-Based Engineering Lab Wisconsin Applied Computing Center Department of Mechanical Engineering University of Wisconsin-Madison

More information

arxiv: v1 [cs.dc] 29 Jan 2014

arxiv: v1 [cs.dc] 29 Jan 2014 Comparing the Performance of Different x86 SIMD Instruction Sets for a Medical Imaging Application on Modern Multi- and Manycore Chips Johannes Hofmann Chair for Computer Architecture University Erlangen

More information

Colour and Number Representation. From Hex to Binary and Back. Colour and Number Representation. Colour and Number Representation

Colour and Number Representation. From Hex to Binary and Back. Colour and Number Representation. Colour and Number Representation Colour and Number Representation From Hex to Binary and Back summary: colour representation easy: replace each hexadecimal "digit" with the corresponding four binary digits using the conversion table examples:

More information

Radiography and Tomography Lab 2: Computing Radiographs

Radiography and Tomography Lab 2: Computing Radiographs Radiography and Tomography Lab 2: Computing Radiographs An Abbreviated View of Radiography Transmission Radiography is the process of measuring and recording changes in a high-energy particle beam (X-rays,

More information

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz Computing Visibility BSP Trees Ray Casting Depth Buffering Quiz Power of Plane Equations We ve gotten a lot of mileage out of one simple equation. Basis for D outcode-clipping Basis for plane-at-a-time

More information

Image Prediction Based on Kalman Filtering for Interactive Simulation Environments

Image Prediction Based on Kalman Filtering for Interactive Simulation Environments Image Prediction Based on Kalman Filtering for Interactive Simulation Environments M. SCHNITZLER, A. KUMMERT Department of Electrical and Information Engineering, Communication Theory University of Wuppertal

More information

DB Wide Table Storage. Summer Torsten Grust Universität Tübingen, Germany

DB Wide Table Storage. Summer Torsten Grust Universität Tübingen, Germany DB 2 01 03 Wide Table Storage Summer 2018 Torsten Grust Universität Tübingen, Germany 1 Q₂ Querying a Wider Table 02 The next SQL probe Q₂ looks just Q₁. We query a wider table now, however: SELECT t.*

More information

NAME VCamera camera model representation

NAME VCamera camera model representation NAME VCamera camera model representation SYNOPSIS #include void VRegisterCameraType (void); extern VRepnKind VCameraRepn; VCamera camera; ld... -lvcam -lvista -lm -lgcc... DESCRIPTION

More information

More on Images and Matlab

More on Images and Matlab More on Images and Matlab Prof. Eric Miller elmiller@ece.tufts.edu Fall 2007 EN 74-ECE Image Processing Lecture 3-1 Matlab Data Types Different means of representing numbers depending on what you want

More information

Data Types & Variables

Data Types & Variables Fundamentals of Programming Data Types & Variables Budditha Hettige Exercise 3.1 Write a C++ program to display the following output. Exercise 3.2 Write a C++ program to calculate and display total amount

More information

Input Nodes. Surface Input. Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking

Input Nodes. Surface Input. Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking Input Nodes Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking The different Input nodes, where they can be found, what their outputs are. Surface Input When editing a surface,

More information

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Data Structures Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous

More information

Motivation. Gray Levels

Motivation. Gray Levels Motivation Image Intensity and Point Operations Dr. Edmund Lam Department of Electrical and Electronic Engineering The University of Hong ong A digital image is a matrix of numbers, each corresponding

More information

Type Checking. Prof. James L. Frankel Harvard University

Type Checking. Prof. James L. Frankel Harvard University Type Checking Prof. James L. Frankel Harvard University Version of 7:10 PM 27-Feb-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. C Types C Types Type Category Type Category Type

More information

! " #$$$! " %&&' ( ) (* )+!) )!, + + * *! "! " -. #$$/ ) ) * ) +, ( * +,*!)! +, ") +.!(.(, ",.(! " * %$$ *. + * +. ++ * +,*!). + %'$ *! " )! *. +! * ).! ( ) +..), )(!, (. + ), (! +, )!,,! ( +!(! +, +

More information

Shadows and Texture Mapping

Shadows and Texture Mapping Shadows and Texture Mapping Eric C. McCreath School of Computer Science The Australian National University ACT 0200 Australia ericm@cs.anu.edu.au Overview 2 Shadows Textures Importance Co ordinates OpenGL

More information

Ulrik Söderström 17 Jan Image Processing. Introduction

Ulrik Söderström 17 Jan Image Processing. Introduction Ulrik Söderström ulrik.soderstrom@tfe.umu.se 17 Jan 2017 Image Processing Introduction Image Processsing Typical goals: Improve images for human interpretation Image processing Processing of images for

More information

Sparse Matrices. sparse many elements are zero dense few elements are zero

Sparse Matrices. sparse many elements are zero dense few elements are zero Sparse Matrices sparse many elements are zero dense few elements are zero Special Matrices A square matrix has the same number of rows and columns. Some special forms of square matrices are Diagonal: M(i,j)

More information

First of all, it is a variable, just like other variables you studied

First of all, it is a variable, just like other variables you studied Pointers: Basics What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the address (rather than the value)

More information

GPU Computing with CUDA

GPU Computing with CUDA GPU Computing with CUDA Hands-on: Shared Memory Use (Dot Product, Matrix Multiplication) Dan Melanz & Dan Negrut Simulation-Based Engineering Lab Wisconsin Applied Computing Center Department of Mechanical

More information

OpenCL C. Matt Sellitto Dana Schaa Northeastern University NUCAR

OpenCL C. Matt Sellitto Dana Schaa Northeastern University NUCAR OpenCL C Matt Sellitto Dana Schaa Northeastern University NUCAR OpenCL C Is used to write kernels when working with OpenCL Used to code the part that runs on the device Based on C99 with some extensions

More information

OptimiData. JPEG2000 Software Development Kit for C/C++ Reference Manual. Version 1.6. from

OptimiData. JPEG2000 Software Development Kit for C/C++  Reference Manual. Version 1.6. from OptimiData for optimized data handling JPEG2000 Software Development Kit for C/C++ Reference Manual Version 1.6 from 2004-07-29 (Windows and Linux Versions) www.optimidata.com OptimiData JPEG2000 C-SDK

More information

CS 430 Spring Mike Lam, Professor. Data Types and Type Checking

CS 430 Spring Mike Lam, Professor. Data Types and Type Checking CS 430 Spring 2015 Mike Lam, Professor Data Types and Type Checking Type Systems Type system Rules about valid types, type compatibility, and how data values can be used Benefits of a robust type system

More information

Image warping and stitching

Image warping and stitching Image warping and stitching May 4 th, 2017 Yong Jae Lee UC Davis Last time Interactive segmentation Feature-based alignment 2D transformations Affine fit RANSAC 2 Alignment problem In alignment, we will

More information

Week 3 Lecture 2. Types Constants and Variables

Week 3 Lecture 2. Types Constants and Variables Lecture 2 Types Constants and Variables Types Computers store bits: strings of 0s and 1s Types define how bits are interpreted They can be integers (whole numbers): 1, 2, 3 They can be characters 'a',

More information

Computer Vision Projective Geometry and Calibration. Pinhole cameras

Computer Vision Projective Geometry and Calibration. Pinhole cameras Computer Vision Projective Geometry and Calibration Professor Hager http://www.cs.jhu.edu/~hager Jason Corso http://www.cs.jhu.edu/~jcorso. Pinhole cameras Abstract camera model - box with a small hole

More information

1. Complete these exercises to practice creating user functions in small sketches.

1. Complete these exercises to practice creating user functions in small sketches. Lab 6 Due: Fri, Nov 4, 9 AM Consult the Standard Lab Instructions on LEARN for explanations of Lab Days ( D1, D2, D3 ), the Processing Language and IDE, and Saving and Submitting. Rules: Do not use the

More information

PostScript Internals Graphics II Spring 1999

PostScript Internals Graphics II Spring 1999 PostScript Internals 15-463 Graphics II Spring 1999 Background PostScript raster image processor for Mac All Level 1 features Some support for color and multi-bit devices Undergrad independent study: MacRIP

More information

Outline. Review of Last Week II. Review of Last Week. Computer Memory. Review Variables and Memory. February 7, Data Types

Outline. Review of Last Week II. Review of Last Week. Computer Memory. Review Variables and Memory. February 7, Data Types Data Types Declarations and Initializations Larry Caretto Computer Science 16 Computing in Engineering and Science February 7, 25 Outline Review last week Meaning of data types Integer data types have

More information

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

TESTING OF THE CIRCLE AND LINE ALGORITHM IN THE SETTING OF MICRO-CT

TESTING OF THE CIRCLE AND LINE ALGORITHM IN THE SETTING OF MICRO-CT SCA2016-080 1/7 TESTING OF THE CIRCLE AND LINE ALGORITHM IN THE SETTING OF MICRO-CT Alexander Katsevich 1, 2 and Michael Frenkel 1 1 itomography Corp., 2 University of Central Florida (UCF) This paper

More information

Lecture 8 Dynamic Memory Allocation

Lecture 8 Dynamic Memory Allocation Lecture 8 Dynamic Memory Allocation CS240 1 Memory Computer programs manipulate an abstraction of the computer s memory subsystem Memory: on the hardware side 3 @ http://computer.howstuffworks.com/computer-memory.htm/printable

More information

Image warping and stitching

Image warping and stitching Image warping and stitching May 5 th, 2015 Yong Jae Lee UC Davis PS2 due next Friday Announcements 2 Last time Interactive segmentation Feature-based alignment 2D transformations Affine fit RANSAC 3 Alignment

More information

Siemens S (symbolic addressing) (Ethernet)

Siemens S (symbolic addressing) (Ethernet) Siemens S7-1200 (symbolic addressing) (Ethernet) Supported Series: Siemens S7-1200 series Ethernet. Website: http://www.siemens.com/entry/cc/en/ HMI Setting: Parameters Recommended Options Notes PLC type

More information

We will start our journey into Processing with creating static images using commands available in Processing:

We will start our journey into Processing with creating static images using commands available in Processing: Processing Notes Chapter 1: Starting Out We will start our journey into Processing with creating static images using commands available in Processing: rect( ) line ( ) ellipse() triangle() NOTE: to find

More information

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays A First Book of ANSI C Fourth Edition Chapter 8 Arrays Objectives One-Dimensional Arrays Array Initialization Arrays as Function Arguments Case Study: Computing Averages and Standard Deviations Two-Dimensional

More information

Scheduling Image Processing Pipelines

Scheduling Image Processing Pipelines Lecture 14: Scheduling Image Processing Pipelines Visual Computing Systems Simple image processing kernel int WIDTH = 1024; int HEIGHT = 1024; float input[width * HEIGHT]; float output[width * HEIGHT];

More information

Viewing and Ray Tracing. CS 4620 Lecture 4

Viewing and Ray Tracing. CS 4620 Lecture 4 Viewing and Ray Tracing CS 4620 Lecture 4 2014 Steve Marschner 1 Projection To render an image of a 3D scene, we project it onto a plane Most common projection type is perspective projection 2014 Steve

More information

Viewing and Ray Tracing

Viewing and Ray Tracing Viewing and Ray Tracing CS 4620 Lecture 4 2018 Steve Marschner 1 Projection To render an image of a 3D scene, we project it onto a plane Most common projection type is perspective projection 2018 Steve

More information

Daala: One year later

Daala: One year later Daala: One year later Timothy B. Terriberry Original Plan Finish Daala by the end of 2015 This obviously ain t gonna happen 2 Original Plan Finish Daala by the end of 2015 This obviously ain t gonna happen

More information

Splatting (feed-forward) Fill the holes. Process for volume rendering. Footprint Evaluation for Volume Rendering. Feed Backward vs.

Splatting (feed-forward) Fill the holes. Process for volume rendering. Footprint Evaluation for Volume Rendering. Feed Backward vs. Footprint Evaluation for Volume Rendering A Feedforward Approach a.k.a. Process for volume rendering Reconstruct the continuous volume function Shade the continuous function Project this continuous function

More information

Indirect Illumination

Indirect Illumination Indirect Illumination Michael Kazhdan (601.457/657) HB Ch. 14.1, 14.2 FvDFH 16.1, 16.2 Announcements Midterm on October 17 th Office hours: Misha: Monday 2-3 Malone 229 Sing Chun: Friday 9-10 Malone 216

More information

Motivation. Intensity Levels

Motivation. Intensity Levels Motivation Image Intensity and Point Operations Dr. Edmund Lam Department of Electrical and Electronic Engineering The University of Hong ong A digital image is a matrix of numbers, each corresponding

More information

QUIZ Lesson 4. Exercise 4: Write an if statement that assigns the value of x to the variable y if x is in between 1 and 20, otherwise y is unchanged.

QUIZ Lesson 4. Exercise 4: Write an if statement that assigns the value of x to the variable y if x is in between 1 and 20, otherwise y is unchanged. QUIZ Lesson 4 Exercise 4: Write an if statement that assigns the value of x to the variable y if x is in between 1 and 20, otherwise y is unchanged. QUIZ Lesson 4 Exercise 4: Write an if statement that

More information

CS 33. Data Representation, Part 2. CS33 Intro to Computer Systems VIII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CS 33. Data Representation, Part 2. CS33 Intro to Computer Systems VIII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. CS 33 Data Representation, Part 2 CS33 Intro to Computer Systems VIII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Numeric Ranges Unsigned Values UMin = 0 000 0 UMax = 2 w 1 111 1 Two s Complement

More information

The C++ Language. Arizona State University 1

The C++ Language. Arizona State University 1 The C++ Language CSE100 Principles of Programming with C++ (based off Chapter 2 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University

More information

HW 1: Project Report (Camera Calibration)

HW 1: Project Report (Camera Calibration) HW 1: Project Report (Camera Calibration) ABHISHEK KUMAR (abhik@sci.utah.edu) 1 Problem The problem is to calibrate a camera for a fixed focal length using two orthogonal checkerboard planes, and to find

More information

C Concepts - I/O. Lecture 19 COP 3014 Fall November 29, 2017

C Concepts - I/O. Lecture 19 COP 3014 Fall November 29, 2017 C Concepts - I/O Lecture 19 COP 3014 Fall 2017 November 29, 2017 C vs. C++: Some important differences C has been around since around 1970 (or before) C++ was based on the C language While C is not actually

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

IDL Lab #6: The IDL Command Line

IDL Lab #6: The IDL Command Line IDL Lab #6: The IDL Command Line Name: IDL Lab #6: A Sub-component of FOR 504 Advanced Topics in Remote Sensing The objectives of this laboratory exercise are to introduce the student to using IDL via

More information

Submission instructions (read carefully): SS17 / Assignment 4 Instructor: Markus Püschel. ETH Zurich

Submission instructions (read carefully): SS17 / Assignment 4 Instructor: Markus Püschel. ETH Zurich 263-2300-00: How To Write Fast Numerical Code Assignment 4: 120 points Due Date: Th, April 13th, 17:00 http://www.inf.ethz.ch/personal/markusp/teaching/263-2300-eth-spring17/course.html Questions: fastcode@lists.inf.ethz.ch

More information

Give one example where you might wish to use a three dimensional array

Give one example where you might wish to use a three dimensional array CS 110: INTRODUCTION TO COMPUTER SCIENCE SAMPLE TEST 3 TIME ALLOWED: 60 MINUTES Student s Name: MAXIMUM MARK 100 NOTE: Unless otherwise stated, the questions are with reference to the Java Programming

More information

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

COP 3223 Introduction to Programming with C - Study Union - Fall 2017 COP 3223 Introduction to Programming with C - Study Union - Fall 2017 Chris Marsh and Matthew Villegas Contents 1 Code Tracing 2 2 Pass by Value Functions 4 3 Statically Allocated Arrays 5 3.1 One Dimensional.................................

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

ArduCAM USB Camera SDK

ArduCAM USB Camera SDK ArduCAM USB Camera SDK User Guide Rev 1.0, April 2017 Table of Contents 1 Introduction... 2 2 USB SDK Library... 2 3 Demo Code... 2 3.1 Thread.cpp... 2 3.2 USBTestDlg.cpp... 2 4 ArduCAM APIs... 2 4.1 Data

More information

Announcements. Mosaics. How to do it? Image Mosaics

Announcements. Mosaics. How to do it? Image Mosaics Announcements Mosaics Project artifact voting Project 2 out today (help session at end of class) http://www.destination36.com/start.htm http://www.vrseattle.com/html/vrview.php?cat_id=&vrs_id=vrs38 Today

More information

Indirect Illumination

Indirect Illumination Indirect Illumination Michael Kazhdan (601.457/657) HB Ch. 14.1, 14.2 FvDFH 16.1, 16.2 Surface Illumination Calculation Multiple light source: 2 Viewer N 1 V I = I E + K A I A + K D N, + K S V, R n I Overview

More information

Arrays. An array is a collection of several elements of the same type. An array variable is declared as array name[size]

Arrays. An array is a collection of several elements of the same type. An array variable is declared as array name[size] (November 10, 2009 2.1 ) Arrays An array is a collection of several elements of the same type. An array variable is declared as type array name[size] I The elements are numbered as 0, 1, 2... size-1 I

More information

CIS 2107 Computer Systems and Low-Level Programming Spring 2012 Final

CIS 2107 Computer Systems and Low-Level Programming Spring 2012 Final Spring 2012 Name: Page Points Score 1 14 2 7 3 6 4 5 5 5 6 5 7 10 8 11 9 10 10 9 11 8 12 10 Total: 100 Instructions The exam is closed book, closed notes. You may not use a calculator, cell phone, etc.

More information

Non-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words.

Non-numeric types, boolean types, arithmetic. operators. Comp Sci 1570 Introduction to C++ Non-numeric types. const. Reserved words. , ean, arithmetic s s on acters Comp Sci 1570 Introduction to C++ Outline s s on acters 1 2 3 4 s s on acters Outline s s on acters 1 2 3 4 s s on acters ASCII s s on acters ASCII s s on acters Type: acter

More information

ECE331 Homework 4. Due Monday, August 13, 2018 (via Moodle)

ECE331 Homework 4. Due Monday, August 13, 2018 (via Moodle) ECE331 Homework 4 Due Monday, August 13, 2018 (via Moodle) 1. Below is a list of 32-bit memory address references, given as hexadecimal byte addresses. The memory accesses are all reads and they occur

More information

ECE 190 Midterm Exam 3 Spring 2011

ECE 190 Midterm Exam 3 Spring 2011 ECE 190 Midterm Exam 3 Spring 2011 Practice Exam Notes: This exam will consist entirely of five programming problems. Each problem will be graded separately. We will provide skeleton codes for each problem.

More information

ANSI C Programming Simple Programs

ANSI C Programming Simple Programs ANSI C Programming Simple Programs /* This program computes the distance between two points */ #include #include #include main() { /* Declare and initialize variables */ double

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

COP 3223 Introduction to Programming with C - Study Union - Fall 2017 COP 3223 Introduction to Programming with C - Study Union - Fall 2017 Chris Marsh and Matthew Villegas Contents 1 Code Tracing 2 2 Pass by Value Functions 4 3 Statically Allocated Arrays 5 3.1 One Dimensional.................................

More information

Brook+ Data Types. Basic Data Types

Brook+ Data Types. Basic Data Types Brook+ Data Types Important for all data representations in Brook+ Streams Constants Temporary variables Brook+ Supports Basic Types Short Vector Types User-Defined Types 29 Basic Data Types Basic data

More information

1. Stereo Correspondence. (100 points)

1. Stereo Correspondence. (100 points) 1. Stereo Correspondence. (100 points) For this problem set you will solve the stereo correspondence problem using dynamic programming. The goal of this algorithm is to find the lowest cost matching between

More information

Tema 6: Dynamic memory

Tema 6: Dynamic memory Tema 6: Programming 2 and vectors defined with 2013-2014 and Index and vectors defined with and 1 2 3 and vectors defined with and and vectors defined with and Size is constant and known a-priori when

More information

Parallel Image Processing

Parallel Image Processing Parallel Image Processing Course Level: CS1 PDC Concepts Covered: PDC Concept Concurrency Data parallel Bloom Level C A Programming Skill Covered: Loading images into arrays Manipulating images Programming

More information

HW2d Project Addenda

HW2d Project Addenda HW2d Project Addenda CS 320 Note the following differences between the project description for Harvard s CS 175 class and our class: 1. The CS 175 due date is not applicable. 2. The starter code location

More information

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1 Ray tracing Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 3/19/07 1 From last time Hidden surface removal Painter s algorithm Clipping algorithms Area subdivision BSP trees Z-Buffer

More information

How to declare an array in C?

How to declare an array in C? Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous values.

More information

Table of Contents THE ANALYZEAVW IMAGE FILE FORMAT. 1. Organizing a List of DICOM Files page 2

Table of Contents THE ANALYZEAVW IMAGE FILE FORMAT. 1. Organizing a List of DICOM Files page 2 1 Table of Contents 1. Organizing a List of DICOM Files page 2 2. AVW_VolumeFile as a Header to a Single Binary File page 4 3. Organizing a List of Unknown Files page 5 4. AnalyzeAVW Image File Format

More information

Data Structure Lecture#15: Non-Binary Trees 2 (Chapter 6) U Kang Seoul National University

Data Structure Lecture#15: Non-Binary Trees 2 (Chapter 6) U Kang Seoul National University Data Structure Lecture#15: Non-Binary Trees 2 (Chapter 6) U Kang Seoul National University U Kang (2016) 1 In This Lecture Main ideas in implementations of general trees Compare advantages and disadvantages

More information

Assignment #5: Scalar Field Visualization 3D: Direct Volume Rendering

Assignment #5: Scalar Field Visualization 3D: Direct Volume Rendering Assignment #5: Scalar Field Visualization 3D: Direct Volume Rendering Goals: Due October 4 th, before midnight This is the continuation of Assignment 4. The goal is to implement a simple DVR -- 2D texture-based

More information

Texture Mapping 1/34

Texture Mapping 1/34 Texture Mapping 1/34 Texture Mapping Offsets the modeling assumption that the BRDF doesn t change in u and v coordinates along the object s surface Store a reflectance as an image called a texture Map

More information

Image Processing. Overview. Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization. Sampling and Reconstruction

Image Processing. Overview. Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization. Sampling and Reconstruction Image Processing Overview Image Representation What is an image? Halftoning and Dithering Trade spatial resolution for intensity resolution Reduce visual artifacts due to quantization Sampling and Reconstruction

More information

Raima Database Manager Version 14.1 In-memory Database Engine

Raima Database Manager Version 14.1 In-memory Database Engine + Raima Database Manager Version 14.1 In-memory Database Engine By Jeffrey R. Parsons, Chief Engineer November 2017 Abstract Raima Database Manager (RDM) v14.1 contains an all new data storage engine optimized

More information

heman Documentation Release r1 Philip Rideout

heman Documentation Release r1 Philip Rideout heman Documentation Release r1 Philip Rideout August 17, 2015 Contents 1 Why the name heman? 3 2 Source code 5 3 Documentation 7 3.1 Heman Overview............................................. 7 3.2 Heman

More information

The New C Standard (Excerpted material)

The New C Standard (Excerpted material) The New C Standard (Excerpted material) An Economic and Cultural Commentary Derek M. Jones derek@knosof.co.uk Copyright 2002-2008 Derek M. Jones. All rights reserved. 39 3.2 3.2 additive operators pointer

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Number Representation & Conversion

Number Representation & Conversion Number Representation & Conversion Chapter 4 Under the covers of numbers in Java 1 How (Unsigned) Integers Work Base 10 Decimal (People) Base 2 Binary (Computer) 10 2 10 1 10 0 2 3 4 2 7 2 6 2 5 2 4 2

More information

Digital Video Processing

Digital Video Processing Video signal is basically any sequence of time varying images. In a digital video, the picture information is digitized both spatially and temporally and the resultant pixel intensities are quantized.

More information

OBJECTIVE QUESTIONS: Choose the correct alternative:

OBJECTIVE QUESTIONS: Choose the correct alternative: OBJECTIVE QUESTIONS: Choose the correct alternative: 1. Function is data type a) Primary b) user defined c) derived d) none 2. The declaration of function is called a) function prototype b) function call

More information

Binghamton University. CS-211 Fall Data Conversion. software diversity in action

Binghamton University. CS-211 Fall Data Conversion. software diversity in action Data Conversion software diversity in action 1 What happens when types are mixed? Mixed Type Expressions int x; float y; x=y*x; Assignment Statements int x; float y; x=y*3.0; Argument Evaluation int myfn(float

More information

Pointers (continued), arrays and strings

Pointers (continued), arrays and strings Pointers (continued), arrays and strings 1 Last week We have seen pointers, e.g. of type char *p with the operators * and & These are tricky to understand, unless you draw pictures 2 Pointer arithmetic

More information

Lecture 2: C Programm

Lecture 2: C Programm 0 3 E CS 1 Lecture 2: C Programm ing C Programming Procedural thought process No built in object abstractions data separate from methods/functions Low memory overhead compared to Java No overhead of classes

More information

Microcontroller Systems. ELET 3232 Topic 8: Structures, Arrays, & Pointers

Microcontroller Systems. ELET 3232 Topic 8: Structures, Arrays, & Pointers Microcontroller Systems ELET 3232 Topic 8: Structures, Arrays, & Pointers 1 Agenda Become familiar with and apply: Arrays Structures Pointers 2 Array Arrays A data set of a particular data type All elements

More information