CN105163120B - 一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 - Google Patents
一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 Download PDFInfo
- Publication number
- CN105163120B CN105163120B CN201410253743.XA CN201410253743A CN105163120B CN 105163120 B CN105163120 B CN 105163120B CN 201410253743 A CN201410253743 A CN 201410253743A CN 105163120 B CN105163120 B CN 105163120B
- Authority
- CN
- China
- Prior art keywords
- buffer
- code stream
- input
- frame
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000003139 buffering effect Effects 0.000 title abstract description 8
- 238000001514 detection method Methods 0.000 claims abstract description 33
- 239000000872 buffer Substances 0.000 claims description 228
- 230000005540 biological transmission Effects 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种假设解码器中输入码流缓冲区的输入、输出/从缓冲区获取数据方法及装置、传输视频码流方法,定义Delay从图像起始码的最后一个字节到开始解码图像之间要等待时间,t为图像数据从输入码流缓冲区移出时间。输出/从缓冲区获取数据方法包括:从码流中获取Delay(1),利用Delay(1)确定t(1);从码流中获取检测输入码流缓冲区的次数check_times(n),利用t(1)、check_times(n)确定t(n);n>1。输入方法包括:从视频码流中获取Delay(n),根据Delay(n)、t(n),确定第n帧数据的起始输入时间;n>1。本发明相比于已有方法,在输入上,能更灵活地选择传输的间断,在输出上,能支持低延时、非低延时的大图像,同时码流中所需要传输的语法元素比特数更少。
Description
技术领域
本发明属于视频编解码技术领域,特别涉及一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流。
背景技术
在验证视频比特流是否符合某一视频标准的过程中,需要将视频输入码流到视频标准中所规定的假设解码器进行验证。假设解码器都有一个输入码流缓冲区,如图1。该缓冲区在不同标准中有不同的描述和称呼,在MPEG-2中,被称作视频缓冲检验器(VBV);在AVS1中被称作位流虚拟参考解码器(BBV),在H.264和HEVC中,被称作编码图像缓冲区(CPB)。符合标准的视频比特流应不会导致该缓冲区发生上/下溢出。间接约束了符合标准的视频比特流每帧码率的波动。视频比特流或标准的文本中需要传输或规定以下信息:缓冲区输入方法(其中包括比特流的输入方式和输入码率),缓冲区输出方法/从缓冲区获取数据的方法(其中包括每帧的数据什么时候移出缓冲区),缓冲区大小。其中,
标准(MPEG-2,H.263,H.264,HEVC)中常用的缓冲区输入方法有(以帧编码为例):
1、以某一固定码率R(通常在视频比特流中规定R的大小),如图2所示,不间断地输入,或者如图3所示,有间断地输入(广播、网络传输等应用)
2、如图4所示,根据输入码流缓冲区的状态,决定视频比特流的输入(常用于基于存储设备的应用)
视频比特流以R的速度输出给码流的输入缓冲区,
——如果缓冲区没有充满,数据以速率R输入缓冲区;
——如果缓冲区充满,则数据不能进入该缓冲区直到缓冲区中的部分数据被移出。
标准(MPEG-2,H.263,H.264,HEVC)中常用的缓冲区输出方法/从缓冲区获取数据的方法有(以帧编码为例):
1、图5,第一个帧的移出时间由比特流中传输的语法元素(vbv_delay)确定,相邻的帧的移出时间间隔固定(为帧率倒数T)
2、如图6,每一帧的移出时间由比特流中传输的语法元素(initial_cpb_removal_delay,cpb_removal_delay)确定。
AVS2 CD文档的BBV缓冲区同样定义了两种输入方法:
1、第N帧图像进入BBV缓冲区的速率R(N)按下式计算(广播、网络传输等应用);N>=1。
R(N)=d* N/(τ(N)-τ(N+1)+t(N+1)-t(N))
式中:
d* N——从第n帧的起始码后第1个位到第n+1帧的起始码后第1个位之间所有的位数;
τ(N)——第N帧的BbvDelay的值,单位为秒(s);
t(N)——第N帧图像的编码数据从BBV缓冲区移出的时间,单位为秒(s);
t(N+1)-t(N)——第N+1帧和第N帧图像的解码时间间隔,单位为秒(s);
R(N)——第N帧图像进入BBV缓冲区的速率。
2、同图4的缓冲区输入方法。(常用于基于存储设备的应用)
AVS2 CD文档缓冲区输出方法/从缓冲区获取数据的方法:
在图5的方法上增加了灵活性。如图7.在低延时的情况下,允许大图像n延时BbvCheckTimes移出,即t(n)=t(n-1)+T+BbvCheckTimes*T(T为帧率的倒数)。其中,BbvCheckTimes为大图像n的一个语法元素;n>1。
但是这些方法都有如下缺点:
对于广播、网络传输等应用的缓冲区输入方法:
图2,图3所示的方法当一帧的数据进入编码端的缓冲区中,一定会有数据输出。例如图3所示,第三帧数据传入编码端的缓冲区之后,立即会有数据从编码端的缓冲区输出到输入码流缓冲区。而实际情况中,数据传输由于之前已经被中断了,网络往往无法很快地链接上去传输数据。
AVS2的CD的缓冲区输入方法有以下几个问题:
1.传输第N帧的时候,并无法知道第N+1帧的BbvDelay的值,所无法确定R(N),或者至少得解析两个帧的BbvDelay值;N>=1。
2.传输的速率跟每帧的大小以及每帧的BbvDelay有关。而实际传输速率是由传输信道和具体应用决定的。如图8,当一个序列每帧的BbvDelay的值都一样时,R(N)完全跟第N帧的比特数有关。与实际应用不符合;N>=1。
对于缓冲区输出方法/从缓冲区获取数据的方法:
AVS的CD文档的缓冲区输出方法虽然在图5的方法上增加了灵活性,但是
1.在非低延时的情况下,并不允许出现大图像,而在实际非低延时的编码情况中,如果不允许出现大图像,会导致编码性能的下降:
例如:编码如下编码结构
B1 B2 B5 B6
I0 P3 I4 P7
在I4处发生了场景切换,I4的码率非常高,就有可能因为序列预留的解码延时不够而导致I4的码流来不及传输。按照现有标准的做法只能将I4的QP增高,比特数和质量下降,使其不成为大图像。随之而来的是显示顺序在I4之后的帧的编码效率下降。
如果允许I4成为大图像,就可以允许以下编码结构:
虽然跳过了一帧的编码,但是其余帧的编码质量都得到了保证,提高了编码效率。
图6所示的缓冲区输出方法虽然灵活性非常高,但是需要每帧都传一个语法元素,增加了传输的比特数。
发明内容
本发明的目的在于针对现有技术的不足,提供一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、及对应的传输视频码流。
本发明的第一目的在于提出一种假设解码器中输入码流缓冲区的输出方法,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定第一帧图像数据从输入码流缓冲区移出的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的序列第一帧图像数据从输入码流缓冲区移出的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定第n帧图像数据从输入码流缓冲区移出的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;
n>1。
本发明的第二目的在于提出一种假设解码器中输入码流缓冲区的输入方法,包括以下步骤:
(1)确定编码数据进入输入码流缓冲区的速率;
(2)从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);
(3)根据第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n),以及第n帧图像数据从输入码流缓冲区移出的时间t(n),确定第n帧图像数据的起始输入时间为t(n)-Delay(n);
n>1。
优选的,编码数据进入输入码流缓冲区的速率可以由标准规定或从码流中获取。
优选的,第n帧图像数据从输入码流缓冲区移出的时间t(n)可以由以下两种方式之一获得:
(1)从码流中获得;
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数。
本发明的第三目的在于提出一种从假设解码器中输入码流缓冲区中获取数据的方法,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;
n>1。
本发明的第四目的在于提出一种从假设解码器中输入码流缓冲区中获取数据的装置,其至少包括时间确定单元,其中时间确定单元用于确定从输入码流缓冲区获取序列第N帧图像数据的时间t(N),N>=1,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;
n>1。
本发明的第五目的在于提出一种往假设解码器中输入码流缓冲区输入数据的装置,其至少包括速率确定单元和时间确定单元,其中,速率确定单元用于确定编码数据进入输入码流缓冲区的速率;时间确定单元用于确定往输入码流缓冲区输入第n帧图像数据的起始时间,包括以下步骤:
(1)从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);
(2)根据第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n),以及第n帧图像数据从输入码流缓冲区移出的时间t(n),确定第n帧图像数据的起始输入时间为t(n)-Delay(n);
n>1。
优选的,编码数据进入输入码流缓冲区的速率可以由标准规定或从码流中获取。
优选的,第n帧图像数据从输入码流缓冲区移出的时间t(n)可以由以下两种方式之一获得:
(1)从码流中获得;
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数。
本发明的第六目的在于提出一种视频码流,码流中传输了视频序列中每一帧的从图像起始码的最后一个字节到开始解码图像之间要等待的时间。
本发明的第七目的在于提出一种视频码流,码流中传输了视频序列中除了第一帧之外的所有帧的检测输入码流缓冲区的次数。
本发明相比于现有方法,在输入上,能更灵活地选择传输的间断,在输出上,能支持低延时、非低延时的大图像,同时码流中所需要传输的语法元素比特数更少。
附图说明
图1为假设解码器及假设解码器中的输入码流缓冲区示意图;
图2为一种输入码流缓冲区的输入方法及对应的编码端缓冲区示意图;
图3为一种输入码流缓冲区的输入方法及对应的编码端缓冲区示意图;
图4为一种输入码流缓冲区的输入方法示意图;
图5为一种输入码流缓冲区的输出方法/从缓冲区获取数据的方法示意图;
图6为一种输入码流缓冲区的输出方法/从缓冲区获取数据的方法示意图;
图7为一种输入码流缓冲区的输出方法/从缓冲区获取数据的方法示意图;
图8为一种输入码流缓冲区的输出方法/从缓冲区获取数据的方法示意图;
图9为本发明一较佳实施例输入码流缓冲区的输出方法的流程示意图;
图10为本发明一较佳实施例输入码流缓冲区的输入方法的流程示意图;
图11为本发明一较佳实施例从输入码流缓冲区获取数据的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图及实施例,对本发明作进一步详细说明。
本发明的主要思想在于提供一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置,对应的视频码流的传输方法。该方法用于编码码流的符合性验证。符合标准的码流不应使得基于该输出和输出/从缓冲区获取数据的方法的假设解码器中的码流输入缓冲区发生上、下溢。其中输入码流缓冲区上溢指的是输入码流缓冲区中存放的码流的大小大于输入码流缓冲区的大小。输入码流缓冲区下溢指的是在第N帧的解码时刻,第N帧的所有数据还没有全部在输入码流缓冲区中;N>=1。
实施例1:
如图9所示,本实施例定义一种输入码流缓冲区的输出方法,包括以下步骤:
步骤101:从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
具体而言,该时间可以由图像头中的语法元素bbv_delay获得,该语法元素规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
步骤102:由步骤101中确定的等待时间Delay(1)确定第一帧图像数据从输入码流缓冲区移出的时间t(1);
具体而言,
定义,序列第一个1个位进入输入码流缓冲区的时间为t0,编码数据进入输入码流缓冲区的速率为R,序列第1个位到第1帧起始码后第1位的所有位数为B。
第1帧数据在t(1)时刻移出,其中
t(1)=t0+B/R+Delay (1);
步骤103:从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);n>1;
具体而言,该次数可以由图像头中的语法元素bbv_check_times获得,该语法元素规定了第n帧从输入码流缓冲区移出数据前要检测输入码流缓冲区的次数。bbv_check_times的值应小于216-1;n>1。
步骤104:根据步骤102确定的序列第一帧图像数据从输入码流缓冲区移出的时间t(1),以及步骤103确定的第n帧检测输入码流缓冲区的次数check_times(n),确定第n帧图像数据从输入码流缓冲区移出的时间t(n);n>1。
具体而言,
t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔可以为帧率的倒数;n>1。
实施例2:
如图10所示,本实施例定义一种输入码流缓冲区的输入方法,包括以下步骤:
步骤201:确定编码数据进入输入码流缓冲区的速率R;
具体而言,R的值可以从码流中获取,
例如:
R=BitRate x 400
式中:
BitRate——以400bit/s为单位计算视频位流的比特率,在码流中传输。
R的值还可以由标准规定。
步骤202:从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);n>1;
具体而言,该时间可以由图像头中的语法元素bbv_delay获得,该语法元素规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
步骤203:由步骤202中确定的等待时间Delay(n),以及解码图像的时间t(n),确定第n帧图像数据的起始输入时间;n>1;
具体而言,确定方法可以是:
定义:第N帧的数据d(N)为:第N帧起始码后第1个位到第N+1帧的起始码后第1个位之间所有的位数,序列最后一帧的数据d(N)为:最后一帧的起始码后第1个位到序列结束码最后1位之间所有的位数。序列第1个位到第1帧起始码后第1位的所有位数为B。序列第一个1个位进入输入码流缓冲区的时间为t0;N>=1。
所述的解码图像的时间t(n)可以由以下两种方式之一获得:
(1)由比特流中传输的语法元素(initial_cpb_removal_delay,cpb_removal_delay)确定,如图6。
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;n>1。
第1帧的数据进入输入码流缓冲区的起始时间为序列t0+B/R;
第n帧的数据进入输入码流缓冲区的起始时间为t(n)-Delay(n);n>1。
符合标准的码流应满足
t0+B/R+d(1)/R<=t(2)-Delay(2);
t(n)-Delay(n)+d(n)/R<=t(n+1)-Delay(n+1);
;n>1。
实施例3:
如图11所示,本实施例定义一种从输入码流缓冲区获取数据的方法,包括以下步骤:
步骤301:从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
具体而言,该时间可以由图像头中的语法元素bbv_delay获得,该语法元素规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
步骤302:由步骤301中确定的等待时间Delay(1)确定从输入码流缓冲区获取第一帧图像数据的时间t(1);
具体而言,
定义,序列第一个1个位进入输入码流缓冲区的时间为t0,编码数据进入输入码流缓冲区的速率为R,序列第1个位到第1帧起始码后第1位的所有位数为B。
在t(1)时刻获取第1帧数据,其中
t(1)=t0+B/R+Delay(1);
步骤303:从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);n>1;
具体而言,该次数可以由图像头中的语法元素bbv_check_times获得,该语法元素规定了第n帧从输入码流缓冲区移出数据前要检测输入码流缓冲区的次数。bbv_check_times的值应小于216-1;n>1。
步骤304:根据步骤302确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及步骤303确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);n>1。
具体而言,
t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔可以为帧率的倒数;n>1。
实施例4:
本实施例定义一种从输入码流缓冲区获取数据的装置,该装置至少包括时间确定单元,其中时间确定单元用于确定从输入码流缓冲区获取序列第N帧图像数据的时间t(N);N>=1,包括以下步骤:
步骤401:从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
具体而言,该时间可以由图像头中的语法元素bbv_delay获得,该语法元素规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
步骤402:由步骤401中确定的等待时间Delay(1)确定从输入码流缓冲区获取第一帧图像数据的时间t(1);
具体而言,
定义,序列第一个1个位进入输入码流缓冲区的时间为t0,编码数据进入输入码流缓冲区的速率为R,序列第1个位到第1帧起始码后第1位的所有位数为B。
在t(1)时刻获取第1帧数据,其中
t(1)=t0+B/R+Delay (1);
步骤403:从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);n>1;
具体而言,该次数可以由图像头中的语法元素bbv_check_times获得,该语法元素规定了第n帧从输入码流缓冲区移出数据前要检测输入码流缓冲区的次数。bbv_check_times的值应小于216-1;n>1。
步骤404:根据步骤402确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及步骤403确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);n>1。
具体而言,
t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔可以为帧率的倒数;n>1。
实施例5:
本实施例定义一种往输入码流缓冲区的输入数据的装置,其特征在于,至少包括速率确定单元(装置501)和时间确定单元(装置502)。其中,
装置501速率确定单元用于确定编码数据进入输入码流缓冲区的速率R。
具体而言,R的值可以从码流中获取,
例如:
R=BitRate x 400
式中:
BitRate——以400bit/s为单位计算视频位流的比特率,在码流中传输。
R的值还可以由标准规定。
装置502时间确定单元用于确定往输入码流缓冲区输入第n帧图像数据的起始时间;n>1;包括以下步骤:
步骤501:从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);n>1;
具体而言,该时间可以由图像头中的语法元素bbv_delay获得,该语法元素规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
步骤502:由步骤501中确定的等待时间Delay(n),以及解码图像的时间t(n),确定每帧图像数据的起始输入时间。
具体而言,确定方法可以是:
定义:第N帧的数据d(N)为:第N帧起始码后第1个位到第N+1帧的起始码后第1个位之间所有的位数,序列最后一帧的数据d(N)为:最后一帧的起始码后第1个位到序列结束码最后1位之间所有的位数。序列第1个位到第1帧起始码后第1位的所有位数为B。序列第一个1个位进入输入码流缓冲区的时间为t0;N>=1。
所述的解码图像的时间t(n)可以由以下两种方式之一获得;n>1:
(1)由比特流中传输的语法元素(initial_cpb_removal_delay,cpb_removal_delay)确定,如图6;
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;n>1;
第1帧的数据进入输入码流缓冲区的起始时间为序列t0+B/R;
第n帧的数据进入输入码流缓冲区的起始时间为t(n)-Delay(n).
符合标准的码流应满足
t0+B/R+d(1)/R<=t(2)-Delay (2)
t(n)-Delay(n)+d(n)/R<=t(n+1)-Delay(n+1);
n>1。
实施例6:
本实施例提供了一种视频码流及传输视频码流的方法。其中,一种视频码流,其特征在于:
码流中传输了视频序列中每一帧的从图像起始码的最后一个字节到开始解码图像之间要等待的时间。
具体而言,该时间可以由图像头中的语法元素bbv_delay表示,它规定了输入码流缓冲区从收到图像起始码的最后一个字节到开始解码图像之间要等待的时间。这个时间用从27MHz系统时钟导出的90kHz时钟周期数来表示。
实施例7:
本实施例提供了一种视频码流及传输视频码流的方法。其中,一种视频码流,其特征在于:
码流中传输了视频序列中除了第一帧之外的所有帧的检测输入码流缓冲区的次数。
具体而言,该次数可以由图像头中的语法元素bbv_check_times表示,它规定了第n(n>1)帧从输入码流缓冲区移出数据前要检测输入码流缓冲区的次数。bbv_check_times的值应小于216-1。
Claims (9)
1.一种假设解码器中输入码流缓冲区的输出方法,其特征在于,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定第一帧图像数据从输入码流缓冲区移出的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的序列第一帧图像数据从输入码流缓冲区移出的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定第n帧图像数据从输入码流缓冲区移出的时间t(n);其中t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,缓冲区检测时间间隔为帧率的倒数;n>1。
2.一种假设解码器中输入码流缓冲区的输入方法,其特征在于,包括以下步骤:
(1)确定编码数据进入输入码流缓冲区的速率;
(2)从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);
(3)根据第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n),以及第n帧图像数据从输入码流缓冲区移出的时间t(n),确定第n帧图像数据的起始输入时间为t(n)-Delay(n);
n>1。
3.根据权利要求2所述的输入方法,其特征在于:编码数据进入输入码流缓冲区的速率可以由标准规定或从码流中获取。
4.根据权利要求2所述的输入方法,其特征在于:第n帧图像数据从输入码流缓冲区移出的时间t(n)由以下两种方式之一获得:
(1)从码流中获得;
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);其中t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,缓冲区检测时间间隔为帧率的倒数;
n>1。
5.一种从假设解码器中输入码流缓冲区中获取数据的方法,其特征在于,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);其中t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,缓冲区检测时间间隔为帧率的倒数;
n>1。
6.一种从假设解码器中输入码流缓冲区中获取数据的装置,其特征在于,至少包括时间确定单元,其中时间确定单元用于确定从输入码流缓冲区获取序列第N帧图像数据的时间t(N),N>=1,包括以下步骤:
(1)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);
(2)由(1)中确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);
(3)从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);
(4)根据(2)确定的从输入码流缓冲区获取序列第一帧图像数据的时间t(1),以及(3)确定的第n帧检测输入码流缓冲区的次数check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);其中t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,缓冲区检测时间间隔为帧率的倒数;
n>1。
7.一种往假设解码器中输入码流缓冲区输入数据的装置,其特征在于,至少包括速率确定单元和时间确定单元,其中,速率确定单元用于确定编码数据进入输入码流缓冲区的速率;时间确定单元用于确定往输入码流缓冲区输入第n帧图像数据的起始时间,包括以下步骤:
(1)从视频码流中获取第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n);
(2)根据第n帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(n),以及第n帧图像数据从输入码流缓冲区移出的时间t(n),确定第n帧图像数据的起始输入时间为t(n)-Delay(n);
n>1。
8.根据权利要求7所述的装置,其特征在于:编码数据进入输入码流缓冲区的速率可以由标准规定或从码流中获取。
9.根据权利要求7所述的装置,其特征在于:第n帧图像数据从输入码流缓冲区移出的时间t(n)可以由以下两种方式之一获得:
(1)从码流中获得;
(2)从视频码流中获取第1帧从图像起始码的最后一个字节到开始解码图像之间要等待的时间Delay(1);由确定的等待时间Delay(1)确定从输入码流缓冲区获取序列第一帧图像数据的时间t(1);从视频码流中获取第n帧检测输入码流缓冲区的次数check_times(n);根据t(1)以及check_times(n),确定从输入码流缓冲区获取第n帧图像数据的时间t(n);t(n)=t(n-1)+(Check_times(n)+1)*缓冲区检测时间间隔,其中缓冲区检测时间间隔为帧率的倒数;
n>1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253743.XA CN105163120B (zh) | 2014-06-09 | 2014-06-09 | 一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253743.XA CN105163120B (zh) | 2014-06-09 | 2014-06-09 | 一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105163120A CN105163120A (zh) | 2015-12-16 |
CN105163120B true CN105163120B (zh) | 2018-09-25 |
Family
ID=54803860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410253743.XA Active CN105163120B (zh) | 2014-06-09 | 2014-06-09 | 一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105163120B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112911278A (zh) * | 2021-01-28 | 2021-06-04 | 北京安兔兔科技有限公司 | 一种图像解码性能测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005071968A1 (en) * | 2004-01-27 | 2005-08-04 | Samsung Electronics Co., Ltd. | Method and apparatus for coding and decoding video bitstream |
CN101120593A (zh) * | 2005-04-13 | 2008-02-06 | 诺基亚公司 | 可扩展性信息的编码、存储和信号发送 |
CN101595735A (zh) * | 2007-01-29 | 2009-12-02 | 三星电子株式会社 | 对视频进行编码和解码的方法和设备 |
WO2013151634A1 (en) * | 2012-04-04 | 2013-10-10 | Qualcomm Incorporated | Low-delay video buffering in video coding |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060002479A1 (en) * | 2004-06-22 | 2006-01-05 | Fernandes Felix C A | Decoder for H.264/AVC video |
-
2014
- 2014-06-09 CN CN201410253743.XA patent/CN105163120B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005071968A1 (en) * | 2004-01-27 | 2005-08-04 | Samsung Electronics Co., Ltd. | Method and apparatus for coding and decoding video bitstream |
CN101120593A (zh) * | 2005-04-13 | 2008-02-06 | 诺基亚公司 | 可扩展性信息的编码、存储和信号发送 |
CN101595735A (zh) * | 2007-01-29 | 2009-12-02 | 三星电子株式会社 | 对视频进行编码和解码的方法和设备 |
WO2013151634A1 (en) * | 2012-04-04 | 2013-10-10 | Qualcomm Incorporated | Low-delay video buffering in video coding |
Also Published As
Publication number | Publication date |
---|---|
CN105163120A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10638169B2 (en) | Codec techniquest for fast switching without a synchronization frame | |
TWI458354B (zh) | 視訊編碼、解碼及虛擬參考解碼 | |
US8345774B2 (en) | Hypothetical reference decoder | |
US6049569A (en) | Method and apparatus for encoding digital video bit streams with seamless splice points and method and apparatus for splicing such digital video bit streams | |
JP4223567B2 (ja) | 符号化ビデオシーケンスの切り替え方法及び装置 | |
US9516331B2 (en) | Data substream de-encapsulation method for plural symmetrical substreams and corresponding computer programs | |
RU2011123122A (ru) | Кодирующее устройство и способ генерирования потока данных | |
KR100985361B1 (ko) | 데이터 처리를 위한 장치, 시스템 및 방법 | |
JP5521940B2 (ja) | 符号化方法、復号化方法、符号化装置及び復号化装置 | |
CN106303379A (zh) | 一种视频文件逆序播放方法及系统 | |
US20100153687A1 (en) | Streaming processor, operation method of streaming processor and processor system | |
EP3681162A1 (en) | Seamless content encoding and transmission | |
WO2023226915A1 (zh) | 视频传输方法、系统、设备及存储介质 | |
CN106470291A (zh) | 从音频/视频解码器中的时间同步中的中断中恢复 | |
US10116952B2 (en) | Bitstream decoding method and bitstream decoding circuit | |
CN105163120B (zh) | 一种假设解码器中输入码流缓冲区的输入和输出/从缓冲区获取数据的方法及装置、传输视频码流的方法 | |
CN105323587B (zh) | 视频的图像输出管理方法及装置、传输视频码流的方法 | |
JPWO2008053557A1 (ja) | 動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラムおよび動画像再符号化プログラムを格納した記録媒体 | |
US20110216838A1 (en) | Method and apparatus for efficient decoding of multi-view coded video data | |
CN110300305B (zh) | 视频编码装置与方法 | |
TWI552573B (zh) | 具有初始化片段之視訊及音訊之寫碼 | |
TWI439137B (zh) | 重建一圖像群以在該圖像群中隨機存取之方法及裝置 | |
US10652548B2 (en) | Video system and method with minimized streaming latency | |
JP4373283B2 (ja) | 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2009033227A (ja) | 動画像復号化装置、動画像処理システム装置および動画像復号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |