发明内容
本发明的目的在于克服现有技术的不足,提供了一种将稿件内容嵌入音视频中实现稿件同音视频的紧密绑定,在节目制作、播出、交换、媒资中,不再需要单独对文稿进行查询和检索,当需要文稿时,可以直接从对应的音视频节目中提取,从而提高工作效率的稿件内容嵌入视频实现文稿同视频关联的方法。
本发明的目的主要通过以下技术方案实现:稿件内容嵌入视频实现文稿同视频关联的方法,包括以下步骤:
步骤1、在文稿系统中完成稿件的创建、编辑及审核定稿,并在音视频非线性编辑系统中完成音视频节目的初步编辑;
步骤2、将定稿后的稿件内容相关数据嵌入到经过初步编辑的视频节目的视频帧中;
步骤3、在节目后续的制作、播出、交换或媒资管理中,根据需要,将视频文件中的文稿内容提取出来。
所述步骤2中采用视频水印加嵌算法将稿件内容相关数据嵌入视频文件的帧内,所述视频水印加嵌算法包括以下步骤:
步骤2.1、读取稿件内容,将稿件内容转换成二进制流,并以130字节为一块进行划分,最后不足130字节的作为一个单独的块,形成m块数据,每块数据的bit标记为F(k,n),其中,F(k,n)用来表示稿件二进制流中每块对应的位数据,k为块的序号,n为bit的序号,k=0、……、m – 1;
步骤2.2、读取视频节目源;
步骤2.3、对视频节目源进行解码得到视频帧数据,解码过程中按解码顺序对帧进行模m的计数,解码的帧数据采用YUV 4:2:2格式,取用Y亮度分量;
步骤2.4、对每帧数据,假设其帧序号为frameIndex,对帧序号为frameIndex的帧,其亮度分量Y按照列的奇偶性分成A、B两部分,其中,A是Y中奇数列构成的块,B是Y中偶数列构成的块;
步骤2.5、对A和B进行8*8分块,按照从左至右,从上至下的排列,得到分块序列Ai和Bi,其中,i为分块的序号,其上限就是8*8分块的总块数减1;
步骤2.6、计算frameIndex的帧内应当嵌入的bit流{ bj },其中j为比特流中每个bit对应的序号,j = 0、1、2、 ……、(byteNum+4)*8-1;
步骤2.7、将{ bj }嵌入到序号为frameIndex的帧中,形成一个新的视频帧;
步骤2.8、对得到的新的视频帧进行编码,恢复编码数据视频作为处理后的输出。
所述步骤2.2中的视频节目源为视频文件或媒体流。
所述步骤2.7包括以下步骤:
步骤2.7.1、对Ai和Bi进行8*8 DCT变换,得到dct(Ai)和dct(Bi),并提取dct(Ai)和dct(Bi)中的DC系数DC(Ai)和DC(Bi);
步骤2.7.2、比较DC(Ai)和DC(Bi)的大小:
如果| DC(Ai)-DC(Bi)| >= 500时,不做任何处理;
如果| DC(Ai)- DC(Bi)| < 200, 计算DCi = (DC(Ai)+ DC(Bi))/ 2,如果bj=0,则令DC(Ai)= DCi +100,DC(Bi)= DCi – 100,如果bj=1,则令DC(Ai)= DCi -100,DC(Bi)= DCi + 100;
如果| DC(Ai)- DC(Bi)| >= 200并且| DC(Ai)- DC(Bi)| < 500,如果DC(Ai)> DC(Bi),则令DC(Ai)= DCi +300,DC(Bi)= DCi – 300,否则令DC(Ai)= DCi - 300,DC(Bi)= DCi + 300;
步骤2.7.3、用新的DC(Ai)和DC(Bi)替换dct(Ai)和dct(Bi)中的相应DC系数,对所有帧中的dct(Ai)和dct(Bi)进行逆向dct变换,并重新作为奇偶列合并为新的亮度分量矩阵Y2,使用Y2与原色度分量合并成新的YUV帧数据。
其中,步骤2.8之前还包括判断j和i的值,如果j>=(130+4)*8-1,则令j=0,这表示该帧对应的文稿块数据全部嵌入后,再重新开发重复嵌入同一块的数据,用来做冗余计算。当i<8*8分块总数-1时,则重复上述步骤2.7至2.9。。
本发明将稿件内容转换成二进制流,并以130字节为一块进行划分,实现分块的目的是为了在每个块中分别嵌入稿件数据,130字节是按照目前电视台标清节目最低25M码流计算,每个视频帧中嵌入130个字节可以在对图像的影响及嵌入效率上基本平衡,即做到不对图像质量产生影响,同时做到有较高的嵌入效率,从而使本发明具备一定的抗干扰性。A和B都和视频帧图像亮度分量的高度相同,宽度减半。| DC(Ai)- DC(Bi)|越大,表示相邻像素的亮度差异越大,| DC(Ai)- DC(Bi)| >= 500也就表示图像在该区域的亮度变化剧烈,为了减少对图像亮度的影响,上述算法中对亮度剧烈变化的区域不做嵌入处理;| DC(Ai)- DC(Bi)| < 200表示该区域亮度变化不大,这时通过改变该区域的亮度值范围(100以内)来嵌入数据,不会引起图像亮度的明显变化;如果| DC(Ai)- DC(Bi)| >= 200且| DC(Ai) - DC(Bi)| < 500,表示该区域图像亮度变化比较大,在此也不嵌入数据,若DC(Ai)> DC(Bi),则令DC(Ai)= DCi +300,DC(Bi)= DCi – 300,若DC(Ai)≤ DC(Bi)则令DC(Ai)= DCi - 300,DC(Bi)= DCi + 300,该步骤是为了在嵌入位置和非嵌入位置划分出明显的亮度界限以大大减小错误提取的几率,300是一个实验最佳值,反复测试中发现对这样的区域使其亮度变化为300时视觉影响很小。
所述步骤2.2中的视频节目源为视频文件或媒体流。
所述{bj}由以下部分的数据组成:2个字节frameIndex、2个字节帧嵌入的文稿字节数byteNum及帧需要嵌入的文稿数据,其中,当frameIndex < m - 1时byteNum为130,否则byteNum为剩余块数据大小。其中,frameIndex和byteNum可以用1个字节表示,为了进行冗余计算,实现中各占用2byte,用来作冗余校验。
所述步骤3中将视频文件中的文稿内容采用比特位水印提取算法提取出来,所述比特位水印提取算法包括以下步骤:
步骤3.1、输入加嵌了文稿的视频节目源;
步骤3.2、对输入的视频节目源进行解码,生成视频帧数据,并对生成的视频帧亮度分量按照列的奇偶性分成两部分A’和B’,对A’和B’从左到右,从上至下进行8*8分块,得到分块序列A’i和B’i,其中,A’i是亮度分量中奇数列构成的块,B’i是亮度分量中偶数列构成的块,i为分块的序号,i = 0、1、2、……,其上限就是8*8分块的总块数减1;
步骤3.3、对A’i和B’i进行8*8 DCT变换,得到8*8序列dct(A’i)和dct(B’i);
步骤3.4、获取DC系数DC(A’i)和DC(B’i),计算DC(A’i)和DC(B’i)差的绝对值D,若D > 350,则不从该位置提取水印,在D≤ 350时,如果DC(A’i)> DC(B’i)则提取bit位为0,如果DC(A’i)≤ DC(B’i)时提取bit位为1;
步骤3.5、对每帧提取的bit数据按照嵌入时的数据块大小进行重复统计,对于每一个bit,以出现次数最多的值设为该bit位的值,将该帧所有正确的bit数据组合为文稿块数据{b’j},然后校验frameIndex和byteNum的重复字节是否取值相同,如果相同则将{b’j}作为合法数据块,否则该帧数据丢弃,其中j为比特流中每个bit对应的序号,j = 0、1、2、 ……、(byteNum+4)*8-1;
步骤3.6、重复采用步骤3.2至3.5提取每帧数据中的文稿数据,根据提取的{b’j}中的frameIndex进行统计合并,相同frameIndex的{b’j}相应位的数据取统计最大者形成最终的文稿分块数据Dk,其中k为块的序号,k = 1、2、……、m – 1;
步骤3.7、对Dk按照frameIndex进行合并得到正确的文稿内容。
其中,DC(A’i)和DC(B’i)差的绝对值D之所以取350,而不是上面嵌入时的200,是为了降低加嵌后对视频进行的编辑过程影响稿件内容的提取,提高鲁棒性。
与现有技术相比,本发明具有以下有益效果:(1)采用本发明工作时,稿件一旦经过审核后定稿,就可以将稿件嵌入到经过初步编辑的音视频节目中,后续需要时可以直接从当前音视频节目的图像帧中方便提取,从而后续的编辑和播出过程将不再需要文稿系统在线支持,即使文稿系统发生故障,也不影响已经准备好的节目的继续编辑和播出工作;由于在节目生产阶段已经将稿件嵌入到了视频中从而实现可稿件同视频节目的紧密绑定,在媒资入库时就不再需要单独对文稿进行入库,当需要文稿时,可以直接从对应的视频节目中提取,这样就减少了一个文稿上载、编目、入库检索等针对稿件的媒资管理环节,简化了业务流程,提高了工作效率。
(2)采用本发明将音视频节目文件与稿件进行绑定,通过本发明可以将稿件内容方便的嵌入到视频帧中,嵌入文稿的音视频质量不会因此发生下降,不影响后续编辑和播出过程,在任何需要的业务点上可以很方便的将文稿从音视频节目中提取出来。
实施例:
如图1所示,稿件内容嵌入视频实现文稿同视频关联的方法,包括以下步骤:在文稿系统中完成稿件的创建、编辑及审核定稿,并在音视频非线性编辑系统中完成音视频节目的初步编辑;将定稿后的稿件内容相关数据嵌入到经过初步编辑的视频节目的视频帧中;在节目后续的制作、播出、交换或媒资管理中,根据需要,将视频文件中的文稿内容提取出来。其中,在文稿系统中完成稿件的创建、编辑及审核定稿的具体过程为:在文稿系统中创建稿件、编辑稿件,并将编辑的稿件进行送审,在稿件审核过程中审核通过的稿件就可定稿,以便进行后序的稿件嵌入音视频节目中,而对于审核没有通过的稿件,再次返回到稿件编辑阶段。音视频编辑的具体过程为音视频摄录和编辑(包括裁剪、添加字幕、配音等)、嵌入如稿件内容、送审,节目审核通过后进入播出系统进行播出,最后进入媒资系统进行编目和归档。
稿件内容相关数据采用视频水印加嵌算法嵌入视频文件的帧内,其中,视频水印加嵌算法包括以下步骤:读取稿件内容,将稿件内容转换成二进制流,并以130字节为一块进行划分,最后不足130字节的作为一个单独的块,形成m块数据,每块数据的bit标记为F(k,n),其中,F(k,n)用来表示稿件二进制流中每块对应的位数据,k为块的序号,n为bit的序号,k=0、……、m – 1;读取视频节目源,具体视频节目源为视频文件或媒体流,此时读取的视频节目源也作为后续稿件数据嵌入的承载视频;对视频节目源进行解码得到视频帧数据,解码过程中按解码顺序对帧进行模m的计数,解码的帧数据采用YUV 4:2:2格式,取用Y亮度分量;对每帧数据,假设其帧序号为frameIndex,对帧序号为frameIndex的帧,其亮度分量Y按照列的奇偶性分成A、B两部分,其中,A是Y中奇数列构成的块,B是Y中偶数列构成的块;对A和B进行8*8分块,按照从左至右,从上至下的排列,得到分块序列Ai和Bi,其中,i为分块的序号,其上限就是8*8分块的总块数减1;计算frameIndex的帧内应当嵌入的bit流{bj},其中j为比特流中每个bit对应的序号,j = 0、1、2、 ……、(byteNum+4)*8-1,{bj}由以下部分的数据组成:2个字节frameIndex、2个字节帧嵌入的文稿字节数byteNum及帧需要嵌入的文稿数据,其中,当frameIndex < m - 1时byteNum为130,否则byteNum为剩余块数据大小;将{ bj }嵌入到序号为frameIndex的帧中,形成一个新的视频帧;对得到的新的视频帧进行编码,恢复编码数据视频作为处理后的输出。
其中,将{ bj }嵌入到序号为frameIndex的帧中,形成一个新的视频帧的具体过程为:对Ai和Bi进行8*8 DCT变换,得到dct(Ai)和dct(Bi),并提取dct(Ai)和dct(Bi)中的DC系数DC(Ai)和DC(Bi);比较DC(Ai)和DC(Bi)的大小:如果| DC(Ai)-DC(Bi)| >= 500时,不做任何处理;如果| DC(Ai)- DC(Bi)| < 200, 计算DCi = (DC(Ai)+ DC(Bi))/ 2,如果bj=0,则令DC(Ai)= DCi +100,DC(Bi)= DCi – 100,如果bj=1,则令DC(Ai)= DCi -100,DC(Bi)= DCi + 100;如果| DC(Ai)- DC(Bi)| >= 200并且| DC(Ai)- DC(Bi)| < 500,如果DC(Ai)> DC(Bi),则令DC(Ai)= DCi +300,DC(Bi)= DCi – 300,否则令DC(Ai)= DCi - 300,DC(Bi)= DCi + 300;用新的DC(Ai)和DC(Bi)替换dct(Ai)和dct(Bi)中的相应DC系数,对所有帧中的dct(Ai)和dct(Bi)进行逆向dct变换,并重新作为奇偶列合并为新的亮度分量矩阵Y2,使用Y2与原色度分量合并成新的YUV帧数据。
视频文件中的文稿内容采用比特位水印提取算法提取出来,其中,比特位水印提取算法包括以下步骤:输入加嵌了文稿的视频节目源;对输入的视频节目源进行解码,生成视频帧数据,并对生成的视频帧亮度分量按照列的奇偶性分成两部分A’和B’,对A’和B’从左到右,从上至下进行8*8分块,得到分块序列A’i和B’i ,其中,A’i是亮度分量中奇数列构成的块,B’i是亮度分量中偶数列构成的块,i为分块的序号,i = 0、1、2、……,其上限就是8*8分块的总块数减1;对A’i和B’i进行8*8 DCT变换,得到8*8序列dct(A’i)和dct(B’i);获取DC系数DC(A’i)和DC(B’i),计算DC(A’i)和DC(B’i)差的绝对值D,若D > 350,则不从该位置提取水印,在D≤ 350时,如果DC(A’i)> DC(B’i)则提取bit位为0,如果DC(A’i)≤ DC(B’i)时提取bit位为1;对每帧提取的bit数据按照嵌入时的数据块大小进行重复统计,对于每一个bit,以出现次数最多的值设为该bit位的值,将该帧所有正确的bit数据组合为文稿块数据{b’j},然后校验frameIndex和byteNum的重复字节是否取值相同,如果相同则将{b’j}作为合法数据块,否则该帧数据丢弃,其中j为比特流中每个bit对应的序号,j = 0、1、2、 ……、(byteNum+4)*8-1;重复提取每帧数据中的文稿数据,根据提取的{b’j}中的frameIndex进行统计合并,相同frameIndex的{b’j}相应位的数据取统计最大者形成最终的文稿分块数据Dk,其中k为块的序号,k = 1、2、……、m – 1;对Dk按照frameIndex进行合并得到正确的文稿内容。
如上所述,则能很好的实现本发明。