Hi everyone, after having an extensive look at the reference decoder as well as the specification documents, I'd like to point out what I think to be some minor omissions/flaws in the latter, and suggestions for correcting them. --- #1: in vorbis-spec-floor1.html, packet decode: Between 14) and 15) a crucial step is missing. Please insert: 14a) [cval] >>= [cbits] ---- #2: in vorbis-spec-floor1.html, curve computation step #1: The distinction between [floor1_Y] and [floor1_final_Y] looks invalid. IIRC the prediction loop works as follows: At the beginning Y[0] and Y[1] contain the absolute amplitudes (log scale) at the lower resp. upper X boundaries, and the Y[i] for i>=2 are the wrapped difference values, which are then progressively replaced by the predicted absolute amplitudes at X[i]. In the current spec docs render_point always takes its input from [floor1_Y] (which mostly contains differences) and [predicted] then is output into [floor1_final_Y], without any feedback. IMHO this doesn't work out. Either the distinction between [floor1_Y] and [floor1_final_Y] has to go away, otherwise the following may do the trick: move steps 25) .. 28) to the top, e.g. behind step 1) in step 5) (but not in step 6) replace the two occurrences of [floor1_Y] with [floor1_final_Y]. --- #3: in helper.html, function render_line: Replace 11) with 11) [ady] = [ady] - abs ( [base] ) * [adx] --- That's all I can think of at the moment. Any comments? Henning <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
On Tue, Aug 13, 2002 at 05:09:07PM +0200, Henning Jensen wrote:> #1: > in vorbis-spec-floor1.html, packet decode: > > Between 14) and 15) a crucial step is missing. Please insert: > 14a) [cval] >>= [cbits]corrected> #2: > in vorbis-spec-floor1.html, curve computation step #1: > > The distinction between [floor1_Y] and [floor1_final_Y] looks invalid. > IIRC the prediction loop works as follows: > At the beginning Y[0] and Y[1] contain the absolute amplitudes (log scale) > at the lower resp. upper X boundaries, and the Y[i] for i>=2 are the > wrapped difference values, which are then progressively replaced by the > predicted absolute amplitudes at X[i]. In the current spec docs > render_point always takes its input from [floor1_Y] (which mostly contains > differences) and [predicted] then is output into [floor1_final_Y], without > any feedback. IMHO this doesn't work out. > Either the distinction between [floor1_Y] and [floor1_final_Y] has to go > away, otherwise the following may do the trick: > > move steps 25) .. 28) to the top, e.g. behind step 1) > > in step 5) (but not in step 6) replace the two occurrences of > [floor1_Y] with [floor1_final_Y].I opted for the latter strategy as I dislike the idea of vector mutation in the spec (as opposed to generating values into new working space).> #3: > in helper.html, function render_line: > > Replace 11) with > 11) [ady] = [ady] - abs ( [base] ) * [adx]Also corrected.> That's all I can think of at the moment. Any comments?There's not much to add. Your concerns and solutions were all precise and correct. I'll commit the fixes to CVS and web as soon as I'm online again (this email will probably flush shortly before the changes are visible). Monty --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.