aruzinsky wrote:
> On Jun 9, 5:43 pm, AJ <arandal...@[EMAIL PROTECTED]
> wrote:
>>
http://i287.photobucket.com/albums/ll146/arandall85/interpolated_iter...
>>
>> To get to this point, I have used blind deconvolution, and then
>> interpolated the result. I'm quite happy with this outcome, although
>> it is a little blurry. What do you all think?
>>
>> Ideally, I would like to "fix" the edges in some way, as they are
>> still a bit blocky, and I would like to sharpen the whole image
>> slightly - but I think I may be hoping for a bit too much! ;)
>>
>> If anyone has any further suggestions to improve this image, I would
>> be really grateful. Nearly there...
One cheeky trick you could do is exploit the redundancy in the image you
have been given (or have you been given the masked DCT?). By
construction the blocky image consists of sets of 8 identical rows. If
you downsample by throwing away 7 out of 8 rows you get a cleaner
problem to solve and can interpolate back up again in the vertical
dimension later. You have only really got two independent numbers in the
horizontal direction too so you could apply a similar trick there.
>>
>> Kind regards,
>>
>> AJ- Hide quoted text -
>>
>> - Show quoted text -
>
> But, although similar, this is not a deconvolution problem. Like
> convolution, you have a linear transformation which can be put in
> matrix form,
>
> Ax = y
One part of the problem is a pure deconvolution but with a lot of
missing data. Every individual 8x8 block has been DCTd and then masked.
Multiplication in the DCT domain is equivalent to convolution in real
space. The thing is that for every 64 image numbers input you only get
two numbers out. All the other eigenvalues are zero.
So the deconvolution will be strongly dependent on any prior knowledge
incor****ated through the choice of regularising function.
There is then a secondary problem that each 8x8 block is absolutely
independent of all the others as far as the matrix setup for encoding
(and decoding) is concerned. Fixing this up is the subject of a whole
bunch of patents. Various commercial codecs have proprietory solutions.
The 8x8 block boundary discontinuity is often very obvious as a result.
Have a look at the JPEG std K.8 or in IJG code jdcoefct.c under
BLOCK_SMOOTHING_SUP****TED for one approach.
> and you want to estimate x from y, but, unlike convolution, most of
> the eigenvalues of A are zero and (I am uncertain so check me) A is
> idempotent, i.e., A^2 = A. In low rank cases, it is generally good
> practice to constrain a solution, x', so that Ax' = y. I checked your
> result and it violates this constraint because the averages of the 8x8
> blocks in your result are not equal to those of your input image.
You shouldn't expect them to be exactly equal. That is overconstrained.
The best you can hope for is that the DC and First AC component (which
is all he has) computed from the model image are on average within half
the quantisation error of the JPEG encoding in a least squares test.
Regards,
Martin Brown
** Posted from http://www.teranews.com
**


|