International organisation for standardisation organisation internationale de normalisation



Download 2.79 Mb.
Page19/29
Date28.05.2018
Size2.79 Mb.
#51637
1   ...   15   16   17   18   19   20   21   22   ...   29

A.2 Technical elements




A.2.1 Definitions



A.2.1.1 DSM CC -- Digital Storage Media Control Commands that are specified by this International Standard for the control of digital storage media at a local or remote site containing an ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream.
A.2.1.2 DSM ACK -- The acknowledgment from the DSM CC command receiver to the command initiator.
A.2.1.3 MPEG bitstream -- An ISO/IEC 11172-1 Systems stream, ITU‑T Rec. H.222.0†|†ISO/IEC 13818‑1 Program Stream or ITU‑T Rec. H.222.0†|†ISO/IEC 13818‑1 Transport stream.
A.2.1.4 DSM CC server -- A system, either local or remote, used to store and/or retrieve an ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream.
A.2.1.5 Point of random access -- A point in an ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream with the property that for at least one elementary stream within the bitstream, the next access unit, 'N', completely contained in the bitstream can be decoded without reference to previous access units, and for every elementary stream in the bitstream all access units with the same or later presentation times are completely contained subsequently in the bitstream and can be completely decoded by a system target decoder without access to information prior to the point of random access. The bitstream as stored on the DSM may have certain points of random access; the output of the DSM may include additional points of random access manufactured by the DSM's own manipulation of the stored material (e.g., storing quantization matrices so that a sequence header can be generated whenever necessary). A point of random access has an associated PTS, namely the actual or implied PTS of access unit 'N'.
A.2.1.6 Current Operational PTS Value -- The actual or implied PTS associated with the last point of random access preceding the last access unit provided from the DSM from the currently selected ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream. If no access unit has been provided from this ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream the DSM is incapable of providing random access into the current bitstream, then the current operational PTS value is the first point of random access in the ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream.
A.2.1.7 DSM CC Bitstream -- A sequence of bits satisfying the syntax of section A.2.2.

A.2.2 Specification of DSM CC syntax





  • Every DSM control command shall commence with a start_code, as specified in Table A-1 below;

  • Every DSM control command shall have a packet_length to specify the number of byte in a DSM CC packet;

  • When the DSM CC bitstream is transmitted as a PES packet as defined in 2.4.3.6 of this Specification, the fields up to the packet_length field are identical to those specified in 2.4.3.6. In other words, if the DSM CC packet is encapsulated in a PES packet the PES packet start code is the only start code at the beginning of the packet;

  • The actual control command or acknowledgment shall follow the last byte of the packet_length field;

  • An acknowledgment stream shall be provided by the DSM control bitstream receiver after the requested operation is started or is completed, depending on the command received;

  • At all times the DSM is responsible for providing a normative ITU‑T Rec. H.222.0†|†ISO/IEC 13818‑1 stream. This may include manipulating the trick mode bits defined in 2.4.3.6 of this Specification.





Table A-1 -- ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 DSM CC

Syntax

No. of bits

Mnemonic

DSM_CC() {







packet_start_code_prefix

24

bslbf

stream_id

8

uimsbf

packet_length

16

uimsbf

command_id

8

uimsbf

If (command_id == '01') {







control()







} else if (command_id == '02') {







ack()







}







}










A.2.3 Semantics of fields in specification of DSM CC syntax



packet_start_code_prefix -- This is a 24-bit code. Together with the stream_id that follows it constitutes a DSM CC packet start code that identifies the beginning of a DSM CC packet bitstream. The packet_start_code_prefix is the bit string '0000 0000 0000 0000 0000 0001' (0x000001).
stream_id -- This 8-bit field specifies the bitstream type and shall have a value '1111 0010' for the DSM CC bitstream. Refer to table 2-19 of this Specification
packet_length -- This 16-bit field specifiesthe number of bytes in the DSM CC packet immediately following the last byte of this field.
command_id -- This 8-bit unsigned integer identifies the bitstream is a control command or an acknowledgment stream. The values are defined in table A-2 below.



Table A-2 -- Command_id assigned values

value

command_id

0x00

forbidden

0x01

control

0x02

ack

0x03-0xFF

reserved



A.2.4 Control layer



Constraints on setting flags in DSM CC control:


  • At most one of the flags for select, playback and storage shall be set to '1' for each DSM control command. If none of these bits are set, then this command shall be ignored.

  • At most one of pause_mode, resume_mode, stop_mode, play_flag, and jump_flag shall be set for each retrieval command. If none of these bits are set then this command shall be ignored.

  • At most one of record_flag and stop_mode shall be selected for each storage command. If none of these bits are set then this command shall ignored.





Table A-3 -- DSM_CC control

Syntax

No. of bits

Mnemonic

control() {







select_flag

1

bslbf

retrieval_flag

1

bslbf

storage_flag

1

bslbf

reserved

12

bslbf

marker_bit

1

bslbf

If (select_flag == '1') {







bitstream_id[31..17]

15

bslbf

marker_bit

1

bslbf

bitstream_id[16..2]

15

bslbf

marker_bit

1

bslbf

bitstream_id[1..0]

2

bslbf

select_mode

5

bslbf

marker_bit

1

bslbf

}







if ( retrieve_flag == '1') {







jump_flag

1

bslbf

play_flag

1

bslbf

pause_mode

1

bslbf

resume_mode

1

bslbf

stop_mode

1

bslbf

reserved

10

bslbf

marker_bit

1

bslbf

if (jump_flag == '1') {







reserved

7

bslbf

direction_indicator

1

bslbf

time_code()







}







if (play_flag == '1' ){







speed_mode

1

bslbf

direction_indicator

1

bslbf

reserved

6

bslbf

time_code()







}







}







if (storage_flag == '1') {







reserved

6

bslbf

record_flag

1

bslbf

stop_mode

1

bslbf

if (record_flag == '1') {







time_code()







}







}







}









A.2.5 Semantics of fields in control layer



marker_bit --This is a one-bit marker that is always set to '1' to avoid start code emulation.
reserved_bits -- This 12 bit field is reserved for future use by ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 for DSM control commands. Until otherwise specified by ITU‑T†|†ISO/IEC it shall have the value '0000†0000†0000'..
select_flag -- This 1-bit flag when set to '1' specifies a bitstream selection operation. When it is set to '0' no bitstream selection operation shall occur.
retrieval_flag -- This 1-bit flag when set to '1' specifies that a specific retrieval [playback] action will occur. The operation starts from the current operational PTS value.
storage_flag -- This 1-bit flag when set to '1' specifies that a storage operation is to be executed.
bitstream_ID -- This 32 bit field is coded in three parts. The parts are combined to form an unsigned integer specifying which ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream is to be selected. It is the DSM serverís responsibility to map the names of the ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstreams stored on its DSM uniquely to a series of numbers which could be represented by the bitstream_ID.
select_mode -- This 5-bit unsigned integer specifies which mode of bitstream operation is requested. The table 2.4 specifies the defined modes.



Table A-4 -- Select mode assigned values

code

mode

0x00

forbidden

0x01

storage

0x02

retrieval

0x03-0x1F

reserved


jump_flag -- This 1-bit flag when set to '1' specifies a jump in the playback pointer to a new access unit. The new PTS is specified by a relative time_code with respect to the current operational PTS value. This function is only valid when the current ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream is in the "stop" mode.
play_flag -- This 1-bit flag when set to '1' specifies to play a bitstream for a certain time period. The speed, direction, and play duration are additional parameters in the bit stream. The play starts from the current operational PTS value.
pause_mode -- This is a one-bit code specifying to pause the playback action and keep the playback pointer at the current operational PTS value.
resume_mode -- This is a one-bit code specifying to continue the playback action from the current operational PTS value. Resume only has meaning if the current bitstream is in the "pause" state, and the bitstream will be set to the forward play state at normal speed.
stop_mode -- This is a one-bit code specifying to stop a bitstream transmission.
direction_indicator -- This is a one-bit code to indicate the playback direction. If this bit is set to ì1î, it stands for a forward play. Otherwise it stands for a backward play.
speed_mode -- This is a 1-bit code to specify the speed scale. If this bit is set to '1', it specifies that the speed is normal play. If this bit is set to '0', it specifies that the speed is fast play [i.e., fast forward or fast reverse].
record_flag -- This is one-bit flag to specify the request of recording the bitstream from an end user to a DSM for a specified duration or until the reception of a stop command, whichever comes first.

A.2.6 Acknowledgment layer



Constraints on setting flags in DSM CC control:
Only one of the acks bits specified below can be set to '1' for each DSM ack bitstream.



Table A-5 -- DSM CC Acknowledgment

Syntax

No. of bits

Mnemonic

ack() {







select_ack

1

bslbf

retrieval_ack

1

bslbf

storage_ack

1

bslbf

error_ack

1

bslbf

reserved

10

bslbf

marker_bit

1

bslbf

cmd_status

1

bslbf

If (cmd_status == '1' &&

(retrieval_ack == '1' || storage_ack == '1')) {









time_code()







}







}









A.2.7 Semantics of fields in acknowledgment layer



select_ack -- This 1-bit field when it is set to '1' indicates that the ack() command is to acknowledge a select command.
retrieval_ack -- This 1-bit field when set to '1' indicates that the ack() command is to acknowledge a retrieval command.
storage_ack -- This 1-bit field when set to '1' indicates that the ack() command is to acknowledge a storage command.
error_ack -- This 1-bit field when set to '1' indicates a DSM error. The defined errors are EOF [end of file on forward play or start of file on reverse play] on a stream being retrieved and Disk Full on a stream being stored. If this bit is set to '1', cmd_status is undefined. The current bitstream is still selected.
cmd_status -- This 1-bit flag set to '1' indicates that the command is accepted. When set to '0' it indicates the command is rejected. The semantics vary according to the command received as follows:


  • If select_ack is set and cmd_status is set to '1', it specifies that the ITU‑T Rec. H.222.0†|†ISO/IEC 13818‑1 bitstream is selected and the server is ready to provide the selected mode of operation. The current operational PTS value is set to the first point of random access of the newly selected ITU‑T Rec. H.222.0†|†ISO/IEC 13818-1 bitstream. If cmd_status is set to '0', the operation has failed and no bitstream is selected.




  • If retrieval_ack is set and cmd_status is set to '1', it specifies that the retrieval operation is initiated for all retrieval commands. The position of the current operational PTS pointer is reported by the succeeding time_code.




  • For the play_flag command with infinite_time_flag != '1', a second acknowledgment will be sent. This will acknowledge that the play operation has ended by reaching the duration defined by the play_flag command.




  • If the cmd_status is set to '0' in a retrieval acknowledgment, the operation has failed. Possible reasons for this failure include an invalid bitstream_ID, jumping beyond the end of a file, or a function not supported such as reverse play in standard speed.




  • If storage_ack is set, it specifies that the storage operation is being started for the record_flag command or is completed by the stop_mode command. The PTS of the last complete access unit stored is reported by the succeeding time_code.




  • If the recording operation is ended by reaching the duration defined by the storage_flag command, another acknowledgment shall be sent and the current operational PTS value after the recording shall be reported.




  • If the cmd_status is set to '0' in a storage acknowledgment, the operation has failed. Possible reasons for this failure include an invalid bitstream_ID, or the inability of the DSM to store data.



A.2.8 Time code



Constraints on time code


  • A forward operation of specified duration given by a time_code terminates after the actual or implied PTS of an access unit is observed such that PTS minus the current operational PTS value at the start of the operation modulo 233 exceeds the duration.

  • A backward operation of specified duration given by a time_code terminates after the actual or implied PTS of an access unit is observed such that current operational PTS value at the start of the operation minus that PTS modulo 233 exceeds the duration.

  • For all the commands in the control() layer, the time_code is specified as a relative duration with respect to the current operational PTS value.

  • For all the commands in the ack() layer, the time_code is specified by the current operational PTS value.


Table A-6 -- Time code

Syntax

No. of bits

Mnemonic

time_code() {







reserved

7

bslbf

infinite_time_flag

1

bslbf

if (infinite_time_flag == '0') {







reserved

4

bslbf

PTS[32..30]

3

bslbf

marker

1

bslbf

PTS[29..15]

15

bslbf

marker_bit

1

bslbf

PTS[14..0]

15

bslbf

marker_bit

1

bslbf

}







}









A.2.9 Semantics of fields in time code



infinite_time_flag -- This 1-bit flag when set to '1' indicates an infinite time period. This flag is set to '1' in applications where a time period for a specific operation could not be defined in advance.
PTS[32..0] -- The presentation timestamp of the access unit of the bitstream. Depending upon the function, this can be an absolute value or a relative time delay in cycles of the 90 kHz system clock.


Download 2.79 Mb.

Share with your friends:
1   ...   15   16   17   18   19   20   21   22   ...   29




The database is protected by copyright ©ininet.org 2024
send message

    Main page