CN103945221A - Video encoding and decoding method and device and generated video code stream - Google Patents

Video encoding and decoding method and device and generated video code stream Download PDF

Info

Publication number
CN103945221A
CN103945221A CN201410141736.0A CN201410141736A CN103945221A CN 103945221 A CN103945221 A CN 103945221A CN 201410141736 A CN201410141736 A CN 201410141736A CN 103945221 A CN103945221 A CN 103945221A
Authority
CN
China
Prior art keywords
sequence
frame
image
seqdelaynum
code stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410141736.0A
Other languages
Chinese (zh)
Other versions
CN103945221B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410141736.0A priority Critical patent/CN103945221B/en
Publication of CN103945221A publication Critical patent/CN103945221A/en
Application granted granted Critical
Publication of CN103945221B publication Critical patent/CN103945221B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention discloses a video encoding and decoding method and device and a generated video code stream. The video encoding method includes the steps of determining the frame number of output delay of the ith sequence of codes, allocating an image storage space with the size not smaller than the size of the space of the frame to the ith sequence of the codes, managing image output of the image storage space of the ith sequence of the codes according to the number of encoded frames of the ith sequence of the codes and the frame number of the output delay, writing in the frame number of the output delay of the ith sequence of the codes, and sending the frame number to the code stream at a video decoding end. Image output is managed according to the parameter, namely, the frame number of the output delay, and therefore the problem that a large number of frames which are not outputted are accumulated in a decoded image buffer area due to the fact that the image output speed is too low in the AVS2WD5.0 is solved, and meanwhile the problem that images can not be normally outputted when frame skipping occurs in the proposal M3226 is solved.

Description

The video code flow of video coding-decoding method, device and generation
Technical field
The invention belongs to video coding and decoding technology field, particularly the video code flow of a kind of video coding-decoding method, device and generation.
Background technology
In the process of video decode, how to manage the output of decoded picture, it is an important problem always, reasonably image output method should make image according to the output successively from small to large of the size of DISPLAY ORDER, simultaneously also should be in reasonably time output, avoid causing a large amount of not output frames to be deposited in decoding image buffering area because image exported slow, cause the decoding image buffering area efficiency of management too low, and then affect the efficiency of interframe reference.
In HEVC standard, the output of image is by the pic_dpb_output_delay in SEI picture timing (), the pic_spt_dpb_output_du_delay management in pic_dpb_output_du_delay and decoding_unit_info ().Three syntactic elements are all for representing that a decoded picture enters the time delay of exporting after decoding image buffering area.By this administrative mechanism, can make decoded picture according to DISPLAY ORDER, with the fastest speed output image, but being every frame, shortcoming all needs to transmit an output time delay, and this will be a no small expense.
In the AVS2 standard WD5.0 formulating, the output of image is together managed by decoding image buffering area size MAX_BUFFER_SIZE and image DISPLAY ORDER index POI, the method of management is, when the image number in decoding image buffering area reaches MAX_BUFFER_SIZE, export in decoding image buffering area a two field picture of POI minimum in output image not.This output intent exists a comparatively serious problem, completely could export a frame owing to waiting in decoding image buffering area, this can cause image to export slow and cause a large amount of not output frames to be deposited in decoding image buffering area, the hierarchical B structure of the GOP=8 that for example decodes.After DISPLAY ORDER, decoding order and the quilt of front 9 frames, reference case is respectively:
DISPLAY ORDER 1 2 3 4 5 6 7 8 9
Decoding order 1 5 4 6 3 8 7 9 2
Referenced situation 1 0 0 0 1 0 1 0 1
Wherein 1 in referenced situation one row represent that meeting is by frame institute reference afterwards, 0 expression can be by frame institute reference afterwards, in the time of MAX_BUFFER_SIZE=8, be decoded to DISPLAY ORDER the 8th frame namely when decoding order the 9th frame, decoding image buffering area is full, need to export a frame, according to rule, output be the 1st frame.But because decoding image buffering area is full, after DISPLAY ORDER the 8th frame limit is complete, need to deposit in decoding image buffering area, must shift out a frame.Owing to only having the 1st frame to export, so can only shift out the 1st frame.Like this, will cause the 1st frame cannot by after the reference of frame institute.But the first frame is I frame, its reference significance to frame is afterwards very large, therefore, adopts the reference frame management scheme in WD5.0, in this case, will cause I frame cannot be shown the frame reference afterwards of order the 8th frame, greatly reduces decoding efficiency.And under the reasonable efficiently way of output, in the time being decoded to DISPLAY ORDER the 8th frame, DISPLAY ORDER is less than 8 frame and can have exported.Wherein DISPLAY ORDER for 2,3,4,6 frame be not can by after frame institute reference, after having exported, just can shift out.But excessively slow due to the 1st frame output, cause 2,3,4,6 etc. can be not referenced frame cannot export, thereby cannot shift out, can only be forced to shift out the 1st frame.
For the problem in WD5.0, AVS motion M3226 proposes, and adopts image display delayed picture_display_delay to manage, and picture_display_delay refers to a two field picture from completing the time that demonstration need to be waited for that is decoded to.Concrete method is: 1. every two field picture has an image output time delay; 2. after decoding present image, the display delay of the image in decoding image buffering area all subtracts 1; 3., if having display delay in the image in decoding image buffering area and present image is 0 image, exports this image, otherwise do not export any image.Although the scheme of M3226 can solve to a certain extent in WD5.0 image and export and cause slowly a large amount of not output frames to be deposited in the problem in decoding image buffering area,, for the scheme of M3226, in the time there is frame-skipping, also can cause output problem.For example, still adopt the hierarchical B structure that the size of decoding image buffering area is 8, GOP=8.Suppose that coding side skips front 20 frames and start to compile, in front 10 frames of encoding and decoding, DISPLAY ORDER value is all more than or equal to 20 so, and encoding and decoding orders is all less than 10, and the display delayed of every frame is all greater than 10.When being decoded to decoding order the 9th frame, decoding image buffering area is full, at that time according to the description in M3226, do not have a frame display delayed can reduce to 0, do not have frame to export, so just have no idea to shift out any frame, the frame of encoding and decoding afterwards cannot move in decoding image buffering area.
In the AVS2 standard WD6.0 formulating, also there are following two problems:
(1) image DISPLAY ORDER (POI) cannot correctly transmit, the problem of calculating.
In WD6.0, the difference of POI and DOI determines by PictureDisplayDelay-OutputReorderDelay, and the maximum magnitude of this value is-32~64.And in the time there is frame-skipping, in the time there is frame-skipping, the difference of DOI and POI cannot ensure between-32~64.
For example, the coding structure of IPPP, it is example that every two frames are compiled a frame, coding the 66th frame, POI is 132, and DOI is 66, both differences have arrived 66, cannot correctly transmit.
(2) occur after random access, the frame after the DISPLAY ORDER of image first I frame after the sequence head of current video sequence is pressed decoding order, cannot be correctly decoded.
In WD6.0, specify:
When meeting the following conditions, image is marked as " should not serve as with reference to image ":
Before the DISPLAY ORDER of-image first I frame after the sequence head of current video sequence is pressed decoding order
-this image is not I frame
The value of the no_forward_reference_flag of-this image equals ' 0 '
In the time that image one of meets the following conditions, image is marked as " can be used as reference picture ":
After the DISPLAY ORDER of-image first I frame after the sequence head of current video sequence is pressed decoding order
-this image is I frame
The value of the no_forward_reference_flag of-this image equals ' 1 '
Random access is not supported in this description in some cases
As shown in Figure 5, a kind of GOP=4 supporting in WD6.0 and HierB structure:
According to the description in WD6.0, when I8 place in code stream occurs when random access, I1 be all can be referenced image.
According to the configuration of referring-to relation in existing RD6.0, P12 can be referenced to I1, B9, and B10, B11 can directly or indirectly be referenced to P12. in the time there is random access at I8 place, B8, B9, B10, P12 cannot be correctly decoded.
As shown in Figure 6, the alternative GOP=4 supporting in WD6.0 and HierB structure:
If B4 is only with reference to P4, the value of its no_forward_reference_flag equals ' 1 ',
And occur when random access, B2 should be also cannot be by the reference of P12 institute, but in standard, does not forbid that P12 is with reference to B2, therefore, if P12 with reference to B2, when at I8 place generation random access, B8, B9, B10, P12 cannot be correctly decoded.
Summary of the invention
The object of the invention is to for the deficiencies in the prior art, method and the device of a kind of video coding-decoding method and device, generation and parsing video code flow is provided, and corresponding video code flow.
The object of the invention is to be achieved through the following technical solutions, a kind of coding method of video, comprises the following steps:
(1) determine the i(i>=0 of coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame;
(2) according to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding; Concrete management method is: in the image output detections moment, if i the sequence number SeqCodedNum[i of coded frame of coding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of coding; Otherwise, do not export any image;
(3) i sequence of coding exported to the frame number SeqDelayNum[i of time delay] write the code stream that sends to video decode end.
Further, the frame number SeqDelayNum[i of the output of i sequence described in described step 3 time delay] in the code stream of sequence head, write or write in the code stream of sequence head expansion or in the code stream of the image head of first frame, write after sequence head.
A coding/decoding method for video, comprises the following steps:
(1) from be received from the code stream of Video coding end, obtain the i(i>=0 of decoding) the frame number SeqDelayNum[i of the output time delay of individual sequence] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of decoding] image storage space of frame;
(2) according to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding; Concrete management method is: in the image output detections moment, if the number SeqDecodeNum[i of i sequence nucleotide sequence decoded frame of decoding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of decoding; Otherwise, do not export any image.
Further, in described step 1, the described i(i>=0 that obtains decoding) frame number of output time delay of individual sequence, the method for obtaining comprises: in the code stream of sequence head, obtain or obtain in the code stream of sequence head expansion or in the code stream of the image head of first frame, obtain after sequence head.
A kind of video coding apparatus, comprise coding processing unit and code stream writing unit, described coding processing unit is for determining the i(i>=0 of coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame; And according to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding; Concrete management method is: in the image output detections moment, if i the sequence number SeqCodedNum[i of coded frame of coding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of coding; Otherwise, do not export any image.Described code stream writing unit is for exporting i sequence of coding the frame number SeqDelayNum[i of time delay] write the code stream that sends to video decode end.
Further, the frame number SeqDelayNum[i of the described output of i sequence by coding time delay] write the code stream that sends to video decode end, the method writing comprises: in the code stream of sequence head, write or the code stream expanded at sequence head in write or in the code stream of the image head of first frame, write after sequence head.
A kind of video decoder, comprise codec processing unit and be arranged at the frame number acquiring unit of sequence in code stream reading unit output time delay, the frame number acquiring unit of described sequence output time delay is for obtaining the i(i>=0 of decoding from being received from the code stream of Video coding end) the frame number SeqDelayNum[i of the output time delay of individual sequence] (SeqDelayNum[i] >=1); Described codec processing unit is that size of i sequence allocation of decoding is not less than SeqDelayNum[i] image storage space of frame; According to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding.Concrete management method is: in the image output detections moment, if the number SeqDecodeNum[i of i sequence nucleotide sequence decoded frame of decoding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of decoding; Otherwise, do not export any image.
Further, from be received from the code stream of Video coding end, obtain the frame number SeqDelayNum[i of the output time delay of i sequence of decoding], the method for obtaining comprises: in the code stream of sequence head, obtain or obtain in the code stream of sequence head expansion or in the code stream of the image head of first frame, obtain after sequence head.
A kind of video code flow, is specially: the frame number SeqDelayNum[i that writes i sequence output time delay of coding in the code stream of sequence head or in the code stream of sequence head expansion or after sequence head in the code stream of the image head of first frame].
The invention has the beneficial effects as follows: the present invention proposes to adopt this parameter of frame number of output time delay to carry out the output of managing image, on the one hand, solve in AVS2WD5.0 image and exported slow and caused a large amount of not output frames to be deposited in the problem in decoding image buffering area, solved motion M3226 normal problem of output image in the time of frame-skipping simultaneously.After problem and generation random access that in AVS2 standard WD6.0, image DISPLAY ORDER (POI) cannot correctly transmit, frame after the DISPLAY ORDER of image first I frame after the sequence head of current video sequence is pressed decoding order, the problem that cannot be correctly decoded, the present invention has also carried out corresponding solution.
Brief description of the drawings
Fig. 1 is the schematic flow sheet of method for video coding of the present invention;
Fig. 2 is the schematic flow sheet of video encoding/decoding method of the present invention;
Fig. 3 is the composition structural representation of video coding apparatus of the present invention;
Fig. 4 is the composition structural representation of video decoder of the present invention;
Fig. 5 is a kind of GOP=4 and the HierB structure chart of supporting in WD6.0;
Fig. 6 is alternative GOP=4 and the HierB structure chart of supporting in WD6.0.
Embodiment
For making object of the present invention, technical scheme and advantage clearer, referring to drawings and Examples, the present invention is described in further detail.
Main thought of the present invention is to provide a kind of mechanism output of decoded picture being managed based on sequence output time delay frame number.
Embodiment 1:
As shown in Figure 1, the coding method of a kind of video of the present invention, comprises the following steps:
Step 101: the i(i>=0 that determines coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame;
A sequence arrives coded frame between next sequence head after comprising current sequence head.
After a sequence can also comprise current sequence head, to coded frame between sequence ending.
Determine the frame number SeqDelayNum[i of i sequence output time delay of coding] method be: according to the coding structure of sequence, judge the complete SeqDelayNum[i of sequential coding] frame can export the first frame afterwards.
For example: the low delay coding structure that coding structure is IPPPP.The frame number of output time delay is 1, and after 1 frame of having encoded, this sequence just can be exported the first frame.
DISPLAY ORDER I1 P2 P3 P4 P5 P6
Coded sequence I1 P2 P3 P4 P5 P6
Output order I1 P2 P3 P4 P5 P6
For example, the coding structure of the IBBBPBBBPBBBP of coding GOP=4.The frame number of output time delay is 3 frames, after 3 frames of having encoded, can export the first frame.
DISPLAY ORDER I1 B2 B3 B4 P5 B6 B7 B8 P9
Coded sequence I1 P5 B3 B2 B4 P9 B7 B6 B8
Output order ? ? I1 B2 B3 B4 P5 B6 B7
For example, the coding structure of the BBBIBBBPBBBP of coding GOP=4.The frame number of output time delay is 3 frames, after 3 frames of having encoded, can export the first frame.
DISPLAY ORDER B1 B2 B3 I4 B5 B6 B7 P8
Coded sequence I1 B2 B1 B3 P8 B6 B5 B7
Output order ? ? B1 B2 B3 I4 B5 B6
For example, the coding structure of the IBBBBBBBPBBBBBBBP of coding GOP=8.The frame number of output time delay is 4 frames, after 4 frames of having encoded, can export the first frame.
DISPLAY ORDER I1 B2 B3 B4 B5 B6 B7 B8 P9
Coded sequence I1 P9 B5 B3 B2 B4 B7 B6 B8
Output order ? ? ? I1 B2 B3 B4 B5 B6
Step 102: according to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding;
Particularly, this step comprises:
While starting, the image storage space of applying in step 101 is labeled as to " using " in i sequence of coding, and by the current sequence frame number SeqCodedNum[i that encoded] value be set to 0.
After one frame of complete i the sequence of every coding, SeqCodedNum[i] value add 1, and the decipher reestablishment image of current encoded frame is moved into i the sequence image buffer that reorders, and is labeled as " not output image ".
In each image output detections moment, for example encode after a frame, the sequence of note present encoding is n sequence, check the image storage space of each sequence of having encoded or having encoded, for the k(k<=n of each " using ") individual image storage space, if the number SeqCodedNum[k of coded frame] be more than or equal to the frame number SeqDelayNum[k that exports time delay], the minimum two field picture of output display order from the image storage space of k sequence, and be labeled as " output image "; Otherwise, do not export any image.
Exported the moment at each image, checked each sequence j(j<n of having encoded) image storage space, if this image storage space does not have " not output image ", this image storage space is labeled as to " not using ".
Step 103: the frame number SeqDelayNum[i that i sequence of coding is exported to time delay] write the code stream that sends to video decode end.
Particularly:
I sequence of coding exported to the frame number SeqDelayNum[i of time delay] method that writes the code stream that sends to video decode end comprises: in the code stream of sequence head, transmits.
By the frame number SeqDelayNum[i of i sequence output time delay of coding] method that writes the code stream that sends to video decode end also comprises: in the code stream of expanding at sequence head, transmits.
I sequence of coding exported to the frame number SeqDelayNum[i of time delay] method that writes the code stream that sends to video decode end also comprises: after sequence head, in the code stream of the image head of first frame, transmits.
The mode of transmission comprises direct transmission SeqDelayNum[i] value.
The mode of transmission can also comprise transmission SeqDelayNum[i] ?1 value.
Embodiment 2:
As shown in Figure 2, the coding/decoding method of a kind of video of the present invention, the method comprises the following steps:
Step 201: the i(i>=0 that obtains decoding from be received from the code stream of Video coding end) the frame number SeqDelayNum[i of output time delay of individual sequence] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of decoding] image storage space of frame;
Particularly:
A sequence arrives coded frame between next sequence head after comprising current sequence head.
After a sequence can also comprise current sequence head, to coded frame between sequence ending.
From be received from the code stream of Video coding end, obtain the frame number SeqDelayNum[i of the output time delay of i sequence of decoding] method comprise: in the code stream of sequence head, obtain.
From be received from the code stream of Video coding end, obtain the frame number SeqDelayNum[i of the output time delay of i sequence of decoding] method also comprise: in the code stream of sequence head expansion, obtain.
From be received from the code stream of Video coding end, obtain the frame number SeqDelayNum[i of the output time delay of i sequence of decoding] method also comprise: after sequence head, in the code stream of the image head of first frame, obtain.
The mode of obtaining comprises directly obtains SeqDelayNum[i] value.
The mode of obtaining can also comprise obtain SeqDelayNum[i] ?1 value, indirectly ask for SeqDelayNum[i] value.
Step 202: according to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding.
Particularly, this step comprises:
While starting, the image storage space of applying in step 201 is labeled as to " using " in i sequence of decoding, and by current sequence encoding and decoding frame number SeqDecodeNum[i] value be set to 0.
After one frame of complete current i the sequence of every decoding, DeSeqCodedNum[i] value add 1, and the decipher reestablishment image of present frame is moved into the image buffer that reorders, and is labeled as " not output image ".
In each image output detections moment, for example encode after a frame, the sequence of remembering current decoding is n sequence, check the image storage space of each sequence of having decoded or having decoded, for each " use " k(k<=n) individual image storage space, if the number DeSeqCodedNum[k of decoded frame] be more than or equal to the frame number SeqDelayNum[k that exports time delay], the minimum two field picture of output display order from the image storage space of k sequence, and be labeled as " output image "; Otherwise, do not export any image.
Exported the moment at each image, checked each sequence j(j<n of having encoded) image storage space, if this image storage space does not have " not output image ", this image storage space is labeled as to " not using ".
Embodiment 3:
As shown in Figure 3, a kind of video coding apparatus of the present invention, at least comprises coding processing unit (device 301) and code stream writing unit (device 302).
Device 301: described coding processing unit is for determining the i(i>=0 of coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame; According to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding.
Corresponding to the method in step 101 and 102 in embodiment 1.
Device 302: described code stream writing unit is for exporting i sequence of coding the frame number SeqDelayNum[i of time delay] write the code stream that sends to video decode end.
Corresponding to the method for step 103 in embodiment 1.
Embodiment 4:
As shown in Figure 4, a kind of video decoder of the present invention, at least comprises the frame number acquiring unit (installing 401) of the sequence output time delay in codec processing unit (device 402) and code stream reading unit.
Device 401: the frame number acquiring unit of described sequence output time delay is for from obtaining the i(i>=0 of decoding from the code stream that is received from Video coding end) the frame number SeqDelayNum[i of output time delay of individual sequence] (SeqDelayNum[i] >=1);
Corresponding to the method for step 201 in embodiment 2.
Device 402: described codec processing unit is that size of i sequence allocation of decoding is not less than SeqDelayNum[i] image storage space of frame; And according to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding.
Corresponding to the method for step 202 in embodiment 2.
Embodiment 5:
The invention provides a kind of method of video code flow and transmission of video code stream.Wherein, described video code flow, has transmitted i sequence and has exported the frame number SeqDelayNum[i of time delay].
The method that the frame number n that wherein current sequence is exported to time delay writes the code stream that sends to video decode end comprises: in the code stream of sequence head, the frame number SeqDelayNum[i of time delay is exported i sequence of coding in transmission] method that writes the code stream that sends to video decode end comprises: in the code stream at sequence head, transmits.
By the frame number SeqDelayNum[i of i sequence output time delay of coding] method that writes the code stream that sends to video decode end also comprises: in the code stream of expanding at sequence head, transmits.
I sequence of coding exported to the frame number SeqDelayNum[i of time delay] method that writes the code stream that sends to video decode end also comprises: after sequence head, in the code stream of the image head of first frame, transmits.
The mode of transmission comprises direct transmission SeqDelayNum[i] value.
The mode of transmission can also comprise transmission SeqDelayNum[i] ?1 value.
Embodiment 6:
The invention provides a kind of coding method of DISPLAY ORDER, concrete grammar is as follows:
Step 601: ask for the difference (DELTA_POI_DOI) of DISPLAY ORDER and the decoding order of every frame, the DISPLAY ORDER (POI) that this value equals each frame deducts the decoding order (DOI) of present frame.
Step 602: make MAX_DELTA_POI_DOI equal the maximum of the absolute value abs (DELTA_POI_DOI[N+1] ?DELTA_POI_DOI[N]) of the difference of the DELTA_POI_DOI of the adjacent encoding and decoding of 2 times.
Step 603: the DELTA_POI_DOI%MAX_DELTA_POI_DOI of every frame is write to code stream.
The coding structure of for example IPPP: MAX_DELTA_POI_DOI=256
Retrain abs (DELTA_POI_DOI[N+1] ?the DELTA_POI_DOI[N]) <128 of adjacent encoding and decoding frame
Every frame transmission DELTA_POI_DOI[N] value of %256, as shown in the table
POI 0 2 4 510 512 514
DOI 0 1 2 255 256 257
DELTA_POI_DOI 0 1 2 255 256 257
DELTA_POI_DOI[N]%256 0 1 2 255 0 1
Embodiment 7:
The invention provides a kind of code stream writing unit of video encoder, this unit is for transmitting the DISPLAY ORDER of every frame.Concrete transmission method is as follows: ask for the difference (DELTA_POI_DOI) of DISPLAY ORDER and the decoding order of every frame, the DISPLAY ORDER (POI) that this value equals each frame deducts the decoding order (DOI) of present frame; Make MAX_DELTA_POI_DOI equal the maximum of the absolute value abs (DELTA_POI_DOI[N+1] ?DELTA_POI_DOI[N]) of the difference of the DELTA_POI_DOI of the adjacent encoding and decoding of 2 times; The DELTA_POI_DOI%MAX_DELTA_POI_DOI of every frame is write to code stream.
Embodiment 8:
The invention provides a kind of code stream that transmits every frame DISPLAY ORDER, the generation method of this code stream is as follows: ask for the difference (DELTA_POI_DOI) of DISPLAY ORDER and the decoding order of every frame, the DISPLAY ORDER (POI) that this value equals each frame deducts the decoding order (DOI) of present frame; Make MAX_DELTA_POI_DOI equal the maximum of the absolute value abs (DELTA_POI_DOI[N+1] ?DELTA_POI_DOI[N]) of the difference of the DELTA_POI_DOI of the adjacent encoding and decoding of 2 times; The DELTA_POI_DOI%MAX_DELTA_POI_DOI of every frame is write to code stream.
Embodiment 9:
The coding/decoding method that the invention provides a kind of DISPLAY ORDER, comprises the steps:
Step 901: make MAX_DELTA_POI_DOI equal the maximum of the absolute value abs (DELTA_POI_DOI[N+1] ?DELTA_POI_DOI[N]) of the difference of the DISPLAY ORDER of adjacent encoding and decoding of 2 times and the difference of decoding order (DELTA_POI_DOI).
Step 902: from the code stream of every frame, obtain the value (DELTA_POI_DOI%MAX_DELTA_POI_DOI) of difference (DELTA_POI_DOI) the mould MAX_DELTA_POI_DOI of DISPLAY ORDER and the decoding order of present frame.
Step 903: by last encoding and decoding DELTA_POI_DOI[N] %MAX_DELTA_POI_DOI and DELTA_POI_DOI[N], by the DELTA_POI_DOI[N+1 of present frame] value of %MAX_DELTA_POI_DOI is converted to DELTA_POI_DOI[N+1].
The false code of this step is as follows:
IF((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI<DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)&&((DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI)>MAX_DELTA_POI_DOI/2))
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI‐MAX_DELTA_POI_DOI
ELSE?IF((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI)>DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)&&((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI‐DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)>=MAX_DELTA_POI_DOI/2))
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI+MAX_DELTA_POI_DOI
ELSE
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI
Step 904: the decoding order (DOI) that the DISPLAY ORDER (POI) of each frame equals present frame adds the difference (DELTA_POI_DOI) of DISPLAY ORDER and the decoding order of present frame.
Embodiment 10:
The invention provides a kind of decoding device of DISPLAY ORDER, this device is divided into code stream reading device and DISPLAY ORDER decoding device.
Code stream reading device: make MAX_DELTA_POI_DOI equal the maximum of the absolute value abs (DELTA_POI_DOI[N+1] ?DELTA_POI_DOI[N]) of the difference of the DISPLAY ORDER of adjacent encoding and decoding of 2 times and the difference of decoding order (DELTA_POI_DOI).From the code stream of every frame, obtain the value (DELTA_POI_DOI%MAX_DELTA_POI_DOI) of difference (DELTA_POI_DOI) the mould MAX_DELTA_POI_DOI of DISPLAY ORDER and the decoding order of present frame.
DISPLAY ORDER decoding device: by last encoding and decoding DELTA_POI_DOI[N] %MAX_DELTA_POI_DOI and DELTA_POI_DOI[N], by the DELTA_POI_DOI[N+1 of present frame] value of %MAX_DELTA_POI_DOI is converted to DELTA_POI_DOI[N+1].
The false code of this step is as follows:
IF((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI<DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)&&((DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI)>MAX_DELTA_POI_DOI/2))
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI‐MAX_DELTA_POI_DOI
ELSE?IF((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI)>DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)&&((DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI‐DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI)>=MAX_DELTA_POI_DOI/2))
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI+MAX_DELTA_POI_DOI
ELSE
DELTA_POI_DOI[N+1]=DELTA_POI_DOI[N]‐DELTA_POI_DOI[N]%MAX_DELTA_POI_DOI+DELTA_POI_DOI[N+1]%MAX_DELTA_POI_DOI
The decoding order (DOI) that the DISPLAY ORDER (POI) that calculates each frame equals present frame adds the difference (DELTA_POI_DOI) of DISPLAY ORDER and the decoding order of present frame.
Embodiment 11:
The invention provides a kind of coding method of video, the method comprises following step:
Step 1101: if after the DISPLAY ORDER of present image first I frame after the sequence head of current video sequence is pressed coded sequence, image in reference picture buffering area is done to following mark:
(1), before coded sequence first I frame after the sequence head of current video sequence is pressed coded sequence, be all labeled as " non-reference picture ".
(2) after coded sequence first I frame after the sequence head of current video sequence is pressed coded sequence, and the value of no_forward_reference_flag equals 0 frame and is all labeled as " non-reference picture ".
Step 1102: be labeled as " non-reference picture " image by not can by present frame and afterwards coding frame reference.
Embodiment 12:
The invention provides a kind of coding/decoding method of video, the method comprises following step:
Step 1201: if after the DISPLAY ORDER of present image first I frame after the sequence head of current video sequence is pressed decoding order, image in reference picture buffering area is done to following mark:
(1), before decoding order first I frame after the sequence head of current video sequence is pressed decoding order, be all labeled as " non-reference picture ".
(2) after decoding order first I frame after the sequence head of current video sequence is pressed decoding order, and the value of no_forward_reference_flag equals 0 frame and is all labeled as " non-reference picture ".
Step 1202: be labeled as " non-reference picture " image by not can by present frame and afterwards decoding frame reference.
Embodiment 13:
The invention provides a kind of code device of video, this device is used for managing reference picture buffering area, and this device can be carried out following step in cataloged procedure:
Step 1301: if after the DISPLAY ORDER of present image first I frame after the sequence head of current video sequence is pressed coded sequence, image in reference picture buffering area is done to following mark:
(1), before coded sequence first I frame after the sequence head of current video sequence is pressed coded sequence, be all labeled as " non-reference picture ";
(2) after coded sequence first I frame after the sequence head of current video sequence is pressed coded sequence, and the value of no_forward_reference_flag equals 0 frame and is all labeled as " non-reference picture ".
Step 1302: be labeled as " non-reference picture " image by not can by present frame and afterwards coding frame reference.
Embodiment 14:
The invention provides a kind of coding/decoding method of video, this device is used for managing reference picture buffering area, and this device can be carried out following step in decode procedure:
Step 1401: if after the DISPLAY ORDER of present image first I frame after the sequence head of current video sequence is pressed decoding order, image in reference picture buffering area is done to following mark:
(1), before decoding order first I frame after the sequence head of current video sequence is pressed decoding order, be all labeled as " non-reference picture ";
(2) after decoding order first I frame after the sequence head of current video sequence is pressed decoding order, and the value of no_forward_reference_flag equals 0 frame and is all labeled as " non-reference picture ".
Step 1402: be labeled as " non-reference picture " image by not can by present frame and afterwards decoding frame reference.

Claims (10)

1. a coding method for video, is characterized in that, comprises the following steps:
(1) determine the i(i>=0 of coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame;
(2) according to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding; Concrete management method is: in the image output detections moment, if i the sequence number SeqCodedNum[i of coded frame of coding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of coding; Otherwise, do not export any image;
(3) i sequence of coding exported to the frame number SeqDelayNum[i of time delay] write the code stream that sends to video decode end.
2. the coding method of video according to claim 1, it is characterized in that the frame number SeqDelayNum[i of the output of i sequence described in described step 3 time delay] in the code stream of sequence head, write or write in the code stream of sequence head expansion or in the code stream of the image head of first frame, write after sequence head.
3. a coding/decoding method for video, is characterized in that, comprises the following steps:
(1) from be received from the code stream of Video coding end, obtain the i(i>=0 of decoding) the frame number SeqDelayNum[i of the output time delay of individual sequence] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of decoding] image storage space of frame;
(2) according to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding; Concrete management method is: in the image output detections moment, if the number SeqDecodeNum[i of i sequence nucleotide sequence decoded frame of decoding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of decoding; Otherwise, do not export any image.
4. the coding/decoding method of video according to claim 3, it is characterized in that, in described step 1, the described i(i>=0 that obtains decoding) the frame number SeqDelayNum[i of output time delay of individual sequence], the method for obtaining comprises: in the code stream of sequence head, obtain or obtain in the code stream of sequence head expansion or in the code stream of the image head of first frame, obtain after sequence head.
5. a video coding apparatus, it is characterized in that, comprise coding processing unit and code stream writing unit, described coding processing unit is for determining the i(i>=0 of coding) the frame number SeqDelayNum[i of individual sequence output time delay] (SeqDelayNum[i] >=1), and be not less than SeqDelayNum[i for size of i sequence allocation of coding] image storage space of frame; And according to i the sequence number SeqCodedNum[i of coded frame of coding] the frame number SeqDelayNum[i of (SeqCodedNum[i] >=0) and output time delay] manage the output of the image storage space image of i the sequence of encoding; Concrete management method is: in the image output detections moment, if i the sequence number SeqCodedNum[i of coded frame of coding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of coding; Otherwise, do not export any image.
Described code stream writing unit is for exporting i sequence of coding the frame number SeqDelayNum[i of time delay] write the code stream that sends to video decode end.
6. video coding apparatus according to claim 5, it is characterized in that, the frame number SeqDelayNum[i of the described output of i sequence by coding time delay] write the code stream that sends to video decode end, the method writing comprises: in the code stream of sequence head, write or the code stream expanded at sequence head in write or in the code stream of the image head of first frame, write after sequence head.
7. a video decoder, it is characterized in that, comprise codec processing unit and be arranged at the frame number acquiring unit of sequence in code stream reading unit output time delay, the frame number acquiring unit of described sequence output time delay is for obtaining the i(i>=0 of decoding from being received from the code stream of Video coding end) the frame number SeqDelayNum[i of the output time delay of individual sequence] (SeqDelayNum[i] >=1);
Described codec processing unit is that size of i sequence allocation of decoding is not less than SeqDelayNum[i] image storage space of frame; According to the number SeqDecodeNum[i of i sequence decoded frame of decoding] the frame number SeqDelayNum[i of (SeqDecodeNum[i] >=0) and output time delay] manage the output of i the sequence image memory space image of decoding.Concrete management method is: in the image output detections moment, if the number SeqDecodeNum[i of i sequence nucleotide sequence decoded frame of decoding] be more than or equal to the frame number SeqDelayNum[i that export time delay], sequentially two field picture of minimum of output display from the image storage space of i sequence of decoding; Otherwise, do not export any image.
8. video decoder according to claim 7, it is characterized in that, from be received from the code stream of Video coding end, obtain the frame number SeqDelayNum[i of the output time delay of i sequence of decoding], the method for obtaining comprises: in the code stream of sequence head, obtain or obtain in the code stream of sequence head expansion or in the code stream of the image head of first frame, obtain after sequence head.
9. a video code flow, it is characterized in that, in this code stream, transmit the frame number SeqDelayNum[i of i sequence output time delay], wherein SeqDelayNum[i] in the code stream of sequence head, write or write in the code stream of sequence head expansion or in the code stream of the image head of first frame, write after sequence head.
10. video code flow according to claim 9, it is characterized in that, also comprise: the i(i>=0 that can obtain decoding from this code stream) the frame number SeqDelayNum[i of the output time delay of individual sequence], wherein SeqDelayNum[i] and the method obtained comprises: in the code stream of sequence head, obtains or obtains in the code stream of sequence head expansion or in the code stream of the image head of first frame, obtain after sequence head.
CN201410141736.0A 2014-04-09 2014-04-09 Video coding-decoding method, device and the video code flow of generation Active CN103945221B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410141736.0A CN103945221B (en) 2014-04-09 2014-04-09 Video coding-decoding method, device and the video code flow of generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410141736.0A CN103945221B (en) 2014-04-09 2014-04-09 Video coding-decoding method, device and the video code flow of generation

Publications (2)

Publication Number Publication Date
CN103945221A true CN103945221A (en) 2014-07-23
CN103945221B CN103945221B (en) 2018-08-07

Family

ID=51192667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410141736.0A Active CN103945221B (en) 2014-04-09 2014-04-09 Video coding-decoding method, device and the video code flow of generation

Country Status (1)

Country Link
CN (1) CN103945221B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016015667A1 (en) * 2014-08-01 2016-02-04 广州金山网络科技有限公司 Video stream decoding method and device
CN106713927A (en) * 2016-11-14 2017-05-24 珠海格力电器股份有限公司 Image output device and method, and decoder
CN111836104A (en) * 2020-07-09 2020-10-27 海信视像科技股份有限公司 Display apparatus and display method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6043851A (en) * 1997-01-13 2000-03-28 Nec Corporation Image and sound synchronizing reproduction apparatus and method of the same
US20070236599A1 (en) * 2006-03-31 2007-10-11 Sharp Laboratories Of America, Inc. Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels
JP2009017014A (en) * 2007-07-02 2009-01-22 Sony Corp Device, method and program for decoding video and device for receiving broadcasting signal
US20100054343A1 (en) * 2008-08-29 2010-03-04 Canon Kabushiki Kaisha Video transmission apparatus and control method for video transmission apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6043851A (en) * 1997-01-13 2000-03-28 Nec Corporation Image and sound synchronizing reproduction apparatus and method of the same
US20070236599A1 (en) * 2006-03-31 2007-10-11 Sharp Laboratories Of America, Inc. Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels
JP2009017014A (en) * 2007-07-02 2009-01-22 Sony Corp Device, method and program for decoding video and device for receiving broadcasting signal
US20100054343A1 (en) * 2008-08-29 2010-03-04 Canon Kabushiki Kaisha Video transmission apparatus and control method for video transmission apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016015667A1 (en) * 2014-08-01 2016-02-04 广州金山网络科技有限公司 Video stream decoding method and device
CN106713927A (en) * 2016-11-14 2017-05-24 珠海格力电器股份有限公司 Image output device and method, and decoder
CN106713927B (en) * 2016-11-14 2019-08-13 珠海格力电器股份有限公司 A kind of image output device, method and decoder
CN111836104A (en) * 2020-07-09 2020-10-27 海信视像科技股份有限公司 Display apparatus and display method
CN111836104B (en) * 2020-07-09 2022-01-28 海信视像科技股份有限公司 Display apparatus and display method

Also Published As

Publication number Publication date
CN103945221B (en) 2018-08-07

Similar Documents

Publication Publication Date Title
JP6233984B2 (en) Virtual reference decoder for multiview video coding
CN104685889B (en) The decoding of video sequence image and coding
CN100492916C (en) Variable-length code using multiple mapping table and decoding method and apparatus
CN101341757B (en) Local macroblock information buffer
CN102447906B (en) Low-latency video decoding
RU2016125119A (en) SIGNALING IMPORTANT IMAGES
CN101682762B (en) Method for realizing random access in compressed code stream using multi-reference images and decoder
CN105721880A (en) Reducing Latency In Video Encoding And Decoding
MY153200A (en) Picture information coding device and coding method
CN103918268A (en) Signaling of state information for a decoded picture buffer and reference picture lists
CN105027570A (en) Syntax and semantics for buffering information to simplify video splicing
CN104969557A (en) Explicit way for signaling a collocated reference picture for video coding
CN1913640A (en) Multi-mode multi-viewpoint video signal code compression method
KR20180002901A (en) Apparatus, method, and computer readable medium for encoding
CN105847825A (en) Encoding, index storage and access methods for video encoding code stream and corresponding apparatus
CN100539670C (en) The editor of the A/V sequence of having encoded
CN103945221A (en) Video encoding and decoding method and device and generated video code stream
CN105874800B (en) Syntax resolver and syntax analytic method
CN105120276A (en) Adaptive Motion JPEG coding method and system
CN103780908A (en) Efficient H264 decoding method
CN104935923B (en) Coding method and system, signal decoding method and system
CN102638680B (en) Hardware-based CABAC (Context-Based Adaptive Binary Arithmetic Coding) coding method and system
CN105657448B (en) A kind of retransmission method, the apparatus and system of encoded video stream
CN103024374A (en) Transmission of video data
CN101986713B (en) View synthesis-based multi-viewpoint error-resilient encoding frame

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant