CN1812579B - Efficient use of storage in encoding and decoding video data stream - Google Patents

Efficient use of storage in encoding and decoding video data stream Download PDF

Info

Publication number
CN1812579B
CN1812579B CN 200510079995 CN200510079995A CN1812579B CN 1812579 B CN1812579 B CN 1812579B CN 200510079995 CN200510079995 CN 200510079995 CN 200510079995 A CN200510079995 A CN 200510079995A CN 1812579 B CN1812579 B CN 1812579B
Authority
CN
China
Prior art keywords
subregion
frame
data
clauses
subclauses
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
CN 200510079995
Other languages
Chinese (zh)
Other versions
CN1812579A (en
Inventor
C·L·杜维维耶
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.)
Apple Inc
Original Assignee
Apple Computer 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 US11/071,901 external-priority patent/US7852916B2/en
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Priority to CN201210161495.7A priority Critical patent/CN102724497B/en
Publication of CN1812579A publication Critical patent/CN1812579A/en
Application granted granted Critical
Publication of CN1812579B publication Critical patent/CN1812579B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The present invention provides some embodiments facilitate encoding/decoding of a frame by organizing frame data in a storage structure in a novel manner. Specifically, in a portion of the storage structure allocated for a frame slice, used partition entries are stored in a first section of the allocated portion and unused partition entries are stored in a second section of the allocated portion, the first and second sections each comprising a continuous area of storage in the storage structure so that used partition entries are not interspersed with nonused partition entries. In some embodiments, additional data useful in the encoding or decoding of video data is determined and stored into the unused bytes of used partition entries (such as macroblock header data or canonical reference frame index data). In some embodiments, two or more identical partitions of a macroblock are coalesced into a single partition.

Description

