Ana səhifə

International organisation for standardisation organisation internationale de normalisation


Yüklə 1.39 Mb.
səhifə15/23
tarix25.06.2016
ölçüsü1.39 Mb.
1   ...   11   12   13   14   15   16   17   18   ...   23

2.5.4 Program Stream map


The Program Stream Map(PSM) provides a description of the elementary streams in the Program Stream and their relationship to one another. When carried in a Transport Stream this structure shall not be modified. The PSM is present as a PES packet when the stream_id value is 0xBC (refer to table 2-18 on page 36).


Note - This syntax differs from the PES packet syntax described 2.4.3.6 on page 33.
Definition for the descriptor() fields may be found in 2.6 on page 67 of this Specification.

2.5.4.1 Syntax of Program Stream map






Table 2-35 -- Program Stream map
Syntax

No. of bits

Mnemonic

program_stream_map() {







}










2.5.4.2 Semantic definition of fields in Program Stream map



packet_start_code_prefix -- The packet_start_code_prefix is a 24-bit code. Together with the map_stream_id that follows it constitutes a packet start code that identifies the beginning of a packet. The packet_start_code_prefix is the bit string '0000 0000 0000 0000 0000 0001' (0x000001 in hexadecimal)
map_stream_id -- This is an 8 bit field whose value shall be 0xBC.
program_stream_map_length -- The program_stream_map_length is a 16 bit field indicating the total number of bytes in the program_stream_map immediately following this field. The maximum value of this field is 1018 (0x3FA).
current_next_indicator -- This is a 1 bit field, when set to '1' indicates that the Program Stream Map sent is currently applicable. When the bit is set to '0', it indicates that the Program Stream Map sent is not yet applicable and shall be the next table to become valid.
program_stream_map_version -- This 5 bit field is the version number of the whole Program Stream Map. The version number shall be incremented by 1 modulo 32 whenever the definition of the Program Stream Map changes. When the current_next_indicator is set to '1', then the program_stream_map_version shall be that of the currently applicable Program Stream Map. When the current_next_indicator is set to '0', then the program_stream_map_version shall be that of the next applicable Program Stream Map.
program_stream_info_length -- The program_stream_info_length is a 16 bit field indicating the total length of the descriptors immediately following this field.
marker_bit -- A marker_bit is a 1 bit field that has the value '1'.
elementary_stream_map_length -- This is a 16 bit field specifying the total length, in bytes, of all elementary stream information in this program stream map. It includes the stream_type, elementary_stream_id, and elementary_stream_info_length fields.
stream_type -- This 8 bit field specifies the type of the stream according to table 2-29 on page 51. The stream_type field shall only identify elementary streams contained in PES packets. A value of 0x05 is prohibited
elementary_stream_id -- The elementary_stream_id is an 8 bit field indicating the value of the stream_id field in the PES packet headers of PES packets in which this elementary stream is stored.
elementary_stream_info_length -- The elementary_stream_info_length is a 16 bit field indicating the length in bytes of the descriptors immediately following this field.
CRC_32 -- This is a 32 bit field that contains the CRC value that gives a zero output of the registers in the decoder defined in Annex B after processing the entire program stream map.

2.5.5 Program Stream directory

The directory for an entire stream is made up of all the directory data carried by Program Stream Directory packets identified with the directory_stream_id. The syntax for program_stream_directory packets is defined table 2-36.


Note 1 - This syntax differs from the PES packet syntax described 2.4.3.6 on page 33.
Directory entries may be required to reference I-pictures in a video stream as defined in ITU T Rec. H.262†|†ISO/IEC 13818-2 and ISO/IEC 11172 2. If an I-picture that is referenced in a directory entry is preceded by a sequence header with no intervening picture headers the directory entry shall reference the first byte of the sequence header. If an I-picture that is referenced in a directory entry is preceded by a group of pictures header with no intervening picture headers and no immediately preceding sequence header the directory entry shall reference the first byte of the group of pictures header. Any other picture that a directory entry references shall be referenced by the first byte of the picture header.
Note 2 - It is recommended that I pictures immediately following a sequence header should be referenced in directory structures so that the directory contains an entry at every point where the decoder may be reset completely.
Directory references to audio streams as defined in ISO/IEC 13818-3 and ISO/IEC 11172-3 shall be the syncword of the audio frame.
Note 3 - It is recommended that the distance between referenced access units not exceed half a second.
Access units shall be referenced in a program_stream_directory packet in the same order that they appear in the bitstream.

2.5.5.3 Syntax of Program Stream directory packet


Table 2-36 -- Program Stream directory packet

Syntax

No. of Bits

Mnemonic

directory_PES_packet(){







packet_start_code_prefix

24

bslbf

}










2.5.5.4 Semantic definition of fields in Program Stream directory


packet_start_code_prefix - The packet_start_code_prefix is a 24-bit code. Together with the stream_id that follows it constitutes a packet start code that identifies the beginning of a packet. The packet_start_code_prefix is the bit string '0000 0000 0000 0000 0000 0001' (0x000001 in hexadecimal).

directory_stream_id - This 8 bit field shall have a value '1111 1111' (0xFF).

PES_packet_length - The PES_packet_length is a 16 bit field indicating the total number of bytes in the program_stream_directory immediately following this field (refer to table 2-18 on page 36).
number_of_access_units   This 15 bit field is the number of access_units that are referenced in this Directory PES packet.
prev_directory_offset   This 45 bit unsigned integer gives the byte address offset of the 1st byte of the packet start code of the previous Program Stream Directory packet. This address offset is relative to the 1st byte of the start code of the packet which contains this previous_directory_offset field. The value '0' indicates that there is no previous Program Stream Directory packet.
next_directory_offset   This 45 bit unsigned integer gives the byte address offset of the first byte of the packet start code of the next Program Stream Directory packet. This address offset is relative to the 1st byte of the start code of the packet which contains this next_directory_offset field. The value '0' indicates that there is no next Program Stream Directory packet.
packet_stream_id   This 8 bit field is the stream_id of the elementary stream that contains the access unit referenced by this directory entry.
PES_header_position_offset_sign   This 1 bit field is the arithmetic sign for the PES_header_position_offset described immediately following. A value of '0' indicates that the PES_header_position_offset is a positive offset. A value of '1' indicates that the PES_header_position_offset is a negative offset.
PES_header_position_offset   This 44 bit unsigned integer gives the byte offset address of the 1st byte of the PES packet containing the access unit referenced. The offset address is relative to the 1st byte of the start code of the packet containing this PES_header_position_offset field. The value '0' indicates that no access unit is referenced.
reference_offset   This 16 bit field is an unsigned integer indicating the position of the first byte of the referenced access unit, measured in bytes relative to the first byte of the PES packet containing the first byte of the referenced access unit.
PTS (presentation_time_stamp)   This 33 bit field is the PTS of the access unit that is referenced. The semantics of the coding of the PTS field are as described in 2.4.3.6 on page 33.
bytes_to_read   This 23 bit unsigned integer is the number of bytes in the Program Stream after the byte indicated by reference_offset that are needed to decode the access unit completely. This value includes any bytes multiplexed at the systems layer including those containing information from other streams.
intra_coded_indicator   This is a 1 bit flag. When set to '1' it indicates that the referenced access unit is not predictively coded. This is independent of other coding parameters that might be needed to decode the access unit. For example, this field shall be coded as '1' for video Intra frames, whereas for 'P' and 'B' frames this bit shall be coded as '0'. For all PES packets containing data which is not from an ITU T Rec. H.262†|†ISO/IEC 13818-2 video stream this field is undefined.



Table 2-37 -- Intra_coded indicator
Value

Meaning

0

Not Intra

1

Intra


coding_parameters_indicator - This 2 bit field is used to indicate the location of coding parameters that are needed to decode the access units referenced. For example, this field can be used to determine the location of quantization matrices for video frames.



Table 2-38 -- Coding_parameters indicator
Value

Meaning

00

All coding parameters are set to their default values.

01

All coding parameters are set in this access unit, at least one of them is not set to a default.

11


No coding parameters are coded in this access unit.



2.6 Program and program element descriptors

Program and program element descriptors are structures which may be used to extend the definitions of programs and program elements. All descriptors have a format which begins with an 8 bit tag value. The tag value is followed by an 8 bit descriptor length and data fields.



2.6.1 Semantic definition of fields in program and program element descriptors

The following semantics apply to the descriptors defined in 2.6.2 on page 68 through 2.6.34 on page 80.


descriptor_tag -- The descriptor_tag is an 8 bit field which identifies each descriptor.
Table 2-39 on page 68below provides the ITU T Rec. H.222.0†|†ISO/IEC 13818-1 defined, ITU T Rec. H.222.0†|†ISO/IEC 13818-1 reserved, and user available descriptor tag values. An 'X' in the TS or PS columns indicates the applicability of the descriptor to either the Transport Stream or Program Stream respectively. Note that the meaning of fields in a descriptor may depend on which stream it is used in. Each case is specified in the descriptor semantics below.


Table 2-39 -- Program and program element descriptors
descriptor_tag

TS

PS

Identification

0

n/a

n/a

Reserved

64-255


n/a

n/a

User Private


descriptor_length -- The descriptor_length is an 8 bit field specifying the number of bytes of the descriptor immediately following descriptor_length field.

2.6.2 Video stream descriptor


The video stream descriptor provides basic information which identifies the coding parameters of a video elementary stream as described in ITU-T Rec. H.262 | ISO/IEC 13818-2 or ISO/IEC 11172-2.



Table 2-41 -- Video stream descriptor
Syntax

No. of bits

Mnemonic

video_stream_descriptor(){






}










2.6.3 Semantic definitions of fields in video stream descriptor



multiple_frame_rate_flag -- This is a 1 bit field which when set to '1' indicates that multiple frame rates may be present in the video stream. When set to a value of '0' only a single frame rate is present.
frame_rate_code -- This is a 4 bit field as defined in ITU-T Rec. H.262 | ISO/IEC 13818-2 6.3.3, except that when the multiple_frame_rate_flag is set to a value of '1' the indication of a particular frame rate also permits certain other frame rates to be present in the video stream, as specified below:
Table 2-42 -- Frame rate code

coded as

also includes

23,976




60,0


23,976 24,0 29,97 30,0 59,94


MPEG_1_only_flag -- This is a 1 bit field which when set to '1' indicates that the video stream contains only ISO/IEC 11172-2 data. If set to '0' the video stream may contain both ISO/IEC 13818-2 video data and constrained parameter ISO/IEC 11172-2 video data.
constrained_parameter_flag -- This is a 1 bit field which when set to '1' indicates that the video stream shall not contain unconstrained ISO/IEC 11172-2 video data. If this field is set to '0' the video stream mat contain both constrained parameters and unconstrained ISO/IEC 11172-2 video streams. If the MPEG_1_only_flag is set to '0', the constrained_parameter_flag shall be set to '1'.
still_picture_flag -- This is a 1 bit field, which when set to '1' indicates that the video stream contains only still pictures. If the bit is set to '0' then the video stream may contain either moving or still picture data.
profile_and_level_indication -- This is an 8 bit field which is set to the same value as the profile_and_level_indication fields in the video stream.
chroma_format -- This is a 2 bit field which is set to the same value as the chroma_format fields in the ITU-T Rec. H.262 | ISO/IEC 13818-2 video stream.
frame_rate_extension_flag -- This is a 1 bit flag which when set to '1' indicates that either or both of the frame_rate_extension_n and frame_rate_extension_d fields in the ITU-T Rec. H.262 | ISO/IEC 13818-2 video stream are non-zero.

2.6.4 Audio stream descriptor

The audio stream descriptor provides basic information which identifies the coding version of an audio elementary stream as described in ISO/IEC 13818-3 or ISO/IEC 11172-3.




Table 2-42 -- Audio stream descriptor
Syntax

No. of bits

Mnemonic

audio_stream_descriptor(){






}










2.6.5 Semantic definition of fields in audio stream descriptor



free_format_flag -- This 1 bit field when set to '1' indicates that the audio stream may contain one or more audio frames with the bitrate_index set to '0000'. If set to '0' then the bitrate_index is not '0000' (refer to 2.4.2.3 of ISO/IEC 13818-3) in any audio frame of the audio stream.
ID -- This 1 bit field when set to '1' indicates that the ID field is set to '1' in each audio frame in the audio stream (refer to 2.4.2.3 of ISO/IEC 13818-3)
layer -- This 2 bit field is coded in the same manner as the layer field in the ISO/IEC 13818-3 or ISO/IEC 11172-3 audio streams (refer to 2.4.2.3 of ISO/IEC 13818-3). The layer indicated in this field shall be equal to or higher than the highest layer specified in any audio frame of the audio stream.
variable_rate_audio_indicator -- This 1 bit flag, when set to '0' indicates that the bit rate of the associated audio stream may vary between consecutive audio frames. Continuously coded variable rate audio should be presented without discontinuities.

2.6.6 Hierarchy descriptor

The hierarchy descriptor provides information to identify the program elements containing components of hierarchically-coded video and audio, and private streams which is multiplexed in multiple streams as described in ITU T Rec. H.222.0†|†ISO/IEC 13818-1, ITU T Rec. H.262†|†ISO/IEC 13818-2 and ISO/IEC 13818-3.





Table 2-43 -- Hierarchy descriptor
Syntax

No. of bits

Mnemonic

hierarchy_descriptor() {







}










2.6.7 Semantic definition of fields in hierarchy descriptor



hierarchy_type -- The hierarchical relation between the associated hierarchy layer and its hierarchy embedded layer is defined by the following table 2-44 below.



Table 2-44 -- Hierarchy_type field values
value

description

0

reserved

1

ITU T Rec. H.262†|†ISO/IEC 13818-2 Spatial Scalability

15


Base layer


hierarchy_layer_index -- The hierarchy_layer_index is a 6 bit field that defines a unique index of the associated program element in a table of coding layer hierarchies. Indices shall be unique within a single program definition.
hierarchy_embedded_layer_index -- The hierarchy_embedded_layer_index is a 6 bit field that defines the hierarchy table index of the program element that needs to be accessed before decoding of the elementary stream associated with this hierarchy_descriptor. This field is undefined if the hierarchy_type value is 15 (base layer).
hierarchy_channel-- The hierarchy_channel is a 6 bit field that indicates the intended channel number for the associated program element in an ordered set of transmission channels. The most robust transmission channel is defined by the lowest value of this field with respect to the overall transmission hierarchy definition.
Note - A given hierarchy_channel may at the same time be assigned to several program elements.

2.6.8 Registration descriptor

The registration_descriptor provides a method to uniquely and unambiguously identify formats of private data.




Table 2-45 -- Registration descriptor
Syntax

No. of bits

Identifier

registration_descriptor() {







}










2.6.9 Semantic definition of fields in registration descriptor



format_identifier -- The format_identifier is a 32-bit value obtained from a Registration Authority as designated by SC29.
additional_identification_info -- The meaning of additional_identification_info bytes, if any, are defined by the assignee of that format_identifier, and once defined they shall not change.

2.6.10 Data stream alignment descriptor

The data stream alignment descriptor describes which type of alignment is present in the associated elementary stream. If the data_alignment_indicator in the PES packet header is set to '1' and the descriptor is present alignment as specified in this descriptor is required.




Table 2-46 -- Data stream alignment descriptor
Syntax

No. of bits

Mnemonic

data_stream_alignment_descriptor() {






}










2.6.11 Semantics of fields in data stream alignment descriptor



alignment_type -- Table 2-47 describes the video alignment type when the data_alignment_indicator in the PES packet header has a value of '1'. In each case of alignment_type value the first PES_packet_data_byte following the PES header shall be the first byte of a start code of the type indicated in table 2-47. At the beginning of a video sequence, the alignment shall occur at the start code of the first sequence header.
Note - Specifying alignment type '01' from table 2-47 below does not preclude the alignment from beginning at a GOP or SEQ header.
The definition of access unit for video data is given in 2.1.1 on page 3.


Table 2-47 -- Video stream alignment values
alignment type

description

00

reserved

01

Slice, or video access unit

05-FF


reserved

Table 2-48 describes the audio alignment type when the data_alignment_indicator in the PES packet header has a value of '1'. In this case the first PES_packet_data_byte following the PES header is the first byte of an audio syncword.




Table 2-48 -- Audio stream alignment values
alignment type

description

00

reserved

01

syncword

02-FF

reserved



2.6.12 Target background grid descriptor

It is possible to have one or more video streams which, when decoded, are not intended to occupy the full display area (e.†g. a monitor). The combination of target_background_grid_descriptor and video_window_descriptors allows the display of these video windows in their desired locations. The target_background_grid_descriptor is used to describe a grid of unit pixels projected on to the display area. The video_window_descriptor is then used to describe, for the associated stream, the location on the grid at which the top left pixel of the display window or display rectangle of the video presentation unit should be displayed. This is represented in the diagram below.





Figure 2-8 -- Target background grid descriptor display area

Table 2-49 -- Target background grid descriptor

Syntax

No. of bits

Mnemonic

target_background_grid_descriptor() {






}










2.6.13 Semantics of fields in target background grid descriptor



horizontal_size -- The horizontal size of the target background grid in pixels.
vertical_size -- The vertical size of the target background grid in pixels.
aspect_ratio_information -- Specifies the sample aspect ratio or display aspect ratio of the target background grid. Aspect_ratio_information is defined in ITU T Rec. H.262†|†ISO/IEC 13818-2.

2.6.14 Video window descriptor

The video window descriptor is used to describe the window characteristics of the associated video elementary stream. Its values reference the target background grid descriptor for the same stream. Also see target_background_grid_descriptor in 2.6.12 on page 72.




Table 2-50 -- Video window descriptor
Syntax

No. of bits

Mnemonic

video_window_descriptor() {






}










2.6.15 Semantic definition of fields in video window descriptor



horizontal_offset -- The value indicates the horizontal position of the top left pixel of the current video display window or display rectangle if indicated in the picture display extension on the target background grid for display as defined in the target_background_grid_descriptor. The top left pixel of the video window shall be one of the pixels of the target background grid (refer to Figure 2-8 on page 73).
vertical_offset -- The value indicates the vertical position of the top left pixel of the current video display window or display rectangle if indicated in the picture display extension on the target background grid for display as defined in the target_background_grid_descriptor. The top left pixel of the video window shall be one of the pixels of the target background grid (refer to Figure 2-8 on page 73).
window_priority -- The value indicates how windows overlap. A value of 0 being lowest priority and a value of 15 is the highest priority, i.e. windows with priority 15 are always visible.

2.6.16 Conditional access descriptor

The conditional access descriptor is used to specify both system-wide conditional access management information such as EMMs and elementary stream-specific information such as ECMs. It may be used in both the TS_program_map_section (refer to 2.4.4.8 on page 49) and the program_stream_map (refer to 2.5.3 on page 58). If any elementary stream is scrambled, a CA descriptor shall be present for the program containing that elementary stream. If any system-wide conditional access management information exists within a Transport Stream, a CA descriptor shall be present in the conditional access table.


When the CA descriptor is found in the TS_program_map_section (table_id = 0x02), the CA_PID points to packets containing program related access control information, such as ECMs. Its presence as program information indicates applicability to the entire program. In the same case, its presence as extended ES information indicates applicability to the associated program element. Provision is also made for private data.
When the CA descriptor is found in the CA_section (table_id = 0x01), the CA_PID points to packets containing system-wide and/or access control management information, such as EMMs.
The contents of the Transport Stream packets containing conditional access information are privately defined.


Table 2-51 -- Conditional access descriptor
Syntax

No. of bits

Mnemonic

CA_descriptor() {







}









2.6.17 Semantic definition of fields in conditional access descriptor



CA_system_ID -- This is an 16 bit field indicating the type of CA system applicable for either the associated ECM and/or EMM streams. The coding of this is privately defined and is not specified by ITU T†|†ISO/IEC.
CA_PID -- This is an 13 bit field indicating the PID of the Transport Stream packets which shall contain either ECM or EMM information for the CA systems as specified with the associated CA_system_ID. The contents (ECM or EMM) of the packets indicated by the CA_PID is determined from the context in which the CA_PID is found, i.e. a TS_program_map_section or the CA table in the Transport Stream, or the stream_id field in the Program Stream.

2.6.18 ISO 639 language descriptor

The language descriptor is used to specify the language of the associated program element.




Table 2-52 -- ISO 639 language descriptor
Syntax

No. of bits

Mnemonic

ISO_639_language_descriptor() {







}










2.6.19 Semantic definition of fields in ISO 639 language descriptor



ISO_639_language_code -- Identifies the language or languages used by the associated program element. The ISO_639_language_code contains a 3 character code as specified by ISO 639 part 2. Each character is coded into 8 bits according to ISO 8859-1 and inserted in order into this 24 bit field. In the case of multilingual audio streams the sequence of ISO_639_language_code fields shall reflect the content of the audio stream.
audio_type -- The audio_type is an 8 bit field which specifies the type of stream defined by the table 2-53.


Table 2-53 -- Audio type values
value

description

0x00

undefined

0x01

clean effects

0x04-0xFF



reserved


clean effects -- This field indicates that the referenced program element has no language.
hearing impaired -- This field indicates that the referenced program element is prepared for the hearing impaired.
visual_impaired_commentary -- This field indicates that the referenced program element is prepared for the visually impaired viewer.

2.6.20 System clock descriptor

This descriptor conveys information about the system clock that was used to generate the timestamps.


If an external clock reference was used, the external_clock_reference_indicator may be set to '1'. The decoder optionally may use the same external reference if it is available.
If the system clock is more accurate than the 30 ppm accuracy required then the accuracy of the clock can be communicated by encoding it in the clock_accuracy fields. The clock frequency accuracy is:
clock_accuracy_integer 10-clock_accuracy_exponent ppm (2-26)

If clock_accuracy_integer is set to 0, then the system clock accuracy is 30 ppm.

When the external_clock_reference_indicator is set to '1', the clock accuracy pertains to the external reference clock.


Table 2-54 -- System clock descriptor
Syntax

No. of bits

Mnemonic

system_clock_descriptor() {






}










2.6.21 Semantic definition of fields in system clock descriptor



external_clock_reference_indicator -- This is a 1 bit indicator. When set to '1', it indicates that the system clock has been derived from an external frequency reference that may be available at the decoder.
clock_accuracy_integer -- This is a 6 bit integer. Together with the clock_accuracy_exponent, it gives the fractional frequency accuracy of the system clock in parts per million.
clock_accuracy_exponent -- This is a 3 bit integer. Together with the clock_accuracy_integer, it gives the fractional frequency accuracy of the system clock in parts per million.

2.6.22 Multiplex buffer utilization descriptor

The multiplex buffer utilization descriptor provides bounds on the occupancy of the STD multiplex buffer. This information is intended for devices such as remultiplexers, which may use this information to support a desired remultiplexing strategy.





Table 2-55 -- Multiplex buffer utilization descriptor
Syntax

No. of bits

Mnemonic

multiplex_buffer_utilization_descriptor() {







}










2.6.23 Semantic definition of fields in multiplex buffer utilization descriptor



bound_valid_flag -- A value of ë1í indicates that the LTW_offset_lower_bound and the LTW_offset_upper_bound fields are valid.
LTW_offset_lower_bound -- This 15 bit field is defined only if the bound_valid flag has a value of '1'. When defined, this field has the units of (27 MHz / 300) clock periods, as defined for the LTW_offset (refer to 2.4.3.4 on page 23). The LTW_offset_lower_bound represents the lowest value that any LTW_offset field would have, if that field were coded in every packet of the stream or streams referenced by this descriptor. Actual LTW_offset fields may or may not be coded in the bitstream when the multiplex buffer utilization descriptor is present. This bound is valid until the next occurrence of this descriptor.
LTW_offset_upper_bound -- This 15 bit field is defined only if the bound_valid has a value of '1'. When defined, this field has the units of (27 MHz / 300) clock periods, as defined for the LTW_offset (refer to 2.4.3.4 on page 23). The LTW_offset_upper_bound represents the largest value that any LTW_offset field would have, if that field were coded in every packet of the stream or streams referenced by this descriptor. Actual LTW_offset fields may or may not be coded in the bitstream when the multiplex buffer utilization descriptor is present. This bound is valid until the next occurrence of this descriptor.

2.6.24 Copyright descriptor

The copyright_descriptor provides a method to enable audio-visual works identification. This copyright_descriptor applies to programs or program elements within programs.




Table 2-56 -- Copyright descriptor
Syntax

No. of bits

Identifier

copyright_descriptor() {







}










2.6.25 Semantic definition of fields in copyright descriptor



copyright_identifier -- This field is a 32-bit value obtained from the Registration Authority.
additional_copyright_info -- The meaning of additional_copyright_info bytes, if any, are defined by the assignee of that copyright_identifier, and once defined they shall not change.

2.6.26 Maximum bitrate descriptor






Table 2-57 -- Maximum bitrate descriptor
Syntax

No. of bits

Identifier

maximum_bitrate_descriptor() {







descriptor_tag

8

uimsbf

}










2.6.27 Semantic definition of fields in maximum bitrate descriptor



maximum_bitrate -- The maximum bitrate is coded as a 22 bit positive integer in this field. The value indicates an upper bound of the bitrate, including transport overhead, that will be encountered in this program element or program. The value of maximum_bitrate is expressed in units of 50†bytes/second. The maximum_bitrate_descriptor is included in the Program Map Table (PMT). Its presence as extended program information indicates applicability to the entire program. Its presence as ES information indicates applicability to the associated program element.

2.6.28 Private data indicator descriptor






Table 2-58 -- Private data indicator descriptor
Syntax

No. of bits

Identifier

private_data_indicator_descriptor() {






}










2.6.29 Semantic definition of fields in Private data indicator descriptor



private_data_indicator -- The value of the private_data_indicator is private and shall not be defined by ITU T†|†ISO/IEC.

2.6.30 Smoothing buffer descriptor

This descriptor is optional and conveys information about the size of a smoothing buffer, SBn, associated with this descriptor, and the associated leak rate out of that buffer, for the program element(s) that it refers to.


In the case of Transport Streams, bytes of Transport Stream packets of the associated program element(s) present in the Transport Stream are input to a buffer SBn of size given by sb_size, at the time defined by equation 2-4 on page 14.
In the case of Program Streams, bytes of all PES packets of the associated elementary streams, are input to a buffer SBn of size given by sb_size, at the time defined by equation 2-21 on page 56.
When there is data present in this buffer, bytes are removed from this buffer at a rate defined by sb_leak_rate. The buffer, SBn shall never overflow. During the continuous existence of a program, the value of the elements of the Smoothing Buffer descriptor of the different program element(s) in the program, shall not change.
The meaning of the smoothing buffer_descriptor is only defined when it is included in the PMT or the Program Stream Map.
If, in the case of a Transport Stream, it is present in the ES info in the Program Map Table, all Transport Stream packets of the PID of that program element enter the smoothing buffer.
If, in the case of a Transport Stream, it is present in the program information, the following Transport Stream packets enter the smoothing buffer:


  1. all Transport Stream packets of all PIDs listed as elementary_PIDs in the extended program information as well as,

  2. all Transport Stream packets of the PID which is equal to the PMT_PID of this section.

  3. all Transport Stream packets of the PCR_PID of the program.

All bytes that enter the associated buffer also exit it.


At any given time there shall be at most one descriptor referring to any individual program element and at most one descriptor referring to the program in its entirety.



Table 2-59 -- Smoothing buffer descriptor

Syntax

No. of bits

Mnemonic

smoothing_buffer_descriptor () {







descriptor_tag

8

uimsbf

}










2.6.31 Semantic definition of fields in smoothing buffer descriptor




sb_leak_rate -- This 22 bit field is coded as a positive integer. Its contents indicate the value of the leak rate out of the SBn buffer for the associated elementary stream or other data in units of 400 bits/second.
sb_size -- This 22 bit field is coded as a positive integer. Its contents indicate the value of the size of the multiplexing buffer smoothing buffer SBn for the associated elementary stream or other data in units of 1 byte.

2.6.32 STD descriptor

This descriptor is optional and applies only to the T-STD model and to video elementary streams, and is used as specified 2.4.2 on page 11. This descriptor does not apply to Program Streams.





Table 2-60 -- STD descriptor
Syntax

No. of bits

Mnemonic

STD_descriptor () {







descriptor_tag

8

uimsbf

}










2.6.33 Semantic definition of fields in STD descriptor



leak_valid_flag -- The leak_valid_flag is a 1 bit flag. When set to '1', the transfer of data from the buffer MBn to the buffer EBn in the T-STD uses the leak method as defined in 2.4.2.3 on page 15. If this flag has a value equal to '0', and the vbv_delay fields present in the associated video stream do not have the value 0xFFFF, the transfer of data from the buffer MBn to the buffer EBn uses the vbv_delay method as defined in 2.4.2.3 on page 15.

2.6.34 IBP_descriptor

This optional descriptor provides information about some characteristics of the sequence of frame types in the video sequence.





Table 2-61 -- IBP descriptor
Syntax

No. of bits

Mnemonic

ibp_descriptor() {







descriptor_tag

8

uimsbf

}









2.6.35 Semantic definition of fields in IBP_descriptor



closed_gop_flag - This 1 bit flag when set to '1' indicates that a group of pictures header is encoded before every I-frame and that the closed_gop flag is set to '1' in all group of pictures headers in the video sequence.
identical_gop_flag - This 1 bit flag when set to '1' indicates that the number of P-frames and B-frames between I-frames, and the picture coding types and sequence of picture types between I-pictures is the same throughout the sequence, except possibly for the pictures up to the second I-picture.
max_gop_length - This fourteen bit unsigned integer indicates the maximum number of the coded pictures between any two consecutive I-pictures in the sequence. The value of 0 is forbidden.

2.7 Restrictions on the multiplexed stream semantics



2.7.1 Frequency of coding the system clock reference

The Program Stream shall be constructed such that the time interval between the bytes containing the last bit of system_clock_reference_base fields in successive packs shall be less than or equal to 0,7 seconds. Thus:



for all i and i' where i and i' are the indexes of the bytes containing the last bit of consecutive system_clock_reference_base fields.

2.7.2 Frequency of coding the program clock reference

The Transport Stream shall be constructed such that the time interval between the bytes containing the last bit of program_clock_reference_base fields in successive occurrences of the PCRs in Transport Stream packets of the PCR_PID for each program shall be less than or equal to 0,1 seconds. Thus:



for all i and i' where i and i' are the indexes of the bytes containing the last bit of consecutive program_clock_reference_base fields in the Transport Stream packets of the PCR_PID for each program.
There shall be at least two(2) PCRs, from the specified PCR_PID within a Transport Stream, between consecutive PCR discontinuities (refer to 2.4.3.4 on page 23) to facilitate phase locking and extrapolation of byte delivery times.

2.7.3 Frequency of coding the elementary stream clock reference

The Program Stream and Transport Stream shall be constructed such that if the elementary stream clock reference field is coded in any PES packets containing data of a given elementary stream the time interval in the PES_STD between the bytes containing the last bit of successive ESCR_base fields shall be less than or equal to 0,7 seconds. In PES Streams the ESCR encoding is required with the same interval. Thus:



for all i and i' where i and i' are the indexes of the bytes containing the last bits of consecutive ESCR_base fields.
Note - The coding of elementary stream clock reference fields is optional; they need not be coded. However if they are coded, this constraint applies.

2.7.4 Frequency of presentation time stamp coding

The Program Stream and Transport Stream shall be constructed so that the maximum difference between coded presentation time stamps referring to each elementary video or audio stream is 0,7 seconds. Thus:



for all n, k, and k'' satisfying:


  1. Pn(k) and Pn(k'') are presentation units for which presentation time stamps are coded;




  1. k and k'' are chosen so that there is no presentation unit, Pn(k') with a coded presentation time stamp and with k < k' < k''; and




  1. No decoding discontinuity exists in elementary stream n between Pn(k) and Pn(k'').

In the case of still pictures the 0,7 second constraint does not apply.



2.7.5 Conditional coding of time stamps

For each elementary stream of a Program Stream or Transport Stream, a presentation time stamp (PTS) shall be encoded for the first access unit.


A decoding discontinuity exists at the start of an access unit An(j) in an elementary stream n if the decoding time tdn(j) of that access unit is greater than the largest value permissible given the specified tolerance on the system_clock_frequency. For video, except when trick mode status is true or when low_delay flag is '1', this is allowed only at the start of a video sequence. If a decoding discontinuity exists in any elementary video or audio stream in the Transport Stream or Program Stream then a PTS shall be encoded referring to the first access unit after each decoding discontinuity except when trick mode status is true.
When low_delay is '1' a PTS shall be encoded for the first access unit after an EBn or Bn underflow.
A PTS may only be present in a ITU T Rec. H.222.0†|†ISO/IEC 13818-1 video or audio elementary stream PES packet header if the first byte of a picture start code or the first byte of an audio access unit is contained in the PES packet.
A decoding_time_stamp (DTS) shall appear in a PES packet header if and only if the following two conditions are met:

  1. A PTS is present in the PES packet header

  2. The decoding time differs from the presentation time.



2.7.6 Timing constraints for scalable coding


If an audio sequence is coded using an ISO/IEC 13818-3 extension bitstream, corresponding decoding/presentation units in the two layers shall have identical PTS values.


If a video sequence is coded as a SNR enhancement of another sequence, as specified in 7.8 of ITU T Rec. H.262†|†ISO/IEC 13818-2, the set of presentation times for both sequences shall be the same.
If a video sequence is coded as two partitions, as specified in 7.10 of ITU T Rec. H.262†|†ISO/IEC 13818 2, the set of presentation times for both partitions shall be the same.
If a video sequence is coded as a spatial scalable enhancement of another sequence, as specified in 7.7 of ITU T Rec. H.262†|†ISO/IEC 13818-2, the following shall apply.


  1. If both sequences have the same frame rate, the set of presentation times for both sequences shall be the same.


Note - that this does not imply that the picture coding type is the same in both layers.


  1. If the sequences have different frame rates, the set of presentation times shall be such that as many presentation times as possible shall be common to both sequences.




  1. The picture from which the spatial prediction is made shall be one of the following:




  1. the coincident or most recently decoded lower layer picture;




  1. the coincident or most recently decoded lower layer picture that is an I or P picture.




  1. the second most recently decoded lower layer picture that is an I or P picture, and provided that the lower layer does not have low_delay set to '1'.

If a video sequence is coded as a temporally scalable enhancement of another sequence, as specified in 7.9 of ITU T Rec. H.262†|†ISO/IEC 13818-2, the following lower layer pictures may be used as the reference. Times are relative to presentation times:




  1. the coincident or most recently presented lower layer picture;




  1. the next lower layer picture to be presented.



2.7.7 Frequency of coding P STD_buffer_size in PES packet headers

In a Program Stream, the P STD_buffer_scale and P STD_buffer_size fields shall occur in the first PES packet of each elementary stream and again whenever the value changes. They may also occur in any other PES packet.



2.7.8 Coding of system header in the Program Stream

In a Program Stream, the system header may be present in any pack, immediately following the pack header. The system header shall be present in the first pack of an Program Stream. The values encoded in all the system headers in the Program Stream shall be identical.



2.7.9 Constrained system parameter Program Stream

A Program Stream is a "constrained system parameters stream" (CSPS) if it conforms to the bounds specified in this clause. Program Streams are not limited to the bounds specified by the CSPS. A CSPS may be identified by means of the CSPS_flag defined in the system header in 2.5.3.5 on page 60. The CSPS is a subset of all possible Program Streams.



Packet Rate

In the CSPS, the maximum rate at which packets shall arrive at the input to the P STD is 300 packets per second if the value encoded in the rate_bound field (refer to 2.5.3.6 on page 60)is less than or equal to 4†500†000 bits/second if the packet_rate_restriction_flag is set to '1', and less than or equal to 2†000†000 bits / second if the packet_rate_restriction_flag is set to '0'. For higher bit rates the CSPS packet rate is bounded by a linear relation to the value encoded in the rate_bound field.


Specifically, for all packs p in the Program Stream when the packet_rate_restriction_flag (refer to 2.5.3.5 on page 60) is set to a value of '1',
(2-27)

and if the packet_rate_restriction_flag is set to a value of '0'

(2-28)



where
(2-29)

NP is the number of packet_start_code_prefixes and system_header_start_codes between adjacent pack_start_codes or between the last pack_start_code and the MPEG_program_end_code as defined in table 2-31 on page 58 and semantics in 2.5.3.2 on page 58.


t(i) is the time, measured in seconds, encoded in the SCR of pack p.
t(i') is the time, measured in seconds, encoded in the SCR for pack p+1, immediately following pack p, or in the case of the final pack in the Program Stream, the time of arrival of the byte containing the last bit of the MPEG_program_end_code.

Decoder Buffer Size

In the case of a CSPS the maximum size of each input buffer in the system target decoder is bounded. Different bounds apply for video elementary streams and audio elementary streams.


In the case of a video elementary stream in a CSPS the following applies:
BSn has a size which is equal to the sum of the size of the video buffer verifier (vbv) as specified in ITU T Rec. H.262†|†ISO/IEC 13818-2 and an additional amount of buffering BSadd BS add is specified as

where Rvmax is the maximum video bit rate of the video elementary stream.
In the case of an audio elementary stream in a CSPS the following applies:
.

2.7.10 Transport Stream




Sample rate locking in Transport Streams

In the Transport Stream there shall be a specified constant rational relationship between the audio sampling rate and the system clock frequency in the system target decoder, and likewise a specified rational relationship between the video frame rate and the system clock frequency.The system_clock_frequency is defined in 2.4.2 on page 11. The video frame rate is specified in ITU T Rec. H.262†|†ISO/IEC 13818-2 or in ISO/IEC 11172-2. The audio sampling rate is specified in ISO/IEC 13818-3 or in ISO/IEC 11172-3. For all presentation units in all audio elementary streams in the Transport Stream, the ratio of system_clock_frequency to the actual audio sampling rate, SCASR, is constant and equal to the value indicated in the following table at the nominal sampling rate indicated in the audio stream.


(2-30)

The notation denotes real division.




Nominal audio sampling frequency (kHz)

16

32

22,05

44,1

24

48

SCASR

27†000†000
-------------
16†000

27†000†000
----------
32†000

27†000†000
-------------
22†050

27†000†000
----------
44†100

27†000†000
------------
24†000

27†000†000
----------
48†000

For all presentation units in all video elementary streams in the Transport Stream, the ratio of system_clock_frequency to the actual video frame rate, SCFR, is constant and equal to the value indicated in the following table at the nominal frame rate indicated in the video stream.


(2-31)


Nominal frame rate (Hz)

23,976

24

25

29,97

30

50

59,94

60

SCFR

1†126†125

1†125†000

1†080†000

900†900

900†000

540†000

450†450

450†000

The values of the SCFR are exact. The actual frame rate differs slightly from the nominal rate in cases where the nominal rate is 23,976, 29,97, or 59,94 frames per second.



2.8 Compatibility with ISO/IEC 11172


The Program Stream of ITU T Rec. H.222.0†|†ISO/IEC 13818-1 is defined to be forward compatible with ISO/IEC 11172-1. Decoders of the Program Stream as defined in ITU T Rec. H.222.0†|†ISO/IEC 13818-1 shall also support decoding of ISO/IEC 11172-1.


1   ...   11   12   13   14   15   16   17   18   ...   23


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət