600 likes | 775 Views
Final Year Project 2008-2009. A CMOS imager with compact digital pixel sensor (BA1-08) Supervisor: Dr. Amine Bermak Group Members: Chang Kwok Hung 06239718 Kwok Kam Kin 06092639 Kwan Tsz Chun 06130704. Outline. Aim of our project Introduction Pixel Sensor Huffman encoding system
E N D
Final Year Project 2008-2009 A CMOS imager with compact digital pixel sensor (BA1-08) Supervisor: Dr. Amine Bermak Group Members: Chang Kwok Hung 06239718 Kwok Kam Kin 06092639 Kwan Tsz Chun 06130704
Outline • Aim of our project • Introduction • Pixel Sensor • Huffman encoding system • Control system • Performance • Q&A
Aims of our project • Aims: • To design a compact digital pixel sensor using effective compression scheme based on Different Pulse Code Modulation processing • To implement Huffman encoding scheme in order to provide further compression on the differential signal output
Aims of our project • Why is image compression important? • Minimize storage size • Minimize silicon area of the chip • Speed enhancement
Aim of our project • The advantages of a single chip imager: • Low noise • Low power consumption • Total cost is low
Aim of our project • Comparison between CDD and CMOS Imager
Introduction • Categories of CMOS Image Sensors • Passive Pixel Sensor (PPS) • Active Pixel Sensor (APS) • Digital Pixel Sensor (DPS)
Introduction • Passive Pixel Sensor (PPS) High Fill factor Signal-to-noise ratio (SNR) is poor Shared analog to digital convertor (ADC). Row select Column bus
Introduction • Active Pixel Sensor (APS) Signal amplifier is included Larger SNR Lower fill factor Shared ADC Vdd Row select Reset Column bus Simple amplifier
Introduction • Digital Pixel Sensor (DPS) ADC is installed in each pixel. SNR is larger Speed is higher Vdd Column bus Row select Reset Vref ADC
Row Select ADC Column select Introduction • Comparison between APS and DPS Pixel 1 Pixel 2 Pixel 3 Pixel 4 Pixel 1 Row Select Pixel 2 Pixel 3 Pixel 4 Column select Pixel select Analog to digital conversion Signal read
Differential Pulse Code Modulation • By utilizing the difference between the sample values of 2 successive pixels, the number of bits of memory can be reduced • As the degree of redundancy is particularly high in normal images, DPCM can effectively decrease the size of the on-chip memory
Pixel Sensor • Photodiode • Comparator • Reconfigurable 5-bits up/down counter
Photodiode • A photodiode is a reversed-bias diode with internal capacitance • Current flows with different magnitudes according to the illumination
Pixel Sensor • Block diagram
Discharge time • The discharge time depends on the illumination
Reconfigurable up/down counter • Count up when receiving a pulse from the current pixel • Count down when receiving a pulse from the neighbor pixel
Reconfigurable up/down counter • Timing Diagram:
Potential Problems • Overflow problem • Crashes of input pulses
Overflow handling • Overflow is a serious problem as it affects the data recovery in the external environment • Solution: • Stop counting up when the memory is 01111 • Stop counting down when the memory is 10000
Crashes of input pulses handling • When pulses from the current pixel and the neighbor pixel received at the same time, the counter cannot work • Solution • Add a buffer to delay one of the pulses • Cancelling each other
Huffman encoding system Huffman coding A variable-length encoding scheme. Lossless compression Length of the codeword depends on the occurrence of the sample value An example of Huffman coding (http://skylondaworks.com/sc_huff.htm)
Codeword Assignment Average Length=3.59 -28.2% from DPCM values
Performance is content dependent 8x8 BITMAP (Color not in scale) DPCM ±15 DPCM ±4 185 200 184 180 Huffman codeword length= 8 Resultant size=(8x8-1)x8= 504bits Huffman codeword length= 5 Resultant size=(8x8-1)x5= 315 bits
Example of Huffman codeword 0 2 7 14 11111011010010100100 MCU Serial link
Implementation • Combinational logic • Input: DPCM values from the pixel grid • Output: Huffman codeword and its length Pixel grid CONTROL
Methodology • K-map • Common term discovery • Solution minimization • NAND-NOR combination
Methodology – K-Map K-map of CW5
Summary- Huffman encoder • Convert DPCM value to Huffman codeword • 18 common terms • Implementation done by 428 gates
Control System • It consists of 3 parts • Interface • 8-bit Shift Register • 4-bit Counter • 14-bit Counter • Row Decoder • Column Multiplexer
Control System Control logic Delay path Hand shake protocol interface
Control Logic • Async with data link • Hand shake protocol communication Delay counter 14-bit pixel counter
Interface • Synchronous to datalink • Send request to control logic • Serve MCU request • It consists of 2 main elements • 8-bit Shift Register for huffman code stream • 4-bit Counter for code length
Control System Wait if: Delay counter do not finish counting or 14-bit counter reach the top or 4-bit length counter finish counting
Receive codeword signal from Hoffman encoder Transfer the received signal to MCU 8-bit Shift Register
4-bit Counter Keeps tracking the length of the codeword from the Hoffman encoder It is 4 bits since the maximum length of the codeword is 8 When the counter value reached zero, shift register is acknowledged to get the new branch of data.
14-bit Counter • Control the row decoder and column multiplexer to select the right piece of pixel. • The 7 less significant bits are connected to column multiplexer while the 7 more significant bits are connected to row decoder.
Row Decoder • Responsible for selecting the right row of pixel. • 7 to 128 decoder is required since there are 128 rows of pixel.
Row Decoder 1 to 2 decoder
Column Multiplexer • Responsible for selecting the right column of pixel. • 640 to 5 multiplexer is required since there are 128 columns of pixel and each pixel give out 5bits of signal.
Column Multiplexer 2 to 1 multiplexer