[Speex-dev] Major internal changes, TI DSP build change

Jim Crichton jim.crichton at comcast.net
Thu Apr 20 08:56:41 PDT 2006


>> You found it.  The SHL32 (not SHR32) line fixes the problem.  It must be
>> doing a 16-bit shift, then extending the result (which is reasonable). 
>> As
>> it happens, that it the same macro which gave us trouble last May
>> (25th/26th), when the C55 build was more subtlely broken.
>
> Yes, that's what I finally remembered. I think I've fixed all
> occurrences (by adding EXTEND32) in svn. Could you check if that's the
> case?
>
>> I will test the C54 build and send a patch tomorrow with updates to the 
>> .pjt
>> files (adding window.c) and bits.c, as I described earlier.

Build 11169 in SVN works correctly.  I have attached a zip file (renamed 
.txt) with a patch to bits.c to make the byteswapping for TI DSPs 
consistent.  I also added a switch so that byte swapping could be enabled or 
disabled in config.h.  There are also updates to the .pjt files to add 
window.c, and updates in the test main files in the TI directory to account 
for the reduction in delay from 10ms to 5ms.  There is also an added file: 
the C6x build needs speex/speex_config_types.h, so I created a speex 
subdirectory under TI with this file.  The subversion patch generation tool 
would not handle an added file.

I first made a patch against build 11146, applied this against 11169, made a 
couple of other changes, and made a new patch agains 11169.  The second 
patch is larger because some line ends got changed in a couple of the files 
when the first patch was applied.  I am sorry for the clutter, but its my 
first time with the patch tool.

I have one lingering concern.  The C6x encoder does not produce the same 
results as the C55x and C54x.  The waveform reproduction is less accurate as 
measured by a sample by sample comparison.  In the test programs, the SNR is 
11.10 in the C55x and C54x, and 10.79 in the C6x build.  I figured that the 
encoders might not produce bit-exact results because of differences in their 
wordlengths, but at one time they were the same (1.1.8, I think).  The 
decoders do produce the same results.  Do you think that this is anything to 
be worried about?

Finally, in the simulator I measured the peak MIPs for the C55x as 29.4, 
where it was 41.5 in Speex 1.1.8.  I was expecting some improvement from the 
continuing work you have been doing on the fixed point build, but this is 
really impressive, almost too good to be true.  This is all straight 
compiled C, after all (though the compiler has been updated also).

- Jim 
-------------- next part --------------
PK    QX”4Þü`h  ‹Q     ti_dsp_11169.patchí<ksÚJ²Ÿã*ÿ‡¹œÝ°Áò ¤ÆJÌ]¼@gã”JÀ`´‰•„7'ÿ}»ç!Í	dǹ»[µœœ Íôkzº{º["mgLï^“™=ô”ÞíYÞhº;ÝÞjüüg{«\.Ç)?Ë{ôÆöm×!Õjµöª°½U,W¡n]ï›í\“‘»¸˜ß'åê‹ÃÒRä_¿ÿ¾½E~£ÎØžlø¯ü›=Ó	iu;ïÚïÍAÛl

]na˜À¸íÐ1É«“‡—òÇÉsG—$º·Cö	:h“ÖÑ
9é_=àÊqÈñçÑ7/ŒžÙ:mö t«
SæÐüÝѯP&§¼I™*A™¯Jû/I¾j\™7®=&ÏD<Ó£ÖØœxî<ßÇÁc#;8S"£©å‘
ünl' 3ê€Æ¾oøà½]ß*ãå„äaŠ¼%ˆW~;\NLßþ?ZØ*
@‡!
¤@öb*­s0 "ÀVé CÎ>\ø[Ës`±&Ïç.¬Ñ7
òødfy×Ô#ÁÔrˆ5›¹#+€mJê½&¹[C]’B¦œ—{ëP¯ Ç¿³uñ×B0_€øy¼Ù)p	@sÈ@jâ䋏Äæ
ˆä"zAR¥ƒ®¬H 
°
À™¨<B6Ó vêìBg>s6
pŒ+g³£‚è[™ÏµÜålL
7 
Eh°Å2w/ð–ì'š8›ÈiŠú!¯CySùœ¸Œ	ìyѪ×/yýz¹t?µ‰ë‘¼Ý¨Ôí7¸Yv±X\”møbmÈ.Ÿt†è£¸ÍoÞ
ÔyèËë
ÕhìÈóç2êåOšƒ¦‰ fÿSóÜB^ÿÖZá}@}¸dá¹p´à8®7†›üˆmǐ’±qÞÔsÀhï‹2>žºgý|³@òð¯·oÉËÂóÊÝdRøƒ<'ìîÍ›—àýîNz“M²P_Ôµ$,–)ª˜¨(NEÞ¢2 at McœÊ›7gÝ÷ûæq{ F äEà_eþ^so¨7™¹·8ÊέZ•[µWòÜ"D
´“ÙÒŸ2wf»p¥µpß¾M“,E	64‹šÝ$¨KÀ¬¨,‚ãò×k,š¯ûå~©Z

¿ªÈ
óÌrnÝ™aPÏç5ê½rµ´üBöJGQª³ÜÄ
¥
ÃI–Xæfš0™ÉÊËҐãû­ƒï¡X^̐uë{ãÑ`é9Š&vâç(ÛŽW¯JpâïWàKšá†½x¼îÓt½aÕåتõõòh'Mw“jŠá
U_}[	ÅW1*:¯H®¯\f¶é"¿콑ëLìë'M”ª)y‘” —jàm%‘ÏA(oÁœg_OHod¿R9"¾Mú÷~@çU´Ñ.[Ý;{F_Iœiùܲ
Â2?â.ÅvF³å˜’	 ³=ļ¸vxwW‚ô¾ˆåŒáê®àÔQßw=›íÖ­g	Çø­
L–dZî
¢žMƒóËÔÇô†ÎÜÅœB–¸îÌßá§GǶxöpÉA>HôÝ¥7¢ldh;–w¼POŒ°Åow0eTJ‡‡¤ˆ_µÐ:Æû³ö{£Ó2H·GºƒS£÷©Ý7
¤Ùk÷۝÷¤Ý!ÍÎgò©ù™t?H÷
ò¡oðËvŸ‘éwß
>5{F‰i¿#Í“@çD"\tûýöqû¬=øŒCý­SrÒ<o¾7`•p—·£ õ®}iœ˜Ývg Žöšçpê·ÿfj­¢Lœ´ûÍã3ÃüÔ>1Ž›“mFŒ©	Yé-Óþ>˜ÒÜ' !Ͻ
2uAÂúÍ'˜)L<kNKd‡±À¤–Ø`w"2Š=
Õyó’

 ˜D$¸¿§G¯B(ò
ÓáòZY:Xñ­î‰av;gŸCH£ªGU6EªO°’k»ƒ¤ä¶îÁ%È”Bªƒ	À¸À©vô1
kâ4zÇݾa6Ïκ-ÌŠ|JÉ´1_Ž¦X\ ~|mÍ3Ž¡ÃN÷Ìóv_
Ó¨s	º=)Á0Íç›gâ²ôw¾ôÌ¿À‹ \@æ`¾3Ûù0rçsÜô,¹¦=¡«˜Tá¸*Ö6?S4NS¬ë¢g´À껝jMlÌ
L),èÆš-ÁÆÇ9£4¼·³f÷>(·ùå·áBµ0E]ýøCé·û³?h¶þÂMù¨R©$ö[½æ uª‚
$€‚)%QÝ?JM ZTY¡¸v©ÛE§kžu;ïñÿmÍM×-©f]W-ûº’´•²®}¹.L^â8I´óëÖS\'Va
|‚<k4 *ûØd08—

© BIÖÛ¼bT­(QVÔ‚l4
±Hèé"lÄ'c€ìÕð
4V¢« {lleȏ­ê¢¢†,ÒH3îOV`RTU†‘
߇$ŒàjDå¥:
ÈØ
,¶õ¢8WU¥—÷lÿ
‚#²›"pdJ ŽA®‰¿	)áW4¢è¡*ÁWõݍ¡7Û‚j™” ¤5q7j~üʨ§þ° «è8cÌÕ02
\ز¨ ãýp‚^»Ý]ü=xÚÊl#»ô’-jb-W­`1W­òâ¢
«s.<÷ït°Ê­D>R±Þß­ü˜71ç.ØÌ=–-
»7”SlƒƒÆdj䋤a;›þWX®;±½F®õúŠI‹ÍÏo(íU`_éò_å`I8&ÓB2‚~p¿ 
㎎–ž0ѺøðΚ۳ûÆ༰_Áðx	ã(à€6,
–ë!O1۝/íÙ˜
Àql»þÊøåxßb¥.@ây—ã*?¨aý|ðB6«ú¬
lävw¯à|¨"Ö3²f³¡Gòî(—{3ôÖÏÿƒMS¦omgìÞ&Q ½¢6©3*ÚåÖѝ3²Ñ|œc{¾ê?GºU
ýbÿIe·ÙÖ þ'úÏÑCý'Bxˆÿ
ý×~ÂŽ6ùOMêµ_|þ¤³Ûè?ëP“ý‡5«/ÿuþc¬ñŸÚCÏáþSû:
aå‘*âÉ´Œê‰:üiµúÁrl»æÍÁnõª
9èÕèš5<Ñ®¼À¯
V*»p½Æ°õ½ÖÑFCÓ§ìÝŒuPôndV+fµf2
2XªG^â׿wlP£B퐇
²œãƒeUrÌÕÂ(B¾D¦ÿk"Œ¶™tY“Üo”¯IÙ= 剗ûS
­Ö
Û^ኒ²Í$¶å•è©Ãí8)õñ‡÷ìò´ùÑ0EYy
#óv­$Ò
Ñ#CY‘p颈{9
“2M´âÏ1ݸ蘃nØ„›Ú
·ã£¥R<zU:äVÌh	§NQ_DeBäv¥ô±°´;· ¥›à. ¸%e¥¨žDñsìiž8õôsf2éX©
ðgá2KØV
‡Ã‘AÍ,©wŸÎGœ!,‰¢ô
{QQW­Džã0uNc²ðl'˜¼À¦z%’c2ÖÚyMþ<¾rr%"àñ	—ÿÍ^˜×ž»\˜c:³îIgÉ
Ù¯ó§V© ‡u.¸xçL{’`8Ő
¹Ñë«ø)vå[óô««¹5£l; ±±äêòU·jé¾ê†_âU·™OI]RfJÂÀœ¸êä%)ÐÕí0Ç#[¼l;™ùìúÎ8äa;!Nè{œ~Q¥6™Àj<à>d"è°UsÜ
Ò\„õ_ç#Œ|6' ÉÉWU-^
ò(·¹¦®÷šÿ¥–S>‡3›|´ ë"ʃÞ)˜?Î\ÍÛ;¡ì›œ¹î‚?¹UÒ†‰‘úd–ûËOøÉ'»ì5æ›6
ón4³%8¥ÆqÏËâaôÀ-"^
x‚'ÅH†%Â6¾=æ:%by»øs;À÷A7ö.‚©«™¢–ð) 7ðvx02ˆ8§ÁkžQ
”ª¯ö!¥‚ï‡ÿvÏŸyÃc£vã¨x/ä¢ö¦2ý†m/Vv§oµ™ ÒÝÕ1ØÂø`DBI)S&‰Ç†WäS{©1õ)!c|™FE“Rrcbò§K,¥ƒAþÂ
™¹`$ì/g§½ðÕø­`ÇŸE/<ëznñ§}£5hw;y qJ­„ÐÝù=>0Šzò°Û[UÀ|Ik?­¶)ú#Ï
FÓM<Ø—´>´dÃàw áýÌ
Z3í"€c_2œq}XðˆÁ‹QÂ5‰þ ñWÕ!¢«íâÜ
¦|ÓØkÔszy|ù§œ{xLíÈsWd"ïÚgÙÁ#
æØ	Ýè|8;«ó-LxË!$ɏWŒíhv€Ož**Îxx-$Ññø¸†“>œ&žÔ&»úe__×ÊÇñl'
£ýÌ
çÛ×÷¶ù~ùì‡O¯M¸hT ¾'÷&Ëæ0wQ'øÛfÊ€
_ [ô•úŽMɝmÓŽh·c:÷}ôG¤Ì²-
<¾
ÝÁdË]:.k,mTI¶„‡éêÒeRÕÈô£,škJlöögqTáÈõ•i°ühšYêìNdp(aŸ%¸G÷õ$ ¶¸×È‹1-eËGʳÓvì V
ê–Ÿ&ë³gàÞ=Š'»/$ãOÂyÃßÞPD‚‰P&”*“°@±×»ò´Q<¾µ;ø O3>Y:+8=L4es
YÔëq`ö
€Yí#&u!GÁ,ײ–êóXŸ=¨£$ŠÍ
²žñ×F°Q|VÞy
<?ظŒ'Yxkèš)Ó¨ LÆ–6ˆØ~ "<î­"fDþ+X,¤R«ª	´ºçgÆ¥NCE}|e4ž´²VBÕJ´SK[š±p>”å-“4­¼õÂò–Õяb–‰Q¼Žæ§Bf>²Æe<ÖÔÑ8¯”Ïé*å3#½¾|V“†(]ÈĈƒk¼øPÈ."¨qõ¥Ú-*VDW¼”²%Ÿ•·S2ÿ?<T at y
ÿοPüQ[^&%¥ð »B‰¨öø1M [ÏhF
|¡+Ö@øKéq)ùg~«‡#Š<êSU
1

دÞ06DF
œgLa`f´ùªd‰çJ%ì1(X2Ó)²×äw£´+®]-	F%î*
”5a^_TøöŽ²¿ü&ñ-fh)›
ɱ_QeHØ•ŒX­Ü
d¡å#ã
KÔWµ¦gj|>F˜Kl÷Ø©$(‡iwšúRLBìÅó(m‡ä¯kL·
.±x¡Ê°à+ÒYª
jõÌ`fç»dbyxhvjH=­xɏ427°f„›û8<‚X4_¥Ht÷ð@\?ðÜ{ §Ï˼@ÎÃ}hiñFX¯ŒʈԖf´ê렍ÆCcQd1ìóü¹~¯ÓÄÃí_G	K/z&*³ø

 öQ~¹Q¨‹vAñ?þñI±†¤
ah%;D¹«Ç(CZÅ*G†l- 0*e4¥g¢ªDÕÊÎ̽®Vòy¿ÞYØËSö͐ž‰ŠàX|{&
.¸§|>,E‹Åºn«£™ëÓÐ
Tk–SŠÉ!-ö¥–V-Õ
,‹.Ã=Y†æ,Ö¹×PŠfÉ’;“ô¥\¿Óªž\9€
ýTp¬h,§•ãŠˆ«
) -ý”û'¸$”bí‹>sI±Yù*-×vŽ*;²_µIXÐUö^àúÇvØMT¸nÓÛ`zKq¥,„ÁÌ-°­âÃ:`ŒåCú_+6·¿Göæ×
ìÆÞ—TúÎjëKïÓŠÆ×VQé{m¿³F{j׋ͦ5½TÑÝRÁmñöum) ±ÿÄE¼¹ýþ+±î3ªÕ·ã‰Ö‘ÚR²,þM„peJ;Š
†Ý(å›Qì6Ö‹
	²_ãË›aÔ‰ŠÄŽ7¢"r«}(ñÃh¥ßÄî•vSª7­k1Åg7u˜ÉæžML¶ö’¶+Y›K—ýèÖ’&NæƒتÌm%
z}WI‡Õ›J\iiÈ<@b­£´AòĆRÊ
~^zÞÊFFé%%ãfê$
¨‡ÙPc}¤½š
}µ‹$ƒÂOõ‰ì-$Î1ýÕ%Åï<`Hö÷.jâ½.äÐ^Ó=Ú’ÿBÅc8eár+¹(çÆ_ÀàRûFb?õÞ'½®oŠ¹°
Umݤ›«6üýM
Þ¶‘xz›EŽYßˁ´ŠZh‹èž“Þb‘Ðê°H¤abƒ%aS{%q1jw
ùMro%aNâ6$6V"9ãm•­'ŠšÞSYÕ¶T4?!Ñ¿
‘µŸ’}óQ3% ©—Â|
T¹Ï=´“¢©æG
ìmŧ“º(ÊtbE(Rm–hBª
þd§D19l”h·?Ý'‘.ï’D\Ö5I4Y2öHtœ'l‘D„`6›¥A‚pJnÕöΪÝÕ •Þˆ6ù‚Þ‘©G†ÆLì{¨Æÿȶ‡’ohíò=ÈUlýPK    x„[3ÔÅðà  c     speex_config_types.hµUMoã6½È ‡MÕÙn›
vO²DÛdI%©$>i‹Ž	Ø¢!Êù öÇw†rÖÎ&E/í!1;yïÍм¼€Èn_Zó°êà,:‡/Ÿ?_AîÈ×鍀7‹á  Æf­¿‚Ûjý\.l³4e÷²Õn¸¢è¬2
H
íB­—¦1±ƒ¥mAqˆ®ÿ|~ ºÂ¨šWW¸Ú¶v¡³­;! JÞ9
O¦[ùS¶Öøo³µN·p¦fçË
ñõÚn7ºé ³ví†:-tm\ךû
•öU¹9»kÚïÜ›¦j_¨éó
°(}Ú]G([›¥YT„@ÕjØêvcºN×D÷ÑÔ¸èV–^iÄY¯í“i
 m©{Í„Bç6ºûJkúûívìò•Ö‚Tnv®ƒVwd%W÷ö‘BûþFc;³Ð†ƒ5‚Æ¡¬—÷–V\¬+³ÑíðŸ‰`Á#S^‰ Ôz‡äþ.ÐK$˜Ú.vÔÆêµc—Ø‹Á6U§[S­ÝÁuß-B=p¤,ÕÆ¥”¦ÚhâDë;³]
mû c»kê¾Vcy¾¦óC
=4Î$rx{MS„j,è¦Æ]Mƒœ6¶ÓÐÛÔ9œÉÖ<bÚ„ãqvÙ=Ñ(ìç‹nЂ¦Ï»–æªé'̹c5jÊ%Èl¬nCÁ ×¹ÈnxÌbÍ1È Êò¹à“©‚i–ÄLHÓwS%ø¨P™óý{(ñô§O>¦s`w¹`RB&€Ïò„#"–aª8“xãÓ()bžN@H3E0	Ÿq
™*|ñ÷'!ÃŒ‰hŠ_ÃO¸šû’c®R*7Î
‡Bñ¨HBy!òL2 
1—Qò‹‡€$°0°–*Ó0I|ÑqV¤q¨x–Bv,FY†£„ò„WsÁ"E’«-D‚I 2gDZ;†‚B1È„•ì¯ó0q8'¨ïì½3Ƕ¶(*›m´C#©¸*ƒI–ÅÞrÉÄ
˜üI&½i
dQa°W
(hf`ú¨ÜÛÇSÅ„(rRŽ
¿Esiˆ§cï3šBšÑ§LÌ·ïÚ¾ÜN†9ë]ɉîEê8
K¢™êH,á¤l’ð	K#F	ÝrÉαq
ùM•Šß†X¹ðÚ©_È­_r?Š¯Ã
øÆCßpâ¿ÏÇY|?:Þ¾hºw8¸¸
œšeƒ/”%¶ŽÝ•jž3YNËòdpê_
ýQèdpy÷¾„®žáâò„ú7
ïëÚ1æ“Rñ§»søñããØÆNô¾	·²-]ççÒ4Ýï×e÷íÛ5Î<ÐùCÒî}ÖÚââ
à/üÌÙ
’NõÚé7ª®{Uÿ
5Üù7f¯)oˆá¯ÿ’
?¬þPK     QX”4Þü`h  ‹Q            ¶    ti_dsp_11169.patchPK     x„[3ÔÅðà  c            ¶5  speex_config_types.hPK      ‚       


More information about the Speex-dev mailing list