Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation different from RAISR paper? #1

Open
linhdvu14 opened this issue Aug 15, 2018 · 2 comments
Open

Implementation different from RAISR paper? #1

linhdvu14 opened this issue Aug 15, 2018 · 2 comments

Comments

@linhdvu14
Copy link

linhdvu14 commented Aug 15, 2018

Hi,

Thanks for your great work. I noticed some (apparent) differences between your implementation and the RAISR paper:

  1. Functions.py at commit ae62ae5: function Blending1() scales HR pixel weight with the number of neighboring pixels that have smaller values, not the LCC size. Both are 3 in RAISR Fig 9, but not necessarily in all cases.

  2. Test.py at commit b533df3, line 169-174: It seems you're copying the Cb and Cr channel from the ground truth HR image to result_ycbcr. According to RAISR section VI, the chromatic channels should be upscaled by bicubic interpolation from the LR image.

Am I reading your code correctly, and are these discrepancies intentional?

Thanks!

@JalaliLabUCLA
Copy link
Owner

Dear Linh,

Thank you for sharing your analysis of our RAISR implementation. Your observations are correct. The following are the responses to your questions:

  1. The original RAISR paper states, "Specifically, the size of the Least Connected Component (LCC) of the CT descriptor (in the case of Fig. 9(d) the LCC size is 3) is translated to a weight, determining the strength/amount of the structure within the descriptor window." But it's not clear how they translated to the weight. We choose to perform translation based on normalization from 0 to 1 with resolution 1/8.

  2. Quoting from our cited paper, "Human vision is more sensitive to brightness than to colors [17]. Therefore, for color images, we only apply our algorithm to the luminance channel, while the color channels are upsampled by bicubic interpolation, as has been done by others [15-17]". We can also use bicubic interpolation on the chromatic channels, but this will not affect the PSNR results reported, as it is dependent only on luminance. We have switched to bicubic interpolation on the chromatic channels based on your comment in the newly released commit.

Thank you.

With regards,
Jalali-Lab

@linhdvu14
Copy link
Author

Hi,

Thanks for your detailed response. Regarding (1), my question was that Blending1() is not using LCC size, but how many neighbors have lower values than the center pixel:

0 | 1 | 1
0 | - | 1
0 | 0 | 0
--> Here LCC = 3, HR weight = 3/8. Your code would compute HR weight = 3/8.

1 | 0 | 0
1 | - | 0
1 | 1 | 1
--> Here LCC = 3, HR weight = 3/8. Your code would compute HR weight = 5/8, because of how CT_descriptor() calculates Census.

I'm actually not sure how the paper determines connected components in a CT. So please correct me if I'm wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants