Abstract:
The present principles relate to a hypothetical reference decoder (HRD) for a Scalable Video Coding extension for a compression algorithm. One such implementation proposes to modify the H.264/AVC HRD for use with the SVC of AVC. That implementation defines HRD constraints for each interoperability point of SVC. One implementation in particular is described, but other implementations are possible and are contemplated by the present principles. The changes for spatial, temporal, and SNR scalability are shown. There are also changes to the related HRD parameters followed that are shown. The several mentioned implementations provide rules for an HRD for SVC. At least one implementation proposes the SVC-HRD rules as modifications to the AVC-HRD rules. A user may use the proposed SVC-HRD rules to build an SVC-HRD and test a bitstream for SVC compliance.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a National Stage Application and claims the benefit, under 35 U.S.C. §365 of International Application PCT/US2007/026240 filed Dec. 21, 2007, which was published in accordance with PCT Article 21(2) on Jul. 17, 2008 in English, and which claims the benefit of U.S. Provisional Patent Application No. 60/878,729 filed on Jan. 5, 2007. 
    
    
     TECHNICAL FIELD 
     This application relates to a hypothetical reference decoder for Scalable Video Coding in compressed video systems. 
     BACKGROUND 
     A hypothetical reference decoder is valuable in compressed video systems because it serves to validate an encoded bitstream for compliance to a standard. In a coding standard such as H.264/AVC, there are numerous interoperability points due to the Scalable Video Coding features of the standard. The H.264/AVC standard has rules (also referred to as requirements, constraints, or operational specifications) defining an HRD. The HRD behavior is normative. Any AVC bitstream has to be compliant to the HRD built according to the rules. SVC (scalable video coding) is an extension (Annex G) to the AVC standard. An SVC bitstream typically has multiple interoperability points (also referred to as operation points), due at least in part to the fact that the bitstream is scalable. Such a bitstream may be scalable spatially, temporally, and in SNR, for example. Sub-bitstreams, corresponding to the scalable aspects, may be extracted from the bitstream. Previous HRDs do not have sufficient rules to allow them to validate bitstreams like those of the SVC in AVC. 
     SUMMARY 
     This disclosure describes at least one implementation that provides a hypothetical reference decoder (HRD) for SVC. One such implementation proposes to modify the H.264/AVC HRD for use with SVC. That implementation defines HRD constraints for each interoperability point of SVC. One implementation in particular is described, but other implementations are possible and are contemplated by this disclosure. The first part of the disclosure discusses changes for spatial, temporal, and SNR scalability, respectively. The second part of the disclosure discusses changes to the related HRD parameters followed by the specification text. 
     The H.264/AVC standard has rules (also referred to as requirements, constraints, or operational specifications) defining an HRD. The HRD behavior is normative. Any AVC bitstream has to be compliant to the HRD built according to the rules. SVC (scalable video coding) is an extension (Annex G) to the AVC standard. This disclosure describes one or more implementations that provide rules for an HRD for SVC. At least one implementation proposes the SVC-HRD rules as modifications to the AVC-HRD rules. A user may use the proposed SVC-HRD rules to build an SVC-HRD and test a bitstream for SVC compliance. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows the sequence parameter set of AVC sequences. 
         FIG. 2  shows the buffer period SEI message of AVC. 
         FIG. 3  shows the proposed HRD parameters. 
         FIG. 4  shows the proposed VUI parameters. 
         FIG. 5  shows the proposed buffer_period SEI message. 
         FIG. 6  shows the proposed picture timing SEI message. 
     
    
    
     DETAILED DESCRIPTION 
     An SVC bitstream typically has multiple interoperability points (also referred to as operation points), due at least in part to the fact that the bitstream is scalable. Such a bitstream may be scalable spatially, temporally, and in SNR, for example. Sub-bitstreams, corresponding to the scalable aspects, may be extracted from the bitstream. In one implementation, each interoperability point is checked by the HRD to ensure SVC compliance. An HRD may define HRD constraints for each checking point separately. Or several checking points may obey one HRD constraint. In at least one implementation described in this disclosure, separate HRD constraints are proposed for each checking point. The use of separate HRD constraints may ease the operation, and also may provide some similarities to the approach of H.263+. 
     In this part, in the context of one particular implementation, we shall analyze whether and what to modify from the HRD in H.264/AVC to satisfy the HRD in SVC from spatial, SNR and temporal Scalability, respectively. This presents a description from one conceptual viewpoint of examining various of the many possible types of scalability, and other conceptual viewpoints are also possible. 
     1. Spatial SVC 
     
         
         
           
             1.1 HRD in the VUI message: VUI message is included in the SPS (see vui_parameters( ) in Table 1). For each spatial SVC layer, since the picture size is different from other layers, its corresponding SPS is different from other layers&#39;. So the HRD of VUI in AVC, without modification, can be directly applied to HRD of VUI for spatial SVC. For each checking point, we can get the correct VUI message through the HRD rules for AVC, as shown in Table 1. 
             1.2 Buffer period SEI message: seq_parameter_set_id is in the buffer period SEI message. By indexing seq_parameter_set_id in the SPS which corresponds to each spatial SVC layer, the buffer period for each spatial SVC layer can be obtained. So, for spatial SVC, the buffer period SEI message of HRD in AVC can be directly applied for spatial SVC. For each checking point, we can get correct buffer period SEI message without modifying the current HRD, as shown in Table 2. 
             1.3 Picture timing SEI message: cpb_removal_delay and dpb_output_delay could be the same for different layers in the same access unit (see Table 6). So no change is needed for spatial scalability.
 
2. SNR SVC
 
             2.1 VUI message: For SNR SVC, the quality layer can be indicated by dependency_id or quality_level. Different quality layers/levels can share the same SPS, so the VUI message in AVC should be modified (see Table 3) to include HRD information for all quality layers/levels. 
             2.2 Buffer period SEI message: For SNR SVC, different quality layers/levels can share the same SPS, so it has no one-to-one mapping with seq_parameter_set_id existing in the buffer period SEI message. The buffer period SEI message should be modified (see Table 5) to include HRD information for all quality layers/levels. 
             2.3 Picture timing SEI message: cpb_removal_delay and dpb_output_delay could be the same for different quality layers/levels in the same access unit. So no change is needed for spatial scalability.
 
3. Temporal SVC
 
             3.1 VUI message: For temporal SVC, different temporal layers can share the same SPS, so the VUI message in AVC should be modified (see Table 3) to include HRD information for all temporal layers. 
             3.2 Buffer period SEI message: For temporal SVC, different temporal layers can share the same SPS, so it has no one-to-one mapping with seq_parameter_set_id existing in the buffer period SEI message. The buffer period SEI message should be modified (see Table 5) to include HRD information for all temporal layers. 
             3.3 Picture timing SEI message: For temporal SVC, frame rate is different for each temporal layer. Since a lower temporal layer can serve as dependent layer for the higher temporal layer, which means one NAL unit with given temporal_level may work for several frame rates. The picture timing SEI message should be modified (see Table 6) to include HRD information for all temporal layers. 
             3.4 In the VUI message, when timing_info_present_flag is true, we should consider to modify num_units_in_tick, time_scale and fixed_frame_rate_flag to reflect correct frame rate information (see Table 4). 
           
         
       
    
     All three conceptual levels of scalability (spatial, temporal, and SNR) are combined in the following modifications to the AVC-HRD rules. Tables 3-6 are taken from the AVC standard, and relate to the AVC-HRD. The additions to the AVC standard Tables are shown using italics. There are no deletions from the AVC standard Tables, although other implementations may have deletions. The bolded terms are the syntax that are actually sent in the bitstreams. As can be seen, each of Tables 3-6 shows that the AVC standard has been modified by introducing an “if-then” loop that tests the variable “profile_idc”. If “profile_idc” is equal to “SVC”, then an if-loop if performed one or more times to test one or more points. If “profile_idc” is not equal to “SVC”, then “AVC” is presumed to be the relevant standard, and an “else” loop is executed to test one point for AVC compliance (using existing AVC-HRD rules). In Table 3, the variables “dependency_id[i]”, “temporal_level[i]”, and “quality_level[i]” provide the various scalable options. Because these variables have a combined length of eight bits, there can be up to 2**8 checking points for an SVC bitstream. The implementation is able to loop from 0 to 255 using the eight bits. This compares to a single checking point for an AVC bitstream.
         1. In VUI message, HRD parameters are signaled for each dependency layer, temporal layer and quality layer which shares the same SPS, as shown in Table 3. When timing_info_present_flag is true, num_units_in_tick, time_scale and fixed_frame_rate_flag are signaled for each temporal layer, as shown in Table 4.   2. In Buffer period SEI message, HRD related parameters are signaled for each dependency layer, temporal layer and quality layer which shares the same sequence_parameter_set_id, as shown in Table 5.   3. In picture timing SEI message, HRD related parameters are signaled for each temporal layer, as shown in Table 6.       

     The operation of Tables 3-6 can be summarized. Table 3 defines bit rate and cpb (coded picture buffer) size for each checking point/layer. Table 4 defines frame rate for each temporal layer. Table 5 defines initial cpb delay and initial dpb delay for each checking point/layer. Table 6 defines cpb remove delay and dpb (decoded picture buffer) output delay for each checking point/layer. For each checking point/layer, the above parameters are used in the HRD rules, the same as is done for AVC, to test if the bitstream is compliant. 
     num_layer_minus1 plus 1 indicates the number of scalable layers or presentation points supported by the bitstream referring to the same seq_parameter_set_id in the SPS which contains this hrd_parameters( ). 
     dependency_id [i] indicates the dependency (CGS) layer of scalable layer i. It is equal to the dependency_id of the NAL units in the scalable layer i. 
     temporal_level[i] indicates the temporal layer of scalable layer i. It is equal to the temporal_level of the NAL units in the scalable layer i. 
     quality_level[i] indicates the quality layer of scalable layer i. It is equal to the quality_level of the NAL units in the scalable layer i. 
     cpb_cnt_minus1[i], bit_rate_scale [i], cpb_size_scale [i], bit_rate_value_minus1[i][SchedSelldx], cpb_size_value_minus1[i][SchedSelldx], cbr_flag[i][SchedSelldx], initial_cpb_removal_delay_length_minus1[i], 
     cpb_removal_delay_length_minus1[i], dpb_output_delay_length_minus1[i], time_offset_length[i] are equal to their corresponding value for the scalable layer i, respectively. 1    1 In the definition, bit rate includes the bits for scalable layer i and its dependent layers.
 
num_temporal_layer_minus1 plus 1 indicates the number of temporal layers supported by the bitstream. It is equal to the maximal temporal_level of the NAL units in the bitstream.
 
timing_info_present_flag[i], num_units_in_tick[i], time_scale[i], fixed_frame_rate_flag[i] are equal to their corresponding value for the temporal layer i, respectively.
 
num_layer_minus1 plus 1 indicates the number of scalable layers or presentation points supported by the bitstream referring to the same seq_parameter_set_id in the buffer_period SEI message.
 
dependency_id[i] indicates the dependency (CGS) layer of scalable layer i. It is equal to the dependency_id of the NAL units in the scalable layer i.
 
temporal_level[i] indicates the temporal layer of scalable layer i. It is equal to the temporal_level of the NAL units in the scalable layer i.
 
quality_level[i] indicates the quality layer of scalable layer i. It is equal to the quality_level of the NAL units in the scalable layer i.
 
initial_cpb_removal_delay[i][SchedSelldx], initial_cpb_removal_delay_offset[i][SchedSelldx] are equal to their corresponding value for the scalable layer i, respectively.
 
num_temporal_layer_minus1 plus 1 indicates the number of temporal layers which depends on the NAL unit whose access unit associated with this picture timing SEI message.
 
temporal_layer[i] indicates the temporal level of temporal layer i.
 
cpb_removal_delay[i], dpb_output_delay[i] are equal to their corresponding value for the temporal layer i, respectively.
 
     Various implementations are contemplated by this disclosure, and the implementations may include one or more of the features described in this disclosure. Such implementations may be in the form of a method, an apparatus, or a program of instructions, for example, and may be implemented using hardware, software, or a combination, for example. Several of the possible implementations follow: