CN102521141B - 一种紧凑存储图像数据的读取装置及方法 - Google Patents

一种紧凑存储图像数据的读取装置及方法 Download PDF

Info

Publication number
CN102521141B
CN102521141B CN201110399229.3A CN201110399229A CN102521141B CN 102521141 B CN102521141 B CN 102521141B CN 201110399229 A CN201110399229 A CN 201110399229A CN 102521141 B CN102521141 B CN 102521141B
Authority
CN
China
Prior art keywords
line
data
row
reading
read
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
CN201110399229.3A
Other languages
English (en)
Other versions
CN102521141A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics 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 Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN201110399229.3A priority Critical patent/CN102521141B/zh
Publication of CN102521141A publication Critical patent/CN102521141A/zh
Application granted granted Critical
Publication of CN102521141B publication Critical patent/CN102521141B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种紧凑存储图像数据的读取装置及方法,读取装置包括读取控制单元、写行缓存控制单元、行缓存单元、读取地址跳变单元以及配置信息存储单元;读取方法是对配置信息存储单元进行配置,将电路工作开关位配置打开,读取地址跳变单元计算出每一次读取动作的读取地址,并将读取地址送到读取控制单元;读取控制单元读取一个word的数据,并把读数据送往写行缓存控制单元;写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中,并根据判断结果将读数据的全部或者部分写到行缓存单元中,以供外部的图像显示或者处理电路取用;这样不断循环,直到图像所有行都被读取完毕。用于控制紧凑型图像存储方式的读取,控制过程简单有效。

Description

一种紧凑存储图像数据的读取装置及方法
【技术领域】
本发明涉及一种紧凑存储图像数据的读取装置及方法。
【背景技术】
随着图像处理技术的发展,一些电子产品的用户界面和图像特效越来越绚丽,其所对应所需要的图像素材也越来越多,这些图像素材的特点是图像小而多,造成了在处理和显示特效时,素材图像数据占用了大量的存储空间,如果能尽量的减少这些图像数据的存储空间,将是非常有意义的。
目前普通的存储方式是当图像数据宽度不是word(计算机数据单位”字”,等于32比特)的整数倍的时候,会将一行中最后一个word中无效的部分使用无效数据填充,下一行的数据重新从word对齐的地址开始存储,这种存储方式处理简单,但是图像存储空间中的无效数据会浪费存储资源。
如图1所示,若需存储宽度为14byte(8bit就称为一个字节(Byte))的图象数据,首先从0x0的地址写数据,写到14byte的位置时,最后两个byte使用无效数据填充,下一行的数据重新从word对齐的地址0x10的地址开始存储下一个14byte的图象数据,同样,当写14byte的位置时,最后两个byte使用无效数据填充,依次类推,每个line最后两个byte都是使用无效数据填充,造成大量的存储空间浪费。
再如图2所示,若需存储宽度为13byte的图象数据,首先从0x0的地址写数据,写到13byte的位置时,最后3个byte使用无效数据填充,下一行的数据重新从word对齐的地址0x10的地址开始存储下一个13byte的图象数据,同样,当写13byte的位置时,最后两个byte使用无效数据填充,依次类推,每个line最后3个byte都是使用无效数据填充,造成大量的存储空间浪费。
为此,本发明提出一种紧凑型图像存储方式,在图像数据宽度不是word的整数倍的时候,会将一行最后几个像素和下一行的开始像素数据存储于一个word中,这样会节省图像的存储空间.特别是在大量的小图片需要存储的时候,可以节省大量的存储资源。
如图3所示,若需存储宽度为14byte的图象数据,首先从0x0的地址写数据,写到14byte的位置时,最后两个byte使用下一行的数据填充,即下一行的数据从地址0xc的地址开始存储下一个14byte的图象数据,同样,当写14byte的位置时,最后4个byte使用下一行的数据填充,依次类推,没有存储空间浪费,可以节省大量的存储资源。
再如图4所示,若需存储宽度为13byte的图象数据,首先从0x0的地址写数据,写到13byte的位置时,最后3个byte使用下一行的数据填充,即下一行的数据从地址0xd的地址开始存储下一个13byte的图象数据,同样,当写13byte的位置时,最后2个byte使用下一行的数据填充,依次类推,没有存储空间浪费,可以节省大量的存储资源。
针对这种紧凑存储方式,需要对应一种简单有效的控制装置及方法来实现图像的读取,否则就算实现了图像存储空间的节省,如果需要复杂的读取控制电路,这也是得不偿失的。
【发明内容】
本发明要解决的技术问题之一,在于提供一种紧凑存储图像数据的读取装置,用于控制紧凑型图像存储方式的读取,控制过程简单有效。
为解决上述技术问题:本发明采用的技术方案是:一种紧凑存储图像数据的读取装置,包括读取控制单元、写行缓存控制单元、行缓存单元、读取地址跳变单元以及配置信息存储单元;所述读取控制单元、写行缓存控制单元、行缓存单元顺次连接,所述配置信息存储单元、读取地址跳变单元以及读取控制单元顺次连接,所述配置信息存储单元还与读取控制单元直接连接;所述读取控制单元还与外部电路的图像存储单元连接,所述行缓存单元还与外部电路的显示或者图像处理电路连接;所述图像存储单元用于负责存储紧凑存储的图像数据;所述显示或者图像处理电路用于负责读取所述紧凑存储图像数据的读取装置的的行缓存中的图像数据,将图像数据显示或者进行图像处理;所述读取地址跳变单元用于负责运算每次读取动作的地址;所述读取控制单元用于接收到每次读取的地址后,按照存储单元的读取时序发出读取命令,并将读取回来的图像数据送到写行缓存控制单元进行判断和处理;所述写行缓存控制单元用于负责在得到每次的读数据后,根据判断,将读数据的全部或者部分写到行缓存单元中;所述行缓存单元用于存储图像数据,以供外部的图像显示或者处理电路取用;所述配置信息存储单元用于负责接收外部的配置信息,并将配置信息存储于内部,然后将这些配置信息送往各个所需的单元,配置信息包括图像存储的起始地址,图像的宽度和高度,图像的色度空间格式。
本发明要解决的技术问题之二,在于提供一种紧凑存储图像数据的读取方法,用于控制紧凑型图像存储方式的读取,控制过程简单有效。
为解决上述技术问题:本发明采用的技术方案是:一种紧凑存储图像数据的读取方法,包括如下步骤:
步骤10、首先,对配置信息存储单元进行配置,配置内容有紧凑存储图像在图像存储单元中的起始地址,图像的宽度和高度,图像的色度空间格式,电路工作开关位;
步骤20、需要信息配置完毕后,最后将电路工作开关位配置打开,电路开始工作;
步骤30、读取地址跳变单元计算出每一次读取动作的读取地址,并将读取地址送到读取控制单元;
步骤40、读取控制单元根据每次收到读取地址,产生一次对存储单元的读取动作,读取一个word的数据,并把读数据送往写行缓存控制单元;
步骤50、写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中,并根据判断结果将读数据的全部或者部分写到行缓存单元中,以供外部的图像显示或者处理电路取用;
步骤60、这样不断循环步骤30至步骤50,直到图像所有行都被读取完毕。
本发明具有如下优点:为减少图像在图像存储器中占用的存储空间的存储结构提供一种读取装置和方法,控制思路清晰,便于硬件电路实现;配置方便,对外接口友好,方便外部显示或者处理电路使用。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1为现有技术中一实例的图像存储空间的存储结构示意图。
图2为现有技术中另一实例的图像存储空间的存储结构示意图。
图3是本发明一实例的图像存储空间的存储结构示意图。
图4是本发明另一实例的图像存储空间的存储结构示意图。
图5为本发明存储控制装置结构示意图。
图6为本发明存储控制方法流程框图。
图7为图3实施例的写操作过程步骤分解状态的存储结构示意图。
【具体实施方式】
如图5所示,本发明的紧凑存储图像数据的读取装置,包括读取控制单元、写行缓存控制单元、行缓存单元、读取地址跳变单元以及配置信息存储单元;所述读取控制单元、写行缓存控制单元、行缓存单元顺次连接,所述配置信息存储单元、读取地址跳变单元以及读取控制单元顺次连接,所述配置信息存储单元还与读取控制单元直接连接;所述读取控制单元还与外部电路的图像存储单元连接,所述行缓存单元还与外部电路的显示或者图像处理电路连接。
所述图像存储单元用于负责存储紧凑存储的图像数据;
所述显示或者图像处理电路用于负责读取紧凑存储图像数据的读取装置的行缓存中的图像数据,将图像数据显示或者进行图像处理;
所述读取地址跳变单元用于负责运算每次读取动作的地址;
所述读取控制单元用于接收到每次读取的地址后,按照存储单元的读取时序发出读取命令,并将读取回来的图像数据送到写行缓存控制单元进行判断和处理;
所述写行缓存控制单元用于负责在得到每次的读数据后,根据判断,将读数据的全部或者部分写到行缓存单元中;
所述行缓存单元用于存储图像数据,以供外部的图像显示或者处理电路取用;所述行缓存单元包含两行或者两行以上的图像数据存储空间,即包含两个或两个以上的行缓存,每个行缓存都有一个数据有效位,该位指示本行缓存中是否已经存放满未被使用的行数据,一开始所有行缓存都是无效状态,一行被写满后,该行缓存状态变为有效,直到外部电路使用完毕该行的图像数据后将数据有效位又置为无效状态,当还有行缓存的数据有效位为无效的时候,读取控制单元就会发起新一行的读取动作,再由所述写行缓存控制单元向空行缓存填充一行的图像数据,当全部行缓存都有图像数据时,读取控制单元暂停工作并等待外部的显示或者图像处理电路使用完一行数据后,一旦任意一行的行缓存状态变为无效后,又开始新一行的读取和填充。
所述配置信息存储单元用于负责接收外部的配置信息,并将配置信息存储于内部,然后将这些配置信息送往各个所需的单元,配置信息包括图像存储的起始地址,图像的宽度和高度,图像的色度空间格式。
如图6所示,发明再提供一种紧凑存储图像数据的读取方法,可以采用上述的读取装置进行控制,具体包括如下步骤:
步骤10、首先,对配置信息存储单元进行配置,配置内容有紧凑存储图像在图像存储单元中的起始地址,图像的宽度和高度,图像的色度空间格式,电路工作开关位;
步骤20、需要信息配置完毕后,最后将电路工作开关位配置打开,电路开始工作;
步骤30、读取地址跳变单元计算出每一次读取动作的读取地址,并将读取地址送到读取控制单元;
步骤40、读取控制单元根据每次收到读取地址,产生一次对存储单元的读取动作,读取一个word的数据,并把读数据送往写行缓存控制单元;
步骤50、写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中,并根据判断结果将读数据的全部或者部分写到行缓存单元中,以供外部的图像显示或者处理电路取用;
步骤60、这样不断循环步骤30至步骤50,直到图像所有行都被读取完毕。
现在具体介绍一下读取地址跳变单元计算出每一次读取动作的读取地址的运算方法,以及写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中的判断方法。
1、首先介绍三个变量
三个变量分别为line_align、next_line_start_addr和line_count;
line_align用于指示当前读取行的数据对齐情况,line_align是一个累加量,是每行数据量(每行像素个数*每个像素字节数)除以一个word的余数值的累加,比如line_align初始值为0,第一行14字节除以word(4字节)余2字节,则第一行的line_align=2,这说明第一行最后一个word有两个字节是有效的第一行数据,剩余部分为下一行的数据;line_align在每行第一个word读取完后更新;写行缓存控制单元根据line_align的值将每行第一个word和最后一个word的数切割后写入行缓存单元.每行的第一个word处理后,后面的每个word都顺序写到line_buf中,直到最后一个word,需要line_align决定写一个word中的哪几个写到行缓存中。
next_line_start_addr用于记录下一行的起始地址,其初始值等于图像起始地址,之后每计算完一行,next_line_start_addr就进行一次累加,计算方法为next_line_start_addr=next_line_start_addr+每行像素个数*每个像素占字节数;该变量在每行读取完毕后更新;
line_count用于统计本行已经读取了多少字节数据;line_count初始值为0,在每行读取结束后清零.在每行开始读数后,计算已经读取的字节数.用于判断哪一次读数时本行的最后一个word.当每行的字节数减line_count得到的差值小于等于4个字节时,可以确定下一次读数为本行的最后一个word读取。
2、如何判断已经读到一行中的最后一个word:
line_count初始值为0;在每行第一个word读取时,line_count累加值计算为line_count=line_count+(4-line_align),在每行第一个和最后一个word读取之间的每次读取,line_count每次都累加4,当每行的字节数减line_count得到的差值小于等于4个字节时,可以确定,下一次读数为本行的最后一个word读取;读取完每行最后一个word后,line_count自动清零。
3、控制读取地址的具体流程:
next_line_start_addr初始值等于图像起始地址;
第一次word读取,读取地址为next_line_start_addr的初始值(图像起始地址),之后第一行的每次word读取,都在next_line_start_addr基础上加一个word偏移量,直到第一行最后一个word;在第一行最后一个word读取完毕后,next_line_start_addr进行更新,计算方法为:
next_line_start_addr=next_line_start_addr+每行像素个数*每个像素占字节数;然后,下一行的第一个读取地址又从新的next_line_start_addr开始,每次一个word偏移量累加,直到下一行读完,next_line_start_addr再更新,如此循环直到图像读取完毕;
由于一次读取数据宽度为1个word,所以最终输出给读取控制单元的地址需要对4取整。
4、如何控制写入行缓存:
1)需要根据line_align的值来判断将哪一部分写到行缓存中,line_align初始值为图像起始地址除以word的字节余数;并在每行第一个word读取完后更新,更新算法为:
line_align=(line_align+每行图像数据字节数%4)%4,算式中%为取余符号。
2)根据上述第2点判断结果进行写操作:
若是每行的第一个word,写入行缓存中的部分为高(4-line_align)字节,该高(4-line_align)字节为有效数据,其余为无效数据予以丢弃;比如第一行第一个word的line_align为0,则4个字节都是本行数据,如果line_align为1则高3字节为本行数据;
若是每行的第一个word与最后一个word之间的word,每次word读数据的所有字节据都存入行缓存,该所有字节数据均为有效数据;
若最后一个word时,如果line_align为0则4个字节都是有效数据,所有字节数据都存入行缓存,即为本行数据,如果不为0,则line_align个低位字节为为有效数据,将低位字节存入行缓存,即为本行数据。比如line_align为1则读数据的最低1字节为本行数据,被写入行缓存。
请重点参考图3和图7,下面详细介绍一具体操作示例:
该具体操作示例是以一个图像宽度为14字节的例子,是存储在图像存储单元中前两行紧凑存储的图像数据存放方式。本示例是用于说明如何读取前两行的数据和第三行的起始数据,为了方便说明,本示例中的行缓存行数为2,实际设计中可以设计为行数大于等于2的结构,操作方法类似。
一开始,由于检测到两个行缓存都是空的,所以开始读操作:
第1次读取,line_align等于0,next_line_start_addr等于0,读地址为0x0,第一个word,line_count累加值为(4-line_align),因为line_align等于0,所以line_count累加后为4,因为是本行的第一个word,所以需要根据line_align的值来判断将哪一部分写到行缓存中,写入行缓存中的部分为高(4-line_align)字节读数据的4个字节.因为line_align等于0,所以4个字节全部写入行缓存。
第2次读取,读地址在前一读地址基础上加4等于0x4,next_line_start_addr等于0,line_align在每行第一个word读取完后更新,更新算法为:
line_align=(line_align+每行图像数据字节数%4)%4,所以line_align=(0+14%4)%4=2,line_count累加4等于8,因为不是本行的第一个word或者最后一个word,所以4个读数据字节全部写入行缓存。
第3次读取,line_align等于2,next_line_start_addr等于0,读地址在前一读地址基础上加4等于0x8,line_count直接加4等于12,然后因为不是本行的第一个word或者最后一个word,所以4个字节全部写入行缓存。
第4次读取,line_align等于2,读地址在前一读地址基础上加4等于0xc.由于每行的字节数14减line_count值12得到的差值2小于4个字节,所以判定当前word为本行最后一个读数据,并且line_count在本次读取完毕后清零.每行最后一个word时,如果line_align为0则4个字节都是本行数据,如果不为0,则line_align个低位字节为本行数据,因为line_align等于2,所以读数据中低位地址0xc到0xd的2字节数据被写入行缓存;此时,第一行数据读取完毕。next_line_start_addr在本行结束后更新,next_line_start_addr=0+14=14(16进制为0xe)。
此时,由于仍可以检测到行缓存1还是空的,所以继续开始读操作:
第5次读取,line_align等于2,next_line_start_addr等于0xe,读地址等于next_line_start_addr,也就是0xe,对4取整得到0xc.line_count累加值为(4-line_align),等于2。因为是本行的第一个word,所以需要根据line_align的值来判断将哪一部分写到行缓存中,写入行缓存中的部分为高(4-line_align)字节读数据的4个字节.因为line_align等于2,所以读数据的高2个字节,也就是0xe和0xf的两个字节写入行缓存。
第6次读取,读地址在前一读地址基础上加4等于0x10,next_line_start_addr等于e,line_align在每行第一个word读取完后更新,更新算法为:
line_align=(line_align+每行图像数据字节数%4)%4,所以line_align=(2+14%4)%4=0.,line_count累加4等于6.因为不是本行的第一word或者最后一个word,所以4个读数据字节全部写入行缓存。
第7次读取,line_align等于0,next_line_start_addr等于0xe,读地址在前一读地址基础上加4等于0x14,line_count直接加4等于10,然后因为不是本行的第一个word或者最后一个word,所以4个字节全部写入行缓存。
第8次读取,line_align等于0,读地址在前一读地址基础上加4等于0x18.由于每行的字节数14减line_count值10得到的差值4小于等于4个字节,所以判定当前word为本行最后一个读数据,并且line_count在本次读取完毕后清零.每行最后一个word时,如果line_align为0则4个字节都是本行数据,如果不为0,则line_align个低位字节为本行数据,因为line_align等于0,所以读数据中4字节数据被写入行缓存;此时,第二行数据读取完毕.next_line_start_addr在本行结束后更新,next_line_start_addr=14+14=28(28进制为0x1c)。
此时,由于检测到没有行缓存还是空的,所以停止读操作.直到外部显示或处理电路读取完行缓存0后,设置其数据无效,读取控制器可以检测到行缓存0是空时,继续开始读操作:
第9次读取,line_align等于0,next_line_start_addr等于0x1c,读地址等于next_line_start_addr,也就是0x1c,对4取整得到0x1c.line_count累加值为(4-line_align),等于4。因为是本行的第一个word,所以需要根据line_align的值来判断将哪一部分写到行缓存中,写入行缓存中的部分为高(4-line_align)字节读数据的4个字节.因为line_align等于0,所以读数据的4个字节都写入行缓存.此时第三行的第一个数据读取完毕。
第三行之后的数据和后面所有行的数据都按照上面的规则进行读取,直到整个图像读取完毕。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (9)

1.一种紧凑存储图像数据的读取装置,其特征在于:包括读取控制单元、写行缓存控制单元、行缓存单元、读取地址跳变单元以及配置信息存储单元;所述读取控制单元、写行缓存控制单元、行缓存单元顺次连接,所述配置信息存储单元、读取地址跳变单元以及读取控制单元顺次连接,所述配置信息存储单元还与读取控制单元直接连接;所述读取控制单元还与外部电路的图像存储单元连接,所述行缓存单元还与外部电路的显示或者图像处理电路连接;
所述图像存储单元用于负责存储紧凑存储的图像数据;
所述显示或者图像处理电路用于负责读取所述紧凑存储图像数据的读取装置的行缓存中的图像数据,将图像数据显示或者进行图像处理;
所述读取地址跳变单元用于负责运算每次读取动作的地址;
所述读取控制单元用于接收到每次读取的地址后,按照存储单元的读取时序发出读取命令,并将读取回来的图像数据送到写行缓存控制单元进行判断和处理;
所述写行缓存控制单元用于负责在得到每次的读数据后,根据判断,将读数据的全部或者部分写到行缓存单元中;
所述行缓存单元用于存储图像数据,以供外部的图像显示或者处理电路取用;
所述配置信息存储单元用于负责接收外部的配置信息,并将配置信息存储于内部,然后将这些配置信息送往各个所需的单元,配置信息包括图像存储的起始地址,图像的宽度和高度,图像的色度空间格式。
2.如权利要求1所述一种紧凑存储图像数据的读取装置,其特征在于:所述行缓存单元包含两行或者两行以上的图像数据存储空间,即包含两个或两个以上的行缓存,每个行缓存都有一个数据有效位,该位指示本行缓存中是否已经存放满未被使用的行数据,一开始所有行缓存都是无效状态,一行被写满后,该行缓存状态变为有效,直到外部电路使用完毕该行的图像数据后将数据有效位又置为无效状态,当还有行缓存的数据有效位为无效的时候,读取控制单元就会发起新一行的读取动作,再由所述写行缓存控制单元向空行缓存填充一行的图像数据,当全部行缓存都有图像数据时,读取控制单元暂停工作并等待外部的显示或者图像处理电路使用完一行数据后,一旦任意一行的行缓存状态变为无效后,又开始新一行的读取和填充。
3.一种紧凑存储图像数据的读取方法,其特征在于:基于如权利要求1所述的紧凑存储图像数据的读取装置,并包括如下步骤:
步骤10、首先,对配置信息存储单元进行配置,配置内容有紧凑存储图像在图像存储单元中的起始地址,图像的宽度和高度,图像的色度空间格式,电路工作开关位;
步骤20、需要信息配置完毕后,最后将电路工作开关位配置打开,电路开始工作;
步骤30、读取地址跳变单元计算出每一次读取动作的读取地址,并将读取地址送到读取控制单元;
步骤40、读取控制单元根据每次收到读取地址,产生一次对存储单元的读取动作,读取一个word的数据,并把读数据送往写行缓存控制单元;
步骤50、写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中,并根据判断结果将读数据的全部或者部分写到行缓存单元中,以供外部的图像显示或者处理电路取用;
步骤60、这样不断循环步骤30至步骤50,直到图像所有行都被读取完毕。
4.根据权利要求3所述的一种紧凑存储图像数据的读取方法,其特征在于:所述行缓存单元包含两行或者两行以上的图像数据存储空间,即包含两个或两个以上的行缓存,每行都有一个数据有效位,该位指示本行缓存中是否已经存放满未被使用的行数据,一开始所有行缓存都是无效状态,一行被写满后,该行缓存状态变为有效,直到外部电路使用完毕该行的图像数据后将数据有效位又置为无效状态,当还有行缓存的数据有效位为无效的时候,读取控制单元就会发起新一行的读取动作,向空行缓存填充一行的图像数据,当全部行缓存都有图像数据时,读取控制单元暂停工作并等待外部的显示或者图像处理电路使用完一行数据后,一旦任意一行的行缓存状态变为无效后,开始新一行的读取和填充。
5.根据权利要求3所述的一种紧凑存储图像数据的读取方法,其特征在于:所述步骤30中,读取地址跳变单元计算每一次读取动作的读取地址是:从每行图像的行起始地址开始,每次计算一个读地址用于读取一个word的数据,读取完数据后将一个word数据送往写行缓存控制单元。
6.根据权利要求3或5所述的一种紧凑存储图像数据的读取方法,其特征在于:所述步骤30中,读取地址跳变单元计算每一次读取动作的读取地址是按下述步骤进行:
步骤31、设定一个变量next_line_start_addr用于记录下一行的起始地址;其初始值等于图像起始地址;
步骤32、第一次word读取,读取地址为next_line_start_addr的初始值,之后第一行的每次word读取,都在next_line_start_addr基础上加一个word偏移量,直到第一行最后一个word;在第一行最后一个word读取完毕后,next_line_start_addr进行更新,计算方法为:next_line_start_addr=next_line_start_addr+每行像素个数*每个像素占字节数;然后,下一行的第一个读取地址又从新的next_line_start_addr开始,每次一个word偏移量累加,直到下一行读完,next_line_start_addr再更新,如此循环直到图像读取完毕;
步骤33、将每次最终输出的写操作地址对4取整后输出给读取控制单元。
7.根据权利要求4所述的一种紧凑存储图像数据的读取方法,其特征在于:所述步骤50中的写行缓存控制单元判断应该将读数据的哪部分写到行缓存单元中的判断方法是根据当前的读地址对齐情况来判断哪部分字节数据是有效数据,哪部分是无效数据,若是有效数据就写入行缓存单元中,若是无效数据则丢弃。
8.根据权利要求3或7所述的一种紧凑存储图像数据的读取方法,其特征在于:所述步骤50中的写行缓存控制单元的判断应该将读数据的哪部分写到行缓存单元中的判断方法是采用如下步骤进行:
步骤51、设定一变量line_align用于指示当前读取行的数据对齐情况,line_align初始值为图像起始地址除以word的字节余数;line_align在每行第一个word读取完后更新,更新算法为:
line_align=(line_align+每行图像数据字节数%4)%4,算式中%为取余符号;
步骤52、判断已经写到一行中的第几个word,具体是判断是每行第一个word、第一个word与最后一个word之间的word,或者是最后一个word的哪一种;
步骤53、根据判断结果进行写操作:
若是每行的第一个word中,写入行缓存中的部分为高(4-line_align)字节的有效数据,其余为无效数据予以丢弃;
若是每行的第一个word与最后一个word之间的word,每次word读数据的所有字节数据都存入行缓存,该所有字节数据均为有效数据;
若最后一个word时,如果line_align为0则4个字节都是有效数据,所有字节数据都存入行缓存,即为本行数据,如果不为0,则line_align个低位字节为有效数据,将低位字节存入行缓存,即为本行数据。
9.根据权利要求8所述的一种紧凑存储图像数据的读取方法,其特征在于:所述步骤52的具体判断过程包括:
521)设定一个变量line_count用于统计本行已经读取了多少字节数据;line_count初始值为0;
522)在每行第一个word读取时,line_count累加值计算为line_count=line_count+(4-line_align),在每行第一个和最后一个word之间的每次读取,line_count都累加4;当每行的字节数减line_count得到的差值小于等于4个字节时,可以确定下一次读数为本行的最后一个word读取;读取完每行最后一个word后,line_count自动清零。
CN201110399229.3A 2011-12-01 2011-12-01 一种紧凑存储图像数据的读取装置及方法 Active CN102521141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110399229.3A CN102521141B (zh) 2011-12-01 2011-12-01 一种紧凑存储图像数据的读取装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110399229.3A CN102521141B (zh) 2011-12-01 2011-12-01 一种紧凑存储图像数据的读取装置及方法

Publications (2)

Publication Number Publication Date
CN102521141A CN102521141A (zh) 2012-06-27
CN102521141B true CN102521141B (zh) 2014-08-27

Family

ID=46292071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110399229.3A Active CN102521141B (zh) 2011-12-01 2011-12-01 一种紧凑存储图像数据的读取装置及方法

Country Status (1)

Country Link
CN (1) CN102521141B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102594B (zh) * 2014-07-15 2017-10-13 上海龙晶科技有限公司 实现图像数据缓存读写控制的系统及方法
CN104751180A (zh) * 2015-03-30 2015-07-01 宁波高新区宁源科技服务有限公司 一种进行云判决的装置
CN106611401B (zh) 2015-10-22 2020-12-25 阿里巴巴集团控股有限公司 一种在纹理内存中存储图像的方法及装置
CN110782389B (zh) * 2019-09-23 2023-09-15 五八有限公司 一种图像数据字节对齐方法和终端
CN115460350B (zh) * 2022-09-02 2024-01-12 白犀牛智达(北京)科技有限公司 一种基于fpga的图像处理方法和系统
CN117853312B (zh) * 2024-01-16 2024-08-09 上海为旌科技有限公司 一种从存储器提取图像数据的方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004127093A (ja) * 2002-10-04 2004-04-22 Sony Corp 画像処理装置および画像処理方法
CN101212674B (zh) * 2006-12-30 2011-05-04 上海奇码数字信息有限公司 图像在存储器中的地址映射方法
CN100579225C (zh) * 2007-03-28 2010-01-06 华为技术有限公司 图像数据的存取和解码方法及解码装置
JP2009031006A (ja) * 2007-07-24 2009-02-12 Hitachi High-Technologies Corp 外観検査装置及び方法
JP5191193B2 (ja) * 2007-09-05 2013-04-24 日本無線株式会社 画像表示駆動装置
JP4956517B2 (ja) * 2008-10-02 2012-06-20 京セラドキュメントソリュ−ションズ株式会社 データ圧縮装置、画像読取装置
CN102129663B (zh) * 2010-12-20 2012-11-21 福州瑞芯微电子有限公司 一种读取地址和宽度不对齐图像处理方法及电路结构
CN102103740B (zh) * 2010-12-20 2013-01-02 福州瑞芯微电子有限公司 一种写入地址和宽度不对齐图像的处理方法和处理电路

Also Published As

Publication number Publication date
CN102521141A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN102521141B (zh) 一种紧凑存储图像数据的读取装置及方法
CN102521793A (zh) 实现节省图像存储空间的存储控制装置和方法
CN101958112B (zh) 手持设备屏幕画面同时实现90度和270度旋转的方法
CN102016974A (zh) 显示控制设备和显示控制方法
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
CN102903332B (zh) 一种led显示屏的异步控制方法和异步控制卡
JP2021039447A (ja) メモリコントローラおよびメモリコントローラで実施される方法
CN106648513A (zh) 图片显示控制方法和装置、微控制器和电子烟
CN102063857A (zh) 集成电路装置以及电子设备
CN111554334B (zh) 一种实现多tap访问DDR的方法及系统
CN101937666B (zh) 图像显示设备
US9544475B2 (en) Data transfer apparatus and data transfer method
US7987301B1 (en) DMA controller executing multiple transactions at non-contiguous system locations
CN106708457A (zh) 用于dmd动态选区的fpga处理模块及其方法
CN101866634B (zh) 显示码流的显示系统和控制方法
JP4405174B2 (ja) 画像表示制御方法および画像表示装置
JP2003186445A (ja) 表示装置
CN102708837B (zh) 亮度补偿装置及方法
JP2006164070A5 (zh)
JP2006164070A (ja) データバッファ回路、インターフェース回路及びその制御方法
JP2005241742A (ja) 描画データ生成装置
JP5126010B2 (ja) メモリアクセス制御回路及び画像処理装置
CN103186472B (zh) 一种存储器管理的方法及装置以及一种存储器
JP4892646B2 (ja) 不揮発性液晶表示装置および、不揮発性液晶表示装置の表示方法
CN105653206A (zh) 数字图像处理电路及其数据读写方法

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
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 350000 Fuzhou Gulou District, Fujian, software Avenue, building 89, No. 18

Patentee after: FUZHOU ROCKCHIP ELECTRONICS CO., LTD.

Address before: 350000 Fuzhou Gulou District, Fujian, software Avenue, building 89, No. 18

Patentee before: Fuzhou Rockchip Semiconductor Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee after: Ruixin Microelectronics Co., Ltd

Address before: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee before: Fuzhou Rockchips Electronics Co.,Ltd.