CN101742298B - 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 - Google Patents

用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 Download PDF

Info

Publication number
CN101742298B
CN101742298B CN200810226684.1A CN200810226684A CN101742298B CN 101742298 B CN101742298 B CN 101742298B CN 200810226684 A CN200810226684 A CN 200810226684A CN 101742298 B CN101742298 B CN 101742298B
Authority
CN
China
Prior art keywords
discrete cosine
inverse discrete
cosine transform
coefficient
idct
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
Application number
CN200810226684.1A
Other languages
English (en)
Other versions
CN101742298A (zh
Inventor
张大勇
梁利平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruili Flat Core Microelectronics Guangzhou Co Ltd
Original Assignee
Institute of Microelectronics of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN200810226684.1A priority Critical patent/CN101742298B/zh
Publication of CN101742298A publication Critical patent/CN101742298A/zh
Application granted granted Critical
Publication of CN101742298B publication Critical patent/CN101742298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法,该方法包括:分析整数逆离散余弦变换的系数,将整数逆离散余弦变换的系数值在16位所能表示的范围内,进行尽可能多的左移操作;将逆离散余弦变换的输入值在16位所能表示的范围内,进行尽可能多的左移操作;将左移之后的系数值和输入值相乘,取乘法结果的高16位。利用本发明,能够有效降低算法执行时的复杂度,提高算法的执行速度,节省程序的执行时间,保证图像的质量。

Description

用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法
技术领域
本发明涉及视频图像的压缩和解压缩技术领域,尤其涉及一种用于嵌入式实时解码器的虚拟小数逆离散余弦变换(IDCT)方法。
背景技术
在视频图像的压缩和解压缩过程,IDCT是图像解码过程中最常用的变换编码之一,也是解码中最核心、运算量最大的模块之一。目前视频图像处理中用到的DCT/IDCT变换主要是16×16、8×8或4×4浮点变换或整数变换。其中整数IDCT与浮点IDCT相比,具有算法明晰简单、运算速度快和占用内存小等优点。但是整数IDCT的算法依然非常复杂,对于8×8二维IDCT,W-Chen算法需要8次一维行变换和8次一维列变换,而一维整数8点IDCT变换,需要26(29)次加法,16(13)次乘法,因此对于8×8二维整数IDCT,理论上最多需要416(464)次加法,256(208)次乘法。
对于一帧图像,比如大小为128×128的图像,有256个块,则最多需要106496(118784)次加法,65536(53248)次乘法。如果对于分辨率更大的图像,比如720×480,1280×1024等的大图像,则加法运算,尤其是乘法运算都非常占用寄存器资源,因此极大影响算法的执行速度,尤其当程序在嵌入式系统,比如DSP上执行时乘法操作对整个程序的执行影响是非常大。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种用于嵌入式实时解码器的虚拟小数IDCT方法,以降低算法执行时的复杂度,提高算法的执行速度,节省程序的执行时间,保证图像的质量。
(二)技术方案
为达到上述目的,本发明采用的技术方案如下:
一种用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法,该方法由行变换和列变换组成,其包括:
分析整数逆离散余弦变换的系数,所述整数逆离散余弦变换的系数的位数固定;
对于整数逆离散余弦变换行变换,将所述整数逆离散余弦变换的系数在16位所能表示的范围内左移3位,所述整数逆离散余弦变换的输入值为12位,将该12位输入值左移4位得到16位输入值,将左移之后的系数值和输入值相乘,取乘法结果的高16位;
对于整数逆离散余弦变换列变换,将所述整数逆离散余弦变换的系数在16位所能表示的范围内左移3位,所述整数逆离散余弦变换的输入值为14位,将该14位输入值左移2位得到16位输入值,将左移之后的系数值和输入值相乘,取乘法结果的高16位。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
本发明提供的这种用于嵌入式实时解码器的虚拟小数IDCT方法,由于将整数IDCT的系数值在16位所能表示的范围内进行尽可能多的左移操作,将IDCT的输入值在16位所能表示的范围内进行尽可能多的左移操作,并将左移之后的系数值和输入值相乘,取乘法结果的高16位,所以能够有效降低算法执行时的复杂度,提高算法的执行速度,节省程序的执行时间,保证图像的质量。
附图说明
图1是一维8点IDCT变换的W-Chen算法示意图;
图2是本发明提供的用于嵌入式实时解码器的虚拟小数IDCT的方法流程图;
图3是编码端的重建图像,三帧图像依次是I帧、B帧和P帧;
图4是整数IDCT变换得到的图像,三帧图像依次是I帧、B帧和P帧;
图5是虚拟小数IDCT变换得到的图像,三帧图像依次是I帧、B帧和P帧。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提出的这种用于嵌入式实时解码器的虚拟小数IDCT方法,由行变换和列变换组成。对于性能有限的嵌入式系统,虚拟小数IDCT变换的优点在于,能大大节省程序的执行时间,保证图像有很好的质量。
这里的虚拟小数IDCT变换是以整数IDCT变换为基础进行的推导,涉及的二维IDCT公式如(1)式所示。
f ( x , y ) = 2 N Σ u = 0 N - 1 Σ v = 0 N - 1 C ( u ) C ( v ) F ( u , v ) cos ( 2 x + 1 ) uπ 2 N cos ( 2 y + 1 ) vπ 2 N - - - ( 1 )
由式(1)可以得到
f ( x , y ) = 2 N Σ u = 0 N - 1 Σ v = 0 N - 1 C ( u ) C ( v ) F ( u , v ) cos ( 2 x + 1 ) uπ 2 N cos ( 2 y + 1 ) vπ 2 N
= 1 4 Σ u = 0 N - 1 Σ v = 0 N - 1 C ( u ) C ( v ) F ( u , v ) cos ( 2 x + 1 ) uπ 2 N cos ( 2 y + 1 ) vπ 2 N
= 2 8 C ( v ) Σ v = 0 N - 1 [ 2 8 C ( u ) Σ u = 0 N - 1 F ( u , v ) cos ( 2 x + 1 ) uπ 2 N ] cos ( 2 y + 1 ) vπ 2 N - - - ( 2 )
式(2)是将二维IDCT变换分离成一维变换的过程。
目前大部分二维IDCT的快速算法都是先行列分离,再利用高效的一维IDCT算法,比如W-Chen算法。W-Chen算法是将IDCT原始的变换矩阵分解成几个小的变换矩阵,然后逐步计算。由于W-Chen算法的乘法运算主要集中在输入附近,因此大部分乘法中的乘数是输入元素,可以通过提前判断输入元素中是否有较多的零元素,从而直接跳过一部分的乘加运算,达到提高运算速度的目的。
对于整数IDCT变换,W-Chen算法采用的是将一维IDCT的行变换和列变换的系数扩大一定的倍数,这样就可以避免小数IDCT的大运算量,执行速度慢的缺点。图1示出了一维8点IDCT变换的W-Chen算法示意图。
图2是本发明提供的用于嵌入式实时解码器的虚拟小数IDCT的方法流程图,该方法包括以下步骤:
步骤201:分析整数逆离散余弦变换的系数,将整数逆离散余弦变换的系数值在16位所能表示的范围内,进行尽可能多的左移操作;
步骤202:将逆离散余弦变换的输入值在16位所能表示的范围内,进行尽可能多的左移操作;
步骤203:将左移之后的系数值和输入值相乘,取乘法结果的高16位。
本发明是对W-Chen算法进行虚拟小数化,从而得到虚拟小数IDCT变换,具体实现过程如下所示:
首先,分析整数IDCT变换的缺点,无论是在行变换还是列变换中,整数IDCT变换中间的乘加过程需要用到32位的数据存储类型,这对于在DSP上的编程,该数据类型是非常占用硬件资源和影响程序的执行速度。
因此对于在DSP上的编程,使用汇编语言优化整数IDCT变换,该方法的核心思想是将中间的乘加结果用16位代替原来的32位数据,用来提高算法的执行速度,相比整数IDCT这种方法使图像的精度稍微有损失,不过精度的损失是非常小的。
其次,虚拟小数IDCT的具体实现过程由以下几步组成:
a、首先分析整数IDCT变换的系数,IDCT变换中用到的系数有W1=0xB19,W2=0xA74,W3=0x968,W5=0x649,W6=0x454,W7=0x235。
b、将整数IDCT变换的系数在16位所能表示的范围内,将系数进行左移3位的操作,即:W1’=0x58C8,W2’=0x53A0,W3’=0x4B40,W5’=0x3248,W6’=0x22A0,W7’=0x11A8。
c、将IDCT变换的输入值,在16位所能表示的范围内,进行尽可能多的左移操作。
d、将左移之后的系数值和输入值相乘,取乘法结果的高16位。
具体的操作过程是:对于IDCT的行变换,将12位的输入值左移4位,系数左移3位,将乘法得到的结果取高16位。对于IDCT的列变换,将14位的输入值左移2位,系数左移3位,将乘法得到的结果取高16位。
以分辨率为128×128的三帧图像为例,该图像的帧类型分别是I帧、B帧和P帧,说明分别采用整数IDCT变换和虚拟小数IDCT变换的三帧图像,以及它们相对于编码端重建图像的PSNR值。图3是编码端的重建图像,图4是整数IDCT变换得到的图像,图5是虚拟小数IDCT变换得到的图像。
以ADSP2191这个DSP为例,对整数IDCT变换的指令数统计结果为,一维8点的行变换总共有208条汇编语言指令,一维8点列变换总共有249条汇编语言指令;而虚拟小数IDCT变换的指令数统计结果为:一维8点行变换总共有141条汇编语言指令,一维8点列变换总共有146条汇编语言指令。因此对于一个8×8的块,虚拟小数IDCT变换比整数IDCT变换最多可以节省1360条指令,而对于4:2:0的128×128图像,共有256个8×8亮度块和128个8×8色度块,所以一帧图像最多可以节省522240条指令。对于4:2:0的720×480图像,共有5400个8×8亮度块和2700个8×8色度块,所以一帧图像最多可以节省11016000条指令。
现以一个例子来具体说明采用虚拟小数IDCT和整数IDCT变换得到的图像与编码端重建图像PSNR的比值。表1是解码端分别采用整数IDCT变换和虚拟小数IDCT变换得到图像的PSNR值,表2是采用虚拟小数IDCT变换与编码端的重建图像的PSNR值。
  PSNR   I   B   P
  Y   64.89   62.41   62.26
  U   60.42   61.42   61.51
  V   61.29   60.85   60.99
表1
  PSNR   I   B   P
  Y   57.66   55.09   54.93
  U   56.53   55.44   54.90
  V   56.34   55.64   56.00
表2
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法,其特征在于,该方法由行变换和列变换组成,其包括:
分析整数逆离散余弦变换的系数,所述整数逆离散余弦变换的系数的位数固定;
对于整数逆离散余弦变换行变换,将所述整数逆离散余弦变换的系数在16位所能表示的范围内左移3位,所述整数逆离散余弦变换的输入值为12位,将该12位输入值左移4位得到16位输入值,将左移之后的系数值和输入值相乘,取乘法结果的高16位;
对于整数逆离散余弦变换列变换,将所述整数逆离散余弦变换的系数在16位所能表示的范围内左移3位,所述整数逆离散余弦变换的输入值为14位,将该14位输入值左移2位得到16位输入值,将左移之后的系数值和输入值相乘,取乘法结果的高16位。
CN200810226684.1A 2008-11-19 2008-11-19 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 Active CN101742298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810226684.1A CN101742298B (zh) 2008-11-19 2008-11-19 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810226684.1A CN101742298B (zh) 2008-11-19 2008-11-19 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法

Publications (2)

Publication Number Publication Date
CN101742298A CN101742298A (zh) 2010-06-16
CN101742298B true CN101742298B (zh) 2011-07-27

Family

ID=42465077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810226684.1A Active CN101742298B (zh) 2008-11-19 2008-11-19 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法

Country Status (1)

Country Link
CN (1) CN101742298B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106550267B (zh) * 2016-11-25 2019-03-29 广州酷狗计算机科技有限公司 多媒体信息解码方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020671B1 (en) * 2000-03-21 2006-03-28 Hitachi America, Ltd. Implementation of an inverse discrete cosine transform using single instruction multiple data instructions
CN101106714A (zh) * 2007-07-29 2008-01-16 浙江大学 应用于视频和图像处理的变换方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020671B1 (en) * 2000-03-21 2006-03-28 Hitachi America, Ltd. Implementation of an inverse discrete cosine transform using single instruction multiple data instructions
CN101106714A (zh) * 2007-07-29 2008-01-16 浙江大学 应用于视频和图像处理的变换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reznik,Y.A.et.al.Low-Drift Fixed-Point 8X8 IDCT Approximationwith 8-Bit Transform Factors.《Image Processing, 2007. ICIP 2007. IEEE International Conference on》.2007,第6卷VI-81-VI-84. *

Also Published As

Publication number Publication date
CN101742298A (zh) 2010-06-16

Similar Documents

Publication Publication Date Title
Ranganathan et al. Performance of image and video processing with general-purpose processors and media ISA extensions
CN104205845B (zh) 具有统一位宽乘法器的lm模式
CN1697328B (zh) 快速视频编解码变换实现
Zhu et al. Fully pipelined DCT/IDCT/Hadamard unified transform architecture for HEVC Codec
MXPA05012403A (es) Transformacion reversible para compresion de datos 2-d con perdida y sin perdida.
US20140010284A1 (en) Image transform and inverse transform method, and image encoding and decoding device using same
US20070250557A1 (en) Method and circuit for performing cordic based loeffler discrete cosine transformation (dct) for signal processing
KR20030086423A (ko) 이미지 및 비디오 코딩을 위한 2d 변환
CN1193621C (zh) 调整计算复杂度的方法、对离散余弦反变换进行近似计算的方法和一种解码器
US8417045B2 (en) Mechanism for processing order-16 discrete cosine transforms
CN101742298B (zh) 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法
CN103092559B (zh) 用于hevc标准下dct/idct电路的乘法器结构
CN103975592B (zh) 反量化变换系数的方法及装置
US7756351B2 (en) Low power, high performance transform coprocessor for video compression
CN100586188C (zh) 一种基于avs的帧内预测计算的硬件实现方法
Divakara et al. High speed modular systolic array-based DTCWT with parallel processing architecture for 2D image transformation on FPGA
CN103959780B (zh) 量化电平截取装置及方法
Atitallah et al. Advanced design of TQ/IQT component for H. 264/AVC based on SoPC validation
CN206962992U (zh) 用于数字视频编解码的3乘3整数dct变换量化器
CN104683817A (zh) 基于avs的并行变换和反变换方法
CN101729886B (zh) 一种视频解码方法、系统和设备
CN100396101C (zh) 产生并使用辅助图像的图像压缩设备及其方法
CN109451307B (zh) 一种基于近似系数的一维dct运算方法和dct变换装置
CN100562115C (zh) 一种mpeg4文件解码过程中的滤波方法及装置
Agostini et al. High throughput architecture of JPEG compressor for color images targeting FPGAs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201215

Address after: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: AoXin integrated circuit technology (Guangdong) Co.,Ltd.

Address before: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3

Patentee before: Institute of Microelectronics of the Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220429

Address after: 510000 room 710, Jianshe building, No. 348, Kaifa Avenue, Huangpu District, Guangzhou, Guangdong

Patentee after: Ruili flat core Microelectronics (Guangzhou) Co.,Ltd.

Address before: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: AoXin integrated circuit technology (Guangdong) Co.,Ltd.