IP Library › Granted Patent US 12,530,733
Granted Patent B2
US 12,530,733 · App. 17/926,966 · Granted Jan 20, 2026

Image data storage method, image data processing method and system, and related apparatus

Inventors: Dongdong Jiang (Shandong, CN); Yaqian Zhao (Shandong, CN); Gang Dong (Shandong, CN); Rengang Li (Shandong, CN); Haiwei Liu (Shandong, CN); Hongbin Yang (Shandong, CN)
Assignee: INSPUR ELECTRONIC INFORMATION INDUSTRY CO., LTD.
G06T1/60G06V10/82
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,530,733
App. No.
17/926,966
Granted
Jan 20, 2026
Kind
B2
Abstract

Provided are an image data storage method, an image data processing method and system, and a related apparatus. The image data processing method includes the following steps: sequentially storing image data in a dynamic random memory according to a preset storage format, so that adjacent pieces of image data in the dynamic random memory have continuous storage addresses; reading a preset number of pieces of multi-channel parallel image data from the dynamic random memory, and storing the multi-channel parallel image data in a first-in first-out memory of an FPGA; and executing a convolution operation on target image data in the first-in first-out memory to obtain image feature data. By means of the method, the image data processing rate can be increased.

Claims (63)

1 . An image data storage method, comprising:

receiving an image storage instruction;

determining image data and a dynamic random memory according to the image storage instruction; and

sequentially storing the image data in the dynamic random memory according to a preset storage format, to make that adjacent pieces of image data in the dynamic random memory have continuous storage addresses;

wherein sequentially storing the image data in the dynamic random memory according to the preset storage format comprises:

determining a storage start position of the dynamic random memory, and from the storage start position, sequentially storing the image data to the dynamic random memory along a channel direction, wherein the storage start position comprises a channel height coordinate and a channel width coordinate;

determining whether the channel width coordinate of the storage start position is greater than a width maximum value;

under the condition that the channel width coordinate of the storage start position is greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel height coordinate of the storage start position, setting the channel width coordinate of the storage start position to be 0 to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction; and

under the condition that the channel width coordinate of the storage start position is not greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel width coordinate of the storage start position to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction;

after sequentially storing the image data in the dynamic random memory according to the preset storage format, further comprising:

under the condition that the data read instruction is received, determining target data according to a data read instruction, wherein the target data is multi-channel parallel image data; and transferring the target data to a first-input first-output memory of a field programmable gate array.

2 . An image data processing method, comprising:

sequentially storing image data in a dynamic random memory according to a preset storage format, to make that adjacent pieces of image data in the dynamic random memory have continuous storage addresses;

reading a preset number of multi-channel parallel image data from the dynamic random memory, and storing the multi-channel parallel image data to a first-input first-output memory of a field programmable gate array; and

subjecting the target image data in the first-input first-output memory to a convolution operation to obtain image feature data;

wherein sequentially storing image data in the dynamic random memory according to the preset storage format comprises:

determining a storage start position of the dynamic random memory, and from the storage start position, sequentially storing the image data to the dynamic random memory along a channel direction, wherein the storage start position comprises a channel height coordinate and a channel width coordinate;

determining whether the channel width coordinate of the storage start position is greater than a width maximum value;

under the condition that the channel width coordinate of the storage start position is greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel height coordinate of the storage start position, setting the channel width coordinate of the storage start position to be 0 to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction; and

under the condition that the channel width coordinate of the storage start position is not greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel width coordinate of the storage start position to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction;

wherein reading a preset number of multi-channel parallel image data from the dynamic random memory comprises:

determining a memory read address in a present round, and reading the preset number of multi-channel parallel image data according to the memory read address in the present round; and

reading a preset number of multi-channel parallel image data from the dynamic random memory further comprises:

calculating a memory read address in a next round according to the memory read address in the present round; and

after the first-input first-output memory of the field programmable gate array is ready, according to the memory read address in the next round, reading a preset number of multi-channel parallel new image data, and storing the multi-channel parallel new image data to the first-input first-output memory of the field programmable gate array.

3 . The image data processing method according to claim 2 , wherein reading the preset number of multi-channel parallel image data according to the memory read address in the present round comprises:

taking the memory read address in the present round as a first start address, and calculating a second start address and a third start address according to the first start address and a data read length;

reading a preset number of multi-channel parallel first image data according to the first start address;

reading a preset number of multi-channel parallel second image data according to the second start address; and

reading a preset number of multi-channel parallel third image data according to the third start address.

4 . The image data processing method according to claim 3 , wherein the multi-channel parallel image data is 3*11 multi-channel image data; and

subjecting the target image data in the first-input first-output memory to a convolution operation to obtain image feature data comprises:

converting the 3*11 multi-channel image data in the first-input first-output memory into 9*9 multi-channel image data; and

subjecting the 9*9 multi-channel image data to the convolution operation using a 3*3 convolution kernel to obtain the image feature data.

5 . The image data processing method according to claim 4 , when converting the 3*11 multi-channel image data in the first-input first-output memory into the 9*9 multi-channel image data, further comprising:

controlling a state machine to perform an operation of reading parity data at a same time to remove invalid intervals generated when the 3*11 multi-channel image data is converted into the 9*9 multi-channel image data.

6 . The image data processing method according to claim 2 , when reading the preset number of multi-channel parallel image data from the dynamic random memory, further comprising:

determining whether a data volume of the multi-channel parallel image data that is read reaches a preset value; and

under the condition that a data volume of the multi-channel parallel image data that is read does not reach a preset value, padding with zeros at after the multi-channel parallel image data that is read to make the data volume equals the preset value.

7 . The image data processing method according to claim 2 , wherein when the multi-channel parallel image data is 3*11 multi-channel image data, the method further comprises:

taking the memory read address in the present round as a first start address.

8 . The image data processing method according to claim 7 , wherein the method further comprises:

calculating a second start address and a third start address according to the first start address and a data read length.

9 . The image data processing method according to claim 8 , wherein the method further comprises:

reading a preset number of multi-channel parallel first image data according to the first start address;

reading a preset number of multi-channel parallel second image data according to the second start address; and

reading a preset number of multi-channel parallel third image data according to the third start address.

10 . A non-transitory computer-readable storage medium, storing a computer program that is executed executable by a processor, and upon execution by the processor, is configured to cause the processor to implementing operations as follows:

receiving an image storage instruction;

determining image data and a dynamic random memory according to the image storage instruction; and

sequentially storing the image data in the dynamic random memory according to a preset storage format, to make that adjacent pieces of image data in the dynamic random memory have continuous storage addresses;

wherein sequentially storing the image data in the dynamic random memory according to the preset storage format comprises:

determining a storage start position of the dynamic random memory, and from the storage start position, sequentially storing the image data to the dynamic random memory along a channel direction, wherein the storage start position comprises a channel height coordinate and a channel width coordinate;

determining whether the channel width coordinate of the storage start position is greater than a width maximum value;

under the condition that the channel width coordinate of the storage start position is greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel height coordinate of the storage start position, setting the channel width coordinate of the storage start position to be 0 to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction; and

under the condition that the channel width coordinate of the storage start position is not greater than the width maximum value, detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, and in response to detecting that all the channel directions corresponding to the storage start position are fully occupied for storage, adding 1 to the channel width coordinate of the storage start position to obtain a new storage start position, and from the new storage start position, sequentially storing remaining pieces of image data to the dynamic random memory along the channel direction;

after sequentially storing the image data in the dynamic random memory according to the preset storage format, further comprising:

under the condition that the data read instruction is received, determining target data according to a data read instruction, wherein the target data is multi-channel parallel image data; and transferring the target data to a first-input first-output memory of a field programmable gate array.

11 . The non-transitory computer-readable storage medium according to claim 10 , wherein reading a preset number of multi-channel parallel image data from the dynamic random memory comprises:

determining a memory read address in a present round, and reading the preset number of multi-channel parallel image data according to the memory read address in the present round; and

reading a preset number of multi-channel parallel image data from the dynamic random memory further comprises:

calculating a memory read address in a next round according to the memory read address in the present round; and

after the first-input first-output memory of the field programmable gate array is ready, according to the memory read address in the next round, reading a preset number of multi-channel parallel new image data, and storing the multi-channel parallel new image data to the first-input first-output memory of the field programmable gate array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2022
From: JIANG, DONGDONG; ZHAO, YAQIAN; DONG, GANG; LI, RENGANG; LIU, HAIWEI; YANG, HONGBIN
To: INSPUR ELECTRONIC INFORMATION INDUSTRY CO., LTD.
Reel/Frame 061846/0001 →
Priority Claims (1)
CN 202010442519.0 · May 22, 2020 · national
Continuity (1)
Related Publication 20230196500A1 · Jun 22, 2023
References Cited (10)
US 20160342888A1 · Yang et al. · 2016 [cited by applicant]
US 20180204118A1 · Ono · 2018 [cited by examiner]
US 20200133854A1 · Yang · 2020 [cited by examiner]
CN 109086867A · 2018 [cited by applicant]
CN 109800867A · 2019 [cited by applicant]
CN 110674927A · 2020 [cited by applicant]
CN 110826707A · 2020 [cited by examiner]
CN 111583095A · 2020 [cited by applicant]
PCT/CN2021/073790 international search report and written opinion. [cited by applicant]
EP21808636.1 extended European search report dated Feb. 26, 2024. [cited by applicant]