发明名称 一种H.264二维并行后处理去块滤波器硬件实现方法
摘要 本发明公开了一种H.264二维并行后处理去块滤波器硬件实现方法,可以实现水平边界与垂直边界二维并行执行滤波运算,大大提高了滤波器的整理运算速度,提高了整个滤波系统的处理速度和数据吞吐量,使得单个16×16宏块滤波处理只需118个时钟周期,满足实时处理的要求,同时合理利用各个块之间数据相关性调整滤波顺序,加入数据暂存器对中间数据进行暂存,减少了对中间数据的存储、对外部存储器的重复读写和芯片的电路规模。
申请公布号 CN103731674A 申请公布日期 2014.04.16
申请号 CN201410022905.9 申请日期 2014.01.17
申请人 合肥工业大学 发明人 张多利;杜高明;宋宇鲲;胡永春;贾靖华
分类号 H04N19/86(2014.01)I;H04N19/117(2014.01)I;H04N19/176(2014.01)I;H04N19/186(2014.01)I 主分类号 H04N19/86(2014.01)I
代理机构 安徽省合肥新安专利代理有限责任公司 34101 代理人 何梅生
主权项 一种H.264二维并行后处理去块滤波器硬件实现方法,其特征是:根据H.264标准对每帧的视频数据以宏块为滤波单元进行滤波,每个待滤波宏块包含24个4×4的块,依次是排布成4行4列的16个亮度块Y、排布成2行2列的4个色度块Cr和排布成2行2列的4个色度块Cb;在所述24个4×4的块中,亮度块Y按从左至右、从上至下的顺序依次标记为B1‑B16,色度块Cr按从左至右、从上至下的顺序依次标记为B17‑B20,色度块Cb按从左至右、从上至下的顺序依次标记为B21‑B24;亮度块Y的左边边界块从上至下依次标记为L1‑L4,色度块Cr的左边边界块从上至下依次标记为L5和L6,色度块Cb的左边边界块从上至下依次标记为L7和L8;亮度块Y的上边边界块从左至右依次标记为T1‑T4,色度块Cr的上边边界块从左至右依次标记为T5和T6,色度块Cb的上边边界块从左至右依次标记为T7和T8;按照从左到右、从上到下的顺序,每一待滤波宏块的垂直边界依次标记为垂直边界1‑垂直边界24、水平边界依次标记为水平边界4‑水平边界27;左边边界块L1‑L8的数据存储于左边块存储器中,上边边界块T1‑T8的数据存储在上边块存储器中、B1‑B24的数据存储在当前宏块存储器中;所述去块滤波器对于待滤波宏块的滤波方法是按如下步骤进行:步骤1,利用L1的数据和B1的数据完成垂直边界1的滤波计算,分别获得L1滤波数据和B1第一中间数据,将L1滤波数据写入外部存储器;步骤2,利用所述B1第一中间数据和B2的数据完成垂直边界2的滤波计算,分别获得B1第二中间数据和B2第一中间数据;步骤3,利用所述B2第一中间数据和B3的数据完成垂直边界3的滤波计算,分别获得B2第二中间数据和B3第一中间数据;步骤4,利用所述B3第一中间数据和B4的数据完成垂直边界4的滤波计算,分别获得B3第二中间数据和B4第一中间数据;并利用T1的数据和B1第二中间数据的转置数据完成水平边界4的滤波计算,获得B1第三中间数据;步骤5,利用L2的数据和B5的数据完成垂直边界5的滤波计算,获得L2滤波数据和B5第一中间数据,将L2滤波数据写入外部存储器;并利用T2的数据和B2第二中间数据的转置数据进行水平边界5的滤波计算,获得B2第三中间数据;步骤6,利用所述B5第一中间数据和B6的数据完成垂直边界6的滤波计算,分别获得B5第二中间数据和B6第一中间数据;并利用T3的数据和B3第二中间数据的转置数据完成水平边界6的滤波计算,获得B3第三中间数据;步骤7,利用所述B6第一中间数据和B7的数据完成垂直边界7的滤波计算,分别获得B6第二中间数据和B7第一中间数据;并利用T4的数据和B4第一中间数据的转置数据完成水平边界7的滤波计算,获得B4第二中间数据;步骤8,利用所述B7第一中间数据和B8的数据完成垂直边界8的滤波计算,分别获得B7第二中间数据和B8第一中间数据;并利用B1第三中间数据和B5第二中间数据的转置数据完成水平边界8的滤波计算,获得B1滤波数据转置后写入外部存储器,以及获得B5第三中间数据;步骤9,利用L3的数据和B9的数据完成垂直边界9的滤波计算,获得L3滤波数据和B9第一中间数据,将L3滤波数据写入外部存储器;并利用B2第三中间数据和B6第二中间数据的转置数据完成水平边界9的滤波计算,获得B2滤波数据转置后写入外部存储器,以及获得B6第三中间数据;步骤10,利用所述B9第一中间数据和B10的数据完成垂直边界10的滤波计算,分别获得B9第二中间数据和B10第一中间数据;并利用B3第三中间数据和B7第二中间数据的转置数据完成水平边界10的滤波计算,获得B3滤波数据转置后写入外部存储器,以及获得B7第三中间数据;步骤11,利用所述B10第一中间数据和B11的数据完成垂直边界11的滤波计算,分别获得B10第二中间数据和B11第一中间数据;并利用B4第二中间数据和B8第一中间数据的转置数据完成水平边界11的滤波计算,获得B4滤波数据转置后写入外部存储器,以及获得B8第二中间数据;步骤12,利用所述B11第一中间数据和B12的数据完成垂直边界12的滤波计算,分别获得B11第二中间数据和B12第一中间数据;并利用B5第三中间数据和B9第二中间数据的转置数据完成水平边界12的滤波计算,获得B5滤波数据转置后写入外部存储器,以及获得B9第三中间数据;步骤13,利用L4的数据和B13的数据完成垂直边界13的滤波计算,获得L4滤波数据和B13第一中间数据,将L4滤波数据写入外部存储器;并利用B6第三中间数据和B10第二中间数据的转置数据完成水平边界13的滤波计算,获得B6滤波数据转置后写入外部存储器,以及获得B10第三中间数据;步骤14,利用所述B13第一中间数据和B14的数据完成垂直边界14的滤波计算,分别获得B13第二中间数据和B14第一中间数据;并利用B7第三中间数据和B11第二中间数据的转置数据完成水平边界14的滤波计算,获得B7滤波数据转置后写入外部存储器,以及获得B11第三中间数据;步骤15,利用所述B14第一中间数据和B15的数据完成垂直边界15的滤波计算,分别获得B14第二中间数据和B15第一中间数据;并利用B8第二中间数据和B12第一中间数据的转置数据完成水平边界15的滤波计算,获得B8滤波数据转置后写入外部存储器,以及获得B12第二中间数据;步骤16,利用所述B15第一中间数据和B16的数据完成垂直边界16的滤波计算,分别获得B15第二中间数据和B16第一中间数据;并利用B9第三中间数据和B13第二中间数据的转置数据完成水平边界16的滤波计算,获得B9滤波数据转置后写入外部存储器,以及获得B13滤波数据;步骤17,利用L5的数据和B17的数据完成垂直边界17的滤波计算,获得L5滤波数据和B17第一中间数据,将L5滤波数据写入外部存储器;并利用B10第三中间数据和B14第二中间数据的转置数据完成水平边界17的滤波计算,获得B10滤波数据转置后写入外部存储器,以及获得B14滤波数据;步骤18,利用所述B17第一中间数据和B18的数据完成垂直边界18的滤波计算,分别获得B17第二中间数据和B18第一中间数据;并利用B11第三中间数据和B15第二中间数据的转置数据完成水平边界18的滤波计算,获得B11滤波数据转置后写入外部存储器,以及获得B15滤波数据;步骤19,利用L6的数据和B19的数据完成垂直边界19的滤波计算,获得L6滤波数据和B19第一中间数据,将L6滤波数据写入外部存储器;并利用B12第二中间数据和B16第一中间数据的转置数据完成水平边界19的滤波计算,获得B12滤波数据转置后写入外部存储器,以及获得B16滤波数据;步骤20,利用所述B19第一中间数据和B20的数据完成垂直边界20的滤波计算,分别获得B19第二中间数据和B20第一中间数据;并利用T5的数据和B17第二中间数据的转置数据完成水平边界20的滤波计算,获得B17第三中间数据;步骤21,利用L7的数据和B21的数据完成垂直边界21的滤波计算,分别获得L7滤波数据和B21第一中间数据,将L7滤波数据写入外部存储器;并利用T6的数据和B18第一中间数据的转置数据完成水平边界21的滤波计算,获得B18第二中间数据;步骤22,利用所述B21第一中间数据和B22的数据完成垂直边界22的滤波计算,分别获得B21第二中间数据和B22第一中间数据;并利用B17第三中间数据和B19第二中间数据的转置数据完成水平边界22的滤波计算,获得B17滤波数据转置后写入外部存储器,以及获得B19滤波数据;步骤23,利用L8的数据和B23的数据完成垂直边界23的滤波计算,分别获得L8滤波数据和B23第一中间数据,将L8滤波数据写入外部存储器;并利用B18第二中间数据和B20第一中间数据的转置数据完成水平边界23的滤波计算,获得B18滤波数据转置后写入外部存储器,以及获得B20滤波数据;步骤24,利用所述B23第一中间数据和B24的数据完成垂直边界24的滤波计算,分别获得B23第二中间数据和B24第一中间数据;并利用T7的数据和B21第二中间数据的转置数据完成水平边界24的滤波计算,获得B21第三中间数据;步骤25,利用T8的数据和B22第一中间数据的转置数据完成水平边界24的滤波计算,获得B22第二中间数据;步骤26,利用所述B21第三中间数据和B23第二中间数据的转置数据完成水平边界26的滤波计算,获得B21滤波数据转置后写入外部寄存器,以及获得B23滤波数据;步骤27,利用所述B22第二中间数据和B24第一中间数据的转置数据完成水平边界27的滤波计算,获得B22滤波数据转置后写入外部寄存器,以及获得B24滤波数据;完成上述27步操作后,使用B4滤波数据、B8滤波数据、B12滤波数据及B16滤波数据分别替换左边块存储器中L1、L2、L3及L4位置处的数据;使用B13滤波数据、B14滤波数据、B15滤波数据及B16滤波数据分别替换上边块存储器中T1、T2、T3及T4位置处的数据;使用B18滤波数据、B20滤波数据、B22滤波数据及B24滤波数据分别替换左边块存储器中L5、L6、L7及L8位置处的数据;使用B19滤波数据、B20滤波数据、B23滤波数据及B24滤波数据分别替换上左边块存储器中T5、T6、T7及T8位置处的数据;以完成数据替换的L1至L8作为下一待滤波宏块的左边边界块,以完成数据替换的T1至T8作为下一待滤波宏块的上边边界块。
地址 230009 安徽省合肥市包河区屯溪路193号
您可能感兴趣的专利