In video recording there are additional requirements, different from broadcasting/distribution -the goal is to preserve virtually all the information  that the camera critical element (CCD or CMOS sensor) can provide  and do some post-processing later. That &quot;virtually all the information&quot; does not necessarily mean &quot;raw&quot; (uncompressed) image data - reasonable compression that matches the noise performance of the imager would not degrade the data significantly.<br>
<br>In our cameras we currently use MJPEG derivative (with standard JPEG replaced with modified version -<a href="http://community.elphel.com/jp4/jp4demo.php">http://community.elphel.com/jp4/jp4demo.php</a> ) with the goal of postponing the demosaic processing of the color images to the post-processing stage. Most color sensors provide color mosaic images and modern algorithms are good at minimizing color artifacts, but it is a separate function from video recording and when you do not need real time video but rather want the best possible quality of the result (edited) video it is better to record pixel values and only interpolate colors later, combined with other editing.<br>
<br>We did have subset of the Ogg Theora encoder in the previous model (Elphel 333) and I agree - when ran in  keyframe-only mode it performed better compression than JPEG, but the Ogg encapsulation introduced rather heavy load on the small camera CPU. Theora encoding was done in FPGA, but CPU had to calculate the frame checksums after combining hardware-compressed data with the headers by the software. And as FPGA processing is about 100x faster, that last step (Ogg encapsulation) was too expensive for most our applications and in the current model 353 camera we unfortunately do not have Theora, only MJPEG-JP4.<br>
<br>Our next camera under development has more processing power but the sensors also grew in size since our Theora implementation in 2005. After the porting of the current code we&#39;ll re-consider Theora and Dirac but we&#39;ll look from our side - how they perform on the acquisition side (not the display), how they address:<br>
 1 - preserving the sensor data, keeping compression artifacts under the noise floor;<br> 2 - convenience of the hardware (FPGA) implementation<br> 3 - compression ratio -only the last of the three requirements.<br><br><br>
Andrey<br>