Vorbis development, status & patent issues
Reply #4 –
Claim 1 from patent US5214742:
1. In a method of transmitting a signal including the steps of dividing the signal into successive, overlapping blocks by means of windows, converting the partial signals contained in the blocks into a spectrum by transformation utilizing window functions within the respective said windows such that the resultant of the window functions in the respective overlapping regions of successive blocks equals 1, subsequently, coding and transmitting the resulting spectra, receiving and decoding the transmitted coded spectra, converting the decoded spectra back into partial signals by transformation, and finally, joining the blocks containing the partial signals in an overlapping manner; the improvement comprising selecting the length of the respective window functions as a function of signal amplitude changes.
Then block.c in Vorbis source code does overlap/add and windowing from line 722 to 758 (latest CVS nightly).
for(j=0;j<vi->channels;j++){
/* the overlap/add section */
if(v->lW){
if(v->W){
/* large/large */
float *w=_vorbis_window_get(b->window[1]-hs);
float *pcm=v->pcm[j]+prevCenter;
float *p=vb->pcm[j];
for(i=0;i<n1;i++)
pcm[i]=pcm[i]*w[n1-i-1] + p[i]*w[i];
}else{
/* large/small */
float *w=_vorbis_window_get(b->window[0]-hs);
etc...
And of course it does MDCT. Now the only possibility I see that this doesn't infringe the patent is if the window does not behave as claimed in the patent.
Menno