[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&#39;m doing for \
now:</div><div><br></div><div>       for (;_X1&lt;_E_;_X1++,_RES+=2)         \
//dilatation<br>       { <br>               _RES[0]=_X1[0]&lt;&lt;3;<br>             \
_RES[1]=(_X1[1]+_X1[0])&lt;&lt;2;</div><div>         \
}</div><div><br></div><div>then</div><div><br></div><div>       for \
(;_X2&lt;_E_;_X2++,_RES+=2)       //details<br>       {<br>              \
_RES[0]-=(_X2[1]+_X2[0])&lt;&lt;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&lt;_E_;_X1++, \
_X2++,_RES+=2)<br>       {<br>              _RES[0]=_X1[0]&lt;&lt;3 - \
(_X2[1]+_X2[0])&lt;&lt;1;<br>              _RES[1]=(_X1[1]+_X1[0])&lt;&lt;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&#39;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">&lt;<a href="mailto:nhwcodec@gmail.com" \
target="_blank">nhwcodec@gmail.com</a>&gt;</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>&gt; What references do your versions draw \
from?<br><br></span></div>I think I made a mistake! In fact my DWT implementation is \
&quot;implied&quot; 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&#39;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">&lt;<a href="mailto:xiphmont@xiph.org" \
target="_blank">xiphmont@xiph.org</a>&gt;</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 &lt;<a \
href="mailto:nhwcodec@gmail.com" target="_blank">nhwcodec@gmail.com</a>&gt; \
wrote:<br> <br>
&gt; I&#39;ll see what Monty will do on his side (and when he has time), but he \
also<br> &gt; told me that the NHW codec has merits but there must be an effort \
to<br> &gt; 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 &#39;demo&#39; is the wrong word... \
I&#39;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>
&gt; But it is not so evident to demonstrate them, because the NHW codec performs<br>
&gt; bad on all metrics because it modifies image to give it more neatness (this<br>
&gt; also includes a slight denoising)... For speed, the NHW codec is written in<br>
&gt; plain C code, there are no C optimization, no SIMD optimization, no<br>
&gt; multithreading, whereas the other codecs (x265,VP9,x264,WebP,...) have them<br>
&gt; 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&#39;s what you need.<br>
<span><br>
&gt; Then there are innovations in the NHW codec: like a new fast wavelet<br>
&gt; transform, a multistage residual coding, 3 new entropy coding schemes and<br>
&gt; other things like for example interesting pre- and post- processing based on<br>
&gt; 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&#39;re doing.<br>
<span><br>
&gt; Monty told me :&quot;If you don&#39;t have access to web space you can use \
for<br> &gt; documenting and advertising the project, we can certainly offer \
that.&quot;<br> <br>
</span>Absolutely.<br>
<span><br>
&gt; Are you interested in documentation of the innovations of the NHW codec? As<br>
&gt; I am still very busy (but this will change), do some of you would like to<br>
&gt; make these demonstrations?<br>
&gt;<br>
&gt; So to finish, I think it&#39;s a great deal that Xiph.org proposes!!!, if \
you<br> &gt; want more of this collaboration, want to help in the development,<br>
&gt; documentation, demonstration of the NHW Project, do not hesitate to show up<br>
&gt; on the forum.<br>
&gt;<br>
&gt; 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>
&gt;<br>
&gt; Cheers,<br>
&gt; Raphael<br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; theora mailing list<br>
&gt; <a href="mailto:theora@xiph.org" target="_blank">theora@xiph.org</a><br>
&gt; <a href="http://lists.xiph.org/mailman/listinfo/theora" rel="noreferrer" \
target="_blank">http://lists.xiph.org/mailman/<wbr>listinfo/theora</a><br> &gt;<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