发明内容
针对上述问题,本发明提供一种视音频复用装置和复用方法,以提高在复用器的输入码率超过逻辑信道的容量时发射的视频的质量。
根据本发明的第一方面,提供一种视音频复用装置,其接收视音频数据,将该视音频数据构建成复用帧进行复用,包括:视音频预处理器,其对输入的视音频数据进行同步处理,重新打时间戳;缓存管理器,其将视音频预处理器传送的视音频数据中的视频帧数据存入视频帧缓存器中,并从该视频帧缓存器中顺序取出一定数据量的视频帧,与视音频预处理器传送的音频数据一起传送给复用成帧器,其中,该缓存管理器对从视频帧缓存器中取得视频帧进行控制,使得所取得的视频帧与视音频预处理器传送的音频数据将在复用帧中占用的容量的总和小于或等于复用帧中可用于容纳视音频数据的容量;视频帧缓存器,其用于存储视音频预处理器传送的视音频数据中的视频帧数据;和复用成帧器,其接收缓存管理器传送的视音频数据,构建复用帧。
在本发明的视音频复用装置中,所述缓存管理器可以进一步包括:接收处理器,其接收所述视音频预处理器传送的视音频数据,将该视音频数据中的视频数据存入所述视频帧缓存器,将该视音频数据中的音频数据作为传送给所述复用成帧器的数据中的音频数据;和传送处理器,其顺序地取出所述视频帧缓存器中最旧的视频帧作为传送给所述复用成帧器的数据中的视频数据,直到所述视频帧缓存器为空或者即将取出的最旧的视频帧将在复用帧中占用的容量大于复用帧中当前可用于容纳视频数据的当前可用容量为止。
在本发明的视音频复用装置中,所述缓存管理器还可以包括:视频帧删减器,其当所述视频帧缓存器中的视频帧满足删减条件时,对所述视频帧缓存器中的视频帧按照删减规则进行选择性地删除。
在本发明的视音频复用装置中,所述删减规则如下:首先删除所述视频帧缓存器中的B帧,然后删除所述视频帧缓存器中的P帧;对以关键帧出现为周期接收的视频帧,对每个关键帧周期内的视频帧从后往前进行删除,当缓存中存在两个关键帧周期以上的视频帧时,轮流对各周期内的视频帧进行删除。
在本发明的视音频复用装置中,所述删减条件可以是:假设视频帧缓存器中的视频帧数量为L,当L大于视频帧数阈值M并且视频帧缓存器中有I帧时,按照所述删减规则删除N个视频帧,其中,L、M和N是正整数,N是k(L-M)的整数部分,k=1/10到1/5。
在本发明的视音频复用装置中,所述删减条件可以是:当视频帧缓存器中的视频帧的数据量是所述复用帧容量的K1倍以上时,按照所述删减规则进行删减,直到视频帧缓存器中的视频帧的数据量小于等于所述复用帧容量的K2倍为止。其中,K1和K2是正实数,K1大于K2。
根据本发明的第二方面,提供一种视音频复用装置,其接收视音频数据,将该视音频数据构建成复用帧进行复用,包括:视音频预处理器,其对输入的视音频数据进行同步处理,重新打时间戳;缓存管理器,其将视音频预处理器传送的视音频数据中的视频帧数据存入视频帧缓存器中,将视音频预处理器传送的视音频数据中的音频帧数据存入音频帧缓存器中,并从该视频帧缓存器和音频帧缓存器中顺序取出一定数据量的视频帧和音频帧一起传送给复用成帧器,其中,该缓存管理器对从视频帧缓存器中取出视频帧和从音频帧缓存器中取出音频帧进行控制,使得所取得的视频帧和音频帧将在复用帧中占用的容量的总和小于或等于复用帧中可用于容纳视音频数据的容量;视频帧缓存器,其用于存储视音频预处理器传送的视音频数据中的视频帧数据;音频帧缓存器,其用于存储视音频预处理器传送的视音频数据中的音频帧数据;和复用成帧器,其接收缓存管理器传送的视音频数据,构建复用帧。
本发明的视音频复用装置中,所述缓存管理器进一步包括:接收处理器,其接收所述视音频预处理器传送的视音频数据,将该视音频数据中的视频数据存入所述视频帧缓存器,将该视音频数据中的音频数据存入所述音频帧缓存器;和传送处理器,其从所述视频帧缓存器中顺序地取出所述视频帧缓存器中最旧的视频帧作为传送给所述复用成帧器的数据中的视频数据,针对每次取出的最旧的视频帧,顺序地从所述音频帧缓存器中取出时间戳小于或等于该最旧的视频帧的时间戳的音频帧作为传送给所述复用成帧器的数据中的音频数据,直到所述视频帧缓存器为空或者即将取出的视频帧或者音频帧将在复用帧中占用的容量大于所述复用帧中当前可用于容纳视音频数据的当前可用容量为止。
在本发明的视音频复用装置中,所述缓存管理器还可以包括:视频帧删减器,其当所述视频帧缓存器中的视频帧满足删减条件时,对所述视频帧缓存器中的视频帧按照删减规则进行选择性地删除。
在本发明的视音频复用装置中,所述删减规则如下:首先删除所述视频帧缓存器中的B帧,然后删除所述视频帧缓存器中的P帧;对以关键帧出现为周期接收的视频帧,对每个关键帧周期内的视频帧从后往前进行删除,当缓存中存在两个关键帧周期以上的视频帧时,轮流对各周期内的视频帧进行删除。
在本发明的视音频复用装置中,所述删减条件可以是:假设视频帧缓存器中的视频帧数量为L,当L大于视频帧数阈值M并且视频帧缓存器中有I帧时,按照所述删减规则删除N个视频帧,其中,L、M和N是正整数,N是k(L-M)的整数部分,k=1/10到1/5。
在本发明的视音频复用装置中,所述删减条件可以是:当视频帧缓存器中的视频帧的数据量是所述复用帧容量的K1倍以上时,按照所述删减规则进行删减,直到视频帧缓存器中的视频帧的数据量小于等于所述复用帧容量的K2倍为止。其中,K1和K2是正实数,K1大于K2。
根据本发明的第三方面,提供一种视音频复用方法,其接收视音频数据,将该视音频数据构建成复用帧进行复用,包括:视音频预处理步骤,其对输入的视音频数据进行同步处理,重新打时间戳;缓存管理步骤,其将由视音频预处理步骤处理后的视音频数据中的视频帧数据存入视频帧缓存器中,并从该视频帧缓存器中顺序取出一定数据量的视频帧,与由视音频预处理步骤处理后的视音频数据中的音频数据一起作为复用帧用的视音频数据,其中,该缓存管理步骤对从视频帧缓存器中取得视频帧进行控制,使得所取得的视频帧与所述视音频预处理步骤处理后的音频数据将在复用帧中占用的容量的总和小于或等于复用帧中可用于容纳视音频数据的容量;和复用成帧步骤,根据复用帧用的视音频数据,构建复用帧进行复用。
在本发明的视音频复用方法中,所述缓存管理步骤可以进一步包括:接收处理步骤,接收所述视音频预处理步骤处理后的视音频数据,将该视音频数据中的视频数据存入所述视频帧缓存器,将该视音频数据中的音频数据作为传送给所述复用成帧器的数据中的音频数据;和传送处理步骤,其顺序地取出所述视频帧缓存器中最旧的视频帧作为传送给所述复用成帧器的数据中的视频数据,直到所述视频帧缓存器为空或者即将取出的最旧的视频帧将在复用帧中占用的容量大于复用帧中当前可用于容纳视频数据的当前可用容量为止。
在本发明的视音频复用方法中,所述缓存管理步骤还可以包括:视频帧删减步骤,其当所述视频帧缓存器中的视频帧满足删减条件时,对所述视频帧缓存器中的视频帧按照删减规则进行选择性地删除。
在本发明的视音频复用方法中,所述删减规则如下:首先删除所述视频帧缓存器中的B帧,然后删除所述视频帧缓存器中的P帧;对以关键帧出现为周期接收的视频帧,对每个关键帧周期内的视频帧从后往前进行删除,当缓存中存在两个关键帧周期以上的视频帧时,轮流对各周期内的视频帧进行删除。
在本发明的视音频复用方法中,所述删减条件可以是:假设视频帧缓存器中的视频帧数量为L,当L大于视频帧数阈值M并且视频帧缓存器中有I帧时,按照所述删减规则删除N个视频帧,其中,L、M和N是正整数,N是k(L-M)的整数音分,k=1/10到1/5。
在本发明的视音频复用方法中,所述删减条件可以是:当视频帧缓存器中的视频帧的数据量是所述复用帧容量的K1倍以上时,按照所述删减规则进行删减,直到视频帧缓存器中的视频帧的数据量小于等于所述复用帧容量的K2倍为止。其中,K1和K2是正实数,K1大于K2。
根据本发明的第四方面,提供一种视音频复用方法,其接收视音频数据,将该视音频数据构建成复用帧进行复用,包括:视音频预处理步骤,对输入的视音频数据进行同步处理,重新打时间戳;缓存管理步骤,将所述视音频预处理步骤处理后的视音频数据中的视频帧数据存入视频帧缓存器中,将所述视音频预处理步骤处理后的视音频数据中的音频帧数据存入音频帧缓存器中,并从所述视频帧缓存器和所述音频帧缓存器中顺序取出一定数据量的视频帧和音频帧作为传送给复用成帧器的是音频数据,其中,所述缓存管理步骤对从所述视频帧缓存器中取得视频帧和从所述音频帧缓存器中取得音频帧进行控制,使得所取得的视频帧和音频帧将在复用帧中占用的容量的总和小于或等于复用帧中可用于容纳视音频数据的容量;和复用成帧步骤,其根据缓存管理步骤传送的视音频数据,构建复用帧。
本发明的视音频复用方法中,所述缓存管理步骤进一步包括:接收处理步骤,接收所述视音频预处理步骤处理后的视音频数据,将该视音频数据中的视频数据存入所述视频帧缓存器,将该视音频数据中的音频数据存入所述音频帧缓存器;和传送处理步骤,从所述视频帧缓存器中顺序地取出所述视频帧缓存器中最旧的视频帧作为传送给所述复用成帧器的数据中的视频数据,针对每次取出的最旧的视频帧,顺序地从所述音频帧缓存器中取出时间戳小于或等于该最旧的视频帧的时间戳的音频帧作为传送给所述复用成帧器的数据中的音频数据,直到所述视频帧缓存器为空或者即将取出的视频帧或者音频帧将在复用帧中占用的容量大于所述复用帧中当前可用于容纳视音频数据的当前可用容量为止。
在本发明的视音频复用方法中,所述缓存管理步骤还可以包括:视频帧删减步骤,其当所述视频帧缓存器中的视频帧满足删减条件时,对所述视频帧缓存器中的视频帧按照删减规则进行选择性地删除。
在本发明的视音频复用方法中,所述删减规则如下:首先删除所述视频帧缓存器中的B帧,然后删除所述视频帧缓存器中的P帧;对以关键帧出现为周期接收的视频帧,对每个关键帧周期内的视频帧从后往前进行删除,当缓存中存在两个关键帧周期以上的视频帧时,轮流对各周期内的视频帧进行删除。
在本发明的视音频复用方法中,所述删减条件可以是:假设视频帧缓存器中的视频帧数量为L,当L大于视频帧数阈值M并且视频帧缓存器中有I帧时,按照所述删减规则删除N个视频帧,其中,L、M和N是正整数,N是k(L-M)的整数部分,k=1/10到1/5。
在本发明的视音频复用方法中,所述删减条件可以是:当视频帧缓存器中的视频帧的数据量是所述复用帧容量的K1倍以上时,按照所述删减规则进行删减,直到视频帧缓存器中的视频帧的数据量小于等于所述复用帧容量的K2倍为止。其中,K1和K2是正实数,K1大于K2。
利用本发明的复用装置和复用方法,通过设置视频帧缓存器和缓存管理器,当输入码率瞬时超过逻辑信道能提供的带宽时,将超出带宽的视频帧缓存起来,作为下一个复用帧的内容发射,能够达到防止发射视频质量下降的效果。
而且,利用本发明的复用装置和复用方法,通过进一步设置视频帧删减器,当输入码率长时间处于一个高于逻辑信道容量的水平时,通过删除复用器中缓存的大量过期的视频内容,减少导致终端播放延迟和不连续的可能性,从而进一步达到防止发射视频质量下降的效果。
进而,利用本发明的复用装置和复用方法,通过进一步设置并管理音频缓存器,当输入码率长时间处于一个高于逻辑信道容量的水平时,通过对缓存的大量过期的视频和音频内容进行同步控制,在防止发射视频质量下降的同时,保持视频和音频的同步性。
具体实施方式
下面,参照附图,对本发明的实施方式进行说明。
第一实施方式
本实施方式通过对视频帧进行缓存来使超出逻辑信道容量的视频帧在下次复用时复用来解决视频帧因超出逻辑信道容量而被丢弃而导致的视频质量下降的问题,另外,为了防止视频帧在缓存器内大量堆积而造成画面延迟等问题,设置了视频帧删减器,对视频帧缓存器中的视频帧进行有选择地删减。从而即使在视频帧码率长时间地超出逻辑信道容量,也可以为终端提供高质量的画面。
具体地说,如图2所示,本发明的第一实施方式的复用装置包括视音频预处理器21、视频缓存管理器22、视频帧缓存器23和复用成帧器24。视音频预处理器21对输入的视音频数据进行同步,重新在RTP包头中打时间戳。视频缓存管理器22接收同步化后的视音频数据,将音频帧数据和缓存在视频帧缓存器23中的视频帧数据传送给复用成帧器24。视频帧缓存器23是先进先出(FIFO)的缓冲存储器,用于在复用视频帧之前对视频帧进行临时存储。复用成帧器24按照视频缓存管理器22传来的数据,构建视音频复用帧。
如图3所示,视频缓存管理器22由接收处理模块221、视频帧删减模块222和发送处理模块223构成,视频缓存管理器22还设置了用于向复用成帧器24提供复用数据的发送数据集224。接收处理模块221负责接收来自视音频预处理器21的数据并将视频帧放入视频帧缓存器23中;发送处理模块223负责从视频帧缓存器23中提取视频帧发送给复用成帧器24;视频帧删减模块222在发送处理模块223写完发送数据集224之后,对视频帧缓存器23中的视频帧进行检查,在必要时,执行视频帧的删减操作。
下面,对每个模块的处理进行详细说明。
接收处理模块221负责接收来自视音频预处理器21的视音频数据,将其中的音频帧数据直接写入发送数据集224中的音频帧区域;将其中的视频帧数据按顺序写入视频帧缓存器23。
发送处理模块222从视频帧缓存器23中顺序取出最旧的视频帧,写入发送数据集224中的视频帧区域,直到下一个最旧的视频帧将在复用帧中占用的容量大于复用帧中当前可容纳视音频帧的当前可用容量为止。这里,由于视频帧缓存器如上所述是先进先出的结构,而且视频帧是按时间顺序存入缓存器的,因而,所谓最旧的视频帧是指当前视频帧缓存器中的视频帧中、最先进入该视频帧缓存器的视频帧,也是时间戳最早的视频帧,在本文中,有时也称为缓存器中第一个视频帧。这样,当前视频帧缓存器23中的所有视频帧和音频帧将在复用帧中占用的容量之和即视音频总占用量小于或者等于复用帧中视音频帧可用容量时,则视频帧缓存器23中的所有视频帧被顺序写入发送数据集224中,传送给复用成帧器24。否则,剩余的视频帧被留在视频帧缓存器23中。发送处理模块223在下一次写发送数据集224时,按照同样的处理,对视频帧缓存器23中的视频帧进行处理。在实施方式中,在计算复用帧中可容纳视音频帧的可用容量时,在有数据单元的情况下,数据单元优先,也就是说,在先容纳数据段的前提下,计算在复用帧中容纳数据单元之后剩余的可以容纳视频帧和音频帧的容量,具体计算方法在下文描述。
下面,详细说明符合CMMB标准第2部分实施指南的复用帧中视音频帧可用容量的计算方法。CMMB标准第2部分实施指南规定,在一个复用帧中只包含一个复用子帧。这里的复用帧中视音频帧可用容量的计算方法以此为前提。
根据CMMB标准第2部分(GY/T 220.2-2006移动多媒体广播第2部分:复用)的图3到图11以及对各部分的说明,在未容纳任何视音频帧的情况下,
复用帧中视音频帧可用容量Sav=复用帧的总容量-复用帧头的大小-复用子帧的子帧头的大小-数据段的大小。
其中,复用帧的总容量S是由物理层参数所决定的,其中决定复用帧容量的物理层参数包括RS编码方式、LDPC编码方式以及星座映射和带宽等。详细内容参见CMMB标准第1部分(CY/T 220.1-2006移动多媒体广播第1部分:广播信道帧结构、信道编码和调制)的附录E。
复用帧帧头的大小根据标准可以准确得到,设为Sh。
复用子帧的子帧头的大小按照标准也可以准确得到,设为Ssh。
在有数据段的情况下,假设有n个数据单元,第i个数据单元的长度为Li,1≤i≤n,那么:
数据段的大小Sd=数据段头长度+数据段净荷长度
数据段头长度(字节)=1+3×n+4;
根据以上内容,就可以计算出未容纳视音频信息时,复用帧中视音频帧可用容量Sav=S-Sh-Ssh-Sd。
下面说明在复用帧中容纳视频帧时占用容量的情况。根据CMMB标准第2部分的规定,在复用帧中容纳第一个视频帧时,需要占用的容量包括:
(a)在复用子帧头中:占用一个“视频流参数集”字段的大小,记为Sshv;
(b)在视频段中占用的容量Sv=视频段头的大小Svh+“视频单元”字段的大小Svv;
视频段头的大小Svh=视频段头的固定部分的大小Svhf+“视频单元的参数”字段的大小Svhr。
其中,视频段头的固定部分的大小Svhf=“视频段头的长度”字段的大小+“保留”字段的大小+“CRC”字段的大小。“视频单元的参数”字段大小Svhr根据CMMB标准第2部分的规定,根据模式的不同,而与视频帧的大小相同或比视频帧大一定的量。
综上所述,在复用帧中容纳第一个视频帧时需要占用的容量Sv1可以表示为:Sv1=Sshv+Svhf+Svhr+Svv。
在容纳第二个视频帧时,由于不再需要占用视频段头的固定部分的大小Svhf,因此,从第二个视频帧起,在复用帧中每增加一个视频帧需要占用的容量Svi可以表示为:Svi=Sshv+Svhr+Svv。
与此类似,根据CMMB标准第2部分的规定,在复用帧中容纳第一个音频帧时,需要占用的容量包括:
(a)在复用子帧头中:占用一个“音频流参数集”字段的大小,记为Ssha;
(b)在音频段中占用的容量Sa=音频段头的大小Sah+“音频单元”字段的大小Saa;
音频段头的大小Sah=音频段头的固定部分的大小Sahf+“音频单元的参数”字段的大小Sahr。
其中,音频段头的固定部分的大小Sahf=“音频段头的长度”字段的大小+“CRC”字段的大小。“音频单元的参数”字段大小Sahr根据CMMB标准第2部分的规定,根据模式的不同,而与音频帧的大小相同或比音频帧大一定的量。
综上所述,在复用帧中容纳第一个音频帧时需要占用的容量Sa1可以表示为:Sa1=Ssha+Sahf+Sahr+Saa。
在容纳第二个音频帧时,由于不再需要占用音频段头的固定部分的大小Sahf,因此,从第二个音频帧起,在复用帧中每增加一个音频帧需要占用的容量Sai可以表示为:Sai=Ssha+Sahr+Saa。
举例来说,如上所述,假设容纳了数据段之后剩余的容量为Sav,那么容纳视音频前的当前视音频可用容量C就是Sav。当判断当前视频帧的数据量是否超出当前视音频可用容量C时,首先判断当前视频帧是否是第一个容纳的视频帧,如果时,则其占用的容量将是Sv1=Sshv+Svhf+Svhr+Svv,在容纳该视频帧之后,当前视音频可用容量C=Sav-Sv1;在当前视频帧不是第一个容纳的视频帧时,其占用的容量将是Svi=Sshv+Svhr+Svv,在容纳该视频帧之后,当前视音频可用容量C=Sav-Svi。以此类推。音频帧的处理与此类似,不再赘述。
视频帧删减模块222用于对视频帧缓存器23中的视频帧进行检查,在必要的时候,对视频帧缓存器23中的视频帧进行删减。具体来说,当缓存的视频帧到达一定的数量M且缓存中存在I帧时,视频帧删减模块222对缓存中的视频帧删减N个视频帧。删减的规则如下:(1)首先删除缓存中的B帧;B帧是依赖于I帧和P帧的预测帧,删除B帧不会对I帧和P帧时刻的画面造成影响。(2)然后删除缓存中的P帧,当没有依赖于P帧的B帧时,删除某些P帧不会对其他的P帧和I帧的画面造成影响。(3)按照删除一秒中靠后的帧为原则,逆序删除。以第一帧I帧为视频每秒开始的标志,则首先需删除当前秒内靠后的第25帧。(4)当缓存中存在两秒的数据缓存则需要均匀删除每秒靠后的帧。例如要删除两个帧则分别删除缓存中第1秒的第25帧和第2秒中的第25帧。图4是视频帧删减规则的缓存示意图。在图示的情况下,在满足删减条件的前提下,被删减的视频帧按照删减的顺序排列如下:B25(0)、B25(1)、B23(0)、P24(0)、P24(1)。这里的删减可以通过先标记删减帧然后一批删除的方式来实现,也可以采用任何其它方式来实现。
这样,本发明通过删减一些视频预测帧,来减小复用成帧器的输入帧率,当帧率不低于20帧/秒时,对终端的影响不明显。这里,M和N可以根据实际情况来设置。例如,在本实施方式中,删减处理是在发送处理模块223将视频帧写入发送数据集224后且在接收处理模块221进行下次接收处理之前,在这样的情况下,视频帧缓存器中23中的视频帧较少,为了使对终端的影响较小,可以设为:
M=10,
N是k(L-M)的整数部分,
其中,L为视频帧缓存器中当前的视频帧数量,M是进行删减处理的视频帧数阈值,只有在视频帧缓存器中的视频帧超过M个并且视频帧缓存器中存在I帧时,才进行删减处理,k为收敛系数,一般取值为1/10~1/5;
这样,本发明通过设置视频帧缓存器,可以解决码率瞬时超出复用帧的逻辑信道容量而导致的画面跳动等问题;另一方面,通过在必要时刻对视频帧进行删减,来降低输出给复用成帧器的码率,从而可以进一步解决由于码率长时间超出复用帧的逻辑信道容量而导致的画面延迟等的问题。
第二实施方式
本实施方式与第一实施方式的不同点在于,增加了音频帧缓存器,并对对音频帧和视频帧进行同步管理,以便在提高视频质量的同时,提高复用发射的画面和声音的同步性。
具体地说,如图5所示,本实施方式的复用装置包括视音频预处理器51、视音频缓存管理器52、视频帧缓存器53、复用成帧器54和音频帧缓存器55。其中,视音频预处理器51、视频帧缓存器53和复用成帧器54分别与图2所示的视音频预处理器21、视频缓存管理器23和复用成帧器24的功能相同。下面,主要对与第一实施方式不同的缓存管理器52、音频帧缓存器55进行说明。
视音频缓存管理器52把由视音频预处理器51处理过的视音频信息中的视频帧和音频帧分别存储到视频帧缓存器53和音频帧缓存器55中,并按照一定的规则从视频帧缓存器53和音频帧缓存器55中取出一定数据量的视频帧和音频帧作为复用数据传给复用成帧器54,复用成帧器54根据视音频缓存管理器52传来的数据,构建视音频复用帧。
如图6所示,视音频缓存管理器52由接收处理模块521、视频帧删减模块522和发送处理模块523构成,视音频缓存管理器52还设置了用于向复用成帧器54提供复用数据的发送数据集524。接收处理模块521负责接收来自视音频预处理器21的数据并将其中的视频帧放入视频帧缓存器53中,把其中的音频帧存入音频帧缓存器55中;发送处理模块523负责从视频帧缓存器53和音频帧缓存器55中提取视频帧和音频帧放入发送数据集524中,发送给复用成帧器524;视频帧删减模块522在发送处理模块523把数据放入发送数据集524之后,对视频帧缓存器23中的视频帧进行检查,在必要时,执行视频帧的删减操作。视频帧删减模块522的功能和具体实现与第一实施方式中的视频帧删减模块522相同,在此不再赘述。
下面,参照图7,对发送处理模块523的处理进行详细说明。如图7所示,首先,在步骤S71中,计算当前视音频可用容量C,即,计算下一个复用帧中可用于容纳视频帧和音频帧的容量,在有数据单元的情况下,数据单元优先,也就是在有数据单元的情况下,当前视音频可用容量C是指在容纳数据单元后,复用帧中剩余的可以容纳视频帧和音频帧的容量。在步骤S72中,判断视频帧缓冲器53中是否存在视频帧,如果不存在,则结束本流程;否则,进入步骤S73,判断视频帧缓冲器53中第一个视频帧Fv将在复用帧中占用容量Dv是否小于或等于当前可用容量C,这里,由于视频帧缓存器如上所述是先进先出的结构,而且视频帧是按时间顺序存入视频帧缓存器的,因而,所谓缓存器中第一个视频帧是指当前视频帧缓存器中的视频帧中、最先进入该视频帧缓存器的视频帧,也是时间戳最早的视频帧,本文中有时也称为最旧的视频帧;如果判断结果是“否”,则结束本流程;如果判断结果是“是”,那么进入步骤S74,从视频帧缓冲器53中取出该视频帧Fv,将其放入发送数据集524中的视频区。然后,在步骤S75中,计算当前可用容量:C=C-Dv。接着,在步骤S76中,判断音频帧缓冲器55中是否有音频帧,如果没有,则返回步骤S72;否则,进入步骤S77。在步骤S77中,判断音频帧缓冲器55中的第一个音频帧Fa的时间戳是否在当前视频帧Fv的时间戳之前,如果是“否”,则返回步骤S72,继续处理;否则,进入步骤S78中。在步骤S78中,判断该音频帧Fa将在复用帧中占用的容量Da是否小于或等于当前可用容量C。如果是“否”,则结束本处理;否则,在步骤S79中,把从音频帧缓冲器55中取出该音频帧Fa,将其放入发送数据集524中的音频区。之后,在步骤S80中,计算当前视音频可用容量C=C-Da。然后,返回步骤S76,继续处理。其中,这里提到的视频帧Fv将在复用帧中占用的容量Dv、音频帧Fa将在复用帧中占用的容量Da的具体计算方法参见第一实施方式中关于复用帧中视音频可用容量的说明部分。
这样,在本发明第二实施方式中,通过将音频帧也存放在缓存器中,由缓存管理器根据时间戳对视频帧和音频帧的复用进行同步化控制,由此,不仅具有第一实施方式的提高复用发射的视频质量的效果,而且,还能保持复用发射的画面和声音的同步性。
上面对本发明的实施方式进行了说明,但是本领域普通技术人员可以在本发明的主要技术方案的基础上不经过创造性劳动的条件,进行各种修改。
例如,本发明的实施方式是以多媒体广播系统中的复用器为例进行了说明,但本发明的技术方案可以应用于任何以视音频流为输入的复用器。
而且,在上面的第一实施方式中,视频缓存管理器包括接收处理模块、发送处理模块和视频帧删减模块三部分,但是,根据实际应用环境,例如,在经常有瞬时码率超出逻辑信道容量,但很少有长时间超出的情况下,也可以只设置接收处理模块和发送处理模块而省略视频帧删减模块。
另一方面,在上面的实施方式中,视频帧删减处理是在发送处理模块处理完放入发送数据集中的数据之后执行的,但是,也可以设计成在接受处理模块进行接收处理之后且在发送处理模块往发送数据集中放入数据之前进行视频帧删减工作,在这种情况下,视频帧缓存器中23中的视频帧较多,为了使对终端的影响较小,例如,可以将视频帧数阈值M设为:
M=35,
N是k(L-M)的整数部分,
其中,L为视频帧缓存器中当前的视频帧数量,M是进行删减处理的视频帧数阈值,只有在视频帧缓存器中的视频帧超过M个并且视频帧缓存器中存在I帧时,才进行删减处理,k为收敛系数,一般取值为1/10~1/5。
另外,在上面的实施方式中,以删除掉N个视频帧来作为结束视频帧删减过程的条件,但是也可以不设定该帧数,而直接以视频帧缓存器23中的帧数为条件,例如,当视频帧缓存器23中的帧数超过30帧时,对视频帧进行删减,直到视频帧缓存器23中的帧数降到30帧为止;另外,上面以视频帧的帧数为条件来控制视频帧删减过程的开始和结束,但是,也可以依照同样的原理和类似的流程,以视频帧的数据量为基准来控制视频帧删减过程的开始和结束,具体来说,可以规定当视频帧缓存器23中的视频帧的总数据量超出复用帧容量的2倍时,对视频帧缓存器23中的视频帧依照上述实施方式中的删减规则进行删减,直到视频帧缓存器23中的视频帧的总数量减少到复用帧容量的1.5倍为止。
还有,在上面的实施方式中,以复用帧中包含一个复用子帧的情况为例进行了说明,但是本发明也可以应用于复用帧中包含多个复用子帧的情况。在包含多个复用子帧的情况下,根据预先设定的各个复用子帧的容量,同样可以应用本发明。
此外,在上面的实施方式中,例举了接收处理模块、发送处理模块和视频帧删减模块的一些实现方法,本发明不限于这些方法,本领域普通技术人员可以采用各种方法来实现。
本发明的实施方式以及实施修改例用于说明和解释本发明。本发明的保护范围不受上面的实施方式和修改例的限制。