ycbcr = rgb2ycbcr(rgb)

Wolfgang Schechinger hubahopp at gmx.de
Mon Aug 4 02:48:43 CDT 2008


Dear Bharat,

as you probably want integers anyway, have you considered to drop the lowest 8 bits or to do the whole conversion with integers?

Wo



instead of dividing by 256, -------- Original-Nachricht --------
> Datum: Mon, 4 Aug 2008 10:25:17 +0530
> Von: "bharat pathak" <bharat at arithos.com>
> An: help-octave at octave.org
> Betreff: 

> I have written a function to convert rgb to ycbcr. if I call this function
> with rgb matrix being 512x512x3 then it takes 2.4 seconds to execute
> this code. what is the way in which I can make this run faster?
> 
> I have also attached the main program where this function is called.
> 
> #######################################################################
> 
> 
> function ycbcr = rgb2ycbcr(rgb)
> 
>     red = rgb(:,:,1);
>     grn = rgb(:,:,2);
>     blu = rgb(:,:,3);
>     
>     y   = round((77*red  + 150*grn  + 29*blu)/256)  + 16;
>     cb  = round((-44*red - 87*grn   + 131*blu)/256) + 128;
>     cr  = round((131*red - 110*grn  - 21*blu)/256)  + 128;
>     
>     ycbcr(:,:,1) = y;
>     ycbcr(:,:,2) = cb;
>     ycbcr(:,:,3) = cr;
>     
> endfunction
> 
>     

-- 
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser


More information about the Help-octave mailing list