CN106843813B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN106843813B CN106843813B CN201611238396.9A CN201611238396A CN106843813B CN 106843813 B CN106843813 B CN 106843813B CN 201611238396 A CN201611238396 A CN 201611238396A CN 106843813 B CN106843813 B CN 106843813B
- Authority
- CN
- China
- Prior art keywords
- register
- boundary
- selector
- value
- data
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000006467 substitution reaction Methods 0.000 claims abstract description 186
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 53
- 239000003550 marker Substances 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000005611 electricity Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法及装置,用以提高数据处理的效率和速度,使用到的硬件包括第一寄存器,选择器,其中,第一寄存器存储有选择策略,选择器根据第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,然后选择M‑K个边界替代值,以及从第二寄存器的数据中选择K个值,用于图像处理,本发明实施例使用选择器选择出的M‑K个边界替代值及第二寄存器中的K个值进行图像处理,可实现对第二寄存器中存储的边界外数据进行正确的替换,使得图像处理运算结果准确,并且本发明实施例无需通过软件方法对边界值进行判断和处理,因而可提高数据处理的速度和效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
近几年,半导体的集成度成长放缓,因此通过使用并行计算处理,实现运算性能提高(或达到同等运算性能而消耗更少电量),也就是所谓的并行计算处理技术受到关注,追加在中央处理器(CPU,Central Processing Unit)指令组的单指令多数据流(SIMD,SingleInstruction Multiple Data)指令技术也是并行计算处理技术的其中之一。
在使用SIMD指令处理数据时,尤其是处理具有边界的数据(例如图像数据),首先将数据读取到寄存器中,然后通过SIMD指令对寄存器中的数据进行运算操作,但由于数据有边界,因此,对于寄存器中的数据,每次都需要判断寄存器中的待处理数据是否为边界外数据,如果是边界外数据,则还需要使用替代值来替换寄存器中的边界外数据,以保证数据处理的正确性。
现有技术中,一般是通过软件方法来判断寄存器中的数据是边界内数据还是边界外数据,即,对于读取至寄存器中的数据,通过软件方法判断数据的位置,当判定数据为边界外数据时,则控制寄存器重新接收替代值。
上述方法存在的主要问题是:通过纯软件方法来判断寄存器中的数据是否为边界外数据,导致处理效率较低,容易造成性能瓶颈。
发明内容
本发明实施例提供一种数据处理方法及装置,用以提高数据处理的速度和效率。
第一方面,本发明实施例提供的一种数据处理方法,包括:
根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,所述数据集合包括预设的值和第二寄存器存储的数据;
根据所述选择策略,所述选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理。
其中,数据集合中存储的是选择器选择的边界替代值的集合,即选择器从数据集合中选择一个值作为边界替代值。
第二寄存器存储的是待处理数据,例如可以是图像数据等。
边界替代值用于替换第二寄存器中存储的已经出边界的数据,例如图像边界外的数据。
本发明实施例,提供了一种通过硬件实现数据处理的方法,使用到的硬件包括第一寄存器,选择器,其中,第一寄存器存储有选择策略,选择器根据第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,然后选择M-K个边界替代值,以及从第二寄存器的数据中选择K个值,然后使用选择的M-K个边界替代值及第二寄存器中的K个值,用于图像处理,本发明实施例使用选择器选择出的M个值(包括M-K个边界替代值及第二寄存器中的K个值)进行图像处理,可实现对第二寄存器中存储的边界外数据进行正确的替换,使得图像处理运算结果准确,并且本发明实施例无需通过软件方法对边界值进行判断和处理,因而可提高数据处理的速度和效率。
结合第一方面,在第一方面的第一种可能的实现方式中,根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:
所述选择器获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略标信息为边界值标识信息时,所述选择器获取所述第一寄存器的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息选择所述第二寄存器中的数据作为所述边界替代值。
其中,第一寄存器包含替代策略标识位和图像块位置标识位,替代策略标识为用于指示使用数据集合中的哪种类型的数据作为边界替代值(即指示使用预设值作为边界替代值,还是使用第二寄存器中的值作为边界替代值)。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述选择器根据所述图像块位置信息选择所述第二寄存器中的数据作为所述边界替代值,包括:
根据所述图像块位置信息,所述选择器从第一关系表中确定与所述图像块位置信息对应的边界替代值位置信息,所述第一关系表用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在所述第二寄存器中的位置;
根据确定的所述边界替代值位置信息,所述选择器选择所述第二寄存器中与所述边界替代值位置信息对应的数据,作为所述边界替代值。
上述发明实施例,使用第一关系表表示图像块位置信息与边界替代值位置信息之间的对应关系,从而使得选择器可直接根据该第一关系表,及第一寄存器中的图像块位置信息,选择得到边界替代值,简便而快速,可提高运算速度。
结合第一方面,在第一方面的第三种可能的实现方式中,根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:所述选择器获取所述第一寄存器的替代策略标识位的替代策略信息;在所述替代策略信息为预设值标识信息时,所述选择器选择所述预设值作为所述边界替代值。
结合第一方面,在第一方面的第四种可能的实现方式中,所述选择策略是根据下列方式得到的:
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,所述第二关系表用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在所述图像中的位置;
根据预设的替代策略信息和所述图像块位置信息,得到所述选择策略,所述替代策略信息用于指示选择的边界替代值的来源。
上述发明实施例,预先存储一个第二关系表,其中存储了图像块的类型与图像块位置信息之间的对应关系,因此,可根据当前第二寄存器中的数据所属的图像块的类型,确定出图像块位置信息,并写入第一寄存器,作为选择策略,从而可以实现正确地对边界数据进行处理。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第二寄存器包含第三寄存器和第四寄存器,所述第三寄存器和所述第四寄存器分别用于接收所述图像的一个图像块的数据,且所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据;
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,包括:
确定所述第三寄存器中的数据所属的图像块的类型,从所述第二关系表中确定与所述图像块的类型对应的图像块位置信息。
其中,所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据,指的是:第三寄存器和第四寄存器都是按照某个方向获取数据(例如按照图像从左到右方向获取图像数据),因而,第三寄存器和第四寄存器在时序上获取数据时,有先后顺序,例如当获取数据的方向为从左到右,且第四寄存器存储获取的数据靠右的数据时,则第四寄存器在时序上比第三寄存器更早的获取到边界数据。
结合第一方面或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式,所述图像块的类型包括:
所述图像块的类型划分为边界图像块,邻近边界图像块及普通图像块。
其中,所述边界图像块为包含所述图像的边界数据的图像块,所述邻近边界图像块为邻近所述边界图像块的图像块,所述普通图像块为除所述边界图像块及所述邻近边界图像块之外的图像块。
具体地,按照从左往右顺序获取图像数据时,则边界图像块为最右边的一个图像块,邻近边界图像块为最右边一个图像块的左边的一个图像块,其它的所有图像块均为普通图像块。
结合第一方面,在第一方面的第七种可能的实现方式,所述选择器包含第一选择器和第二选择器;
根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:
根据所述第一寄存器存储的选择策略,所述第一选择器从所述数据集合中选择一个数据的值作为边界替代值;
根据所述选择策略,所述选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,包括:
根据所述选择策略,所述第二选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值。
上述发明实施例,将选择器选择边界替代值和选择第二寄存器的数据的替代值分别通过第一选择器和第二选择器来实现,在功能上分离,可提高硬件元件的解耦性。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第二选择器包含至少M-1个子选择器,每个子选择器分别用于接收所述第二寄存器后M-1个值中的一个,以及接收所述边界替代值,并从接收的两个值中选择一个作为输出;
根据所述选择策略,所述第二选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,包括:
所述M-1个子选择器中的任一个子选择器,根据所述第一寄存器的图像块位置标识位的图像块位置信息中与所述子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个所述边界替代值及所述第二寄存器中的K个值;
所述第二选择器将所述第二寄存器中的第一个值及选择得到的M-1个值。
第二方面,本发明实施例提供一种数据处理装置,包括:第一寄存器,与所述第一寄存器连接的选择器;
所述第一寄存器用于存储选择策略;
所述选择器的输入端与所述第二寄存器连接,且所述选择器接收输入预设值;
所述选择器,用于根据所述第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,所述数据集合包括预设的值和第二寄存器存储的数据;以及,根据所述选择策略,获取M-K个所述边界替代值以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理。
本发明实施例,提供了一种通过硬件实现数据处理的方法,使用到的硬件包括第一寄存器,选择器,其中,第一寄存器存储有选择策略,选择器根据第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,然后选择M-K个边界替代值,以及从第二寄存器的数据中选择K个值,然后使用选择的M-K个边界替代值及第二寄存器中的K个值,用于图像处理,本发明实施例使用选择器选择出的M个值(包括M-K个边界替代值及第二寄存器中的K个值)进行图像处理,可实现对第二寄存器中存储的边界外数据进行正确的替换,使得图像处理运算结果准确,并且本发明实施例无需通过软件方法对边界值进行判断和处理,因而可提高数据处理的速度和效率。
结合第二方面,在第二方面的第一种可能的实现方式中,所述选择器,具体用于:
获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略标信息为边界值标识信息时,获取所述第一寄存器的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息控制所述选择器选择所述第二寄存器中的数据作为所述边界替代值,所述图像块位置信息指示所述图像块在所述图像中的位置。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述选择器,具体用于:
根据所述图像块位置信息,从第一关系表中确定与所述图像块位置信息对应的边界替代值位置信息,所述第一关系表用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在所述第二寄存器中的位置;
根据确定的所述边界替代值位置信息,控制所述选择器选择所述第二寄存器中与所述边界替代值位置信息对应的数据,作为所述边界替代值。
上述发明实施例,使用第一关系表表示图像块位置信息与边界替代值位置信息之间的对应关系,从而使得选择器可直接根据该第一关系表,及第一寄存器中的图像块位置信息,选择得到边界替代值,简便而快速,可提高运算速度。
结合第二方面,在第二方面的第三种可能的实现方式中,所述选择器,具体用于:获取所述第一寄存器的替代策略标识位的替代策略信息;在所述替代策略信息为预设值标识信息时,选择所述预设值作为所述边界替代值。
结合第二方面,在第二方面的第四种可能的实现方式中,所述装置还包括处理单元,用于根据下列方式得到所述选择策略:
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,所述第二关系表用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在所述图像中的位置;
根据预设的替代策略信息和所述图像块位置信息,得到所述选择策略,所述替代策略信息用于指示选择的边界替代值的来源。
上述发明实施例,预先存储一个第二关系表,其中存储了图像块的类型与图像块位置信息之间的对应关系,因此,可根据当前第二寄存器中的数据所属的图像块的类型,确定出图像块位置信息,并写入第一寄存器,作为选择策略,从而可以实现正确地对边界数据进行处理。
结合第二方面的第四种可能的实现方式中,在第二方面的第五种可能的实现方式中,所述第二寄存器包含第三寄存器和第四寄存器,所述第三寄存器和所述第四寄存器分别用于接收所述图像的一个图像块的数据,且所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据;所述处理单元,具体用于:
确定所述第三寄存器中的数据所属的图像块的类型,从所述第二关系表中确定与所述图像块的类型对应的图像块位置信息。
结合第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,所述图像块的类型包括:
所述图像块的类型划分为边界图像块,邻近边界图像块及普通图像块。
结合第二方面,在第二方面的第七种可能的实现方式,所述选择器包含第一选择器和第二选择器;
所述第一选择器与所述第一寄存器连接,且所述第一选择器的输入端与所述第二寄存器连接,所述第一选择器的输出端与所述第二选择器的输入端连接;所述第一选择器,具体用于:
根据所述第一寄存器存储的选择策略,从所述数据集合中选择一个数据的值作为边界替代值,并输出至所述第二选择器;
所述第二选择器与所述第一寄存器连接;所述第二选择器,具体用于:
根据所述选择策略,获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值。
上述发明实施例,将选择器选择边界替代值和选择第二寄存器的数据的替代值分别通过第一选择器和第二选择器来实现,在功能上分离,可提高硬件元件的解耦性。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,
所述第二选择器包含至少M-1个子选择器,每个子选择器分别用于接收所述第二寄存器后M-1个值中的一个,以及接收所述边界替代值,并从接收的两个值中选择一个作为输出;
所述第二选择器,具体用于:
针对所述M-1个子选择器中的任一个子选择器,根据所述第一寄存器的图像块位置标识位的图像块位置信息中与所述子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个所述边界替代值及所述第二寄存器中的K个值;
将所述第二寄存器中的第一个值及选择得到的M-1个值。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为现有技术SIMD指令中数据的处理方法示意图;
图2为现有技术数据处理硬件电路图;
图3为现有技术数据处理流程示意图;
图4为本发明实施例提供的数据处理硬件电路图;
图5为本发明实施例提供的数据处理方法流程示意图;
图6为本发明实施例提供的图像类型划分示意图;
图7为本发明实施例提供的第一寄存器及边界处理子电路示意图;
图8为本发明实施例一提供的数据处理硬件电路示意图;
图9为本发明实施例二提供的数据处理硬件电路示意图;
图10为本发明实施例三提供的数据处理硬件电路示意图;
图11为本发明实施例四提供的数据处理硬件电路示意图;
图12为本发明实施例提供的数据处理装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及实施例对本发明作进一步地详细描述。
本发明用以提供一种硬件方法来实现数据处理,尤其是可以高效地处理图像边界数据,相较于现有技术通过软件方法判断待处理数据是否为图像边界数据以及使用软件方法对图像边界数据进行替代,本发明实施例提供的硬件方法和装置可显著地提高处理速度。
为便于理解本发明实施例方案,下面先介绍一些背景知识。
SIMD指令可以对多个(例如N个,N为大于1的自然数,通常为2的幂次方)数据指定一个运算动作。通常来说,一个CPU指令只对一个数据进行运算动作,但SIMD指令可以用一个指令对N个数据进行运算运作的指定。因此,本来需要进行N次的运算,并从记忆卡中解读指令的处理,就可以一次性完成,由此可以在消耗更少电量的情况下,对数个数据方进行指定处理。
将收录N个数据的寄存器称作SIMD寄存器,则SIMD指令和其他指令一样,最少应该实现两项运算,并能指定2个操作数。
参考图1,为SIMD指令中数据的处理方法示意图,其中以包含两个源寄存器(即图1所示的SR1和SR2)和一个目的寄存器(即图1所示的SR0)为例进行说明,当然,实际应用中,源寄存器也可以是一个,或者是两个以上,并不限定于两个,同样地,目的寄存器也不限定于一个。此处是作为举例说明。
如图1所示,对SR1与SR2内的对应位置的数据进行指定运算,然后将其结果写入SR0的对应位置处。
基于图1所示的运算方式,对应的硬件电路图如图2所示,其中,包含两个输入,分别对应源寄存器SR1和SR2,中间是一个操作数控制电路,用于控制对SR1和SR2中的数据进行运算,得到运算结果后输出。
使用图2所示的硬件电路在处理图像数据时,其处理过程如图3所示,其中,以每次写入SR1和SR2的数据的个数都为4为例,运算操作为对相邻像素值进行求平均运算,如图3所示,对于SR1和SR2中的数据,每次都要通过软件方法判断SR1和SR2中的数据是否为边界数据,因而当处理至图像边界时,SR1和SR2中的值有可能由于没有足够的数据写入,因而SR1和SR2中的值就可能没有被最新写入的值覆盖,仍然存储的是上次使用的值,以图3为例,当处理至图像边界时,SR1中当前写入的正好是图像的最后四个像素值,而SR2当前则不需要写入最新数据(因为已经出边界,没有数据可写入),因而SR2中存储的仍然是上次使用的值,因此,当需要使用到SR2中的数据进行运算时,则由于SR2中存储的是错误数据,因而不能直接使用,此时需要对SR2中的数据进行替换,以图3为例,当需要使用SR1中的最后一个数据与SR2中的第一个数据进行求平均运算时,由于SR2中当前存储的Y0,需要将Y0替换为一个正确的值(例如替换为数值B)。
按照图3所示的方法,在实际实施SIMD指令运算之前,需要通过软件方法先进行额外的判断操作:即判断SR1及SR2中的数据是图像内数据还是图像外数据,由于软件方法一般较慢,因而整体运算速度也不会太高。
本发明正是为解决上述问题而提出。
如图4所示,为本发明实施例所适用的硬件电路示意图,其中,在图3所示的硬件电路的基础上,增加了第一寄存器及边界处理子电路,边界处理子电路由选择器组成,选择器的数量可根据具体实现方式而定,例如可以是一个,两个或其他数量。
并且对于源寄存器的数量也不限制,如图4所示,第二寄存器为源寄存器,用于接收待处理图像数据,第二寄存器的数量可以是一个,两个,或是两个以上等,以图4为例,第二寄存器包含两个寄存器,分别为第三寄存器和第四寄存器。具体的第二寄存器的数量是根据实际运算需要而设定的。
如图5所示,为本发明实施例提供的数据处理方法流程图,包括:
步骤501、根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,数据集合包括预设的值和第二寄存器存储的数据。
其中,选择策略根据第二寄存器中的数据所属的图像块的类型确定,图像块的类型根据图像块在图像中的位置确定。
步骤502、根据所述选择策略,所述选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理。
可选地,第一寄存器中包含一个替代策略标识位,其中存储的是替代策略信息,替代策略信息分为预设值标识信息和边界值标识信息,例如使用“0”表示预设值标识信息,使用“1”表示边界值标识信息。即当第一寄存器的替代策略标识位为“0”时,表示选择预设值作为边界替代值,当第一寄存器的替代策略标识位为“1”时,表示选择第二寄存器中的一个值作为边界替代值,具体地,首先选择器获取第一寄存器的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息选择第二寄存器中的数据作为边界替代值,其中,图像块位置信息指示图像块在图像中的位置。
本发明实施例,提供了一种通过硬件实现数据处理的方法,使用到的硬件包括第一寄存器,选择器,其中,第一寄存器存储有选择策略,选择器根据第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,然后选择M-K个边界替代值,以及从第二寄存器的数据中选择K个值,然后使用选择的M-K个边界替代值及第二寄存器中的K个值,用于图像处理,本发明实施例使用选择器选择出的M个值(包括M-K个边界替代值及第二寄存器中的K个值)进行图像处理,可实现对第二寄存器中存储的边界外数据进行正确的替换,使得图像处理运算结果准确,并且本发明实施例无需通过软件方法对边界值进行判断和处理,因而可提高数据处理的速度和效率。
下面,结合一个具体的实施例来对本发明方法做详细说明。
下面的例子中,以图4所示的架构为例进行说明,即第二寄存器包含第三寄存器和第四寄存器(即包含两个源寄存器)、选择器包含第一选择器和第二选择器(即包含两个选择器)为例进行说明,且第三寄存器和第四寄存器每次分别写入N(即M=2N)个数据为例进行说明,并且以N=4为例,后续不再做重复说明。
第一、对图像进行类型划分
如图6所示,为本发明实施例对图像进行类型划分示意图,首先将一幅图像划分为多个图像块(以左侧开始划分为例),每个图像块的长度为N(即包含N个像素值),假设图像宽度为imageWidth,则imageWidth与N的关系有以下N种情形:
imageWidth%N=0(图像的宽度为N倍数,最后1个图像块的长为N)
imageWidth%N=1(图像的宽度不为N倍数,最后1个图像块的长为1)
……
imageWidth%N=N-1(图像的宽度不为N倍数,最后1个图像块的长为N-1)
基于图6所示的图像划分方法,将图像类型划分为:
1、边界图像块
边界图像块为包含图像的边界数据的图像块,即图6所示的最右边的一个图像块。
2、邻近边界图像块
邻近边界图像块为邻近边界图像块的图像块,即图6所示的最右边的图像块的左边的一个图像块。
3、普通图像块
普通图像块为除边界图像块及邻近边界图像块之外的图像块,即图6中除最右边两个图像块的所有其它图像块。
第二、源寄存器(即第三寄存器和第四寄存器)中的数据来源
第三寄存器用SR1表示,第四寄存器用SR2表示,每次运算时,取一个图像块的数据写入SR1,以及取一个图像块的数据写入SR2,且第四寄存器在时序上比第三寄存器更早地接收到图像的边界数据。
其中,第三寄存器的长度应大于或等于N,第四寄存器的长度应大于或等于N。
第三、第一寄存器的设置
第一寄存器的长度设置为2N,则当N=4时,第一寄存器的长度设置为8,例如使用一个数组BorderFlag[8]来表示第一寄存器。
第一寄存器包含替代策略标识位和图像块位置标识位,例如可以使用BorderFlag[0]表示替代策略标识位,当BorderFlag[0]=0时,表示选择预设值作为边界替代值;当BorderFlag[0]=1时,表示选择第三寄存器中的一个值作为边界替代值。
以及,使用BorderFlag[1:7]表示图像块位置标识位,图像块位置标识位存储的是图像块位置信息,用于指示图像块在图像中的位置,具体地,可以指示第三寄存器中存储的是边界图像块,邻近边界图像块或者是普通图像块。
参照表1,为第一关系表,用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在第二寄存器中的位置(即在第三寄存器或第四寄存器中的位置)。
表1
假设第三寄存器SR1中的当前存储的是a、b、c、d,第四寄存器SR2中存储的是e、f、g、h,且预设值为A,则根据上表可知:
当BorderFlag[0]=0时,则边界替代值=A(预设值);
当BorderFlag[0]=0时,继续查看BorderFlag[1:7],分以下几种情形:
当BorderFlag[1:7]="0000001",则边界替代值=g,
当BorderFlag[1:7]="0000011",则边界替代值=f,
当BorderFlag[1:7]="0000111",则边界替代值=e,
当BorderFlag[1:7]="0001111",则边界替代值=d,
当BorderFlag[1:7]="0011111",则边界替代值=c,
当BorderFlag[1:7]="0111111",则边界替代值=b,
当BorderFlag[1:7]=其他值,则边界替代值=a。
并且,第一寄存器中的BorderFlag[0]是预先存储的,例如可以是人工预先设置的,针对一幅图像,可以是始终保持BorderFlag[0]不变,例如可以始终是0,或者始终是1,当然,也可以根据实际需要动态调整。
第一寄存器BorderFlag[1:7]的值则是动态变化的具体地,是根据第三寄存器中的值而得到的,参考表2,为本发明实施例提供的第二关系表,用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在图像中的位置。
表2
举例来说,假设imageWidth%N=2,即边界图像块的长度等于N-2,则:
当第三寄存器中存储的是普通图像块的数据时,则BorderFlag[1:7]=“0000000”;
当第三寄存器中存储的是邻近边界图像块的数据时,则BorderFlag[1:7]=0000011”;
当第三寄存器中存储的是边界图像块的数据时,则BorderFlag[1:7]=“0111111”。
对于imageWidth%N等于0,或等于1,或等于3的情形也类似,不再赘述。
第四、选择器的设置
本发明实施例中,选择器有两个作用,第一个作用是选择出一个边界替代值,第二个作用是从第三寄存器和第四寄存器的数据中选择K个值以及获取M-K个边界替代值,作为第三寄存器和第四寄存器的数据的替代值。
为方便说明,本发明实施例将选择器设置为包含第一选择器和第二选择器,其中,第一选择器用于选择出一个边界替代值,第二选择器用于从第三寄存器和第四寄存器的数据中选择K个值以及获取M-K个边界替代值,作为第三寄存器和第四寄存器的数据的替代值(本实施例中,M=8为例进行说明)。
如图7所示,为本发明实施例提供的第一寄存器及边界处理子电路示意图,其中,选择器包含第一选择器和第二选择器,第一选择器用于从SR1的四个值、SR2的前三个值及预设值,共8个值中选择一个作为边界替代值,具体地选择方法是根据第一寄存器中存储的选择策略而定的,上面已经做过说明,此处不再赘述。
第二选择器进一步地包含M-1个子选择器,如图7所示,第二选择器包含7个子选择器(M=8,因此M-1=7),这7个子选择器分别用于接收第三寄存器和第四寄存器的M个值中后M-1个值中的一个,以及接收边界替代值,并从接收的两个值中选择一个作为输出;
针对第二选择器的任一个子选择器,根据第一寄存器的图像块位置标识位的图像块位置信息中与该子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个边界替代值及第二寄存器和第三寄存器的M个值中的K个值;
然后,第二选择器将第三寄存器中的第一个值、选择得到的M-1个值构成的M个值,作为第三寄存器和第四寄存器的M个值的替代值。
下面结合具体的例子进行说明。
实施例1
参考图8,为本发明实施例提供的数据处理硬件电路示意图,其中,当前写入SR1的是邻近边界图像块的数据,替代策略为寄存器值替代,即使用SR1或SR2中的一个值作为边界替代值,且SR1中的值分别为X0、X1、X2、X3,SR2中的为Y0、Y1、Y2、Y3,则本发明实施例实施过程如下:
步骤1、确定SR1中的数据所属的图像块的类型为邻近边界图像块,且边界图像块的长度为N(即imageWidth%N=0),因此,通过查找第二关系表(即上述表2),确定第一寄存器的BorderFlag[1:7]=“0000000”;
步骤2、由于预设的替代策略为寄存器值替代,因此BorderFlag[0]=“1”,从而将“10000000”写入第一寄存器。
步骤3、将SR1和SR2的前7个值及预设值(假设设置为0)写入第一选择器,即将X0、X1、X2、X3、Y0、Y1、Y2、0写入第一选择器。
步骤4、第一选择器根据第一寄存器中的值从X0、X1、X2、X3、Y0、Y1、Y2、0中选择一个作为边界替代值,具体为:由于BorderFlag[0]=“1”且BorderFlag[1:7]=“0000000”,通过查找第一关系表(即上述表1),确定边界替代值位置信息=1,即选择第一选择器中的第一个值作为边界替代值,即边界替代值为X0。
步骤5、第一选择器将边界替代值发送给第二选择器的每个子选择器,并且将X1发送给子选择器1、将X2发送给子选择器2、将X3发送给子选择器4、将X4发送给子选择器4、将Y0发送给子选择器5、将Y1发送给子选择器6、将Y2发送给子选择器7。
针对子选择器1:由于BorderFlag[1]=“0”,因此从X1和X0中选择X1作为输出;
针对子选择器2:由于BorderFlag[2]=“0”,因此从X2和X0中选择X2作为输出;
针对子选择器3:由于BorderFlag[3]=“0”,因此从X3和X0中选择X3作为输出;
针对子选择器4:由于BorderFlag[4]=“0”,因此从X4和X0中选择X4作为输出;
针对子选择器5:由于BorderFlag[5]=“0”,因此从Y1和X0中选择Y1作为输出;
针对子选择器6:由于BorderFlag[6]=“0”,因此从Y2和X0中选择Y2作为输出;
针对子选择器7:由于BorderFlag[7]=“0”,因此从Y3和X0中选择Y3作为输出。
步骤6、将第二选择器直接选择的X0及通过子选择器选择的X1、X2、X3、Y0、Y1、Y2、Y3,输出作为SR1和SR2中的值的替代值。
从上述过程可以看出,SR1和SR2中的原始值和得到的替代值是相同的,由于SR1和SR2本身都没有超出边界,因此得到的替代值和原始值也必然是相同的,即替代值也是X0、X1、X2、X3、Y0、Y1、Y2、Y3。
实施例2
下面再给出一个具体的例子,参考图9,为本发明实施例提供的数据处理硬件电路示意图,其中,当前写入SR1的是邻近边界图像块的数据,替代策略为寄存器值替代,即使用SR1或SR2中的一个值作为边界替代值,且SR1中的值分别为X0、X1、X2、X3,SR2中的为Y0、Y1、Y2、Y3,则本发明实施例实施过程如下:
步骤1、确定SR1中的数据所属的图像块的类型为邻近边界图像块,且边界图像块的长度不为N(具体地imageWidth%N=3),因此,通过查找第二关系表(即上述表2),确定第一寄存器的BorderFlag[1:7]=“0000001”;
步骤2、由于预设的替代策略为寄存器值替代,因此BorderFlag[0]=“1”,从而将“10000001”写入第一寄存器。
步骤3、将SR1和SR2的前7个值及预设值(假设设置为0)写入第一选择器,即将X0、X1、X2、X3、Y0、Y1、Y2、0写入第一选择器。
步骤4、第一选择器根据第一寄存器中的值从X0、X1、X2、X3、Y0、Y1、Y2、0中选择一个作为边界替代值,具体为:由于BorderFlag[0]=“1”且BorderFlag[1:7]=“0000001”,通过查找第一关系表(即上述表1),确定边界替代值位置信息=7,即选择第一选择器中的第7个值作为边界替代值,即边界替代值为Y2。
从图9中可以看出,Y2正好就是图像的最后一个像素值。
步骤5、第一选择器将边界替代值发送给第二选择器的每个子选择器,并且将X1发送给子选择器1、将X2发送给子选择器2、将X3发送给子选择器4、将X4发送给子选择器4、将Y0发送给子选择器5、将Y1发送给子选择器6、将Y2发送给子选择器7。
针对子选择器1:由于BorderFlag[1]=“0”,因此从X1和Y2中选择X1作为输出;
针对子选择器2:由于BorderFlag[2]=“0”,因此从X2和Y2中选择X2作为输出;
针对子选择器3:由于BorderFlag[3]=“0”,因此从X3和Y2中选择X3作为输出;
针对子选择器4:由于BorderFlag[4]=“0”,因此从X4和Y2中选择X4作为输出;
针对子选择器5:由于BorderFlag[5]=“0”,因此从Y1和Y2中选择Y1作为输出;
针对子选择器6:由于BorderFlag[6]=“0”,因此从Y2和Y2中选择Y2作为输出;
针对子选择器7:由于BorderFlag[7]=“1”,因此从Y3和Y2中选择Y2作为输出。
步骤6、将第二选择器直接选择的X0及通过子选择器选择的X1、X2、X3、Y0、Y1、Y2、Y2,输出作为SR1和SR2中的值的替代值。
从上述过程可以看出,SR1和SR2中的原始值和得到的替代值在最后一位是不相同的,从图9中看出,SR2正好只有一位出了图像边界,因此正好只需要一位需要被替代,且替换采用的值正好就是图像右边界的值Y2,从而使得SR1和SR2替换后的值为:X0、X1、X2、X3、Y0、Y1、Y2、Y2。
实施例3
下面再给出一个具体的例子,参考图10,为本发明实施例提供的数据处理硬件电路示意图,其中,当前写入SR1的是边界图像块的数据,替代策略为预设值替代,即使用预设值(假设为0)作为边界替代值,且SR1中的值分别为X0、X1、X2、X3,SR2中的为Y0、Y1、Y2、Y3,则本发明实施例实施过程如下:
步骤1、确定SR1中的数据所属的图像块的类型为边界图像块,且边界图像块的长度为N,因此,通过查找第二关系表(即上述表2),确定第一寄存器的BorderFlag[1:7]=“0001111”;
步骤2、由于预设的替代策略为预设值替代,因此BorderFlag[0]=“0”,从而将“00001111”写入第一寄存器。
步骤3、将SR1和SR2的前7个值及预设值(假设设置为0)写入第一选择器,即将X0、X1、X2、X3、Y0、Y1、Y2、0写入第一选择器。
步骤4、第一选择器根据第一寄存器中的值从X0、X1、X2、X3、Y0、Y1、Y2、0中选择一个作为边界替代值,具体为:由于BorderFlag[0]=“0”,通过查找第一关系表(即上述表1),确定边界替代值位置信息=8,即选择第一选择器中的第8个值(即预设值)作为边界替代值,即边界替代值为0。
步骤5、第一选择器将边界替代值发送给第二选择器的每个子选择器,并且将X1发送给子选择器1、将X2发送给子选择器2、将X3发送给子选择器4、将X4发送给子选择器4、将Y0发送给子选择器5、将Y1发送给子选择器6、将Y2发送给子选择器7。
针对子选择器1:由于BorderFlag[1]=“0”,因此从X1和0中选择X1作为输出;
针对子选择器2:由于BorderFlag[2]=“0”,因此从X2和0中选择X2作为输出;
针对子选择器3:由于BorderFlag[3]=“0”,因此从X3和0中选择X3作为输出;
针对子选择器4:由于BorderFlag[4]=“1”,因此从X4和0中选择0作为输出;
针对子选择器5:由于BorderFlag[5]=“1”,因此从Y1和0中选择0作为输出;
针对子选择器6:由于BorderFlag[6]=“1”,因此从Y2和0中选择0作为输出;
针对子选择器7:由于BorderFlag[7]=“1”,因此从Y3和0中选择0作为输出。
步骤6、将第二选择器直接选择的X0及通过子选择器选择的X1、X2、X3、0、0、0、0,输出作为SR1和SR2中的值的替代值。
从上述过程可以看出,SR1和SR2中的原始值和得到的替代值在最后四位是不相同的,从图10中看出,SR2正好只有四位出了图像边界,因此正好只需要四位需要被替代,且替换采用的值是预设值0,从而使得SR1和SR2替换后的值为:X0、X1、X2、X3、0、0、0、0。
实施例4
下面再给出一个具体的例子,参考图11,为本发明实施例提供的数据处理硬件电路示意图,其中,当前写入SR1的是边界图像块的数据,替代策略为寄存器值替代,即使用SR1或SR2中的一个值作为边界替代值,且SR1中的值分别为X0、X1、X2、X3,SR2中的为Y0、Y1、Y2、Y3,则本发明实施例实施过程如下:
步骤1、确定SR1中的数据所属的图像块的类型为边界图像块,且边界图像块的长度不为N(具体地imageWidth%N=1),因此,通过查找第二关系表(即上述表2),确定第一寄存器的BorderFlag[1:7]=“1111111”;
步骤2、由于预设的替代策略为寄存器值替代,因此BorderFlag[0]=“1”,从而将“11111111”写入第一寄存器。
步骤3、将SR1和SR2的前7个值及预设值(假设设置为0)写入第一选择器,即将X0、X1、X2、X3、Y0、Y1、Y2、0写入第一选择器。
步骤4、第一选择器根据第一寄存器中的值从X0、X1、X2、X3、Y0、Y1、Y2、0中选择一个作为边界替代值,具体为:由于BorderFlag[0]=“1”且BorderFlag[1:7]=“1111111”,通过查找第一关系表(即上述表1),确定边界替代值位置信息=1,即选择第一选择器中的第7个值作为边界替代值,即边界替代值为X0。
从图11中可以看出,X0正好就是图像的最后一个像素值。
步骤5、第一选择器将边界替代值发送给第二选择器的每个子选择器,并且将X1发送给子选择器1、将X2发送给子选择器2、将X3发送给子选择器4、将X4发送给子选择器4、将Y0发送给子选择器5、将Y1发送给子选择器6、将Y2发送给子选择器7。
针对子选择器1:由于BorderFlag[1]=“0”,因此从X1和X0中选择X0作为输出;
针对子选择器2:由于BorderFlag[2]=“0”,因此从X2和X0中选择X0作为输出;
针对子选择器3:由于BorderFlag[3]=“0”,因此从X3和X0中选择X0作为输出;
针对子选择器4:由于BorderFlag[4]=“0”,因此从X4和X0中选择X0作为输出;
针对子选择器5:由于BorderFlag[5]=“0”,因此从Y1和X0中选择X0作为输出;
针对子选择器6:由于BorderFlag[6]=“0”,因此从Y2和X0中选择X0作为输出;
针对子选择器7:由于BorderFlag[7]=“1”,因此从Y3和X0中选择X0作为输出。
步骤6、将第二选择器直接选择的X0及通过子选择器选择的X0、X0、X0、X0、X0、X0、X0,输出作为SR1和SR2中的值的替代值。
从上述过程可以看出,SR1和SR2中的原始值和得到的替代值在最后七位是不相同的,从图11中看出,SR1和SR2一共有七位出了图像边界,因此正好需要七位需要被替代,且替换采用的值正好就是图像右边界的值X0,从而使得SR1和SR2替换后的值为:X0、X0、X0、X0、X0、X0、X0、X0。
基于相同的发明构思,如图12所示,本发明实施例还提供一种数据处理装置,包括:第一寄存器1201,与所述第一寄存器1201连接的选择器1202;
所述第一寄存器1201用于存储选择策略,所述选择策略根据第二寄存器中的数据所属的图像块的类型确定,所述图像块的类型根据所述图像块在图像中的位置确定;
所述选择器1202的输入端与所述第二寄存器连接,且所述选择器1202接收输入预设值;
所述选择器1202,用于根据所述第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,所述数据集合包括预设的值和第二寄存器存储的数据;以及,根据所述选择策略,获取M-K个所述边界替代值以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理。
可选地,所述选择器1202,具体用于:
获取所述第一寄存器1201的替代策略标识位的替代策略信息;
在所述替代策略信息为预设值标识信息时,所述选择器1202选择所述预设值作为所述边界替代值;
在所述替代策略标信息为边界值标识信息时,获取所述第一寄存器1201的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息控制所述选择器1202选择所述第二寄存器中的数据作为所述边界替代值,所述图像块位置信息指示所述图像块在所述图像中的位置。
可选地,所述选择器1202,具体用于:
根据所述图像块位置信息,从第一关系表中确定与所述图像块位置信息对应的边界替代值位置信息,所述第一关系表用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在所述第二寄存器中的位置;
根据确定的所述边界替代值位置信息,控制所述选择器1202选择所述第二寄存器中与所述边界替代值位置信息对应的数据,作为所述边界替代值。
可选地,所述选择器1202,具体用于:获取所述第一寄存器1201的替代策略标识位的替代策略信息;在所述替代策略信息为预设值标识信息时,选择所述预设值作为所述边界替代值。
可选地,所述装置还包括处理单元,用于根据下列方式得到所述选择策略:
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,所述第二关系表用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在所述图像中的位置;
根据预设的替代策略信息和所述图像块位置信息,得到所述选择策略,所述替代策略信息用于指示选择的边界替代值的来源。
可选地,所述第二寄存器包含第三寄存器和第四寄存器,所述第三寄存器和所述第四寄存器分别用于接收所述图像的一个图像块的数据,且所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据;
所述处理单元,具体用于:
确定所述第三寄存器中的数据所属的图像块的类型,从所述第二关系表中确定与所述图像块的类型对应的图像块位置信息。
可选地,所述图像块的类型包括:
所述图像块的类型划分为边界图像块,邻近边界图像块及普通图像块,所述边界图像块为包含所述图像的边界数据的图像块,所述邻近边界图像块为邻近所述边界图像块的图像块,所述普通图像块为除所述边界图像块及所述邻近边界图像块之外的图像块。
可选地,所述选择器1202包含第一选择器12021和第二选择器12022;
所述第一选择器12021与所述第一寄存器1201连接,且所述第一选择器12021的输入端与所述第二寄存器连接,所述第一选择器12021的输出端与所述第二选择器12022的输入端连接;所述第一选择器12021,具体用于:
根据所述第一寄存器1201存储的选择策略,所述第一选择器12021从所述数据集合中选择一个数据的值作为边界替代值,并输出至所述第二选择器12022;
所述第二选择器12022与所述第一寄存器1201连接;所述第二选择器12022,具体用于:
根据所述选择策略,获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值。
可选地,所述第二选择器12022包含至少M-1个子选择器,每个子选择器分别用于接收所述第二寄存器后M-1个值中的一个,以及接收所述边界替代值,并从接收的两个值中选择一个作为输出;
所述第二选择器12022,具体用于:
针对所述M-1个子选择器中的任一个子选择器,根据所述第一寄存器1201的图像块位置标识位的图像块位置信息中与所述子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个所述边界替代值及所述第二寄存器中的K个值;
将所述第二寄存器中的第一个值及选择得到的M-1个值。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种边界数据处理方法,其特征在于,包括:
根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,所述数据集合包括预设的值和第二寄存器存储的数据;
根据所述选择策略,所述选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理;
所述选择策略是根据下列方式得到的:
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,所述第二关系表用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在所述图像中的位置;
根据预设的替代策略信息和所述图像块位置信息,得到所述选择策略,所述替代策略信息用于指示选择的边界替代值的来源。
2.根据权利要求1所述的方法,其特征在于,根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:
所述选择器获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略标信息为边界值标识信息时,所述选择器获取所述第一寄存器的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息选择所述第二寄存器中的数据作为所述边界替代值。
3.根据权利要求2所述的方法,其特征在于,所述选择器根据所述图像块位置信息选择所述第二寄存器中的数据作为所述边界替代值,包括:
根据所述图像块位置信息,所述选择器从第一关系表中确定与所述图像块位置信息对应的边界替代值位置信息,所述第一关系表用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在所述第二寄存器中的位置;
根据确定的所述边界替代值位置信息,所述选择器选择所述第二寄存器中与所述边界替代值位置信息对应的数据,作为所述边界替代值。
4.根据权利要求1所述的方法,其特征在于,根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:
所述选择器获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略信息为预设值标识信息时,所述选择器选择所述预设值作为所述边界替代值。
5.根据权利要求1所述的方法,其特征在于,
所述第二寄存器包含第三寄存器和第四寄存器,所述第三寄存器和所述第四寄存器分别用于接收所述图像的一个图像块的数据,且所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据;
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,包括:
确定所述第三寄存器中的数据所属的图像块的类型,从所述第二关系表中确定与所述图像块的类型对应的图像块位置信息。
6.根据权利要求1或5所述的方法,其特征在于,所述图像块的类型包括:
所述图像块的类型划分为边界图像块,邻近边界图像块及普通图像块。
7.根据权利要求1所述的方法,其特征在于,所述选择器包含第一选择器和第二选择器;
根据第一寄存器存储的选择策略,选择器从数据集合中选择一个数据的值作为边界替代值,包括:
根据所述第一寄存器存储的选择策略,所述第一选择器从所述数据集合中选择一个数据的值作为边界替代值;
根据所述选择策略,所述选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,包括:
根据所述选择策略,所述第二选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值。
8.根据权利要求7所述的方法,其特征在于,
所述第二选择器包含至少M-1个子选择器,每个子选择器分别用于接收所述第二寄存器后M-1个值中的一个,以及接收所述边界替代值,并从接收的两个值中选择一个作为输出;
根据所述选择策略,所述第二选择器获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值,包括:
所述M-1个子选择器中的任一个子选择器,根据所述第一寄存器的图像块位置标识位的图像块位置信息中与所述子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个所述边界替代值及所述第二寄存器中的K个值;
所述第二选择器将所述第二寄存器中的第一个值及选择得到的M-1个值。
9.一种边界数据处理装置,其特征在于,包括:第一寄存器,与所述第一寄存器连接的选择器;
所述第一寄存器用于存储选择策略;
所述选择器的输入端与第二寄存器连接,且所述选择器接收输入预设值;
所述选择器,用于根据所述第一寄存器存储的选择策略,从数据集合中选择一个数据的值作为边界替代值,所述数据集合包括预设的值和第二寄存器存储的数据;以及,根据所述选择策略,获取M-K个所述边界替代值以及从所述第二寄存器的数据中选择K个值,其中,K为大于0且不大于M的整数,M为所述第二寄存器中的数据的个数,所述选择器选择的所述M-K个边界替代值和所述第二寄存器中的K个值用于图像处理;
所述装置还包括处理单元,用于根据下列方式得到所述选择策略:
确定所述第二寄存器中的数据所属的图像块的类型,从第二关系表中确定与所述图像块的类型对应的图像块位置信息,所述第二关系表用于表示图像块的类型与图像块位置信息之间的对应关系,所述图像块位置信息指示图像块在所述图像中的位置;
根据预设的替代策略信息和所述图像块位置信息,得到所述选择策略,所述替代策略信息用于指示选择的边界替代值的来源。
10.根据权利要求9所述的装置,其特征在于,所述选择器,具体用于:
获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略标信息为边界值标识信息时,获取所述第一寄存器的图像块位置标识位的图像块位置信息,并根据所述图像块位置信息控制所述选择器选择所述第二寄存器中的数据作为所述边界替代值,所述图像块位置信息指示所述图像块在所述图像中的位置。
11.根据权利要求10所述的装置,其特征在于,所述选择器,具体用于:
根据所述图像块位置信息,从第一关系表中确定与所述图像块位置信息对应的边界替代值位置信息,所述第一关系表用于表示图像块位置信息与边界替代值位置信息之间的对应关系,所述边界替代值位置信息用于表示待选择的边界替代值在所述第二寄存器中的位置;
根据确定的所述边界替代值位置信息,控制所述选择器选择所述第二寄存器中与所述边界替代值位置信息对应的数据,作为所述边界替代值。
12.根据权利要求9所述的装置,其特征在于,所述选择器,具体用于:
获取所述第一寄存器的替代策略标识位的替代策略信息;
在所述替代策略信息为预设值标识信息时,选择所述预设值作为所述边界替代值。
13.根据权利要求9所述的装置,其特征在于,
所述第二寄存器包含第三寄存器和第四寄存器,所述第三寄存器和所述第四寄存器分别用于接收所述图像的一个图像块的数据,且所述第四寄存器在时序上比所述第三寄存器更早地接收到所述图像的边界数据;
所述处理单元,具体用于:
确定所述第三寄存器中的数据所属的图像块的类型,从所述第二关系表中确定与所述图像块的类型对应的图像块位置信息。
14.根据权利要求9或13所述的装置,其特征在于,所述图像块的类型包括:
所述图像块的类型划分为边界图像块,邻近边界图像块及普通图像块。
15.根据权利要求9所述的装置,其特征在于,所述选择器包含第一选择器和第二选择器;
所述第一选择器与所述第一寄存器连接,且所述第一选择器的输入端与所述第二寄存器连接,所述第一选择器的输出端与所述第二选择器的输入端连接;所述第一选择器,具体用于:
根据所述第一寄存器存储的选择策略,从所述数据集合中选择一个数据的值作为边界替代值,并输出至所述第二选择器;
所述第二选择器与所述第一寄存器连接;所述第二选择器,具体用于:
根据所述选择策略,获取M-K个所述边界替代值,以及从所述第二寄存器的数据中选择K个值。
16.根据权利要求15所述的装置,其特征在于,
所述第二选择器包含至少M-1个子选择器,每个子选择器分别用于接收所述第二寄存器后M-1个值中的一个,以及接收所述边界替代值,并从接收的两个值中选择一个作为输出;
所述第二选择器,具体用于:
针对所述M-1个子选择器中的任一个子选择器,根据所述第一寄存器的图像块位置标识位的图像块位置信息中与所述子选择器对应的信息,从接收的两个值中选择一个,得到M-1个值,所述M-1个值中包含M-K个所述边界替代值及所述第二寄存器中的K个值;
将所述第二寄存器中的第一个值及选择得到的M-1个值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611238396.9A CN106843813B (zh) | 2016-12-28 | 2016-12-28 | 一种数据处理方法及装置 |
PCT/CN2017/093028 WO2018120767A1 (zh) | 2016-12-28 | 2017-07-14 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611238396.9A CN106843813B (zh) | 2016-12-28 | 2016-12-28 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843813A CN106843813A (zh) | 2017-06-13 |
CN106843813B true CN106843813B (zh) | 2018-08-14 |
Family
ID=59114366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611238396.9A Active CN106843813B (zh) | 2016-12-28 | 2016-12-28 | 一种数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106843813B (zh) |
WO (1) | WO2018120767A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843813B (zh) * | 2016-12-28 | 2018-08-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN110751695B (zh) * | 2019-01-23 | 2021-01-19 | 中国人民解放军空军工程大学 | 自适应数据处理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357395A (ja) * | 2000-06-13 | 2001-12-26 | Canon Inc | 画像処理装置およびその方法 |
JP5058681B2 (ja) * | 2007-05-31 | 2012-10-24 | キヤノン株式会社 | 情報処理方法及び装置、プログラム、記憶媒体 |
CN103325423B (zh) * | 2012-03-20 | 2015-10-14 | 上海华虹宏力半导体制造有限公司 | 非挥发性存储器的数据自动比较测试电路 |
JP6329412B2 (ja) * | 2014-03-26 | 2018-05-23 | 株式会社メガチップス | Simdプロセッサ |
CN105843772A (zh) * | 2016-04-12 | 2016-08-10 | 华为技术有限公司 | 处理数据的装置和方法 |
CN106843813B (zh) * | 2016-12-28 | 2018-08-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
-
2016
- 2016-12-28 CN CN201611238396.9A patent/CN106843813B/zh active Active
-
2017
- 2017-07-14 WO PCT/CN2017/093028 patent/WO2018120767A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN106843813A (zh) | 2017-06-13 |
WO2018120767A1 (zh) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687341B2 (en) | Multi-variate strided read operations for accessing matrix operands | |
CN105278920B (zh) | 用于实现具有迭代依赖条件的迭代的向量环路的指令 | |
CN102598063B (zh) | 曲面细分引擎及其应用 | |
CN105359052B (zh) | 用于积分图像计算指令的方法、装置、设备、系统及机器可读介质 | |
CN105278921B (zh) | 用于在处理具有未对齐数据行的数组期间消除未对齐的存储器访问的指令集 | |
CN104813281B (zh) | 用于指令的快速失败处理的装置和方法 | |
CN109690475A (zh) | 用于转移操作的硬件加速器和方法 | |
US20050160253A1 (en) | Method for managing data in an array processor and array processor carrying out this method | |
CN103971586B (zh) | 电子地图生成方法及装置 | |
CN106843813B (zh) | 一种数据处理方法及装置 | |
CN106537330A (zh) | 通过向量处理器使用向量寄存器堆中的数据索引化累加器使标量操作并行化,以及相关电路、方法和计算机可读媒体 | |
CN106775592A (zh) | 使用三个标量项的超级乘加(超级madd)指令 | |
US11593154B2 (en) | Operating system assisted prioritized thread execution | |
CN107111489A (zh) | 莫顿坐标调整处理器、方法、系统和指令 | |
CN110192184B (zh) | 在多核心图像处理器上配置应用软件 | |
CN109313553A (zh) | 用于跨步加载的系统、装置和方法 | |
CN109344268A (zh) | 图形数据库写入的方法、电子设备及计算机可读存储介质 | |
CN108062235A (zh) | 数据处理方法及装置 | |
CN107851007A (zh) | 宽数据类型的比较 | |
CN112000611B (zh) | 图数据划分方法、处理方法及电子设备 | |
CN110958192B (zh) | 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法 | |
CN115758989B (zh) | 用于修复数字芯片版图设计规则时序违例的方法及系统 | |
CN103338159B (zh) | 轮询调度实现方法和装置 | |
CN103309831A (zh) | 数据传输装置和数据传输方法 | |
CN115879543A (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Jing Zhaolun Inventor after: Liao Xuanjun Inventor after: Gao Ye Inventor before: Jing Zhaolun Inventor before: Liao Xuanjun Inventor before: Gao Ye |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |