实时转码、解码方法及其装置制造方法
【专利摘要】本发明涉及视频监控领域,公开了一种实时转码、解码方法及其装置。本发明中,包括以下步骤:把一个完整画面切割成N个子画面,N为大于等于2的整数;在多个处理器或多个处理器内核中将N个子画面并行实时编码后封装在一起,其中包括每个子画面的位置信息。通过将超高分辨率画面进行切割成多个子画面,然后再对多个子画面进行并行实时编码的方法,可以充分利多个CPU或多核CPU完成超高分辨率画面实时转码。
【专利说明】实时转码、解码方法及其装置
【技术领域】
[0001] 本发明涉及视频监控领域,特别涉及视频拼接系统中超高分辨率视频的实时转码 技术。
【背景技术】
[0002] 究其原因,高分辨率视频转码的瓶颈在于视频编解码无法有效使用多处理器或是 处理器多核并行技术,编解码的效率依赖于处理器的主频。究其原因,高分辨率视频转码的 瓶颈在于视频编解码无法有效使用多处理器或是处理器多核并行技术,编解码的效率依赖 于处理器的主频。以H. 264解码为例,H. 264解码的主要计算量集中在熵解码、运动补偿、反 量化反变换、Intra预测、环路滤波等5个步骤中。其中,熵解码部分是对比特流进行顺序 操作;Intra预测与反量化反变换之间存在空间依赖性;环路滤波存在空间依赖性。因此, H. 264除了运动补偿以外大部分处理都难以进行有效的宏块级并行化操作。
[0003] 以4路1080P摄像机执行横向拼接为例,简单来说,长度达到4*1920=7680像素, 宽度仍然为1080像素,对于7680*1080这样的分辨率,就普通民用或商用的处理器而言,无 论是X86处理器还是嵌入式处理器的主频,都是无法达到实时转码需要的。
【发明内容】
[0004] 本发明的目的在于提供一种实时转码、解码方法及其装置,可以充分利多个CPU 或多核CPU完成超高分辨率画面实时转码。
[0005] 为解决上述技术问题,本发明的实施方式公开了一种实时转码方法,包括以下步 骤:
[0006] 把一个完整画面切割成N个子画面,N为大于等于2的整数;
[0007] 在多个处理器或多个处理器内核中将N个子画面并行实时编码;
[0008] 将N个子画面的编码结果和表示该N个子画面相对位置关系的信息封装在一起。
[0009] 本发明的实施方式还公开了一种实时解码方法,包括以下步骤:
[0010] 对包含N个子画面的封装数据进行解封装,该封装数据中包括表示该N个子画面 相对位置关系的信息,N为大于等于2的整数;
[0011] 在多个处理器或多个处理器内核中对解析出的N个子画面进行并行实时解码;
[0012] 根据表示该N个子画面相对位置关系的信息将N个子画面的解码结果重新拼接成 一个完整画面。
[0013] 本发明的实施方式还公开了一种实时转码装置,包括:
[0014] 切割单元,用于把一个完整画面切割成N个子画面,N为大于等于2的整数;
[0015] 编码单元,用于在多个处理器或多个处理器内核中将切割单元切割成的N个子画 面并行实时编码;
[0016] 封装单元,用于将编码单元输出的N个子画面的编码结果和表示该N个子画面相 对位置关系的信息封装在一起。
[0017] 本发明的实施方式还公开了一种实时解码装置,包括:
[0018] 解封装单元,用于对包含N个子画面的封装数据进行解封装,该封装数据中包括 表示该N个子画面相对位置关系的信息,N为大于等于2的整数;
[0019] 解码单元,用于在多个处理器或多个处理器内核中对解封装单元解析出的N个子 画面进行并行实时解码;
[0020] 拼接单元,用于根据表示该N个子画面相对位置关系的信息将解码单元输出的N 个子画面的解码结果重新拼接成一个完整画面。
[0021] 本发明实施方式与现有技术相比,主要区别及其效果在于:
[0022] 通过将超高分辨率画面进行切割成多个子画面,然后再对多个子画面进行并行实 时编码的方法,可以充分利多个CPU或多核CPU完成超高分辨率画面实时转码。
[0023] 进一步地,通过将超高分辨率画面切割成正常分辨率的子画面,可以使用主流的 处理器进行实时编码,而且只要使用多处理器系统或者单处理器多核系统,就可以实现对 多路子画面的并行实时编码。
[0024] 进一步地,视频拼接后形成的一般都是高分辨率或超高分辨率画面,如果要保持 拼接前视频的全帧率或高帧率,以现有的处理器能力是无法进行实时编码的。
【专利附图】
【附图说明】
[0025] 图1是本发明第一实施方式中一种实时转码方法的流程示意图;
[0026] 图2是本发明第二实施方式中一种实时解码方法的流程示意图;
[0027] 图3是4路1080P摄像机画面的示意图;
[0028] 图4是4路1080P摄像机画面的示意图,图中阴影区域是和相邻画面的重叠区域;
[0029] 图5是将4路1080P摄像机画面拼接在一起的不意图,将重置部分重置在一起;
[0030] 图6是视频拼接完成得到的拼接画面示意图;
[0031] 图7是拼接后画面再切割、编码和封装的流程示意图;
[0032] 图8是拼接后形成的拼接复合流数据还原播放显示的流程示意图;
[0033] 图9是本发明第三实施方式中一种实时转码装置的结构示意图;
[0034] 图10是本发明第四实施方式中一种实时解码装置的结构示意图。
【具体实施方式】
[0035] 在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本 领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化 和修改,也可以实现本申请各权利要求所要求保护的技术方案。
[0036] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施 方式作进一步地详细描述。
[0037] 先对本发明涉及的几个概念进行解释:
[0038] 视频拼接技术:是将数段有重叠部分的视频拼成一段大型的无缝高分辨率视频的 技术。
[0039] 转码:是指将音视频数据从一种封装格式或编码格式转换为另一种封装格式或编 码格式。
[0040] 实时转码:是指转码前后的视频数据的帧率满足全帧率,且转码过程中,单位数据 的转码时间快于或等于等待转码单位数据的输入速度。
[0041] 本发明第一实施方式涉及一种实时转码方法。图1是该实时转码方法的流程示意 图。
[0042] 具体地说,如图1所示,该实时转码方法包括以下步骤:
[0043] 在步骤101中,把一个完整画面切割成N个子画面,N为大于等于2的整数。
[0044] 优选地,在本实施方式中,完整画面是将来自多个摄像机的多路码流拼接在一起, 并去除重叠部分所形成的画面。
[0045] 此外,可以理解,但不以此为限,以任何手段得到的超高分辨率视频信号都可以使 用于本实时转码方法。
[0046] 进一步地,优选地,N个子画面间没有重叠部分。
[0047] 此外,可以理解,在本发明的其它某些实施方式中,也可以是仅有少部分重叠的N 个子画面。
[0048] 在本实施方式中,优选地,N=4。
[0049] 此外,可以理解,这只是一种优选的实施方式,在本发明的其它某些实施方式中,N 也可以为其它的整数,而不以此为限。
[0050] 进一步地,优选地,完整画面的分辨率为7200* 1080,每个子画面的分辨率为 1800*1080,帧率为PAL制全帧率。
[0051] 本实施方式中,以4路1080P摄像机执行横向拼接为例,拼接长度达到 4*1920=7680像素,宽度仍然为1080像素。由于在拼接的过程中,需要将4路视频数据与相 邻视频的重叠部分重叠在一起,所以,假定拼接后形成的超高分辨率视频信号的分辨率为 7200*1080,帧率仍然保持拼接前的帧率,即仍然为25帧/秒。
[0052] 视频拼接后形成的一般都是高分辨率或超高分辨率画面,如果要保持拼接前视频 的全帧率或高帧率,以现有的处理器能力是无法进行实时编码的。
[0053] 通过将超高分辨率画面切割成正常分辨率的子画面,可以使用主流的处理器进行 实时编码,而且只要使用多处理器系统或者单处理器多核系统,就可以实现对多路子画面 的并行实时编码。
[0054] 此后进入步骤102,在多个处理器或多个处理器内核中将N个子画面并行实时编 码。
[0055] 此后进入步骤103,将N个子画面的编码结果和表示该N个子画面相对位置关系的 信息封装在一起。
[0056] 此后结束本流程。
[0057] 对N路编码后的数据进行统一封装,使用Program Stream (PS)或Transport Stream (TS)此类允许多路元素流的封装格式,在封装的过程中,可以使用封装格式标准 允许的私有数据对每一路元素流打上标识,用于标识该路视频画面在整个拼接画面中的位 置。
[0058] 在这里只是对实时编码后的N个子画面进行简单封装在一起。
[0059] 通过将超高分辨率画面进行切割成多个子画面,然后再对多个子画面进行并行实 时编码的方法,可以充分利多个CPU或多核CPU完成超高分辨率画面实时转码。
[0060] 该实时转码方法不仅可以应用于存在多个摄像机的视频监控中,也可以应用于手 机系统中,例如现在的多核手机。
[0061] 本发明第二实施方式涉及一种实时解码方法。图2是该实时解码方法的流程示意 图。
[0062] 具体地说,如图2所示,该实时解码方法包括以下步骤:
[0063] 在步骤201中,对包含N个子画面的封装数据进行解封装,该封装数据中包括表示 该N个子画面相对位置关系的信息,N为大于等于2的整数。
[0064] 优选地,封装数据是利用本发明第一实施方式中的实时转码方法将N个子画面并 行实时编码后封装在一起所形成的封装数据。
[0065] 此后进入步骤202,在多个处理器或多个处理器内核中对解析出的N个子画面进 行并行实时解码。
[0066] 此后进入步骤203,根据表示该N个子画面相对位置关系的信息将N个子画面的解 码结果重新拼接成一个完整画面。
[0067] 此后结束本流程。
[0068] 具体地说,完整画面的分辨率为7200*1080,每个子画面的分辨率为1800*1080, 帧率为PAL制全帧率。
[0069] 在本发明第一实施方式中,利用实时转码方法把一个完整画面切割成N个子画 面,在多个处理器或多个处理器内核中将将N个子画面并行实时编码后封装在一起所形成 的封装数据。在本实施方式中,利用上述实时解码方法对第一实施方式中形成的封装数据 进行实时解码。
[0070] 本实施方式是与第一实施方式相对应的方法实施方式,本实施方式可与第一实施 方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了 减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施 方式中。
[0071] 需要说明的是,在本发明专利申请中所使用到的视频拼接技术、编解码技术及封 装解析技术等都是现有技术中的成熟技术,在此不再详细阐述。
[0072] 下面,详细介绍本发明的一个优选实施例,以说明本发明方案的实现过程。
[0073] 本实施例中,以4路1080P摄像机执行横向拼接为例,简单来说,长度可以达到 4*1920=7680像素,宽度仍然为1080像素。
[0074] 1、如图3所示,为4路1080P摄像机的画面示意图,每一路的是帧率均为PAL制全 帧率,即为25帧/秒。
[0075] 2、如图4所示,画面中的阴影区域是和相邻画面的重叠区域。
[0076] 3、如图5所示,使用视频拼接算法拼接解码后的视频画面数据,将重叠部分重叠 在一起。
[0077] 4、获得视频拼接后的画面,如图6所示。假定拼接后的画面分辨率为7200*1080, 如果保持拼接前画面的帧率25帧/秒,这种超高分辨率的视频数据,以现有的处理器能力 是无法进行实时编码的。
[0078] 5、由于视频拼接算法都是基于视频的无压缩数据执行的,现在我们可以得到 7200*1080的无压缩视频数据。针对这段数据,我们执行以下步骤,见图7所示。
[0079] i)首先,我们将这段画面数据切分为4个1800*1080的画面,见图7中Γ、2'、3' 和4'所示;
[0080] ii)对4个1800*1080的画面数据进行并行的编码,由于超高分辨率的画面再次切 割为若干个正常分辨率的画面,此时的数据可以使用主流的处理器进行实时编码,而且只 要使用多处理器系统或单处理器多核系统,多路画面的并行实时编码也是完全可行。
[0081] iii)对4路编码后的数据进行统一封装,使用Program Stream(PS)或Transport Stream (TS)此类允许多路元素流的封装格式,可以使用封装格式标准允许的私有数据对每 一路元素流打上标识,用于标识该路视频画面在整个拼接画面中的位置。对4路编码后的 数据进行简单封装。执行封装后的视频数据为复合流,包含4路切割画面的压缩视频数据, 称之为拼接复合流数据。
[0082] iv)拼接复合流数据可以用于网络传输或存储,便于后续的应用。
[0083] 6、接收到上述复合流数据后,我们执行以下步骤,重新展现拼接画面,见图8流程 图所示。
[0084] i)根据数据的封装格式进行解析;
[0085] ii)对代表不同画面的数据进行分别的组帧及解码;
[0086] iii)把不同路的解码后数据按照在拼接画面中的位置存放到待显示数据缓冲,需 要注意的是,这一步骤,需要等待同步的4路画面数据全部存放到待显示数据缓冲之后,才 能执行下一步骤。由于在拼接换面切割编码的过程中,执行的是简单的切割,在这一步骤再 次拼接后,依然保留了拼接画面的无缝拼接效果。
[0087] iv)渲染待显示数据缓冲中的数据,即拼接画面的显示效果。
[0088] 上述的六个步骤,包含了视频拼接后超高分辨率视频实时转码,以及转码后数据 播放显示的完整过程。
[0089] 本发明的创新点在于提出了一种超高分辨率视频在保证全帧率(高帧率)前提下 执行实时转码的方法,解决了现有技术中只能执行视频拼接获得超高分辨率画面,但是无 法执行超高分辨率画面实时转码的缺陷。
[0090] 本发明的预保护点在于超高分辨率视频的实时转码方法。在方案的阐述中,使用 了 1*4的拼接作为优选实施例,但本发明的方案不仅限于1*4的拼接应用,可以拓展至m*n 的视频拼接系统。
[0091] 此外,超高分辨率视频可以不限于使用视频拼接获得,以任何手段得到的超高分 辨率视频都可以适用于本发明方案的方法。
[0092] 本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是 以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储 器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的 或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称"PAL")、随机存取存储器(Random Access Memory,简称"RAM")、可编程只读存 储器(Programmable Read Only Memory,简称"PROM")、只读存储器(Read-Only Memory,简 称"ROM")、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称 "EEPR0M")、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称"DVD")等等。
[0093] 本发明第三实施方式涉及一种实时转码装置。图9是该实时转码装置的结构示意 图。
[0094] 具体地说,如图9所示,该实时转码装置包括:
[0095] 切割单元,用于把一个完整画面切割成N个子画面,N为大于等于2的整数。
[0096] 完整画面的分辨率为7200*1080,每个子画面的分辨率为1800*1080,帧率为PAL 制全帧率。
[0097] N个子画面间没有重叠部分。
[0098] 编码单元,用于在多个处理器或多个处理器内核中将切割单元切割成的N个子画 面并行实时编码。
[0099] 封装单元,用于将编码单元输出的N个子画面的编码结果和表示该N个子画面相 对位置关系的信息封装在一起。
[0100] 第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施 方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了 减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施 方式中。
[0101] 本发明第四实施方式涉及一种实时解码装置。图10是该实时解码装置的结构示 意图。
[0102] 具体地说,如图10所示,该实时解码装置包括:
[0103] 解封装单元,用于对包含N个子画面的封装数据进行解封装,该封装数据中包括 表示该N个子画面相对位置关系的信息,N为大于等于2的整数。
[0104] 解码单元,用于在多个处理器或多个处理器内核中对解封装单元解析出的N个子 画面进行并行实时解码。
[0105] 拼接单元,用于根据表示该N个子画面相对位置关系的信息将解码单元输出的N 个子画面的解码结果重新拼接成一个完整画面。
[0106] 第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施 方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了 减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施 方式中。
[0107] 需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上, 一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理 单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实 现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新 部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切 的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
[0108] 需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示 这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其 任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者 设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、 方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个"限定的 要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0109] 虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但 本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发 明的精神和范围。
【权利要求】
1. 一种实时转码方法,其特征在于,包括以下步骤: 把一个完整画面切割成N个子画面,N为大于等于2的整数; 在多个处理器或多个处理器内核中将所述N个子画面并行实时编码; 将所述N个子画面的编码结果和表示该N个子画面相对位置关系的信息封装在一起。
2. 根据权利要求1所述的实时转码方法,其特征在于,所述N个子画面间没有重叠部 分。
3. 根据权利要求2所述的实时转码方法,其特征在于,所述完整画面的分辨率为 7200*1080,每个子画面的分辨率为1800*1080,帧率为PAL制全帧率。
4. 根据权利要求3所述的实时转码方法,其特征在于,所述N=4。
5. 根据权利要求4所述的实时转码方法,其特征在于,所述完整画面是将来自多个摄 像机的多路码流拼接在一起,并去除重叠部分所形成的画面。
6. -种实时解码方法,其特征在于,包括以下步骤: 对包含N个子画面的封装数据进行解封装,该封装数据中包括表示该N个子画面相对 位置关系的信息,N为大于等于2的整数; 在多个处理器或多个处理器内核中对解析出的所述N个子画面进行并行实时解码; 根据所述表示该N个子画面相对位置关系的信息将所述N个子画面的解码结果重新拼 接成一个完整画面。
7. 根据权利要求6所述的实时解码方法,其特征在于,所述完整画面的分辨率为 7200*1080,每个子画面的分辨率为1800*1080,帧率为PAL制全帧率。
8. -种实时转码装置,其特征在于,包括: 切割单元,用于把一个完整画面切割成N个子画面,N为大于等于2的整数; 编码单元,用于在多个处理器或多个处理器内核中将所述切割单元切割成的N个子画 面并行实时编码; 封装单元,用于将所述编码单元输出的N个子画面的编码结果和表示该N个子画面相 对位置关系的信息封装在一起。
9. 根据权利要求8所述的实时转码装置,其特征在于,所述完整画面的分辨率为 7200*1080,每个子画面的分辨率为1800*1080,帧率为PAL制全帧率; 所述N个子画面间没有重叠部分。
10. -种实时解码装置,其特征在于,包括: 解封装单元,用于对包含N个子画面的封装数据进行解封装,该封装数据中包括表示 该N个子画面相对位置关系的信息,N为大于等于2的整数; 解码单元,用于在多个处理器或多个处理器内核中对所述解封装单元解析出的N个子 画面进行并行实时解码; 拼接单元,用于根据所述表示该N个子画面相对位置关系的信息将所述解码单元输出 的N个子画面的解码结果重新拼接成一个完整画面。
【文档编号】H04N7/18GK104159063SQ201310179761
【公开日】2014年11月19日 申请日期:2013年5月14日 优先权日:2013年5月14日
【发明者】郭斌, 王川艳, 陈杰 申请人:杭州海康威视数字技术股份有限公司