视频图像数据的流控装置和方法
技术领域
本发明涉及通信领域,尤其涉及一种视频图像数据的流控装置和方法。
背景技术
在数据传输过程中,原始的视频图像的数据量非常巨大,不适合直接进行传输,因此在传输视频图像的数据前,必须通过图像压缩算法将原始的视频图像的数据进行压缩,得到适合传输的数据量后,再进行传输。
在PSTN(Public Switched Telephone Network,公共交换电话网)线路视频通信过程中,由于受到带宽限制,为了能保证获得连续的高质量的视频通信,需要对视频图像数据进行流控等各种限制。流控就是对视频图像编码后得到的码流进行控制处理,从而保证连续的视频通信质量。
ITU-T(International Telecommunication Union-TelecommunicationStandardization Sector,国际电信联盟-电信标准化部门)的H.263提供了针对PSTN可视电话的流控方案。
上述针对PSTN可视电话的流控方案基于反馈原理,对每个数据块的量化指标进行控制,进而减小每一帧图像编码的码流,使码流满足传输需要。因为数据块的量化指标的大小直接决定码流的大小,所以控制了量化指标的大小也就控制了码流的大小。但是,量化指标的大小和码流的大小之间没有一个精确的数学关系,量化指标变化只能模糊的反映码流的变化的趋势,因此需要设置反馈值来不断的修正量化指标,从而使图像的码流符合带宽的需求,实现流控的目的。
现有技术中一种对视频图象数据进行流控的方法的具体处理流程如图1所示,具体描述如下:
在对视频图象数据进行编码之前,通过视频压缩算法将整个视频图象数据分成若干个16×16象素大小的数据块。在开始对一帧视频图象数据进行编码之前,根据带宽和前一帧视频图象数据的编码情况,对编码过程中流控使用的反馈系数进行初始化,得到当前一帧视频图象数据的反馈系数初始值。
然后,根据上述获得的反馈系数初始值、当前带宽信息和当前一帧视频图象数据剩余的数据块数量,确定对当前数据块进行编码时使用的量化指标,并根据此量化指标实现对此数据块的编码。之后,再根据编码此数据块所得到的码流值,对反馈系数进行修正,进行下一个数据块的编码和码流控制,直到完成了所有数据块的编码和码流控制,就完成了一帧视频图象数据的编码和码流控制。
上述现有技术的方法的缺点为:该方法通过调整量化指标来控制码流。而调整量化指标会对视频图像质量产生影响,从而导致视频通信质量的降低。由于受视频压缩算法的影响,视频通信质量在降低后需要在一个比较长的时间之后才能有所恢复。而流控方案在整个视频通信过程中都起作用,因此视频通信质量即使在某一时刻恢复,也会再次随着流控的影响而降低。因此,使用上述现有的流控方案,无法在整个视频通信过程中保证视频通信质量。
另外,上述现有技术的流控方案具有较高的复杂度。由于是基于反馈原理进行的量化指标的调整,为了能得到比较精确的反馈系数,在调整过程中引入了大量的反馈计算,尤其是引入了大量的浮点运算,因此实施该方案需要很高的硬件成本。
发明内容
本发明的目的是提供一种视频图像数据的流控装置和方法,从而可以降低视频图像数据的流控方案的复杂度,给用户提供稳定的高质量的视频图像传输。
本发明的目的是通过以下技术方案实现的:
一种视频图像数据的流控装置,包括:
编码数据缓冲单元:用于对接收到的编码后的数据进行缓存;
定时服务模块:在设置的定时服务的定时启动时间到达后,启动该定时服务,从而进入流控服务;
流控处理模块:包括判断处理模块和数据处理模块,所述的判断处理模块:在定时流控服务启动后,判断编码数据缓冲单元中是否有缓存的数据,如果是,则发送数据输出信号给数据处理模块,当发送缓冲单元已经被编码数据缓冲单元发送的数据填满后,结束所述定时流控服务;否则,当编码数据缓冲单元中没有缓存的数据时,则结束所述定时流控服务,启动数据编码的过程;所述的数据处理模块:当接收到判断处理模块发送的数据输出信号后,将编码数据缓冲单元中缓存的数据读出并发送给发送缓冲单元;
发送缓冲单元:将编码数据缓冲单元输出的数据进行缓存,并按照设定的速率输出。
所述的发送缓冲单元包括一个或多个和编码数据缓冲单元中的缓冲器相对应的缓冲器。
所述装置适用于:公共交换电话网PSTN可视电话系统。
一种视频图像数据的流控方法,包括:
A、在设置的预定时间到达时,启动定时流控服务;
B、在所述定时流控服务启动后,判断编码数据缓冲单元中是否有缓存的数据,如果是,将编码数据缓冲单元中缓存的数据读出并输出给发送缓冲单元,当发送缓冲单元已经被编码数据缓冲单元发送的数据填满后,结束所述定时流控服务;否则,当编码数据缓冲单元中没有缓存的数据时,则向编码器发送编码命令,启动数据编码的过程,结束所述定时流控服务。
C、所述发送缓冲单元将编码数据缓冲单元发送的数据进行缓存,并按照设定的速率输出。
所述定时服务包括:定时任务、定时线程或定时中断服务程序。
所述步骤B具体包括:
B1、在定时流控服务启动后,获取发送缓冲单元的剩余空间信息,如果编码数据缓冲单元中有缓存的数据,则执行步骤B2;否则,向编码器发送编码命令,启动数据编码的过程,结束所述定时流控服务;
B2、将编码数据缓冲单元中缓存的数据发送给发送缓冲单元,如果编码数据缓冲单元中的数据完全被发送到了发送缓冲单元,则编码数据缓冲单元启动数据编码的过程,同时,结束本次定时流控服务;否则,当发送缓冲单元已经被编码数据缓冲单元发送的数据填满后,结束本次定时流控服务。
所述方法适用于:PSTN可视电话系统。
由上述本发明提供的技术方案可以看出,本发明通过使用缓冲器来控制编码器的启动和编码后获得的码流的传输。从而可以降低视频图像数据的流控方案的复杂度,简化视频图像数据的流控过程。给用户提供稳定的高质量的视频图像传输。
本发明和现有流控方案相比,完全取消了大量的反馈计算,解决了基于反馈进行流控方案导致的视频图像质量不稳的问题。本发明可以降低PSTN可视电话系统的性能要求,从而能够降低整个PSTN可视电话系统的代价,给PSTN可视电话系统提供了一个非常经济的的流控解决方案。
附图说明
图1为现有技术中一种对视频图象数据进行流控的方法的具体处理流程图;
图2为应用了本方法所述装置的PSTN可视电话系统的实施例的结构示意图;
图3为本方法所述视频图像数据的流控装置的实施例的结构示意图;
图4为图3所示实施例中编码数据缓冲单元、发送缓冲单元的工作原理示意图;
图5为本发明所述视频图像数据的流控方法的实施例的具体处理流程图。
具体实施方式
本发明提供了一种视频图像数据的流控装置和方法,本发明的核心为:以一种定时服务实现流控,在定时服务中,根据缓存的数据信息来决定是否启动编码器,并且控制编码后获得的数据的传输。
下面结合附图来详细描述本发明,本方法所述装置和方法适用于各种传输视频图像数据的应用场景。下面以本方法所述装置和方法在PSTN可视电话系统中的应用为例来说明本发明所述装置和方法。
应用了本方法所述装置的PSTN可视电话系统的实施例的结构示意图如图2所示。本方法所述装置作为PSTN可视电话系统的视频流控装置,位于编码器和网络接口之间,起着平衡发送码流的作用。
本发明针对现有视频流控方案无法保证稳定的视频通信质量和高复杂度的问题,提出了使用缓冲器控制启动编码器的技术方案。
本方法所述视频图像数据的流控装置的实施例的结构示意图如图3所示。该实施例中编码数据缓冲单元、发送缓冲单元的工作原理示意图如图4所示。
图3所示的流控装置包括编码数据缓冲单元、流控处理模块、定时服务模块和发送缓冲单元。
编码数据缓冲单元:包括一个或多个缓冲器。将编码器发送过来的码流数据进行缓存;
发送缓冲单元:包括一个或多个和编码数据缓冲单元中的缓冲器相对应的缓冲器。以某个设定的恒定速率将流控处理模块发送过来的数据输出给PSTN网络。
定时服务模块:在设置的定时服务的定时启动时间到达后,启动该定时服务,同时启动定时流控服务。
流控处理模块:用于根据设置的预定时间将编码数据缓冲单元中缓存的数据读出并输出给发送缓冲单元,根据编码数据缓冲单元中缓存的数据信息控制编码器的启动。流控处理模块包括:判断处理模块和数据处理模块。
其中,判断处理模块:在定时流控服务启动后,判断编码数据缓冲单元中是否有缓存的数据,如果是,则发送数据输出信号给数据处理模块;否则,结束所述定时流控服务,发送编码启动信号给外部模块,启动数据编码的过程;当发送缓冲单元已经被编码数据缓冲单元发送的数据填满后,结束所述定时流控服务。
数据处理模块:当接收到判断处理模块发送的数据输出信号后,将编码数据缓冲单元中缓存的数据读出并发送给发送缓冲单元。
在实际应用中,上述缓冲器还可以为其它的存储工具。
本发明在实际应用中,实现于一个能定时启动的服务中,该服务包括任务、线程或中断服务程序,用于实现码流在各单元缓冲区的操作和编码单元的启动控制,进而实现码流控制。
定时服务的启动时间间隔的设定必须参考编码器执行时间、发送速率和发送缓冲单元的大小来确定。间隔太长会导致发送缓冲单元无数据发送,浪费本就有限的带宽资源;间隔太短则会导致耗费过多的系统资源。
在需要码流控制过程的服务中,设定了适当的定时服务的启动时间间隔后,在设置的定时服务的定时启动时间到达后,首先启动所述的定时服务,从而进入码流控制的操作过程。
本发明所述视频图像数据的流控方法的实施例的具体处理流程如图5所示,包括如下步骤:
步骤5-1、获取发送缓冲单元空间。
在本发明中,由于发送缓冲单元中的数据始终是以某一设定速率向外发送。因此,当每次进入定时服务后,发送缓冲单元中总会有剩余空间,于是,首先计算发送缓冲单元的剩余空间,获取发送缓冲单元的剩余空间信息。继续执行步骤5-2。
步骤5-2、判断编码数据缓冲单元是否有数据?
在获取了发送缓冲单元的剩余空间信息后,便判断此时编码数据缓冲单元中是否有数据,如果无数据,直接执行步骤5-5;否则,执行步骤5-3。
步骤5-3、将编码数据缓冲单元的数据发送到发送缓冲单元。
将编码数据缓冲单元中缓存的数据发送给发送缓冲单元,执行步骤5-4。
步骤5-4、判断编码数据缓冲单元是否有数据?
在将编码数据缓冲单元中缓存的数据发送给发送缓冲单元后,需要判断编码数据缓冲单元中是否还有数据。
如果编码数据缓冲单元中的数据尚未完全被发送到缓冲单元,则直接退出本次定时服务。当发送缓冲单元已经被编码数据缓冲单元发送的数据填满后,则也结束本次定时服务。
如果编码数据缓冲单元中没有数据了,则继续执行步骤5-5。
步骤5-5、发送编码启动控制命令
向编码器发送编码命令,启动编码器的编码过程,之后退出本次定时服务。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。