Prepare for the CompTIA Network+ exam by learning how to troubleshoot, configure, and manage both wired and wireless networks.

I need to use compression to change bit depth of a video signal.

Our Focal Plane Array(FPA) is Vanadium Oxide(VOx) Resistive Microbolometers Uncooled Thermal Infrared Detector. The output of this image sensor is 14-bit, Wide Dynamic Range(WDR), raw, monochrome, 640 x 480 resolution. The pixels of this video signal will be processed by Image Signal Processor(ISP). ISP input is 12-bits. Therefore, I need to compress FPA output to 12 bits and then input into ISP.

How to perform global tone mapping using two methods, PWL and LUT (curve defined by lut) based mapping. I need to tone map 14 bit data to 12 bit. What does PWL stand for? Please provide sufficient information so I can achieve this. It's suppose to be similar to gamma compression. I can do gamma correction in matlab. Can this tone mapping also be done in matlab? If yes, please provide some examples.

Our Focal Plane Array(FPA) is Vanadium Oxide(VOx) Resistive Microbolometers Uncooled Thermal Infrared Detector. The output of this image sensor is 14-bit, Wide Dynamic Range(WDR), raw, monochrome, 640 x 480 resolution. The pixels of this video signal will be processed by Image Signal Processor(ISP). ISP input is 12-bits. Therefore, I need to compress FPA output to 12 bits and then input into ISP.

How to perform global tone mapping using two methods, PWL and LUT (curve defined by lut) based mapping. I need to tone map 14 bit data to 12 bit. What does PWL stand for? Please provide sufficient information so I can achieve this. It's suppose to be similar to gamma compression. I can do gamma correction in matlab. Can this tone mapping also be done in matlab? If yes, please provide some examples.

Experts Exchange Solution brought to you by

Enjoy your complimentary solution view.

Get this solution by purchasing an Individual license!
Start your 7-day free trial.

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

1. PWL

2. LUT(curve defined by lut) based mapping

I know I have to come up with a function or algorithm. I was told it is similar to gamma correction. I can do gamma correction in matlab but

how I can learn to do what I need to do?

>> One common PWL technique would be logarithmic compression

I don't get it. output of my infrared sensor is 14-bit non-negative integers. And you are asking me to map to 12-bit floating point. The ISP that is going to treat 12-bit binary numbers as non-negative integers.

Binary logs and exponents are not floating point functions.

Mantissa in bold on the left. Exponent in bold on the right.

==========================

00

00 000

Note that the simplest 14- to 12-bit PWL mapping is just dropping the two LSB's.

I didn't understand how mantissa and exponent operate in your example?

>> Note that the simplest 14- to 12-bit PWL mapping is just dropping the two LSB's.

The sensor manufacturer says if we drop two LSB's, Noise Equivalent Temperature Difference(NETD) will increase by a factor of 4.

Have you asked vendor about log compression? They will probably tell you it's the best you can do. These are the techniques NASA used in the Pioneer missions in the 1970's.

How are you going to implement this compression? Microprocessors, CPLD's, or DSP's? Parallel or serial? What ISP are you using? Why are you limited to 12 bits? What are the requirements of the entire system?

```
Input = [ B13, B12, B11, ... B2, B1, B0] MSB to LSB
If B13 = 1 then EXP = 11 and MANT = [B13, B12, B11, ... B6, B5, B4]
else
If B12 = 1 then EXP = 10 and MANT = [B12, B12, B10, ... B5, B4, B3]
else
If B11 = 1 then EXP = 01 and MANT = [B11, B10, B9, ... B4, B3, B2]
else EXP = 00 and MANT = [B10, B9, B8, ... B3, B2, B1]
```

Note that you never get to see the LSB in this representation. You might decide you need to opt for a 3-bit exponent and a 9-bit mantissa.This would add one more test level to the algorithm, and you would only use five of the eight available exponents.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial>> Have you asked vendor about log compression?

Not yet.

>> How are you going to implement this compression?

In 'C' programming language

>> What ISP are you using?

ISP inside TI DM505 chip

>> Why are you limited to 12 bits?

ISP Hardware limitation. ISP in linear mode accepts up to 12-bit input.

Math / Science

From novice to tech pro — start learning today.

Experts Exchange Solution brought to you by

Enjoy your complimentary solution view.

Get this solution by purchasing an Individual license!
Start your 7-day free trial.

PWLmeans piece-wise linear, andLUTmeans look-up table. There are many on-line references.In your case, you have to come up with a function that converts a 14-bit input to a 12-bit output.

The LUT is the most flexible. It is fast, but it takes up an enormous amount of space, 16K x 12 bit.

One common PWL technique would be logarithmic compression. In your 14-to-12 bit case, you might choose a 9-bit mantissa and a 3-bit exponent. This is fast to implement: