CN107231559B - A kind of storage method of decoded video data - Google Patents

A kind of storage method of decoded video data Download PDF

Info

Publication number
CN107231559B
CN107231559B CN201710403597.8A CN201710403597A CN107231559B CN 107231559 B CN107231559 B CN 107231559B CN 201710403597 A CN201710403597 A CN 201710403597A CN 107231559 B CN107231559 B CN 107231559B
Authority
CN
China
Prior art keywords
frame
data
information
reference frame
motion vector
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
CN201710403597.8A
Other languages
Chinese (zh)
Other versions
CN107231559A (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.)
Zhuhai Wisdom Electronic Technology Co Ltd
Original Assignee
Zhuhai Wisdom Electronic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Wisdom Electronic Technology Co Ltd filed Critical Zhuhai Wisdom Electronic Technology Co Ltd
Priority to CN201710403597.8A priority Critical patent/CN107231559B/en
Publication of CN107231559A publication Critical patent/CN107231559A/en
Application granted granted Critical
Publication of CN107231559B publication Critical patent/CN107231559B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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
    • 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present invention relates to a kind of storage methods of decoded video data.Decoded video data storage method includes being stored in front and back in static memory SRAM to reference frame lists, each of table unit stores the corresponding index information and mark top field bottom information in decoding buffer zone of current reference frame, there are also the data informations of all frames in decoding buffer zone also to be stored in static memory SRAM, the data information of each frame in decoding buffer zone includes having: the POC information of each frame, the image structure information of each frame and whether make reference information, there are also the brightness of each frame, the base address in dynamic memory DDR is stored in base address and motion vector data that chroma data is stored in dynamic memory DDR.In addition, using each macro block fixed storage space, the storage mode not changed with the variation of macro block piecemeal type to the motion vector data and relevant information of each macro block.

Description

A kind of storage method of decoded video data
Technical field
The present invention relates to video algorithm process fields, and in particular to the reference frame lists data in video decoding process are deposited The method of storage and the storage of motion vector data machine relevant information, and the method that motion vector data is derived based on this method.
Background technique
Requirement with people to video image quality is higher and higher, and resolution ratio is also increasing, from previous D1, SD High definition till now, ultra high-definition and 4K, 8K development, frame per second is also from previous 24fps, 25fps, 30fps to current 60fps, 120fps development, this is a stern challenge for the decoded performance of video.
At present on network popularize and it is widely used be substantially H.264 video standard, H.264 standard is in order to big Width promotes compression ratio, reduces code rate, algorithmically uses many complicated algorithms.Firstly, on picture structure, in addition to tradition Frame structure outside, additionally use field structure and frame field adaptive MBAFF structure, solution separately compiled using top field bottom when field structure Code, and frame field adaptive MBAFF structure uses the form encoding and decoding of macro block pair, has overturned the knot of previous macro block encoding and decoding line by line Structure causes to need planning and designing again in the hardware design.Secondly, H.264 standard use 3 kinds of slice types, i.e. I slice, The decoding of P slice, B slice, I slice can only be by the way of intra predictions, and P slice and B slice both can wrap Mode containing intra prediction also may include the mode of inter-prediction.The mode of intra prediction mainly removes redundancy spatially, Use the macroblock prediction current macro on periphery.The mode of inter-prediction mainly removes temporal redundancy, i.e., goes forward with time shaft The frame in face and subsequent frame carry out Block- matching.In inter-prediction, in order to which effective and before and after frames carry out Block- matching, H.264 Standard uses 2 Reference Frame Lists in front and back, at most respectively there is 16 frame 32, this 2 Reference Frame Lists can dynamic in decoding process It updates.Since reference frame has been compared more than previous standard very much, this brings very big difficulty to hardware design.Finally, macro On block type, in order to more accurately carry out frame matching, H.264 standard use smaller piecemeal type, include 16x16, 16x8,8x16,8x8,8x4,4x8,4x4 piecemeal type, due in H.264 canonical algorithm, in the direct for being decoded to B frame and It needs to use the information such as the motion vector of corresponding position co-located block when skip macro block, will work as when this just needs to decode The relevant information datas such as the motion vector of each macro block of preceding decoding frame field are deposited into dynamic memory DDR, due to macro block The piecemeal of type is too many, how to store so that subsequent efficient read access is hardware design problem in need of consideration.
Since H.264 canonical algorithm itself is sufficiently complex, and need to decode super large resolution ratio, high frame-rate video code stream, Therefore, for hardware decoder, how to simplify the difficulty of hardware design, improve hardware decoding speed be at present there is an urgent need to It solves the problems, such as.
Summary of the invention
The main object of the present invention is to provide a kind of method reference frame lists data storage and accessed.
It is a further object to provide a kind of motion vector data and the methods of relevant information storage and access.
In order to realize above-mentioned main purpose, reference frame lists data provided by the invention are stored and the method for access includes Static memory is written into according to the format of regulation in forward reference frame list List0 [n] and backward reference frame lists List1 [n] In SRAM, each of Reference Frame List table unit is stored with the corresponding index and mark in decode buffer of a reference frame Know the information at top field bottom.The data information of all frames in decoding buffer zone also is stored in static memory SRAM, decoding buffer The data information of each frame in area include have: the POC information of each frame or frame field adaptive MBAFF, field in this way then be top field and The POC information at bottom, the image structure information (frame, field or frame field adaptive MBAFF) and frame of each frame or top field bottom are No to be long term reference frame, short-term reference frame and do not make reference, there are also the brightness datas of each frame to be stored in dynamic memory DDR Base address, the base address be stored in dynamic memory DDR of chroma data and frame or top field motion vector data be stored in Base address in dynamic memory DDR, the base address that the motion vector data at bottom is stored in dynamic memory DDR pass through top field Base address add a fixed offset to obtain.
By above scheme as it can be seen that the reference frame index obtained by entropy decoding can be by being stored in static memory SRAM In reference frame lists obtain index value of the reference frame in decode buffer, then by this index value access decoding buffer Area, obtain reference frame POC information, the structural information of reference frame, reference frame whether with the information, brightness and the coloration that make reference with And motion vector is stored in the information such as the base address in dynamic memory DDR.Due to reference frame lists, decoding buffer zone Information Number According to being stored in static memory SRAM, the access speed of hardware quickly, can be significantly and by way of 2 grades of access Simplify the design of hardware, promotes hardware decoding speed.
In order to realize another above-mentioned purpose, the storage of motion vector data and relevant information and access provided by the invention Method use according to the storage mode of each macro block fixed space of grammer direct_8x8_inference_flag, not with The variation of macro block piecemeal type and change, the information of each macro block storage has: MB info data include current macro whether be Intra, if whether the reference frame index refIdxLx for being a macro block and Block0 to Block15 is 0, and there are also each 4x4 Index of the reference frame of the motion vector data of fritter block and current block in decoding buffer zone.
It is corresponding to reference frame after needing to access by above scheme as it can be seen that when being decoded to direc the and skip macro block of B frame Whether the motion vector of the co-located block of position is intra block, reference frame index refIdxLx whether be 0 and Index of the reference frame in decoding buffer zone.After being obtained first by the reference frame lists being stored in static memory SRAM Then index to reference frame List1 [0] in decoding buffer zone accesses decoding buffer zone by this index value, obtains reference frame Motion vector be stored in the base address in dynamic memory DDR, then found from backward reference frame lists List1 [0] and The co-located block of current block corresponding position, and then the accessible co-located for obtaining corresponding position Whether the motion vector of block is intra block, and whether reference frame index refIdxLx is 0 and reference frame is in decoding buffer zone Index.Using this storage mode, the information data of needs is all stored together, hardware once may have access to and obtain, pole Hardware decoding speed is improved greatly, and the storage of motion vector data is used according to direct_8x8_inference_flag The location mode of each macro block fixed space, very convenient hardware read the related letter of the co-located block of corresponding position Breath, also greatly facilitates hardware design, avoids the blocking information for traversing entire macro block, simplify hardware design.
Detailed description of the invention
Fig. 1 is that the present invention stores front and back to reference frame lists structure chart.
Fig. 2 is that the present invention stores front and back to each cellular construction figure of reference frame lists.
Fig. 3 is present invention storage decoding buffer zone data information structure figure.
Fig. 4 is the present invention 16 4x4 fritter storage order schematic diagrames when direct_8x8_inference_flag is 1.
It in direct_8x8_inference_flag is 1 storage motion vector and relevant information data knot that Fig. 5, which is the present invention, Composition.
Fig. 6 is the present invention 16 4x4 fritter storage order schematic diagrames when direct_8x8_inference_flag is 0.
It in direct_8x8_inference_flag is 0 storage motion vector and relevant information data knot that Fig. 7, which is the present invention, Composition.
Fig. 8 is the present invention in the schematic diagram for carrying out motion vector prediction using periphery macro block.
Fig. 9 is the present invention in the schematic diagram for carrying out brightness interpolating.
Figure 10 is the present invention in the schematic diagram for carrying out chroma interpolation.
Figure 11 is that the present invention searches and current block corresponding position co-located rear into reference frame List [0] The schematic diagram of block.
Figure 12 is the schematic diagram that the present invention uses time domain prediction mode in decoding b_direct or b_skip macro block.
The present invention is described further with reference to the accompanying drawings and embodiments.
Specific embodiment
Due to when decoding current slice is P slice, needing to use forward reference frame column in H.264 decoding process Table List0 [n] needs to use forward reference frame list List0 [n] and backward reference frame lists List1 when decoding B slice [n], when decoding picture structure is frame structure or frame field adaptive (MBAFF), be up to 16 reference frames, i.e. n value 0 ~ 15; When decoding picture structure is field, be up to 32 reference fields, i.e. n value 0 ~ 31.
When decoding slice information, has corresponding syntactic element mark reference frame and reorder information, software is according to this Information carries out operation of reordering to reference frame lists List0 [n] and List1 [n] to front and back, this operation after the completion of, software by this Reference frame lists List0 [n] and List1 [n] after reordering are arranged according to Fig. 1, are written in static memory SRAM, such as Fruit currently decode picture structure be frame structure or frame field adaptive (MBAFF) when, forward reference frame list List0 [0] to List0 [15] offset address 0x0 to 0x3 is written, 0x4 to 0x7 is empty, and backward reference frame lists List1 [0] is inclined to List1 [15] write-in Address 0x8 to 0x0b is moved, 0xc to 0xf is empty;If currently decoding picture structure is field, by forward reference frame list Offset address 0x0 to 0x7 is written in List0 [0] to List0 [31], and backward reference frame lists List1 [0] to List1 [31] is written Offset address 0x8 to 0x0f.Using this design, it can greatly facilitate the reading of H.264 hard decoders progress reference frame data, by In being stored in static memory, access speed quickly, can greatly speed up hardware decoding speed.
Front and back each unit into reference frame lists List0 [n] and List1 [n] occupies 8 bit, the data stored As shown in Figure 2.Highest order bit7 currently decoding picture structure be field when it is effective, for 0 indicate current reference frame List0 [x] or List1 [x] is top field (top field), and what it is for 1 expression is bottom (bottom field).Low 5bit DPB_Idx is current The corresponding index in decoding buffer zone (decode picture buffer) of reference frame List0 [x] or List1 [x], this DPB_ Idx index information is fixed whithin a period of time to correspond to a frame, i.e., is binding with some reference frame, until this frame data is brushed It goes out to show, be removed out of decoding buffer zone.In this way, although one frame of every decoding or one, require to carry out reference frame lists Rearrangement, reference frame index ref_Idx can change, but the corresponding DPB_Idx of each reference frame will not change, only Need to change the content that front and back corresponds to each unit of table into reference frame lists List0 [n] and List1 [n].Such as solution When the i-th frame of code, the m frame in the corresponding decoding buffer zone List0 [0] pushes up bottom then by the DPB_Idx filling bit4:0 of m frame Information inserts bit7, and when being decoded to i+1 frame, List0 [0] may become the n-th frame of decoding buffer zone after reordering, The DPB_Idx of n-th frame is then inserted into bit4:0, top bottom information inserts bit7.
When decoding present frame or field or frame field adaptive MBAFF, need to use the related data information of reference frame, to every One reference frame has following 4 category information data that can use, specific as follows:
1) the POC information of reference frame;
2) attribute of reference frame, picture structure and long term reference frame or short-term reference frame including reference frame;
3) brightness of reference frame and chroma data are stored in the base address in dynamic memory DDR;
4) motion vector data and relevant information of reference frame are stored in the base address in dynamic memory DDR.
In order to facilitate hardware design, in the present invention, 4 category informations of all reference frames is packaged, are uniformly stored in In one piece of static memory SRAM, storage format is as shown in Figure 3.
H.264 in decoding process, be up to 16 reference frames, in addition current decoded output frame, therefore it is slow to share 17 decodings Area DPB is rushed, each decoding buffer zone DPB occupies 5 word, and offset address 0 is used to store POC information, if current decoding figure When picture structure is frame or frame field adaptive MBAFF, only bit31:16 is used, for storing present frame or frame field adaptive The POC information of MBAFF, if currently decoding picture structure is field, bit31:16 is used to store the POC information of top field, Bit15:0 is used to store the POC information at bottom.Offset address 1 is used to store the attribute information of reference frame, and bit1:0 is for indicating Whether top field is used for short term reference or long term reference and it goes without doing reference, and whether bit3:2 indicates bottom for joining in short term Examine or long term reference and it goes without doing reference, bit5:4 indicate reference frame image structure, be frame, field or frame field adaptive MBAFF.The brightness data that offset address 2 is used to store reference frame is stored in the base address in dynamic memory DDR.Offset address 3 are stored in the base address in dynamic memory DDR for storing the chroma data of reference frame.Offset address 4 is for storing reference The motion vector and relevant information data of frame are stored in the base address in dynamic memory DDR, if reference frame image structure is , then the base address that the motion vector at bottom and relevant information data are stored in dynamic memory DDR passes through the base address of top field Add a fixed offset.
Embodiment 1
The present embodiment realize to macro block (mb) type be non-b_direct and non-b_skip other interframe inter macro block (mb) type into The calculation method of row interpolation operation.
When video image decoding, entropy decoding is carried out first, decoding obtains the reference frame index of current block, if currently Block type is forward macroblock, then decoding obtains ref0_idx, and if it is backward macro block, decoding obtains ref1_idx, if It is bidirectional macroblocks, then decoding obtains ref0_idx and ref1_idx.Meanwhile current macro x-component is obtained according to MB type decoding With the Motion vector residue of y-component, equally, if it is forward macroblock, decoding obtains Motion vector residue mvd0_x and mvd0_y, If it is backward macro block, decoding obtains mvd1_x and mvd1_y, if it is bidirectional macroblocks, then obtains front and back to Motion vector residue Mvd0_x, mvd0_y and mvd1_x, mvd1_y.For convenience, it is retouched below using current block type as forward macroblock It states.
The reference frame index ref0_idx and Motion vector residue mvd0_x and mvd0_ of forward macroblock have been obtained in entropy decoding After y, according to H.264 motion vector prediction algorithm, prediction is carried out using periphery macro block and sees Fig. 8, the macro block from the current left side MB Left A, the macro block top B of top, the macro block top_right C on upper the right and the macro block top_left D prediction on the upper left side The motion vector predictor candidates mvp_x and mvp_y of current macro are obtained, in addition Motion vector residue mvd0_x and mvd0_y, thus Obtain final the motion vector mv_x and mv_y of current macro:
Mv_x=mvd0_x+mvp_x (formula 1)
Mv_y=mvd0_y+mvp_y (formula 2)
Meanwhile the reference frame index ref0_idx obtained according to entropy decoding, List0 is found from Fig. 1 reference frame lists [ref0_idx], and then available this reference frame index ref0_idx corresponds to the DPB_Idx of decoding buffer zone from Fig. 2, into And according to DPB_Idx from Fig. 3, the brightness data for obtaining reference frame is stored in base address and color in dynamic memory DDR Degree is according to the base address in dynamic memory DDR is stored in, further according to the motion vector mv_x and mv_y of current block The reference block data for positioning current block, according to Fig. 9 and Figure 10, the interpolation arithmetic algorithm of brightness and coloration is calculated currently The interpolation result of block.
The motion vector of reference frame is obtained according to DPB_Idx and relevant information data is stored in dynamic memory DDR Behind base address, so that it may which access obtains the motion vector and relevant information data of reference frame, the motion vector and correlation of reference frame Information data is according to decoding whether obtained grammer direct_8x8_inference_flag is 1 to adopt from sequence parameter set SPS It is stored with following 2 kinds of formats.
1) when direct_8x8_inference_flag is 1, for the motion vector and relevant information of compressed reference frame Data, the motion vector and relevant information number of the 4x4 fritter block that the column of the left side one and the right one for only storing each macro block MB arrange According to storage sequence is as shown in figure 4, each macro block only needs to store the motion vector and relevant information number of 8 4x4 fritter block According to saving one compared to the motion vector and relevant information data that original each macro block needs to store 16 4x4 fritter block Half memory space, is greatly saved bandwidth.The storage format of motion vector and relevant information data is illustrated in fig. 5 shown below.
Each macro block occupies 9 word, and first word stores MB info data, behind 8 word to store 8 4x4 small The motion vector data of block block.Wherein MB info meaning is as follows: bit0 be used to indicate current macro whether be inter(such as Fruit is that macro block (mb) type is that inter is set as 0, is otherwise provided as 1), and bit1 indicates whether current macro is that (frame macro block is set a macro block It is set to 0,1) field macro block is set as, bit16 to bit31 respectively indicates the reference frame index refIdxLx of Block0 to Block15 If whether is 0(refIdxLx is 0, it is set as 1, is otherwise provided as 0).The motion vector data of 8 4x4 fritter block is adopted It is stored with same format, low 5bit, that is, bit4:0 is used to store DPB_idx, i.e., current block reference frame is in decoding buffer zone DPB Frame index, what bit5 was used to further discriminate between reference is top field or bottom, and Bit19:6 is used to store current 4x4 fritter The x-component mv_x, Bit31:20 of the motion vector of block are used to store the y-component of the motion vector of current 4x4 fritter block mv_y。
2) when direct_8x8_inference_flag is 0, the movement of 16 4x4 fritter block of each macro block to Amount and relevant information data require to store, and storage sequence is as shown in Figure 6.The storage format of motion vector and relevant information data It is illustrated in fig. 7 shown below.
Each macro block occupies 17 word, and first word stores MB info data, behind 16 word store 16 The motion vector and relevant information data of block.The specific meaning of each word and as above, is not repeated.
Since H.264 in P slice and B slice, the piecemeal type of macro block is very more, including 16x16,16x8, 8x16,8x8,8x4,4x8,4x4, if storing motion vector and relevant information data according to the piecemeal type of macro block, not only The piecemeal type of each macro block is stored, and since the piecemeal type of each macro block is different, each macro block is caused to occupy Space is not fixed, and in decoding process, when decoded macroblock type is b_direct or b_skip, needs to access corresponding position It can very be bothered when the motion vector and relevant information data of 4x4 block, need to be traversed for the piecemeal type of entire macro block, The position of corresponding position 4x4 block, and then the related letter such as motion vector data for reading corresponding position 4x4 block can be positioned Breath, has been significantly greatly increased the decoded design difficulty of hardware.Using storage format above, in direct_8x8_inference_ Each macro block fixes 9 word when flag is 1, and direct_8x8_inference_flag fixes 17 word storages when being 0, The piecemeal type for not needing to consider each macro block, when decoded macroblock type is b_direct or b_skip, hardware decoder The motion vector of corresponding position 4x4 block very easily can be directly accessed according to direct_8x8_inference_flag The relevant informations such as data, enormously simplify hardware design.
Embodiment 2
The present embodiment is realized when sequence parameter set SPS grammer direct_spatial_mv_pred_flag is 1, to macro Block type is that b_direct or b_skip derives motion vector using spatial domain prediction mode and carries out the calculation method of interpolation arithmetic.
Spatial domain prediction mode is exactly that the reference frame index and movement of current macro are obtained according to the information prediction of periphery macro block Vector is calculated according to the information of Fig. 8 current macro periphery A, B, C, D macro block first, obtain refIdxL0_temp and RefIdxL1_temp, calculation formula are as follows:
refIdxL0_temp = MinPositive( refIdxL0A, MinPositive( refIdxL0B, RefIdxL0C)) (formula 3)
refIdxL1_temp = MinPositive( refIdxL1A, MinPositive( refIdxL1B, RefIdxL1C)) (formula 4)
Wherein:
In above-mentioned formula, refIdxL0A, refIdxL0B and refIdxL0C respectively indicate the forward direction of periphery macro block A, B, C Reference frame index, refIdxL1A, refIdxL1B and refIdxL1C respectively indicate the backward reference frame rope of periphery macro block A, B, C Draw.
Then the reference frame index of current macro is obtained according to obtained refIdxL0_temp and refIdxL1_temp RefIdxL0 and refIdxL1, calculation formula are as follows:
If(refIdxL0_temp < 0 && refIdxL1_temp < 0)
refIdxL0 = 0; refIdxL1 = 0;(formula 5)
else
refIdxL0 = refIdxL0_temp;RefIdxL1=refIdxL1_temp (formula 6)
The motion vector data of current macro is calculated below.It finds and works as from backward reference frame lists List1 [0] first The co-located block of preceding block corresponding position, as shown in figure 11.Meanwhile the available backward reference frame from Fig. 2 Index DPB_Idx and top bottom information of the List1 [0] in decoding buffer zone are obtained backward and then according to DPB_Idx from Fig. 3 The motion vector of reference frame List1 [0] is stored in the base address in dynamic memory DDR, and obtains reference frame List1 simultaneously It [0] whether is short-term reference frame, and then according to the motion vector base address of reference frame List1 [0] and obtained current block The co-located block of corresponding position, the mv_x of available corresponding position co-located block from Fig. 5 or Fig. 7 It whether is 0 information with mv_y and refIdxLx.Moving_block can be calculated according to information obtained above, Moving_block 3 conditions below are arranged to 1 in the case where all meeting:
1) List1 [0] is short-term reference frame;
2) mv_x and mv_y of corresponding position co-located block is in [- 1/4 ,+1/4] section;
3) refIdxLx of corresponding position co-located block is 0.
In addition it is also necessary to obtain the forward motion vector predicted value of current macro according to periphery A, B, C, D macroblock prediction Mvp0_x and mvp0_y and backward motion vectors predicted value mvp1_x and mvp1_y, finally obtain currently according to following formula The forward motion vector mv0_x and mv0_y of block.
If(refIdxL0_temp < 0)
{ mv0_x = 0; mv0_y= 0;(formula 7)
else if(refIdxL0_temp == 0 & moving_block )
{ mv0_x = 0; mv0_y= 0;(formula 8)
else
{ mv0_x = mvp0_x; mv0_y= mvp0_y;(formula 9)
Backward motion vectors mv1_x and mv1_y are obtained using same formula, it is only necessary to by the refIdxL0_ in above formula Temp is changed to refIdxL1_temp.
The front and back of current block is obtained to reference frame index refIdxL0 and refIdxL1, from Fig. 1 by operation above Available List0 [refIdxL0] and List1 [refIdxL1], and then from reference frame index after forward direction available in Fig. 2 RefIdxL0 and refIdxL1 corresponds to the DPB_Idx of decoding buffer zone, and then according to DPB_Idx from Fig. 3, available front and back Dynamic memory is stored in the base address and chroma data being stored in dynamic memory DDR to the brightness data of reference frame Base address in DDR, further according to the forward motion vector mv0_x and mv0_y and backward motion vectors mv1_x of current block And mv1_y, so that it may the forward direction reference block data and backward reference block data of current block are positioned, it is bright according to Fig. 9 and Figure 10 The forward interpolation result and backward interpolation result of current block is calculated in degree and the interpolation arithmetic algorithm of coloration.Finally according to H.264 standard interpolation arithmetic algorithm obtains the final interpolation result of current block.
Embodiment 3
The present embodiment is realized when sequence parameter set SPS grammer direct_spatial_mv_pred_flag is 0, to macro Block type is that b_direct or b_skip derives motion vector using time domain prediction mode and carries out the calculation method of interpolation arithmetic.
Time domain prediction mode is exactly according to being derived by after on time shaft to the relevant information of reference frame and forward reference frame The reference frame index and motion vector of current macro.It is found and current block from backward reference frame lists List1 [0] first The co-located block of corresponding position, as shown in Figure 6.Meanwhile available backward reference frame List1 [0] In from Fig. 2 The index DPB_Idx and top bottom information of decoding buffer zone, and then according to DPB_Idx from Fig. 3, available backward reference frame The motion vector of List1 [0] is stored in the base address in dynamic memory DDR, and obtains reference frame List1's [0] simultaneously If currently decoding picture structure be the bit7 of frame or frame field adaptive MBAFF or field and List1 [0] to POC(is 0, frame is taken Or the POC of top field, if taking the POC at bottom if it is 1 that currently decoding picture structure, which be the bit7 of field and List1 [0]), it marks It is denoted as poc1, and then according to the motion vector base address of reference frame List1 [0] and the current block corresponding position found Co-located block, motion vector of available corresponding position co-located block etc. is believed from Fig. 5 or Fig. 7 Whether breath, include whether it is intra macro block, be field, motion vector data mv_x and mv_y and reference decoder buffer index DPB_idx and top field bottom information.If corresponding position co-located block is intra macro block, before current block Backward reference frame index refIdxL0 and refIdxL1 are 0, forward motion vector mv0_x and mv0_y and backward motion vectors Mv1_x and mv1_y is also 0;Otherwise, if corresponding position co-located block is not intra macro block, first according to The DPB_idx and top field bottom information of corresponding position co-located block through obtaining, the available phase reply from Fig. 3 The POC information of the reference frame of position co-located block is answered, is labeled as refIdxCol_poc, while obtaining this reference frame Whether it is long term reference frame, its POC information and refIdxCol_poc is then found out from forward direction reference frame lists List0 [32] Its reference frame index labelled notation is refIdx_map by identical reference frame, and so far, the forward reference frame of current block indexes RefIdxL0 is refIdx_map, and backward reference frame index refIdxL1 is 0.
The forward motion vector mv0_x and mv0_y and backward motion vectors mv1_x and mv1_ of current block are calculated below y.Being described above after having obtained to the POC of reference frame refIdxL1 is poc1, and the POC of forward reference frame refIdxL0 is RefIdxCol_poc, and obtained whether forward reference frame refIdxL0 is long term reference frame simultaneously, if poc1 and Difference between refIdxCol_poc is 0 or forward reference frame refIdxL0 is long term reference frame, then forward motion vector Mv0_x and mv0_y is the motion vector data mv_x and mv_y of corresponding position co-located block, backward motion vectors Mv1_x and mv1_y is 0.Otherwise, preceding backward motion vectors are calculated using following calculation formula such as Figure 12:
Tx=(16 384+Abs (td/2))/td (formula 10)
DistScaleFactor=Clip3 (- 1024,1023, (tb * tx+32) > > 6) (formula 11)
Mv0_x=(DistScaleFactor * mvCol_x+128) > > 8 (formulas 12)
Mv1_x=mv0_x-mvCol_x (formula 13)
Mv0_y=(DistScaleFactor * mvCol_y+128) > > 8 (formulas 14)
Mv1_y=mv0_y-mvCol_y (formula 15)
Wherein:
Tb=Clip3 (- 128,127, (currPic_poc-refIdxCol_poc)) (formula 16)
Td=Clip3 (- 128,127, (poc1-refIdxCol_poc)) (formula 17)
MvCol_x, mvCol_y are the motion vector data of corresponding position co-located block, currPic_poc For the POC for currently decoding image.
The front and back of current block is obtained to reference frame index refIdxL0 and refIdxL1, from Fig. 1 by operation above Available List0 [refIdxL0] and List1 [refIdxL1], and then the available reference frame rope backward before this from Fig. 2 Draw the DPB_Idx that refIdxL0 and refIdxL1 corresponds to decoding buffer zone, and then according to DPB_Idx from Fig. 3, before available Dynamic memory is stored in the base address and chroma data that the brightness data of backward reference frame is stored in dynamic memory DDR Base address in DDR, further according to the forward motion vector mv0_x and mv0_y and backward motion vectors mv1_x of current block And mv1_y, so that it may the forward direction reference block data and backward reference block data of current block are positioned, it is bright according to Fig. 9 and Figure 10 Degree and the interpolation arithmetic algorithm of coloration obtain the forward interpolation result and backward interpolation result of current block.Finally according to H.264 Standard interpolation arithmetic algorithm obtain the final interpolation result of current block.
Finally it is emphasized that the present invention is not limited to above-mentioned implementation, if the Store form of reference frame lists changes, The variation of reference frame information data Store form, variation of motion vector data Store form etc. should all be included in right of the present invention It is required that protection scope in.

Claims (2)

1. decoded video data storage method characterized by comprising
Front and back is stored in static memory SRAM to reference frame lists, each unit of the front and back to reference frame lists It is stored with the corresponding index and top field bottom information in decoding buffer zone of current reference frame;
The data information of all frames in decoding buffer zone also is stored in static memory SRAM, the data of each frame in decoding buffer zone Information includes: the POC information of each frame or frame field adaptive MBAFF, and field in this way is then the POC information for pushing up field and bottom, The image structure information and frame of each frame push up whether field bottom is long term reference frame, short-term reference frame and does not make reference, also Base address that the brightness data of each frame is stored in dynamic memory DDR, chroma data are stored in dynamic memory DDR Base address and frame or top field motion vector data are stored in the base address in dynamic memory DDR;The number of motion vectors at bottom A fixed offset is added to obtain by pushing up the base address of field according to the base address for being stored in dynamic memory DDR;The figure of each frame As structural information includes frame, field or frame field adaptive MBAFF;
The storage of motion vector data and relevant information uses the storage mode of each macro block fixed space;
When direct_8x8_inference_flag is 1, the column of the left side one of each macro block MB and the 4x4 of the column of the right one are only stored The motion vector and relevant information data of fritter block, each macro block occupy 9 word;
When direct_8x8_inference_flag is 0, the motion vector and correlation of 16 4x4 fritter block of each macro block Information data requires to store, and each macro block occupies 17 word;
When decoded macroblock type is b_direct or b_skip, hardware decoder can be according to direct_8x8_ Inference_flag directly accesses the motion vector data and relevant information of corresponding position 4x4 block.
2. decoding data storage method according to claim 1, it is characterised in that:
In the storage of the motion vector data and relevant information, the motion vector data of each macro block and relevant information are deposited It puts together, the data of each macro block storage include: the movement of current macro type and reference frame index information and each piece Index information of the reference frame of vector data and current block in decoding buffer zone.
CN201710403597.8A 2017-06-01 2017-06-01 A kind of storage method of decoded video data Active CN107231559B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710403597.8A CN107231559B (en) 2017-06-01 2017-06-01 A kind of storage method of decoded video data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710403597.8A CN107231559B (en) 2017-06-01 2017-06-01 A kind of storage method of decoded video data

Publications (2)

Publication Number Publication Date
CN107231559A CN107231559A (en) 2017-10-03
CN107231559B true CN107231559B (en) 2019-11-22

Family

ID=59934617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710403597.8A Active CN107231559B (en) 2017-06-01 2017-06-01 A kind of storage method of decoded video data

Country Status (1)

Country Link
CN (1) CN107231559B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110868599B (en) * 2019-12-06 2021-11-19 杭州顺网科技股份有限公司 Video compression method of remote desktop
CN111355962A (en) * 2020-03-10 2020-06-30 珠海全志科技股份有限公司 Video decoding caching method suitable for multiple reference frames, computer device and computer readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257625A (en) * 2008-04-01 2008-09-03 海信集团有限公司 Method for indexing position in video decoder and video decoder
CN101783958A (en) * 2010-02-10 2010-07-21 中国科学院计算技术研究所 Computation method and device of time domain direct mode motion vector in AVS (audio video standard)
CN102223543A (en) * 2011-06-13 2011-10-19 四川虹微技术有限公司 Reference pixel read and storage system
CN104811721A (en) * 2015-05-26 2015-07-29 珠海全志科技股份有限公司 Video decoding data storage method and calculation method of motion vector data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257625A (en) * 2008-04-01 2008-09-03 海信集团有限公司 Method for indexing position in video decoder and video decoder
CN101783958A (en) * 2010-02-10 2010-07-21 中国科学院计算技术研究所 Computation method and device of time domain direct mode motion vector in AVS (audio video standard)
CN102223543A (en) * 2011-06-13 2011-10-19 四川虹微技术有限公司 Reference pixel read and storage system
CN104811721A (en) * 2015-05-26 2015-07-29 珠海全志科技股份有限公司 Video decoding data storage method and calculation method of motion vector data

Also Published As

Publication number Publication date
CN107231559A (en) 2017-10-03

Similar Documents

Publication Publication Date Title
CN111147850B (en) Table maintenance for history-based motion vector prediction
TWI736907B (en) Improved pmmvd
US11641483B2 (en) Interaction between merge list construction and other tools
US20210266537A1 (en) Using inter prediction with geometric partitioning for video processing
US20210235074A1 (en) Harmonized local illumination compensation and intra block copy coding
CN107113424B (en) With the Video coding and coding/decoding method of the block of inter-frame forecast mode coding
CN107534766B (en) Method and apparatus for deriving motion information for sub-blocks in video coding
CN105531999B (en) It is related to transmitting the method for video coding and device of the grammer of motion information for signal
TWI538489B (en) Motion vector coding and bi-prediction in hevc and its extensions
TW201933866A (en) Improved decoder-side motion vector derivation
US8933989B2 (en) Reference picture list changing method of multi-view video
TW201946472A (en) Limitation of the MVP derivation based on decoder-side motion vector derivation
JP2022511914A (en) Motion vector prediction in merge (MMVD) mode by motion vector difference
WO2014006854A1 (en) Device for signaling a long-term reference picture in a parameter set
TWI719522B (en) Symmetric bi-prediction mode for video coding
JP2022533056A (en) Adaptive motion vector difference decomposition for affine mode
CN107231559B (en) A kind of storage method of decoded video data
CN114009037A (en) Motion candidate list construction for intra block copy mode
CN113170123A (en) Interaction of illumination compensation and inter-frame prediction
CN114175655A (en) Restriction of use of tools according to reference picture type
CN102223543B (en) Reference pixel read and storage system
KR102667418B1 (en) Method and apparatus for signaling syntax elements in video coding
CN113424534A (en) Multiple syntax elements for adaptive motion vector resolution
KR102642367B1 (en) Method and apparatus for signaling syntax elements in video coding
CN113812165A (en) Improvements to HMVP tables

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