CN108322759B - 一种像素值获取方法、装置及电子设备 - Google Patents

一种像素值获取方法、装置及电子设备 Download PDF

Info

Publication number
CN108322759B
CN108322759B CN201810157598.3A CN201810157598A CN108322759B CN 108322759 B CN108322759 B CN 108322759B CN 201810157598 A CN201810157598 A CN 201810157598A CN 108322759 B CN108322759 B CN 108322759B
Authority
CN
China
Prior art keywords
formula
target
value
preset
pixel
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
CN201810157598.3A
Other languages
English (en)
Other versions
CN108322759A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810157598.3A priority Critical patent/CN108322759B/zh
Publication of CN108322759A publication Critical patent/CN108322759A/zh
Application granted granted Critical
Publication of CN108322759B publication Critical patent/CN108322759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

本发明实施例提供了一种像素值获取方法及装置,该方法包括:读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;利用连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将第一目标公式作为当前公式;按照第一预设规则对当前公式进行简化处理,得到第二目标公式;当第二目标公式中的第一预设值为1时,对第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。应用于本发明实施例提供的方法能够降低编解码器或解码器的计算复杂度,进而可以提高运算效率。

Description

一种像素值获取方法、装置及电子设备
技术领域
本发明涉及视频编解码技术领域,特别是涉及一种像素值获取方法及装置。
背景技术
HEVC(High Efficiency Video Coding,视频压缩标准)视频解码最消耗时间的模块是运动补偿插值计算模块。该模块负责帧间预测,因为运动补偿经常指向子像素位置,所以需要使用插值滤波器计算子像素位置的像素值。如图1 所示,菱形是整像素,它不需要计算就存在,正方形是二分之一像素,圆形是四分之一像素,后两者是虚拟的,并不存在,需要通过插值滤波器从整像素算出。
因为子像素位置最小为四分之一分辨率,所以HEVC规定了3个插值滤波器,分别对应四分之一、四分之二和四分之三插值滤波器,如下所示:
四分之一:-1,4,-10,58,17,-5,1,0;
四分之二:-1,4,-11,40,40,-11,4,-1;
四分之三:0,1,-5,17,58,-10,4,-1;
根据上述描述内容,具体描述现有子像素插值的计算方法。对于和整像素点处于同一行或同一列的子像素,通过一次插值获得,如图1所示的d1、e1、 f1、g1、i1、j1和k1,它们和整像素处于同一行或同一列,所以直接取相应插值滤波器直接计算得到,d1在四分之一像素位置,所以选用第一个滤波器和 d1所在列上的整像素点I1、J1、D1、K1、L1、M1、N1、P1与四分之一插值滤波器卷积获得d1的未缩放版本d′,进而获得d 1的像素值:
d′=-1×I1+4×J1-10×K1+58×D1+17×L1-5×M1+N1+0×P1
Figure BDA0001581917890000011
对于和整像素像素点既不在同一行又不在同一列的像素,如a、b和c等, HEVC的插值计算分为两步,第一步计算和当前像素在同一列,和整像素在同一行的子像素值的未缩放版本,然后用这些和整像素在同一行的子像素值做垂直滤波,得到当前像素值。如子像素a1点,和a1点在同一列的且和整像素在同一行的子像素点是h1、i1、j1、e1、k1、m1、n1和q1,所以首先计算出h1、 i1、j1、e1、k1、m1、n1和q1的未缩放版本h'、i'、j'、e'、k'、m'、n'、q',然后选用四分之二像素滤波器与未缩放版本h'、i'、j'、e'、k'、m'、n'、q'进行卷积,得到a1点的像素值:
a″=-1×h′+4×i′-11×j′+40×e′+40×k′-11×m′+4×n′-1×q′
Figure BDA0001581917890000021
如果a要用于双向预测,那么a1不会被缩放到8位精度,而是缩放到16 位精度,即
Figure BDA0001581917890000022
在HEVC中,为了保证精度,所有插值的中间结果都是16位的,所以如果a要被用于双向预测,那么它仍然是中间结果,只能向右移6位,使结果在 16位范围内。
然而,在实现本发明的过程中发现,现有技术至少存在如下问题:
现有的插值滤波器由于插值像素精度高达16位,因此无论对于编码器还是解码器都是视频编码中非常耗时的模块,它占据解码器40%的复杂度,对于编码器,它主要使用在子像素运动估计模块和运动补偿模块。因此导致编码器或解码器的复杂度较高,运算时间长。
发明内容
本发明实施例的目的在于提供一种像素值获取方法及装置,以降低编解码器或解码器的计算复杂度。具体技术方案如下:
一种像素值获取方法,所述方法包括:
读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负 1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1 或负1的项两两求平均值前的值;
当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
进一步地,在上述按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式之后,上述方法还包括:
当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式满足目标条件时,将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行对当前公式按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1;
如果上述第二目标公式不满足目标条件时,将上述第二目标公式作为新的当前公式,返回执行对按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤。
进一步地,上述预设像素值为四分之一像素值或半像素值。
进一步地,上述预设像素值为半像素值时,目标滤波系数依次为-1、4、 -11、40、40、-11、4和-1。
进一步地,在上述按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式之前,上述方法还包括:
对上述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将上述目标公式作为新的当前公式。
进一步地,上述预设像素为四分之一像素值时,目标滤波系数依次为0、1、 -5、17、58、-10、4和-1。
进一步地,第一预设值为64,第二预设值为255,目标值的初始值为32,预设数量为8。
进一步地,上述第一目标公式为:
Figure BDA0001581917890000041
pa、pb、pc、pd、pe、 pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
进一步地,上述第一目标公式为:
Figure BDA0001581917890000042
pa、pb、pc、pd、pe、 pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
一种像素值获取装置,上述装置包括:
读取模块,用于读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
第一目标公式得到模块,用于利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
第二目标公式得到模块,用于按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1 或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1 的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1或负1的项两两求平均值前的值;
预设像素值获取模块,用于当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
进一步地,上述装置还包括:
第三目标公式得到模块,用于当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式满足目标条件时,触发第一返回执行模块,如果上述第二目标公式不满足目标条件时,触发第二返回执行模块;
第一返回执行模块,用于将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行对当前公式按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1;
第二返回执行模块,用于将上述第二目标公式作为新的当前公式,返回执行对按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤。
进一步地,上述预设像素值为四分之一像素值或半像素值。
进一步地,上述预设像素值为半像素值时,目标滤波系数依次为-1、4、 -11、40、40、-11、4,和-1。
进一步地,上述装置还包括:
处理模块,用于对上述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
目标公式得到模块,用于对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将上述目标公式作为新的当前公式。
进一步地,上述预设像素为四分之一像素值时,目标滤波系数依次为0、1、 -5、17、58、-10、4和-1。
进一步地,第一预设值为64,第二预设值为255,目标值的初始值为32,预设数量为8。
进一步地,上述第一目标公式为:
Figure BDA0001581917890000061
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
进一步地,上述第一目标公式为:
Figure BDA0001581917890000062
pa、pb、pc、pd、pe、 pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一上述的像素值获取方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的像素值获取方法。
本发明实施例提供的一种像素值获取方法及装置,可以读取与预设像素位置同一行或列连续的预设数量个连续的参考素值;利用连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将第一目标公式作为当前公式,按照第一预设规则对当前公式进行简化处理,得到第二目标公式,当第二目标公式中的第一预设值为1时,对第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。该方法通过对第一目标公式按照预设规则进行处理,进而最终得到无符号整数位的预设像素值,降低了编解码器或解码器的计算复杂度,进而提高了运算效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为现有技术使用插值滤波器计算子像素位置对应像素值的示意图;
图2为本发明实施例提供的像素值获取方法的第一种流程图;
图3为本发明实施例提供的像素值获取方法的第二种流程图;
图4为本发明实施例提供的像素值获取方法的第三种流程图;
图5为本发明实施例提供的像素值获取装置的一种结构示意图;
图6为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供的方法可以直接使用在子像素运动估计中来提高编码速度,也可以以协议的形式规定于编码器或解码器中。
本发明实施例提供了第一种像素值获取的方法。参见图2,图2为本发明实施例提供的像素值获取方法的第一种流程图,上述方法包括:
S101,读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
其中,预设数量可以为8;
需要说明的是,读取的预设数量个整数像素值必须是处于同一行或同一列,才适合本发明实施例的方法。
S102,利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
其中,预设像素值包括半像素值或四分之一像素值,本发明实施例对此并不限定。
当预设像素值为半像素值时,目标滤波系数依次可以为依次为-1、4、-11、 40、40、-11、4和-1。
可见,该目标滤波系数能够提供较好的编码效率和复杂度的平衡。
预设的目标值为32,第一预设值为64即26
第一目标公式为:
Figure BDA0001581917890000081
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8 个连续的整像素值。
其中,上述第一公式也可以写为:
(-pa+4*pb-11*pc+40*pd+40*pe-11*pf+4*pg-ph+32)>>6,>>为右移。
当预设像素值为四分之一像素时,目标滤波系数可以依次为0、1、-5、17、 58、-10、4和-1。
可见,该目标滤波系数能够提供较好的编码效率和复杂度的平衡。
第一目标公式为:
Figure BDA0001581917890000082
其中,上述第一公式也可以写为:
(-pa+4*pb-10*pc+58*pd+17*pe-5*pf+pg+0*ph+32)>>6,>>为右移。
S103,按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1或负1的项两两求平均值前的值;
其中,上述奇数项为公式中系数为奇数对应的项,上述偶数项为公式中系数为偶数对应的项;
对上述当前公式进行简化处理可以理解为对当前公式中分子与分母的共同因子进行约分处理,使处理后的当前公式成为最简公式。
现以预设像素值为四分之一像素值为例,说明简化处理的过程,同时为了对S103理解的更加清楚,现对S103步骤进行举示例描述,具体为:
rslt=(-pa+4×pb-10×pc+58×pd+17×pe-5×pf+pg+32)>>6
=(-(pa+pf)+(pe+pg)+4×pb-10×pc+58×pd+16×pe-4×pf+32)>>6
≈(-((pa+pf+1)>>1)+((pe+pg+1)>>1)+2×pb-5×pc+29×pd+8×pe-2×pf+16)>>5
其中,((pa+pf+1)>>1为(pa+pf)的平均值,(pe+pg+1)>>1为(pe+pg)的平均值;
需要说明的是,在现有的中央处理器(CPU,Central Processing Unit)如 x86或ARM(Advanced RISC Machines)处理器,平均指令即平均值的获取均是可以一步算出的,因为不论x86还是arm都存在直接的平均指令,X86是由Intel 推出的一种复杂指令集,用于控制芯片的运行的程序。
在S103之前,该方法还包括:
对上述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将上述目标公式作为新的当前公式。
可见,本实施方式对当前公式按照系数相同原则进行两两合并处理求平均值并进行等效替换,可以提高预设像素值的计算速度。
在S103之后,该方法还包括:
当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式满足目标条件时,将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行S103;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1;
如果上述第二目标公式不满足目标条件时,将上述第二目标公式作为新的当前公式,返回执行S103步骤。
可见,本实施方式通过第二预设规则对第二目标公式进行了处理,以获得无符号的等效项,使在计算预设像素值时无需考虑符号,避免由于符号使用不当导致的出错,获得准确的预设像素值,使得能够保证在等效替换的计算过程中以及获得的预设像素值均能用预设精度有符号或无符号进行计算完成。
需要说明的是,第二预设值可以为255。该第二预设值为255时,针对四分之一像素值或半像素值计算时,能够将有符号项计算变为无符号项计算,降低计算的出错率,提高计算速度。
S104,当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
需要说明的是,当第二目标公式中的第一预设值为1时,表明该第二目标公式已经是最简化公式,仅需对该第二目标公式进行饱和加算法,以获得预设像素位置的无符号整数位的预设像素值。
由此可见,本发明实施例提供的方法通过利用第一预设规则对第一目标公式进行了处理,能够降低处理后公式的复杂度,通过饱和加算法,得到无符号整数位的预设像素值,该方法不仅能够降低编解码器或解码器的计算复杂度,还可以提高运算效率。
本发明实施例还提供了第二种像素值获取的方法。参见图3,图3为本发明实施例提供的像素值获取方法的第二种流程图,上述方法包括:
S201,读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
其中,S201~S203分别与图2实施例中的步骤S101~S103执行的方法相同。因此,图2中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S202,利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
S203,按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1或负1的项两两求平均值前的值;
S204,当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式不满足目标条件时,执行S205,如果上述第二目标公式满足目标条件时,执行S206,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负 1;
为了对本步骤理解的更加清晰,现举一示例,该示例中,预设数量为8,预设像素值rslt为四分之一像素值,第一预设值为26,目标值为32,第二预设值为255,具体为:
rslt=(-pa+4×pb-10×pc+58×pd+17×pe-5×pf+pg+32)>>6
=(-(pa+pf)+(pe+pg)+4×pb-10×pc+58×pd+16×pe-4×pf+32)>>6
≈(-((pa+pf+1)>>1)+((pe+pg+1)>>1)+2×pb-5×pc+29×pd+8×pe-2×pf+16)>>5
需要说明的是,>>6就是除以26,由最后一个公式可知, (-((pa+pf+1)>>1)+((pe+pg+1)>>1)+2×pb-5×pc+29×pd+8×pe-2×pf+16)>>5是通过(-(pa+pf)+(pe+pg)+4×pb-10×pc+58×pd+16×pe-4×pf+32)>>6进行简化获得的公式。
S205,将上述第二目标公式作为新的当前公式,返回执行S203的步骤;
基于上述的示例,可知最后简化获得的公式不满足目标条件,因此:
令h=(pa+pf+1)>>1,i=(pe+pg+1)>>1,则有:
rslt≈(-h+i+2×pb-5×pc+29×pd+8×pe-2×pf+16)>>5
=(-(h+pc)+(i+pd)+2×pb-4×pc+28×pd+8×pe-2×pf+16)>>5
≈(-((h+pc+1)>>1)+((i+pd+1)>>1)+pb-2×pc+14×pd+4×pe-pf+8)>>4
令(h+pc+1)>>1,(i+pd+1)>>1,则有:
rslt≈(-j+k+pb-2×pc+14×pd+4×pe-pf+8)>>4
≈(-((j+pf+1)>>1)+((k+pb+1)>>1)-pc+7×pd+2×pe+4)>>3
令m=(j+pf+1)>>1,n=(k+pb+1)>>1,则有:
rslt≈(-m+n-pc+7×pd+2×pe+4)>>3
≈(-((m+pc+1)>>1)+((n+pd+1)>>1)+3×pd+pe+2)>>2
令q=(m+pc+1)>>1,r=(n+pd+1)>>1,则有:
rslt≈(-q+r+3×pd+pe+2)>>2
由该公式可知,公式中仅有一个系数为负的项且该项系数为负1的项即-q,因此符合目标条件,执行S206。
S206,将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行S203的步骤;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值;
基于上述的示例,则有:
rslt≈(-q+r+3×pd+pe+2)>>2
≈(((pd+255-q+1)>>1)-128+((r+pe+1)>>1)+pd+1)>>1
=(((pd+(255^q)+1)>>1)-128+((r+pe+1)>>1)+pd+1)>>1
由上述最后一个公式可知,第一预设值目标是2,因此,
令s=(pd+(255^q)+1)>>1,t=((r+pe+1)>>1),则有:
rslt≈(s-128+t+pd+1)>>1
由最后一个公式可知,此时第一预设值为1,则执行S207;
S207,当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
基于上述的示例,对上述最后一个公式进行等效变化使其符合饱和加算法,即有:
rslt≈(s-128+t+pd+1)>>1
≈((s+128)>>1)+((t+pd+1)>>1)-128
令u=(s+128)>>1,v=(t+pd+1)>>1,则有:
rslt=u+v-128
对最后一个公式进行饱和加算法,由于u和v是无符号整数,而128是个常数,可以先计算y=u-128,便可使y是个有符号8位整数,然后计算w=v-128,即 rslt=(y+w)+128,此时y和w都是有符号8位整数,对它们进行饱和加算法即饱和8位有符号整数加,即z=clip(-128,127,y+w),可得:rslt=z+128,rslt是无符号8位整数。
由此可见,本发明实施例提供的方法通过利用第一预设规则对第一目标公式进行了处理,能够降低处理后公式的复杂度,再利用第二预设规则对第二目标公式进行了处理,进一步使处理后的公式由有符号计算变成无符号计算,降低由于符号计算带来的错误率,最后通过饱和加算法,得到无符号整数位的预设像素值,该方法不仅能够降低编解码器或解码器的计算复杂度,还可以提高运算效率。
本发明实施例还提供了第三种像素值获取的方法。参见图4,图4为本发明实施例提供的像素位置的像素值获取方法像素值获取方法的第三种流程图,上述方法包括:
S301,读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
其中,S301~S302分别与图2实施例中的步骤S101~S102执行的方法相同。因此,图2中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S302,利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
S303,对上述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
为了对本步骤理解的更加清晰,现举一示例,该示例中,预设数量为8,预设像素值rslt为半像素值,第一预设值为26,目标值为32,第二预设值为255,具体为:
rslt=(-pa+4*pb-11*pc+40*pd+40*pe-11*pf+4*pg-ph+32)>>6
=(-(pa+ph)+4*(pb+pg)-11*(pc+pf)+40*(pd+pe)+32)>>6
其中,(-(pa+ph)+4*(pb+pg)-11*(pc+pf)+40*(pd+pe)+32)>>6就是按照系数相同原则进行两两合并得到的公式。
S304,对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将上述目标公式作为新的当前公式;
基于上述示例,令,inta=(pa+ph+1)>>1、int b=(pb+pg+1)>>1、 int c=(pc+pf+1)>>1、int d=(pd+pe+1)>>1,则有:
rslt≈(-2×a+4×2×b-11×2×c+40×2×d+32)>>6
S305,按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1或负1的项两两求平均值前的值;
基于上述的示例,则上述最后一个公式经过简化处理可得:
rslt≈(-2×a+4×2×b-11×2×c+40×2×d+32)>>6
=(-a+4×b-11×c+40×d+16)>>5
=(-(a+c)+4×b-10×c+40×d+16)>>5
S306,当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式不满足目标条件时,执行S307,如果上述第二目标公式满足目标条件时,执行S308;
基于上述的示例,由S305中最后获得的公式可知,该第一预设值此时不为 1,而且也不满足目标条件,则执行S307,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1。
S307,将上述第二目标公式作为新的当前公式,返回执行S305的步骤;
基于上述的示例,令(a+c+1)>>1,则有:
rslt≈(-((a+c+1)>>1)+2×b-5×c+20×d+8)>>4;
由上述公式可知,第一预设值不为1,且不满足目标条件,则继续执行 S305~S307,则有:令e=(a+c+1)>>1,有:
rslt≈(-e+2×b-5×c+20×d+8)>>4
=(-(e+c)+2×b-4×c+20×d+8)>>4
≈(-((e+c+1)>>1)+b-2×c+10×d+4)>>3
令f=(e+c+1)>>1,有:rslt≈(-f+b-2×c+10×d+4)>>3。
由公式rslt≈(-f+b-2×c+10×d+4)>>3可知该公式第一预设值不为1,且符合目标条件,执行S308。
S308,将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行S305的步骤;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值;
基于上述的示例,根据第二预设规则对上述最后一个公式进行处理,则有:
rslt≈(-f+b-2×c+10×d+4)>>3
=((b+255-f+1)-256-2×c+10×d+4)>>3
令g=(b+(255^f)+1)>>1,则有:
rslt≈(g-128-c+5×d+2)>>2
由上述公式可知,执行S305~S308,令h=(g+d+1)>>1,j=(c+128)>>1,则有:
rslt≈(h-j+2×d+1)>>1
=((h-j+1)>>1)+d=((h+255-j+1+1-256)>>1)+d
=((h+255-j+1+1)>>1)-128+d
令k=(h+255-j+1)>>1=(h+(255^j)+1)>>1,则有:rslt≈k-128+d。
由此可知本示例最后得到的一个公式为rslt≈k-128+d,第一预设值为1,因此执行S309。
需要说明的是,在现代cpu中,如x86和ARM处理器,都存在SIMD(SingleInstruction Multiple Data,单指令多数据流)指令集,一般128位寄存器,可以并行处理16个8位,或8个16位数字,或4个32位数字等。且这些指令集中都有平均指令,可以一条指令完成像h=(g+d+1)>>1的平均操作。所以上述的算法中,类似于h=(g+d+1)>>1是一条指令就能完成,而或rslt≈k-128+d和 (b+(255^f)+1)>>1均是需要两条指令,一条异或一条平均。而p=clip(-128,127, m+n)只需要一条指令,即饱和加。所以本发明实施例提供的方法只需要16次 CPU操作就能完成。而背景技术提供的现有技术的算法,需要15次乘法、加法或移位操作完成。但本发明实施例的方法是全8位计算,所以一次可以并行跑 16路,而现有方法只能一次跑8路,所以本发明实施例提供的方法得到的计算速度是现有技术提供方法的计算速度近似两倍。
S309,当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
因为k和d均是无符号8位整数,所以k-128是合法的8位有符号整数,以 m=k-128,那么rslt≈m+d,但是8位精度范围内,有符号数和无符号数无法直接相加,所以需要设n=d-128,所以rslt≈(m+n)+128,进而得到m和n都是8位有符号整数,对m+n进行饱和有符号8位整数加算法,p=clip(-128,127,m+n),所以 rslt≈p+128。
由此可见,本发明实施例提供的方法通过先对当前公式按照系数相同原则进行两两合并处理后求平均值并进行等效替换,可以提高预设像素值的计算速度,再利用第一预设规则对第一目标公式进行了处理,能够降低处理后公式的复杂度,然后利用第二预设规则对第二目标公式进行了处理,进一步使处理后的公式由有符号计算变成无符号计算,降低由于符号计算带来的错误率,最后通过饱和加算法,得到无符号整数位的预设像素值,能够保证在等效替换的计算过程中以及获得的预设像素值均能用预设精度有符号或无符号进行计算完成,该方法不仅能够降低编解码器或解码器的计算复杂度,还可以提高运算效率。
值得一提的是,本发明实施例提供的方法在保证精度的情况下把插值滤波的复杂度降低一倍,若只应用于编码器子像素运动估计时可以加速5%,无编码效率上的损失。如果同时作为编解码器的协议,那可以较大提高编码或解码速度,尤其对解码器而言,极大提高解码速度。
与上述像素值获取方法相对应,本申请实施例还提供了一种像素值获取装置。
为了对本发明实施例理解的更加透彻,现分别以半像素值和四分之一像素值的获取方法为例进行如下描述:
半像素值的获取方法:
任选当前半像素点同一行或列的8个连续的像素,记为pa、pb、pc、pd、 pe、pf、pg和ph,得到第一目标公式为:
(-pa+4*pb-11*pc+40*pd+40*pe-11*pf+4*pg-ph+32)>>6;
对上述公式进行处理,得到:
(-(pa+ph)+4*(pb+pg)-11*(pc+pf)+40*(pd+pe)+32)>>6;
分别按照如下表达式计算pa和ph加1后、pb和pg加1后、pc和pf加1后以及pd 和pe加1后的平均值A1、A2、A3和A4,A1、A2、A3和A4均为无符号整数;
表达式:
A1=(pa+ph+1)>>1、A3=(pb+pg+1)>>1、A4=(pc+pf+1)>>1、
A4=(pd+pe+1)>>1;
计算A1和A3加1后的平均值E1,其中,E1为无符号整数;
计算E1和A3加1后的平均值F1,其中,F1为无符号整数;
根据F1和A2按照第一表达式计算G1,其中,上述第一表达式为G1=((255^F1) +A2+1)>>1,^为异或操作,G1为无符号整数;
计算G1和A4加1后的平均值H1,并根据A3按照第二表达式计算J1,其中,第二表达式J1=(A3+128)>>1,H1和J1均为无符号整数;
根据H1和J1按照第三表达式计算K1,其中,第三表达式为K1=((255^J1) +H1+1)>>1,K1为无符号整数;
根据K1和A4按照第四表达式和第五表达式计算M1和N1,其中,上述第四表达式为M1=K1-128,上述第五表达式为N1=A4-128,M1和N1均为有符号整数;
根据M1和N1按照第六表达式计算当前半像素点的插入值X,其中上述第六表达式为X=M1+N1+128;
将X按照第七表达式进行饱和加法后,获得P1,其中,上述第七表达式为 P1=clip(-128,127,M1+N1);
需要说明的是,M1和N1是有符号数,M1和N1先进行有符号饱和加,得到一个新的有符号8位整数,然后加128,变成一个无符号8位整数,一个无符号8 位整数,范围是0-255,如果它减128,范围变成-128-127,变成一个有符号8位整数,然后再加128,范围又变回0-255,就是无符号8位整数。
根据P1,获得无符号的当前半像素点的插入值X1。
本步骤能够保证每次的计算以及结果都能用纯8位有符号或无符号算术计算完成。
值得一提的是,上述通过半像素值计算过程,获得的半像素值与现有技术的像素值相比,平均误差为0.33,但是能提高一倍的解码速度。
四分之一像素值的获取方法:
任选当前四分之一像素点同一行或列的8个连续的像素,记为La、Lb、Lc、 Ld、Le、Lf、Lh和Lg,得到第一目标公式为:
(-La+4*Lb-10*Lc+58*Ld+17*Le-5*Lf+Lg+0*Lh+32)>>6
分别计算La和Lf加1后、Le和Lg加1后的平均值B1和B2,B1和B2均为无符号整数;
分别计算B1和Lc加1后、B2和Ld加1后的平均值E11和E12;
分别计算E11和Lf加1后、E12和Lb加1后的平均值F11和F12;
分别计算根据F11和Lc加1后、F12和Ld加1后的平均值G11和G12;
根据G11和Ld按照第八表达式计算H11,并计算G12和Le加1后的平均值 H1,其中,第八表达式为H11=((255^G11)+Ld+1)>>1,其中,>>为向右移动位数的符号;
根据H11按照第九表达式计算K11,并计算H12和Ld加1后的平均值K12,其中,第九表达式为K11=(H11+128)>>1,K11、K12均为无符号整数;
根据K11和K12按照第十表达式计算M11,其中,上述第十表达式为M11= K11+K12-128,N11和N12为有符号整数;
根据K11和K12按照第十一表达式和第十二表达式计算N11和N12,上述第十一表达式为N11=K11-128,上述第十二表达式为N12=K12-128;
根据M11、N11和N12按照第十三表达式计算当前四分之一像素点的插入值 Y,其中,上述第十三表达式为Y1=(N11+N12)+128;
将Y按照第十四表达式进行饱和8位有符号整数加法后,获得P11,其中,上述第十四表达式为P11=clip(-128,127,N11+N12),P11为获取的四分之一像素值。
值得一提的是,上述通过四分之一像素值计算过程,获得的四分之一像素值与现有技术的像素值相比,平均误差为0.24,但是能提高一倍的解码速度。
与上述像素值获取方法相对应,本申请实施例还提供了一种像素值获取装置。参见图5,图5为本申请实施例提供的像素值获取装置的结构示意图,该装置包括:
读取模块401,用于读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
第一目标公式得到模块402,用于利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
第二目标公式得到模块403,用于按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1或负1的项两两求平均值前的值;
预设像素值获取模块404,用于当上述第二目标公式中的第一预设值为1 时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
可选的,该装置还可以包括:
第三目标公式得到模块,用于当上述第二目标公式中第一预设值不为1时,如果上述第二目标公式满足目标条件时,触发第一返回执行模块,如果上述第二目标公式不满足目标条件时,触发第二返回执行模块;
第一返回执行模块,用于将上述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将上述第三目标公式作为当前公式,返回执行对当前公式按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤;其中,
上述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,上述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1;
第二返回执行模块,用于将上述第二目标公式作为新的当前公式,返回执行对按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式的步骤。
预设像素值可以为四分之一像素值或半像素值。
上述预设像素值为半像素值时,目标滤波系数依次为-1、4、-11、40、40、 -11、4,和-1。
可选的,该装置还可以包括:
处理模块,用于对上述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
目标公式得到模块,用于对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将上述目标公式作为新的当前公式。
可选的,预设像素为四分之一像素值时,目标滤波系数依次为0、1、-5、 17、58、-10、4和-1。
第一预设值为64,第二预设值为255,目标值的初始值为32,预设数量为8。
可选的,该第一目标公式为:
Figure BDA0001581917890000221
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
可选的,该第一目标公式为:
Figure BDA0001581917890000222
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
由此可见,本发明实施例提供的装置通过利用第一预设规则对第一目标公式进行了处理,能够降低处理后公式的复杂度,通过饱和加算法,得到无符号整数位的预设像素值,该方法不仅能够降低编解码器或解码器的计算复杂度,还可以提高运算效率。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例提供的一种像素值获取方法。
具体的,上述一种像素值获取方法,该方法包括:
读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
利用上述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将上述第一目标公式作为当前公式,上述第一目标公式为预设像素值的插值公式,目标滤波系数为预设像素值的滤波系数,上述第一预设值的初始值为底数为2的幂次,且幂次为正整数;
按照第一预设规则对上述当前公式进行简化处理,得到第二目标公式,其中,上述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负 1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;上述原始值为系数为正1 或负1的项两两求平均值前的值;
当上述第二目标公式中的第一预设值为1时,对上述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
由此可见,执行本实施例提供的电子设备,通过利用第一预设规则对第一目标公式进行了处理,能够降低处理后公式的复杂度,通过饱和加算法,得到无符号整数位的预设像素值,该方法不仅能够降低编解码器或解码器的计算复杂度,还可以提高运算效率。
上述的相关内容像素值获取方法的实施方式与前述方法实施例部分提供的像素值获取方式相同,这里不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的像素值获取方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的像素值获取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、存储介质或程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (19)

1.一种像素值获取方法,其特征在于,所述方法包括:
读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
利用所述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将所述第一目标公式作为当前公式,所述第一目标公式为预设像素值的插值公式,所述第一目标公式为:预设像素值等于各个相乘结果相加后与预设的目标值的和除以第一预设值,各个相乘结果为各个整像素值与对应的目标滤波系数相乘后的结果,目标滤波系数为预设像素值的滤波系数,所述第一预设值为各个目标滤波系数之和,所述第一预设值的初始值为底数为2的幂次,且幂次为正整数,所述预设的目标值为所述第一预设值的二分之一;
按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式,其中,所述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;所述原始值为系数为正1或负1的项两两求平均值前的值,所述奇数项是系数为奇数的项,所述偶数项是系数为偶数的项;
当所述第二目标公式中的第一预设值为1时,对所述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
2.如权利要求1所述的方法,其特征在于,在所述按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式之后,所述方法还包括:
当所述第二目标公式中第一预设值不为1时,如果所述第二目标公式满足目标条件时,将所述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将所述第三目标公式作为当前公式,返回执行对当前公式按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式的步骤;其中,
所述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,所述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1,所述第二预设值为255;
如果所述第二目标公式不满足目标条件时,将所述第二目标公式作为新的当前公式,返回执行对按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式的步骤。
3.如权利要求2所述的方法,其特征在于,所述预设像素值为四分之一像素值或半像素值。
4.如权利要求3所述的方法,其特征在于,所述预设像素值为半像素值时,目标滤波系数依次为-1、4、-11、40、40、-11、4和-1。
5.如权利要求4所述的方法,其特征在于,在所述按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式之前,所述方法还包括:
对所述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将所述目标公式作为新的当前公式。
6.如权利要求3所述的方法,其特征在于,所述预设像素为四分之一像素值时,目标滤波系数依次为0、1、-5、17、58、-10、4和-1。
7.如权利要求2~6中任一项所述的方法,其特征在于,第一预设值为64,目标值的初始值为32,预设数量为8。
8.如权利要求7所述的方法,其特征在于,所述第一目标公式为:
Figure FDA0002597994500000021
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
9.如权利要求7所述的方法,其特征在于,所述第一目标公式为:
Figure FDA0002597994500000022
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
10.一种像素值获取装置,其特征在于,所述装置包括:
读取模块,用于读取与预设像素位置同一行或列连续的预设数量个连续的整像素值;
第一目标公式得到模块,用于利用所述连续预设数量个整像素值、目标滤波系数、预设的目标值和第一预设值,得到第一目标公式,将所述第一目标公式作为当前公式,所述第一目标公式为预设像素值的插值公式,所述第一目标公式为:预设像素值等于各个相乘结果相加后与预设的目标值的和除以第一预设值,各个相乘结果为各个整像素值与对应的目标滤波系数相乘后的结果,目标滤波系数为预设像素值的滤波系数,所述第一预设值为各个目标滤波系数之和,所述第一预设值的初始值为底数为2的幂次,且幂次为正整数,所述预设的目标值为所述第一预设值的二分之一;
第二目标公式得到模块,用于按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式,其中,所述第一预设规则为根据公式中系数为正1或负1的个数,选择将公式中不是正1或负1对应的奇数项进行拆分成系数为正1的项与新的偶数项或系数为负1的项与新的偶数项,并对拆分后的公式中系数为正1或负1的项进行两两合并求平均值,并利用平均值等效替换公式中的原始值;所述原始值为系数为正1或负1的项两两求平均值前的值,所述奇数项是系数为奇数的项,所述偶数项是系数为偶数的项;
预设像素值获取模块,用于当所述第二目标公式中的第一预设值为1时,对所述第二目标公式进行等效处理使处理后的公式符合有符号饱和加算法,获得预设像素位置的无符号整数位的预设像素值。
11.如权利要求10所述的装置,其特征在于,所述装置还包括:
第三目标公式得到模块,用于当所述第二目标公式中第一预设值不为1时,如果所述第二目标公式满足目标条件时,触发第一返回执行模块,如果所述第二目标公式不满足目标条件时,触发第二返回执行模块;
第一返回执行模块,用于将所述第二目标公式按照第二预设规则进行处理,得到第三目标公式,将所述第三目标公式作为当前公式,返回执行对当前公式按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式的步骤;其中,
所述第二预设规则为针对公式中系数为负1的项,利用第二预设值先进行异或操作变成有符号项后,再与系数为正1的项求平均值,利用平均值等效替换公式中的原始值,所述目标条件为公式中仅存在一个系数为负数的项且该项的系数为负1,所述第二预设值为255;
第二返回执行模块,用于将所述第二目标公式作为新的当前公式,返回执行对按照第一预设规则对所述当前公式进行简化处理,得到第二目标公式的步骤。
12.如权利要求11所述的装置,其特征在于,所述预设像素值为四分之一像素值或半像素值。
13.如权利要求12所述的装置,其特征在于,所述预设像素值为半像素值时,目标滤波系数依次为-1、4、-11、40、40、-11、4,和-1。
14.如权利要求13所述的装置,其特征在于,所述装置还包括:
处理模块,用于对所述当前公式按照系数相同原则进行两两合并处理,得到处理后的当前公式;
目标公式得到模块,用于对处理后的当前公式中的合并项求平均值,并利用平均值等效替换原始值,得到目标公式,将所述目标公式作为新的当前公式。
15.如权利要求12所述的装置,其特征在于,所述预设像素为四分之一像素值时,目标滤波系数依次为0、1、-5、17、58、-10、4和-1。
16.如权利要求11~15中任一项所述的装置,其特征在于,第一预设值为64,目标值的初始值为32,预设数量为8。
17.如权利要求16所述的装置,其特征在于,所述第一目标公式为:
Figure FDA0002597994500000041
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
18.如权利要求17所述的装置,其特征在于,所述第一目标公式为:
Figure FDA0002597994500000051
pa、pb、pc、pd、pe、pf、pg和ph分别为与预设像素位置同一行或列连续的8个连续的整像素值。
19.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9任一所述的方法步骤。
CN201810157598.3A 2018-02-24 2018-02-24 一种像素值获取方法、装置及电子设备 Active CN108322759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810157598.3A CN108322759B (zh) 2018-02-24 2018-02-24 一种像素值获取方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810157598.3A CN108322759B (zh) 2018-02-24 2018-02-24 一种像素值获取方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108322759A CN108322759A (zh) 2018-07-24
CN108322759B true CN108322759B (zh) 2021-02-05

Family

ID=62901329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810157598.3A Active CN108322759B (zh) 2018-02-24 2018-02-24 一种像素值获取方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108322759B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555802B (zh) * 2019-08-02 2021-04-20 华中科技大学 为图像并行运算电路提供数据的多像素拼接方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139561A (zh) * 2011-12-05 2013-06-05 朱洪波 半像素与四分之一像素插值滤波器
CN103237211A (zh) * 2013-04-07 2013-08-07 福建星网视易信息系统有限公司 一种基于fpga的视频亚像素亮度插值的方法及其装置
CN106791881A (zh) * 2016-12-28 2017-05-31 北京奇艺世纪科技有限公司 一种滤波方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855446B2 (en) * 2012-04-19 2014-10-07 Qualcomm Incorporated Accelerated video compression multi-tap filter and bilinear interpolator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139561A (zh) * 2011-12-05 2013-06-05 朱洪波 半像素与四分之一像素插值滤波器
CN103237211A (zh) * 2013-04-07 2013-08-07 福建星网视易信息系统有限公司 一种基于fpga的视频亚像素亮度插值的方法及其装置
CN106791881A (zh) * 2016-12-28 2017-05-31 北京奇艺世纪科技有限公司 一种滤波方法及装置

Also Published As

Publication number Publication date
CN108322759A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
US10698685B2 (en) Instructions for dual destination type conversion, mixed precision accumulation, and mixed precision atomic memory operations
JP6058732B2 (ja) ベクトルフレンドリ命令フォーマット及びその実行
TWI489383B (zh) 遮蔽排列指令的裝置及方法
JP6571752B2 (ja) ベクトルレジスタファイルにおいてデータインデックス方式アキュムレータを使用するベクトルプロセッサによるスカラ演算の並列化、関連する回路、方法およびコンピュータ可読媒体
TW201346741A (zh) 有效零基解壓縮
US20100241834A1 (en) Method of encoding using instruction field overloading
Chambolle et al. Accelerated alternating descent methods for Dykstra-like problems
EP3343359A1 (en) Apparatus and method for processing sparse data
CN108322759B (zh) 一种像素值获取方法、装置及电子设备
EP2025175B1 (en) Instruction for producing two independent sums of absolute differences
US8412003B2 (en) Image processing methods, apparatus and computer program products using interdependent pixel interpolation operations
JP2018500629A (ja) 3d座標から3dのz曲線インデックスを計算するための機械レベル命令
CN107580015A (zh) 数据处理方法和装置、服务器
CN109756231B (zh) 循环移位处理装置及方法
CN116501289A (zh) 数据处理集成电路、数据处理方法和机器可读存储介质
US9241142B2 (en) Descriptor-based stream processor for image processing and method associated therewith
CN116257208A (zh) 用于矩阵乘法阵列上的可分离卷积过滤器操作的方法和装置
US20140133569A1 (en) Method for selecting a matching block
CN101268623B (zh) 用于创建可变形状区块的方法和装置
CN113630601B (zh) 一种仿射运动估计方法、装置、设备及存储介质
US20230075534A1 (en) Masked shifted add operation
CN103677741A (zh) 基于ncs算法的成像方法以及混合精度浮点协处理器
CN115665579B (zh) 一种coms图像传感器上的光响应非均匀性校正方法
CN114581380B (zh) 一种基于fpga的色散矫正方法及存储介质
WO2023116814A1 (zh) 模糊视频修复方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant