x[n]表示编码前的数据,r[n]表示残差(residual),因此,在编码时,要求解r[n]。
一共有五种情况(order = 0,1,2,3,4)
case 0: r[n] = x[n]
case 1: r[n] = x[n] - x[n-1]
case 2: r[n] = ( x[n] - x[n-1]) -
( x[n-1) - x[n-2] )
case 3: r[n] = ( x[n] - x[n-1]) -
2 *
( x[n-1) - x[n-2] ) +( x[n-2] - x[n-3])
case 4 : r[n] =( x[n] - x[n-1])
- 3 *
( x[n-1) - x[n-2] ) +3*( x[n-2] - x[n-3]) -
( x[n-3] - x[n-4] )
所以,解码时:
case 0: x[n] =r[n]
case 1: x[n] = r[n]
+x[n-1]
case 2: x[n] = ( r[n] + x[n-1]) +
( x[n-1) - x[n-2] )
【整理后得到 x[n] = r[n] + 2*x[n-1] - x[n-2]】
case 3: x[n] = ( r[n] + x[n-1]) +
2 *
( x[n-1) - x[n-2] ) - ( x[n-2] - x[n-3])
【整理后得到 x[n] = r[n] + 3*x[n-1] - 3* x[n-2] + x[n-3] 】
case 4 : x[n] =( r[n] + x[n-1])
+ 3 *
( x[n-1) - x[n-2] ) -3*( x[n-2] - x[n-3]) +
( x[n-3] - x[n-4] )
【整理后得到 x[n] = r[n] + 4*x[n-1] - 6*x[n-2] + 4*x[n-3] - x[n-4] 】