How do create the palette?

Brian

On Feb 15, 2016, at 3:39 AM, Jayathirth D V <jayathirth....@oracle.com> wrote:

> Hi Jim,
>  
> I performed performance analysis with white image so that all conditions are 
> checked in the new branch added. There is no major difference in time taken 
> before and after change. For each input I have tested time taken for 
> drawImage() API to convert from every format to Byte indexed type. For every 
> unique conversion test is run for 100 times. Please find the details:
>  
>  
> Input
> type
> Min
> before change
> (ns)
> Min
> after change
> (ns)
> Max
> before change
> (ns)
> Max
> after change
> (ns)
> Average
> before change
> (ns)
> Average
> after
> change
> (ns)
> INT_RGB
> 523437
> 481491
> 1230724
> 1270440
> 789452
> 666144
> INT_ARGB
> 500232
> 493986
> 12406307
> 1308816
> 793384
> 654015
> INT_ARGB_PRE
> 500233
> 492201
> 1037057
> 981277
> 710250
> 699214
> INT_BGR
> 537716
> 562706
> 1446703
> 2046001
> 862377
> 863256
> 3BYTE_BGR
> 483275
> 481045
> 1181638
> 1384676
> 651427
> 580961
> 4BYTE_ABGR
> 544410
> 499786
> 1292305
> 968783
> 690106
> 683881
> 4BYTE_ABGR_PRE
> 504249
> 505588
> 1680086
> 1216445
> 756101
> 687750
> USHORT_565_RGB
> 507818
> 505588
> 978153
> 1346746
> 652908
> 655782
> USHORT_555_RGB
> 510496
> 509604
> 952272
> 1162004
> 650418
> 670811
> BYTE_GRAY
> 481491
> 478367
> 1140585
> 1799231
> 691160
> 583250
> USHORT_GRAY
> 506927
> 507373
> 1375751
> 1255267
> 728202
> 646902
> BYTE_BINARY
> 541733
> 496217
> 1083466
> 959411
> 730527
> 728461
>  
>  
> The changes are tested with plain images having primary colors like RED, 
> GREEN, BLUE, BLACK and WHITE.
>  
> Thanks,
> Jay
>  
> -----Original Message-----
> From: Jim Graham 
> Sent: Friday, February 12, 2016 4:05 AM
> To: Jayathirth D V; 2d-dev@openjdk.java.net; Philip Race; Prasanta Sadhukhan
> Subject: Re: [OpenJDK 2D-Dev] Review Request for JDK-7116979 : Unexpected 
> pixel colour when converting images to TYPE_BYTE_INDEXED
>  
> Hi Jayathirth,
>  
> Did you do any performance analysis of this change?  You are adding 6 tests 
> and multiple branches to per-pixel code.
>  
> The effectiveness of this technique depends on the colormap that we have set 
> up.  For the BufferedImage.TYPE_INDEXED constructor we produce a fairly nice 
> colormap, but if someone creates a custom colormap then the colors could be 
> anything.  We create a decent inversion for just about any colormap, but that 
> doesn't mean that using only "the best match for solid red" will produce a 
> better result for a dithered approximation for red.  It is true that if there 
> is a really good match for red then we should just use that, but if there are 
> no direct matches for red then we may choose to paint a red region with solid 
> orange even though there is another color in the colormap that when mixed 
> with orange approximates a red tone better.  For example, if a colormap 
> contains no pure red, but
> contains:
>  
> 240, 20,  0
> 240,  0, 20
>  
> (I'm not sure if 20 is within our current error deltas that we use for 
> dithering, but this is an example not a test case.)
>  
> Then using one of these alone might skew the color towards orange or purple.  
> Using both together in a dither pattern might keep the overall hue impression 
> as red, but with a small amount of noise in its saturation.
>  
> What types of colormaps was this tested with?
>  
>                                                 ...jim
>  
> On 2/11/16 6:37 AM, Jayathirth D V wrote:
> > Hi,
> > 
> > _Please review the following fix in JDK9:_
> > 
> > __
> > 
> > Bug : https://bugs.openjdk.java.net/browse/JDK-7116979
> > 
> > Webrev : http://cr.openjdk.java.net/~jdv/7116979/webrev.00/
> > 
> > Issue : When Image containing black pixels are converted from any
> > format to Byte Indexed format some of the pixels are not black. They
> > are following pattern similar to dithering.
> > 
> > Root cause : When we convert any format type to ByteIndexed we are
> > adding Error delta values to R,G,B components using dithering indices.
> > This is causing some pixels values to not point to proper index in
> > color table.
> > 
> > Solution : There is no need to add error delta for primary colors
> > containing basic values in R,G,B components. Exclude such pixels from
> > delta addition.
> > 
> > Thanks,
> > 
> > Jay
> >

Reply via email to