Skip to main content

Does anyone have a paper descibing bicubic interpolation...

3 replies [Last post]
Anonymous

I'm looking for a nuts and bolts recipe for bicubic interpolation.

What I know is this:

It interpolates a 4 by 4 pixel region -- after that -- all fog.

I need a simple explanation of all the subscripts and superscripts that
I see in the generalized description of bicubic interpolation.

How do I calculate the coefficients? Do I do one row at a time then one
column at a time?

There is a ton of stuff on the web but all I've found is the high level
description and no practical application. I'm a simple guy. I need
simple talk.

I implemented bilinear interpolation. That was easy. Bicubic interpolation
seems overly mysterious.

Ken

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
James Cheng

On 2007/05/05 09:50 AM, Ken Warner wrote:
> I'm looking for a nuts and bolts recipe for bicubic interpolation.

http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/javax/media...
https://jai-core.dev.java.net/source/browse/jai-core/src/share/classes/j...

HTH,
-James

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Ken Warner

Hi James,

Minor point of interest:

I was looking at the code you pointed to and I see something I don't quite
understand. Do you see where the variable: float t; is used?

Did the author mean to write:

for (int i=0; i t = (float)i;
f = (t/onef);

Just curious. The implementation gets clearer and more meaningful the
more I look at it. It's like fog clearing in the morning....

Ken

private static float[] dataHelper(int subsampleBits) {

int one = 1 << subsampleBits;
int arrayLength = one * 4;
float tableValues[] = new float[arrayLength];
float f;

float onef = (float)one;
float t;
int count = 0;
for (int i=0; i t = (float)i;
f = (i/onef);

tableValues[count++] = bicubic(f + 1.0F);
tableValues[count++] = bicubic(f);
tableValues[count++] = bicubic(f-1.0F);
tableValues[count++] = bicubic(f-2.0F);

}

return tableValues;
}

James Cheng wrote:
> On 2007/05/05 09:50 AM, Ken Warner wrote:
>
>> I'm looking for a nuts and bolts recipe for bicubic interpolation.
>
>
> http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/javax/media...
>
> https://jai-core.dev.java.net/source/browse/jai-core/src/share/classes/j...
>
>
> HTH,
> -James
>
>

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

James Cheng

Hi Ken,

> I was looking at the code you pointed to and I see something I don't
> quite understand. Do you see where the variable: float t; is used?

No.

> Did the author mean to write:
>
> for (int i=0; i > t = (float)i;
> f = (t/onef);

Probably. And the current code does the same thing, I believe. In
other words, t can be removed, and the compiler probably had done so.

Thanks,
-James

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".