US20130128991A1 - Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method - Google Patents

Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method Download PDF

Info

Publication number
US20130128991A1
US20130128991A1 US13/744,560 US201313744560A US2013128991A1 US 20130128991 A1 US20130128991 A1 US 20130128991A1 US 201313744560 A US201313744560 A US 201313744560A US 2013128991 A1 US2013128991 A1 US 2013128991A1
Authority
US
United States
Prior art keywords
decoding
num
moving image
picture
maxframenum
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.)
Abandoned
Application number
US13/744,560
Inventor
Akira Nakagawa
Shunsuke Kobayashi
Bahavani Lalitha SUSARLA
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to US13/744,560 priority Critical patent/US20130128991A1/en
Publication of US20130128991A1 publication Critical patent/US20130128991A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • H04N19/00533
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to a moving image coding apparatus, a moving image decoding apparatus, a moving image coding method and a moving image decoding method in accordance withH.264/MPEG4-AVCisa moving image coding system standardized by ITU-T (International Telecommunication Union-Telecommunication Standardization Sector) and ISO (International Organization for Standardization).
  • ITU-T International Telecommunication Union-Telecommunication Standardization Sector
  • ISO International Organization for Standardization
  • Patent Document 1 describes a way to make it possible to carryout random playback easily, by performing, when recovering a bit stream, initialization of a decoder upon the first detection of I picture following SPS information.
  • Patent Document 2 describes, in a moving image coded data editing apparatus that clips out coded data at an arbitrary editing point, a way to make it possible to clip out coded data from an arbitrary editing point by changing header information of coded data after the editing point to contents in which the editing point is specified as the starting point.
  • H.264/MPEG4-AVC Recommendation specifies Picture Order Counts (POC) that represent the order in which the pictures are to be displayed at the decoder side.
  • POC Picture Order Counts
  • Specified encoding methods for the POC include POC type 1, POC type 2 and POC type 3.
  • the decoding process for POC coded as POC type 1 is specified as follows in 8.2.1.2 of H.264/MPEG4-AVC Recommendation:
  • the frame number offset FrameNumOffset is initialized to “0”.
  • the value obtained by adding the maximum frame number MaxFrameNum to prevFrameNumOffset is set as Frame Num Offset.
  • variable absFrameNum is derived as follows:
  • the above expression (2) is for deriving absFrameNum that is the number of pictures on the basis of an IDR (Instantaneous Decoding Refresh) picture, which is a process as follows.
  • picOrderCntCycleCnt and frameNumInPicOrderCnt Cycle are derived as follows:
  • frameNumInPicOrderCntCycle (absFrameNum-1)% num_ref_fr ames_in_pic_order_cnt_cycle ⁇ Expression (3)
  • the above expression (3) represents a process for deriving picOrderCntCycleCnt and frameNumInPicOrderCntCycle.
  • the above expression (4) represents a process for deriving expectedDeltaPerPicOrderCntCycle. It is a process for deriving offset_for_ref_frame[i ] that is determined by the value of the variable i.
  • variable expectedPicOrderCnt is derived as follows:
  • the absolute frame number absFrameNum is larger than 0 in the process in the expression (5) above, the value obtained by multiplying picOrderCntCycleCnt by expectedDeltaPerPicOrderCnt Cycle is obtained as expectedPicOrderCnt. Further, the value obtained by adding offset_for_ref_frame [i ] indicating the difference for the POC of the picture to expectedPicOrderCnt is obtained as expectedPicOrderCn.
  • the flag nal_ref_idc indicating whether or not it is the reference picture is 0, the value obtained by adding offset_for non_ref_pic indicating the difference for the POC of a non-reference picture to expectedPicOrderCnt is obtained as expectedPicOrderCn.
  • TopFieldOrderCnt expectedPicOrderCnt+delta_pic_order_ cnt[ 0 ]
  • BottomFieldOrderCnt TopFieldOrderCnt+offset_for_top_t o_bottom_field+delta_pic_order_cnt[ 1 ] ⁇ else if(!bottom_field_flag )
  • TopFieldOrderCnt expectedPicOrderCnt+delta_pic_order_ cnt[ 0 ] else
  • BottomFieldOrderCnt expectedPicOrderCnt+offset_for_to p_to_bottom_field+delta_pic_order_cnt[0]
  • nal_unit_type indicating the type of NAL unit; the frame number frame_num; the maximum frame number MaxFrameNum; num_ref_frames_in_pic_order_cnt_cycle and nal_ref_idc used for deriving a POC; offset_for_ref_frame[i ], offset_for_non_ref_pic, and field_pic_flag used for deriving a type 1 POC; delta_pic_order_cnt [0 ],delta_pic_order_cnt [1], and bottom_field_flag used for calculating the POC.
  • Non Patent Document 1 Ye-Kui Wang and another, JVT-F050 POC Recovery in Random Access Point SEI Message, Tampere University of Technology and Nokia Corporation.
  • Non Patent Document 1 proposes, in order to make it possible to perform the decoding with a random access using the exactly same POC value as in the case of the decoding for a POC type 1 started from an IDR picture, coding and sending a value obtained by dividing the frame number offset FrameNumOffset by the maximum frame number MaxFrameNum.
  • a moving image coding apparatus disclosed herein is a moving image coding apparatus in accordance with H.264/AVC, including a setting unit setting the value of num_ref_frames_in_pic_order_cnt_cycle field in the sequence parameter set specified in H.264/AVC to a divisor of MaxFrameNum, and a coding unit coding image data.
  • a moving image decoding apparatus disclosed herein is a moving image decoding apparatus in accordance with H.264/AVC, includingan initialization unit initializing, when the decoding is started from a picture to which a recovery point SEI is attached, FrameNumOffset specified in H.264/AVC to an integral multiple of MaxFrameNum, and a decoding unit decoding a coded stream.
  • FIG. 1 is a diagram illustrating the main part of a coding apparatus.
  • FIG. 2 is a flowchart of a coding process according to an embodiment.
  • FIG. 3 is a diagram illustrating the main part of a decoding apparatus.
  • FIG. 4 is a flowchart of a decoding process according to an embodiment.
  • FIG. 5 is a diagram illustrating the fields of a sequence parameter set.
  • FIG. 6 is a diagram illustrating the fields of a slice.
  • FIG. 7 is a diagram illustrating the relationship between a variable i and offset_for_ref_frame[i].
  • FIG. 8 is a diagram illustrating the values of respective fields and POC differences in the case where the decoding is started from an IDR and the case where the decoding is started from a recovery point SEI.
  • FIG. 9 is a diagram illustrating the relationship between a variable i and offset_for_ref_frame[i].
  • FIG. 10 is a diagram illustrating the relationship between the value of k and POC differences.
  • H.264/MPEG4-AVC specifies the following two types as the pictures from which decoding can be started.
  • IDR (Instantaneous Decoding Refresh) picture an I picture, which is the first picture of a sequence.
  • Recovery Point SEI is attached to a picture in the middle of a sequence, indicating that even if the picture is in the middle of the sequence, the extraction can be started from the picture.
  • Chapter 8.2.1.2 of H.264/MPEG-AVC specifies, for the decoding of POC type 1, the process in the case where the decoding is started from an IDR picture.
  • the POC value may not correspond to the picture display order, even if the POC type 1 is decoded according to the specified process.
  • MaxFrameNum 16
  • num_ref_frames_in_pic_order_cnt_cycle 15
  • recovery point SEI is inserted into the 30th frame from an IDR picture to show that the extraction can be started from the picture.
  • delta_pic_order_cnt[0] and delta_pic_order_cnt[1] are assumed to be “0” at any time. It is also assumed that any non-reference picture does not exist between the IDR picture and the picture with the recovery point SEI.
  • the value of the frame number frame_num field included in the slice header of the 30th picture is 30 mod 16, e.g. , “14”.
  • the absolute frame number absFrameNum is “30”, according to the expression (2). Then, substituting the above values into picOrderCntCycleCnt and frameNumInPicOrderCntCycle in the expression (3), the expressions
  • the POC for the top field TopFieldOrderCnt is obtained as follows, using the expressions (1) through (6).
  • the frame number offset FrameNumOffset calculated in the expression (1) represents the number of carryover occurred to the frame number frame_num field (how many times it has been reset to 0). Assuming this number as k, absFrameNum in the expression (2) can be rewritten as follows.
  • FIG. 9 is a diagram illustrating the relationship between the value of k and the POC difference.
  • the value is not determined uniquely.
  • the correct value of the difference in POC between the respective pictures cannot be obtained, unless the value of k at the time of the extraction start is obtained correctly.
  • H.264 When decoding image data that have been coded in accordance with H.264/MPEG4-AVG (hereinafter, referred to as H.264), the absolute value of a Picture Order Count (POC) is not required, and the decoding can be performed correctly, as long as the relative value of the POC of each picture is correct.
  • POC Picture Order Count
  • the value of the field num_ref_frames_in_pic_order_cnt_cycle specified for the sequence parameter set (SPS) in accordance with H.264 is set to a divisor of MaxFrameNum at the coding apparatus side.
  • decoding is performed as follows, when the decoding is started from an IDR picture, or an extraction-start picture, such as the one to which a recovery point SEI and the like is attached, as specified in H.264.
  • the absolute frame number is initialized to a value obtained by adding an integral multiple of the maximum frame number MaxFrameNum to the frame number frame_num.
  • the relative value of the POC between pictures can be adjusted to the same value as the relative value of the POC between pictures in the case where the decoding is started from an IDR picture.
  • the method for realizing it is specifically described below.
  • FrameNumOffset is initialized to 0 with the decoding of an IDR picture, and then the value of the maximum frame number MaxFrameNum is added, every time when the condition frame_num ⁇ prev_frame_num (the previous value of frame_num) is satisfied.
  • the frame number frame_num is the relative value of the frame number counted from the IDR picture and satisfies the condition 0 ⁇ frame_num ⁇ MaxFrameNum (the maximum value of frame_num) .
  • the frame number frame_num reaches the maximum frame number MaxFrameNum, the count starts again from 0.
  • the absolute frame number absFrameNum can be expressed as follows, referring to the expression (2).
  • the frame number offset FrameNumOffset is obtained by multiplying the maximum frame number MaxFrameNum by a constant from the definition of the express (1). Assuming the constant as K, the following expression can be obtained.
  • the NAL unit type is 5 or not is determined. If the NAL unit type is not 5, whether the decoding is started from the picture with the recovery point SEI or not is determined. If the decoding is started from the picture with the recovery point SEI, the maximum frame number MaxFrameNum is set as the frame number offset FrameNumOffset.
  • the NAL unit type is not 5
  • whether the previous frame number prevFrameNum is larger than the current frame number frame_num or not is determined. If the previous frame number prevFrameNum is larger than the current frame number frame_num, it is determined that the frame number has exceeded the maximum frame number, and the value obtained by adding the maximum frame number MaxFrameNum to prevFrameNumOffset is set as FrameNumOffset.
  • prevFrameNumOffset is set as FrameNumOffset.
  • FrameNumOffset is initialized to the value that is an integral multiple of MaxFrameNum. Then, since the value of num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNumOffset at the coding apparatus side, the value of frameNumInPicOrderCntCycle in the expression (9) can be obtained uniquely. As a result, the relative value of the POC with the decoding stared from the picture with the recovery point SEI becomes the same value as with the decoding started from an IDR picture. Thus, the pictures can be decoded in a correct order.
  • FIG. 1 is a diagram illustrating the main part of a moving image coding apparatus (hereinafter, referred to as a coding apparatus) 11 .
  • a subtractor 12 outputs data obtained by subtracting, from image data, a predicted image generated by a predicted image generation unit 13 , to an orthogonal transform unit 14 .
  • the orthogonal transform unit 14 performs orthogonal transform for the data output from the subtractor 12 .
  • a quantization unit 15 quantizes the data after the orthogonal transform.
  • the entropy coding unit 16 has a parameter setting unit 17 .
  • the entropy coding unit 16 performs coding of image data, and the parameter setting unit 17 performs processes such as setting of the value of num_ref_frames_in_pic_order_cnt_cycle in a sequence parameter set.
  • An inverse quantization unit 18 and an inverse orthogonal transform unit 19 perform the inverse processes of the quantization and orthogonal transform.
  • the image data after the inverse transform by the inverse orthogonal transform unit 19 is added with the predicted image in an adder 20 and stored in a reference image storage unit 21 .
  • a moving vector determination unit 22 calculates a moving vector on the basis of the current image and a reference image output from the reference image storage unit 21 , and outputs the calculated moving vector to the predicted image generation unit 13 and the entropy coding unit 16 .
  • the predicted image generation unit 13 generates a predicted image on the basis of the moving vector and the reference picture, and outputs the predicted image to the adder 20 and the subtractor 12 .
  • FIG. 2 is a flowchart of the coding process performed by the coding apparatus 11 .
  • the entropy coding unit 16 determines whether the picture is to be coded with POC type 1 or not ( FIG. 2 , S 11 ).
  • step S 12 When the picture is to be coded with POC type 1 (S 11 , YES), the process proceeds to step S 12 , where num_ref_frames_in_pic_order_cnt_cycle in the sequence parameter set SPS is set to a divisor of the maximum frame number MaxFrameNum.
  • step S 12 or when the determination at the step S 11 is NO, the process proceeds to step S 13 , where the coding process for image data is performed.
  • the coding apparatus 11 sets num_ref_frames_in_pic_order_cnt_cycle in the sequence parameter set SPS to a divisor of the maximum frame number MaxFrameNum, the relative value of the POC can be obtained uniquely at the decoding apparatus 31 side.
  • the coding apparatus since the coding apparatus only sets the value of num_ref_frames_in_pic_order_cnt_cycle to a divisor of MaxFrameNum, the data amount of coded data does not increase.
  • the moving image decoding apparatus can perform the decoding in a correct order using a recovery point SEI.
  • FIG. 3 is a diagram illustrating the main part of a moving image decoding apparatus (hereinafter, referred to as a decoding apparatus) 31 .
  • An entropy decoding unit 32 has a function to decode an image stream for which variable length coding has been performed, and an initialization unit 33 .
  • the initialization unit 33 initializes the value of the frame number offset to an integral multiple of the maximum frame number.
  • An inverse quantization unit 34 performs an inverse quantization process for image data that have been decoded in the entropy decoding unit 32
  • an inverse orthogonal transform unit 35 performs an inverse orthogonal transform process for the data after the inverse quantization.
  • An adder 36 generates a decoded image by adding the image data after the inverse orthogonal transform and a predicted image output from the predicted image generation unit 37 .
  • a reference image storage unit 38 stores the decoded image.
  • the predicted image generation unit 37 generates a predicted image on the basis of a reference picture stored in the reference image storage unit 38 and a moving vector calculated in the entropy decoding unit 32 .
  • FIG. 4 is flowchart of the decoding process performed by the decoding apparatus 31 .
  • a search for an IDR picture or a recovery point SEI is performed (step S 21 ).
  • step S 22 Whether the POC type is “1” or not is determined (step S 22 ) .
  • the process proceeds to step S 23 , where whether the POC type is “0” or not is determined. If the POC type is “0” (S 23 , YES) , the process proceeds to step S 24 , where the initialization process for the POC type 0 is performed.
  • the process proceeds to step S 25 , where the initialization process for the POC type 2 is performed.
  • step S 22 When the POC type is “1” according to the determination is the step S 22 , the process proceeds to step S 26 , where whether a recovery point SEI has been detected or not is determined. When a recovery point SEI has been detected (S 26 , YES), the process proceeds to step S 27 , where the maximum frame number MaxFrameNum (or a value that is an integral multiple of the maximum frame number) is set as the initial value of the frame number offset FrameNumOffset.
  • the maximum frame number MaxFrameNum or a value that is an integral multiple of the maximum frame number
  • step S 26 When any recovery point SEI has not been detected according to the determination in the step S 26 (S 26 , NO), the process proceeds to step S 28 , where “0” is set as the initial value of the frame number offset FrameNumOffset.
  • step S 24 After the step S 24 , S 25 , S 27 or S 28 , the process proceeds to step S 29 , where the decoding process for the picture is started.
  • MaxFrameNum (or its integral multiple) is set as the initial value of the frame number offset FrameNumOffset. Then, since num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNum, the residue of the expression (9) described above becomes “0”. Therefore, the value of the expression (9) can be obtained uniquely.
  • a correct relative value for the POC type 1 can be obtained when performing the decoding using a recovery point SEI, making it possible to decode a coded stream in a correct display order.
  • FIG. 5 is a diagram illustrating the sequence parameter set in accordance with H. 264.
  • the sequence parameter set has a field 51 in which num_ref_frames_in_pic_order_cnt_cycle is stored, a field 52 indicating the range of the value of the variable i, and a field 53 in which the reference frame offset offset_for_ref_frame [?i?] is stored.
  • a divisor of MaxFrameNum is set as num_ref_frames_in_pic_order_cnt_cycle in the field 51 .
  • FIG. 6 is a diagram illustrating the fields of a slice.
  • the frame number frame_num is stored in a field 61 of the slice.
  • FIG. 7 is a diagram illustrating the relationship between the variable i and offset_for_ref_frame[i].
  • FIG. 8 is a diagram illustrating the parameter values and POC differences with the decoding started from an IDR and with the decoding started from a recovery point SEI.
  • MaxFrameNum is 16.
  • num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNum.
  • num_ref_frames_in_pic_order_cnt_cycle is set to, for example, 8.
  • the decoding apparatus 31 when the NAL unit type is 5, that is, with the decoding of an IDR picture, 0 is set as the initial value of the frame number offset FrameNumOffset, by the process in the expression (10).
  • the frame number offset FrameNumoffset of the 30th picture is 32, and its absolute frame number absFrameNum is 46.
  • the value of TopFieldOrderCnt of the 30th picture is 94.
  • FrameNumOffset of the 31st picture is 32, and its absFrameNum is 47.
  • TopFieldOrderCnt of the 31st picture is 96.
  • the POC difference with respect to the previous picture is 2.
  • the frame number offset FrameNumOffset is initialized to an integral multiple of the maximum frame number MaxFrameNum, according to the expression (10) .
  • MaxFrameNum 16
  • FrameNumOffset is, for example, 16.
  • the absolute frame number MaxFrameNum is FrameNumOffset+frame_num according to expression (7) .
  • TopFieldOrderCnt of the 30th picture is 62.
  • FrameNumOffset of the 31st picture is 16, and its absFrameNum is 31.
  • TopFieldOrderCnt of the 31nd picture is 64.
  • the POC difference with respect to the previous picture is 2.
  • the POC differences of the 31st picture and beyond are, as illustrated in FIG. 8 , “ 2 , 1 , 2 , 2 , 1 . . . ”.
  • the POC differences with respect to the previous picture when the decoding is started from a recovery point SEI are, as illustrated in FIG. 8 , “ 2 , 1 , 2 , 2 , 1 . . . ”.
  • the coding apparatus 11 and the decoding apparatus 31 using the coding apparatus 11 and the decoding apparatus 31 according to the embodiment, while the values of the POC are different between the decoding started from an IDR and the decoding started from a recovery point SEI, the same POC differences are obtained for both cases.
  • the absolute value of the POC does not need to be correct, and as long as correct relative POC values are obtained, the pictures can be decoded in a correct display order.
  • pictures can be decoded in a correct display order, with a random access using a recovery point SEI.
  • num_ref_frames_in_pic_order_cnt cycle is used in the decoding process for picture order count as specified in subclause 8.2.1.
  • num_ref_frames_in_pic_order_cnt_cycle shall be any divisor of MaxFrameNum and in the range of 0 to 255, inclusive.
  • Equation 8-8 can be written as the following
  • frameNumInPicOrderCntCycle (FrameNumOffset+frame_num- 1) % num_ref_frames_in_pic_order_cnt_cycle
  • absNumFrame in Equation 8-7 and frameNumInPicOrderCntCycle in Equation 8-8 for the first decoding picture are (MaxFrameNum+frame_num) and ((frame_num-1) % num_ref_frames_in_pic_order_cnt_cycle), respectively.
  • MaxFrameNum 2 ⁇ log2_max_frame_num_minus4 ⁇
  • num_ref_frames_in_pic_order_cnt_cycle should also be in the form of 2 ⁇ N where N is non-negative integer.
  • image data can be coded, without increasing the data amount of coded data, such that the decoding apparatus can perform the decoding in a correct display order from a recovery point SEI.
  • the decoding can be performed in a correct display order, when the decoding is started from a picture to which a recovery point SEI is attached.

Landscapes

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

Abstract

In a decoding apparatus in accordance with H.264, when the POC type is determined as “1” and a recovery point SEI is detected, the maximum frame number MaxFrameNum (or its integral multiple) is set as the initial value of the frame number offset (FrameNumOffset).

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a divisional application of U.S. Ser. No. 12/345,004, filed Dec. 29, 2008, which is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2008-099821, filed onApr. 7, 2008, and Japanese Patent Application No. 2008-108207, filed on Apr. 17, 2008, the entire contents of which are incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to a moving image coding apparatus, a moving image decoding apparatus, a moving image coding method and a moving image decoding method in accordance withH.264/MPEG4-AVCisa moving image coding system standardized by ITU-T (International Telecommunication Union-Telecommunication Standardization Sector) and ISO (International Organization for Standardization).
  • 2. Description of the Related Art
  • Patent Document 1 describes a way to make it possible to carryout random playback easily, by performing, when recovering a bit stream, initialization of a decoder upon the first detection of I picture following SPS information.
  • Patent Document 2 describes, in a moving image coded data editing apparatus that clips out coded data at an arbitrary editing point, a way to make it possible to clip out coded data from an arbitrary editing point by changing header information of coded data after the editing point to contents in which the editing point is specified as the starting point.
  • H.264/MPEG4-AVC Recommendation specifies Picture Order Counts (POC) that represent the order in which the pictures are to be displayed at the decoder side. Specified encoding methods for the POC include POC type 1, POC type 2 and POC type 3. The decoding process for POC coded as POC type 1 is specified as follows in 8.2.1.2 of H.264/MPEG4-AVC Recommendation:
  • 1. Expression (8-6) in H.264/MPEG4-AVC
  • The variable Frame Num Offset is derived as follows: if(nal_unit_type==5)
  • FrameNumOffset=0 else if(prevFrameNum>frame_num)

  • FrameNumOffset=prevFrameNumOffset+MaxFrameNum else

  • FrameNumOffset=prevFrameNumOffset   Expression (1)
  • The expression (1) above is for deriving Frame Num Offset, which is a process as follows.
  • When the NAL unit type is “5”, the frame number offset FrameNumOffset is initialized to “0”. When the NAL unit type is not “5” and the previous frame number is larger than the current frame number, the value obtained by adding the maximum frame number MaxFrameNum to prevFrameNumOffset is set as Frame Num Offset.
  • 2. Expression (8-7) in H.264/MPEG4-AVC
  • The variable absFrameNum is derived as follows:

  • if(num_ref_frames_in_pic_order_cnt_cycle!=0)

  • absFrameNum=FrameNumOffset+frame_num
  • else

  • absFrameNum=0

  • if(nal_ref_idc==0 && absFrameNum>0)

  • absFrameNum=absFrameNum-1   Expression (2)
  • The above expression (2) is for deriving absFrameNum that is the number of pictures on the basis of an IDR (Instantaneous Decoding Refresh) picture, which is a process as follows.
  • When num_ref_frames_in_pic_order_cnt_cycle is not “0”, the value obtained by adding the frame number frame_num to FrameNumOffset is set as absFrameNum. When num_ref_frames_in_pic_order_cnt_cycle is “0”, absFrameNum is set to “0”.
  • When the flag nal_ref_idc indicating whether or not it is the reference picture or not is “0” and absFrameNum is larger than “0”, the value obtained by subtracting “1” from absFrameNum is set as absFrameNum.
  • 3. Expression (8-8) in H.264/MPEG4-AVC
  • When absFrameNum>0, picOrderCntCycleCnt and frameNumInPicOrderCnt Cycle are derived as follows:

  • if(absFrameNum>0){picOrderCntCycleCnt=(absFrameNum-1)/num_ref_frames_in _pic_ordercnt_cycle

  • frameNumInPicOrderCntCycle=(absFrameNum-1)% num_ref_fr ames_in_pic_order_cnt_cycle }  Expression (3)
  • The above expression (3) represents a process for deriving picOrderCntCycleCnt and frameNumInPicOrderCntCycle.
  • 4. Expression (8-9) in H.264/MPEG4-AVC
  • The variable expectedDeltaPerPicOrderCntCycle is derived as follows:
    expectedDeltaPerPicOrderCntCycle=0

  • for(i=0; i<num_ref_frames_in_pic_order_cnt_cycle; i++)

  • expectedDeltaPerPicOrderCntCycle+=offset_for_ref_fram e[i ]  Expression (4)
  • The above expression (4) represents a process for deriving expectedDeltaPerPicOrderCntCycle. It is a process for deriving offset_for_ref_frame[i ] that is determined by the value of the variable i.
  • 5 . Expression (8-10) in H.264/MPEG4-AVC
  • The variable expectedPicOrderCnt is derived as follows:
  • Expression (5)
    if( absFrameNum>0 ) {
     expectedPicOrderCnt=picOrderCntCycleCnt*expectedDelta
    PerPicOrderCnt Cycle
     for( i=0; i<=frameNumInPicOrderCntCycle; i++)
     expectedPicOrderCnt=expectedPicOrderCnt+offset_for_re
    f_frame[ i ]
    } else
     expectedPicOrderCnt=0
    if( nal_ref_idc==0)
     expectedPicOrderCnt=expectedPicOrderCnt+offset_for_no
    n_ref_pic
  • When the absolute frame number absFrameNum is larger than 0 in the process in the expression (5) above, the value obtained by multiplying picOrderCntCycleCnt by expectedDeltaPerPicOrderCnt Cycle is obtained as expectedPicOrderCnt. Further, the value obtained by adding offset_for_ref_frame [i ] indicating the difference for the POC of the picture to expectedPicOrderCnt is obtained as expectedPicOrderCn.
  • In addition, if the flag nal_ref_idc indicating whether or not it is the reference picture is 0, the value obtained by adding offset_fornon_ref_pic indicating the difference for the POC of a non-reference picture to expectedPicOrderCnt is obtained as expectedPicOrderCn.
  • 6 . Expression (8-11) in H.264/MPEG4-AVC
  • The variables TopFieldOrderCnt or BottomFieldOrderCnt are derived as follows:
  • Expression (6)
    if(!field_pic_flag ) {
     TopFieldOrderCnt=expectedPicOrderCnt+delta_pic_order_
    cnt[ 0 ]
     BottomFieldOrderCnt=TopFieldOrderCnt+offset_for_top_t
    o_bottom_field+delta_pic_order_cnt[ 1 ]
    } else if(!bottom_field_flag )
     TopFieldOrderCnt=expectedPicOrderCnt+delta_pic_order_
    cnt[ 0 ]
    else
     BottomFieldOrderCnt=expectedPicOrderCnt+offset_for_to
    p_to_bottom_field+delta_pic_order_cnt[0]
  • In the process of the expression (6) above, with “!field_pic_flag”, that is, if it is not a field slice, the value calculated by adding expectedPicOrderCnt and delta_pic_order_cnt[0 ] is obtained as TopFieldOrderCnt.
  • Meanwhile, types of information that the decoding apparatus can obtain from a coded stream is as follows:
  • nal_unit_type indicating the type of NAL unit; the frame number frame_num; the maximum frame number MaxFrameNum; num_ref_frames_in_pic_order_cnt_cycle and nal_ref_idc used for deriving a POC; offset_for_ref_frame[i ], offset_for_non_ref_pic, and field_pic_flag used for deriving a type 1 POC; delta_pic_order_cnt [0 ],delta_pic_order_cnt [1], and bottom_field_flag used for calculating the POC.
    • [Patent Document 1] Japanese Laid-open Patent Publication No. 2007-318615
    • [Patent Document 2] Japanese Laid-open Patent Publication No. 2007-67842
  • [Non Patent Document 1] Ye-Kui Wang and another, JVT-F050 POC Recovery in Random Access Point SEI Message, Tampere University of Technology and Nokia Corporation.
  • Non Patent Document 1 proposes, in order to make it possible to perform the decoding with a random access using the exactly same POC value as in the case of the decoding for a POC type 1 started from an IDR picture, coding and sending a value obtained by dividing the frame number offset FrameNumOffset by the maximum frame number MaxFrameNum.
  • However, there is a problem with the above value since it requires an information amount up to 28 bits when the value is an unsigned integer, and up to 57 bits with Golomb coding, increasing the information amount to be transmitted.
  • SUMMARY OF THE INVENTION
  • A moving image coding apparatus disclosed herein is a moving image coding apparatus in accordance with H.264/AVC, including a setting unit setting the value of num_ref_frames_in_pic_order_cnt_cycle field in the sequence parameter set specified in H.264/AVC to a divisor of MaxFrameNum, and a coding unit coding image data.
  • A moving image decoding apparatus disclosed herein is a moving image decoding apparatus in accordance with H.264/AVC, includingan initialization unit initializing, whenthe decoding is started from a picture to which a recovery point SEI is attached, FrameNumOffset specified in H.264/AVC to an integral multiple of MaxFrameNum, and a decoding unit decoding a coded stream.
  • The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
  • It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram illustrating the main part of a coding apparatus.
  • FIG. 2 is a flowchart of a coding process according to an embodiment.
  • FIG. 3 is a diagram illustrating the main part of a decoding apparatus.
  • FIG. 4 is a flowchart of a decoding process according to an embodiment.
  • FIG. 5 is a diagram illustrating the fields of a sequence parameter set.
  • FIG. 6 is a diagram illustrating the fields of a slice.
  • FIG. 7 is a diagram illustrating the relationship between a variable i and offset_for_ref_frame[i].
  • FIG. 8 is a diagram illustrating the values of respective fields and POC differences in the case where the decoding is started from an IDR and the case where the decoding is started from a recovery point SEI.
  • FIG. 9 is a diagram illustrating the relationship between a variable i and offset_for_ref_frame[i].
  • FIG. 10 is a diagram illustrating the relationship between the value of k and POC differences.
  • DESCRIPTION OF THE EMODIMENTS
  • Preferred embodiments of the present invention are described below.
  • H.264/MPEG4-AVC specifies the following two types as the pictures from which decoding can be started.
  • IDR (Instantaneous Decoding Refresh) picture: an I picture, which is the first picture of a sequence.
  • A picture to which a Recovery Point SEI is attached: Recovery Point SEI is attached to a picture in the middle of a sequence, indicating that even if the picture is in the middle of the sequence, the extraction can be started from the picture. Chapter 8.2.1.2 of H.264/MPEG-AVC specifies, for the decoding of POC type 1, the process in the case where the decoding is started from an IDR picture. However, with a random access using a recovery point SEI (when starting the decoding in the middle of a coded stream), the POC value may not correspond to the picture display order, even if the POC type 1 is decoded according to the specified process.
  • For example, it is assumed that MaxFrameNum is 16; num_ref_frames_in_pic_order_cnt_cycle is 15; and recovery point SEI is inserted into the 30th frame from an IDR picture to show that the extraction can be started from the picture.
  • In addition, the variable i and offset_for_ref_frame[i] (i=0˜num_ref_frames_in_pic_order_cnt_cycle-1) are assumed to be in the relationship as described in FIG. 8. Furthermore, for simplification, delta_pic_order_cnt[0] and delta_pic_order_cnt[1] are assumed to be “0” at any time. It is also assumed that any non-reference picture does not exist between the IDR picture and the picture with the recovery point SEI.
  • In this case, since the frame number of the extraction-start picture is the residue with regard to the maximum frame number MaxFrameNum, the value of the frame number frame_num field included in the slice header of the 30th picture is 30 mod 16, e.g. , “14”.
  • When the decoding is started from an IDR picture, the absolute frame number absFrameNum is “30”, according to the expression (2). Then, substituting the above values into picOrderCntCycleCnt and frameNumInPicOrderCntCycle in the expression (3), the expressions

  • picOrderCntCycleCnt=(30-1)/15=1
  • frameNumInPicOrderCntCycle=(30-1)%15=14 are obtained.
  • In this case, the POC for the top field TopFieldOrderCnt is obtained as follows, using the expressions (1) through (6).

  • expectedDeltaPerPicOrderCntCycle=27

  • expectedPicOrderCnt=picOrderCntCycleCnt*picOrderCntCy cleCnt+Σoffset_for_ref_frame[i] (i=0 . . . 14)=54
  • On the other hand, when the decoding is started from the 30th picture with a recovery point SEI, the information that can be obtained at the decoder side in units of pictures is the frame number frame_num only. Meanwhile, the frame number offset FrameNumOffset calculated in the expression (1) represents the number of carryover occurred to the frame number frame_num field (how many times it has been reset to 0). Assuming this number as k, absFrameNum in the expression (2) can be rewritten as follows.

  • absFrameNum=k*MaxFrameNum+frame_num
  • The value of k is unknown at the decoder side. This leads to ambiguity when deriving absFrameNum.
  • For example, assuming the cases where (a) k=0, (b) k=1, and (c) k=2,
    • (a)In the case of k=0
    • absFrameNum=14
    • picOrderCntCycleCnt=(14-1)/15=0
    • frameNumInPicOrderCntCycle=(14-1) %15=13
    • (b)In the case of k=1
    • absFrameNum=30
    • picOrderCntCycleCnt=(30-1)/15=1
    • frameNumInPicOrderCntCycle=(30-1) %15=14
    • (c)In the case of k=2
    • absFrameNum=46
    • picOrderCntCycleCnt=(46-1)/15=3 frameNumInPicOrderCntCycle=(46-1) %15=0
  • FIG. 9 is a diagram illustrating the relationship between the value of k and the POC difference. FIG. 9 illustrates the number of pictures from the extraction-start point, TopFieldOrderCnt for each value of k, and the POC difference with respect to the previous picture. Meanwhile, the true value of the POC in the decoding started from an IDR corresponds to the case where k=1.
  • As is apparent from FIG. 9, even when the number of pictures from the extraction-start point is the same, the POC difference with respect to the previous picture differs, depending on the value of k.
  • For example, the POC difference between the fifth picture and the sixth picture from the decoding start point is 3 when k=0; is 2 when k=1; and is 4 when k=3. Thus, the value is not determined uniquely.
  • According to the decoding method described above, the correct value of the difference in POC between the respective pictures cannot be obtained, unless the value of k at the time of the extraction start is obtained correctly.
  • When decoding image data that have been coded in accordance with H.264/MPEG4-AVG (hereinafter, referred to as H.264), the absolute value of a Picture Order Count (POC) is not required, and the decoding can be performed correctly, as long as the relative value of the POC of each picture is correct.
  • In this embodiment, the value of the field num_ref_frames_in_pic_order_cnt_cycle specified for the sequence parameter set (SPS) in accordance with H.264 is set to a divisor of MaxFrameNum at the coding apparatus side.
  • At the decoding apparatus side, decoding is performed as follows, when the decoding is started from an IDR picture, or an extraction-start picture, such as the one to which a recovery point SEI and the like is attached, as specified in H.264. The absolute frame number is initialized to a value obtained by adding an integral multiple of the maximum frame number MaxFrameNum to the frame number frame_num.
  • Through the above process, when decoding is started from a picture with a recovery point SEI, the relative value of the POC between pictures can be adjusted to the same value as the relative value of the POC between pictures in the case where the decoding is started from an IDR picture. The method for realizing it is specifically described below.
  • In the decoding process for the POC type 1, the frame number offset FrameNumOffset needs to be initialized. FrameNumOffset is initialized to 0 with the decoding of an IDR picture, and then the value of the maximum frame number MaxFrameNum is added, every time when the condition frame_num<prev_frame_num (the previous value of frame_num) is satisfied.
  • The frame number frame_num is the relative value of the frame number counted from the IDR picture and satisfies the condition 0≦frame_num<MaxFrameNum (the maximum value of frame_num) . When the frame number frame_num reaches the maximum frame number MaxFrameNum, the count starts again from 0.
  • The absolute frame number absFrameNum can be expressed as follows, referring to the expression (2).

  • absFrameNum=FrameNumOffset+frame_num   Expression (7)
  • The frame number offset FrameNumOffset is obtained by multiplying the maximum frame number MaxFrameNum by a constant from the definition of the express (1). Assuming the constant as K, the following expression can be obtained.

  • absFrameNum=K*MaxFrameNum+frame_num   Expression (8)
  • According to the expression (2) above, absFrameNum=absFrameNum-1; according to the expression (3), frameNumInPicOrderCntCycle=(absFrameNum-1)% num_ref_frames_i n_pic_order_cnt_cycle;therefore, the following expression can be obtained.

  • frameNumInPicOrderCntCycle=(K*MaxFrameNum+frame_num-1)% num_ref_frames_in_pic_or der_cnt_cycle=(((K*MaxFrameNum)% num_ref_frames_in_pic_order_cnt_cy cle)+frame_num-1)% num_ref_frames_in_pic_order_cnt_cycle   Expression (9)
  • According to the expression (9) above, the problem with a random access that the value of frameNumInPicOrderCntCycle cannot be obtained correctly because (absFrameNum-1) is unknown can be settled with the problem that the constant Kis unknown.
  • Looking at the expression including the constant K:

  • ((K*MaxFrameNum)% num_ref_frames_in_pic_order_cnt_cycle),
  • when num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of the maximum frame number MaxFrameNum, the residue of the above expression including K becomes 0. Therefore, the value of (K*MaxFrameNum)% num_ref_frames_in_pic_order_cnt_cycle becomes 0, regardless of the value of K.
  • Therefore, by setting num_ref_frames_in_pic_order_cnt_cycle to a divisor of the max frame number MaxFrameNum, the value of frameNumInPicOrderCntCycle in the expression (9) can be obtained uniquely, regardless of the value of K.
  • The decoding of image data that have been coded as described above is described next,
  • This embodiment includes, when the decoding is started from a picture to which a recovery point SEI is attached, an additional process to initialize the frame number offset FrameNumOffset to an integral multiple of MaxFrameNum. For example, for simplification, FrameNumOffset=MaxFrameNum is realized with the initialization.
  • In this case, the expression (1) mentioned above can be rewritten as expression (10) below.

  • if(nal_unit_type==5)

  • FrameNumOffset=0
  • else if(decoding from Recover_Point_SEI)

  • FrameNumOffset=MaxFrameNum
  • else if(prevFrameNum>frame_num)

  • FrameNumOffset=prevFrameNumOffset+MaxFrameNum else

  • FrameNumOffset=prevFrameNumOffset   Expression (10)
  • In addition, the expression (10) can be described with another expression.

  • if(nal_unit_type==5)

  • FrameNumOffset =0

  • else if(prevFrameNumOffset is unknown)

  • FrameNumOffset=MaxFrameNum

  • else if(prevFrameNum>frame_num)

  • FrameNumOffset=prevFrameNumOffset+MaxFrameNum else

  • FrameNumOffset=prevFrameNumOffset
  • Note that “decoding from Recover_Point_SEI” in if(decoding from Recover_Point_SEI) is equivalent to “prevFrameNumOffset is unknown”.
  • The details of the above process are as follows. Whether the NAL unit type is 5 or not is determined. If the NAL unit type is not 5, whether the decoding is started from the picture with the recovery point SEI or not is determined. If the decoding is started from the picture with the recovery point SEI, the maximum frame number MaxFrameNum is set as the frame number offset FrameNumOffset.
  • If the NAL unit type is not 5, whether the previous frame number prevFrameNum is larger than the current frame number frame_num or not is determined. If the previous frame number prevFrameNum is larger than the current frame number frame_num, it is determined that the frame number has exceeded the maximum frame number, and the value obtained by adding the maximum frame number MaxFrameNum to prevFrameNumOffset is set as FrameNumOffset.
  • If the previous frame number prevFrameNum is not larger than frame_num, prevFrameNumOffset is set as FrameNumOffset.
  • Through the process described above, when the decoding is started from a picture with a recovery point SEI, FrameNumOffset is initialized to the value that is an integral multiple of MaxFrameNum. Then, since the value of num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNumOffset at the coding apparatus side, the value of frameNumInPicOrderCntCycle in the expression (9) can be obtained uniquely. As a result, the relative value of the POC with the decoding stared from the picture with the recovery point SEI becomes the same value as with the decoding started from an IDR picture. Thus, the pictures can be decoded in a correct order.
  • Next, a moving image coding apparatus and a moving image decoding apparatus having the coding function and decoding function as described above are explained.
  • FIG. 1 is a diagram illustrating the main part of a moving image coding apparatus (hereinafter, referred to as a coding apparatus) 11. A subtractor 12 outputs data obtained by subtracting, from image data, a predicted image generated by a predicted image generation unit 13, to an orthogonal transform unit 14. The orthogonal transform unit 14 performs orthogonal transform for the data output from the subtractor 12. A quantization unit 15 quantizes the data after the orthogonal transform.
  • The entropy coding unit 16 has a parameter setting unit 17. The entropy coding unit 16 performs coding of image data, and the parameter setting unit 17 performs processes such as setting of the value of num_ref_frames_in_pic_order_cnt_cycle in a sequence parameter set.
  • An inverse quantization unit 18 and an inverse orthogonal transform unit 19 perform the inverse processes of the quantization and orthogonal transform. The image data after the inverse transform by the inverse orthogonal transform unit 19 is added with the predicted image in an adder 20 and stored in a reference image storage unit 21.
  • A moving vector determination unit 22 calculates a moving vector on the basis of the current image and a reference image output from the reference image storage unit 21, and outputs the calculated moving vector to the predicted image generation unit 13 and the entropy coding unit 16. The predicted image generation unit 13 generates a predicted image on the basis of the moving vector and the reference picture, and outputs the predicted image to the adder 20 and the subtractor 12.
  • FIG. 2 is a flowchart of the coding process performed by the coding apparatus 11. The entropy coding unit 16 determines whether the picture is to be coded with POC type 1 or not (FIG. 2, S11).
  • When the picture is to be coded with POC type 1 (S11, YES), the process proceeds to step S12, where num_ref_frames_in_pic_order_cnt_cycle in the sequence parameter set SPS is set to a divisor of the maximum frame number MaxFrameNum.
  • After the step S12, or when the determination at the step S11 is NO, the process proceeds to step S13, where the coding process for image data is performed.
  • Thus, as the coding apparatus 11 sets num_ref_frames_in_pic_order_cnt_cycle in the sequence parameter set SPS to a divisor of the maximum frame number MaxFrameNum, the relative value of the POC can be obtained uniquely at the decoding apparatus 31 side. In addition, since the coding apparatus only sets the value of num_ref_frames_in_pic_order_cnt_cycle to a divisor of MaxFrameNum, the data amount of coded data does not increase.
  • Using the moving image coding apparatus, the moving image decoding apparatus can perform the decoding in a correct order using a recovery point SEI.
  • FIG. 3 is a diagram illustrating the main part of a moving image decoding apparatus (hereinafter, referred to as a decoding apparatus) 31. An entropy decoding unit 32 has a function to decode an image stream for which variable length coding has been performed, and an initialization unit 33. The initialization unit 33 initializes the value of the frame number offset to an integral multiple of the maximum frame number.
  • An inverse quantization unit 34 performs an inverse quantization process for image data that have been decoded in the entropy decoding unit 32, and an inverse orthogonal transform unit 35 performs an inverse orthogonal transform process for the data after the inverse quantization.
  • An adder 36 generates a decoded image by adding the image data after the inverse orthogonal transform and a predicted image output from the predicted image generation unit 37. A reference image storage unit 38 stores the decoded image.
  • The predicted image generation unit 37 generates a predicted image on the basis of a reference picture stored in the reference image storage unit 38 and a moving vector calculated in the entropy decoding unit 32.
  • FIG. 4 is flowchart of the decoding process performed by the decoding apparatus 31. First, a search for an IDR picture or a recovery point SEI is performed (step S21).
  • Whether the POC type is “1” or not is determined (step S22) . When the POC type is not “1” (S22, NO) , the process proceeds to step S23, where whether the POC type is “0” or not is determined. If the POC type is “0” (S23, YES) , the process proceeds to step S24, where the initialization process for the POC type 0 is performed. When the POC type is not “0” according to the determination in step S23 (S23, NO) , the process proceeds to step S25, where the initialization process for the POC type 2 is performed.
  • When the POC type is “1” according to the determination is the step S22, the process proceeds to step S26, where whether a recovery point SEI has been detected or not is determined. When a recovery point SEI has been detected (S26, YES), the process proceeds to step S27, where the maximum frame number MaxFrameNum (or a value that is an integral multiple of the maximum frame number) is set as the initial value of the frame number offset FrameNumOffset.
  • When any recovery point SEI has not been detected according to the determination in the step S26 (S26, NO), the process proceeds to step S28, where “0” is set as the initial value of the frame number offset FrameNumOffset.
  • After the step S24, S25, S27 or S28, the process proceeds to step S29, where the decoding process for the picture is started.
  • Through the above process, when the decoding is started from a picture to which a recovery point SEI is attached, MaxFrameNum (or its integral multiple) is set as the initial value of the frame number offset FrameNumOffset. Then, since num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNum, the residue of the expression (9) described above becomes “0”. Therefore, the value of the expression (9) can be obtained uniquely.
  • Using the moving image decoding apparatus, a correct relative value for the POC type 1 can be obtained when performing the decoding using a recovery point SEI, making it possible to decode a coded stream in a correct display order.
  • FIG. 5 is a diagram illustrating the sequence parameter set in accordance with H. 264. The sequence parameter set has a field 51 in which num_ref_frames_in_pic_order_cnt_cycle is stored, a field 52 indicating the range of the value of the variable i, and a field 53 in which the reference frame offset offset_for_ref_frame [?i?] is stored.
  • In this embodiment, a divisor of MaxFrameNum is set as num_ref_frames_in_pic_order_cnt_cycle in the field 51.
  • FIG. 6 is a diagram illustrating the fields of a slice. The frame number frame_num is stored in a field 61 of the slice.
  • FIG. 7 is a diagram illustrating the relationship between the variable i and offset_for_ref_frame[i]. The relationship is, for example, as follows: offset_for_ref_frame [i]=1 when i=0, offset_for_ref_frame [i]=2 when i=1, offset_for_ref_frame []=2 when i=2.
  • FIG. 8 is a diagram illustrating the parameter values and POC differences with the decoding started from an IDR and with the decoding started from a recovery point SEI.
  • Assuming log2_max_frame_num_minus4 as 0, MaxFrameNum is 16. In this embodiment, num_ref_frames_in_pic_order_cnt_cycle is set to a divisor of MaxFrameNum. For example, num_ref_frames_in_pic_order_cnt_cycle is set to, for example, 8.
  • In the decoding apparatus 31, when the NAL unit type is 5, that is, with the decoding of an IDR picture, 0 is set as the initial value of the frame number offset FrameNumOffset, by the process in the expression (10).
  • When the decoding is started from an IDR picture, the frame number offset FrameNumoffset of the 30th picture is 32, and its absolute frame number absFrameNum is 46. The value of TopFieldOrderCnt of the 30th picture is 94.
  • In the same manner, FrameNumOffset of the 31st picture is 32, and its absFrameNum is 47. TopFieldOrderCnt of the 31st picture is 96. In this case, the POC difference with respect to the previous picture is 2.
  • Meanwhile, when the decoding is started from a recovery point SEI, the frame number offset FrameNumOffset is initialized to an integral multiple of the maximum frame number MaxFrameNum, according to the expression (10) . In this case, since MaxFrameNum is 16, FrameNumOffset is, for example, 16. The absolute frame number MaxFrameNum is FrameNumOffset+frame_num according to expression (7) . The frame number frame_num transmitted from the coding apparatus 11 is 14. Therefore, absFrameNum is 16+14=30. In this case, TopFieldOrderCnt of the 30th picture is 62.
  • In the same manner, FrameNumOffset of the 31st picture is 16, and its absFrameNum is 31. Then, TopFieldOrderCnt of the 31nd picture is 64. In this case, the POC difference with respect to the previous picture is 2.
  • Calculating the POC difference with respect to the previous picture when the decoding is started from an IDR picture from the value of TopFieldOrderCnt, the POC differences of the 31st picture and beyond are, as illustrated in FIG. 8, “2, 1, 2, 2, 1 . . . ”.
  • Meanwhile, the POC differences with respect to the previous picture when the decoding is started from a recovery point SEI are, as illustrated in FIG. 8, “2, 1, 2, 2, 1 . . . ”.
  • Using the coding apparatus 11 and the decoding apparatus 31 according to the embodiment, while the values of the POC are different between the decoding started from an IDR and the decoding started from a recovery point SEI, the same POC differences are obtained for both cases. In accordance with H.264, the absolute value of the POC does not need to be correct, and as long as correct relative POC values are obtained, the pictures can be decoded in a correct display order.
  • Thus, using the coding apparatus, the decoding apparatus, the coding method and the decoding method according to the embodiment, pictures can be decoded in a correct display order, with a random access using a recovery point SEI.
  • In addition, the modification of num_ref_frames_in_pic_order_cnt_cycle in subclause 7.4.2.1 of H.264/MPEG-AVC and the modification of the decoding process for POC type 1 in subclause 8.2.1.2 of H.264/MPEG-AVC are proposed below.
  • The modification of num_ref_frames_in_pic_order_cnt_cycle is described below.
  • num_ref_frames_in_pic_order_cnt cycle is used in the decoding process for picture order count as specified in subclause 8.2.1.
  • The value of num_ref_frames_in_pic_order_cnt_cycle shall be any divisor of MaxFrameNum and in the range of 0 to 255, inclusive.
  • Proposed change on equation 8-6 is the following

  • if(nal_unit_type==5)

  • FrameNumOffset=0

  • else if(prevFrameNumOffset is unknown)

  • FrameNumOffset=MaxFrameNum

  • else if(prevFrameNum>frame_num)

  • FrameNumOffset=prevFrameNumOffset+MaxFrameNum else

  • FrameNumOffset=prevFrameNumOffset
  • RATIONALE
  • Equation 8-8 can be written as the following

  • frameNumInPicOrderCntCycle=(FrameNumOffset+frame_num- 1) % num_ref_frames_in_pic_order_cnt_cycle
  • If the value of num_ref_frames_in_pic_order_cnt_cycle is a divisor of MaxFrameNum, the result of (FrameNumOffset % num_ref_frames_in_pic_order_cnt_cycle) is always zero because FrameNumOffset is the product of MaxFrameNum and non-negative integer. Thus frameNumInPicOrderCntCycle in Equation 8-8 is independent of prevFrameNumOffset.
  • The values of absNumFrame in Equation 8-7 and frameNumInPicOrderCntCycle in Equation 8-8 for the first decoding picture are (MaxFrameNum+frame_num) and ((frame_num-1) % num_ref_frames_in_pic_order_cnt_cycle), respectively.
  • As the definition of MaxFrameNum is 2̂{log2_max_frame_num_minus4}, num_ref_frames_in_pic_order_cnt_cycle should also be in the form of 2̂N where N is non-negative integer.
  • Using the coding apparatus disclosed herein, image data can be coded, without increasing the data amount of coded data, such that the decoding apparatus can perform the decoding in a correct display order from a recovery point SEI. In addition, using the coding apparatus disclosed herein, the decoding can be performed in a correct display order, when the decoding is started from a picture to which a recovery point SEI is attached.
  • All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment (s) of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.

Claims (5)

What is claimed is:
1. A moving image decoding apparatus in accordance with H.264/AVC, comprising:
an initialization unit initializing, when decoding is started from a picture to which a recovery point SEI is attached, FrameNumOffset specified in H.264/AVC to an integral multiple of MaxFrameNum; and
a decoding unit decoding a coded stream.
2. The moving image decoding apparatus according to claim 1, wherein
the initialization unit initializes FrameNumOffset to a same value as MaxFrameNum.
3. The moving image decoding apparatus according to claim 1, comprising
a calculation unit calculating absFrameNum by adding an integral multiple of MaxFrameNum to frame_num.
4. Amoving image decodingmethod in accordance with H . 264 /AVC, comprising:
initializing, when decoding is started from a picture to which a recovery point SEI is attached, FrameNumOffset specified in H.264/AVC to an integral multiple of MaxFrameNum; and
calculating a POC (Picture Order Count) difference using the initialized FrameNumOffset.
5. The moving image decoding method according to claim 4, wherein
absFrameNum is calculated by adding an integral multiple of MaxFrameNum to frame_num.
US13/744,560 2008-04-07 2013-01-18 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method Abandoned US20130128991A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/744,560 US20130128991A1 (en) 2008-04-07 2013-01-18 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2008099821 2008-04-07
JP2008-099821 2008-04-07
JP2008108207A JP4935746B2 (en) 2008-04-07 2008-04-17 Moving picture encoding apparatus, moving picture decoding apparatus, and encoding and decoding method thereof
JP2008-108207 2008-04-17
US12/345,004 US8385407B2 (en) 2008-04-07 2008-12-29 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method
US13/744,560 US20130128991A1 (en) 2008-04-07 2013-01-18 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/345,004 Division US8385407B2 (en) 2008-04-07 2008-12-29 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method

Publications (1)

Publication Number Publication Date
US20130128991A1 true US20130128991A1 (en) 2013-05-23

Family

ID=40897546

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/345,004 Expired - Fee Related US8385407B2 (en) 2008-04-07 2008-12-29 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method
US13/744,560 Abandoned US20130128991A1 (en) 2008-04-07 2013-01-18 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/345,004 Expired - Fee Related US8385407B2 (en) 2008-04-07 2008-12-29 Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method

Country Status (3)

Country Link
US (2) US8385407B2 (en)
EP (1) EP2109318A3 (en)
JP (1) JP4935746B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130114743A1 (en) * 2011-07-13 2013-05-09 Rickard Sjöberg Encoder, decoder and methods thereof for reference picture management
US9398293B2 (en) 2013-01-07 2016-07-19 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011199396A (en) * 2010-03-17 2011-10-06 Ntt Docomo Inc Moving image prediction encoding device, moving image prediction encoding method, moving image prediction encoding program, moving image prediction decoding device, moving image prediction decoding method, and moving image prediction decoding program
CA2817790A1 (en) * 2010-12-31 2012-07-05 Beijing Goland Tech Co., Ltd. Method for h264 transcoding with code stream information reuse
HRP20231385T1 (en) 2011-09-22 2024-03-01 Lg Electronics Inc. Method and apparatus for signaling image information, and decoding method and apparatus using same
CN103037209B (en) * 2011-09-30 2016-05-04 腾讯科技(深圳)有限公司 The decoding processing method of frame of video and device
KR20190053290A (en) 2012-06-25 2019-05-17 닛본 덴끼 가부시끼가이샤 Video encoding/decoding device, method, and program
US9491457B2 (en) * 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding
US9979971B2 (en) * 2013-10-14 2018-05-22 Qualcomm Incorporated Device and method for scalable coding of video information
CN104754358B (en) * 2013-12-27 2019-02-19 中兴通讯股份有限公司 The generation of code stream and processing method, apparatus and system
JP2018074349A (en) * 2016-10-28 2018-05-10 住友電気工業株式会社 Video processing device, video processing method and video processing program
CN110035293B (en) * 2019-04-22 2022-01-11 湖南国科微电子股份有限公司 Electronic equipment and image coded data storage method and device
KR20230017819A (en) * 2020-05-22 2023-02-06 엘지전자 주식회사 Image coding method and apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080170564A1 (en) * 2006-11-14 2008-07-17 Qualcomm Incorporated Systems and methods for channel switching

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4405272B2 (en) * 2003-02-19 2010-01-27 パナソニック株式会社 Moving picture decoding method, moving picture decoding apparatus and program
JP4180095B2 (en) * 2004-07-01 2008-11-12 三菱電機株式会社 Recording apparatus, recording method, and reproducing apparatus and reproducing method
JP2006129177A (en) * 2004-10-29 2006-05-18 Victor Co Of Japan Ltd Recording apparatus and recording medium
JP2007067842A (en) * 2005-08-31 2007-03-15 Victor Co Of Japan Ltd Apparatus and method for editing moving image coding data
JP2007318615A (en) * 2006-05-29 2007-12-06 Toshiba Corp Moving image reproducing device, moving image reproduction method and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080170564A1 (en) * 2006-11-14 2008-07-17 Qualcomm Incorporated Systems and methods for channel switching

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130114743A1 (en) * 2011-07-13 2013-05-09 Rickard Sjöberg Encoder, decoder and methods thereof for reference picture management
US9398293B2 (en) 2013-01-07 2016-07-19 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding
US9571847B2 (en) 2013-01-07 2017-02-14 Qualcomm Incorporated Gradual decoding refresh with temporal scalability support in video coding

Also Published As

Publication number Publication date
EP2109318A2 (en) 2009-10-14
US8385407B2 (en) 2013-02-26
JP2009272660A (en) 2009-11-19
JP4935746B2 (en) 2012-05-23
EP2109318A3 (en) 2011-08-31
US20090252218A1 (en) 2009-10-08

Similar Documents

Publication Publication Date Title
US20130128991A1 (en) Moving image coding apparatus, moving image decoding apparatus, moving image coding method and moving image decoding method
US10506236B2 (en) Video encoding and decoding with improved error resilience
JP5848810B2 (en) Absolute or explicit reference picture signal transmission
US11736711B2 (en) Encoder, decoder and methods thereof for video encoding and decoding
US9094690B2 (en) Inter-prediction method and video encoding/decoding method using the inter-prediction method
JP2007507128A (en) Video picture encoding and decoding with delayed reference picture refresh
KR101391397B1 (en) code amount control method and apparatus

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION