联合立体声解码

联合立体声有两种,M/S stereo(中间旁道立体声)和intensity stereo(强度立体声)。

M/S stereo

在M_S立体声模式中,传送的是规格化的中间/旁边声道的信息,计算公式如下:

其中,l , r 表示转换后的左右声道值,m 表示中间声道值,s 表示旁边声道值。

Intensity stereo

在强度立体声模式中,左声道传的是幅值,右声道的scalefactor传的是立体声的位置is_pos。如果仅在一个指定了common_window为1的CPE中的右通道中指定哈夫曼表为INTENSITY_HCB或INTENSITY_HCB2,则解码时使用强度立体声模式。其计算公式如下:

is_pos += dpcm_is_pos
scale = invert_intensity * 0.5 ^(0.25 * ispos)
r_spec = scale * l_spec

is_pos 是右声道传送的 scalefactor,dpcm_is_pos 是上一个 is_pos,初值为 0scale 为强度因子,invert_intensity 为是否反转哈夫曼表。这个变量由 ms_used 指定,关系为:invert_intensity = 1 – 2 * ms_used,另外,当ms_mask_present0时,invert_intensity恒为1