CN107566844B - 一种隐藏字幕处理方法和装置 - Google Patents
一种隐藏字幕处理方法和装置 Download PDFInfo
- Publication number
- CN107566844B CN107566844B CN201710794578.2A CN201710794578A CN107566844B CN 107566844 B CN107566844 B CN 107566844B CN 201710794578 A CN201710794578 A CN 201710794578A CN 107566844 B CN107566844 B CN 107566844B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- closed caption
- caption data
- directional predicted
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供的一种隐藏字幕处理方法和装置,属于图像处理领域。该隐藏字幕处理方法通过获取GOP帧类型信息,进而统计所述关键帧(I帧)的数量、所述前向预测编码帧(P帧)的数量和所述双向预测内插编码帧(B帧)的数量,再通过所获得的每类帧的数量插入所述目标隐藏字幕数据,从而使得用户无需先进行GOP乱序,以及无需耗费大量的FPGA存储资源,进而给用户带来了极大的便利。以及通过上述方式使得无需拆分原始的PES包,进一步节约了资源。
Description
技术领域
本发明涉及图像处理领域,具体而言,涉及一种隐藏字幕处理方法和装置。
背景技术
现有的CC(Closed Caption,隐藏字幕)在进行MEPG2(Moving Picture ExpertsGroup,活动图像专家组)编码时需要进行GOP(Group of Pictures)乱序,且现有的技术是根据GOP编码顺序和显示顺序的映射关系进行GOP乱序,将原始的IPB视频帧的顺序进行打乱,这样解码器在进行视频解码时会进行GOP重组,从而还原出正确顺序的CC字幕数据。然而在进行GOP乱序时需要耗费大量的FPGA(现场可编程逻辑门阵列)存储资源,并且逻辑实现非常复杂,以及在进行CC数据插入时需要拆分原始的PES包,在拆分的过程中需要缓存整个PES包的数据,因此还需要使用外部RAM来实现。因此,如何解决上述问题是目前的一个技术难题。
发明内容
本发明提供一种隐藏字幕处理方法和装置,旨在改善上述问题。
本发明提供的一种隐藏字幕处理方法,所述方法包括:获取视频数据中的视频流数据和目标隐藏字幕数据;获取所述视频流数据中的GOP帧类型信息;获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量;当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包;当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包;当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
优选地,所述的获取所述视频流数据中的GOP帧类型信息,所述GOP帧类型信息包括关键帧、前向预测编码帧和双向预测内插编码帧的步骤包括:查找所述视频流数据中的图片启动标志;获取所述图片启动标志之后的预设长度的目标字段;将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧;将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧;将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧。
优选地,所述的获取视频数据中的视频流数据和目标隐藏字幕数据的步骤包括:获取所述视频数据中的视频流数据;获取所述视频数据中的初始隐藏字幕数据;判断所述初始隐藏字幕数据是否携带有空包数据;若有所述空包数据,将所述空包数据进行过滤,获取过滤后的第一隐藏字幕数据;将所述第一隐藏字幕数据按照预设规则进行格式转换,获取第二隐藏字幕数据;将所述第二隐藏字幕数据作为所述目标隐藏字幕数据。
优选地,所述的判断所述初始隐藏字幕数据是否携带有空包数据的步骤包括:根据EIA608/708协议中的预设函数获取所述初始隐藏字幕数据中的字节结果信息;根据所述结果信息判断所述初始隐藏字幕数据是否携带有空包数据。
优选地,所述方法还包括:刷新所述视频流数据的连续计数器。
本发明提供的一种隐藏字幕处理装置,包括:第一数据获取单元,用于获取视频数据中的视频流数据和目标隐藏字幕数据;数据提取单元,用于获取所述视频流数据中的GOP帧类型信息;数据统计单元,用于获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量;第一判断单元,用于当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包;第二判断单元,用于当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包;第三判断单元,用于当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
优选地,所述数据统计单元具体用于:查找所述视频流数据中的图片启动标志;获取所述图片启动标志之后的预设长度的目标字段;将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧;将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧;将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧。
优选地,所述第一数据获取单元包括:第一子单元,用于获取所述视频数据中的视频流数据;第二子单元,用于获取所述视频数据中的初始隐藏字幕数据;第三子单元,用于判断所述初始隐藏字幕数据是否携带有空包数据;第四子单元,用于若有所述空包数据,将所述空包数据进行过滤,获取过滤后的第一隐藏字幕数据;第五子单元,用于将所述第一隐藏字幕数据按照预设规则进行格式转换,获取第二隐藏字幕数据;第六子单元,用于将所述第二隐藏字幕数据作为所述目标隐藏字幕数据。
优选地,所述第三子单元具体用于:根据EIA608/708协议中的预设函数获取所述初始隐藏字幕数据中的字节结果信息;根据所述结果信息判断所述初始隐藏字幕数据是否携带有空包数据。
优选地,所述装置还包括:刷新单元,用于刷新所述视频流数据的连续计数器。
上述本发明提供的一种隐藏字幕处理方法和装置,通过获取GOP帧类型信息,进而统计所述关键帧的数量、所述前向预测编码帧的数量和所述双向预测内插编码帧的数量,再通过所获得的每类帧的数量插入所述目标隐藏字幕数据,从而使得用户无需先进行GOP乱序,以及无需耗费大量的FPGA(现场可编程逻辑门阵列)存储资源,进而给用户带来了极大的便利。以及通过上述方式使得无需拆分原始的PES包,进一步节约了资源。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的结构框图;
图2为本发明第一实施例提供的一种隐藏字幕处理方法的流程图;
图3为图2所示的一种隐藏字幕处理方法的一种实施流程图;
图4为图2所示的一种隐藏字幕处理方法的插入目标隐藏字幕数据的示意图;
图5为本发明第二实施例提供的一种隐藏字幕处理方法的流程图;
图6为图5所示的一种隐藏字幕处理方法的一种实施流程图;
图7为本发明第三实施例提供的一种隐藏字幕处理装置的功能结构示意图;
图8为本发明第四实施例提供的一种隐藏字幕处理装置的功能结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种电子设备的结构框图。所述电子设备300包括隐藏字幕处理装置、存储器302、存储控制器303、处理器304及外设接口305。
所述存储器302、存储控制器303、处理器304及外设接口305各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述隐藏字幕处理装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器302中或固化在所述电子设备300的操作系统(operating system,OS)中的软件功能模块。所述处理器304用于执行存储器302中存储的可执行模块,例如所述隐藏字幕处理装置包括的软件功能模块或计算机程序。
其中,存储器302可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器302用于存储程序,所述处理器304在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器100所执行的方法可以应用于处理器304中,或者由处理器304实现。
处理器304可能是一种集成电路芯片,具有信号的处理能力。上述的处理器304可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口305将各种输入/输入装置耦合至处理器304以及存储器302。在一些实施例中,外设接口305、处理器304以及存储控制器303可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
请参阅图2,是本发明第一实施例提供的一种隐藏字幕处理方法的流程图。下面将对图2所示的具体流程进行详细阐述。
步骤S301,获取视频数据中的视频流数据和目标隐藏字幕数据。
其中,所述视频流数据是指TS(Transport Stream)流数据。所述目标隐藏字幕数据是指所述视频数据中所携带的隐藏字幕数据,且所述隐藏字幕数据为经过预先处理后的数据,例如,所述目标隐藏字幕数据为对所述隐藏字幕数据经过过滤空包的操作所得到的。
例如,如图3所示,在本实施例中,可以通过BT656视频数据解析模块从所输入的BT656视频数据中获取到隐藏字幕数据。接着再通过所述CC数据处理模块对所述隐藏字幕数据进行空包过滤,以获取目标隐藏字幕数据。其中,CC是指(Closed Caption,隐藏字幕)。
步骤S302,获取所述视频流数据中的GOP帧类型信息。
在本实施例中,所述GOP(Group of Pictures)帧类型信息是指GOP帧的具体类型信息。
作为一种实施方式,可以先通过查找所述视频流数据中的图片启动标志(picturedata start code);然后获取所述图片启动标志(picture data start code)之后的预设长度的目标字段;再将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧;接着将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧;最后将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧。从而获取所述GOP帧类型信息。
其中,所述图片启动标志(picture data start code)是指0x00 0x00 0x01 0x00字段。
其中,预设长度为3字节。具体地,通过获取所述图片启动标志(picture datastart code)后的第2个字节的bit5-3(3bit)的字段,所获取到的字段为目标字段。
其中,所述第一字段是指000,即当所获得的目标字段与所述第一字段000匹配时,判定所述目标字段为关键帧(I帧)。所述第二字段是指010,即当所获得的目标字段与所述第二字段010匹配时,判定所述目标字段为前向预测编码帧(P帧)。所述第三字段是指011,即当所获得的目标字段与所述第三字段011匹配时,判定所述目标字段为双向预测内插编码帧(B帧)。
在本实施例中,为了方便将所述目标隐藏字幕数据插入到所述关键帧(I帧)、前向预测编码帧(P帧)和双向预测内插编码帧(B帧)中,优选地,还需要获取到PES的头标志,在MEPG2协议中0x00 0x00 0x01 0xE0表示视频PES包的头。
例如,如图3所示,通过所述MPEG2协议解析模块对所述视频数据中的TS流进行解析,从而获取GOP帧类型信息。即通过获取输入的TS流数据,再对所述TS流数据进行解析,从而获取出GOP帧类型、PES包头标志等数据。
步骤S303,获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量。
在本实施例中,所述关键帧(I帧)的数量可以通过在每识别一次所述关键帧(I帧)的时候记录一次,进而直到所述GOP帧类型信息中的各个帧都提取完成为止,通过累加的方式获取所述关键帧(I帧)的数量。同理,所述前向预测编码帧(P帧)的数量和所述双向预测内插编码帧(B帧)的数量也可以按照上述方式进行获取。
需要说明的是,上述获取方式仅仅为一个实施方式,不用于限定本发明。
步骤S304,判断所述双向预测内插编码帧的数量是否大于所述关键帧的数量与所述前向预测编码帧的数量之和。
将所获取到的双向预测内插编码帧(B帧)的数量与所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和进行比对,进而判断所述双向预测内插编码帧(B帧)的数量是否大于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和。
步骤S305,当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包。
其中,所述空包是指字节为空的数据。
例如,当所述GOP帧的长度为13,且GOP=IPBBB时,在全部视频帧中I帧、P帧、B帧所占的比例分别为:1/5、1/5、3/5,因此B帧的数量比I帧与P帧之和大,因此,把目标隐藏字幕数据插入到B帧中,在I帧和P帧中需要插入空包。如图4所示中的GOP=IPBBB时,在该列下,分别为每个I帧和P帧中插入空包,为每个B帧中插入目标隐藏字幕数据,即图4中所述的正常插入。或者是图4所示中的GOP=IPBB,当所述双向预测内插编码帧(B帧)的数量大于或等于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧(B帧)中,并且分别为所述关键帧(I帧)和所述前向预测编码帧(P帧)插入空包。
步骤S306,当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包。
即当B帧比I+P帧少时则将目标隐藏字幕数据插入在I帧和P帧中,在B帧中插入空包。例如,图4所示的GOP=IPB,此时,B帧的数量小于所述I帧+P帧之和,则将所述目标隐藏字幕数据插入在I帧和P帧中,在B帧中插入空包。
步骤S307,当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
所述双向预测内插编码帧(B帧)的数量为零是指所述GOP帧类型信息中不含有所述双向预测内插编码帧(B帧)。例如,如图4所述的GOP=IP,此时,B帧的数量为零,则将所述目标隐藏字幕数据插入在I帧和P帧中。
在本实施例中,由于隐藏字幕数据字幕不可能满屏显示,一般情况下最多显示3-4行,每行最多30个字符,因此每帧最多30*4=120字符,由于每行字幕都会在屏幕上停留几秒钟,例如,以最短1秒钟来计算相当于每秒最多传输120个字符。
例如,对于708隐藏字幕数据,以最大帧率60hz计算,并且每帧场消隐区插入的都是有效包,cc count为最大值31,则码率最大为31*3*60=5580byte/s。
由于隐藏字幕数据的数据量不大,假设极限情况下最大120bytes/s,而708隐藏字幕数据理论支持最大码率为5580bytes/s,因此可以简化逻辑,不进行GOP乱序,仅将隐藏字幕数据插入在I/P帧中,或者只插入在B帧中。当B帧小于I+P帧之和时,则将有效隐藏字幕数据插入在I和P帧中,在B帧中插入空包;当B帧大于或等于I+P帧之和时,则将有效隐藏字幕数据插入在B帧中,在I帧和P帧中插入空包。
设GOP的长度为N,B帧的个数为m,P帧的总个数为x,则满足以下关系:
N=(m+1)*x+1,(m≥0,x≥1);
利用率(use_ratio)和码率最大值(max_rate)计算公式如下:
max_rate=use_ratio*5580byte/s;
当B帧个数为0时,即m=0,此时利用率为100%。
当B帧个数为1时,即m=1,很显然B帧个数小于I+P,则:
0.5<use_ratio≤2/3;
当B帧个数为2时,即m=2,很显然B帧个数等于I+P,则:
0.5<use_ratio≤2/3;
当B帧个数大于2时,即m≥3,很显然B帧个数大于I+P,则:
由于m≥3,则use_ratio≥0.6。
通过以上计算发现,对于任何类型的GOP均能满足最大120bytes/s的隐藏字幕数据极限码率情况。
请参阅图6,是本发明第二实施例提供的一种隐藏字幕处理方法的流程图。下面将对图6所示的具体流程进行详细阐述。
步骤S401,获取视频数据中的视频流数据和目标隐藏字幕数据。
步骤S402,获取所述视频流数据中的GOP帧类型信息。
步骤S403,获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量。
步骤S404,判断所述双向预测内插编码帧的数量是否大于所述关键帧的数量与所述前向预测编码帧的数量之和。
步骤S405,当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包。
步骤S406,当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包。
步骤S407,当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
步骤S401至步骤S407的具体实施方式请参照第一实施例中所对应的步骤,在此,不再赘述。
步骤S408,刷新所述视频流数据的连续计数器。
在本实施例中,通过将每帧目标隐藏字幕数据插入到GOP中,从而使得所述每帧目标隐藏字幕数据被封装成1个独立的TS包,因此打乱了原始视频TS流的连续计数器顺序,为了重新获取到顺序,优选地,刷新所述视频流数据的连续计数器。
例如,如图6所示,当通过所述MPEG2封包和CC插入模块处理后,即将所述目标隐藏字幕数据插入到GOP中,再通过所述连续计算器刷新模块进行刷新后,将TS流数据输出。
请参阅图7,是本发明第三实施例提供的一种隐藏字幕处理装置的功能模块示意图。所述隐藏字幕处理装置500包括第一数据获取单元510、数据提取单元520、数据统计单元530、第一判断单元540、第二判断单元550和第三判断单元560。
第一数据获取单元510,用于获取视频数据中的视频流数据和目标隐藏字幕数据。
数据提取单元520,用于获取所述视频流数据中的GOP帧类型信息。
数据统计单元530,用于获取所述GOP帧类型信息中的关键帧(I帧)的数量、前向预测编码帧(P帧)的数量和双向预测内插编码帧(B帧)的数量。
其中,所述数据统计单元530具体用于:查找所述视频流数据中的图片启动标志(picture data start code);获取所述图片启动标志(picture data start code)之后的预设长度的目标字段;将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧(I帧);将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧(P帧);将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧(B帧)。
第一判断单元540,用于当所述双向预测内插编码帧(B帧)的数量大于或等于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧(B帧)中,并且分别为所述关键帧(I帧)和所述前向预测编码帧(P帧)插入空包。
第二判断单元550,用于当所述双向预测内插编码帧(B帧)的数量小于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧(I帧)和所述前向预测编码帧(P帧)中,并且为所述双向预测内插编码帧(B帧)中插入空包。
第三判断单元560,用于当所述双向预测内插编码帧(B帧)的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧(I帧)和所述前向预测编码帧(P帧)中。
请参阅图8,是本发明第四实施例提供的一种隐藏字幕处理装置的功能模块示意图。所述隐藏字幕处理装置600包括第一数据获取单元610、数据提取单元620、数据统计单元630、第一判断单元640、第二判断单元650、第三判断单元660和刷新单元670。
第一数据获取单元610,用于获取视频数据中的视频流数据和目标隐藏字幕数据。
其中,所述第一数据获取单元610包括:第一子单元611、第二子单元612、第三子单元613、第四子单元614、第五子单元615和第六子单元616。
第一子单元611,用于获取所述视频数据中的视频流数据。
第二子单元612,用于获取所述视频数据中的初始隐藏字幕数据。
第三子单元613,用于判断所述初始隐藏字幕数据是否携带有空包数据。
其中,所述第三子单元613具体用于:根据EIA608/708协议中的预设函数获取所述初始隐藏字幕数据中的字节结果信息;根据所述结果信息判断所述初始隐藏字幕数据是否携带有空包数据。
第四子单元614,用于若有所述空包数据,将所述空包数据进行过滤,获取过滤后的第一隐藏字幕数据。
第五子单元615,用于将所述第一隐藏字幕数据按照预设规则进行格式转换,获取第二隐藏字幕数据。
第六子单元616,用于将所述第二隐藏字幕数据作为所述目标隐藏字幕数据。
数据提取单元620,用于获取所述视频流数据中的GOP帧类型信息。
数据统计单元630,用于获取所述GOP帧类型信息中的关键帧(I帧)的数量、前向预测编码帧(P帧)的数量和双向预测内插编码帧(B帧)的数量。
其中,所述数据统计单元630具体用于:查找所述视频流数据中的图片启动标志(picture data start code);获取所述图片启动标志(picture data start code)之后的预设长度的目标字段;将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧(I帧);将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧(P帧);将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧(B帧)。
第一判断单元640,用于当所述双向预测内插编码帧(B帧)的数量大于或等于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧(B帧)中,并且分别为所述关键帧(I帧)和所述前向预测编码帧(P帧)插入空包。
第二判断单元650,用于当所述双向预测内插编码帧(B帧)的数量小于所述关键帧(I帧)的数量与所述前向预测编码帧(P帧)的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧(I帧)和所述前向预测编码帧(P帧)中,并且为所述双向预测内插编码帧(B帧)中插入空包。
第三判断单元660,用于当所述双向预测内插编码帧(B帧)的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧(I帧)和所述前向预测编码帧(P帧)中。
刷新单元670,用于刷新所述视频流数据的连续计数器。
综上所述,本发明提供一种隐藏字幕处理方法和装置,通过获取GOP帧类型信息,进而统计所述关键帧(I帧)的数量、所述前向预测编码帧(P帧)的数量和所述双向预测内插编码帧(B帧)的数量,再通过所获得的每类帧的数量插入所述目标隐藏字幕数据,从而使得用户无需先进行GOP乱序,以及无需耗费大量的FPGA(现场可编程逻辑门阵列)存储资源,进而给用户带来了极大的便利。以及通过上述方式使得无需拆分原始的PES包,进一步节约了资源。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和流程图中的每个方框、以及框图和流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种隐藏字幕处理方法,其特征在于,包括:
获取视频数据中的视频流数据和目标隐藏字幕数据;
获取所述视频流数据中的GOP帧类型信息;
获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量;
当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包;
当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包;
当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
2.根据权利要求1所述的方法,其特征在于,所述的获取所述视频流数据中的GOP帧类型信息,所述GOP帧类型信息包括关键帧、前向预测编码帧和双向预测内插编码帧的步骤包括:
查找所述视频流数据中的图片启动标志;
获取所述图片启动标志之后的预设长度的目标字段;
将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧;
将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧;
将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧。
3.根据权利要求1所述的方法,其特征在于,所述的获取视频数据中的视频流数据和目标隐藏字幕数据的步骤包括:
获取所述视频数据中的视频流数据;
获取所述视频数据中的初始隐藏字幕数据;
判断所述初始隐藏字幕数据是否携带有空包数据;
若有所述空包数据,将所述空包数据进行过滤,获取过滤后的第一隐藏字幕数据;
将所述第一隐藏字幕数据按照预设规则进行格式转换,获取第二隐藏字幕数据;
将所述第二隐藏字幕数据作为所述目标隐藏字幕数据。
4.根据权利要求3所述的方法,其特征在于,所述的判断所述初始隐藏字幕数据是否携带有空包数据的步骤包括:
根据EIA608/708协议中的预设函数获取所述初始隐藏字幕数据中的字节结果信息;
根据所述结果信息判断所述初始隐藏字幕数据是否携带有空包数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
刷新所述视频流数据的连续计数器。
6.一种隐藏字幕处理装置,其特征在于,包括:
第一数据获取单元,用于获取视频数据中的视频流数据和目标隐藏字幕数据;
数据提取单元,用于获取所述视频流数据中的GOP帧类型信息;
数据统计单元,用于获取所述GOP帧类型信息中的关键帧的数量、前向预测编码帧的数量和双向预测内插编码帧的数量;
第一判断单元,用于当所述双向预测内插编码帧的数量大于或等于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据插入到每个所述双向预测内插编码帧中,并且分别为所述关键帧和所述前向预测编码帧插入空包;
第二判断单元,用于当所述双向预测内插编码帧的数量小于所述关键帧的数量与所述前向预测编码帧的数量之和时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中,并且为所述双向预测内插编码帧中插入空包;
第三判断单元,用于当所述双向预测内插编码帧的数量为零时,将所述目标隐藏字幕数据分别插入到每个所述关键帧和所述前向预测编码帧中。
7.根据权利要求6所述的装置,其特征在于,所述数据统计单元具体用于:
查找所述视频流数据中的图片启动标志;
获取所述图片启动标志之后的预设长度的目标字段;
将所述目标字段与预设的第一字段进行匹配,将所匹配的目标字段作为所述关键帧;
将所述目标字段与预设的第二字段进行匹配,将所匹配的目标字段作为所述前向预测编码帧;
将所述目标字段与预设的第三字段进行匹配,将所匹配的目标字段作为所述双向预测内插编码帧。
8.根据权利要求6所述的装置,其特征在于,所述第一数据获取单元包括:
第一子单元,用于获取所述视频数据中的视频流数据;
第二子单元,用于获取所述视频数据中的初始隐藏字幕数据;
第三子单元,用于判断所述初始隐藏字幕数据是否携带有空包数据;
第四子单元,用于若有所述空包数据,将所述空包数据进行过滤,获取过滤后的第一隐藏字幕数据;
第五子单元,用于将所述第一隐藏字幕数据按照预设规则进行格式转换,获取第二隐藏字幕数据;
第六子单元,用于将所述第二隐藏字幕数据作为所述目标隐藏字幕数据。
9.根据权利要求8所述的装置,其特征在于,所述第三子单元具体用于:
根据EIA608/708协议中的预设函数获取所述初始隐藏字幕数据中的字节结果信息;
根据所述结果信息判断所述初始隐藏字幕数据是否携带有空包数据。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
刷新单元,用于刷新所述视频流数据的连续计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710794578.2A CN107566844B (zh) | 2017-09-05 | 2017-09-05 | 一种隐藏字幕处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710794578.2A CN107566844B (zh) | 2017-09-05 | 2017-09-05 | 一种隐藏字幕处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566844A CN107566844A (zh) | 2018-01-09 |
CN107566844B true CN107566844B (zh) | 2019-05-14 |
Family
ID=60979195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710794578.2A Active CN107566844B (zh) | 2017-09-05 | 2017-09-05 | 一种隐藏字幕处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566844B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1663247A (zh) * | 2002-04-24 | 2005-08-31 | 汤姆森许可公司 | 用于闭路字幕插入的辅助信号同步 |
CN1905618A (zh) * | 2005-07-25 | 2007-01-31 | 三星电子株式会社 | 用于显示隐藏字幕数据的广播接收装置及其方法 |
CN102547300A (zh) * | 2010-12-17 | 2012-07-04 | 华为技术有限公司 | 帧类型的检测方法和装置 |
CN102986218A (zh) * | 2010-07-13 | 2013-03-20 | 高通股份有限公司 | 用于串流视频数据的视频切换 |
-
2017
- 2017-09-05 CN CN201710794578.2A patent/CN107566844B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1663247A (zh) * | 2002-04-24 | 2005-08-31 | 汤姆森许可公司 | 用于闭路字幕插入的辅助信号同步 |
CN1905618A (zh) * | 2005-07-25 | 2007-01-31 | 三星电子株式会社 | 用于显示隐藏字幕数据的广播接收装置及其方法 |
CN102986218A (zh) * | 2010-07-13 | 2013-03-20 | 高通股份有限公司 | 用于串流视频数据的视频切换 |
CN102547300A (zh) * | 2010-12-17 | 2012-07-04 | 华为技术有限公司 | 帧类型的检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107566844A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6410899B2 (ja) | メディアファイルの生成装置、生成方法、及びプログラム | |
CN104540000B (zh) | 一种动态缩略图的生成方法及终端 | |
TWI712316B (zh) | 視訊摘要的生成方法及裝置 | |
CN104837031B (zh) | 一种高速自适应提取视频关键帧的方法 | |
CN110147469B (zh) | 一种数据处理方法、设备及存储介质 | |
JP2018523886A (ja) | 解析装置、解析方法、及びプログラム | |
CN109819161A (zh) | 一种帧率的调整方法、装置、终端及可读存储介质 | |
CN111988561B (zh) | 视频分析的自适应调整方法、装置、计算机设备和介质 | |
CN107155093B (zh) | 一种视频预览方法、装置及设备 | |
CN109327715B (zh) | 一种视频风险识别方法、装置及设备 | |
CN107426603A (zh) | 一种视频播放方法及装置 | |
CN106507217A (zh) | 视频流的时间戳的处理方法和装置 | |
CN109922319A (zh) | 基于多核cpu的rtsp协议多视频流并行预处理方法 | |
US20160073113A1 (en) | Skipped macroblock video encoding enhancements | |
CN109348309A (zh) | 一种适用于帧率上变换的分布式视频转码方法 | |
CN107566844B (zh) | 一种隐藏字幕处理方法和装置 | |
CN104751107A (zh) | 一种视频关键数据确定方法、装置及设备 | |
CN108184101B (zh) | 处理视频的设备和方法 | |
CN103927341B (zh) | 一种获取场景信息的方法及装置 | |
KR101349487B1 (ko) | 패킷의 길이가 가변적인 mpeg-2 트랜스포트 패킷 생성 장치 및 방법 | |
CN116095271A (zh) | 一种自循环监控系统 | |
CN112637538B (zh) | 用于优化视频分析的智能标签方法、系统、介质及终端 | |
CN109842812A (zh) | 一种多应用节目的优先排序方法、智能电视及存储介质 | |
CN110213650A (zh) | 一种软件快速搜索视频码流中同步字的方法及装置 | |
CN104750863B (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 | ||
GR01 | Patent grant |