1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
|
Network Working Group J. Ott
Request for Comments: 4629 Helsinki University of Technology
Obsoletes: 2429 C. Bormann
Updates: 3555 Universitaet Bremen TZI
Category: Standards Track G. Sullivan
Microsoft
S. Wenger
Nokia
R. Even, Ed.
Polycom
January 2007
RTP Payload Format for ITU-T Rec. H.263 Video
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
This document describes a scheme to packetize an H.263 video stream
for transport using the Real-time Transport Protocol (RTP) with any
of the underlying protocols that carry RTP.
The document also describes the syntax and semantics of the Session
Description Protocol (SDP) parameters needed to support the H.263
video codec.
The document obsoletes RFC 2429 and updates the H263-1998 and
H263-2000 media type in RFC 3555.
Ott, et al. Standards Track [Page 1]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Table of Contents
1. Introduction ....................................................3
1.1. Terminology ................................................3
2. New H.263 Features ..............................................3
3. Usage of RTP ....................................................4
3.1. RTP Header Usage ...........................................5
3.2. Video Packet Structure .....................................6
4. Design Considerations ...........................................7
5. H.263+ Payload Header ...........................................9
5.1. General H.263+ Payload Header ..............................9
5.2. Video Redundancy Coding Header Extension ..................10
6. Packetization Schemes ..........................................12
6.1. Picture Segment Packets and Sequence Ending
Packets (P=1) .............................................12
6.1.1. Packets that begin with a Picture Start Code .......12
6.1.2. Packets that begin with GBSC or SSC ................13
6.1.3. Packets that begin with an EOS or EOSBS Code .......14
6.2. Encapsulating Follow-on Packet (P=0) ......................15
7. Use of this Payload Specification ..............................15
8. Media Type Definition ..........................................17
8.1. Media Type Registrations ..................................17
8.1.1. Registration of Media Type video/H263-1998 .........17
8.1.2. Registration of Media Type video/H263-2000 .........21
8.2. SDP Usage .................................................22
8.2.1. Usage with the SDP Offer Answer Model ..............23
9. Backward Compatibility to RFC 2429 .............................25
9.1. New Optional Parameters for SDP ...........................25
10. IANA Considerations ...........................................25
11. Security Considerations .......................................25
12. Acknowledgments ...............................................26
13. Changes from Previous Versions of the Documents ...............26
13.1. Changes from RFC 2429 ....................................26
13.2. Changes from RFC 3555 ....................................26
14. References ....................................................26
14.1. Normative References .....................................26
14.2. Informative References ...................................27
Ott, et al. Standards Track [Page 2]
^L
RFC 4629 H.263 RTP Payload Format January 2007
1. Introduction
This document specifies an RTP payload header format applicable to
the transmission of video streams based on the 1998 and 2000 versions
of International Telecommunication Union-Telecommunication
Standardization Sector (ITU-T) Recommendation H.263 [H263]. Because
the 1998 and 2000 versions of H.263 are a superset of the 1996
syntax, this format can also be used with the 1996 version of H.263
and is recommended for this use by new implementations. This format
replaces the payload format in RFC 2190 [RFC2190], which continues to
be used by some existing implementations, and can be useful for
backward compatibility. New implementations supporting H.263 SHALL
use the payload format described in this document. RFC 2190 is moved
to historic status [RFC4628].
The document updates the media type registration that was previously
in RFC 3555 [RFC3555].
This document obsoletes RFC 2429 [RFC2429].
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119] and
indicate requirement levels for compliant RTP implementations.
2. New H.263 Features
The 1998 version of ITU-T Recommendation H.263 added numerous coding
options to improve codec performance over the 1996 version. In this
document, the 1998 version is referred to as H.263+ and the 2000
version as H.263++.
Among the new options, the ones with the biggest impact on the RTP
payload specification and the error resilience of the video content
are the slice structured mode, the independent segment decoding mode,
the reference picture selection mode, and the scalability mode. This
section summarizes the impact of these new coding options on
packetization. Refer to [H263] for more information on coding
options.
The slice structured mode was added to H.263+ for three purposes: to
provide enhanced error resilience capability, to make the bitstream
more amenable for use with an underlying packet transport such as
RTP, and to minimize video delay. The slice structured mode supports
fragmentation at macroblock boundaries.
Ott, et al. Standards Track [Page 3]
^L
RFC 4629 H.263 RTP Payload Format January 2007
With the independent segment decoding (ISD) option, a video picture
frame is broken into segments and encoded in such a way that each
segment is independently decodable. Utilizing ISD in a lossy network
environment helps to prevent the propagation of errors from one
segment of the picture to others.
The reference picture selection mode allows the use of an older
reference picture rather than the one immediately preceding the
current picture. Usually, the last transmitted frame is implicitly
used as the reference picture for inter-frame prediction. If the
reference picture selection mode is used, the data stream carries
information on what reference frame should be used, indicated by the
temporal reference as an ID for that reference frame. The reference
picture selection mode may be used with or without a back channel,
which provides information to the encoder about the internal status
of the decoder. However, no special provision is made herein for
carrying back channel information. The Extended RTP Profile for RTP
Control Protocol (RTCP)-based Feedback [RFC4585] MAY be used as a
back channel mechanism.
H.263+ also includes bitstream scalability as an optional coding
mode. Three kinds of scalability are defined: temporal, signal-to-
noise ratio (SNR), and spatial scalability. Temporal scalability is
achieved via the disposable nature of bi-directionally predicted
frames, or B-frames. (A low-delay form of temporal scalability known
as P-picture temporal scalability can also be achieved by using the
reference picture selection mode, described in the previous
paragraph.) SNR scalability permits refinement of encoded video
frames, thereby improving the quality (or SNR). Spatial scalability
is similar to SNR scalability except that the refinement layer is
twice the size of the base layer in the horizontal dimension,
vertical dimension, or both.
H.263++ added some new functionalities. Among the new
functionalities are support for interlace mode, specified in H.263,
annex W.6.3.11, and the definition of profiles and levels in H.263
annex X.
3. Usage of RTP
When transmitting H.263+ video streams over the Internet, the output
of the encoder can be packetized directly. All the bits resulting
from the bitstream (including the fixed length codes and variable
length codes) will be included in the packet, the only exception
being that when the payload of a packet begins with a Picture, GOB,
Slice, End of Sequence (EOS), or End of Sub-Bit Stream (EOSBS) start
code, the first 2 (all-zero) bytes of the start code shall be removed
and replaced by setting an indicator bit in the payload header.
Ott, et al. Standards Track [Page 4]
^L
RFC 4629 H.263 RTP Payload Format January 2007
For H.263+ bitstreams coded with temporal, spatial, or SNR
scalability, each layer may be transported to a different network
address. More specifically, each layer may use a unique IP address
and port number combination. The temporal relations between layers
shall be expressed using the RTP timestamp so that they can be
synchronized at the receiving ends in multicast or unicast
applications.
The H.263+ video stream will be carried as payload data within RTP
packets. A new H.263+ payload header is defined in Section 5; it
updates the one specified in RFC 2190. This section defines the
usage of the RTP fixed header and H.263+ video packet structure.
3.1. RTP Header Usage
Each RTP packet starts with a fixed RTP header. The following fields
of the RTP fixed header used for H.263+ video streams are further
emphasized here.
Marker bit (M bit): The Marker bit of the RTP header is set to 1 when
the current packet carries the end of current frame and is 0
otherwise.
Payload Type (PT): The RTP profile for a particular class of
applications will assign a payload type for this encoding, or, if
that is not done, a payload type in the dynamic range shall be chosen
by the sender.
Timestamp: The RTP Timestamp encodes the sampling instance of the
first video frame data contained in the RTP data packet. The RTP
timestamp shall be the same on successive packets if a video frame
occupies more than one packet. In a multilayer scenario, all
pictures corresponding to the same temporal reference should use the
same timestamp. If temporal scalability is used (if B-frames are
present), the timestamp may not be monotonically increasing in the
RTP stream. If B-frames are transmitted on a separate layer and
address, they must be synchronized properly with the reference
frames. Refer to ITU-T Recommendation H.263 [H263] for information
on required transmission order to a decoder. For an H.263+ video
stream, the RTP timestamp is based on a 90 kHz clock, the same as
that of the RTP payload for H.261 stream [RFC2032]. Since both the
H.263+ data and the RTP header contain time information, that timing
information must run synchronously. That is, both the RTP timestamp
and the temporal reference (TR in the picture header of H.263) should
carry the same relative timing information. Any H.263+ picture clock
frequency can be expressed as 1800000/(cd*cf) source pictures per
second, in which cd is an integer from 1 to 127 and cf is either 1000
or 1001. Using the 90 kHz clock of the RTP timestamp, the time
Ott, et al. Standards Track [Page 5]
^L
RFC 4629 H.263 RTP Payload Format January 2007
increment between each coded H.263+ picture should therefore be an
integer multiple of (cd*cf)/20. This will always be an integer for
any "reasonable" picture clock frequency (for example, it is 3003 for
30/1.001 Hz NTSC; 3600 for 25 Hz PAL; 3750 for 24 Hz film; and 1500,
1250, or 1200 for the computer display update rates of 60, 72, or 75
Hz, respectively). For RTP packetization of hypothetical H.263+
bitstreams using "unreasonable" custom picture clock frequencies,
mathematical rounding could become necessary for generating the RTP
timestamps.
3.2. Video Packet Structure
A section of an H.263+ compressed bitstream is carried as a payload
within each RTP packet. For each RTP packet, the RTP header is
followed by an H.263+ payload header, which is followed by a number
of bytes of a standard H.263+ compressed bitstream. The size of the
H.263+ payload header is variable, depending on the payload involved,
as detailed in the Section 4. The layout of the RTP H.263+ video
packet is shown as
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: RTP Header :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: H.263+ Payload Header :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: H.263+ Compressed Data Stream :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Any H.263+ start codes can be byte aligned by an encoder by using the
stuffing mechanisms of H.263+. As specified in H.263+, picture,
slice, and EOSBS starts codes shall always be byte aligned, and GOB
and EOS start codes may be byte aligned. For packetization purposes,
GOB start codes should be byte aligned; however, since this is not
required in H.263+, there may be some cases where GOB start codes are
not aligned, such as when transmitting existing content, or when
using H.263 encoders that do not support GOB start code alignment.
In this case, Follow-on Packets (see Section 5.2) should be used for
packetization.
All H.263+ start codes (Picture, GOB, Slice, EOS, and EOSBS) begin
with 16 zero-valued bits. If a start code is byte aligned and it
occurs at the beginning of a packet, these two bytes shall be removed
from the H.263+ compressed data stream in the packetization process
and shall instead be represented by setting a bit (the P bit) in the
payload header.
Ott, et al. Standards Track [Page 6]
^L
RFC 4629 H.263 RTP Payload Format January 2007
4. Design Considerations
The goals of this payload format are to specify an efficient way of
encapsulating an H.263+ standard compliant bitstream and to enhance
the resiliency towards packet losses. Due to the large number of
different possible coding schemes in H.263+, a copy of the picture
header with configuration information is inserted into the payload
header when appropriate. The use of that copy of the picture header
along with the payload data can allow decoding of a received packet
even in cases when another packet containing the original picture
header becomes lost.
There are a few assumptions and constraints associated with this
H.263+ payload header design. The purpose of this section is to
point out various design issues and also to discuss several coding
options provided by H.263+ that may impact the performance of
network-based H.263+ video.
o The optional slice structured mode described in Annex K of [H263]
enables more flexibility for packetization. Similar to a picture
segment that begins with a GOB header, the motion vector
predictors in a slice are restricted to reside within its
boundaries. However, slices provide much greater freedom in the
selection of the size and shape of the area that is represented as
a distinct decodable region. In particular, slices can have a
size that is dynamically selected to allow the data for each slice
to fit into a chosen packet size. Slices can also be chosen to
have a rectangular shape, which is conducive for minimizing the
impact of errors and packet losses on motion-compensated
prediction. For these reasons, the use of the slice structured
mode is strongly recommended for any applications used in
environments where significant packet loss occurs.
o In non-rectangular slice structured mode, only complete slices
SHOULD be included in a packet. In other words, slices should not
be fragmented across packet boundaries. The only reasonable need
for a slice to be fragmented across packet boundaries is when the
encoder that generated the H.263+ data stream could not be
influenced by an awareness of the packetization process (such as
when sending H.263+ data through a network other than the one to
which the encoder is attached, as in network gateway
implementations). Optimally, each packet will contain only one
slice.
Ott, et al. Standards Track [Page 7]
^L
RFC 4629 H.263 RTP Payload Format January 2007
o The independent segment decoding (ISD) described in Annex R of
[H263] prevents any data dependency across slice or GOB boundaries
in the reference picture. It can be utilized to improve
resiliency further in high loss conditions.
o If ISD is used in conjunction with the slice structure, the
rectangular slice submode shall be enabled, and the dimensions and
quantity of the slices present in a frame shall remain the same
between each two intra-coded frames (I-frames), as required in
H.263+. The individual ISD segments may also be entirely intra
coded from time to time to realize quick error recovery without
adding the latency time associated with sending complete INTRA-
pictures.
o When the slice structure is not applied, the insertion of a
(preferably byte-aligned) GOB header can be used to provide resync
boundaries in the bitstream, as the presence of a GOB header
eliminates the dependency of motion vector prediction across GOB
boundaries. These resync boundaries provide natural locations for
packet payload boundaries.
o H.263+ allows picture headers to be sent in an abbreviated form in
order to prevent repetition of overhead information that does not
change from picture to picture. For resiliency, sending a
complete picture header for every frame is often advisable. This
means (especially in cases with high packet loss probability in
which picture header contents are not expected to be highly
predictable) that the sender may find it advisable always to set
the subfield UFEP in PLUSPTYPE to '001' in the H.263+ video
bitstream. (See [H263] for the definition of the UFEP and
PLUSPTYPE fields).
o In a multi-layer scenario, each layer may be transmitted to a
different network address. The configuration of each layer, such
as the enhancement layer number (ELNUM), reference layer number
(RLNUM), and scalability type should be determined at the start of
the session and should not change during the course of the
session.
o All start codes can be byte aligned, and picture, slice, and EOSBS
start codes are always byte aligned. The boundaries of these
syntactical elements provide ideal locations for placing packet
boundaries.
o We assume that a maximum Picture Header size of 504 bits is
sufficient. The syntax of H.263+ does not explicitly prohibit
larger picture header sizes, but the use of such extremely large
picture headers is not expected.
Ott, et al. Standards Track [Page 8]
^L
RFC 4629 H.263 RTP Payload Format January 2007
5. H.263+ Payload Header
For H.263+ video streams, each RTP packet shall carry only one H.263+
video packet. The H.263+ payload header shall always be present for
each H.263+ video packet. The payload header is of variable length.
A 16-bit field of the general payload header, defined in 5.1, may be
followed by an 8 bit field for Video Redundancy Coding (VRC)
information, and/or by a variable-length extra picture header as
indicated by PLEN. These optional fields appear in the order given
above, when present.
If an extra picture header is included in the payload header, the
length of the picture header in number of bytes is specified by PLEN.
The minimum length of the payload header is 16 bits, PLEN equal to 0
and no VRC information being present.
The remainder of this section defines the various components of the
RTP payload header. Section 6 defines the various packet types that
are used to carry different types of H.263+ coded data, and Section 7
summarizes how to distinguish between the various packet types.
5.1. General H.263+ Payload Header
The H.263+ payload header is structured as follows:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RR |P|V| PLEN |PEBIT|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RR: 5 bits
Reserved bits. It SHALL be zero and MUST be ignored by receivers.
P: 1 bit
Indicates the picture start or a picture segment (GOB/Slice) start
or a video sequence end (EOS or EOSBS). Two bytes of zero bits
then have to be prefixed to the payload of such a packet to
compose a complete picture/GOB/slice/EOS/EOSBS start code. This
bit allows the omission of the two first bytes of the start codes,
thus improving the compression ratio.
Ott, et al. Standards Track [Page 9]
^L
RFC 4629 H.263 RTP Payload Format January 2007
V: 1 bit
Indicates the presence of an 8-bit field containing information
for Video Redundancy Coding (VRC), which follows immediately after
the initial 16 bits of the payload header, if present. For syntax
and semantics of that 8-bit VRC field, see Section 5.2.
PLEN: 6 bits
Length, in bytes, of the extra picture header. If no extra
picture header is attached, PLEN is 0. If PLEN>0, the extra
picture header is attached immediately following the rest of the
payload header. Note that the length reflects the omission of the
first two bytes of the picture start code (PSC). See Section 6.1.
PEBIT: 3 bits
Indicates the number of bits that shall be ignored in the last
byte of the picture header. If PLEN is not zero, the ignored bits
shall be the least significant bits of the byte. If PLEN is zero,
then PEBIT shall also be zero.
5.2. Video Redundancy Coding Header Extension
Video Redundancy Coding (VRC) is an optional mechanism intended to
improve error resilience over packet networks. Implementing VRC in
H.263+ will require the Reference Picture Selection option described
in Annex N of [H263]. By having multiple "threads" of independently
inter-frame predicted pictures, damage to an individual frame will
cause distortions only within its own thread, leaving the other
threads unaffected. From time to time, all threads converge to a
so-called sync frame (an INTRA picture or a non-INTRA picture that is
redundantly represented within multiple threads); from this sync
frame, the independent threads are started again. For more
information on codec support for VRC, see [Vredun].
P-picture temporal scalability is another use of the reference
picture selection mode and can be considered a special case of VRC in
which only one copy of each sync frame may be sent. It offers a
thread-based method of temporal scalability without the increased
delay caused by the use of B pictures. In this use, sync frames sent
in the first thread of pictures are also used for the prediction of a
second thread of pictures that fall temporally between the sync
frames to increase the resulting frame rate. In this use, the
pictures in the second thread can be discarded in order to obtain a
reduction of bit rate or decoding complexity without harming the
ability to decode later pictures. A third or more threads, can also
be added, but each thread is predicted only from the sync frames
Ott, et al. Standards Track [Page 10]
^L
RFC 4629 H.263 RTP Payload Format January 2007
(which are sent at least in thread 0) or from frames within the same
thread.
While a VRC data stream is (like all H.263+ data) totally self-
contained, it may be useful for the transport hierarchy
implementation to have knowledge about the current damage status of
each thread. On the Internet, this status can easily be determined
by observing the marker bit, the sequence number of the RTP header,
the thread-id, and a circling "packet per thread" number. The latter
two numbers are coded in the VRC header extension.
The format of the VRC header extension is as follows:
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| TID | Trun |S|
+-+-+-+-+-+-+-+-+
TID: 3 bits
Thread ID. Up to 7 threads are allowed. Each frame of H.263+ VRC
data will use as reference information only sync frames or frames
within the same thread. By convention, thread 0 is expected to be
the "canonical" thread, which is the thread from which the sync frame
should ideally be used. In the case of corruption or loss of the
thread 0 representation, a representation of the sync frame with a
higher thread number can be used by the decoder. Lower thread
numbers are expected to contain representations of the sync frames
equal to or better than higher thread numbers in the absence of data
corruption or loss. See [Vredun] for a detailed discussion of VRC.
Trun: 4 bits
Monotonically increasing (modulo 16) 4-bit number counting the packet
number within each thread.
S: 1 bit
A bit that indicates that the packet content is for a sync frame. An
encoder using VRC may send several representations of the same "sync"
picture, in order to ensure that, regardless of which thread of
pictures is corrupted by errors or packet losses, the reception of at
least one representation of a particular picture is ensured (within
at least one thread). The sync picture can then be used for the
prediction of any thread. If packet losses have not occurred, then
the sync frame contents of thread 0 can be used, and those of other
threads can be discarded (and similarly for other threads). Thread 0
is considered the "canonical" thread, the use of which is preferable
Ott, et al. Standards Track [Page 11]
^L
RFC 4629 H.263 RTP Payload Format January 2007
to all others. The contents of packets having lower thread numbers
shall be considered as having a higher processing and delivery
priority than those with higher thread numbers. Thus, packets having
lower thread numbers for a given sync frame shall be delivered first
to the decoder under loss-free and low-time-jitter conditions, which
will result in the discarding of the sync contents of the higher-
numbered threads as specified in Annex N of [H263].
6. Packetization Schemes
6.1. Picture Segment Packets and Sequence Ending Packets (P=1)
A picture segment packet is defined as a packet that starts at the
location of a Picture, GOB, or slice start code in the H.263+ data
stream. This corresponds to the definition of the start of a video
picture segment as defined in H.263+. For such packets, P=1 always.
An extra picture header can sometimes be attached in the payload
header of such packets. Whenever an extra picture header is attached
as signified by PLEN>0, only the last six bits of its picture start
code, '100000', are included in the payload header. A complete
H.263+ picture header with byte-aligned picture start code can be
conveniently assembled on the receiving end by prepending the sixteen
leading '0' bits.
When PLEN>0, the end bit position corresponding to the last byte of
the picture header data is indicated by PEBIT. The actual bitstream
data shall begin on an 8-bit byte boundary following the payload
header.
A sequence ending packet is defined as a packet that starts at the
location of an EOS or EOSBS code in the H.263+ data stream. This
delineates the end of a sequence of H.263+ video data (more H.263+
video data may still follow later, however, as specified in ITU-T
Recommendation H.263). For such packets, P=1 and PLEN=0 always.
The optional header extension for VRC may or may not be present as
indicated by the V bit flag.
6.1.1. Packets that begin with a Picture Start Code
Any packet that contains the whole or the start of a coded picture
shall start at the location of the picture start code (PSC) and
should normally be encapsulated with no extra copy of the picture
header. In other words, normally PLEN=0 in such a case. However, if
the coded picture contains an incomplete picture header (UFEP =
"000"), then a representation of the complete (UFEP = "001") picture
header may be attached during packetization in order to provide
Ott, et al. Standards Track [Page 12]
^L
RFC 4629 H.263 RTP Payload Format January 2007
greater error resilience. Thus, for packets that start at the
location of a picture start code, PLEN shall be zero unless both of
the following conditions apply:
1) The picture header in the H.263+ bitstream payload is incomplete
(PLUSPTYPE present and UFEP="000").
2) The additional picture header that is attached is not incomplete
(UFEP="001").
A packet that begins at the location of a Picture, GOB, slice, EOS,
or EOSBS start code shall omit the first two (all zero) bytes from
the H.263+ bitstream and signify their presence by setting P=1 in the
payload header.
Here is an example of encapsulating the first packet in a frame
(without an attached redundant complete picture header):
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RR |1|V|0|0|0|0|0|0|0|0|0| bitstream data without the :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: first two 0 bytes of the PSC
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6.1.2. Packets that begin with GBSC or SSC
For a packet that begins at the location of a GOB or slice start code
(GBSC), PLEN may be zero or nonzero, depending on whether a redundant
picture header is attached to the packet. In environments with very
low packet loss rates, or when picture header contents are very
seldom likely to change (except as can be detected from the GOB Frame
ID (GFID) syntax of H.263+), a redundant copy of the picture header
is not required. However, in less ideal circumstances a redundant
picture header should be attached for enhanced error resilience, and
its presence is indicated by PLEN>0.
Ott, et al. Standards Track [Page 13]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Assuming a PLEN of 9 and P=1, below is an example of a packet that
begins with a byte-aligned GBSC or a Slice Start Code (SSC):
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RR |1|V|0 0 1 0 0 1|PEBIT|1 0 0 0 0 0| picture header :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: starting with TR, PTYPE ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | bitstream :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: data starting with GBSC/SSC without its first two 0 bytes
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Notice that only the last six bits of the picture start code,
'100000', are included in the payload header. A complete H.263+
picture header with byte aligned picture start code can be
conveniently assembled, if needed, on the receiving end by prepending
the sixteen leading '0' bits.
6.1.3. Packets that begin with an EOS or EOSBS Code
For a packet that begins with an EOS or EOSBS code, PLEN shall be
zero, and no Picture, GOB, or Slice start codes shall be included
within the same packet. As with other packets beginning with start
codes, the two all-zero bytes that begin the EOS or EOSBS code at the
beginning of the packet shall be omitted, and their presence shall be
indicated by setting the P bit to 1 in the payload header.
System designers should be aware that some decoders may interpret the
loss of a packet containing only EOS or EOSBS information as the loss
of essential video data and may thus respond by not displaying some
subsequent video information. Since EOS and EOSBS codes do not
actually affect the decoding of video pictures, they are somewhat
unnecessary to send at all. Because of the danger of
misinterpretation of the loss of such a packet (which can be detected
by the sequence number), encoders are generally to be discouraged
from sending EOS and EOSBS.
Below is an example of a packet containing an EOS code:
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RR |1|V|0|0|0|0|0|0|0|0|0|1|1|1|1|1|1|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ott, et al. Standards Track [Page 14]
^L
RFC 4629 H.263 RTP Payload Format January 2007
6.2. Encapsulating Follow-on Packet (P=0)
A Follow-on Packet contains a number of bytes of coded H.263+ data
that do not start at a synchronization point. That is, a Follow-on
Packet does not start with a Picture, GOB, Slice, EOS, or EOSBS
header, and it may or may not start at a macroblock boundary. Since
Follow-on Packets do not start at synchronization points, the data at
the beginning of a Follow-on Packet is not independently decodable.
For such packets, P=0 always. If the preceding packet of a Follow-on
Packet got lost, the receiver may discard that Follow-on Packet, as
well as all other following Follow-on Packets. Better behavior, of
course, would be for the receiver to scan the interior of the packet
payload content to determine whether any start codes are found in the
interior of the packet that can be used as resync points. The use of
an attached copy of a picture header for a Follow-on Packet is useful
only if the interior of the packet or some subsequent Follow-on
Packet contains a resync code, such as a GOB or slice start code.
PLEN>0 is allowed, since it may allow resync in the interior of the
packet. The decoder may also be resynchronized at the next segment
or picture packet.
Here is an example of a Follow-on Packet (with PLEN=0):
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| RR |0|V|0|0|0|0|0|0|0|0|0| bitstream data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
7. Use of this Payload Specification
There is no syntactical difference between a picture segment packet
and a Follow-on Packet, other than the indication P=1 for picture
segment or sequence ending packets and P=0 for Follow-on Packets.
See the following for a summary of the entire packet types and ways
to distinguish between them.
It is possible to distinguish between the different packet types by
checking the P bit and the first 6 bits of the payload along with the
header information. The following table shows the packet type for
permutations of this information (see also the picture/GOB/Slice
header descriptions in H.263+ for details):
Ott, et al. Standards Track [Page 15]
^L
RFC 4629 H.263 RTP Payload Format January 2007
-------------+--------------+----------------------+----------------
First 6 bits | P-Bit | PLEN | Packet | Remarks
of Payload |(payload hdr.)| |
-------------+--------------+----------------------+----------------
100000 | 1 | 0 | Picture | Typical Picture
100000 | 1 | > 0 | Picture | Note UFEP
1xxxxx | 1 | 0 | GOB/Slice/EOS/EOSBS | See possible GNs
1xxxxx | 1 | > 0 | GOB/Slice | See possible GNs
Xxxxxx | 0 | 0 | Follow-on |
Xxxxxx | 0 | > 0 | Follow-on | Interior Resync
-------------+--------------+----------------------+----------------
The details regarding the possible values of the five bit Group
Number (GN) field that follows the initial "1" bit when the P-bit is
"1" for a GOB, Slice, EOS, or EOSBS packet are found in Section 5.2.3
of H.263 [H263].
As defined in this specification, every start of a coded frame (as
indicated by the presence of a PSC) has to be encapsulated as a
picture segment packet. If the whole coded picture fits into one
packet of reasonable size (which is dependent on the connection
characteristics), this is the only type of packet that may need to be
used. Due to the high compression ratio achieved by H.263+, it is
often possible to use this mechanism, especially for small spatial
picture formats such as Quarter Common Intermediate Format (QCIF) and
typical Internet packet sizes around 1500 bytes.
If the complete coded frame does not fit into a single packet, two
different ways for the packetization may be chosen. In case of very
low or zero packet loss probability, one or more Follow-on Packets
may be used for coding the rest of the picture. Doing so leads to
minimal coding and packetization overhead, as well as to an optimal
use of the maximal packet size, but does not provide any added error
resilience.
The alternative is to break the picture into reasonably small
partitions, called Segments (by using the Slice or GOB mechanism),
that do offer synchronization points. By doing so and using the
Picture Segment payload with PLEN>0, decoding of the transmitted
packets is possible even in cases in which the Picture packet
containing the picture header was lost (provided any necessary
reference picture is available). Picture Segment packets can also be
used in conjunction with Follow-on Packets for large segment sizes.
Ott, et al. Standards Track [Page 16]
^L
RFC 4629 H.263 RTP Payload Format January 2007
8. Media Type Definition
This section specifies optional parameters that MAY be used to select
optional features of the H.263 codec. The parameters are specified
here as part of the Media Type registration for the ITU-T H.263
codec. A mapping of the parameters into the Session Description
Protocol (SDP) [RFC4566] is also provided for applications that use
SDP. Multiple parameters SHOULD be expressed as a media type string,
in the form of a semicolon-separated list of parameter=value pairs.
8.1. Media Type Registrations
This section describes the media types and names associated with this
payload format. The section updates the previous registered version
in RFC 3555 [RFC3555].
8.1.1. Registration of Media Type video/H263-1998
Type name: video
Subtype name: H263-1998
Required parameters: None
Optional parameters:
SQCIF: Specifies the MPI (Minimum Picture Interval) for SQCIF
resolution. Permissible values are integer values from 1 to 32,
which correspond to a maximum frame rate of 30/(1.001 * the
specified value) frames per second.
QCIF: Specifies the MPI (Minimum Picture Interval) for QCIF
resolution. Permissible values are integer values from 1 to 32,
which correspond to a maximum frame rate of 30/(1.001 * the
specified value) frames per second.
CIF: Specifies the MPI (Minimum Picture Interval) for CIF
resolution. Permissible values are integer values from 1 to 32,
which correspond to a maximum frame rate of 30/(1.001 * the
specified value) frames per second.
CIF4: Specifies the MPI (Minimum Picture Interval) for 4CIF
resolution. Permissible values are integer values from 1 to 32,
which correspond to a maximum frame rate of 30/(1.001 * the
specified value) frames per second.
Ott, et al. Standards Track [Page 17]
^L
RFC 4629 H.263 RTP Payload Format January 2007
CIF16: Specifies the MPI (Minimum Picture Interval) for 16CIF
resolution. Permissible values are integer values from 1 to 32,
which correspond to a maximum frame rate of 30/(1.001 * the
specified value) frames per second.
CUSTOM: Specifies the MPI (Minimum Picture Interval) for a
custom-defined resolution. The custom parameter receives three
comma-separated values, Xmax, Ymax, and MPI. The Xmax and Ymax
parameters describe the number of pixels in the X and Y axis and
must be evenly divisible by 4. The permissible values for MPI are
integer values from 1 to 32, which correspond to a maximum frame
rate of 30/(1.001 *the specified value).
A system that declares support of a specific MPI for one of the
resolutions SHALL also implicitly support a lower resolution with
the same MPI.
A list of optional annexes specifies which annexes of H.263 are
supported. The optional annexes are defined as part of H263-1998,
H263-2000. H.263 annex X [H263] defines profiles that group
annexes for specific applications. A system that supports a
specific annex SHALL specify its support using the optional
parameters. If no annex is specified, then the stream is Baseline
H.263.
The allowed optional parameters for the annexes are "F", "I", "J",
"T", "K", "N", and "P".
"F", "I", "J", and "T" if supported, SHALL have the value "1". If
not supported, they should not be listed or SHALL have the value
"0".
"K" can receive one of four values 1 - 4:
1: Slices In Order, Non-Rectangular
2: Slices In Order, Rectangular
3: Slices Not Ordered, Non-Rectangular
4: Slices Not Ordered, Rectangular
"N": Reference Picture Selection mode - Four numeric choices
(1 - 4) are available, representing the following modes:
1: NEITHER: No back-channel data is returned from the decoder to
the encoder.
Ott, et al. Standards Track [Page 18]
^L
RFC 4629 H.263 RTP Payload Format January 2007
2: ACK: The decoder returns only acknowledgment messages.
3: NACK: The decoder returns only non-acknowledgment messages.
4: ACK+NACK: The decoder returns both acknowledgment and non-
acknowledgment messages.
No special provision is made herein for carrying back channel
information. The Extended RTP Profile for RTCP-based Feedback
[RFC4585] MAY be used as a back channel mechanism.
"P": Reference Picture Resampling, in which the following submodes
are represented as a number from 1 to 4:
1: dynamicPictureResizingByFour
2: dynamicPictureResizingBySixteenthPel
3: dynamicWarpingHalfPel
4: dynamicWarpingSixteenthPel
Example: P=1,3
PAR: Arbitrary Pixel Aspect Ratio. Defines the width:height ratio
by two colon-separated integers between 0 and 255. Default ratio
is 12:11, if not otherwise specified.
CPCF: Arbitrary (Custom) Picture Clock Frequency: CPCF is a
comma-separated list of eight parameters specifying a custom
picture clock frequency and the MPI (minimum picture interval) for
the supported picture sizes when using that picture clock
frequency. The first two parameters are cd, which is an integer
from 1 to 127, and cf, which is either 1000 or 1001. The custom
picture clock frequency is given by the formula 1800000/(cd*cf)
provided in the RTP Timestamp semantics in Section 3.1 above (as
specified in H.263 section 5.1.7). Following the values of cd and
cf, the remaining six parameters are SQCIFMPI, QCIFMPI, CIFMPI,
CIF4MPI, CIF16MPI, and CUSTOMMPI, which each specify an integer
MPI (minimum picture interval) for the standard picture sizes
SQCIF, QCIF, CIF, 4CIF, 16CIF, and CUSTOM, respectively, as
described above. The MPI value indicates a maximum frame rate of
1800000/(cd*cf*MPI) frames per second for MPI parameters having a
value in the range from 1 to 2048, inclusive. An MPI value of 0
specifies that the associated picture size is not supported for
the custom picture clock frequency. If the CUSTOMMPI parameter is
not equal to 0, the CUSTOM parameter SHALL also be present (so
Ott, et al. Standards Track [Page 19]
^L
RFC 4629 H.263 RTP Payload Format January 2007
that the Xmax and Ymax dimensions of the custom picture size are
defined).
BPP: BitsPerPictureMaxKb. Maximum number of bits in units of 1024
bits allowed to represent a single picture. If this parameter is
not present, then the default value, based on the maximum
supported resolution, is used. BPP is integer value between 0 and
65536.
HRD: Hypothetical Reference Decoder. See annex B of H.263
specification [H263]. This parameter, if supported, SHALL have
the value "1". If not supported, it should not be listed or SHALL
have the value "0".
Encoding considerations:
This media type is framed and binary; see Section 4.8 in [RFC4288]
Security considerations: See Section 11 of RFC 4629
Interoperability considerations:
These are receiver options; current implementations will not send
any optional parameters in their SDP. They will ignore the
optional parameters and will encode the H.263 stream without any
of the annexes. Most decoders support at least QCIF and CIF fixed
resolutions, and they are expected to be available almost in every
H.263-based video application.
Published specification: RFC 4629
Applications that use this media type:
Audio and video streaming and conferencing tools.
Additional information: None
Person and email address to contact for further information:
Roni Even: roni.even@polycom.co.il
Intended usage: COMMON
Restrictions on usage:
This media type depends on RTP framing and thus is only defined
for transfer via RTP [RFC3550]. Transport within other framing
protocols is not defined at this time.
Ott, et al. Standards Track [Page 20]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Author: Roni Even
Change controller:
IETF Audio/Video Transport working group, delegated from the IESG.
8.1.2. Registration of Media Type video/H263-2000
Type name: video
Subtype name: H263-2000
Required parameters: None
Optional parameters:
The optional parameters of the H263-1998 type MAY be used with
this media subtype. Specific optional parameters that may be used
with the H263-2000 type are as follows:
PROFILE: H.263 profile number, in the range 0 through 10,
specifying the supported H.263 annexes/subparts based on H.263
annex X [H263]. The annexes supported in each profile are listed
in table X.1 of H.263 annex X. If no profile or H.263 annex is
specified, then the stream is Baseline H.263 (profile 0 of H.263
annex X).
LEVEL: Level of bitstream operation, in the range 0 through 100,
specifying the level of computational complexity of the decoding
process. The level are described in table X.2 of H.263 annex X.
According to H.263 annex X, support of any level other than level
45 implies support of all lower levels. Support of level 45
implies support of level 10.
A system that specifies support of a PROFILE MUST specify the
supported LEVEL.
INTERLACE: Interlaced or 60 fields indicates the support for
interlace display mode, as specified in H.263 annex W.6.3.11.
This parameter, if supported SHALL have the value "1". If not
supported, it should not be listed or SHALL have the value "0".
Encoding considerations:
This media type is framed and binary; see Section 4.8 in [RFC4288]
Security considerations: See Section 11 of RFC 4629
Ott, et al. Standards Track [Page 21]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Interoperability considerations:
The optional parameters PROFILE and LEVEL SHALL NOT be used with
any of the other optional parameters.
Published specification: RFC 4629
Applications that use this media type:
Audio and video streaming and conferencing tools.
Additional information: None
Person and email address to contact for further information :
Roni Even: roni.even@polycom.co.il
Intended usage: COMMON
Restrictions on usage:
This media type depends on RTP framing and thus is only defined
for transfer via RTP [RFC3550]. Transport within other framing
protocols is not defined at this time.
Author: Roni Even
Change controller:
IETF Audio/Video Transport working group delegated from the IESG.
8.2. SDP Usage
The media types video/H263-1998 and video/H263-2000 are mapped to
fields in the Session Description Protocol (SDP) as follows:
o The media name in the "m=" line of SDP MUST be video.
o The encoding name in the "a=rtpmap" line of SDP MUST be H263-1998
or H263-2000 (the media subtype).
o The clock rate in the "a=rtpmap" line MUST be 90000.
o The optional parameters, if any, MUST be included in the "a=fmtp"
line of SDP. These parameters are expressed as a media type
string, in the form of a semicolon-separated list of
parameter=value pairs. The optional parameters PROFILE and LEVEL
SHALL NOT be used with any of the other optional parameters.
Ott, et al. Standards Track [Page 22]
^L
RFC 4629 H.263 RTP Payload Format January 2007
8.2.1. Usage with the SDP Offer Answer Model
For offering H.263 over RTP using SDP in an Offer/Answer model
[RFC3264], the following considerations are necessary.
Codec options (F,I,J,K,N,P,T): These options MUST NOT appear unless
the sender of these SDP parameters is able to decode those options.
These options designate receiver capabilities even when sent in a
"sendonly" offer.
Profile: The offer of a SDP profile parameter signals that the
offerer can decode a stream that uses the specified profile. Each
profile uses different H.263 annexes, so there is no implied
relationship between them. An answerer SHALL NOT change the profile
parameter and MUST reject the payload type containing an unsupported
profile. A decoder that supports a profile SHALL also support H.263
baseline profile (profile 0). An offerer is RECOMMENDED to offer all
the different profiles it is interested to use as individual payload
types. In addition an offerer, sending an offer using the PROFILE
optional parameter, is RECOMMENDED to offer profile 0, as this will
enable communication, and in addition allows an answerer to add those
profiles it does support in an answer.
LEVEL: The LEVEL parameter in an offer indicates the maximum
computational complexity supported by the offerer in performing
decoding for the given PROFILE. An answerer MAY change the value
(both up and down) of the LEVEL parameter in its answer to indicate
the highest value it supports.
INTERLACE: The parameter MAY be included in either offer or answer to
indicate that the offerer or answerer respectively supports reception
of interlaced content. The inclusion in either offer or answer is
independent of each other.
Picture sizes and MPI: Supported picture sizes and their
corresponding minimum picture interval (MPI) information for H.263
can be combined. All picture sizes can be advertised to the other
party, or only a subset. The terminal announces only those picture
sizes (with their MPIs) which it is willing to receive. For example,
MPI=2 means that the maximum (decodable) picture rate per second is
15/1.001 (approximately 14.985).
If the receiver does not specify the picture size/MPI optional
parameter, then it SHOULD be ready to receive QCIF resolution with
MPI=1.
Parameters offered first are the most preferred picture mode to be
received.
Ott, et al. Standards Track [Page 23]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Here is an example of the usage of these parameters:
CIF=4;QCIF=3;SQCIF=2;CUSTOM=360,240,2
This means that the encoder SHOULD send CIF picture size, which it
can decode at MPI=4. If that is not possible, then QCIF with MPI
value 3 should be sent; if neither are possible, then SQCIF with MPI
value=2. The receiver is capable of (but least preferred) decoding
custom picture sizes (max 360x240) with MPI=2. Note that most
decoders support at least QCIF and CIF fixed resolutions, and that
they are expected to be available almost in every H.263-based video
application.
Below is an example of H.263 SDP in an offer:
a=fmtp:xx CIF=4;QCIF=2;F=1;K=1
This means that the sender of this message can decode an H.263 bit
stream with the following options and parameters: preferred
resolution is CIF (at up to 30/4.004 frames per second), but if that
is not possible then QCIF size is also supported (at up to 30/2.002
frames per second). Advanced Prediction mode (AP) and
slicesInOrder-NonRect options MAY be used.
Below is an example of H.263 SDP in an offer that includes the CPCF
parameter.
a=fmtp:xx CPCF=36,1000,0,1,1,0,0,2;CUSTOM=640,480,2;CIF=1;QCIF=1
This means that the sender of this message can decode an H.263 bit
stream with a preferred custom picture size of 640x480 at a maximum
frame rate of 25 frames per second using a custom picture clock
frequency of 50 Hz. If that is not possible, then the 640x480
picture size is also supported at up to 30/2.002 frames per second
using the ordinary picture clock frequency of 30/1.001 Hz. If
neither of those is possible, then the CIF and QCIF picture sizes are
also supported at up to 50 frames per second using the custom picture
clock frequency of 50 Hz or up to 30/1.001 frames per second using
the ordinary picture clock frequency of 30/1.001 Hz, and CIF is
preferred over QCIF.
The following limitation applies for usage of these media types when
performing offer/answer for sessions using multicast transport. An
answerer SHALL NOT change any of the parameters in an answer, instead
if the indicated values are not supported the payload type MUST be
rejected.
Ott, et al. Standards Track [Page 24]
^L
RFC 4629 H.263 RTP Payload Format January 2007
9. Backward Compatibility to RFC 2429
The current document is a revision of RFC 2429 and obsoletes it.
This section will address the backward compatibility issues.
9.1. New Optional Parameters for SDP
The document adds new optional parameters to the H263-1998 and H263-
2000 payload type, defined in RFC 3555 [RFC3555]. Since these are
optional parameters we expect that old implementations will ignore
these parameters, and that new implementations that will receive the
H263-1998 and H263-2000 payload types with no parameters will behave
as if the other side can accept H.263 at QCIF resolution at a frame
rate not exceeding 15/1.001 (approximately 14.985) frames per second.
10. IANA Considerations
This document updates the H.263 (1998) and H.263 (2000) media types,
described in RFC 3555 [RFC3555]. The updated media type
registrations are in Section 8.1.
11. Security Considerations
RTP packets using the payload format defined in this specification
are subject to the security considerations discussed in the RTP
specification [RFC3550] and any appropriate RTP profile (for example,
[RFC3551]). This implies that confidentiality of the media streams
is achieved by encryption. Because the data compression used with
this payload format is applied end-to-end, encryption may be
performed after compression, so there is no conflict between the two
operations.
A potential denial-of-service threat exists for data encoding using
compression techniques that have non-uniform receiver-end
computational load. The attacker can inject pathological datagrams
into the stream that are complex to decode and cause the receiver to
be overloaded. The usage of authentication of at least the RTP
packet is RECOMMENDED.
As with any IP-based protocol, in some circumstances a receiver may
be overloaded simply by the receipt of too many packets, either
desired or undesired. Network-layer authentication may be used to
discard packets from undesired sources, but the processing cost of
the authentication itself may be too high. In a multicast
environment, pruning of specific sources may be implemented in future
versions of IGMP [RFC2032] and in multicast routing protocols to
allow a receiver to select which sources are allowed to reach it.
Ott, et al. Standards Track [Page 25]
^L
RFC 4629 H.263 RTP Payload Format January 2007
A security review of this payload format found no additional
considerations beyond those in the RTP specification.
12. Acknowledgements
This is to acknowledge the work done by Chad Zhu, Linda Cline, Gim
Deisher, Tom Gardos, Christian Maciocco, and Donald Newell from Intel
Corp., who co-authored RFC 2429.
We would also like to acknowledge the work of Petri Koskelainen from
Nokia and Nermeen Ismail from Cisco, who helped with composing the
text for the new media types.
13. Changes from Previous Versions of the Documents
13.1. Changes from RFC 2429
The changes from the RFC 2429 are:
1. The H.263 1998 and 2000 media type are now in the payload
specification.
2. Added optional parameters to the H.263 1998 and 2000 media types.
3. Mandate the usage of RFC 2429 for all H.263. RFC 2190 payload
format should be used only to interact with legacy systems.
13.2. Changes from RFC 3555
This document adds new optional parameters to the H263-1998 and
H263-2000 payload types.
14. References
14.1. Normative References
[H263] International Telecommunications Union - Telecommunication
Standardization Sector, "Video coding for low bit rate
communication", ITU-T Recommendation H.263, January 2005.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003.
Ott, et al. Standards Track [Page 26]
^L
RFC 4629 H.263 RTP Payload Format January 2007
[RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
Video Conferences with Minimal Control", STD 65, RFC 3551,
July 2003.
[RFC3555] Casner, S. and P. Hoschka, "MIME Type Registration of RTP
Payload Formats", RFC 3555, July 2003.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
14.2. Informative References
[RFC2032] Turletti, T., "RTP Payload Format for H.261 Video
Streams", RFC 2032, October 1996.
[RFC2190] Zhu, C., "RTP Payload Format for H.263 Video Streams", RFC
2190, September 1997.
[RFC2429] Bormann, C., Cline, L., Deisher, G., Gardos, T., Maciocco,
C., Newell, D., Ott, J., Sullivan, G., Wenger, S., and C.
Zhu, "RTP Payload Format for the 1998 Version of ITU-T
Rec. H.263 Video (H.263+)", RFC 2429, October 1998.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264, June
2002.
[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", BCP 13, RFC 4288, December 2005.
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
"Extended RTP Profile for Real-time Transport Control
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July
2006.
[RFC4628] Even, R., "RTP Payload Format for H.263 Moving RFC 2190 to
Historic Status", RFC 4628, January 2007.
[Vredun] Wenger, S., "Video Redundancy Coding in H.263+", Proc.
Audio-Visual Services over Packet Networks, Aberdeen, U.K.
9/1997, September 1997.
Ott, et al. Standards Track [Page 27]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Authors' Addresses
Joerg Ott
Helsinki University of Technology
Networking Laboratory
PO Box 3000
02015 TKK, Finland
EMail: jo@netlab.tkk.fi
Carsten Bormann
Universitaet Bremen TZI
Postfach 330440
D-28334 Bremen, GERMANY
Phone: +49.421.218-7024
Fax: +49.421.218-7000
EMail: cabo@tzi.org
Gary Sullivan
Microsoft Corp.
One Microsoft Way
Redmond, WA 98052
USA
EMail: garysull@microsoft.com
Stephan Wenger
Nokia Research Center
P.O. Box 100
33721 Tampere
Finland
EMail: stewe@stewe.org
Roni Even (editor)
Polycom
94 Derech Em Hamoshavot
Petach Tikva 49130
Israel
EMail: roni.even@polycom.co.il
Ott, et al. Standards Track [Page 28]
^L
RFC 4629 H.263 RTP Payload Format January 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Ott, et al. Standards Track [Page 29]
^L
|