final year project 2008-2009 a cmos imager with compact digital pixel sensor (ba1-08) supervisor:...
TRANSCRIPT
Final Year Project 2008-Final Year Project 2008-20092009A 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
OutlineOutlineAim of our projectIntroductionPixel SensorHuffman encoding systemControl systemPerformanceQ&A
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 projectAims of our project
Aims of our projectAims of our project Why is image compression
important? Minimize storage size Minimize silicon area of the chip Speed enhancement
Aim of our projectAim of our projectThe advantages of a single chip
imager:◦Low noise◦Low power consumption◦Total cost is low
Aim of our projectAim of our projectComparison between CDD and CMOS
Imager CCD CMOS
Power consumptionhighe
rlower
Size largersmalle
r
Image's qualityhighe
rlower
Multiple functions on chip
No Yes
IntroductionIntroductionCategories of CMOS Image
Sensors◦Passive Pixel Sensor (PPS)◦Active Pixel Sensor (APS)◦Digital Pixel Sensor (DPS)
IntroductionIntroductionPassive Pixel Sensor (PPS)
Column busRow select 1. High Fill factor
2. Signal-to-noise ratio (SNR) is poor
3. Shared analog to digital convertor (ADC).
IntroductionIntroductionActive Pixel Sensor (APS)
Column bus
Row selectVdd
Reset
Simple amplifier
1. Signal amplifier is included
2. Larger SNR3. Lower fill factor4. Shared ADC
IntroductionIntroductionDigital Pixel Sensor (DPS)
Vdd
Reset
Row select
Column bus
Vref ADC
1. ADC is installed in each pixel.
2. SNR is larger3. Speed is higher
IntroductionIntroductionComparison between APS and DPS
Row Select
Column selectADC
Row Select
Column select
Pixel 1
Pixel 2
Pixel 3
Pixel 4
Pixel 1
Pixel 2
Pixel 3
Pixel 4
Pixel select Analog to digital conversion Signal read
Differential Pulse Code Differential Pulse Code ModulationModulation
Differential Pulse Code Differential Pulse Code ModulationModulationBy 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
Differential Pulse Code Differential Pulse Code ModulationModulation
Differential Pulse Code Differential Pulse Code ModulationModulation
Pixel SensorPixel SensorPhotodiodeComparatorReconfigurable 5-bits up/down
counter
PhotodiodePhotodiodeA photodiode is a reversed-bias
diode with internal capacitanceCurrent flows with different
magnitudes according to the illumination
Pixel SensorPixel SensorBlock diagram
Discharge timeDischarge timeThe discharge time depends on
the illumination
Reconfigurable up/down Reconfigurable up/down countercounterCount up when receiving a pulse
from the current pixelCount down when receiving a
pulse from the neighbor pixel
Reconfigurable up/down Reconfigurable up/down countercounter
Reconfigurable up/down Reconfigurable up/down countercounterTiming Diagram:
Potential ProblemsPotential ProblemsOverflow problemCrashes of input pulses
Overflow handlingOverflow handlingOverflow is a serious problem as
it affects the data recovery in the external environment
Solution:Stop counting up when the
memory is 01111Stop counting down when the
memory is 10000
Crashes of input pulses Crashes of input pulses handlinghandlingWhen pulses from the current
pixel and the neighbor pixel received at the same time, the counter cannot work
SolutionAdd a buffer to delay one of the
pulsesCancelling each other
Huffman encoding systemHuffman encoding systemHuffman 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)
SYMBOL
Probability 1
Codeword 1
Probability 2
Codeword 2
1 0.125 [1 0 1] 0.93 [0]
2 0.125 [1 0 0] 0.02 [1 0 0]
3 0.125 [1 1 1] 0.0125 [1 1 1]
4 0.125 [1 1 0] 0.01 [1 1 0 0]
5 0.125 [0 0 1] 0.01 [1 0 1 1]
6 0.125 [0 0 0] 0.01 [1 0 1 0]
7 0.125 [0 1 1] 0.005 [1 1 0 1 0]
8 0.125 [0 1 0] 0.0025 [1 1 0 1 1]
Average Length
3 1.185
Probability
Codeword
Probability Codeword
-16 0.00188
00100000
00.302 11
-15 0.00198
00100001
10.16743 0111
-14 0.0023
1000010 20.07111 0100
-13 0.00247
1000011 30.02435 0000
-12 0.00282
1011010 40.01263 01011
-11 0.0034
0010001 50.00866 00010
-10 0.00383
100000 60.00693 10010
-9 0.00442 100011 7 0.00546 001011
-8 0.00525 101111 8 0.0046 101110
-7 0.00617 001010 9 0.00386 100010
-6 0.00721 10011 10 0.00316 0010011
-5 0.00925 00011 11 0.00279 1011011
-4 0.01262 01010 12 0.00233 1011001
-3 0.02361 1010 13 0.00206 1011000
-2 0.06795 0011 14 0.00204 00100101
-1 0.16504 0110 15 0.00171 00100100
Average Length=3.59
-28.2% from DPCM values
Codeword AssignmentCodeword Assignment
Performance is content Performance is content dependentdependent
200185 184 180DPCM±15
DPCM±4
8x8 BITMAP(Color not in scale)
Huffman codeword length= 8Resultant size=(8x8-1)x8= 504bits
Huffman codeword length= 5Resultant size=(8x8-1)x5= 315 bits
Example of Huffman Example of Huffman codewordcodeword
Serial link
11111011010010100100
0 2 7 14
Codeword TreeCodeword Tree
ImplementationImplementationCombinational logicInput: DPCM values from the
pixel gridOutput: Huffman codeword and
its length
Pixel grid CONTROL
MethodologyMethodology
K-mapCommon term discoverySolution minimizationNAND-NOR combination
Methodology – K-MapMethodology – K-Map
K-map of CW5
Methodology – Common Methodology – Common TermsTerms
CW5= (A’B’C’) + (B’C’D’) + (B’D’E) + (AB’E) + (ABCE’) + (BDE’) + (BCD) + (CDE’)
=B’(C’(A’+D’) + E(D’+A)) + BC(D+AE’) + DE’(B+C)
Methodology – NAND-NOR Methodology – NAND-NOR CombinationCombination
Summary- Huffman Summary- Huffman encoderencoderConvert DPCM value to Huffman
codeword18 common termsImplementation done by 428
gates
Control SystemControl SystemIt consists of 3 parts
◦Interface 8-bit Shift Register 4-bit Counter 14-bit Counter
◦Row Decoder◦Column Multiplexer
Control SystemControl System
Control SystemControl System
Delay path
Control logic
interface
Hand shake
protocol
Control LogicControl LogicAsync with data linkHand shake protocol
communication14-bit pixel
counter
Delay counter
InterfaceInterfaceSynchronous to datalinkSend request to control logicServe MCU requestIt consists of 2 main elements
◦8-bit Shift Register for huffman code stream
◦4-bit Counter for code length
MCU request
Control SystemControl System
Wait if:Delay counter do not finish counting or14-bit counter reach the top or4-bit length counter finish counting
8-bit Shift Register8-bit Shift Register1. Receive codeword
signal from Hoffman encoder
2. Transfer the received signal to MCU
4-bit Counter4-bit Counter
1. Keeps tracking the length of the codeword from the Hoffman encoder
2. It is 4 bits since the maximum length of the codeword is 8
3. When the counter value reached zero, shift register is acknowledged to get the new branch of data.
14-bit Counter14-bit CounterControl 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 DecoderRow Decoder
1.Responsible for selecting the right row of pixel.
2.7 to 128 decoder is required since there are 128 rows of pixel.
Row DecoderRow Decoder1 to 2 decoder
Column MultiplexerColumn Multiplexer
1.Responsible for selecting the right column of pixel.
2.640 to 5 multiplexer is required since there are 128 columns of pixel and each pixel give out 5bits of signal.
Column MultiplexerColumn Multiplexer
2 to 1 multiplexer
PerformancePerformance
Performance - SimulationPerformance - Simulation
Performance - SimulationPerformance - Simulation
Performance - Power Performance - Power consumption consumption Current waveform of the pixel
sensor
Performance - Fill factorPerformance - Fill factorThe fill factor of the imager is
about 12 %
Performance - Post layout Performance - Post layout sim.sim.
Compression performanceCompression performanceImage Size ORIGINAL DPCM ONLY
(-37.5%)DPCM with Huffman Coding(-55%)
1x1 1 bytes 5 bits (-3 bits)
3.6 bits (-4.4 bits)
128x128 16k bytes 10k bytes(-6kB)
7.2k bytes (-8.8kB)
640x480(VGA)
300k bytes 187.5k bytes (-112.5kB)
135k bytes (-165kB)
1280x720(HD 720)
900k bytes 562.5k bytes(-337.5kB)
405k bytes (-495kB)
Actual compression rate varies from 0% to 75% , depend on the actual content of the image.
Performance-Huffman Performance-Huffman encoderencoderMaximum switching Delay= 2.4ns Maximum possible operation frequency =410MHz
Q&AQ&AFurther explanation