- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Thanks,

Emmanuel

1 Solution

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

OK, I show a method.For 1/2 casethe IPP function is used10 src pixels with appropriate weights for computation 1 dst pixel:

1) int val = 2*s[-4]-6*s[-3]-15*s[-2]+33*s[-1]+114*s[0]+114*s[1]+33*s[2]-15*s[3]-6*s[4]+2*ps[5];

2) val rounding

3) val saturation

4) *d++ = val; s += 2;

Thanks,

Beg

Link Copied

6 Replies

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

The functions are used for

**vertical or horizontal downsampling of image**(in one direction only).

The available values are 1/2, 3/5, 2/3, 7/10, 3/4.

From documentation:

These functions perform decimating of the source image by the rows or by the columns respectively. The functions used the set of special internal polyphase filters. The parameter fraction specifies how the decimating is performed, for example, if the parameter is set to ippPolyphase_3_5, then each 5 pixels in the row (or column) of the source image give 3 pixels in the destination image, if the parameter is set to ippPolyphase_1_2, then each two pixels in the row (or column) of the source image give 1 pixel in the destination image, an so on.

, where the parameter

*fraction*specifies how the decimating is performed.

Thanks,

Beg

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Quoting - Yuri Tikhomirov (Intel)

*Hello Emmanuel,*

The functions are used for

The available values are 1/2, 3/5, 2/3, 7/10, 3/4.

From documentation:

These functions perform decimating of the source image by the rows or by the columns respectively. The functions used the set of special internal polyphase filters. The parameter fraction specifies how the decimating is performed, for example, if the parameter is set to ippPolyphase_3_5, then each 5 pixels in the row (or column) of the source image give 3 pixels in the destination image, if the parameter is set to ippPolyphase_1_2, then each two pixels in the row (or column) of the source image give 1 pixel in the destination image, an so on.

, where the parameter

Thanks,

Beg

The functions are used for

**vertical or horizontal downsampling of image**(in one direction only).

The available values are 1/2, 3/5, 2/3, 7/10, 3/4.

From documentation:

These functions perform decimating of the source image by the rows or by the columns respectively. The functions used the set of special internal polyphase filters. The parameter fraction specifies how the decimating is performed, for example, if the parameter is set to ippPolyphase_3_5, then each 5 pixels in the row (or column) of the source image give 3 pixels in the destination image, if the parameter is set to ippPolyphase_1_2, then each two pixels in the row (or column) of the source image give 1 pixel in the destination image, an so on.

, where the parameter

*fraction*specifies how the decimating is performed.

Thanks,

Beg

Hi,

I understand the decimation part, but I would like to know what filtering operation actually take place (or at least how many pixelin the source are contributing to what pixel in the destination).

If I take the 1/2 filter, fill an image with 00 except for 1 pixel set to mid value, in the destination image I end up with 3 pixels that are not 0. The reason I am asking is because the result do not seem to be symmetrical which seems unusual. For example with only one pixel change in the source I get the following sequence in the destination

00 00 .... 00 b a 00 c 00 00 00 00

where "b" is smaller than "a", "a" is close to the original value, "c" is close to 0.

I would have expected something more like

00 00 .... 00 a b a 00 00 ... 00 00 or 00 00 ... 00 c b a b c 00 ... 00 etc

Emmanuel

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Sourceimage should have borders before a filtration. Unfortunately in the documentation it is passed.

For example for horizontal 1/2 filter we shouldhave 4 pixels to the left and 4 pixels to the right in each line.

So these functions don't care of borders, the user should make it.

Try please again with borders...

Thanks for your valuable comments. The documentation will be expanded.

Beg

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Quoting - Yuri Tikhomirov (Intel)

*Hi Emmanuel,*

Sourceimage should have borders before a filtration. Unfortunately in the documentation it is passed.

For example for horizontal 1/2 filter we shouldhave 4 pixels to the left and 4 pixels to the right in each line.

So these functions don't care of borders, the user should make it.

Try please again with borders...

Thanks for your valuable comments. The documentation will be expanded.

Beg

Sourceimage should have borders before a filtration. Unfortunately in the documentation it is passed.

For example for horizontal 1/2 filter we shouldhave 4 pixels to the left and 4 pixels to the right in each line.

So these functions don't care of borders, the user should make it.

Try please again with borders...

Thanks for your valuable comments. The documentation will be expanded.

Beg

So in the 1/2 case if we need a border of 4 I assume the filter length is 5 correct?

Thanks,

Emmanuel

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

OK, I show a method.For 1/2 casethe IPP function is used10 src pixels with appropriate weights for computation 1 dst pixel:

1) int val = 2*s[-4]-6*s[-3]-15*s[-2]+33*s[-1]+114*s[0]+114*s[1]+33*s[2]-15*s[3]-6*s[4]+2*ps[5];

2) val rounding

3) val saturation

4) *d++ = val; s += 2;

Thanks,

Beg

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Quoting - Yuri Tikhomirov (Intel)

*Yes, but it is polyphase filter.*

OK, I show a method.For 1/2 casethe IPP function is used10 src pixels with appropriate weights for computation 1 dst pixel:

1) int val = 2*s[-4]-6*s[-3]-15*s[-2]+33*s[-1]+114*s[0]+114*s[1]+33*s[2]-15*s[3]-6*s[4]+2*ps[5];

2) val rounding

3) val saturation

4) *d++ = val; s += 2;

Thanks,

Beg

OK, I show a method.For 1/2 casethe IPP function is used10 src pixels with appropriate weights for computation 1 dst pixel:

1) int val = 2*s[-4]-6*s[-3]-15*s[-2]+33*s[-1]+114*s[0]+114*s[1]+33*s[2]-15*s[3]-6*s[4]+2*ps[5];

2) val rounding

3) val saturation

4) *d++ = val; s += 2;

Thanks,

Beg

Emmanuel

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page