一种用于超高清视频处理系统的片外缓存压缩方法_2

文档序号:9711948阅读:来源:国知局
的压缩模块中压缩块形成的示意图;
[0058] 图4为本发明一实施例的像素分组示意图;
[0059] 图5为本发明一实施例的简化压缩处理示意图;
[0060] 图6为本发明一实施例的解压缩模块结构框图。
【具体实施方式】
[0061] 下面结合具体实施例对本发明进行详细说明。W下实施例将有助于本领域的技术 人员进一步理解本发明,但不W任何形式限制本发明。应当指出的是,对本领域的普通技术 人员来说,在不脱离本发明构思的前提下,还可W做出若干变形和改进。运些都属于本发明 的保护范围。
[0062] 如图1所示,一种用于超高清视频处理系统的片外缓存压缩方法,包括:
[0063] 步骤一、压缩
[0064] 将来自原始视频输入端的视频帖数据和来自处理内核的完成视频处理功能(如超 高清视频帖率上变换、视频去噪、视频后处理等)的视频帖数据进行分组,W形成待压缩块, 并对每个待压缩块进行预测、量化、反量化和像素重建、赌编码、码流打包、简化压缩处理W 及压缩码流输出控制操作,得到压缩码流,并将压缩码流写到片外缓存中;
[00化]步骤二、解压缩
[0066] 从片外缓存读取压缩码流,经过码流解析、赌解码、反量化、像素形成、简化压缩处 理解码W及像素块复原处理后实时解码,形成解压后像素块,并将解压后像素块输出给处 理内核和输出显示模块。
[0067] 作为一个优选实施方式,上述的步骤一,压缩过程可W采用压缩模块实现,所述压 缩模块的数据来源有两个:来自原始视频输入端的视频帖数据,如帖率上变换处理系统中 的原始视频帖数据;来自处理内核的完成特定视频处理功能的视频帖数据,如帖率上变换 系统中的内插视频帖数据。所述压缩模块将上述数据源来的视频帖数据进行分组,形成待 压缩块,并对每个待压缩块进行独立压缩,得到压缩码流。上述待压缩块指单独进行压缩, 不依赖周围视频帖信息,形成一个码流的视频像素块。
[0068] 进一步的,所述压缩模块包括:压缩块形成模块、预测模块、量化模块、反量化和像 素重建模块、赌编码模块、码流打包模块、简化压缩处理模块和压缩码流输出控制模块,其 整体架构如图2所示;各模块实现的过程如下所述。
[0069] 1、压缩块形成模块
[0070] 该模块将待压缩视频帖拆分为若干小的子块,形成多个独立的待压缩块。所述待 压缩视频帖拆分过程如图3所示,连续两行的待压缩像素,分别取其亮度分量的64个像素及 对应的32个饥色度分量和32个Cr色度分量,按照图3中所示方式组合成亮度图像待压缩块 和色度图像待压缩块。作为一种可实施方式,亮度和色度采样方式为4:2:2;每个待压缩块 包含128个待压缩像素。为方便叙述,将128个像素编号为pixel_l_l、pixel_l_2、pixel_l_ 3、......、pixel_l_64、pixel_2_l、pixel_2_2、pixel_2_3、......、pixel_2_64,其中:pixel_l_ I为待压缩像素块的第一行第一个像素;pixel_2_l为待压缩像素块的第二行第一个像素; pixel_l_2为待压缩像素块的第一行第二个像素;pixel_2_2为待压缩像素块的第二行第二 个像素;W此类推,直到第一行的第六十四个像素和第二行的第六十四个像素。
[0071] 所述待压缩块,每个都独立进行压缩处理,相互之间不依赖;每个待压缩块都形成 一个固定长度的压缩码流。作为一种可实施方式,规定每个压缩码流长度为51化it。
[00巧 2、预测模块
[0073] 该模块将每个待压缩块的128个待压缩像素进行像素分组,然后进行预测与残差 处理,获得每个待压缩像素的残差。
[0074] 所述像素分组,是将待压缩块的128个待压缩像素拆分成多个像素组,后续预测与 残差处理W组为单位进行。作为一种可实施方式,所述像素分组的128个待压缩像素拆分过 程如图4所示。在图4像素分组示意中将128个待压缩像素分成g;rcmp_6xl、g;rcmp_4x2、 g;roup_8x2、g;roup_16x2、g;roup_bef ore 和 g;roup_af ter 六组。由于每个待压缩块独立处理, 不能依赖周围压缩块的信息,因此进行上述分组;后续处理也W上述组为单位进行,运样当 前分组可W使用已处理分组的信息,提高压缩效果;同时考虑系统的吞吐率和复杂度,一般 将压缩块拆分成4至化组比较合适。
[0075] 所述预测与残差处理按照上述的像素分组顺序进行,即先处理group_6xl,然后依 次处理 gr〇up_4x2、g;roup_8x2、g;roup_l 6x2、g;roup_bef ore,最后处理 g;roup_af ter。在每个 像素分组内部,首先根据前面已处理像素分组的像素重建值对当前像素分组内的每个像素 进行预测,获得当前像素分组每个像素预测值;再由像素值和对应的像素预测值相减,得到 像素残差值。
[0076] 作为一种可实施方式,每个像素均为IObit像素,具体处理过程为:
[0077] group_6xl中的6个像素不进行预测过程,直接截取原始像素的高8位,作为其像素 残差值;将所得的像素残差值直接乘W四,得到其重建值。处理过程具体为:
[0078] delta_l_l =msb(pixel_l_l ,8)
[00巧]delta_l_16=msb(pixe 1-1-16,8)
[0080] delta_l_32=msb(pixel_l_32,8)
[0081 ] delta_l_33=msb(pixel_l_33,8)
[0082] delta_l_48=msb(pixel_l_48,8)
[0083] delta_l_64=msb(pixel_l_64,8)
[0084] restruct_l_l =delta_l_l*4 [00 化]rest;ruct_l_16 = delta_l_16*4 [00 化]rest;ruct_l_32 = delta_l_32*4
[0087] restruct_l_33 = delta_l_33*4
[0088] restruct_l_48 = delta_l_48*4
[0089] restruct_l_64 = deIta_l_64*4
[0090] 其中:delta_x_y表示第X行第y个像素的像素残差值;rest;ruct_x_y表示第X行第y 个像素的像素重建值;msb(pixel_x_y,z)表示取第X行第y个像素的高Z bit位。
[0091] group_4x2中的14个像素的预测值由group_6xl像素的重建值获得;像素残差值为 原始像素值与预测值的差值;像素重建值为经过量化和反量化之后的残差值与预测值的相 加和。处理过程具体为:
[0092] pred_2_l =rest;ruct_l_l
[0093] pred_l_8=(restruct_l_l+restruct_l_16)/2
[0094] pred_2_8=(restruct_l_l+restruct_l_16)/2 [00 巧]pred_2_16 = rest;ruct_l_16
[0096] pred_l_24= (rest;ruct_l_16+rest;ruct_l_32)/2
[0097] pred_2_24二(restruct_l_16+restruct_l_32)/2
[009引 pred_2_32二restruct_l_32
[0099] pred_2_33二restruct_l_33
[0100] pred_l_40二(restruct_l_33+restruct_l_48)/2
[0101] pred_2_40二(restruct_l_33+restruct_l_48)/2
[0102] pred_2_48二restruct_l_48
[0103] pred_l_56二(restruct_l_48+restruct_l_64)/2
[0104] pred_2_56二(restruct_l_48+re
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1