Difference between revisions of "JP4"
From ElphelWiki
(→Decoding) |
(→Decoding) |
||
Line 9: | Line 9: | ||
== Decoding == | == Decoding == | ||
− | JP4 format can be easy manipulated by Matlab | + | JP4 format can be easy manipulated by Matlab[[Image:Fruits_jp4.jpg|thumb|JP4 image]] |
1. Read image | 1. Read image | ||
I=imread('hdr02.jp4'); %read JP4 file like JPEG | I=imread('hdr02.jp4'); %read JP4 file like JPEG | ||
I=I(:,:,1); %strip color data | I=I(:,:,1); %strip color data | ||
− | 2. Remove block grouping | + | 2. Remove block grouping[[Image:Fruits_jp4_deblocked.jpg|thumb|Bayer CFA encoded image]] |
II=deblock16x16(I); %deblock image | II=deblock16x16(I); %deblock image | ||
%file deblock16x16.m | %file deblock16x16.m | ||
function y=deblock16x16(I) | function y=deblock16x16(I) | ||
− | y0=zeros(size(I)); | + | y0=uint8(zeros(size(I))); |
for x=1:16:size(I,1) | for x=1:16:size(I,1) | ||
for y=1:16:size(I,2) | for y=1:16:size(I,2) | ||
Line 34: | Line 34: | ||
end | end | ||
y=y0; | y=y0; | ||
− | 2. Demosaic image (Decode from Bayer CFA (Color Filter Array) encoded image) | + | 2. Demosaic image (Decode from Bayer CFA (Color Filter Array) encoded image)[[Image:Fruits_jp4_debayered.jpg|thumb|Decoded image]] |
J=demosaic(III,'gbrg'); | J=demosaic(III,'gbrg'); | ||
3. Show image | 3. Show image | ||
imshow(J); | imshow(J); |
Revision as of 10:39, 18 November 2008
JP4 format
So we have added a special JP4 mode that bypasses the Demosaic in the FPGA and provides an image with pixels in each 16x16 macroblock that are rearranged to separate Bayer colors in individual 8x8 blocks, then encoded as monochrome. Demosaic will be applied during post-processing on the host PC. This section describe different algorithms and implementations used to provide this functionality.
Main goals:
- compression speed improvement - possibility to obtain more high quality image (near to RAW) - drasticaly lowering data size
Decoding
JP4 format can be easy manipulated by Matlab1. Read image
I=imread('hdr02.jp4'); %read JP4 file like JPEG I=I(:,:,1); %strip color data2. Remove block grouping
II=deblock16x16(I); %deblock image
%file deblock16x16.m function y=deblock16x16(I) y0=uint8(zeros(size(I))); for x=1:16:size(I,1) for y=1:16:size(I,2) blk16=I(x:x+15,y:y+15); for dx=0:7 for dy=0:7 y0(x+2*dx ,y+2*dy) = blk16(dx+1,dy+1); y0(x+2*dx+1,y+2*dy) = blk16(dx+9,dy+1); y0(x+2*dx ,y+2*dy+1) = blk16(dx+1,dy+9); y0(x+2*dx+1,y+2*dy+1) = blk16(dx+9,dy+9); end end end end y=y0;2. Demosaic image (Decode from Bayer CFA (Color Filter Array) encoded image)
J=demosaic(III,'gbrg');
3. Show image
imshow(J);