[prev in list] [next in list] [prev in thread] [next in thread]
List: theora
Subject: Re: [theora] NHW Project - fast discrete wavelet transform
From: Raphael Canut <nhwcodec () gmail ! com>
Date: 2017-09-04 16:18:18
Message-ID: CAKE58qGT9woKAsjb+0Cfu-DE8c0=8ab7ZfHpMuZ4Wyj3wD6d6w () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hello,
I forgot in my last reply that my DWT implementation can be speed up, for
example I'm doing for now:
for (;_X1<_E_;_X1++,_RES+=2) //dilatation
{
_RES[0]=_X1[0]<<3;
_RES[1]=(_X1[1]+_X1[0])<<2;
}
then
for (;_X2<_E_;_X2++,_RES+=2) //details
{
_RES[0]-=(_X2[1]+_X2[0])<<1;
_RES[1]+=6*_X2[1]-_X2[2]-_X2[0];
}
whereas I can do in one faster step:
for (;_X1<_E_;_X1++, _X2++,_RES+=2)
{
_RES[0]=_X1[0]<<3 - (_X2[1]+_X2[0])<<1;
_RES[1]=(_X1[1]+_X1[0])<<2 + 6*_X2[1]-_X2[2]-_X2[0];
}
In these conditions, my implementation seems as fast as the lifting scheme,
they are doing exactly the same things in two different ways, but similar
speed ways.
So I think we can keep my DWT implementation in the NHW codec!!!
I have heard Monty that I must do (interesting) technology demonstrations
as part of the NHW Project story, but I don't know what to start, and I
also lack the graphical design capabilities...
Monty, a second answer would be very welcome?!
Many thanks!
Cheers,
Raphael
2017-09-01 18:12 GMT+02:00 Raphael Canut <nhwcodec@gmail.com>:
> Hello,
>
> > What references do your versions draw from?
>
> I think I made a mistake! In fact my DWT implementation is "implied" in
> the lifting scheme, but it could be slower than the lifting scheme because
> it does not use the lifting steps.So I think we can replace my DWT
> implementation in the NHW codec by the classic lifting scheme! -Does the
> lifting scheme patented?-
>
> For the entropy coding, I think there is new things.
> For the multistage residual coding, this is not new, but I have never seen
> it applied to an image codec...
> Feedback correction is not new, but I think it's old enough to be
> patent-free.I also did not see it in an image codec.
> Preprocessing (with a laplacian kernel) is interesting in the NHW codec,
> because it retains the details, grain that would be normally washed out by
> increased wavelet quantization.
>
> There are also other processing in the NHW codec (all selected and
> optimized for speed), so I will try to make a technology demonstration.A
> little help from Xiph?
>
> The other advantage of the NHW codec is that it is royalty- and patent-
> free.Do you see at first some patented technology used?
>
> Cheers,
> Raphael
>
>
>
> 2017-08-30 10:16 GMT+02:00 <xiphmont@xiph.org>:
>
>> Hi Raphael,
>>
>> On Fri, Aug 25, 2017 at 2:30 PM, Raphael Canut <nhwcodec@gmail.com>
>> wrote:
>>
>> > I'll see what Monty will do on his side (and when he has time), but he
>> also
>> > told me that the NHW codec has merits but there must be an effort to
>> > demonstrate them.
>>
>> Well, if you want to pursue a collaborative project, you need to
>> attract others to work on it. Perhaps 'demo' is the wrong word... I'd
>> say the project needs to have a story, and a demonstration of the
>> technology is part of what makes the story concrete.
>>
>> > But it is not so evident to demonstrate them, because the NHW codec
>> performs
>> > bad on all metrics because it modifies image to give it more neatness
>> (this
>> > also includes a slight denoising)... For speed, the NHW codec is
>> written in
>> > plain C code, there are no C optimization, no SIMD optimization, no
>> > multithreading, whereas the other codecs (x265,VP9,x264,WebP,...) have
>> them
>> > and are highly optimized, so time/speed comparison will not be fair...
>>
>> Optimization at this stage of development is misplaced. You should
>> have a good idea of the complexity bounds-- this is what other
>> engineers care about-- but so long as you can demonstrate that your
>> approach does something unique and useful in a way that draws
>> interest, that's what you need.
>>
>> > Then there are innovations in the NHW codec: like a new fast wavelet
>> > transform, a multistage residual coding, 3 new entropy coding schemes
>> and
>> > other things like for example interesting pre- and post- processing
>> based on
>> > a laplacian kernel, a feedback correction,etc...
>>
>> All these things have been done before... how are your approaches
>> unique? What references do your versions draw from? Build on? One
>> reason to be familiar with (and use the language) of the state of the
>> art is to provide a shared context and terminology in which others can
>> understand what you're doing.
>>
>> > Monty told me :"If you don't have access to web space you can use for
>> > documenting and advertising the project, we can certainly offer that."
>>
>> Absolutely.
>>
>> > Are you interested in documentation of the innovations of the NHW
>> codec? As
>> > I am still very busy (but this will change), do some of you would like
>> to
>> > make these demonstrations?
>> >
>> > So to finish, I think it's a great deal that Xiph.org proposes!!!, if
>> you
>> > want more of this collaboration, want to help in the development,
>> > documentation, demonstration of the NHW Project, do not hesitate to
>> show up
>> > on the forum.
>> >
>> > Many thanks again to Xiph!, hope this will materialize in the next
>> months.
>>
>> Good wishes to you too!
>>
>> Cheers,
>> Monty
>>
>> >
>> > Cheers,
>> > Raphael
>> >
>> > _______________________________________________
>> > theora mailing list
>> > theora@xiph.org
>> > http://lists.xiph.org/mailman/listinfo/theora
>> >
>>
>
>
[Attachment #5 (text/html)]
<div dir="ltr"><div>Hello,<br></div><div><br></div><div>I forgot in my last reply \
that my DWT implementation can be speed up, for example I'm doing for \
now:</div><div><br></div><div> for (;_X1<_E_;_X1++,_RES+=2) \
//dilatation<br> { <br> _RES[0]=_X1[0]<<3;<br> \
_RES[1]=(_X1[1]+_X1[0])<<2;</div><div> \
}</div><div><br></div><div>then</div><div><br></div><div> for \
(;_X2<_E_;_X2++,_RES+=2) //details<br> {<br> \
_RES[0]-=(_X2[1]+_X2[0])<<1;<br> \
_RES[1]+=6*_X2[1]-_X2[2]-_X2[0];<br> }</div><div><br></div><div>whereas I can \
do in one faster step:</div><div><br></div><div> for (;_X1<_E_;_X1++, \
_X2++,_RES+=2)<br> {<br> _RES[0]=_X1[0]<<3 - \
(_X2[1]+_X2[0])<<1;<br> _RES[1]=(_X1[1]+_X1[0])<<2 + \
6*_X2[1]-_X2[2]-_X2[0];<br> }</div><div><br></div><div>In these conditions, my \
implementation seems as fast as the lifting scheme, they are doing exactly the same \
things in two different ways, but similar speed ways.</div><div><br></div><div>So I \
think we can keep my DWT implementation in the NHW \
codec!!!</div><div><br></div><div>I have heard Monty that I must do (interesting) \
technology demonstrations as part of the NHW Project story, but I don't know what \
to start, and I also lack the graphical design \
capabilities...</div><div><br></div><div>Monty, a second answer would be very \
welcome?!</div><div><br></div><div>Many \
thanks!</div><div>Cheers,</div><div>Raphael<br></div><div><br></div><div><br></div><div><div><div><div \
class="gmail_extra"><br><div class="gmail_quote">2017-09-01 18:12 GMT+02:00 Raphael \
Canut <span dir="ltr"><<a href="mailto:nhwcodec@gmail.com" \
target="_blank">nhwcodec@gmail.com</a>></span>:<br><blockquote class="gmail_quote" \
style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div \
dir="ltr"><div><div><div><div><div><div><div><div>Hello,<span \
class="gmail-"><br><br>> What references do your versions draw \
from?<br><br></span></div>I think I made a mistake! In fact my DWT implementation is \
"implied" in the lifting scheme, but it could be slower than the lifting \
scheme because it does not use the lifting steps.So I think we can replace my DWT \
implementation in the NHW codec by the classic lifting scheme! -Does the lifting \
scheme patented?-</div><div><br></div>For the entropy coding, I think there is new \
things.<br>For the multistage residual coding, this is not new, but I have never seen \
it applied to an image codec...<br></div>Feedback correction is not new, but I think \
it's old enough to be patent-free.I also did not see it in an image \
codec.<br></div>Preprocessing (with a laplacian kernel) is interesting in the NHW \
codec, because it retains the details, grain that would be normally washed out by \
increased wavelet quantization.<br><br></div>There are also other processing in the \
NHW codec (all selected and optimized for speed), so I will try to make a technology \
demonstration.A little help from Xiph?<br><br></div>The other advantage of the NHW \
codec is that it is royalty- and patent- free.Do you see at first some patented \
technology used?<br><br></div>Cheers,<br></div>Raphael<br><div><div><div><div><div><div><div><br><br></div></div></div></div></div></div></div></div><div \
class="gmail_extra"><br><div class="gmail_quote"><span class="gmail-">2017-08-30 \
10:16 GMT+02:00 <span dir="ltr"><<a href="mailto:xiphmont@xiph.org" \
target="_blank">xiphmont@xiph.org</a>></span>:<br></span><div><div \
class="gmail-h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Raphael,<br> \
<span><br> On Fri, Aug 25, 2017 at 2:30 PM, Raphael Canut <<a \
href="mailto:nhwcodec@gmail.com" target="_blank">nhwcodec@gmail.com</a>> \
wrote:<br> <br>
> I'll see what Monty will do on his side (and when he has time), but he \
also<br> > told me that the NHW codec has merits but there must be an effort \
to<br> > demonstrate them.<br>
<br>
</span>Well, if you want to pursue a collaborative project, you need to<br>
attract others to work on it. Perhaps 'demo' is the wrong word... \
I'd<br> say the project needs to have a story, and a demonstration of the<br>
technology is part of what makes the story concrete.<br>
<span><br>
> But it is not so evident to demonstrate them, because the NHW codec performs<br>
> bad on all metrics because it modifies image to give it more neatness (this<br>
> also includes a slight denoising)... For speed, the NHW codec is written in<br>
> plain C code, there are no C optimization, no SIMD optimization, no<br>
> multithreading, whereas the other codecs (x265,VP9,x264,WebP,...) have them<br>
> and are highly optimized, so time/speed comparison will not be fair...<br>
<br>
</span>Optimization at this stage of development is misplaced. You should<br>
have a good idea of the complexity bounds-- this is what other<br>
engineers care about-- but so long as you can demonstrate that your<br>
approach does something unique and useful in a way that draws<br>
interest, that's what you need.<br>
<span><br>
> Then there are innovations in the NHW codec: like a new fast wavelet<br>
> transform, a multistage residual coding, 3 new entropy coding schemes and<br>
> other things like for example interesting pre- and post- processing based on<br>
> a laplacian kernel, a feedback correction,etc...<br>
<br>
</span>All these things have been done before... how are your approaches<br>
unique? What references do your versions draw from? Build on? One<br>
reason to be familiar with (and use the language) of the state of the<br>
art is to provide a shared context and terminology in which others can<br>
understand what you're doing.<br>
<span><br>
> Monty told me :"If you don't have access to web space you can use \
for<br> > documenting and advertising the project, we can certainly offer \
that."<br> <br>
</span>Absolutely.<br>
<span><br>
> Are you interested in documentation of the innovations of the NHW codec? As<br>
> I am still very busy (but this will change), do some of you would like to<br>
> make these demonstrations?<br>
><br>
> So to finish, I think it's a great deal that Xiph.org proposes!!!, if \
you<br> > want more of this collaboration, want to help in the development,<br>
> documentation, demonstration of the NHW Project, do not hesitate to show up<br>
> on the forum.<br>
><br>
> Many thanks again to Xiph!, hope this will materialize in the next months.<br>
<br>
</span>Good wishes to you too!<br>
<br>
Cheers,<br>
Monty<br>
<br>
><br>
> Cheers,<br>
> Raphael<br>
><br>
> ______________________________<wbr>_________________<br>
> theora mailing list<br>
> <a href="mailto:theora@xiph.org" target="_blank">theora@xiph.org</a><br>
> <a href="http://lists.xiph.org/mailman/listinfo/theora" rel="noreferrer" \
target="_blank">http://lists.xiph.org/mailman/<wbr>listinfo/theora</a><br> ><br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div></div></div></div></div>
[Attachment #6 (text/plain)]
_______________________________________________
theora mailing list
theora@xiph.org
http://lists.xiph.org/mailman/listinfo/theora
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic