端到端视频编码传输系统模型可抽象为如下部分:
在恒定速率信道(CBR)的假设下,缓冲区模型为:
其中:
- A为发送端缓冲区中积累的比特数;
- B为解码端缓冲区移出的比特数;
- C为从比特传输速率;
- Encoder transmit delay为编码器发送延迟;
- Decoder decoding delay为解码器解码延迟;
对于编解码器的缓冲区而言存在四种溢出状态:
- 编码缓冲区上溢,A-C>编码器缓冲区上限;
- 编码缓冲区下溢,A-C=0;
- 解码缓冲区上溢,C-B>解码器缓冲区上限;
- 解码缓冲区下溢,C-B=0;
对于两种上溢的情况,增加缓冲区容量即可解决(但会造成延迟增加);对于编码缓冲区下溢的情况,可通过插入填充比特保证传输不中断。
在CBR信道假设下,防止解码缓冲区下溢可通过监视编码缓冲区状态实现,推导如下:
B e n c ( i ) = ∑ j = 1 i R j − ∑ j = 1 i C (1) B_{enc}(i) = \sum_{j=1}^{i}R_{j} - \sum_{j=1}^{i}C \tag{1} Benc(i)=j=1∑iRj−j=1∑iC(1)
B d e c ( i + Δ N ) = ∑ j = 1 i + Δ N C − ∑ j = 1 i R j (2) B_{dec}(i+\Delta N) = \sum_{j=1}^{i+\Delta N}C - \sum_{j=1}^{i}R_{j} \tag{2} Bdec(i+ΔN)=j=1∑i+ΔNC−j=1∑iRj(2)
其中, Δ N \Delta N ΔN为编码器发送延迟与解码器开始解码延迟之和,进一步地,有:
∑ j = 1 i + Δ N C = ∑ j = 1 i C + ∑ j = i + 1 i + Δ N C (3) \sum_{j=1}^{i+\Delta N}C = \sum_{j=1}^{i}C + \sum_{j=i+1}^{i+\Delta N}C \tag{3} j=1∑i+ΔNC=j=1∑iC+j=i+1∑i+ΔNC(3)
(1)带入(3):
∑
j
=
1
i
+
Δ
N
C
=
∑
j
=
i
+
1
i
+
Δ
N
C
+
∑
j
=
1
i
R
j
−
B
e
n
c
(
i
)
(4)
\sum_{j=1}^{i+\Delta N}C = \sum_{j=i+1}^{i+\Delta N}C + \sum_{j=1}^{i}R_{j} - B_{enc}(i) \tag{4}
j=1∑i+ΔNC=j=i+1∑i+ΔNC+j=1∑iRj−Benc(i)(4)
(4)带入(2),且为保证解码缓冲不下溢,需要
B
d
e
c
>
0
B_{dec} > 0
Bdec>0,得到:
B
d
e
c
(
i
+
Δ
N
)
=
∑
j
=
i
+
1
i
+
Δ
N
C
−
B
e
n
c
(
i
)
>
0
B_{dec}(i+\Delta N) = \sum_{j=i+1}^{i+\Delta N}C - B_{enc}(i) > 0
Bdec(i+ΔN)=j=i+1∑i+ΔNC−Benc(i)>0
B
e
n
c
(
i
)
<
∑
j
=
i
+
1
i
+
Δ
N
C
(5)
B_{enc}(i) < \sum_{j=i+1}^{i+\Delta N}C \tag{5}
Benc(i)<j=i+1∑i+ΔNC(5)
(5)式即为解码缓冲区不下溢的条件。
即,在CBR信道下,监控编码缓冲区容量不超过(5)指示的上限,就能保证解码缓冲区不发生下溢。