[XviD-devel] The end of Hadamard stuff...

Christoph Lampert xvid-devel@xvid.org
Sat, 7 Sep 2002 10:28:48 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---595374472-137368967-1031387328=:30589
Content-Type: TEXT/PLAIN; charset=US-ASCII


Hi,

since you are all so eagier to do some coding (which is good!) 
I hereby declare some previous emails to "misunderstanding"
and would like to bundle effords into something useful: XVID! 

Many people seem to have deep knowledge of coding and Hadamard
transform is a nice place for playing, but not of much importance 
for the future of XVID. We/You could rather try to optimize some 
of the other functions which are known to be of more importance,
because they are already there, profiles, and found too slow: 

Two Candidates that come to mind are in mbcoding.c  which are 
called very often and are not available in ASM version. 

void
CodeCoeff(Bitstream * bs,
                  const int16_t qcoeff[64],
                  VLC * table,
                  const uint16_t * zigzag,
                  uint16_t intra)

void
get_inter_block(Bitstream * bs,
                                int16_t * block)


also there is in image.c 

void
image_setedges(IMAGE * image,
                           uint32_t edged_width,
                           uint32_t edged_height,
                           uint32_t width,
                           uint32_t height,
                           uint32_t interlacing)

pure C, too, with lots of references to "memcpy"
for small blocks, which might be done much faster by a 
skilled coder in either C or ASM. Possible a split into 
interlaced and non-interlaced image_setedges might
be easier to implement. 



Maybe some of you are interested in this?

gruel


---------------------------------------------------------------

For all others, who are not in the mood for doing something useful 
but still have no idea what to do with their spare time, here is the
"Hadamard stuff":

Attached is the first version of ASMed Hadamard transform from 16 bit to
16 bit memory (it was sent to me by Email). It's non-optimized, but rather
fast already. The author stays undisclosed for the moment... 

Now, whoever is interested can try to optimize it or write a new version,
send it to my private mail (gruel@web.de) and in the end, say end of next
week, 15th of September, the best one will be publically announced as
"Best coder of a not _that_ much XVID related but indeed very fast
Hadamard transform". There will be the usual categories: C, MMX, XMM, SSE,
3dn, SSE2 (<- that I can't test)

Please remember that this may seem like a "competition", but since we are
a GPL project, we don't work against each other. Whatever code is sent to
me is intended to get published, and there's no use in "private secrets". 
So, communication and code exchange between coders is highly recommended,
but please don't use xvid-devel for it. We flooded too many mailboxes
already with this already. Private e-mail should be known by now, or ask
me for it. 

gruel 


---595374472-137368967-1031387328=:30589
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="hadamard.asm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0209071028480.30589@lieb.math.uni-bonn.de>
Content-Description: 
Content-Disposition: attachment; filename="hadamard.asm"

OyBbQklUUyAzMl0NCg0KY2dsb2JhbCBIYWRhbWFyZF8yRF9NTVgNCg0KOy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KVEVYVA0KDQolbWFjcm8gTE9B
RF9CVVRGIDYgOyBtMSwgbTIsIGEsIGIsIEluLCBtdWx0ICgxIG9yIDE2KQ0K
ICA7ICdidXR0ZXJmbGllZCcgbG9hZDogbTEsbTIgPSAoYS1iLCBhK2IpDQog
IG1vdnEgJTEsIFslNSArICUzKiU2XQ0KICBtb3ZxICUyLCBbJTUgKyAlNCol
Nl0NCiAgcHN1YncgJTEsICUyDQogIHBhZGR3ICUyLCBbJTUgKyAlMyolNl0N
CiVlbmRtYWNybw0KDQolbWFjcm8gU1RPUkUgNCAgOyBtMSwgYSwgT3V0LCBN
dWx0DQogIG1vdnEgWyUzICsgJTIqJTRdLCAlMQ0KJWVuZG1hY3JvDQoNCiVt
YWNybyBSRUNBTEwgNCAgOyBtMSwgYSwgT3V0LCBNdWx0DQogIG1vdnEgJTEs
IFslMyArICUyKiU0XQ0KJWVuZG1hY3JvDQoNCiVtYWNybyBCVVRGIDMgICA7
IGEsIGIsIHRtcCANCiAgICAgICAgICAgICAgICA7ICBwZXJmb3JtcyBidXR0
ZXJmbHk6IChhLGIpIC0+IChhLWIsIGErYikNCiAgbW92cSAgJTMsICUyDQog
IHBhZGRzdyAlMiwgJTENCiAgcHN1YnN3ICUxLCAlMw0KJWVuZG1hY3JvDQoN
CjsvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCiVtYWNybyBIQURBTUFS
RF9QQVNTMSAyDQoNCiAgICA7IHN0YWdlMQ0KICBMT0FEX0JVVEYgIG1tMCwg
bW0xLCAwLCAyLCAlMSwgOCAgIDsgMCwgMQ0KICBMT0FEX0JVVEYgIG1tMiwg
bW0zLCA0LCA2LCAlMSwgOCAgIDsgMiwgMw0KICBCVVRGICBtbTMsIG1tMSwg
bW02DQogIEJVVEYgIG1tMCwgbW0yLCBtbTcgDQogIFNUT1JFICBtbTMsIDYs
ICUyLCA4ICAgOyB3ZSBzcGlsbCAxIHJlZyBoZXJlICA7IDMNCg0KICAgIDsg
c3RhZ2UyDQogIExPQURfQlVURiAgbW00LCBtbTUsIDEsIDMsICUxLCA4ICAg
OyA0LCA1DQogIExPQURfQlVURiAgbW02LCBtbTcsIDUsIDcsICUxLCA4ICAg
OyA2LCA3DQogIEJVVEYgIG1tNCwgbW02LCBtbTMgDQogIEJVVEYgIG1tNywg
bW01LCBtbTMgDQoNCiAgICA7IHN0YWdlMw0KICBCVVRGICBtbTIsIG1tNiwg
bW0zIA0KICBTVE9SRSAgbW0yLCA1LCAlMSwgOA0KICBTVE9SRSAgbW02LCA3
LCAlMSwgOA0KICBCVVRGICBtbTEsIG1tNSwgbW0zIA0KICBTVE9SRSAgbW0x
LCAyLCAlMSwgOA0KICBTVE9SRSAgbW01LCAwLCAlMSwgOA0KICBCVVRGICBt
bTAsIG1tNCwgbW0zIA0KICBTVE9SRSAgbW0wLCAzLCAlMSwgOA0KICBTVE9S
RSAgbW00LCAxLCAlMSwgOA0KDQogIFJFQ0FMTCBtbTMsIDYsICUyLCA4DQog
IEJVVEYgbW03LCBtbTMsIG1tMA0KICBweG9yIG1tMCwgbW0wDQogIHBzdWJz
dyBtbTAsIG1tMw0KICBTVE9SRSBtbTAsIDYsICUyLCA4DQogIFNUT1JFIG1t
NywgNCwgJTIsIDgNCg0KJWVuZG1hY3JvDQoNCiVtYWNybyBIQURBTUFSRF9Q
QVNTMiAyDQoNCiAgICA7IHN0YWdlMQ0KICBMT0FEX0JVVEYgIG1tMCwgbW0x
LCAwLCAxLCAlMSwgMTYNCiAgTE9BRF9CVVRGICBtbTIsIG1tMywgMiwgMywg
JTEsIDE2ICANCiAgQlVURiAgbW0zLCBtbTEsIG1tNiANCiAgQlVURiAgbW0w
LCBtbTIsIG1tNyANCiAgU1RPUkUgIG1tMywgMywgJTIsIDE2ICAgOyB3ZSBz
cGlsbCAxIHJlZyBoZXJlDQoNCiAgICA7IHN0YWdlMg0KICBMT0FEX0JVVEYg
IG1tNCwgbW01LCA0LCA1LCAlMSwgMTYNCiAgTE9BRF9CVVRGICBtbTYsIG1t
NywgNiwgNywgJTEsIDE2DQogIEJVVEYgIG1tNCwgbW02LCBtbTMgDQogIEJV
VEYgIG1tNywgbW01LCBtbTMgDQoNCiAgICA7IHN0YWdlMw0KICBCVVRGICBt
bTIsIG1tNiwgbW0zIA0KICBTVE9SRSAgbW0yLCA2LCAlMSwgMTYNCiAgU1RP
UkUgIG1tNiwgNywgJTEsIDE2DQogIEJVVEYgIG1tMSwgbW01LCBtbTMgDQog
IFNUT1JFICBtbTEsIDEsICUxLCAxNg0KICBTVE9SRSAgbW01LCAwLCAlMSwg
MTYNCiAgQlVURiAgbW0wLCBtbTQsIG1tMyANCiAgU1RPUkUgIG1tMCwgNSwg
JTEsIDE2DQogIFNUT1JFICBtbTQsIDQsICUxLCAxNg0KDQogIFJFQ0FMTCBt
bTMsIDMsICUyLCAxNg0KICBCVVRGIG1tNywgbW0zLCBtbTANCiAgcHhvciBt
bTAsIG1tMA0KICBwc3Vic3cgbW0wLCBtbTMNCiAgU1RPUkUgbW0wLCAzLCAl
MiwgMTYNCiAgU1RPUkUgbW03LCAyLCAlMiwgMTYNCg0KJWVuZG1hY3JvDQoN
CjsvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQo7IFRSQU5TUE9TRSA4eDgg
TUFUUklYICAoaW4tcGxhY2UpDQo7ICB0aGlzIGlzIGEgY29tcG9zaXRpb24g
b2YgZm91ciA0eDQtdHJhbnNwb3NpdGlvbnMsIGVhY2ggcmVxdWlyaW5nDQo7
ICA0IHJlZ3VsYXIgcmVnaXN0ZXJzIChlLmcuIG1tMSB0aHJ1IG1tMykgKyAy
IHRtcCByZWdpc3RlcnMNCjsgTm90ZSwgaWYgdGhlIGlucHV0IHdhcyA4Yml0
cyB1bnNpZ25lZCwgd2UgY291bGQgaW50ZXJsZWF2ZQ0KOyB0aGUgOGItPjE2
YiBjb252ZXJzaW9uIChwdW5wY2tsYncuLikgaW4gdGhlcmUsIGFmdGVyIHRy
YW5zcG9zaW5nDQo7IHRoZSAqYnl0ZXMqIChzcGVlZC11cDogeDQpDQo7IE5v
dGU6IEZvciBlcmdvZGljLXRoZW9yeSBlbnRodXNpYXN0cywgbm90ZSB0aGlz
IHRyYW5zZm9ybSBzdHJvbmdseSANCjsgcmVzZW1ibGVzIHRoZSAiYmFrZXIn
cyBtYXAiLg0KDQolbWFjcm8gVFJBTlNQT1NFXzR4NF9NTVggMiAgICAgIDsg
JTE6SW4sICUyOk91dC4gIHVzZXMgbTAsbTEsbTIsbTMsICsgbTQsbTUNCiAg
bW92cSBtbTAsIFslMSswKjE2XSAgOyAwMCAwMSAwMiAwMw0KICBtb3ZxIG1t
NCwgWyUxKzIqMTZdICA7IDIwIDIxIDIyIDIzDQoNCiAgbW92cSBtbTEsIFsl
MSsxKjE2XSAgOyAxMCAxMSAxMiAxMw0KICBtb3ZxIG1tMywgWyUxKzMqMTZd
ICA7IDMwIDMxIDMyIDMzDQoNCiAgbW92cSBtbTIsIG1tMCANCiAgbW92cSBt
bTUsIG1tNA0KDQogIHB1bnBja2x3ZCBtbTAsIG1tMSAgOyBtbTAgPSAwMCAx
MCAwMSAxMQ0KICBwdW5wY2tod2QgbW0yLCBtbTEgIDsgbW0yID0gMDIgMTIg
MDMgMTMNCg0KICBwdW5wY2tsd2QgbW00LCBtbTMgIDsgbW00ID0gMjAgMzAg
MjEgMzENCiAgcHVucGNraHdkIG1tNSwgbW0zICA7IG1tNSA9IDIyIDMyIDIz
IDMzDQoNCiAgbW92cSBtbTEsIG1tMA0KICBwdW5wY2toZHEgbW0xLCBtbTQg
IDsgbW0xID0gMDEgMTEgMjEgMzENCg0KICBtb3ZxIG1tMywgbW0yDQogIHB1
bnBja2xkcSBtbTAsIG1tNCAgOyBtbTAgPSAwMCAxMCAyMCAzMA0KDQogIG1v
dnEgWyUyKzEqMTZdLCBtbTENCiAgcHVucGNrbGRxIG1tMiwgbW01ICA7IG1t
MiA9IDAyIDEyIDIyIDMyDQoNCiAgbW92cSBbJTIrMCoxNl0sIG1tMA0KICBw
dW5wY2toZHEgbW0zLCBtbTUgIDsgbW0zID0gMDMgMTMgMjMgMzMNCg0KICBt
b3ZxIFslMisyKjE2XSwgbW0yDQogIG1vdnEgWyUyKzMqMTZdLCBtbTMNCiVl
bmRtYWNybw0KDQolbWFjcm8gVFJBTlNQT1NFXzh4NF9NTVggMg0KICBUUkFO
U1BPU0VfNHg0X01NWCAlMSwgJTINCiAgVFJBTlNQT1NFXzR4NF9NTVggJTEg
KzgsICUyICs4DQolZW5kbWFjcm8NCg0KJW1hY3JvIFRSQU5TUE9TRV80eDhf
TU1YIDINCiAgVFJBTlNQT1NFXzR4NF9NTVggJTEsICUyDQogIFRSQU5TUE9T
RV80eDRfTU1YICUxICsgNCoxNiwgJTIgKzQqMTYNCiVlbmRtYWNybw0KDQo7
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQpIYWRhbWFyZF8yRF9NTVg6
ICAgOyBpbnQxNl90IE91dFs2NF0sIGludDE2X3QgSW5bNjRdDQoNCiAgICA7
IDE2YiBpbnB1dDogMTk2IGN5Y2xlcw0KICAgIDsgOGIgaW5wdXQ6IDE3MyBj
eWNsZXMuDQogICAgOyBjYW4gZWFzaWx5IGJlIG1hZGUgaW4tcGxhY2UgICAg
DQoNCiAgbW92IGVjeCxbZXNwKzRdIDsgT3V0DQogIG1vdiBlYXgsW2VzcCs4
XSA7IEluDQoNCiAgVFJBTlNQT1NFXzh4NF9NTVggZWF4LCBlY3gNCiAgSEFE
QU1BUkRfUEFTUzEgZWN4LCBlY3gNCiAgVFJBTlNQT1NFXzh4NF9NTVggZWF4
ICsgNCoxNiwgZWN4ICsgNCoxNg0KICBIQURBTUFSRF9QQVNTMSBlY3grNCox
NiwgZWN4KzQqMTYNCiAgVFJBTlNQT1NFXzR4OF9NTVggZWN4LCBlY3gNCiAg
SEFEQU1BUkRfUEFTUzIgZWN4LCBlY3gNCiAgVFJBTlNQT1NFXzR4OF9NTVgg
ZWN4KzgsIGVjeCs4DQogIEhBREFNQVJEX1BBU1MyIGVjeCs4LCBlY3grOA0K
DQogIHJldA0K
---595374472-137368967-1031387328=:30589--