Digital Camera Case - Embedded System Design - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Embedded System Design which includes Hardware Design, Elevator Controller, Simple Elevator Controller, Try Capturing, Unit Control, Request Resolver, Sequential Program Model, Partial English Description, System Interface etc. Key important points are: Digital Camera Case, Performance Analysis, Embedded System Designs, Simple Digital Camera, Requirements Specification, Design, Four Implementations, Interfacing, Memory, Standard

Typology: Slides

2012/2013

Uploaded on 03/22/2013

dhritiman
dhritiman 🇮🇳

4.7

(6)

106 documents

1 / 19

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
6-Performance Analysis of
Embedded System Designs:
Digital Camera Case Study
1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Partial preview of the text

Download Digital Camera Case - Embedded System Design - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

6-Performance Analysis of

Embedded System Designs:

Digital Camera Case Study

Outline

• Introduction to a simple digital camera

• Designer’s perspective

• Requirements specification

• Design

– Four implementations

Introduction to a simple digital camera

  • Captures images
  • Stores images in digital format
    • No film
    • Multiple images stored in camera
      • Number depends on amount of memory and bits used per image
  • Downloads images to PC
  • Only recently possible
    • Systems-on-a-chip
      • Multiple processors and memories on one IC
    • High-capacity flash memory
  • Very simple description used for example
    • Many more features with real digital camera
      • Variable size images, image deletion, digital stretching, zooming in and out, etc.

Designer’s perspective

• Two key tasks

– Processing images and storing in memory

• When shutter pressed:

  • Image captured
  • Converted to digital form by charge-coupled device (CCD)
  • Compressed and archived in internal memory

– Uploading images to PC

• Digital camera attached to PC

• Special software commands camera to transmit archived images

serially

Zero-bias error

  • Manufacturing errors cause cells to measure slightly above or below actual light intensity
  • Error typically same across columns, but different across rows
  • Some of left most columns blocked by black paint to detect zero-bias error
    • Reading of other than 0 in blocked cells is zero-bias error
    • Each row is corrected by subtracting the average error found in blocked cells for that row

Covered

cells

Before zero-bias adjustment (^) After zero-bias adjustment

Zero-bias

adjustment

Compression

  • Store more images
  • Transmit image to PC in less time
  • JPEG (Joint Photographic Experts Group)
    • Popular standard format for representing digital images in a compressed form
    • Provides for a number of different modes of operation
    • Mode used in this chapter provides high compression ratios using DCT (discrete cosine transform)
    • Image data divided into blocks of 8 x 8 pixels
    • 3 steps performed on each block
      • DCT
      • Quantization
      • Huffman encoding

Quantization step

• Achieve high compression ratio by reducing

image quality

  • Reduce bit precision of encoded data
    • Fewer bits needed for encoding
    • One way is to divide all values by a factor of 2

– Simple right shifts can do this

  • Dequantization would reverse process for decompression

After being decoded using DCT After quantization

Divide each cell’s value by 8

Huffman encoding step

  • Serialize 8 x 8 block of pixels
    • Values are converted into single list using zigzag pattern
  • Perform Huffman encoding
    • More frequently occurring pixels assigned short binary code
    • Longer binary codes left for less frequently occurring pixels
  • Each pixel in serial list converted to Huffman encoded values
    • Much shorter list, thus compression

Archive step

  • Record starting address and image size
    • Can use linked list
  • One possible way to archive images
    • If max number of images archived is N:
      • Set aside memory for N addresses and N image-size variables
      • Keep a counter for location of next available address
      • Initialize addresses and image-size variables to 0
      • Set global memory address to N x 4
        • Assuming addresses, image-size variables occupy N x 4 bytes
      • First image archived starting at address N x 4
      • Global memory address updated to N x 4 + (compressed image size)
  • Memory requirement based on N, image size, and average compression ratio

Uploading to PC

• When connected to PC and upload command

received

  • Read images from memory
  • Transmit serially using UART
  • While transmitting
    • Reset pointers, image-size variables and global memory pointer

accordingly

Nonfunctional requirements

  • Design metrics of importance based on initial specification
    • Performance : time required to process image
    • Size : number of elementary logic gates (2-input NAND gate) in IC
    • Power : measure of avg. electrical energy consumed while processing
    • Energy : battery lifetime (power x time)
  • Constrained metrics
    • Values must be below (sometimes above) certain threshold
  • Optimization metrics
    • Improved as much as possible to improve product
  • Metric can be both constrained and optimization

Nonfunctional requirements

(cont.)

  • Performance
    • Must process image fast enough to be useful
    • 1 sec reasonable constraint
      • Slower would be annoying
      • Faster not necessary for low-end of market
    • Therefore, constrained metric
  • Size
    • Must use IC that fits in reasonably sized camera
    • Constrained and optimization metric
      • Constraint may be 200,000 gates, but smaller would be cheaper
  • Power
    • Must operate below certain temperature (cooling fan not possible)
    • Therefore, constrained metric
  • Energy
    • Reducing power or time reduces energy
    • Optimized metric: want battery to last as long as possible

Refined functional specification

  • Refine informal specification into one that

can actually be executed

  • Can use C/C++ code to describe each

function

  • Called system-level model, prototype, or simply model
  • Also is first implementation
  • Can provide insight into operations of

system

  • Profiling can find computationally intensive functions
  • Can obtain sample output used to verify

correctness of final implementation

image file

101011010 110101010

..

CCD.C

CNTRL.C

UART.C

output file

101010101 010101010 101010101 0...

CCDPP.C CODEC.C

Executable model of digital camera