CN108399604B - 一种在打印机SoC芯片上支持大尺寸图片旋转的方法 - Google Patents
一种在打印机SoC芯片上支持大尺寸图片旋转的方法 Download PDFInfo
- Publication number
- CN108399604B CN108399604B CN201810188065.1A CN201810188065A CN108399604B CN 108399604 B CN108399604 B CN 108399604B CN 201810188065 A CN201810188065 A CN 201810188065A CN 108399604 B CN108399604 B CN 108399604B
- Authority
- CN
- China
- Prior art keywords
- address
- hardware accelerator
- blocks
- picture
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013519 translation Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 10
- 239000003086 colorant Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/606—Rotation of whole images or parts thereof by memory addressing or mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
本发明公开了一种在打印机SoC芯片上支持大尺寸图片旋转的方法,将一幅图片在高度上分割成多个块,并在硬件加速器的存取上加入地址翻译单元,将硬件加速器给出的逻辑地址转换为物理地址来实现大尺寸图片的旋转,避免单个颜色的像素数据占用64MB以上的连续物理内存。
Description
技术领域
本发明属于打印机SoC芯片领域,具体是一种在打印机SoC芯片上支持大尺寸图片旋转的方法。
背景技术
在一些应用场景中,旋转图片时,如果只是软件进行处理,速度会很慢,需要用到图像旋转硬件加速器。为了提高降低总线带宽和芯片面积,硬件加速器每次处理单个通道的数据,多通道的图片需要多次启动硬件加速器。但是图像旋转硬件加速器处理大尺寸图片时,大图片的单个颜色数据占用内存总计达到64MB以上,由于硬件加速器发出的地址是连续的,如果使用这么一块大的内存块来存放,则会给整个系统的内存机制设计造成很大的困难,在系统运行过程中地址连续的大块物理内存是很难保证的。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种在打印机SoC芯片上支持大尺寸图片旋转的方法,将一幅图片在高度上分割成多个块,并在硬件加速器的存取上加入地址翻译单元,将硬件加速器给出的逻辑地址转换为物理地址来实现大尺寸图片的旋转。
进一步的,包括如下步骤:
(一)将一幅图片在高度上分割成多个块;
(二)将各个大小不固定的块数据重组到4MB内存块,生成输入的4M内存块链表;
(三)将输入的4M内存块链表的地址通过地址翻译单元翻译出相应的逻辑地址,配置到硬件加速器中;
(四)在硬件加速器处理完4MB内存块后,将输出的4M内存块链表中的4MB内存块分割成所需大小的块。
进一步的,所述硬件加速器对连续存储的像素数据的单个颜色分量进行旋转处理,对于多个颜色分量的图像,需要多次启动硬件加速器逐个颜色处理。
进一步的,所述地址翻译单元将一块逻辑上连续的逻辑内存地址告知硬件,实现地址连续。
进一步的,4M内存块链表通过地址翻译单元生成翻译表。
本发明将一幅图片在高度上分割成多个块,并在硬件加速器的存取上加入一个地址翻译单元,将硬件加速器给出的逻辑地址转换为物理地址方法来实现大尺寸图片的旋转,避免单个颜色的像素数据占用64MB以上的连续物理内存。
附图说明
图1是将一幅图片分割成多个块的示意图;
图2是翻译单元ATU将硬件加速器发出的逻辑地址转换为物理地址的示意图;
图3是图像数据被写到了不正确的内存区域的示意图;
图4a-图4c是各个大小不固定的块数据重组到4MB内存块中的示意图;
图5a和图5b是4M内存块链表通过ATU生成翻译表的过程示意图;
图6是ATU通过翻译表进行翻译的过程示意图;
图7a-图7c是将4MB内存块分割成所需大小的块示意图;
图8a-图8d是ROT设计流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明将一幅图片在高度上分割成如图1所示的多个块,并在硬件加速器的存取上加入一个地址翻译单元,将硬件加速器给出的逻辑地址转换为物理地址来实现大尺寸图片的旋转。
硬件加速器ROT是一个对连续存储的像素数据的单个颜色分量进行旋转的硬件加速器,对于多个颜色分量的图像,需要多次启动硬件加速器逐个颜色处理。
如图2所示,为了解决ROT访问地址连续和图像数据存储不连续的问题,引入地址翻译单元ATU。ATU进行地址翻译的最小粒度是4MB。ATU是将硬件加速器发出的逻辑地址转换为物理地址并在总线发出,工作时将一块逻辑上连续的逻辑内存地址告知硬件,实现地址连续,让ROT可以正常工作。
如图3所示,在像素数据块的逐个处理中,一张图片会被分割成一个个大小不固定的块进行处理。例如,当小于4M(以3M为例)的块传入时,由于ROT发出的地址是连续的,而ATU会以4M为单位进行映射,这样后面1MB数据也会被ROT读取到作为图像数据处理,与此类似,数据写入会发生图像数据被写到了不正确的内存区域。
如图4a-图4c所示,需要将各个大小不固定的块数据重组到4MB内存块中。
如图5a和图5b所示,4M内存块链表通过ATU生成翻译表的过程。
如图6所示,ATU通过翻译表进行翻译的过程。
如图7a-图7c所示,在使用硬件加速器ROT处理完4MB内存块后,需要再将4MB内存块分割成所需大小的块。
如图8a-图8d所示为ROT设计流程图,有图片输入时,图像旋转将图片分割成一个个大小不固定的块,放在输入的图像数据链表中,如果检测到输入的图像数据链表中有大小不固定的块,则申请由4M大小的块组成的输入的4M内存块链表;
将输入的图像数据链表中所有的大小不固定的块重组后,放入输入的4M内存块链表,然后将输入的图像数据销毁;
当所有大小不固定的块重组并放入输入的4M内存块链表后,申请输出的4M内存块链表,然后通过ATU翻译出相应的逻辑地址,配置到ROT硬件加速器中。
收到硬件中断后,需要将输出的4M内存块链表中的4M内存块分割成所需的一个个块放入输出的图像数据链表中,再组成图片输出。
在多功能打印机芯片的应用中,图像旋转使用硬件ROT来实现算法处理的加速。ROT需要一块连续的内存才能正常工作,对于大尺寸图像而言,单个颜色数据占用内存总计达到64MB以上,如果使用连续内存来存储图像数据,则系统内存机制需要进行重新设计或调整。为了解决ROT访问地址连续和图像数据存储不连续的问题,引入地址翻译单元ATU。ATU进行地址翻译的最小粒度是4MB。
ATU是将硬件加速器发出的逻辑地址转换为物理地址并在总线发出,工作时将一块逻辑上连续的逻辑内存地址告知硬件,实现地址连续,让ROT可以正常工作。
在像素数据的处理中,一张图片会被分割成一个个大小不固定的块进行处理。例如,当小于4M(以3M为例)的块传入时,由于ROT发出的地址是连续的,而ATU会以4M为单位进行翻译,这样后面1MB数据也会被ROT读取到作为图像数据处理,与此类似,数据写入会发生图像数据被写到了不正确的内存区域。因此需要将大小不固定的块数据重组到4MB内存块中或将4MB内存块中分割成所需大小的块。
Claims (2)
1.一种在打印机SoC芯片上支持大尺寸图片旋转的方法,其特征在于:将一幅图片在高度上分割成多个块,并在硬件加速器的存取上加入地址翻译单元,将硬件加速器给出的逻辑地址转换为物理地址来实现大尺寸图片的旋转;包括如下步骤:
(一)将一幅图片在高度上分割成多个块;
(二)将各个大小不固定的块数据重组到4MB内存块,生成输入的4M内存块链表;
(三)将输入的4M内存块链表的地址通过地址翻译单元翻译出相应的逻辑地址,配置到硬件加速器中;
(四)在硬件加速器处理完4MB内存块后,将输出的4M内存块链表中的4MB内存块分割成所需大小的块;
所述硬件加速器对连续存储的像素数据的单个颜色分量进行旋转处理,对于多个颜色分量的图像,需要多次启动硬件加速器逐个颜色处理;
所述地址翻译单元将一块逻辑上连续的逻辑内存地址告知硬件,实现地址连续。
2.如权利要求1所述的在打印机SoC芯片上支持大尺寸图片旋转的方法,其特征在于:4M内存块链表通过地址翻译单元生成翻译表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810188065.1A CN108399604B (zh) | 2018-03-07 | 2018-03-07 | 一种在打印机SoC芯片上支持大尺寸图片旋转的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810188065.1A CN108399604B (zh) | 2018-03-07 | 2018-03-07 | 一种在打印机SoC芯片上支持大尺寸图片旋转的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108399604A CN108399604A (zh) | 2018-08-14 |
CN108399604B true CN108399604B (zh) | 2021-08-10 |
Family
ID=63092037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810188065.1A Active CN108399604B (zh) | 2018-03-07 | 2018-03-07 | 一种在打印机SoC芯片上支持大尺寸图片旋转的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399604B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958112A (zh) * | 2010-10-13 | 2011-01-26 | 福州瑞芯微电子有限公司 | 手持设备屏幕画面同时实现90度和270度旋转的方法 |
CN106355545A (zh) * | 2015-07-16 | 2017-01-25 | 浙江大华技术股份有限公司 | 一种数字图像几何变换的处理方法及装置 |
CN106846255A (zh) * | 2017-02-23 | 2017-06-13 | 北京普及芯科技有限公司 | 图像旋转实现方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110048794A (ko) * | 2009-11-03 | 2011-05-12 | 삼성전자주식회사 | 이미지 프로세서 및 이를 포함하는 전자 장치 |
-
2018
- 2018-03-07 CN CN201810188065.1A patent/CN108399604B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958112A (zh) * | 2010-10-13 | 2011-01-26 | 福州瑞芯微电子有限公司 | 手持设备屏幕画面同时实现90度和270度旋转的方法 |
CN106355545A (zh) * | 2015-07-16 | 2017-01-25 | 浙江大华技术股份有限公司 | 一种数字图像几何变换的处理方法及装置 |
CN106846255A (zh) * | 2017-02-23 | 2017-06-13 | 北京普及芯科技有限公司 | 图像旋转实现方法及装置 |
Non-Patent Citations (2)
Title |
---|
《2D图形硬件加速引擎的设计》;陆静;《万方学位论文》;20140918;第1-71页 * |
《基于FPGA的视频图像旋转硬件加速器的设计与实现》;徐飞等;《传感器与微系统》;20101031;第100-102页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108399604A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6377267B1 (en) | Graphic processing apparatus and method | |
US10225425B2 (en) | Information processing apparatus and method for controlling the same | |
US5396597A (en) | System for transferring data between processors via dual buffers within system memory with first and second processors accessing system memory directly and indirectly | |
EP3920168A1 (en) | Display driving device, control method therefor, and display apparatus | |
US3566361A (en) | Data management computer driven display system | |
CN108399604B (zh) | 一种在打印机SoC芯片上支持大尺寸图片旋转的方法 | |
JPH0682394B2 (ja) | ビデオ・アダプタ | |
US10102125B2 (en) | PCI device, interface system including the same, and computing system including the same | |
CN108563519B (zh) | 基于gpgpu中的2d桌面块拷贝填充操作的实现 | |
US6927776B2 (en) | Data transfer device and method | |
US6031546A (en) | Image processing apparatus and method | |
US6288729B1 (en) | Method and apparatus for a graphics controller to extend graphics memory | |
GB2180729A (en) | Direct memory access window display | |
US20210117114A1 (en) | Memory system for flexibly allocating memory for multiple processors and operating method thereof | |
US5555460A (en) | Method and apparatus for providing a reformatted video image to a display | |
EP0803798A1 (en) | System for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked direct frame buffer access | |
US11915359B2 (en) | Kernel software driven color remapping of rendered primary surfaces | |
US9064204B1 (en) | Flexible image processing apparatus and method | |
JP2003178300A (ja) | 画像処理方法及び画像処理装置 | |
US20050134597A1 (en) | Hardware display rotation | |
JP2502753B2 (ja) | 画像出力装置 | |
US6141024A (en) | Generating color text | |
JPH11353470A (ja) | 画像描画並列化装置及び並列化画像描画システム | |
US10304415B2 (en) | Image processing apparatus and image processing method | |
US6757080B1 (en) | Image processing system |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200201 Address after: 310012 A408 room, Neusoft building, 99 Huaxing Road, Hangzhou, Zhejiang, Xihu District Applicant after: HANGZHOU SHUOTIAN TECHNOLOGY Co.,Ltd. Applicant after: ZHUHAI PANTUM ELECTRONICS Co.,Ltd. Address before: 310012 A408 room, Neusoft building, 99 Huaxing Road, Hangzhou, Zhejiang, Xihu District Applicant before: HANGZHOU SHUOTIAN TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |