购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.2 分层码率控制方法

1.图像层比特率控制

视频信号通常按照恒定的帧率送入视频编码器,受信道传输能力、视频编码器处理能力等因素的影响,一般情况下并非所有的帧都被真正编码传输。因此,跳帧通常是码率控制中的第一决策选择。

1)跳帧

在对当前帧编码前,首先估计缓冲区的满盈程度,即缓冲区中占用的比特数 W

img

(2.37)

式中, B prev 表示上一帧图像实际使用的比特数; W prew 表示上一次缓冲区中的比特数(初始时, W prew =0, B prev 是第一帧图像使用的比特数); R 表示信道速率; F 表示帧频。

如果 W 大于或者等于设定的阈值 M ,则编码器将跳过当前帧,直到缓冲区不是特别充满( W < M )才终止跳帧操作。每跳过一帧,缓冲区将减少 R / F 比特。这种简单的跳帧策略可以有效地避免缓冲区上溢。

2)延时

在实时视频通信中,与编码过程、传输环节引入的延时相比,缓冲区引入的延时是主要部分,其大小Δ t 由下式决定:

img

(2.38)

M 的取值是缓冲区环节引入延迟的决定性因素,在实际系统中可以通过增大(减小) M 来相应增加(减少)缓冲区延时,可见缓冲区延时的大小相对比较容易控制。

3)码率控制

经过选择的图像帧送入编码器后,图像层码率控制首先确定该帧图像可以使用多少比特,称为一帧图像期望输出的比特数,用 B 表示:

img

(2.39)

式中, W 表示缓存区中的比特数; F 为帧频; M 为设定的容量阈值; Z =0.1。Δ是一个取值很小的参数,反映了缓冲区满盈程度对一帧图像期望输出的比特数的影响。式(2.39)意味着,如果 W 超过了 M 的10%, B 的取值就会略微减小;否则, B 的取值会略微增大。

2.宏块层比特率控制

宏块层比特率控制需要根据一帧图像的期望输出比特数,确定各宏块使用的量化参数。以一帧图像中所有 N 个宏块的比特数 B i 之和 B 为约束条件,以各个宏块的量化参数 所定义的失真为最小化目标函数,构成求取各量化参数的极小化问题:

img

(2.40)

参照式(2.35)的二次 R - Q 模型,利用拉格朗日方法求解,得到各宏块的最优量化步长

img

(2.41)

式中, 为宏块残差系数的方差; 为宏块的加权系数,在TMN8中有具体定义。 vM85YJg6AaHiVigF45UCDLqNaqhAV3Tfe5bFObcKdTRRQ6zkbVcpfggLHpuC9Mx2

点击中间区域
呼出菜单
上一章
目录
下一章
×