Effective use of memory device in the Code And Decode of video data stream
Technical field
The present invention relates to effective use of the memory device in the Code And Decode of video data stream.
Background technology
Video Codec (compressor reducer-decompressor) is some compression algorithm formulas, its be designed to video data stream encode/compress and decode/decompress, reduce the size of stream with this, thereby transmission is faster and memory space is littler.Yet owing to there is loss, Video Codec keeps video quality as possible when the binary data of compressing video frequency flow.The example of normally used Video Codec has MPEG-4, AVI, WMV, RM, RV, H.261, H.263 and H.264.
Video flowing is made up of frame sequence, and wherein each frame consists of a plurality of macro blocks.Video Codec is encoded to each frame in this sequence by frame being divided into one or more fragments (slice) or subdivision, and wherein each fragment comprises an integer macro block.Macro block is typically 16 * 16 pel arrays (although the macro block of other size also is fine), and macro block can be divided into the subregion that is used for Code And Decode.For example, Fig. 1 represents to carry out macro block the different mode of subregion in standard H.264.What as shown in Figure 1, macro block can be with in 259 kinds of possible modes is a kind of by subregion:
1. subregion
2. two vertical partitionings
Two horizontal partitionings and
4. four less square subregions.
In in the end a kind of situation, each last resulting square subregion can be in an identical manner by subregion (carrying out subregion to macro block by other 256 kinds of modes), up to an independent macro block being divided into maximum 16 subregions.
The capacity of macro block can be provided for oneself, or predicts from one or two different frame and obtain.In the bit stream that receives (generating in cataloged procedure), the information of forecasting of back can obtain from each subregion: the associated indicator of the frame (frame sequence) of motion vector (being made up of x and y component) and this motion vector institute foundation.This indicating device can be a reference frame index for example, and it is used to come together to indicate together with relevant reference frame tabulation the particular frame of this motion vector institute foundation.
Fig. 2 represents the notion of reference frame index and reference frame tabulation.For each fragment of frame, one or more reference frames tabulations of the particular frame that is used to discern motion vector have been stored.In the example of Fig. 2, the tabulation of first and second reference frames is used to discern the particular frame of motion vector.Typically, when receiving a fragment, the head of this fragment contains the information that obtains the tabulation of frame benchmark.
The reference frame index relevant with motion vector be specified entry (containing frame number) in the reference frame tabulation, the frame of motion vector institute foundation in its indication frame sequence.In the example of Fig. 2, seven active frame (that is, the frame that keeps at present) are arranged, its from 0 to 6 numbering in memory device.The frame that is numbered " 3 " is at present just processed.If the first relevant motion vector designated value 0 given in the reference frame index, this frame number that is illustrated in the first entry of this first reference frame tabulation is the frame of this motion vector institute foundation so.Thus, the frame that shown in the example of Fig. 2, is numbered " 2 " is the frame of this first motion vector institute foundation.In further example, if the second relevant motion vector designated value 2 given in the reference frame index, this frame number that is illustrated in the 3rd clauses and subclauses of second reference frame tabulation (being used for second motion vector) is the frame of this second motion vector institute foundation so.Thus, the frame that shown in the example of Fig. 2, is numbered " 6 " is the frame of this second motion vector institute foundation.
Fig. 3 represents to contain the schematic diagram of traditional memory device structure 305 of partition data of the fragment of frame.In the example of Fig. 3, this fragment is made up of three macro blocks, and wherein first macro block (macro block 0) is made up of 1 subregion, and second macro block (macro block 1) is made up of 16 subregions, and the 3rd macro block (macro block 2) is made up of 2 subregions.
Typically, in decode procedure, be divided into " the worst case imagination " of the subregion (for example 16 subregions under normal conditions H.264) of maximum quantity based on each macro block of this fragment of supposition, memory device is assigned to fragment.Thus, under standard H.264,, be assigned enough memory spaces and store head and 16 subregion clauses and subclauses (entry) for each macro block of this fragment.Subregion clauses and subclauses in data structure partition holding data in the decode procedure of frame.Each subregion clauses and subclauses contains the data (for example, motion vector and reference frame index data) of single subregion.
The graphical presentation of Fig. 3 has been distributed to the distribution portion 310 of this memory device structure of fragment.Because each macro block with fragment typically is not divided into 16 subregions, so macro block will often be assigned to the memory space than the more subregion clauses and subclauses of subregion that contained in this macro block.Thus, the distribution portion of this memory device structure of macro block will typically contain subregion clauses and subclauses (clauses and subclauses that contain the actual partition data of this macro block) and one or more obsolete subregion clauses and subclauses (clauses and subclauses that do not contain the partition data of this macro block) of one or more uses.The subregion clauses and subclauses of using contain significant/useful data (for example reference frame index data of motion vector and subregion), otherwise, the significant/useful data of not using the subregion clauses and subclauses not contain.
As shown in Figure 3, for each macro block of this fragment, this memory device structure contains head section and subregion clauses and subclauses section.Typically, in decode procedure, based on supposing that this macro block is divided into " the worst case imagination " of 16 subregions, distributes memory space to head.Thus, for each macro block head, distributed enough memory spaces to be used for 16 head part district clauses and subclauses.How traditional head of macro block contains describes this macro block by the data of subregion.This descriptive data comprise for example position and the dimension data of each subregion.Fig. 4 represents to be stored in the schematic diagram of the traditional head 405 in the memory device structure of macro block 2.Macro block 2 is divided into 2 subregions.Thus, head will comprise the head subregion clauses and subclauses of 2 uses, and each clauses and subclauses contains the descriptive data of particular zones.Remaining 14 head part district clauses and subclauses will be empty (not using).In addition, each head typically contains the data of the number of partitions in this macro block of indication.
As shown in Figure 3, the data of macro block 0 are contained in the first 315 of memory device structure 305.Because macro block 0 is made up of 1 subregion, so this memory device structure contains the subregion clauses and subclauses (subregion clauses and subclauses 0) of the use of first subregion that only is used for macro block 0, and 15 subregion clauses and subclauses of residue (subregion clauses and subclauses 1-15) of distributing to macro block 0 simultaneously are not for using clauses and subclauses.The second portion 320 of memory device structure 305 contains the data that are useful on macro block 1.Because macro block 1 is made up of 16 subregions, so this memory device structure contains the subregion clauses and subclauses (subregion clauses and subclauses 0-15) of the use of the first to the 16 subregion that is useful on macro block 1, and feasible all clauses and subclauses of distributing to macro block 1 all are used.The third part 325 of memory device structure 305 contains the data of macro block 2.Because macro block 2 is made up of 2 subregions, so this memory device structure contains the subregion clauses and subclauses of the use of first and second subregions that are useful on macro block 2, and 14 subregion clauses and subclauses of residue of distributing to macro block 2 simultaneously are not used.
Thus, the partition data of this fragment typically with random pattern storage in the memory device structure, wherein obsolete subregion clauses and subclauses are dispersed in the subregion clauses and subclauses of use.This inefficient decoding that causes this fragment with ideotype of the storage in the memory device structure.This is because when CPU loading during partition data from memory device in decode procedure, and CPU is from the data block (as adjacent partition data) of memory device structure retrieval memory, rather than only retrieves the needed at that time accurate data of this CPU.These data blocks that retrieve may contain to be used and obsolete subregion clauses and subclauses.These data block store that retrieve can be fast in the cache memory (for example, CPU cache memory) of (typically can visit obvious shorter time of this memory device structure than this CPU) visit at this CPU.
If this CPU needed specific partition data afterwards in the process of handling this fragment, this CPU determines at first whether the particular zones data are present in this cache memory so, this is because these particular zones data may be included in the data block that retrieves before, and the time ratio of access cache is visited the time weak point of this memory device structure.If the particular zones data are present in the cache memory, this is called as " cache-hit (hit) " so, is fast from cache retrieval particular zones data wherein.If these particular zones data are not present in this cache memory, this is called as " cache memory error " so, and then this CPU must retrieve the particular zones data subsequently from this slower memory device structure.
When particular data is stored in the memory device structure in random mode, wherein obsolete subregion clauses and subclauses are dispersed in the subregion clauses and subclauses of use, so because the data block that retrieves will also contain the obsolete subregion clauses and subclauses of scattering with the subregion clauses and subclauses of using, wherein obsolete subregion clauses and subclauses contain non-useful data, therefore in the processing procedure of this fragment, typically there be " the cache memory error " of higher rate.
Thus, thus need a kind of method of in the memory device structure, organizing partition data can more effectively handle partition data.
Summary of the invention
Some embodiments of the present invention have been simplified the coding/decoding of frame by organizing frame data in the memory device structure in a novel way.Particularly, giving frame fragment in the assigned portions memory device structure, the subregion clauses and subclauses of using (clauses and subclauses that contain useful data) are stored in first section of this distribution portion, obsolete subregion clauses and subclauses (clauses and subclauses that do not contain useful data) are stored in second section of this distribution portion, and first and second sections are included in the continuous and adjacent areas in this memory device structure.In some embodiments, the subregion clauses and subclauses " packing " of use are to first section of the distribution portion of this memory device structure, and obsolete subregion clauses and subclauses take the remainder of this distribution portion simultaneously.
In some embodiments, determine/be identified in other useful data in the coding of video data or the decoding, and it is stored in the unused bytes of subregion clauses and subclauses of use.In some embodiments, the header data of macro block is stored in the particular items of this macro block (for example, the first subregion clauses and subclauses of first subregion of this macro block).In these execution modes, the partition data of header data and subregion clauses and subclauses is combined as a whole.In these execution modes, the standard basis frame index data is calculated, and it is stored in the unused bytes of subregion clauses and subclauses of use.In some embodiments, the subregion of macro block is compared, whether identical with any subregion of determining this macro block, thus identical subregion is merged into the single subregion of macro block.
Description of drawings
Fig. 1 represents to carry out macro block the different modes of subregion under compression standard H.264.
Fig. 2 represents the notion of reference frame index and reference frame tabulation.
Fig. 3 represents to contain the concept map of conventional memory device structure of partition data of the fragment of frame.
Fig. 4 represents to be stored in the concept map of the traditional head in the memory device structure.
Fig. 5 is illustrated in the data structure composition of the subregion clauses and subclauses of partition holding data in the frame decoding process.
Fig. 6 represents to contain the concept map of the memory device structure of the partition data that is useful on frame fragment, and this partition data is organized in this memory device structure according to the present invention.
Fig. 7 represents the concept map of the locator tabulation relevant with the distribution portion of memory device structure shown in Figure 6.
Fig. 8 is the method flow diagram that is used for the data of store video frame fragment.
Fig. 9 represents to contain 6 compositions that do not use the subregion clauses and subclauses of the useful data in the byte in these clauses and subclauses.
Figure 10 represents the H.264 look-up table of standard.
Figure 11 represents to contain the concept map of memory device structure of the partition data of frame fragment, and wherein header data has been combined in the subregion clauses and subclauses.
Figure 12 represents to use the head of combination to come the method flow diagram of the data of store video frame fragment.
Figure 13 represents the example of standard basis frame tabulation.
Figure 14 is to use the standard basis frame index to come the method flow diagram of the data of the framing fragment in the storage frame sequence.
Figure 15 A-B represents to merge the example of subregion.
Figure 16 is the method flow diagram that is used to merge macroblock partition.
Figure 17 shows the computer system that realizes some execution mode of the present invention.
Embodiment
The sequence number that proposes on June 27th, 2004 is 60/583,447, exercise question for the disclosure of the U.S. Provisional Patent Application of " image is carried out Code And Decode " in this clearly combination by reference.
In following detailed description of the present invention, will set forth and illustrate many places of the present invention details, example and execution mode.Yet, it will be apparent for a person skilled in the art that the execution mode that the present invention is not limited to set forth, and the present invention can realize still under the situation of not some detail and example not being discussed.
The subregion clauses and subclauses:
In some embodiments, adjust the subregion clauses and subclauses of subregion, make it have predetermined length, to accelerate the decoding of subregion.Because the consideration on adjusting, so data typically are divided into the byte of a plurality of specific quantities.In these execution modes, each subregion clauses and subclauses is adjusted to the predetermined bite of equal number.
Fig. 5 is illustrated in the composition of subregion clauses and subclauses 500 in the data structure of partition holding data in the decode procedure of frame.Each subregion clauses and subclauses contains single partition data (that is, motion vector and reference frame index data).In example shown in Figure 5, the subregion clauses and subclauses have the length of 16 bytes.As shown in the figure, in subregion clauses and subclauses (two bytes are used for each x or the y component of motion vector), the data of first motion vector 505 comprise four byte datas, and the data of second motion vector 510 also comprise the data of four bytes.In these subregion clauses and subclauses, the data of the first reference frame index 515 comprise a byte, and the data of the second reference frame index 520 also comprise a byte data.Shown in the example of Fig. 5, wherein the subregion clauses and subclauses have 16 bytes, and the subregion clauses and subclauses contain the byte of ten uses, and wherein six of these clauses and subclauses bytes 525 typically are sky and are not used (that is, not containing significant or useful data).
Effective use of memory device in the coding/decoding process:
In some embodiments,, in this memory device structure, organize this fragment data, make the subregion clauses and subclauses of using can not be dispersed in the obsolete subregion clauses and subclauses in order to simplify the coding/decoding of frame fragment.Particularly, giving in a part of memory device structure of this fragment allocation, the subregion clauses and subclauses of using are stored in first section of this distribution portion, obsolete subregion clauses and subclauses are stored in second section of this distribution portion, and each of first and second sections comprises continuous and adjacent storage area in this memory device structure.In some embodiments, the subregion clauses and subclauses " packing " of use are to first predetermined segment of the distribution portion of this memory device structure, and obsolete subregion clauses and subclauses take the remainder of this distribution portion simultaneously.
What interrelate with the distribution portion of this memory device structure is the locator tabulation, and it is included in the tabulation of the index of the subregion clauses and subclauses in this distribution portion.Particularly, this locator tabulation comprises that index list (for example, pointer), these index comprise the positional information (for example, address information) of the subregion clauses and subclauses in the distribution portion.This locator tabulation and this distribution portion position the particular zones clauses and subclauses of the specific macroblock in this distribution portion together.
In some embodiments, the header data of each macro block is stored in first section of this distribution portion of subregion clauses and subclauses of this use of storage.In some embodiments, the header data of macro block is stored in first section, but with any subregion clauses and subclauses separate storage of this macro block.In other execution modes, the header data of macro block is stored in the particular zones clauses and subclauses of macro block (for example, the first subregion clauses and subclauses of first subregion of this macro block).In these execution modes, this header data combines with the partition data of subregion clauses and subclauses.
Fig. 6 represents to contain the schematic diagram of memory device structure 605 of the partition data of frame fragment, organizes this partition data in the memory device structure according to the present invention.In the example of Fig. 6, this fragment is made up of three macro blocks identical with Fig. 3 example, and first macro block (macro block 0) is made up of 1 subregion thus, and second macro block (macro block 1) is made up of 16 subregions, and the 3rd macro block (macro block 2) is made up of 2 subregions.
Determine for the size of the storage area 610 of this fragment allocation based on " worst case imagination ", feasible each macroblock allocation for this fragment has enough memory spaces to store head and 16 subregion clauses and subclauses (wherein each subregion clauses and subclauses comprises 16 byte datas).Thus, for macro block 0, subregion clauses and subclauses (subregion clauses and subclauses 0) and 15 obsolete subregion clauses and subclauses (subregion clauses and subclauses 1-15) of a use are arranged; For macro block 1, the subregion clauses and subclauses of 16 uses are arranged; For macro block 2, subregion clauses and subclauses and 14 obsolete subregion clauses and subclauses of two uses are arranged.
As shown in Figure 6, the subregion clauses and subclauses of the use of all macro blocks of this fragment storages (" packing ") are in first section 630 of the distribution portion of this memory device structure, and obsolete subregion clauses and subclauses of while are stored in second section 635 of this distribution portion (remainder of this distribution portion).For macro block 0, the subregion clauses and subclauses 0 of header data and use are in the sub-segmentation 615 of first " use " section 630 of macro block 0.The obsolete subregion clauses and subclauses 1-15 of macro block 0 is in second " not using " section 635 of this distribution portion.For macro block 1, the subregion clauses and subclauses 0-15 of header data and use is in the sub-segmentation 620 of first " use " section 630 of macro block 1.For macro block 2, header data and use subregion clauses and subclauses 0-1 are in the sub-segmentation 625 of first " use " section 630 of macro block 2.The obsolete subregion clauses and subclauses 2-15 of macro block 2 is in second " not using " section 635 of this distribution portion.Form contrast with Fig. 3, use and obsolete subregion clauses and subclauses are dispersed in the whole distribution portion 310 of this memory device structure 305 among Fig. 3.
Owing to will run into the error of less cache memory, therefore organize partition data to make by this way fragment is decoded more effective.When CPU retrieves the partition data piece from first section of this distribution portion, each piece of partition data will be made up of the subregion clauses and subclauses of using fully or most ofly, this is that obsolete subregion clauses and subclauses are packaged in second individual section because the subregion clauses and subclauses of using have been packaged in first section.Because this cache memory contains the significant/useful data of the vast scale that obtains thus from the subregion clauses and subclauses of this use, so this causes less cache memory error.
Fig. 7 represents the schematic diagram of the locator tabulation 705 that the distribution portion 610 with memory device structure 605 shown in Figure 6 interrelates.This locator tabulation comprises index list (for example, pointer), and it comprises the positional information (for example, address information) that is used for helping to locate in distribution portion the subregion clauses and subclauses.This locator tabulation and this distribution portion help the particular zones clauses and subclauses of the specific macroblock in this distribution portion are positioned together.
In some embodiments, the index stores of a macro block is only arranged in this locator tabulation 705.In some embodiments, in this locator tabulation 705, only store the index of the first subregion clauses and subclauses of macro block first subregion.In these execution modes, the index in this tabulation is identified in the positional information of the first subregion clauses and subclauses of macro block number in this fragment in the distribution portion 610 of this memory device structure 605 and this macro block.For example, as shown in Figure 7, the index of macro block 0 contains the positional information of the first subregion clauses and subclauses of macro block 0 in distribution portion 610.
Fig. 8 is the flow chart of method 800 that is used for the data of store video frame fragment.This method 800 can for example use the data storage device structure to encode by structure or the application of decoded data stream is implemented.
This method 800 begins by the data that receive (805) frame of video fragment, and this fragment contains two or more macro blocks, and wherein each macro block comprises one or more subregions.The data of this fragment comprise the header data of the partition data relevant with the macroblock partition of this fragment (for example, motion vector and reference frame index data) and each macro block.As selectable step, for each macro block, this method is the subregion of (807) this macro block relatively, and merges (807) any identical partitions (following will the discussion).
This method distributes (810) to be used for stored fragments section data memory device structure then, and the storage area of this distribution is included as the memory device of subregion clauses and subclauses and the distribution of macro block head.In some embodiments, the size of the storage area of this distribution is determined according to the predetermined number of the subregion clauses and subclauses of each macro block of distributing to this fragment.In some embodiments, the size of the storage area of this distribution is determined according to " worst case imagination ", is made each macroblock allocation of this fragment have enough memory spaces to store macro block head and 16 subregion clauses and subclauses.
This method partition data storage (812) in the assigned sections clauses and subclauses (subregion clauses and subclauses that are called use) that will interrelate then with the subregion of this fragment.As selectable step, this method is determined (813) other useful/significant data, and with its storage (813) in the obsolete byte of the subregion clauses and subclauses of using (following will the discussion).In some embodiments, this method is calculated (813) to the header data or the standard basis frame index data that combine, and with its storage (813) in the subregion clauses and subclauses of using.In some embodiments, useful any other data in zonal coding or the decoding are calculated/discern and be stored in to this method.
This method 800 is stored (815) in first section of the storage area of this distribution with the header data of each macro block then.This method 800 also with the subregion clauses and subclauses storage/placement (817) used in first section of the storage area of this distribution, use therein subregion clauses and subclauses contain the partition data of the macro block of this fragment.This method 800 also with obsolete subregion clauses and subclauses (clauses and subclauses that do not contain partition data) storage/placements (820) in second section of the storage area that distributes.In some embodiments, each of this first and second section is included in the continuum of the memory device in the storage area of distribution, and the subregion clauses and subclauses of Shi Yonging are not dispersed in the obsolete subregion clauses and subclauses in the storage area of this distribution thus.
This method 800 generates the locator tabulation that the storage area of (825) and this distribution interrelates then, and this locator tabulation comprises index list (for example, pointer), and it comprises the positional information (for example, address information) of the subregion clauses and subclauses in the distribution portion.This locator tabulation is used for helping to locate in distribution portion the particular zones clauses and subclauses of specific macroblock.In some embodiments, in this locator tabulation, only store the index of the first subregion clauses and subclauses of macro block first subregion.This method finishes then.
The use of the obsolete byte in the subregion clauses and subclauses
Combined head
As shown in Figure 6,, have the macro block header data also in first section of this distribution portion, store for each macro block, wherein this first storage of sectors the subregion clauses and subclauses of using.In some embodiments, the header data of macro block is stored in first section, but with any subregion clauses and subclauses separate storage of this macro block.In other execution modes, the header data of macro block is stored in the particular zones clauses and subclauses of this macro block.In these execution modes, the partition data of this header data and subregion clauses and subclauses combines.
Shown in the example of Fig. 5, the subregion clauses and subclauses can be 16 byte lengths.As shown in Figure 5, partition data (motion vector and reference frame index data) comprises the subregion clauses and subclauses of 10 byte 505-520, and the subregion clauses and subclauses that stay six bytes 525 are not used.Fig. 9 represents the composition according to subregion clauses and subclauses 900 of the present invention, and wherein, subregion clauses and subclauses 900 contain useful data in the clauses and subclauses of 6 untapped bytes 525.
In some embodiments, the header data of macro block is stored in the obsolete byte of particular zones clauses and subclauses of macro block.In some embodiments, the header data of this macro block only is combined in the first subregion clauses and subclauses of first subregion of this macro block.In some embodiments, combined header data 930 comprise subregion clauses and subclauses 900 2 bytes do not use byte 525.
This combined header data 930 and zone configuration look-up table are used for discerning unique zone configuration of macro block together.As discussed above, under standard H.264, macro block can be divided into 259 different possible zone configuration.In these execution modes, generate look-up table, the unique identifier that this look-up table contains each in 259 kinds of different possible zone configuration and interrelates with each zone configuration (for example, scope is from 0-258).Figure 10 illustrates the H.264 example of the look-up table 1005 of standard.In these execution modes, for each macro block, particular zones configuration in this combined header data identification look-up table, its indicate this macro block zone configuration (wherein the value of this combined header data and this particular zones dispose relevant unique identifier be complementary).
How traditional head of looking back macro block contains relevant this macro block by the declarative data of subregion, and comprises that for example each subregion in this macro block is with respect to the position of this macro block and the data of size.This traditional declarative data can obtain from unique zone configuration of macro block, and this is because this zone configuration will indicate each subregion in this macro block with respect to the position of this macro block and big or small data.Thus, in case determined unique zone configuration of this macro block, so also can determine this declarative data that in head, typically comprises.
Because combined header data is stored in the obsolete part of subregion clauses and subclauses, and will not need the independent memory space of traditional head, therefore use combined header data will reduce the consumption of memory device.Figure 11 represents to contain the concept map of memory device structure of the partition data of frame fragment, and wherein header data has been combined in the subregion clauses and subclauses.Attention and Fig. 3 and 6 compare, and no longer need to be used for the independent head section of each macro block.
Figure 12 is to use the flow chart of method 1200 of the data of combined head store video frame fragment.This method 1200 can be implemented by using the application that the data storage device structural arrangements is encoded or decode video data flows.
This method 1200 begins by the data that receive (1205) frame of video fragment, and this fragment contains two or more macro blocks, and wherein each macro block comprises one or more subregions.The data of this fragment (for example comprise the partition data relevant with the macroblock partition of this fragment, motion vector and reference frame index data), and how contain this macro block of description by the header data of each macro block of the data of subregion (for example, the position of each subregion of this macro block and sized data).
This method 1200 generates or receives (1206) zone configuration look-up table then, and it contains each possible zone configuration of macro block, and each possible zone configuration has the unique identifier (for example, umerical identifier) that interrelates.For each macro block of this fragment, the particular zones configuration that the zone configuration of identification (1207) and this macro block is complementary in this look-up table subsequently of this method 1200.This method 1200 is determined (1208) unique identifier relevant with the zone configuration of this identification from this look-up table then.Should be called the combined header data of macro block at this by relevant unique identifier.This method can use the header data that receives of macro block to discern the particular zones configuration of (1207) this macro block, and how the header data that wherein receives contains describes macro block by the data of subregion.Thus, the combined header data of macro block obtains (in step 1207 and 1208) from the header data that receives at first of this macro block.
This method distributes (1210) part to be used to store the memory device structure of the data of this fragment then.In some embodiments, need not consider the isolated memory area section of header data of the macro block of this fragment, just can determine the size of the storage area that distributes.In these execution modes, the subregion clauses and subclauses of predetermined number are assigned to each macro block of this fragment, do not have to give the header data of each macro block to distribute independent storage compartments (as shown in figure 11) simultaneously.
Partition data storage (1212) in the assigned sections clauses and subclauses (subregion clauses and subclauses that are called use) that this method will be relevant with the subregion of fragment then.This method 1200 is stored (1215) in the subregion clauses and subclauses of the use of the subregion of this macro block with the combined header data (determining) of each macro block in step 1208 then.Realize this point in any obsolete byte of subregion clauses and subclauses that this method can be by will this combined header data being stored in this macro block.In some embodiments, the combined header data of macro block only is stored in the first subregion clauses and subclauses of using of first subregion of this macro block.In some embodiments, combined header data comprises the obsolete byte of 2 bytes in the subregion clauses and subclauses of use.
In some embodiments, this method 1200 subsequently with the subregion clauses and subclauses storage/placement (1217) used in first section of the storage area of this distribution.In some embodiments, this method 1200 also with obsolete subregion clauses and subclauses (clauses and subclauses that do not contain partition data) storage/placements (1220) in second section of the storage area of this distribution.In some embodiments, this method 1200 generates (1225) locator tabulation relevant with the storage area of this distribution subsequently, and this locator tabulation comprises index list, and it contains the positional information of the subregion clauses and subclauses in this assigned portions.This method finishes then.
The standard basis frame index
In some embodiments, the standard basis frame index is calculated and it is stored in the obsolete byte of each subregion clauses and subclauses.In these execution modes, the first and second reference frame index of subregion clauses and subclauses form mapping with the standard basis frame index respectively.
As above contact Fig. 2 discussed, the reference frame index that interrelates with motion vector is specified entry (containing frame number) in the reference frame tabulation, it indicates the frame of this motion vector institute foundation.Owing to the tabulation of first and second reference frames can change for each fragment of frame, therefore can not determine surely whether the reference frame index that has identical value in the different subregion clauses and subclauses of different macro blocks indicates same frame.For example, two subregion clauses and subclauses in two different macro blocks may each have the reference frame index " 2 " relevant with its first motion vector.This does not represent that these two first motion vectors are all based on same frame.
This for example causes the poor efficiency of block elimination effect filter (deblocking filter) in the stage at decode procedure.At block elimination effect filter in the stage,, determine the value whether identical (perhaps within target offset) of first and second motion vectors of these subregions, and determine that whether first and second motion vectors are based on same frame for two time neighboring macro-blocks.If like this, this represents that the motion of these subregions is identical (or much at one), uses different block-eliminating effect filtering process (for example, more weak filtering) thus subsequently.
Typically, an inefficient process is used for determining that whether first and second motion vectors of two subregions are based on same frame.This crosses each subregion of range request: retrieve the reference frame index relevant with this motion vector, retrieval reference frame tabulation, determine by the frame number in the specified reference frame tabulation of reference frame index.Then, this process need compares these frame numbers, determines whether these frames are identical.
In some embodiments, produce the tabulation of standard basis frame, and with its storage and be used for all frames of all fragments or a sequence of frame.In some embodiments, in decode procedure, do not revise this standard basis frame tabulation.Figure 13 represents the example of standard basis frame tabulation.
In some embodiments, reference frame index in the subregion clauses and subclauses and standard basis frame index form mapping.In these execution modes, reference frame index and the reference frame tabulation that interrelates are determined together by the indicated frame number of reference frame index.Make frame number location in the tabulation of standard basis frame of coupling then, in the standard basis frame tabulation that contains this coupling frame number, to determine entry number (standard basis frame index).The standard basis frame index that should determine is stored in the obsolete byte of subregion clauses and subclauses then.In example shown in Figure 9, the data of standard basis frame index 935 comprise the obsolete byte 525 of two bytes.
Be to use standard basis frame tabulation shown in Figure 13 and first and second reference frames shown in Figure 2 to tabulate below and carry out the example of mapping process.Suppose that the first reference frame index " 2 " and the second reference frame index " 0 " are included in the subregion clauses and subclauses.First reference frame tabulation that interrelates with reference frame index " 2 " contains frame number 2,1 and 0 respectively in entry number 0,1 and 2 places.Like this, reference frame index " 2 " indication frame number 0.In the tabulation of standard basis frame, the frame number in this frame number 0 and the clauses and subclauses 0 is complementary.Like this, reference frame index 2 forms mapping with standard basis frame index 0.Similarly, second reference frame tabulation that interrelates with the second reference frame index " 0 " contains frame number 4,5 and 6 respectively in entry number 0,1 and 2 places.Like this, the second reference frame index " 0 " indication frame number 4.In this standard basis frame tabulation, the frame number in frame number 4 and the clauses and subclauses 3 is complementary.Like this, the second reference frame index 0 forms mapping with standard basis frame index 3.
In some embodiments, single standard basis frame tabulation is produced and is stored.In other execution modes, produce and store the first standard basis frame tabulation of the particular frame that is used to discern first motion vector respectively and be used to discern the second standard basis frame tabulation of the particular frame of second motion vector.
In these execution modes, generating the tabulation of standard basis frame and the reference frame index is mapped to the standard basis frame index to increase expense.Yet, in case implement these operations, just in time reduced be used for determining two subregions motion vector whether based on the process of same frame.In these execution modes, determine in order to carry out this, only need to retrieve and the standard basis frame index of this subregion relatively.In addition, owing to do not need the actual value of this frame number, therefore do not need to determine by the indicated frame number of this standard basis frame index.Because the standard basis frame index is to same standard basis frame tabulation carrying out index, the standard basis frame index that therefore has identical value is specified identical frame number thus.
Figure 14 is to use method 1400 flow charts of the data of the framing fragment in the standard basis frame index storage frame sequence.The application that this method 1400 can for example use the data storage device structure that video data stream is encoded or decoded by configuration is implemented.
This method 1400 starts from receiving one or more fragments of one group of (1405) frame of video, and each fragment contains two or more macro blocks, and wherein each macro block comprises one or more subregions.The partition data (motion vector and initial baseline frame index data) that the data of this group fragment comprise the header data (data that contain the tabulation of one or more initial baseline frames) of each fragment, interrelate with the subregion of these macro blocks, and the header data of each macro block.In some embodiments, the motion vector of subregion and initial baseline frame index data comprise the data of the first and second initial baseline frame index that are used for first and second motion vectors and interrelate.The first initial baseline frame index is specified clauses and subclauses (containing frame number) in the first initial baseline frame that interrelates tabulation (it can obtain) from the header data of the fragment of this subregion of comprising, these clauses and subclauses indicate this first motion vector based on this frame sequence in particular frame.Equally, the second initial baseline frame index is specified clauses and subclauses in the second initial baseline frame that interrelates tabulation (it can obtain) from the header data of the fragment that comprises this subregion, these clauses and subclauses indicate this second motion vector based on this frame sequence in particular frame.
This method generates or receives the tabulation of (1406) standard basis frame then, and this standard basis frame tabulation is used for all fragments of this group fragment.This standard basis frame tabulation comprises a row standard basis frame index (entry number) and a row frame number, the corresponding specific criteria reference frame of each frame number index.In some embodiments, generate the single standard basis frame tabulation that is used to shine upon the first and second initial baseline frame index (following will the discussion).In other execution modes, generate the first and second standard basis frames tabulation that is used to shine upon the first and second initial baseline frame index respectively.
Each subregion for macro block in the one group of fragment that receives, this method 1400 is used tabulation of initial baseline frame and the tabulation of standard basis frame, will shine upon (1407) respectively with the first and second initial baseline frame index that this subregion interrelates to the first and second standard basis frame index.This method can be by the indicated frame number of initial baseline frame index in the initial baseline frame tabulation of determining to interrelate with subregion, this frame number of coupling in this standard basis frame tabulation, and realize corresponding to the frame number of this coupling reference frame index that settles the standard.Like this, the first and second standard basis frame index indicate respectively first and second motion vectors that interrelate with this subregion based on those frames.
Notice that same standard basis frame tabulation is used to make the initial baseline frame index of subregion and standard basis frame index to form mapping.Even this initial baseline frame index can be according to the tabulation of different initial baseline frame (for example, when the subregion that interrelates with this initial baseline frame index is in the different fragments in one group of fragment of reception), this also is constant.As a result, even these subregions are included in the different fragments, any subregion in the arbitrary fragment in the group with same standard basis frame index that interrelates all relates to and indicates same frame in this frame sequence.As mentioned above, these characteristics of this standard basis frame index can facilitate in this subregion processing procedure subsequently.
For this group each fragment in fragment, this method 1400 distributes (1410) to be used to store the specific part of the memory device structure of this fragment data then.In these execution modes, give the subregion clauses and subclauses of each macroblock allocation predetermined number of each fragment.This method partition data storage (1412) in these assigned sections clauses and subclauses (subregion clauses and subclauses that are called use) that will interrelate then with the subregion of this fragment.
For each subregion in this group fragment that receives, this method 1400 will be stored (1415) in the subregion clauses and subclauses of the use of this subregion with the first and second standard basis frame index that this subregion interrelates then.Realize in any obsolete byte of subregion clauses and subclauses that this method can be by being stored in the first and second standard basis frame index data this subregion.In some embodiments, the first and second standard basis frame index data comprise the obsolete byte of 2 bytes in the subregion clauses and subclauses of use.
In some embodiments, for each fragment (comprising a plurality of subregions), this method 1400 also with subregion clauses and subclauses (data that contain the subregion in this fragment) storage/placements (1417) used in first section of the storage area that this fragment allocation obtains.In some embodiments, for each fragment, this method 1400 also with obsolete subregion clauses and subclauses (clauses and subclauses that do not contain partition data) storage/placements (1420) in second section of the storage area that this fragment allocation obtains.In some embodiments, for each fragment, the locator tabulation that the storage area that this method 1400 produces (1425) and this fragment allocation interrelates, this locator tabulation comprises index list, it contains the positional information of the subregion clauses and subclauses in this assigned portions.This method finishes then.
Other purposes of obsolete byte in the subregion clauses and subclauses
As mentioned above, the subregion clauses and subclauses contain 6 obsolete bytes.In some embodiments, combined header data 930 is stored in the obsolete byte of first subregion of macro block.In some embodiments, basis of calculation reference frame index 935, and it is stored in the obsolete byte of each subregion clauses and subclauses.
In other execution modes, use the obsolete byte of these subregion clauses and subclauses to make the Code And Decode of subregion more effective.In some embodiments, the byte of not using of subregion clauses and subclauses is used for the coding of this subregion of convenient storage or the data that are identified or calculate of decoding.For example, can calculate a plurality of subregions of this macro block, or it is stored in not the using in the byte of first subregion of this macro block.This is with regard to the calculating of a plurality of subregions that carry out after need not be in decode procedure.In example shown in Figure 9, what the data of a plurality of subregions 940 comprised a byte does not use byte.
In example shown in Figure 9, the data in the byte 525 of use (such as the data 935 of combined header data 930 and standard basis frame index) are shown in the subregion clauses and subclauses 900 with specific sequence list.But, those skilled in the art will appreciate that and also can use other data order.
The merging of subregion:
In some embodiments, when the some or all of subregions of same macro have identical motion vector and identical reference frame index when (being called same subregion), for the purpose of decoding, identical partitions is assembled (merging) and is become single subregion.In this case, only need preserve subregion clauses and subclauses, rather than preserve a plurality of subregion clauses and subclauses, reduce the expense of memory device thus for this macro block.
Figure 15 A represents that these four subregions are merged into the example of single subregion in order to decode when all four subregions of this same macro all have same motion vector and reference frame index.Like this, only need preserve subregion clauses and subclauses for this macro block, rather than four subregion clauses and subclauses.Figure 15 B represents the example when having identical motion vector and reference frame index for two in five subregions of this same macro, and these two identical subregions are positioned at the upper left side of this macro block.Shown in Figure 15 B, these two identical subregions are merged into single subregion, make only need preserve four subregion clauses and subclauses for this macro block, rather than five subregion clauses and subclauses.
In some embodiments, this merging method is used together in conjunction with subregion clauses and subclauses packaging method of the present invention (about Fig. 6 in above discussion).In these execution modes, before the use subregion clauses and subclauses with macro block are packaged in first section of memory device structure distribution portion, check this macroblock partition, to determine whether any identical subregion is arranged in this macro block.If have, then the identical partitions of this macro block aggregates into single subregion, and the single subregion clauses and subclauses of these identical partitions are stored in first section of this distribution portion.
When the same macro subregion has the first and second identical motion vectors and the identical first and second reference frame index, just can more effectively same subregion be processed into single subregion.Although carry out the expense that motion vector and reference frame index relatively have initial time, but in case same subregion is merged into single subregion, so can be than carrying out each decode phase in the past quickly, in order to carry out any decoding function, only an operation need be on the subregion of a bigger merging, carried out, and several operations need be on several less subregions, do not carried out.Each each decoding function that will carry out on the subregion of this merging will only be needed the request of a load operation and a decoding function, and not need a plurality of load operations and a plurality of decoding function request than more efficient before in time.
Notice that the subregion of same macro uses identical reference frame tabulation, this is because identical reference frame tabulation is used for all macro blocks of same clip.Like this, because the reference frame index uses together in conjunction with identical reference frame tabulation, do not need to determine and compare by the specified actual frame number of reference frame index.
Figure 16 is method 1600 flow charts that merge the macroblock partition of video segment.In some embodiments, this method 1600 comprises the step 807 of the method for describing about Fig. 8 800.In the method 800 of Fig. 8, method 800 receives the fragment data of (805) frame of video, and this fragment contains two or more macro blocks, and wherein each macro block comprises one or more subregions.The data of this fragment comprise partition data (for example, motion vector and reference frame index data), and the subregion of the macro block of itself and this fragment and the header data of each macro block interrelate.
The fragment that this method 1600 starts from receiving is set (1605) and is become current macro.This method 1600 then by relatively and the partition data (motion vector and reference frame index data) that interrelates of subregion all subregions of current macro are compared (1610).This method determines that then whether any subregion of (1615) current macro is identical (that is, whether this motion vector and the reference frame index data that interrelates with any subregion is identical).If identical, then this method merges subregion of (1620) one-tenth with the identical partitions of current macro, and continues step 1625.If different, this method is directly to step 1625 so.
In step 1625, this method determines whether current macro is last macro block of this fragment.If not, this method is set (1630) with next macro block and is become current macro, and continues step 1610.If last macro block, this method finishes so.
Figure 17 represents computer system 1700, and some embodiments of the present invention realize by this computer system 1700.Computer system 1700 comprises bus 1705, processor 1710, system storage 1715, read-only memory 1720, permanent storage appliance 1725, input equipment 1730 and output equipment 1735.
Bus 1705 is concentrated and is represented all systems, ancillary equipment and chipset bus, and these buses can connect a plurality of internal units of computer system 1700 communicatedly.For example, bus 1705 is by read-only memory 1720, system storage 1715 and permanent storage appliance 1725 connection processing device 1710 communicatedly.
The necessary static data of other module and the instruction of read-only memory (ROM) 1720 storage of processor 1710 and this computer system.On the other hand, this permanent storage appliance 1725 is read-write memory devices.This equipment is Nonvolatile memery unit, even when this computer system 1700 is closed, it is store instruction and data also.Some embodiments of the present invention use the magnanimity storage device (such as disk or CD with and corresponding disk drive) as permanent storage appliance 1725.Other execution modes use movable memory equipments (such as floppy disk or Dish, and corresponding disc driver) as permanent storage appliance.
Similar with permanent storage appliance 1725, system storage 1715 is a read-write memory equipment.Yet different with memory device 1725 is that system storage is a volatile read-write memory, such as random-access memory (ram).This system memory stores processor is at some required instruction and datas of run duration.
In some embodiments, realize that necessary instruction of method of the present invention and/or storage are in system storage 1715, permanent storage appliance 1725, read-only memory 1720 or three's combination in any.For example, different memory cells can comprise the instruction that is used for the method according to this invention coding or decode video data stream, and/or comprises video data.In order to carry out process of the present invention, processor 1710 is from the instruction of these different memory cell retrieval execution and the data of processing.
Bus 1705 also is connected to input and output device 1730 and 1735.Input equipment 1730 can be so that the user transmits the order that information also selects to give computer system 1700.Input equipment 1730 comprises alphanumeric keyboard and cursor control.Output equipment 1735 shows the image that is generated by computer system 1700.Output equipment comprises printer and display device, such as cathode ray tube (CRT) and LCD (LCD).
At last, as shown in figure 17, for example by the network adapter (not shown), bus 1705 also is connected to network 1765 with computer system 1700.By this way, computer system 1700 can be the part of computer network (such as local area network (LAN) (" LAN "), wide area network (" WAN ") or Intranet) or network (such as the internet).Any or all assembly of computer system 1700 can use together in conjunction with the present invention.Yet those of ordinary skill in the art will understand any other system configuration also can be with in the present invention.
Though be described with reference to a plurality of details according to the present invention, those of ordinary skill in the art will recognize under the situation that does not deviate from spirit of the present invention, can embody the present invention with other concrete form.For example, a plurality of execution mode of the present invention has carried out foregoing description by the reference macro block.Those of ordinary skill in the art will recognize that these execution modes can use together in conjunction with other array of pixel values.

Claims (17)

1. one kind is used for the storage of the frame of video fragment method at the memory device of giving this fragment allocation, this fragment comprises a plurality of macro blocks, each macro block comprises at least one subregion and has a plurality of subregion clauses and subclauses, these a plurality of subregion clauses and subclauses are distributed to the described macro block in the memory device of described distribution, the data of described fragment comprise the partition data of the subregion that is used for described macro block, and described method comprises:
The subregion clauses and subclauses of the use of described macro block are stored in first section of memory device of described distribution, use therein subregion clauses and subclauses comprise the data of the subregion that is used for macro block;
The obsolete subregion clauses and subclauses of described macro block are stored in second section of memory device of described distribution, wherein obsolete subregion clauses and subclauses do not comprise the data of the subregion that is used for macro block, each of wherein said first section and second section is included in the territory, connected storage in the memory device of described distribution, and the subregion clauses and subclauses of the use of first section in the memory device of described distribution can not be dispersed in the obsolete subregion clauses and subclauses of second section in the memory device of described distribution thus; And
The index that first section of identification and the memory device of described distribution interrelates, the index that the is identified identification 1 that each is specific) specific macroblock and 2 in the described fragment) be used for the positional information of the first subregion clauses and subclauses of described specific macroblock of the memory device of described distribution.
2. the method for claim 1, the data of wherein said fragment further comprise the initial header data of each macro block, described method further comprises:
Use the initial header data of described macro block to obtain the combined header data of macro block; And
To be stored in for the described combined header data that described macro block obtains in the subregion clauses and subclauses of use of described macro block.
3. method as claimed in claim 2, the wherein said step that obtains comprises:
The zone configuration that the zone configuration of identification and described macro block is complementary; And
Determine and the relevant unique identifier of zone configuration that is described macro block identification that this unique identifier comprises the combined header data of described macro block.
4. method as claimed in claim 3 wherein uses the zone configuration look-up table of the possible zone configuration that comprises described macro block to carry out described identification and determine that wherein each possible zone configuration has relevant unique identifier.
5. the method for claim 1, wherein said fragment is included in the frame in the frame sequence, the data of described frame further comprise the data of first initial frame benchmark tabulation, and the initial baseline frame index that subregion has the motion vector that interrelates and indicates the frame number in described first initial frame benchmark tabulation, described frame number is indicated the particular frame in the frame sequence of described motion vector institute basis, and this method further comprises:
For the one or more subregions in this fragment, tabulation makes relevant initial baseline frame index be mapped to the standard basis frame index with the standard frame benchmark to use described first initial frame benchmark tabulation; And
With the storage of described standard basis frame index in the subregion clauses and subclauses of the use of described subregion.
6. method as claimed in claim 5, the frame number of wherein said standard basis frame index indication in described standard frame benchmark tabulation, the particular frame in the described frame sequence of the motion vector institute foundation that this frame number indication and described subregion interrelate.
7. method as claimed in claim 5 further comprises:
Receive the data of additional frame of video fragment, wherein should additional fragment be included in the frame in the described frame sequence, the data of described additional fragment comprise the data of the second initial frame benchmark tabulation that is different from described first initial frame benchmark tabulation, and the initial baseline frame index that the subregion in the described additional fragment has relevant motion vector and indicates frame number in the described second initial frame benchmark tabulation, this frame number are indicated the particular frame in this frame sequence of described motion vector institute basis; And
For the one or more subregions in the described additional fragment, use described second initial frame benchmark tabulation and standard frame benchmark to tabulate, make relevant initial baseline frame index be mapped to the standard basis frame index.
8. method as claimed in claim 7, wherein any standard basis frame index that shines upon for the arbitrary subregion in any one fragment with identical value is indicated the identical particular frame in the described frame sequence.
9. the method for claim 1, use therein subregion clauses and subclauses comprise the byte and the obsolete byte of use, and the byte of use comprises motion vector and reference frame index data, and this method further comprises:
Determine other useful data in the coding of described fragment or decoding; And
This established data is stored in the obsolete byte of subregion clauses and subclauses of use.
10. the method for claim 1 further comprises:
Whether two or more subregions of determining specific macroblock are identical; And
Determine these two or more subregions are merged into the single subregion of specific macroblock based on this.
11. method as claimed in claim 10, wherein:
The partition data of subregion comprises motion vector and reference frame index data; And
Determining that two or more subregions are whether identical comprises whether motion vector and the reference frame index data of determining these two or more subregions be identical.
12. one kind is used for the frame of video fragment data is stored in equipment into the memory device of this fragment allocation, described fragment comprises a plurality of macro blocks, each macro block comprises at least one subregion and has a plurality of subregion clauses and subclauses for the macroblock allocation in the memory device of described distribution, the data of this fragment comprise the partition data of the subregion that is used for described macro block, and described equipment comprises and is used for following device:
The subregion clauses and subclauses of the use of described macro block are stored in first section of memory device of described distribution, use therein subregion clauses and subclauses comprise the data of the subregion that is used for macro block;
The obsolete subregion clauses and subclauses of described macro block are stored in second section of memory device of described distribution, wherein obsolete subregion clauses and subclauses do not comprise the data of the subregion that is used for macro block, each of wherein said first section and second section is included in the territory, connected storage in the memory device of described distribution, and the subregion clauses and subclauses of the use of first section in the memory device of described distribution can not be dispersed in the obsolete subregion clauses and subclauses of second section in the memory device of described distribution thus; And
The index that first section of identification and the memory device of described distribution interrelates, the index that the is identified identification 1 that each is specific) specific macroblock and 2 in the described fragment) be used for the positional information of the first subregion clauses and subclauses of described specific macroblock of the memory device of described distribution.
13. equipment as claimed in claim 12, the data of wherein said fragment further comprise the initial header data of each macro block, described equipment further comprises and is used for following device:
Use the initial header data of described macro block to obtain the header data of combined macro block; And
To be stored in for the described combined header data that described macro block obtains in the subregion clauses and subclauses of use of described macro block.
14. equipment as claimed in claim 12, wherein said fragment is included in the frame of frame sequence, the data of described fragment further comprise the data of first initial frame benchmark tabulation, and the initial baseline frame index that subregion has relevant motion vector and indicates the frame number in the described first initial frame benchmark tabulation, particular frame in the described frame sequence of described frame number indication motion vector institute foundation, described equipment further comprise and are used for following device:
For the one or more subregions in the described fragment, use described first initial frame benchmark tabulation and the tabulation of standard frame benchmark, make relevant initial baseline frame index be mapped to the standard basis frame index; And
Described standard basis frame index data is stored in the subregion clauses and subclauses of use of described subregion.
15. equipment as claimed in claim 14 further comprises being used for following device:
Receive additional frame of video fragment data, should additional fragment be included in the frame of described frame sequence, the data of described additional fragment comprise the data of the second initial frame benchmark tabulation that is different from the tabulation of the first initial frame benchmark, and the initial baseline frame index that the subregion in the described additional fragment has relevant motion vector and indicates frame number in the described second initial frame benchmark tabulation, this frame number are indicated the particular frame in this frame sequence of this motion vector institute foundation; And
For the one or more subregions in the described additional fragment, use described second initial frame benchmark tabulation and the tabulation of standard frame benchmark, make relevant initial baseline frame index be mapped to the standard basis frame index, wherein, any standard basis frame index that shines upon for the arbitrary section post in any one fragment with identical value is indicated the identical particular frame in the described frame sequence.
16. equipment as claimed in claim 12, use therein subregion clauses and subclauses comprise the byte and the obsolete byte of use, the byte of use comprises motion vector and reference frame index data, and this equipment further comprises and is used for following device:
Determine other useful data in the coding of described fragment or decoding; And
Described established data is stored in the obsolete byte of subregion clauses and subclauses of use.
17. equipment as claimed in claim 12, the device that further comprises is used for:
Whether two or more subregions of determining specific macroblock are identical; And
Determine these two or more subregions are merged into the single subregion of specific macroblock based on this.
CN 200510079995 2004-06-27 2005-06-27 Efficient use of storage in encoding and decoding video data stream Active CN1812579B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210161495.7A CN102724497B (en) 2004-06-27 2005-06-27 Effective use of storing device in the Code And Decode of video data stream

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US58344704P 2004-06-27 2004-06-27
US60/583,447 2004-06-27
US11/071,901 2005-03-01
US11/071,901 US7852916B2 (en) 2004-06-27 2005-03-01 Efficient use of storage in encoding and decoding video data streams

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN2010101212733A Division CN101778290B (en) 2004-06-27 2005-06-27 Efficient use of storage in encoding and decoding video data streams
CN201210161495.7A Division CN102724497B (en) 2004-06-27 2005-06-27 Effective use of storing device in the Code And Decode of video data stream

Publications (2)

Publication Number Publication Date
CN1812579A CN1812579A (en) 2006-08-02
CN1812579B true CN1812579B (en) 2010-04-21

Family

ID=36605881

Family Applications (4)

Application Number Title Priority Date Filing Date
CN 200910132798 Active CN101540912B (en) 2004-06-27 2005-06-27 Selection of coding type for coding video data and of predictive mode
CN 200510092222 Expired - Fee Related CN1750656B (en) 2004-06-27 2005-06-27 Encoding and decoding images
CN 200510079996 Active CN1809161B (en) 2004-06-27 2005-06-27 Selection of coding type for coding video data and of predictive mode
CN 200510079995 Active CN1812579B (en) 2004-06-27 2005-06-27 Efficient use of storage in encoding and decoding video data stream

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN 200910132798 Active CN101540912B (en) 2004-06-27 2005-06-27 Selection of coding type for coding video data and of predictive mode
CN 200510092222 Expired - Fee Related CN1750656B (en) 2004-06-27 2005-06-27 Encoding and decoding images
CN 200510079996 Active CN1809161B (en) 2004-06-27 2005-06-27 Selection of coding type for coding video data and of predictive mode

Country Status (1)

Country Link
CN (4) CN101540912B (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200935917A (en) * 2007-12-05 2009-08-16 Onlive Inc Tile-based system and method for compressing video
US20090274211A1 (en) * 2008-04-30 2009-11-05 Omnivision Technologies, Inc. Apparatus and method for high quality intra mode prediction in a video coder
CN106412606B (en) 2010-04-13 2020-03-27 Ge视频压缩有限责任公司 Method for decoding data stream, method for generating data stream
WO2011128366A1 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sample region merging
RS62794B1 (en) 2010-04-13 2022-02-28 Ge Video Compression Llc Inheritance in sample array multitree subdivision
HUE045693T2 (en) 2010-04-13 2020-01-28 Ge Video Compression Llc Video coding using multi-tree sub-divisions of images
US20120027091A1 (en) * 2010-07-28 2012-02-02 Wei-Lien Hsu Method and System for Encoding Video Frames Using a Plurality of Processors
FR2969456A1 (en) * 2010-12-15 2012-06-22 France Telecom METHODS AND DEVICES FOR ENCODING AND DECODING AT LEAST ONE IMAGE USING A PREDICT PIXEL SELECTION, CORRESPONDING COMPUTER PROGRAM
US10333547B2 (en) 2012-08-13 2019-06-25 Gurologic Microsystems Oy Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
US8675731B2 (en) * 2012-08-13 2014-03-18 Gurulogic Microsystems Oy Encoder and method
CN105491376B (en) * 2014-10-06 2020-01-07 同济大学 Image coding and decoding method and device
CN116781925A (en) 2018-08-28 2023-09-19 鸿颖创新有限公司 Method for encoding video data
CN109587485A (en) * 2018-10-26 2019-04-05 西安科锐盛创新科技有限公司 Video compressing and encoding method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1127578A (en) * 1993-07-19 1996-07-24 英国电讯有限公司 Detecting errors in video images
CN1131877A (en) * 1995-03-20 1996-09-25 大宇电子株式会社 Method for encoding video signal using feature point based motion estimation
US5576767A (en) * 1993-02-03 1996-11-19 Qualcomm Incorporated Interframe video encoding and decoding system
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060285A (en) * 1989-05-19 1991-10-22 Gte Laboratories Incorporated Hierarchical variable block size address-vector quantization using inter-block correlation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576767A (en) * 1993-02-03 1996-11-19 Qualcomm Incorporated Interframe video encoding and decoding system
CN1127578A (en) * 1993-07-19 1996-07-24 英国电讯有限公司 Detecting errors in video images
CN1131877A (en) * 1995-03-20 1996-09-25 大宇电子株式会社 Method for encoding video signal using feature point based motion estimation
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression

Also Published As

Publication number Publication date
CN1812579A (en) 2006-08-02
CN101540912B (en) 2011-05-18
CN1809161A (en) 2006-07-26
CN1750656A (en) 2006-03-22
CN101540912A (en) 2009-09-23
CN1750656B (en) 2012-04-18
CN1809161B (en) 2010-11-17

Similar Documents

Publication Publication Date Title
CN1812579B (en) Efficient use of storage in encoding and decoding video data stream
CN101778290B (en) Efficient use of storage in encoding and decoding video data streams
Densham et al. Strategies for solving large location-allocation problems by heuristic methods
JP3490346B2 (en) Texture data retrieval method
US7324026B2 (en) Optimization of decoder memory usage for VLC tables
JP3453088B2 (en) Compressed texture data structure
US5504887A (en) Storage clustering and packing of objects on the basis of query workload ranking
Korst Random duplicated assignment: An alternative to striping in video servers
EP2391132A1 (en) Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder
CN101557525A (en) Coding method for moving picture
KR100260868B1 (en) Computer system and method which sort array elements to optimize array modifications
US8266380B2 (en) Cache memory control method and cache memory apparatus
US8548962B2 (en) Data compression and decompression using relative and absolute delta values
CN101241476A (en) Dummy storage system and method
CN103150245B (en) Determine method and the storage controller of the access characteristics of data entity
US5870551A (en) Lookahead buffer replacement method using ratio of clients access order offsets and buffer data block offsets
EP1065884A1 (en) Dct arithmetic device
CN110968585A (en) Method, device and equipment for storing orientation column and computer readable storage medium
JP4377693B2 (en) Image data search
US6412054B1 (en) Storage disk declustering method
Geldenhuys et al. A nearly memory-optimal data structure for sets and mappings
EP0517383A2 (en) Image compression and storage
KR101488506B1 (en) Method for creating and compressing card control list data
US6404358B1 (en) Decoding method for a Huffman code
CN115080532B (en) CEPH system management method and terminal based on CEPH system

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