CN103002354A - 一种消除视频数据传输网络抖动的方法及*** - Google Patents
一种消除视频数据传输网络抖动的方法及*** Download PDFInfo
- Publication number
- CN103002354A CN103002354A CN2012105419493A CN201210541949A CN103002354A CN 103002354 A CN103002354 A CN 103002354A CN 2012105419493 A CN2012105419493 A CN 2012105419493A CN 201210541949 A CN201210541949 A CN 201210541949A CN 103002354 A CN103002354 A CN 103002354A
- Authority
- CN
- China
- Prior art keywords
- frame
- sent
- video data
- module
- network jitter
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
技术领域
本发明属于流媒体通信领域,具体涉及一种消除视频数据传输网络抖动的方法及***。
背景技术
随着EtherNet技术的不断发展,IPC(网络视频监控设备)逐渐成为安防领域发展的一个热点。利用现有的IP宽带网络,便可以实现远程视频监控,而不用单独建设视频专线。在实际复杂的组网环境中,视频数据包在传输过程中经常出现数据丢失、乱序和到达延迟等现象,从而导致了多个视频数据包到达接收端的时间和顺序与发送端有所差异,这种现象称为网络抖动。如果直接将具有抖动的数据进行视频解码渲染,在视觉体验上就会出现图像不平滑甚至花屏等效果,因此,消除视频数据网络传输抖动是实时监控重要任务之一。
发明内容
本发明目的是针对现有技术中存在的视频数据在网络传输后进行解码渲染出现图像不平滑甚至花屏的技术问题,提供一种消除视频数据传输网络抖动的方法。本发明还提供了一种消除视频传输网络抖动的***。
本发明的目的通过下述技术方案来实现:
一种消除视频数据传输网络抖动的方法,其具体包含以下步骤:1.服务器接收视频数据包,并将数据包编码后采用分帧算法拆分成以帧为单位的数据帧;2.依次给拆分后的每个数据帧赋予一个序列号,并依序将数据帧存放在待发送缓存区;3.从待发送缓存区中取出读指针指向的数据帧作为当前帧,得到当前时间戳 ,如果时间间隔-大于或等于发送时间阈值,则将当前帧进行发送;否则再判断当前缓存区中的数据帧个数是否达到最大临界值;如果当前缓存区中的数据帧个数达到最大临界值,则强制发送当前帧,否则等待,直到时间间隔大于发送时间阈值或者缓存区中的数据帧个数达到最大临界值;其中为上一次发送帧的时间戳。
更进一步地,上述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。
更进一步地,上述步骤1中的编码采用H.264编码压缩。
更进一步地,上述步骤3中得到当前时间戳的方式为采用GetTickCount()函数计算。
本发明还公开了一种消除视频数据传输网络抖动的***,其具体包括服务器中的接收模块、赋值模块、比较模块、发送模块,所述接收模块用于接收视频数据包,并将数据包采用接收模块中的编码模块进行编码,编码后采用分帧算法拆分成以帧为单位的数据帧;所述赋值模块用于依次给拆分后的每个数据帧赋予一个序列号,并依序将数据帧存放在待发送缓存区;所述比较模块用于从待发送缓存区中取出读指针指向的数据帧作为当前帧,得到当前时间戳,如果时间间隔-大于或等于发送时间阈值,则通过发送模块将当前帧进行发送;否则再判断当前缓存区中的数据帧个数是否达到最大临界值;如果当前缓存区中的数据帧个数达到最大临界值,则通过发送模块强制发送当前帧,否则等待,直到时间间隔大于发送时间阈值或者缓存区中的数据帧个数达到最大临界值;其中为上一次发送帧的时间戳。
更进一步地,上述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。
更进一步地,上述编码模块将数据采用H.264编码压缩。
通过采用以上技术方案,本发明具有以下有益效果:根据时间间隔判断是否应该发送数据帧,使得数据帧能够匀速进行发送,实现了视频数据均匀的到达解码端,同时在缓存区中的数据帧个数达到最大临界值时进行强制发送,有效提高了内存空间利用率,减小了内存波动,最终消除了视频数据在传输中的网络抖动,使视频图像显示更平滑,提高了用户的使用感受。
附图说明
附图1本发明的消除视频数据传输网络抖动的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合说明书附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明公开了一种消除视频数据传输网络抖动的方法,其具体包含以下步骤:1.服务器接收视频数据包,并将数据包编码后采用分帧算法拆分成以帧为单位的数据帧;2.依次给拆分后的每个数据帧赋予一个序列号,并依序将数据帧存放在待发送缓存区;3.从待发送缓存区中取出读指针指向的数据帧作为当前帧,得到当前时间戳,如果时间间隔-大于或等于发送时间阈值,则将当前帧进行发送;否则再判断当前缓存区中的数据帧个数是否达到最大临界值;如果当前缓存区中的数据帧个数达到最大临界值,则强制发送当前帧,否则等待,直到时间间隔大于发送时间阈值或者缓存区中的数据帧个数达到最大临界值;其中为上一次发送帧的时间戳。其中,时间阈值由实时视频图像帧率确定,当实时视频图像帧率为25FPS时,则每帧之间的间隔为40毫秒,所以取时间阈值为40ms,比较条件为:。同时考虑到实际视频流所占用内存,以25帧作为链表最大临界值,此值可以根据实时视频图像的分辨率大小及帧率进行动态调整,比较条件为:。
通过采用上述技术方案,根据时间间隔判断是否应该发送数据帧,使得数据帧能够匀速进行发送,实现了视频数据均匀的到达解码端,同时在缓存区中的数据帧个数达到最大临界值时进行强制发送,有效提高了内存空间利用率,减小了内存波动,最终消除了视频数据在传输中的网络抖动,使视频图像显示更平滑,提高了用户的使用感受。
更进一步地,上述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。构建一个双向循环链表作为发送等待缓存区,根据帧序号顺序将每一帧***到链表的尾部结点;从链表的头结点取出一元素作为当前数据帧,判断该帧时间戳是否满足发送条件,满足则发送当前数据帧;如果不满足则继续判断当前链表缓存的帧个数是否达到最大值,若已经达到,则强制发送当前数据帧。采用栓向循环列表用于数据帧的缓存,避免了数据帧的乱序,同时便于***实现。
更进一步地,上述步骤1中的编码采用H.264编码压缩。H.264 和以前的标准一样,也是 DPCM 加变换编码的混合编码模式,但H.264具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。例如,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比为102∶1。和MPEG-2和MPEG-4ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。同时H.264在具有高压缩比的同时还拥有高质量流畅的图像。
更进一步地,上述步骤3中得到当前时间戳的方式为采用GetTickCount()函数计算。采用上述函数快速计算出当前时间戳,GetTickCount返回从操作***启动到现在所经过的毫秒数,它的返回值是DWORD。采用上述函数直接得到当前时间戳,快速便捷且准确。
本发明还公开了一种消除视频数据传输网络抖动的***,其具体包括服务器中的接收模块、赋值模块、比较模块、发送模块,所述接收模块用于接收视频数据包,并将数据包采用接收模块中的编码模块进行编码,编码后采用分帧算法拆分成以帧为单位的数据帧;所述赋值模块用于依次给拆分后的每个数据帧赋予一个序列号,并依序将数据帧存放在待发送缓存区;所述比较模块用于从待发送缓存区中取出读指针指向的数据帧作为当前帧,得到当前时间戳,如果时间间隔-大于或等于发送时间阈值,则通过发送模块将当前帧进行发送;否则再判断当前缓存区中的数据帧个数是否达到最大临界值;如果当前缓存区中的数据帧个数达到最大临界值,则通过发送模块强制发送当前帧,否则等待,直到时间间隔大于发送时间阈值或者缓存区中的数据帧个数达到最大临界值;其中为上一次发送帧的时间戳。其中,时间阈值由实时视频图像帧率确定,当实时视频图像帧率为25FPS时,则每帧之间的间隔为40毫秒,所以取时间阈值为40ms,比较条件为:。同时考虑到实际视频流所占用内存,以25帧作为链表最大临界值,此值可以根据实时视频图像的分辨率大小及帧率进行动态调整,比较条件为:。
通过采用上述技术方案,根据时间间隔判断是否应该发送数据帧,使得数据帧能够匀速进行发送,实现了视频数据均匀的到达解码端,同时在缓存区中的数据帧个数达到最大临界值时进行强制发送,有效提高了内存空间利用率,减小了内存波动,最终消除了视频数据在传输中的网络抖动,使视频图像显示更平滑,提高了用户的使用感受。
更进一步地,上述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。构建一个双向循环链表作为发送等待缓存区,根据帧序号顺序将每一帧***到链表的尾部结点;从链表的头结点取出一元素作为当前数据帧,判断该帧时间戳是否满足发送条件,满足则发送当前数据帧;如果不满足则继续判断当前链表缓存的帧个数是否达到最大值,若已经达到,则强制发送当前数据帧。采用栓向循环列表用于数据帧的缓存,避免了数据帧的乱序,同时便于***实现。
更进一步地,上述***还包括更新模块,所述更新模块用于当前帧发送完成后,更新,,链表指针指向下一帧数据,并取出该帧数据,重复执行比较模块和发送模块。在当前帧发完成后,即可更新时间戳,使得数据帧的传送更加均匀。
更进一步地,上述编码模块将数据采用H.264编码压缩。H.264 和以前的标准一样,也是 DPCM 加变换编码的混合编码模式,但H.264具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。例如,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比为102∶1。和MPEG-2和MPEG-4ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。同时H.264在具有高压缩比的同时还拥有高质量流畅的图像。
更进一步地,上述比较模块中还包括时间戳获取模块,所述时间戳获取模块用于采用GetTickCount()函数计算得到当前时间戳。采用上述函数快速计算出当前时间戳,GetTickCount返回从操作***启动到现在所经过的毫秒数,它的返回值是DWORD。采用上述函数直接得到当前时间戳,快速便捷且准确。
上述的实施例中所给出的系数和参数,是提供给本领域的技术人员来实现或使用本发明的,本发明并不限定仅取前述公开的数值,在不脱离本发明的发明思想的情况下,本领域的技术人员可以对上述实施例作出种种修改或调整,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
Claims (9)
2. 如权利要求1所述的消除视频数据传输网络抖动的方法,其特征在于所述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。
4.如权利要求2所述的消除视频数据传输网络抖动的方法,其特征在于所述步骤1中的编码采用H.264编码压缩。
5.如权利要求1所述的消除视频数据传输网络抖动的方法,其特征在于所述步骤3中得到当前时间戳的方式为采用GetTickCount函数计算。
6.一种消除视频数据传输网络抖动的***,其特征在于具体包括服务器中的接收模块、赋值模块、比较模块、发送模块,所述接收模块用于接收视频数据包,并将数据包采用接收模块中的编码模块进行编码,编码后采用分帧算法拆分成以帧为单位的数据帧;所述赋值模块用于依次给拆分后的每个数据帧赋予一个序列号,并依序将数据帧存放在待发送缓存区;所述比较模块用于从待发送缓存区中取出读指针指向的数据帧作为当前帧,得到当前时间戳,如果时间间隔-大于或等于发送时间阈值,则通过发送模块将当前帧进行发送;否则再判断当前缓存区中的数据帧个数是否达到最大临界值;如果当前缓存区中的数据帧个数达到最大临界值,则通过发送模块强制发送当前帧,否则等待,直到时间间隔大于发送时间阈值或者缓存区中的数据帧个数达到最大临界值;其中为上一次发送帧的时间戳。
7.如权利要求6所述的消除视频数据传输网络抖动的***,其特征在于所述待发送缓存区为双向循环链表,依序将数据帧***链表的尾部结点,并从链表的头节点中取出数据帧。
9.如权利要求8所述的消除视频数据传输网络抖动的***,其特征在于所述编码模块将数据采用H.264编码压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105419493A CN103002354A (zh) | 2012-12-14 | 2012-12-14 | 一种消除视频数据传输网络抖动的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105419493A CN103002354A (zh) | 2012-12-14 | 2012-12-14 | 一种消除视频数据传输网络抖动的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103002354A true CN103002354A (zh) | 2013-03-27 |
Family
ID=47930408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105419493A Pending CN103002354A (zh) | 2012-12-14 | 2012-12-14 | 一种消除视频数据传输网络抖动的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103002354A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747332A (zh) * | 2013-12-25 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种视频的平滑处理方法和装置 |
CN103873828A (zh) * | 2014-03-11 | 2014-06-18 | 浙江宇视科技有限公司 | 实况流送显控制方法及装置 |
CN106899872A (zh) * | 2017-03-10 | 2017-06-27 | 深圳市合互联技术有限责任公司 | 一种实时互动的信息展示方法 |
CN107396172A (zh) * | 2017-08-29 | 2017-11-24 | 四川长虹电器股份有限公司 | 低延迟投屏的方法 |
CN108696451A (zh) * | 2017-04-06 | 2018-10-23 | 上海诺基亚贝尔股份有限公司 | 一种用于控制流量的方法和装置 |
CN109413485A (zh) * | 2017-08-17 | 2019-03-01 | 成都鼎桥通信技术有限公司 | 数据缓存方法及装置 |
CN111428560A (zh) * | 2020-02-20 | 2020-07-17 | 重庆创通联达智能技术有限公司 | 视频图像处理方法、装置、电子设备及存储介质 |
CN113365098A (zh) * | 2021-06-01 | 2021-09-07 | 平安国际智慧城市科技股份有限公司 | 视频帧组装方法、装置、电子设备及存储介质 |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN116684036A (zh) * | 2022-11-03 | 2023-09-01 | 荣耀终端有限公司 | 数据处理方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输***中的速率控制方法 |
CN101977358A (zh) * | 2010-09-26 | 2011-02-16 | 北京握奇数据***有限公司 | 一种数据短信的传输方法、装置及设备 |
CN102413382A (zh) * | 2011-12-27 | 2012-04-11 | 四川九洲电器集团有限责任公司 | 一种提高实时视频平滑性的方法 |
CN102457387A (zh) * | 2010-10-22 | 2012-05-16 | 英业达集团(天津)电子技术有限公司 | 多播封包的接收方法 |
-
2012
- 2012-12-14 CN CN2012105419493A patent/CN103002354A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输***中的速率控制方法 |
CN101977358A (zh) * | 2010-09-26 | 2011-02-16 | 北京握奇数据***有限公司 | 一种数据短信的传输方法、装置及设备 |
CN102457387A (zh) * | 2010-10-22 | 2012-05-16 | 英业达集团(天津)电子技术有限公司 | 多播封包的接收方法 |
CN102413382A (zh) * | 2011-12-27 | 2012-04-11 | 四川九洲电器集团有限责任公司 | 一种提高实时视频平滑性的方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747332A (zh) * | 2013-12-25 | 2014-04-23 | 乐视致新电子科技(天津)有限公司 | 一种视频的平滑处理方法和装置 |
CN103747332B (zh) * | 2013-12-25 | 2018-08-10 | 乐视致新电子科技(天津)有限公司 | 一种视频的平滑处理方法和装置 |
CN103873828A (zh) * | 2014-03-11 | 2014-06-18 | 浙江宇视科技有限公司 | 实况流送显控制方法及装置 |
CN103873828B (zh) * | 2014-03-11 | 2017-04-19 | 浙江宇视科技有限公司 | 实况流送显控制方法及装置 |
CN106899872B (zh) * | 2017-03-10 | 2019-10-01 | 深圳市合一互联技术有限责任公司 | 一种实时互动的信息展示方法 |
CN106899872A (zh) * | 2017-03-10 | 2017-06-27 | 深圳市合互联技术有限责任公司 | 一种实时互动的信息展示方法 |
CN108696451A (zh) * | 2017-04-06 | 2018-10-23 | 上海诺基亚贝尔股份有限公司 | 一种用于控制流量的方法和装置 |
CN108696451B (zh) * | 2017-04-06 | 2021-09-14 | 上海诺基亚贝尔股份有限公司 | 一种用于控制流量的方法和装置 |
CN109413485B (zh) * | 2017-08-17 | 2022-02-01 | 成都鼎桥通信技术有限公司 | 数据缓存方法及装置 |
CN109413485A (zh) * | 2017-08-17 | 2019-03-01 | 成都鼎桥通信技术有限公司 | 数据缓存方法及装置 |
CN107396172A (zh) * | 2017-08-29 | 2017-11-24 | 四川长虹电器股份有限公司 | 低延迟投屏的方法 |
CN111428560A (zh) * | 2020-02-20 | 2020-07-17 | 重庆创通联达智能技术有限公司 | 视频图像处理方法、装置、电子设备及存储介质 |
CN111428560B (zh) * | 2020-02-20 | 2023-09-12 | 重庆创通联达智能技术有限公司 | 视频图像处理方法、装置、电子设备及存储介质 |
CN113365098A (zh) * | 2021-06-01 | 2021-09-07 | 平安国际智慧城市科技股份有限公司 | 视频帧组装方法、装置、电子设备及存储介质 |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN114979091B (zh) * | 2022-07-28 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN116684036A (zh) * | 2022-11-03 | 2023-09-01 | 荣耀终端有限公司 | 数据处理方法及相关装置 |
CN116684036B (zh) * | 2022-11-03 | 2024-03-22 | 荣耀终端有限公司 | 数据处理方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103002354A (zh) | 一种消除视频数据传输网络抖动的方法及*** | |
CN104394486B (zh) | 一种基于云桌面的视频流处理方法及装置 | |
CN105472477B (zh) | 一种数据传输方法、装置及设备 | |
CN104125429B (zh) | 视频数据传输的调节方法及装置 | |
CN105376607A (zh) | 一种网络抖动环境下的视频直播方法及装置 | |
CN109729437B (zh) | 流媒体自适应传输方法、终端和*** | |
KR101693564B1 (ko) | 미디어 품질 평가 방법 및 장치 | |
US9723193B2 (en) | Transmitting device, receiving system, communication system, transmission method, reception method, and program | |
CN102932676B (zh) | 基于音视频同步的自适应带宽传输和播放方法 | |
CN105376613B (zh) | 一种快速频道切换方法、服务器及iptv*** | |
KR102286957B1 (ko) | 네트워크의 디바이스들에 의해 수행되는 지속적인 트래픽 세션들 사이에서 네트워크의 사용 가능한 대역폭을 분배하기 위한 방법 및 그 장치 | |
EP3238452B1 (en) | Multiple stream video compression in multiple bitrate video encoding | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
CN105392023A (zh) | 一种网络抖动环境下的视频直播方法及装置 | |
EP2945327A1 (en) | Media data transmission method, apparatus and system | |
CN101924914A (zh) | 一种切换电视频道的方法、***及装置 | |
CN104125482A (zh) | 一种流媒体播放方法及装置 | |
KR101501189B1 (ko) | 고속 채널 변경 방법 및 장치 | |
CN105812710A (zh) | 视频通话过程中优化图像质量的方法及*** | |
CN112616065A (zh) | 一种屏幕镜像发起方法、装置、计算机设备、可读存储介质及屏幕镜像呈现*** | |
CN103338392A (zh) | 一种视频轮巡无缝切换画面的方法 | |
CN105472404A (zh) | 一种视频业务中的数据处理方法 | |
CN109889847A (zh) | 低延时无线传输编解码*** | |
CN101090369B (zh) | 一种在流媒体***中控制数据包发送速率的方法 | |
WO2015044104A1 (en) | Video traffic management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130327 |