CN113709496A - 基于容错机制的多路视频解码方法 - Google Patents

基于容错机制的多路视频解码方法 Download PDF

Info

Publication number
CN113709496A
CN113709496A CN202110974450.0A CN202110974450A CN113709496A CN 113709496 A CN113709496 A CN 113709496A CN 202110974450 A CN202110974450 A CN 202110974450A CN 113709496 A CN113709496 A CN 113709496A
Authority
CN
China
Prior art keywords
frame
data
decoding
image
len
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.)
Granted
Application number
CN202110974450.0A
Other languages
English (en)
Other versions
CN113709496B (zh
Inventor
高娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202110974450.0A priority Critical patent/CN113709496B/zh
Priority claimed from CN202110974450.0A external-priority patent/CN113709496B/zh
Publication of CN113709496A publication Critical patent/CN113709496A/zh
Application granted granted Critical
Publication of CN113709496B publication Critical patent/CN113709496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种基于容错机制的多路视频解码方法,属于视频编解码领域。本发明首先,配置网络接收线程,通过缓冲区机制同步每路图像数据。其次,分析图像原始数据和编码规律对接收数据进行错误帧过滤;然后,采用容错机制对图像数据帧序列进行参考帧调整。最后,启动视频流的发送任务,实时监控解码通道状态,通过软重启解码模块重设参数对解码模块适用错误图像数据,根据解码需求可动态控制视频流输出任务。

Description

基于容错机制的多路视频解码方法
技术领域
本发明属于视频编解码领域,具体涉及一种基于容错机制的多路视频解码方法。
背景技术
Hi3559AV100是专业的8K Ultra HD Mobile Camera SOC,它提供了8K30/4K120广播级图像质量的数字视频录制,支持多路Sensor输入,支持H.265编码输出或影视级的RAW数据输出,并集成高性能ISP处理,同时采用先进低功耗工艺和低功耗架构设计,为用户提供了卓越的图像处理能力。
Hi3559AV100支持业界领先的多路4K Sensor输入,多路ISP图像处理,支持HDR10高动态范围技术标准,并支持多路全景硬件拼接。在支持8K30/4K120视频录制下,Hi3559AV100提供硬化的6-Dof数字防抖,减少了对机械云台的依赖。
H265编码的图像NALU开头为00 00 00 01,分为6种不同的类型:00 00 00 01 4001的nuh_unit_type的值为32,语义为视频参数集VPS。00 00 00 01 42 01的nuh_unit_type的值为33,语义为序列参数集SPS。00 00 00 01 44 01的nuh_unit_type的值为34,语义为图像参数集PPS。00 00 00 01 4E 01的nuh_unit_type的值为39,语义为补充增强信息SEI。00 00 00 01 26 01的nuh_unit_type的值为19,语义为可能有RADL图像的IDR图像的SS编码数据IDR。00 00 00 01 02 01的nuh_unit_type的值为1,语义为被参考的后置图像,且非TSA、非STSA的SS编码数据。
但是,不是所有的协议帧都包含了以上六种类型,对于帧类型不完整的编码图像,或者错帧数据比较多的情况下,提出一种基于容错机制的视频解码方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种基于容错机制的多路视频解码方法,以解决视频帧类型不完整和存有错误帧而导致硬解码器无法解码的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种基于容错机制的多路视频解码方法,该方法包括如下步骤:
S1、创建接收线程接收网络发送的原始压缩图像数据
首先,根据配置文件获取传输中的ip和端口号信息,然后,阻塞等待网络发送的图像数据;
S2、将压缩图像存入环形缓冲区
为每路通道创建环形缓冲区,根据帧头分析每路通道数据,按通道号存入环形缓冲区;
S3、从环形缓冲区获取数据并过滤错误帧
按照帧模式从环形缓冲区获取原始图像数据,参考265协议帧类型过滤错误帧,实时查看解码器状态并根据解码结果软重启解码器;
S4、将过滤后的图像帧发送给解码模块进行解码
创建解码线程,将过滤后的图像帧通过库函数发送给板卡的解码模块进行硬解码。
进一步地,所述步骤S1具体包括如下步骤:
S11、获取配置文件中接收ip和端口;
S12、创建网络套接字;
S13、清零接收缓冲区,阻塞接收网络发送的图像数据;
S14、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S13;
S15、判断协议帧头是否符合协议要求,如不符合就丢弃该帧。
进一步地,所述步骤S2具体包括如下步骤:
S21、创建网络接收数据线程;
S22、将网络接收的数据存入缓冲区。
进一步地,所述步骤S21具体包括如下步骤:
S2101、获取配置文件中接收ip和端口;
S2102、创建网络套接字;
S2103、清零接收缓冲区,阻塞接收网络发送的图像数据;
S2104、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S2103;
S2105、判断协议帧头是否符合协议要求,如不符合就丢弃该帧。
进一步地,所述步骤S22具体包括如下步骤:
S2201、判断网络接收的数据长度len是否为大于0,如果是则进行下一步,如果不是则退出;
S2202、根据协议规定的字节查找当前数据的通道号,并保存该通道号;
S2203、判断该通道号的数据缓冲区已有数据长度cirLen与len的和是否小于缓冲区最大长度MAX_LEN,如果是则进行下一步,如果不是则进行第S2206步;
S2204、将网络接收区的数据拷贝到环形缓冲区,拷贝长度为len;
S2205、将缓冲区的数据总长度增加len个数,同时存数据的首地址ptr也移动len个位置;
S2206、将网络接收区数据拷贝到缓冲区,拷贝长度为(MAX_Len-cirLen);
S2207、重置写指针putPtr,移动到缓冲区首地址;
S2208、计算缓冲区总数据长度cirLen为len-(MAX_LEN-cirLen);
S2209、再次从网络接收数组拷贝到缓冲区,缓冲区位置移动MAX_LEN-cirLen个长度,拷贝长度为cirlen;
S2210、向前移动写指针putPtr,移动cirLen个位置。
进一步地,所述步骤S3具体包括如下步骤:
S301、获取目前缓冲区的写指针位置putPtr和缓冲区数据总长度cirLen;
S302、判断读指针readPtr与putPtr是否一致,如果一致则延时1ms,返回到第S301步,否则进行下一步;
S303、判断已读数据readLen是否小于cirLen,如果是则继续下一步,否则进行第S307步;
S304、判断cirLen与readLen差值是否大于等于协议帧固定长度frame_len,如果是继续下一步,如果不是则进行第S306步;
S305、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为frame_len,同时移动readPtr,移动个数为frame_len,增加读取长度readLen,增加个数为frame_len;
S306、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为cirLen减去readLen,同时移动readPtr,移动个数为(cirLen-readLen),增加读取长度readLen,增加个数为(cirLen-readLen);
S307、判断readLen与frame_len的和是否小于MAX_LEN,如果是则进行下一步,如果不是则进行第S309步;
S308、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为frame_len,移动读指针,移动个数为frame_len,增加读数据长度readLen,增加个数为frame_len;
S309、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为MAX_LEN-readLen,移动读指针到缓冲区首地址,置读长度readLen为0;
S310、判断当前的数据长度bufLen是否大于0,如果是则继续下一步,如果不是,则跳转到S301;
S311、根据编码协议判断该帧头是否符合协议规定,如果不符合则抛弃该帧,等待下一次图像帧传输,否则进行下一步;
S312、判断当前图像来源,根据图像来源确定编码规律中的P帧个数;
S313、判断当前帧类型,如果该帧为参数帧,则将参数信息保存下来,等待图像帧传输完成一起发送给硬解码模块,否则进行下一步;
S314、判断当前帧是否为非参数帧中的I帧或者P帧,如果是则记录该类型帧数目和该帧内容,作为标准帧的参考依据,否则进入下一步;
S315、按照图类型帧分析当前帧具备的标准的P帧个数,如果不符合编码规律中P帧个数要求,则判定该帧为错误帧并进行下一步,否则进行第S317步;
S316、如果个数小于当前编码规律中规定的P帧个数,则直接抛弃该帧;
S317、如果个数大于当前编码规律中规定的P帧个数,则修改当前第一个P帧为I帧,并且拷贝步骤S313记录的参数帧一起作为新的图像帧;
S318、如果个数等于编码规律中的P帧个数,则直接进入S319步;
S319、保存并记录带有该图像帧号的参数信息,记录参数信息的长度和数据信息,将帧号作为该图像帧标识,直接进入过程S4。
进一步地,所述步骤S4具体包括如下步骤:
S401、动态申请视频图像帧的缓冲区大小buf;
S402、循环判断是否为解码结束,如果是则退出处理流程进行步骤S410,否则进行下一步;
S403、设置当前帧的参数:流结束标志符、帧头标志,帧尾标志;
S404、将图像帧号作为图像时间戳参数信息;
S405、将图像帧数据放入buf;
S406、调用动态库函数发送buf数据到解码模块;
S407、实时监控解码模块解码状态,如果解码状态数据结构中已解码的图像帧数与记录的图像帧数不一致,则表明有新的图像已解出,则进行下一步,否则进入到第S409步;
S408、获取解码后的图像时间戳信息,并与上一个过程保存的帧号进行相应配对,将解码图像和参数信息作为完整数据帧保存下来;
S409、查看复位标志是否置0,如果是则调用库函数停止解码接收数据,并销毁已申请的解码通道资源,再次创建新的解码通道,否则等待1ms再重复该过程;
S410、查看所有图像帧是否已解完,如果是则调用库函数停止发送视频流给解码模块,关闭解码通道,解绑各模块绑定关系,清除资源。
进一步地,该方法应用于linux系统。
进一步地,该方法对多路视频的处理提供了缓存机制和错误帧机制。
进一步地,该方法为防止解码错误导致解码模块无法继续解码,实时监控解码状态,根据解码结果软件重启解码模块恢复解码功能。
(三)有益效果
本发明提出一种基于容错机制的多路视频解码方法,本发明可以实现linux系统下视频解码容错问题,该方法已经经过了算法验证,并进行了实验检验。结果标明,该方案可以为解决图像帧解码问题,采用修改帧类型和错误帧过滤方法,有效地调整解帧内容从而达到容错的目的。
附图说明
图1为本发明基于容错机制的多路视频解码实现流程图;
图2为从环形缓冲区获取数据并过滤错误帧的流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明属于linux系统下视频解码技术,在系统为linux的应用场景下,针对海思Hi3559AV100芯片特点,并结合解码器特性和输出通道属性,设计实现了一种linux系统下基于容错机制的解码方案设计方法。本发明为视频源为H265协议类型的前提下,有效地解决了视频帧类型不完整和存有错误帧而导致硬解码器无法解码的问题。
本发明的目的是在linux平台下,解决多路视频解码问题。
为实现上述目的,本发明采取以下技术方案。
S1、创建接收线程接收网络发送的原始压缩图像数据
首先,根据配置文件获取传输中的ip和端口号信息。然后,阻塞等待网络发送的图像数据。
S2、将压缩图像存入环形缓冲区
为每路通道创建环形缓冲区,根据帧头分析每路通道数据,按通道号存入环形缓冲区。
S3、从环形缓冲区获取数据并过滤错误帧
按照帧模式从环形缓冲区获取原始图像数据,参考265协议帧类型过滤错误帧,实时查看解码器状态并根据解码结果软重启解码器。
S4、将过滤后的图像帧发送给解码模块进行解码
创建解码线程,将过滤后的图像帧通过库函数发送给板卡的解码模块进行硬解码。
通过以上步骤,可以实现linux系统下的多路视频的容错解码功能。
结合图1,为了解决linux系统下多路视频图像错误帧解码问题,我们采用基于容错机制的方法。下面我们对本发明的内容作进一步描述。
S1、创建接收线程接收网络发送的原始压缩图像数据
S11、首先,获取配置文件中接收ip和端口。
S12、然后,创建网络套接字。
S13、其次,清零接收缓冲区,阻塞接收网络发送的图像数据;
S14、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S13。
S15、判断协议帧头是否符合协议要求,如不符合就丢弃该帧。
S2、将压缩图像存入环形缓冲区
S21、创建网络接收数据线程,具体步骤如下:
S2101、首先,获取配置文件中接收ip和端口;
S2102、然后,创建网络套接字;
S2103、其次,清零接收缓冲区,阻塞接收网络发送的图像数据;
S2104、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S2103;
S2105、判断协议帧头是否符合协议要求,如不符合就丢弃该帧;
S22、将网络接收的数据存入缓冲区,具体步骤如下:
S2201、判断网络接收的数据长度len是否为大于0,如果是则进行下一步,如果不是则退出;
S2202、根据协议规定的字节查找当前数据的通道号,并保存该通道号;
S2203、判断该通道号的数据缓冲区已有数据长度cirLen与len的和是否小于缓冲区最大长度MAX_LEN,如果是则进行下一步,如果不是则进行第S2206步。
S2204、将网络接收区的数据拷贝到环形缓冲区,拷贝长度为len。
S2205、将缓冲区的数据总长度增加len个数,同时存数据的首地址ptr(初始化为缓冲区首地址)也移动len个位置。
S2206、将网络接收区数据拷贝到缓冲区,拷贝长度为(MAX_Len-cirLen);
S2207、重置写指针putPtr,移动到缓冲区首地址。
S2208、计算缓冲区总数据长度cirLen为len-(MAX_LEN-cirLen);
S2209、再次从网络接收数组拷贝到缓冲区,缓冲区位置移动MAX_LEN-cirLen个长度,拷贝长度为cirlen;
S2210、向前移动写指针putPtr,移动cirLen个位置。
S3、从环形缓冲区获取数据并进行容错处理
S301、获取目前缓冲区的写指针位置putPtr和缓冲区数据总长度cirLen;
S302、判断读指针readPtr与putPtr是否一致,如果一致则延时1ms,返回到第S301步,否则进行下一步。
S303、判断已读数据readLen是否小于cirLen,如果是则继续下一步,否则进行第S307步。
S304、判断cirLen与readLen差值是否大于等于协议帧固定长度frame_len,如果是继续下一步,如果不是则进行第S306步。
S305、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为frame_len,同时移动readPtr,移动个数为frame_len,增加读取长度readLen,增加个数为frame_len。
S306、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为cirLen减去readLen,同时移动readPtr,移动个数为(cirLen-readLen),增加读取长度readLen,增加个数为(cirLen-readLen)。
S307、判断readLen与frame_len的和是否小于MAX_LEN,如果是则进行下一步,如果不是则进行第S309步。
S308、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为frame_len,移动读指针,移动个数为frame_len,增加读数据长度readLen,增加个数为frame_len。
S309、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为MAX_LEN-readLen,移动读指针到缓冲区首地址,置读长度readLen为0
S310、判断当前的数据长度bufLen是否大于0,如果是则继续下一步,如果不是,则跳转到S301。
S311、根据编码协议判断该帧头是否符合协议规定,如果不符合则抛弃该帧,等待下一次图像帧传输,否则进行下一步;
S312、判断当前图像来源,根据图像来源确定编码规律中的P帧个数;
S313、判断当前帧类型,如果该帧为参数帧,则将参数信息保存下来,等待图像帧传输完成一起发送给硬解码模块,否则进行下一步;
S314、判断当前帧是否为非参数帧中的I帧或者P帧,如果是则记录该类型帧数目和该帧内容,作为标准帧的参考依据,否则进入下一步。
S315、按照图类型帧分析当前帧具备的标准的P帧个数,如果不符合编码规律中P帧个数要求,则判定该帧为错误帧并进行下一步,否则进行第S317步;
S316、如果个数小于当前编码规律中规定的P帧个数,则直接抛弃该帧;
S317、如果个数大于当前编码规律中规定的P帧个数,则修改当前第一个P帧为I帧,并且拷贝步骤S313记录的参数帧一起作为新的图像帧;
S318、如果个数等于编码规律中的P帧个数,则直接进入S319步;
S319、保存并记录带有该图像帧号的参数信息,记录参数信息的长度和数据信息,将帧号作为该图像帧标识,直接进入过程S4;
S4、将处理后的图像帧发送给解码模块进行解码
S401、动态申请视频图像帧的缓冲区大小buf;
S402、循环判断是否为解码结束,如果是则退出处理流程进行步骤S410,否则进行下一步;
S403、设置当前帧的参数:流结束标志符、帧头标志,帧尾标志;
S404、将图像帧号作为图像时间戳参数信息;
S405、将图像帧数据放入buf;
S406、调用动态库函数发送buf数据到解码模块;
S407、实时监控解码模块解码状态,如果解码状态数据结构中已解码的图像帧数与记录的图像帧数不一致,则表明有新的图像已解出,则进行下一步,否则进入到第S409步;
S408、获取解码后的图像时间戳信息,并与上一个过程保存的帧号进行相应配对,将解码图像和参数信息作为完整数据帧保存下来;
S409、查看复位标志是否置0,如果是则调用库函数停止解码接收数据,并销毁已申请的解码通道资源,再次创建新的解码通道,否则等待1ms再重复该过程;
S410、查看所有图像帧是否已解完,如果是则调用库函数停止发送视频流给解码模块,关闭解码通道,解绑各模块绑定关系,清除资源。
利用上述技术方案,采用上述操作步骤,本发明可以实现linux系统下视频解码容错问题,该方法已经经过了算法验证,并进行了实验检验。结果标明,该方案可以为解决图像帧解码问题,采用修改帧类型和错误帧过滤方法,有效地调整解帧内容从而达到容错的目的。
实施例1:
一种基于容错机制的视频解码设计方案,(1)创建网络接收任务阻塞接收图像数据,采用环形缓冲区同步多路图像数据;(2)为多路图像数据建立过滤错误帧机制,根据(2)分析编码规律和h265帧协议,为视频流过滤错误帧;(3)建立容错机制,根据(3)分析编码规律中帧类型并记录保存作为分析依据,动态调整每幅图像的参考帧;(4)实时监控解码模块,通过软重启方式恢复解码错误状态。
进一步地,所述的(1)(2)对多路视频的处理提供了缓存机制和错误帧机制。
进一步地,(3)通过分析错误帧类型,动态记录图像帧中协议帧的类型,并针对错误类型对参考帧进行调整。(4)为防止解码错误导致解码模块无法继续解码,实时监控解码状态,根据解码结果软件重启解码模块恢复解码功能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种基于容错机制的多路视频解码方法,其特征在于,该方法包括如下步骤:
S1、创建接收线程接收网络发送的原始压缩图像数据
首先,根据配置文件获取传输中的ip和端口号信息,然后,阻塞等待网络发送的图像数据;
S2、将压缩图像存入环形缓冲区
为每路通道创建环形缓冲区,根据帧头分析每路通道数据,按通道号存入环形缓冲区;
S3、从环形缓冲区获取数据并过滤错误帧
按照帧模式从环形缓冲区获取原始图像数据,参考265协议帧类型过滤错误帧,实时查看解码器状态并根据解码结果软重启解码器;
S4、将过滤后的图像帧发送给解码模块进行解码
创建解码线程,将过滤后的图像帧通过库函数发送给板卡的解码模块进行硬解码。
2.如权利要求1所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S1具体包括如下步骤:
S11、获取配置文件中接收ip和端口;
S12、创建网络套接字;
S13、清零接收缓冲区,阻塞接收网络发送的图像数据;
S14、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S13;
S15、判断协议帧头是否符合协议要求,如不符合就丢弃该帧。
3.如权利要求2所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S2具体包括如下步骤:
S21、创建网络接收数据线程;
S22、将网络接收的数据存入缓冲区。
4.如权利要求3所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S21具体包括如下步骤:
S2101、获取配置文件中接收ip和端口;
S2102、创建网络套接字;
S2103、清零接收缓冲区,阻塞接收网络发送的图像数据;
S2104、判断本次接收的长度是否大于零,如果大于零则进行下一步,否则回到步骤S2103;
S2105、判断协议帧头是否符合协议要求,如不符合就丢弃该帧。
5.如权利要求1所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S22具体包括如下步骤:
S2201、判断网络接收的数据长度len是否为大于0,如果是则进行下一步,如果不是则退出;
S2202、根据协议规定的字节查找当前数据的通道号,并保存该通道号;
S2203、判断该通道号的数据缓冲区已有数据长度cirLen与len的和是否小于缓冲区最大长度MAX_LEN,如果是则进行下一步,如果不是则进行第S2206步;
S2204、将网络接收区的数据拷贝到环形缓冲区,拷贝长度为len;
S2205、将缓冲区的数据总长度增加len个数,同时存数据的首地址ptr也移动len个位置;
S2206、将网络接收区数据拷贝到缓冲区,拷贝长度为(MAX_Len-cirLen);
S2207、重置写指针putPtr,移动到缓冲区首地址;
S2208、计算缓冲区总数据长度cirLen为len-(MAX_LEN-cirLen);
S2209、再次从网络接收数组拷贝到缓冲区,缓冲区位置移动MAX_LEN-cirLen个长度,拷贝长度为cirlen;
S2210、向前移动写指针putPtr,移动cirLen个位置。
6.如权利要求3-5任一项所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S3具体包括如下步骤:
S301、获取目前缓冲区的写指针位置putPtr和缓冲区数据总长度cirLen;
S302、判断读指针readPtr与putPtr是否一致,如果一致则延时1ms,返回到第S301步,否则进行下一步;
S303、判断已读数据readLen是否小于cirLen,如果是则继续下一步,否则进行第S307步;
S304、判断cirLen与readLen差值是否大于等于协议帧固定长度frame_len,如果是继续下一步,如果不是则进行第S306步;
S305、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为frame_len,同时移动readPtr,移动个数为frame_len,增加读取长度readLen,增加个数为frame_len;
S306、将当前readPtr作为解码图像数据首地址bufPtr,长度bufLen为cirLen减去readLen,同时移动readPtr,移动个数为(cirLen-readLen),增加读取长度readLen,增加个数为(cirLen-readLen);
S307、判断readLen与frame_len的和是否小于MAX_LEN,如果是则进行下一步,如果不是则进行第S309步;
S308、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为frame_len,移动读指针,移动个数为frame_len,增加读数据长度readLen,增加个数为frame_len;
S309、将当前readPtr作为解码图像数据首地址bufPtr,数据长度bufLen为MAX_LEN-readLen,移动读指针到缓冲区首地址,置读长度readLen为0;
S310、判断当前的数据长度bufLen是否大于0,如果是则继续下一步,如果不是,则跳转到S301;
S311、根据编码协议判断该帧头是否符合协议规定,如果不符合则抛弃该帧,等待下一次图像帧传输,否则进行下一步;
S312、判断当前图像来源,根据图像来源确定编码规律中的P帧个数;
S313、判断当前帧类型,如果该帧为参数帧,则将参数信息保存下来,等待图像帧传输完成一起发送给硬解码模块,否则进行下一步;
S314、判断当前帧是否为非参数帧中的I帧或者P帧,如果是则记录该类型帧数目和该帧内容,作为标准帧的参考依据,否则进入下一步;
S315、按照图类型帧分析当前帧具备的标准的P帧个数,如果不符合编码规律中P帧个数要求,则判定该帧为错误帧并进行下一步,否则进行第S317步;
S316、如果个数小于当前编码规律中规定的P帧个数,则直接抛弃该帧;
S317、如果个数大于当前编码规律中规定的P帧个数,则修改当前第一个P帧为I帧,并且拷贝步骤S313记录的参数帧一起作为新的图像帧;
S318、如果个数等于编码规律中的P帧个数,则直接进入S319步;
S319、保存并记录带有该图像帧号的参数信息,记录参数信息的长度和数据信息,将帧号作为该图像帧标识,直接进入过程S4。
7.如权利要求6所述的基于容错机制的多路视频解码方法,其特征在于,所述步骤S4具体包括如下步骤:
S401、动态申请视频图像帧的缓冲区大小buf;
S402、循环判断是否为解码结束,如果是则退出处理流程进行步骤S410,否则进行下一步;
S403、设置当前帧的参数:流结束标志符、帧头标志,帧尾标志;
S404、将图像帧号作为图像时间戳参数信息;
S405、将图像帧数据放入buf;
S406、调用动态库函数发送buf数据到解码模块;
S407、实时监控解码模块解码状态,如果解码状态数据结构中已解码的图像帧数与记录的图像帧数不一致,则表明有新的图像已解出,则进行下一步,否则进入到第S409步;
S408、获取解码后的图像时间戳信息,并与上一个过程保存的帧号进行相应配对,将解码图像和参数信息作为完整数据帧保存下来;
S409、查看复位标志是否置0,如果是则调用库函数停止解码接收数据,并销毁已申请的解码通道资源,再次创建新的解码通道,否则等待1ms再重复该过程;
S410、查看所有图像帧是否已解完,如果是则调用库函数停止发送视频流给解码模块,关闭解码通道,解绑各模块绑定关系,清除资源。
8.如权利要求1所述的基于容错机制的多路视频解码方法,其特征在于,该方法应用于linux系统。
9.如权利要求1所述的基于容错机制的多路视频解码方法,其特征在于,该方法对多路视频的处理提供了缓存机制和错误帧机制。
10.如权利要求1所述的基于容错机制的多路视频解码方法,其特征在于,该方法为防止解码错误导致解码模块无法继续解码,实时监控解码状态,根据解码结果软件重启解码模块恢复解码功能。
CN202110974450.0A 2021-08-24 基于容错机制的多路视频解码方法 Active CN113709496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110974450.0A CN113709496B (zh) 2021-08-24 基于容错机制的多路视频解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110974450.0A CN113709496B (zh) 2021-08-24 基于容错机制的多路视频解码方法

Publications (2)

Publication Number Publication Date
CN113709496A true CN113709496A (zh) 2021-11-26
CN113709496B CN113709496B (zh) 2024-07-09

Family

ID=

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11298857A (ja) * 1998-02-13 1999-10-29 Matsushita Electric Ind Co Ltd 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体
JP2006345046A (ja) * 2005-06-07 2006-12-21 Rohm Co Ltd 画像復号回路、画像復号システムおよびそれを搭載した電子機器
CN101998101A (zh) * 2009-08-31 2011-03-30 中兴通讯股份有限公司 可视电话的视频数据接收和发送系统、视频数据处理方法
US20140362928A1 (en) * 2013-06-05 2014-12-11 Texas Instruments Incorporated High Definition VP8 Decoder
CN104333762A (zh) * 2014-11-24 2015-02-04 成都瑞博慧窗信息技术有限公司 一种视频解码方法
CN106534889A (zh) * 2016-11-15 2017-03-22 北京工商大学 一种基于环形缓冲的实时流媒体多路转发方法
US20170105003A1 (en) * 2015-10-13 2017-04-13 Nokia Technologies Oy Video coding with helper data for spatial intra-prediction
CN108235096A (zh) * 2018-01-18 2018-06-29 湖南快乐阳光互动娱乐传媒有限公司 移动终端硬解码智能切换软解码播放视频的方法
CN112261460A (zh) * 2020-10-19 2021-01-22 天津津航计算技术研究所 一种基于pcie的多路视频解码方案设计方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11298857A (ja) * 1998-02-13 1999-10-29 Matsushita Electric Ind Co Ltd 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体
JP2006345046A (ja) * 2005-06-07 2006-12-21 Rohm Co Ltd 画像復号回路、画像復号システムおよびそれを搭載した電子機器
CN101998101A (zh) * 2009-08-31 2011-03-30 中兴通讯股份有限公司 可视电话的视频数据接收和发送系统、视频数据处理方法
US20140362928A1 (en) * 2013-06-05 2014-12-11 Texas Instruments Incorporated High Definition VP8 Decoder
CN104333762A (zh) * 2014-11-24 2015-02-04 成都瑞博慧窗信息技术有限公司 一种视频解码方法
US20170105003A1 (en) * 2015-10-13 2017-04-13 Nokia Technologies Oy Video coding with helper data for spatial intra-prediction
CN106534889A (zh) * 2016-11-15 2017-03-22 北京工商大学 一种基于环形缓冲的实时流媒体多路转发方法
CN108235096A (zh) * 2018-01-18 2018-06-29 湖南快乐阳光互动娱乐传媒有限公司 移动终端硬解码智能切换软解码播放视频的方法
CN112261460A (zh) * 2020-10-19 2021-01-22 天津津航计算技术研究所 一种基于pcie的多路视频解码方案设计方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EDUARDO ZUMMACH等: "Efficient Hardware Design for the AV1 CDEF Filter Targeting 4K UHD Videos", 《2020 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS)》, 28 September 2020 (2020-09-28) *
关春燕等: "基于BT.656的电视视频硬件解码的分析与实现", 《电子器件》, vol. 33, no. 3, 31 December 2010 (2010-12-31) *
张晓宁等: "基于HEVC帧内硬件编码器的架构及算法", 《火力与指挥控制》, no. 3, 12 May 2020 (2020-05-12) *

Similar Documents

Publication Publication Date Title
US10009628B2 (en) Tuning video compression for high frame rate and variable frame rate capture
US8918533B2 (en) Video switching for streaming video data
KR101012618B1 (ko) 이미징 시스템 내의 이미지들의 프로세싱
CN113645490B (zh) 一种软硬结合的多通道视频同步解码方法
US9167199B2 (en) Image input apparatus with high-speed, high-quality still image successive capturing capability and still image successive capturing method using the same
US10298931B2 (en) Coupling sample metadata with media samples
KR20080013674A (ko) 촬상 장치 및 방법
CN110662084B (zh) 一种mp4文件流直播的方法、移动终端及存储介质
US20150139614A1 (en) Input/output system for editing and playing ultra-high definition image
CN112292859A (zh) 在解码中使用带外流结尾nal单元的方法和装置
EP2589222A1 (en) Signaling video samples for trick mode video representations
CN113727114A (zh) 一种可转码的视频解码方法
CN113348666A (zh) 用于图块组识别的方法
CN115668914A (zh) 用于在视频流中用信号通知神经网络拓扑、参数和处理信息的技术
CN113709496B (zh) 基于容错机制的多路视频解码方法
CN115802045A (zh) 一种数据包过滤方法及基于数据包过滤方法的解码方法
CN113709496A (zh) 基于容错机制的多路视频解码方法
KR20160023777A (ko) 그래픽 처리기를 이용한 비디오 디코딩에 대한 픽처 참조 제어
CN113727116B (zh) 基于过滤机制的视频解码方法
CN114616801B (zh) 视频编码的方法、装置、设备以及存储介质
TW202220452A (zh) 用於視訊處理的方法及影像處理裝置
WO2022061194A1 (en) Method and system for real-time content-adaptive transcoding of video content on mobile devices
KR20190101579A (ko) 초고해상도 다채널 영상처리를 위한 재구성 가능한 영상 시스템
CN114667738B (zh) 视频流传输方法和用于视频流传输的装置
CN113747171B (zh) 一种自恢复的视频解码方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant