CN108804508A - A kind of method and system of storage input picture - Google Patents

A kind of method and system of storage input picture Download PDF

Info

Publication number
CN108804508A
CN108804508A CN201810344898.2A CN201810344898A CN108804508A CN 108804508 A CN108804508 A CN 108804508A CN 201810344898 A CN201810344898 A CN 201810344898A CN 108804508 A CN108804508 A CN 108804508A
Authority
CN
China
Prior art keywords
memory
main portion
size
input picture
bytes
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.)
Granted
Application number
CN201810344898.2A
Other languages
Chinese (zh)
Other versions
CN108804508B (en
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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
Priority claimed from US15/786,908 external-priority patent/US20180107616A1/en
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN108804508A publication Critical patent/CN108804508A/en
Application granted granted Critical
Publication of CN108804508B publication Critical patent/CN108804508B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Abstract

The present invention provides a kind of method and system of storage input picture.The present invention describes distributes one or more frame buffers in memory.Invention further describes multiple access units that input picture is divided into multiple subsets corresponding to input picture, and in frame buffer in multiple access units each access unit distribution main portion and secondary part, the secondary part of wherein at least one in frame buffer not sequentially status after its respective main portion.Invention also describes be compressed into access unit to have compressed access unit, it will each compress in access unit storage to respective main portion, it, will be in the remainder storage to respective secondary part that access unit compressed and if the size for having compressed access unit is more than the size of main portion.The invention enables the access units of compression stored in memory can be effectively completed access.

Description

A kind of method and system of storage input picture
Prioity claim
This application claims the priority applied as follows:Entitled " Memory Access were proposed on 04 25th, 2017 No. 62/489,588 U.S. of Efficiency Optimization for Frame Buffer Compression " faces When patent application and on October 18th, 2017 propose entitled " Distributed Access Unit for Frame The 15/786th, No. 908 U.S. Provisional Patent Application of Buffer Compression ", entirety are incorporated by reference this Wen Zhong.
Technical field
And more specifically the disclosed embodiment of the present invention is related to memory technology, is related to a kind of storage input picture Method and system.
Background technology
Background description provided herein is used as generally showing the purpose of present disclosure.Sign inventor's at present Action had both been included in the content of the work described in the background technique part, had been not to be regarded as when being also contained in application The various aspects of the prior art, these are both indefinite or are not considered the prior art of the present invention with implying that.
Electronic equipment, such as computer system may include one or more memories.In one example, electronics is set Standby includes a component, such as the central processing unit (central positioned at the ic core on piece different from memory Processing unit, CPU), memory is accessed by Memory Controller.By CPU access memory can CPU with Heavy data traffic is generated between memory.
Invention content
In view of this, the present invention provides a kind of method and system of storage input picture, deposited with effectively completing access The compression access unit stored in reservoir.
The aspect of the present invention provides a kind of method stored in input picture to memory.This method may include:It is depositing One or more frame buffers are distributed in reservoir;Input picture is divided into multiple visits of multiple subsets corresponding to input picture It asks unit, and main portion and secondary part is distributed to each access unit in multiple access units in frame buffer, wherein extremely Few one secondary part in frame buffer not sequentially status after its respective main portion;Multiple access units are compressed into more It is a to have compressed access unit;And will each compress in access unit in storage to respective main portion, and if pressed The size of contracting access unit is more than the size of main portion, then stores the remainder for having compressed access unit to respective pair portion In point.
The aspect of the present invention also provides a kind of system for storing input picture.This system includes memory, memory Distributor and Memory Controller.Memory has one or more frame buffers;Memory distribution device is defeated for receiving Enter image, distributes frame buffer in memory to store input picture, input picture is divided into multiple corresponding to input figure Multiple access units of multiple subsets of picture, and main portion and secondary part are distributed to each access unit in frame buffer, In at least one secondary part in frame buffer not sequentially status after its respective main portion;And Memory Controller is used In the multiple instruction in response to memory distribution device, will each compress in access unit storage to respective main portion, and And if the size for having compressed access unit is more than the size of main portion, the remainder storage for having compressed access unit is arrived In respective pair part.
The optional aspect of the present invention can provide a kind of non-transitory computer-readable medium, be stored with computer-readable finger It enables, when processing circuit executes computer-readable instruction, processing circuit executes a method, and this method includes:Divide in memory With one or more frame buffers;
Input picture is divided into multiple access units of multiple subsets corresponding to input picture, and in frame buffer Main portion and secondary part are distributed to each access unit in multiple access units, the secondary part of wherein at least one is in frame buffer In not sequentially status after its respective main portion;Multiple access units are compressed into and multiple have compressed access unit;It will be every It is a to have compressed in access unit storage to respective main portion, and if the size for having compressed access unit is more than main portion Size, then will be in the remainder storage to respective secondary part that compress access unit.
The present invention is compressed by giving each access unit to distribute main portion and secondary part in memory in access unit Later, access unit storage will have been compressed to main portion, in the case where the size of main portion is less than and has compressed access unit, also The remainder for having compressed access unit is stored to secondary part so that compressed access unit and effectively completed access.
Description of the drawings
It will be described in detail in conjunction with following attached drawing to being provided as exemplary various embodiments of the present invention, wherein The identical element of identical symbolic indication, and wherein:
Fig. 1 is the example block diagram of storage system according to the ... of the embodiment of the present invention;
Fig. 2 is example data structure according to the ... of the embodiment of the present invention;
Fig. 3 is three exemplary superblocks in three frame buffers according to the ... of the embodiment of the present invention;
Fig. 4 is three exemplary superblocks in three frame buffers according to the ... of the embodiment of the present invention;
Fig. 5 is two exemplary superblocks in two frame buffers according to the ... of the embodiment of the present invention;
Fig. 6 is optional frame buffer example according to the ... of the embodiment of the present invention;
Fig. 7 is the flow chart for describing exemplary flow according to the ... of the embodiment of the present invention.
Specific implementation mode
Fig. 1 shows the example block diagram of storage system 100 according to the ... of the embodiment of the present invention.As shown, storage Device system 100 may include memory distribution device 110, Memory Controller 120 and memory 130.Memory 130 can wrap Include frame buffer 131.Storage system 100 is used to input picture being divided into one or more access units, and will each Compression access unit (compressed access unit) stores being distributed into frame buffer 131 and is used for respective visit Ask the main portion (main portion) of unit and secondary part (secondary portion).
Storage system 100 can be any suitable system for storing data.In one embodiment, memory System 100 is electronic equipment, such as desktop computer, tablet computer, smart mobile phone, wearable device, intelligence TV, video camera, camera shooting Video recorder (camcorder), media player etc..In an example embodiment, storage system 100 can also include other Component accesses the data stored in memory 130.For example, other assemblies may include CPU 141, image processing unit (graphics processing unit, GPU) 142, it media engine 143, display circuit 144, image processor 145, regards Frequency codec 146 etc..
In one embodiment, memory 130 can have and be demarcated by memory based on page size or channel segmentation Memory block (memory block) sequence that line (memory boundary) is separated, for example, every 32 bytes, 64 words At section, 128 bytes, 256 bytes, 512 byte 1K bytes, 2K bytes or 4K bytes.Between two adjacent lines of demarcation of access The a certain number of data stored in memory block in accessing across two memory blocks in memory line of demarcation than separating The data of the identical quantity of storage are more effective.Therefore, when the initial address of data is aligned with memory line of demarcation, memory Another component that data in 130 can be stored by system 100 effectively accesses.It is to deposit that memory line of demarcation, which is formed in address, At the multiple of reservoir block size.In one embodiment, memory block size can accommodate a certain number of data, can be It is ordered with single or several precharge with the read/write command that happens suddenly between memory 130 and the other assemblies of other storage systems 100 It enables and the sequence form of activation command is transmitted quickly even with low-speed communications.Memory block size can be based on memory 130 and access memory 130 Storage system 100 other assemblies characteristic and selected, such as page size and memory 130 channel segmentation, and The framework and operation mode of the other assemblies of the storage system 100 of memory 130 and access memory 130.
Memory distribution device 110 is for receiving input picture and being divided into one or more access units.Storage Device distributor 110 is additionally operable to the part of memory 130 distributing to input picture, such as frame buffer 131, and in frame buffer In device 131 two memory portions, i.e. main portion and secondary part are distributed to each access unit.In one example, frame buffer The initial address of device 131 can be aligned with memory line of demarcation, for example, 0 byte.Memory distribution device 110 is every for compressing A access unit, and access unit storage will have each been compressed to respective main portion, if having compressed the size of access unit More than the size of main portion, then its respective secondary part is arrived into the remainder storage for having compressed access unit.Implement at one In example, memory distribution device 100 can be integrated in any component for accessing the data stored in memory 130, example Such as the one or more components of storage system 100 comprising CPU 141, GPU142, media engine 143, display circuit 144, image processor 145, Video Codec 146 etc..
In one embodiment, main portion can have the initial address being aligned with memory line of demarcation and be memory block One times of size or more times of size.Therefore, being stored in the data of main portion can be efficiently accessed.Optionally, work as principal part When the size divided is less than memory block size, each main portion can be located in respective memory block, and one or more main Partial initial address can be aligned with one or more memory lines of demarcation.
The size of secondary part can be a part for memory block size.Therefore, two or more secondary part It can be grouped together, and be stored independently of its respective main portion.Be less than when the size for having compressed access unit or Equal to main portion size when, having compressed access unit can be stored in inside main portion completely, without using secondary part. In this way, because main portion can be efficiently accessed, it is possible to effectively complete access and compress access unit.
In another embodiment, at least one of secondary part is not to be located successively in its respective master in frame buffer After part, this include main portion have be more than its respectively pair part address opposite sequence.
Memory Controller 120 is used to manage the memory access from memory distribution device 110 to memory 130.It deposits Memory controller 120 can be used for receiving the request for coming from memory distribution device 110, will compress access unit storage To respective main portion in the frame buffer 131 of memory 130 and secondary part.Based on these requests, Memory Controller 120 can It is ordered with being sent to memory 130 with instruction, access unit storage will have been compressed to respective main portion in frame buffer 131 With secondary part.Memory Controller 120 can be used for dispatching and caching these requests etc..
Memory 130 can be any suitable equipment for storing data.In one embodiment, memory 130 Including dynamic RAM (dynamic random access memory, DRAM) type memory module, for example, Double data rate synchronous dram (double data rate synchronous DRAM, DDR SDRAM), double data rate are double Synchronous dram (double data rate two synchronous DRAM, DDR2 SDRAM), double data rate three synchronize DRAM (double data rate three synchronous DRAM, DDR3SDRAM), four synchronous dram of double data rate (double data rate four synchronous DRAM, DDR4SDRAM), low-power DDR SDRAM (low power DDR SDRAM, LPDDR SDRAM) etc..
In one embodiment, storage system 100 can be system on chip (system-on chip, SOC), wherein institute There is component to be located on monolithic integrated optical circuit (integrated circuit, IC) chip.In addition, such as CPU 141, GPU 142, Media engine 143, display circuit 144, image processor 145 and Video Codec 146 other assemblies can also include In identical monolithic IC chip.Optionally, the component in storage system 100 can be distributed across several IC.For example, memory Distributor 110, Memory Controller 120, memory 130 and storage system 100 other assemblies can be located at multiple IC On chip.In addition, memory distribution device 110 can be integrated in any group of the data stored in access memory 130 In part, for example, storage system 100 one or more components comprising it is CPU 141, GPU 142, media engine 143, aobvious Show circuit 144, image processor 145, Video Codec 146 etc..
During operation, input picture can be received by memory distribution device 110.Memory distribution device 110 can be with Input picture is divided into one or more access units.In addition, memory distribution device 110 can be by the portion of memory 130 Point, such as frame buffer 131, distribute to input picture.Two memory portions, i.e. main portion and secondary part, are assigned to frame Each access unit in buffer 131.Under the instruction of memory distribution device 110, Memory Controller 120 can will It compresses access unit storage and arrives its respective main portion, and the secondary part depending on dimensional conditions.Main portion can have The initial address being aligned with memory line of demarcation and one times or more times of the size for memory block size.The size of secondary part It can be a part for memory block size.Therefore, two or more secondary part can be grouped together, and solely Its respective main portion is stood on to be stored.When the size for having compressed access unit is less than or equal to the size of main portion, Compression access unit can be stored in inside main portion completely, without using secondary part.In this way, visit can be effectively completed It asks and has compressed access unit.
Fig. 2 is example data structure 200 according to the ... of the embodiment of the present invention, and it illustrates be divided into the defeated of access unit Enter image 210, frame buffer 231A and frame buffer 231B.As shown, input picture 210 can be divided into the visit of N × M Ask cell array.Inside the array, the size of access unit depends on the quantity of pixel and pixel position in this access unit Deep (pixel bit-depth).Pixel locating depth is the digit of the pixel for designated color, such as 10 or 12, point It Dui Yingyu not 1024 colors or 4049 colors.In one example, the quantity of pixel can depend in access unit Compression method used in memory distribution device 110, such as the size of compression unit depend on being operated with which compression method. For example, the size of compression unit can be 4 × 4 pixels, 8 × 8 pixels, 16 × 4 pixels, 16 × 8 pixels, 16 × 16 pixels etc.. Access unit can have one or more compression units.
Frame buffer 231A shows the example frame buffer architecture for storing input picture.Frame buffer can be Memory has addressable position for storing data.Addressable position in memory can be combined into have and deposit The memory block of reservoir block size.As described above, memory block size can be based on memory 130 and access memory 130 The characteristic of the other assemblies of storage system 100 and selected, such as page size and memory 130 channel segmentation, Yi Jicun The framework and operation mode of the other assemblies of the storage system 100 of reservoir 130 and access memory 130.In one example, Memory block size can be selected as 32 bytes, 64 bytes, 128 bytes, 256 bytes, 512 bytes, 1K bytes, 2K bytes, 4K bytes etc..For example, memory 130 can be DDR3SDRAM equipment, and retrieved in data from memory 130.Memory block Size is data volume, can be retrieved from memory 130 in the single read cycle.Specifically, when data-bus width and prominent When hair length (burst length) is respectively 64 (i.e. 8 bytes) and 4, memory block size can be 32 bytes.Another In example, memory block size can be determined by the 142 cache memory line of CPU 141 or GPU of access memory For 64 bytes or 128 bytes etc..In the figure 2 example, memory block size is 64 bytes, and therefore in frame buffer 231A In frame buffer 231B, 250 (1) -250 (n) of memory line of demarcation is located at 0 byte, 64 bytes, 128 bytes, 192 bytes etc. Place.
Main portion and secondary part can be assigned to each access unit.In one embodiment, the size of main portion can With depending on the compressibility of input picture, compression method, memory block size etc..In addition, in one embodiment, main portion Size can be equal to the size of access unit with the summation of the size of secondary part.Similarly, the size of main portion and secondary part Size ratio can depend on input picture compressibility, compression method, memory block size etc..For example, when accessing When unit can be compressed into smaller szie, smaller main portion has compressed access unit to store enough, and respective pair Part can remain sky so that the ratio smaller of the size of main portion and the size of secondary part.For example, the size of main portion with The ratio of the size of secondary part can be 2,4 or 8 etc..
In addition, main portion can have the initial address that is aligned with memory line of demarcation and to store the multiple of block size Size so that being stored in the data of main portion can be efficiently accessed.In the figure 2 example, main portion 221 (1) -221 (3) Size can be selected to the storage block size with 64 bytes, and the initial address of main portion 221 (1) -221 (3) point It is not aligned with memory line of demarcation 250 (1) -250 (3).The size of respective pair part 241 (1) -241 (3) can be selected to Less than 64 bytes, such as 32 bytes.
Frame buffer 231B is shown has compressed showing when access unit 261-263 is stored when of various sizes Example.Its respective main portion 221 (1) -221 (3) and secondary part 241 can be stored in by having compressed access unit 261-263 (1)-241(3).In the figure 2 example, the size for having compressed access unit 261 is less than the memory block size of 64 bytes.Cause This, having compressed access unit 261 can have been stored in main portion 221 (1), and secondary part 241 (1) remains sky.It has pressed The size of contracting access unit 262 is equal to the memory block size of 64 bytes.Therefore, having compressed access unit 262 can be in principal part Divide in 221 (2) and has been stored, and secondary part 241 (2) remains sky.However, the size for having compressed access unit 263 is more than 64 The memory block size of byte.Therefore, main portion 221 (3) can be inserted by having compressed the first part of access unit 263, and The second part or remainder for compressing access unit 263 can be stored in secondary part 241 (3).
In various embodiments, the size of the size of access unit, the size of main portion and secondary part can be selected, and Constant is remained for input picture.On the other hand, multiple input image, for example, video sequence frame, can be by memory System 100 stores.The size of the size of access unit, the size of main portion and secondary part can be selected for each list Therefore a input picture can dynamically change from an input picture to another input picture.
Main portion and secondary part can be arranged on according to various layouts in frame buffer 131.Fig. 3-Fig. 5, which is shown, to be shown Example layout comprising the duplication model of main portion and secondary part in a periodic manner, wherein minimum repetitive unit is superblock. Therefore, the main portion in frame buffer 131 and secondary part can be with for example, be arranged by sequentially placing superblock adjacent to each other Row.In one embodiment, the size of superblock can be the multiple of memory block size.
Fig. 3 is three exemplary superblock 341A- in three frame buffer 331A-331C according to the ... of the embodiment of the present invention 341C.Superblock 341A-341C shares identical characteristic, wherein super all secondary parts in the block are combined into secondary part group, Positioned at the centre of respective superblock.The initial address of main portion is aligned with memory line of demarcation.The size of secondary part group is storage One times or more times of device block size, and the first secondary part of secondary part group is aligned with memory line of demarcation.
With reference to superblock 341A, access unit is dimensioned to 160 bytes, and memory block is dimensioned to 128 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 32 bytes.As shown, super block models tool Have including four secondary part (i.e. S0-S3) secondary part group, be inserted in the first principal part grouping (i.e. M0-M1) and the second principal part It is grouped (i.e. M2-M3) between.The size of superblock 341A is 5 times (i.e. 640 bytes) of memory block size.Superblock 341A's Memory line of demarcation is located at 0 byte, 128 bytes, 256 bytes, 384 bytes, 512 bytes and 640 bytes, all main portions M0-M3Initial address be aligned respectively with the memory line of demarcation at 0 byte, 128 bytes, 384 bytes and 512 bytes.It is secondary Size of the part group with 128 bytes, the first pair part S0It is aligned with the memory line of demarcation positioned at 256 bytes.
With reference to superblock 341B, access unit is dimensioned to 192 bytes, and memory block is dimensioned to 128 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 64 bytes.As shown, super block models tool Have including four secondary part (i.e. S0-S3) secondary part group, be inserted in the first principal part grouping (i.e. M0-M1) and the second principal part It is grouped (i.e. M2-M3) between.The size of superblock 341B is 6 times (i.e. 768 bytes) of memory block size.Superblock 341B's Memory line of demarcation is located at 0 byte, 128 bytes, 256 bytes, 384 bytes, 512 bytes, 640 bytes and 768 bytes, owns Main portion M0-M3Initial address respectively with the memory line of demarcation at 0 byte, 128 bytes, 512 bytes and 640 bytes Alignment.Secondary size of the part group with 256 bytes, the first pair part S0It is aligned with the memory line of demarcation positioned at 256 bytes.
With reference to superblock 341C, access unit is dimensioned to 384 bytes, and memory block is dimensioned to 256 Byte, and main portion and the size of secondary part are respectively arranged to 256 bytes and 128 bytes.As shown, super block models tool Have including two secondary part (i.e. S0-S1) secondary part group, be inserted in the first main portion M0With the second main portion M1Between. The size of superblock 341C is 3 times (i.e. 768 bytes) of memory block size.The memory line of demarcation of superblock 341C is located at 0 At byte, 256 bytes, 512 bytes and 768 bytes, main portion M0-M1Initial address respectively with the memory point positioned at 0 byte Boundary line and positioned at 512 byte memory lines of demarcation be aligned.Secondary size of the part group with 256 bytes, the first pair part S0With position It is aligned in the memory line of demarcation of 256 bytes.
Fig. 4 is three exemplary superblock 441A- in three frame buffer 431A-431C according to the ... of the embodiment of the present invention 441C.Superblock 441A-441C shares identical characteristic, wherein super all secondary parts in the block are combined into secondary part group, The principal part comprising main portion is followed by be grouped.The initial address of main portion is aligned with memory line of demarcation.The size of secondary part group It it is one times or more times of memory block size, and the first secondary part of secondary part group is aligned with memory line of demarcation.
With reference to superblock 441A, access unit is dimensioned to 192 bytes, and memory block is dimensioned to 128 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 64 bytes.As shown, super block models It includes two secondary part (i.e. S that 441A, which has,0-S1) secondary part group, be followed by principal part grouping (i.e. M0-M1).Superblock 441A Size be memory block size 3 times (i.e. 384 bytes).The memory line of demarcation of superblock 441A is located at 0 byte, 128 words At section, 256 bytes and 384 bytes, all main portion M0-M1Initial address respectively with positioned at the memory line of demarcation of 0 byte and It is aligned positioned at the memory line of demarcation of 128 bytes.Secondary size of the part group with 128 bytes, the first pair part S0With positioned at 256 The memory line of demarcation of byte is aligned.
With reference to superblock 441B, access unit is dimensioned to 160 bytes, and memory block is dimensioned to 128 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 32 bytes.As shown, super block models tool Have including four secondary part (i.e. S0-S3) secondary part group, be followed by principal part grouping (i.e. M0-M3).The size of superblock 441B For 5 times (i.e. 640 bytes) of memory block size.The memory line of demarcation of superblock 441B is located at 0 byte, 128 bytes, 256 At byte, 384 bytes, 512 bytes and 640 bytes, all main portion M0-M3Initial address respectively with positioned at 0 byte, 128 words Memory line of demarcation alignment at section, 256 bytes and 384 bytes.Secondary size of the part group with 256 bytes, the first secondary part S0It is aligned with the memory line of demarcation at 512 bytes.
With reference to superblock 441C, access unit is dimensioned to 320 bytes, and memory block is dimensioned to 128 Byte, and main portion and the size of secondary part are respectively arranged to 256 bytes and 64 bytes.As shown, super block models tool Have including two secondary part (i.e. S0-S1) secondary part group, be followed by principal part grouping (i.e. M0-M1).The size of superblock 441C For 5 times (i.e. 640 bytes) of memory block size.The memory line of demarcation of superblock 441C is located at 0 byte, 128 bytes, 256 At byte, 512 bytes and 640 bytes, all main portion M0-M1Initial address respectively at 0 byte and 256 bytes Memory line of demarcation is aligned.Secondary size of the part group with 256 bytes, the first pair part S0With the memory positioned at 512 bytes Line of demarcation is aligned.
Fig. 5 is two exemplary superblock 541A- in two frame buffer 531A-531B according to the ... of the embodiment of the present invention 541B.Superblock 541A-541C shares identical characteristic, and the wherein size (i.e. 128 bytes) of main portion is less than memory block size (i.e. 256 bytes).It can need to be stored in main portion and secondary part in addition, some have compressed access unit, and some have been compressed Access unit can have been stored in main portion.In order to allow effectively to access the pressure being stored in main portion and secondary part Contracting access unit can be contained in corresponding to the secondary part as much as possible of main portion in identical memory block, and excellent Selection of land, immediately following in respective main portion.For example, in superblock 541A, in its respective memory block, main portion M0Quilt Its pair part S0It closely follows, main portion M3By its pair part S3It closely follows.
With reference to superblock 541A, access unit is dimensioned to 192 bytes, and memory block is dimensioned to 256 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 64 bytes.As shown, super block models tool There is secondary part S0, it is followed by each autonomic elements M0, and pair part S3, it is followed by each autonomic elements M3.Superblock 541A's Size is 3 times (i.e. 768 bytes) of memory block size.The memory line of demarcation of superblock 541A be located at 0 byte, 256 bytes, At 512 bytes and 768 bytes, three main portion M0、M1And M3Initial address respectively with positioned at 0 byte, 256 bytes and 512 words Memory line of demarcation alignment at section.Main portion M2It is not aligned with memory line of demarcation, but main portion M2Positioned at 256 bytes with Inside single memory block between 512 bytes.
With reference to superblock 541B, access unit is dimensioned to 192 bytes, and memory block is dimensioned to 256 Byte, and main portion and the size of secondary part are respectively arranged to 128 bytes and 64 bytes.As shown, super block models tool It is followed by its main portion M0Secondary part S0, and it is followed by its main portion M1Secondary part S1.The size of superblock 541B is 3 times (i.e. 768 bytes) of memory block size.The memory line of demarcation of superblock 541A is located at 0 byte, 256 bytes, 512 words At section and 768 bytes, three main portion M0、M1And M2Initial address respectively at 0 byte, 256 bytes and 512 bytes Memory line of demarcation alignment.Main portion M3It is not aligned with memory line of demarcation, but main portion M3Positioned at 512 bytes and 768 words Inside single memory block between section.
Fig. 6 shows optional frame buffer example according to the ... of the embodiment of the present invention.By having two groups, i.e. principal part is grouped With secondary part group, the main portion of frame buffer 631A and frame buffer 631B and secondary part, wherein principal part grouping packet can be arranged It includes and sequentially places all main portions adjacent to each other, and secondary part group includes sequentially placing all pair portions adjacent to each other Point.In one embodiment, the size of main portion is one times or more times of memory block size, and the initial address of main portion can be with It is aligned with memory line of demarcation.Principal part grouping can be placed with to be organized adjacent with secondary part, or can partly be separated with secondary.
As shown in frame buffer 631A, access unit is dimensioned to 80 bytes, and memory block is dimensioned to 64 bytes, and main portion and the size of secondary part are respectively arranged to 64 bytes and 16 bytes.Principal part grouping includes all principal parts Point.As shown, main portion is placed with mutually adjacent, and there is initial address, and positioned at 0 byte, 64 bytes, 128 words The continuous memory line of demarcation of section, 192 bytes, 256 bytes etc. is aligned.Secondary part group includes all secondary parts.First is secondary Part S0Can have the initial address that is aligned with memory line of demarcation, for example, with the memory line of demarcation at 512 bytes Alignment.
As shown in frame buffer 631B, access unit is dimensioned to 160 bytes, and memory block is dimensioned to 128 bytes, and main portion and the size of secondary part are respectively arranged to 128 bytes and 32 bytes.Principal part grouping includes all masters Part.As shown, main portion is placed with mutually adjacent, and there is initial address, and positioned at 0 byte, 128 bytes, 256 The continuous memory line of demarcation of byte, 384 bytes, 512 bytes etc. is aligned.Secondary part group includes all secondary parts.First Secondary part S0There can be the initial address being aligned with memory line of demarcation, such as demarcate with the memory at 4096 bytes Line is aligned.
In superblock and frame buffer as shown in figures 3 to 6, at least one secondary part is not that sequence is located at it respectively Main portion after.
In one embodiment, the initial address of superblock and frame buffer can demarcate with the memory of memory 130 Line is aligned, such as at 0 byte as shown in figures 3 to 6.
Although exemplary superblock and frame buffer are as shown in figures 3 to 6, it should be understood that in order to meet different storages Device uses scene, and the deformation of the deformation of super block models, position of superblock in frame memory etc. is possible.
During operation, when main portion and secondary part are placed on according to layout in frame buffer 131, such as such as Fig. 3- It is laid out shown in Fig. 6, having compressed access unit can be stored in respective main portion.For example, having compressed access unit It can be stored in respective main portion, and if desired, be stored in respective secondary part.List is accessed when having compressed When the size of member is equal to or less than the size of each autonomic elements, respective principal part can be stored in completely by having compressed access unit In point, and corresponding secondary part can remain sky.
Fig. 7 shows the flow chart for describing exemplary flow 700 according to the ... of the embodiment of the present invention.In one example, it flows Journey 700 is executed by the storage system 100 in Fig. 1.Flow starts from step S701 and proceeds to step S710.
In step S710, input picture is divided into one or more access unit, such as N × M as shown in Figure 2 The access unit of array.In one example, memory distribution device 110 is used to input picture being divided into the access list of array Member.Input picture can be video frame, photographs, graph image, animated image etc..Such as video frame can be that video compiles solution Reference frame used in code device 146.Subsequent flow proceeds to step S720.
In step S720, a frame buffer is distributed in memory.In one example, memory distribution device 110 For distributing frame buffer 131 in memory 130.The size of frame buffer is equal to or more than the size of input picture.? In one embodiment, the initial address of frame buffer can be aligned with memory line of demarcation, such as the memory boundary at 0 byte Line.
In step S730, in frame buffer to each access unit distribute two memory portions, i.e., main portion and Secondary part.In one example, memory distribution device is used to distribute main portion to each access unit in frame buffer 131 With secondary part.In one embodiment, the size of main portion can be equal to the ruler of access unit with the summation of the size of secondary part It is very little, for example, can be the size of unpressed access unit.In one embodiment, the size of main portion can depend on defeated Enter compressibility, compression method, the memory block size etc. of image.In addition, in one embodiment, size and the pair portion of main portion The ratio for the size divided can depend on compressibility, the compression method etc. of input picture.For example, when access unit can be compressed When at smaller szie, smaller main portion is sufficiently used for storage and has compressed access unit, and respectively secondary part can remain sky, Make the ratio smaller of the size and the size of secondary part of primary part.
Further, in one embodiment, main portion can have the initial address that is aligned with memory line of demarcation and For one times or more times of size of memory block size so that the data stored in main portion can be efficiently accessed.
Optionally, when the size of main portion is less than memory block size, each main portion can be located at respective storage Within device block, and one or more main portions can have the initial address being aligned with one or more memory lines of demarcation.
In one embodiment, the size of secondary part can be a part for memory block size.Therefore, two or two A above secondary part can be grouped together as one or more secondary part groups, and separately be carried out with its respective main portion Storage.Further, in one embodiment, the first secondary part in each respective secondary part group can have and memory The initial address of line of demarcation alignment.
In another embodiment, in frame buffer, at least one secondary part is not sequentially to be located at its each autonomic elements Later.
Main portion and secondary part can be arranged according to different layouts in frame buffer, such as in frame buffer 131.? In one embodiment, layout may include the duplication model of superblock, and wherein superblock is that the minimum repetition in frame buffer is single Member.Therefore, the main portion in frame buffer and secondary part can be with for example, be arranged by sequentially placing superblock adjacent to each other Row.The size of superblock can be configured to the multiple of memory block size.
In one embodiment, the initial address of super main portion in the block is aligned with memory line of demarcation.In superblock Secondary part can be combined into one or more secondary parts groups, size is the multiple of memory block size.Each pair part The first secondary part in group can be aligned with memory line of demarcation.Some exemplary superblocks such as Fig. 3 with the above characteristics and Shown in Fig. 4.
In another embodiment, superblock can have one or more main portions, size to be less than memory block size. Some exemplary superblocks are as shown in Figure 5.For example, respective main portion is closely followed (for example, Fig. 5's is super in secondary part as much as possible S in grade block 541A0It is followed by M0, and S3It is followed by M3).In another example each main portion is fully located in identical memory block.
In one embodiment, layout does not include the duplication model of superblock.On the contrary, by with principal part grouping and pair portion Grouping can arrange the main portion in frame buffer and secondary part, such as example as shown in FIG. 6.For example, principal part grouping includes Main portion with the initial address being aligned with continuous memory line of demarcation.Secondary part group includes mutual adjacent secondary part. First secondary part of secondary part group can be aligned with memory line of demarcation.
In step S740, access unit can be compressed into and compress access unit, deposited with access with reducing memory The bandwidth requirement of data transmission between another equipment of reservoir.For example, in storage system 100, memory 130 can be located at On the chip different from memory distribution device 110, memory distribution device 110 is for compressing access unit to reduce memory The bandwidth requirement of data transmission between 130 and memory distribution device 110.Lossless compression method and compression method can be with For compressing access unit.Lossless compression method can protect the quality of initial data, and compression method may be implemented more More compressions.Compression method can be general compression method, method for compressing image or video-frequency compression method etc..For example, pressure Contracting method may include run length coding, RLC (run-length encoding), the algorithm based on dictionary, Hoffman codings, contracting Smallization (deflation), coloration sub-sampling, discrete cosine transform etc..
In step S750, the size of access unit will be compressed and be compared with the size of main portion.In an example In, memory distribution device 110 is for having compressed the size of access unit and the size of main portion.If having compressed access The size of unit is more than in the size of main portion, then flow proceeds to step S770.Otherwise, flow proceeds to step S760.
In step S760, it can will compress access unit and be completely stored in respective main portion, be because having compressed The size of access unit is less than the size in or equal to main portion.In one example, Memory Controller 120 is for responding Access unit storage, which will have been compressed, in the instruction of memory distribution device 110 arrives its respective main portion.
When the size for having compressed access unit is more than the size of main portion, flow proceeds to step S770.In step In S770, the first part for having compressed access unit can be stored to each autonomic elements.Compressed access unit first The size divided can be identical as the size of main portion, and inserts each autonomic elements.In one example, Memory Controller 120 Its respective master is arrived into the first part's storage for having compressed access unit for the instruction in response to memory distribution device 110 Part.
In step S780, the second part for having compressed access unit or remainder can be stored to respective pair portion Point.Therefore, when the size for having compressed access unit is more than the size of main portion, it can will compress access unit and be stored separately To each autonomic elements and secondary part.In one example, Memory Controller 120 is used in response to memory distribution device 110 Instruction and the remainder storage of access unit will have been compressed to respective secondary part.
Before the step S799 that flow proceeds to that flow terminates, step can be repeated to all access units S740- steps S780.In one example, memory distribution device 110 and Memory Controller 120 are for repeating step S740- step S780, for all access units in input picture.
In various embodiments, the size of the size of access unit, the size of main portion and secondary part can be selected, and Constant is remained for input picture.On the other hand, multiple input image, for example, video sequence frame, can be by memory To store.The size of the size of access unit, the size of main portion and secondary part can be selected for each individually defeated Enter image, therefore, can dynamically change from an input picture to another input picture.
In the various examples, the function of memory distribution device 110 or memory distribution device 110 can use hardware, Software and combinations thereof is realized.In one example, memory distribution device 110 is realized within hardware, such as processing circuit, firmly Part may include discrete component, integrated circuit, application specific integrated circuit (application-specific integrated One or more of circuit, ASIC) etc..In another example, the function of memory distribution can be with including being stored in meter The software or firmware of the instruction of the readable non-transient storage media of calculation machine is realized, when these instructions are executed by processing circuit, So that processing circuit executes respective function.
Various aspects of the invention are described as exemplary specific embodiment due to having been combined being suggested for the present invention, These exemplary replacement, modification and variation can be made.Therefore, embodiment illustrated here is used as illustrative purpose, but does not have to In limitation.Without departing from the scope of the claims, it can make a change.

Claims (20)

1. a kind of method of storage input picture, which is characterized in that in the input picture storage to memory, including:
One or more frame buffers are distributed in the memory;
The input picture is divided into multiple access units of multiple subsets corresponding to the input picture, and in the frame In buffer in multiple access units each access unit distribution main portion and secondary part, pair portion described in wherein at least one Point in the frame buffer not sequentially status after its respective main portion;
The multiple access unit is compressed into and multiple has compressed access unit;And
It will each compress in access unit in storage to respective main portion, and if the ruler for having compressed access unit The very little size more than the main portion, then will be in the remainder storage that compress access unit to respective secondary part.
2. the method for storage input picture as described in claim 1, which is characterized in that the memory, which has by being located at, is The a series of memory block that multiple memory lines of demarcation at multiple addresses of the multiple of memory block size are separated, and And characteristic of the memory block size based on the memory and access the characteristic of multiple equipment of the memory and true It is fixed.
3. the method for storage input picture as described in claim 2, which is characterized in that the size of each main portion is described One times or more times of memory block size, and the initial address of each main portion is aligned with memory line of demarcation respectively.
4. the method for storage input picture as described in claim 2, which is characterized in that the size of each main portion is described A part for memory block size, and each main portion is located at the inside of respective memory block.
5. the method for storage input picture as described in claim 2, which is characterized in that the size of each pair part is described A part for memory block size, and multiple secondary parts are combined into one or more secondary part groups.
6. the method for storage input picture as described in claim 5, which is characterized in that one or more of pair parts group Size be one times or more times of the memory block size, the initial address of the first secondary part of each secondary part group It is aligned with memory line of demarcation.
7. the method for storage input picture as described in claim 2, which is characterized in that
Multiple main portions and secondary part are arranged with preset model, with form that size is the memory block size one times or More times of superblock;And the multiple main portion in the frame buffer and the multiple secondary part pass through sequence and place phase Mutually adjacent multiple superblocks arrange.
8. the method for storage input picture as described in claim 2, which is characterized in that the memory block size is selected For 32 bytes, 64 bytes, 128 bytes, 256 bytes, 512 bytes, 1K bytes, 2K bytes or 4K bytes.
9. the method for storage input picture as described in claim 1, which is characterized in that the input picture is static image Or video frame.
10. a kind of system of storage input picture, which is characterized in that including:
Memory has one or more frame buffers;
It is described to store to distribute frame buffer for receiving the input picture in the memory for memory distribution device The input picture is divided into multiple access units of multiple multiple subsets corresponding to the input picture by input picture, And main portion and secondary part are distributed to each access unit in the frame buffer, secondary part is in institute described in wherein at least one State in frame buffer not sequentially status after its respective main portion;And
Memory Controller will each compress access unit for the multiple instruction in response to the memory distribution device It stores in respective main portion, and if the size for having compressed access unit is more than the size of the main portion, It will be in the remainder storage that access unit compressed to respective secondary part.
11. such as the system of the storage input picture in claim 10, which is characterized in that the memory has a series of deposit Reservoir block, the memory block by multiple memory lines of demarcation positioned at multiple addresses of the multiple for memory block size every It opens, also, the characteristic of multiple devices of characteristic of the memory block size based on the memory and the access memory And it determines.
12. such as the system of the storage input picture in claim 11, which is characterized in that the memory distribution device is used for will Be sized to the memory block size one times of each main portion or more times, and by the initial address of each main portion It is aligned with memory line of demarcation.
13. such as the system of the storage input picture in claim 11, which is characterized in that the memory distribution device is used for will The part for being sized to the memory block size of each main portion, and each main portion is placed on respective memory The inside of block.
14. such as the system of the storage input picture in claim 11, which is characterized in that the memory distribution device is used for will The part for being sized to the memory block size of each pair part, and multiple secondary parts are combined into one or more Secondary part group.
15. such as the system of the storage input picture in claim 14, which is characterized in that the memory distribution device is for selecting The size for selecting one or more secondary part groups is one times or more times of the memory block size, and will each secondary part The initial address of the first secondary part of group is aligned with memory line of demarcation.
16. such as the system of the storage input picture in claim 11, which is characterized in that the memory distribution device be used for Preset model arranges multiple main portions and secondary part, with the super of form that size is the memory block size one times or more times Grade block, and mutually adjacent multiple superblocks are placed in the frame buffer.
17. such as the system of the storage input picture in claim 11, which is characterized in that the memory distribution device is for true The fixed memory block size is 32 bytes, 64 bytes, 128 bytes, 256 bytes, 512 bytes, 1K bytes, 2K bytes or 4K Byte.
18. such as the system of the storage input picture in claim 10, which is characterized in that the memory is located at and the storage The different ic core on piece of device distributor.
19. such as the system of the storage input picture in claim 10, which is characterized in that the memory distribution device is integrated In Video Codec.
20. a kind of non-transitory computer-readable medium, which is characterized in that be stored with computer-readable instruction, held in processing circuit When the row computer-readable instruction, the processing circuit executes a method, the method includes:
One or more frame buffers are distributed in the memory;
The input picture is divided into multiple access units of multiple subsets corresponding to the input picture, and in the frame In buffer in multiple access units each access unit distribution main portion and secondary part, pair portion described in wherein at least one Point in the frame buffer not sequentially status after its respective main portion;
The multiple access unit is compressed into and multiple has compressed access unit;
It will each compress in access unit storage to respective main portion, and if the size for having compressed access unit It, then will be in the remainder storage that compress access unit to respective secondary part more than the size of the main portion.
CN201810344898.2A 2017-04-25 2018-04-17 Method and system for storing input image Active CN108804508B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762489588P 2017-04-25 2017-04-25
US62/489,588 2017-04-25
US15/786,908 2017-10-18
US15/786,908 US20180107616A1 (en) 2016-10-18 2017-10-18 Method and device for storing an image into a memory

Publications (2)

Publication Number Publication Date
CN108804508A true CN108804508A (en) 2018-11-13
CN108804508B CN108804508B (en) 2022-06-07

Family

ID=64094364

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810344898.2A Active CN108804508B (en) 2017-04-25 2018-04-17 Method and system for storing input image
CN201810373709.4A Expired - Fee Related CN108833922B (en) 2017-04-25 2018-04-24 Method for accessing frame buffer, method and device for processing access unit

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810373709.4A Expired - Fee Related CN108833922B (en) 2017-04-25 2018-04-24 Method for accessing frame buffer, method and device for processing access unit

Country Status (2)

Country Link
CN (2) CN108804508B (en)
TW (2) TW201839714A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4772956A (en) * 1987-06-02 1988-09-20 Eastman Kodak Company Dual block still video compander processor
CN101499097A (en) * 2009-03-16 2009-08-05 浙江工商大学 Hash table based data stream frequent pattern internal memory compression and storage method
GB2457262A (en) * 2008-02-08 2009-08-12 Linear Algebra Technologies Compression / decompression of data blocks, applicable to video reference frames
CN102740074A (en) * 2012-06-05 2012-10-17 沙基昌 Video data compressing/decompressing method and system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106909B2 (en) * 2001-12-25 2006-09-12 Canon Kabushiki Kaisha Method and apparatus for encoding image data in accordance with a target data size
CN101212680B (en) * 2006-12-30 2011-03-23 扬智科技股份有限公司 Image data storage access method and system
US20140219361A1 (en) * 2013-02-01 2014-08-07 Samplify Systems, Inc. Image data encoding for access by raster and by macroblock
CN105472442B (en) * 2015-12-01 2018-10-23 上海交通大学 Compressibility is cached outside a kind of piece for ultra high-definition frame rate up-conversion

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4772956A (en) * 1987-06-02 1988-09-20 Eastman Kodak Company Dual block still video compander processor
GB2457262A (en) * 2008-02-08 2009-08-12 Linear Algebra Technologies Compression / decompression of data blocks, applicable to video reference frames
CN101499097A (en) * 2009-03-16 2009-08-05 浙江工商大学 Hash table based data stream frequent pattern internal memory compression and storage method
CN102740074A (en) * 2012-06-05 2012-10-17 沙基昌 Video data compressing/decompressing method and system

Also Published As

Publication number Publication date
TW201840177A (en) 2018-11-01
CN108804508B (en) 2022-06-07
TW201839714A (en) 2018-11-01
CN108833922A (en) 2018-11-16
CN108833922B (en) 2020-12-18

Similar Documents

Publication Publication Date Title
US20140086309A1 (en) Method and device for encoding and decoding an image
CN105431831B (en) Data access method and the data access device for utilizing same procedure
JP2000105839A (en) Compressed texture data structure
CA2742586C (en) System, data structure, and method for simultaneously retrieving multi-dimensional data with zero data contention
CN102045564B (en) Coding apparatus and method
US8369635B2 (en) Information processing device and method
US20160154739A1 (en) Display driving apparatus and cache managing method thereof
CN104952088A (en) Method for compressing and decompressing display data
CN103796018B (en) A kind of remote sensing image Real Time Compression and progressive transmission system
CN106651971A (en) Graphic data compression device and graphic data compression method
CN106227506A (en) A kind of multi-channel parallel Compress softwares system and method in memory compression system
DE102011100936A1 (en) Techniques for storing and retrieving pixel data
US20180107616A1 (en) Method and device for storing an image into a memory
CN108804508A (en) A kind of method and system of storage input picture
De Cea-Dominguez et al. GPU-oriented architecture for an end-to-end image/video codec based on JPEG2000
CN104113759A (en) Video system and method and device for buffering and recompressing/decompressing video frames
CN115456861A (en) Method and apparatus for storing data in memory of graphics processing system
US20220210454A1 (en) Video decoding and display system and memory accessing method thereof
US11189006B2 (en) Managing data for transportation
CN109992198B (en) Data transmission method of neural network and related product
CN103268619A (en) Method and device for batch compression for picture data in swf document
CN116939210B (en) Image compression method and device based on self-encoder
CN116758175B (en) Primitive block compression device and method, graphic processor and electronic equipment
CN101854541B (en) Video compression circuit and method thereof
CN116756071B (en) Data transmission method, apparatus, device, storage medium and computer program product

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