Menu

Tree [af3bca] master /
 History

HTTPS access


File Date Author Commit
 Lighthouse_192x128.jpg 2013-09-14 ram ram [af3bca] initial commit
 Lighthouse_192x128.raw 2013-09-14 ram ram [af3bca] initial commit
 QualityAnalysisResults.xlsx 2013-09-14 ram ram [af3bca] initial commit
 README 2013-09-14 ram ram [af3bca] initial commit
 StandardHuffmanTablesDCACDCAC.dat 2013-09-14 ram ram [af3bca] initial commit
 jencEngine.c 2013-09-14 ram ram [af3bca] initial commit
 jencHeader.h 2013-09-14 ram ram [af3bca] initial commit
 jencMain.c 2013-09-14 ram ram [af3bca] initial commit
 makefile 2013-09-14 ram ram [af3bca] initial commit
 quantize.dat 2013-09-14 ram ram [af3bca] initial commit

Read Me

---------------------------------------
  Software: Jpeg Encoder
  Version: 1.0
  Usage Info.: Every line in this software is written patiently only for the benefit of the community and myself who are willing to understand Jpeg.
  I am happy if this code is useful for you in some manner.
  I have no complaints if anyone uses this software for personal and non-commercial purpose.
  But an acknowledgment is greatly appreciated as it encourages me to do more upgrades.
  Author: Ram
  email : rammohan959[at]gmail.com
  Release Date: 14 September 2013
---------------------------------------

Outline of the document:
	1. Build Procedure
	2. Usage
	3. Quality Analysis (QA) reports

1. Build Procedure:
	The command "make -f makefile" will generate the executable jpegencoder.exe.

2. Usage:
	Typing the name of the executable in the command prompt should present you how to use this software. It should look like this.
jpegencoder.exe [options]...
Expects options in the form -<switch> <Argument>
         -i input filename [*.raw]
         -o output filename [*.jpg]
         -q quality factor [1 (Least Quality) - 100 (Best Quality)]
         -r Rate (in MCU's) at which restart markers have to be set
         -c Sampling format for encoding [0-1x1,1-2x1,2-2x2,3-GrayScale]
         -w Image Width
         -h Image Height
         -m Input Mode [1-YUV420, 2-GrayScale, 3-BGR888]
         -p Plane Information [Interleaved - 1, SemiPlanar - 2, Planar - 3]
Note :: Valid combinations of options -m & -p are YUV420Semiplanar, YUV420Planar, BGRInterleaved,
example:
		 jpegencoder.exe -i Lighthouse_192x128.raw -o Lighthouse_192x128.jpg -q 75 -r 0 -c 2 -w 192 -h 128 -m 3 -p 1
	 
Note: By default jpegencoder.exe uses quantization tables which were generated internally basing on the quality factor supplied to it.
If in case you are interested in using your own quantization tables, please recompile the package by disabling the macro Q_FACTOR_ENABLE.
This makes the encoder to use quantization tables from the file "quantize.dat".

3. Quality Analysis (QA) reports:
	The performance (Quality Analysis) of the encoder is compared against a standard encoder and the results are included in the file QualityAnalysisResults.xlsx.

	Independent Jpeg Group (IJG) is very popular in the jpeg community and their software is used here as reference. In this quality analysis, 4 test images are used. The images (input) are encoded with standard encoder and current encoder for quality factors 1 to 100 with internal color format set to YUV444. Then the encoded jpeg images are decoded with standard decoder and PSNR is computed between the decoded images(s) and the input image. Results show that quality wise the performance of the current encoder is in good aggrement with the standard encoder.
	
	Test Images Used can be accessed from the location http://r0k.us/graphics/kodak/	
	Barn - kodim22.png
	Child - kodim15.png
	Lighthouse - kodim21.png
	SizShooter - kodim20.png

	
	
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.