Internet Engineering Task Force                               Harri Honko
INTERNET-DRAFT                                          Petri Koskelainen
<draft-koskelainen-sdp263-00.txt>                           Jouni Salonen
Expires in six months                               Nokia Research Center
                                                           September 1997



                          SDP syntax for H.263 options



STATUS OF THIS MEMO

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas, and
   its working groups.  Note that other groups may also distribute working
   documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference material
   or to cite them other than as "work in progress."

   To learn the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing  contained in the Internet-Drafts Shadow
   Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
   ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).


                ABSTRACT

This document defines the SDP syntax for H.263 codec options and
parameters for IETF multimedia conferencing architecture. It is often
useful to know beforehand (in call setup phase) what features of H.263
the other end supports. This document specifies the format spefic
parameters for H.263, which exists in a=fmtp:<format> <format specific
parameters> as defined in the SDP document.
Chapters 4 and 5 specify their usage with two popular IETF protocols,
SIP and SAP.



1. Introduction

Internet multimedia conferencing is becaming a reality and new protocols
have been defined to provide co-operation between different applications.
Current IETF protocols SIP [3] and SAP [4] are quite widely used to
simple MBone conferencing and Internet unicast conferencing is also
taking its first steps. Today, the most widely used video codec in this
environment is the ITU-T H.261 video standard, but a better and more
efficient low-bit rate video standard, ITU-T H.263 [1] is becoming more
and more popular.

However, the usage of H.263 with current IETF multimedia conferencing
architecture is difficult, since improved efficiency of H.263 depends on
use of coding options and parameters which must be told somehow to the
other end. SIP and SAP protocols can deliver this information, but
current SDP [2] format does not specify standardised way of representing
these options and parameters.

This document specifies the SDP syntax which describes H.263 options and
parameters to be delivered by some signaling protocol (e.g. SIP or SAP).
The syntax presented in this document uses SDP "a=fmtp" attribute which
is meant for carrying codec specific parameters.

These options are especially useful in SIP. In SAP it is not clear whether
they have any use. In SIP, these format specific parameters are decoder
properties, and in SAP they are encoder capabilities.  The SAP rules are
applied also if a multicast session is advertised in a web page in SDP
format.


2. H.263 Codec Parameters

All these parameters must be presented in SDP a=fmtp line exactly in this
order if they are present. Different parameter types are separated by
single slash ("/") and parameters with space.
For further description about these parameters, please refer to
ITU documents [1].


2.1 Picture sizes and MPI

H.263 bitstream supports many picture sizes and different frame rates.
Supported picture sizes and their corresponding minimum picture interval
(MPI) values are combined with "=" symbol.
MPI is an integer value (1..32) and it means that maximum picture (frame)
rate is (29.97/MPI) frames/sec. MPI value may be bigger, meaning that
picture rate is slower.

Word: SQCIF=MPI(1..32)
Explanation: SQCIF picture size and its MPI value.

Word: QCIF=MPI(1..32)
Explanation:  QCIF picture size and its MPI value.

Word: CIF=MPI(1..32)
Explanation: CIF picture size and its MPI value.

Word: CIF4=MPI(1..32)
Explanation: CIF4 picture size and its MPI value.

Word: CIF16=MPI(1..32)
Explanation: CIF16 picture size and its MPI value.

Word: XMAX=maximum_x_size YMAX=maximum_y_size MPI=MPI(1..32)
Explanation: This parameter means that terminal is capable and/or willing
to support arbitrary picture sizes. Both picture sizes must be divisible
by 4. These X and Y values are the maximum of allowed picture sizes with
corresponding MPI value. All three words must exist together in this
order, or none is allowed to exist.

More than one mode can exist in the same line (see example later).
There is a space between picture modes and slash ("/") symbol after all
of them. At least one picture mode must be present.


2.2 MaxBitRate and BitsPerPictureMaxKb

MaxBitRate=INTEGER(1..19200)
Explanation: Maximum video stream bitrate, presented with units of
100 bits/s.


BitsPerPictureMaxKb=INTEGER(0..65536)
Explanation: Maximum amount of kilobits allowed to represent a single
picture frame, value is specified by largest supported picture resolution,
see [1]. If this parameter is not present, then default value, that is based
on the maximum supported resolution, is used.

These parameters are separated by space but before/after
these parameter(s) there must be a slash symbol ("/").


3. H.263 Codec Options

Following words describe 4 options defined for H.263. Later versions
of H.263 (e.g. so called H.263+, currently a ITU-T draft) defines more
options and they should be merged later into this document. These options
are separated by a space between them. This group of options (words) is
separated by slash ("/").  All these options must be presented in SDP
a=fmtp line exactly in this order if they are present.


Word: URV
Explanation: UnRestricted motion Vector option.

Word: SAC
Explanation: Syntax based Arithmetic Coding.

Word: AP
Explanation: Advanced Prediction.

Word: PB
Explanation: PB Frames.

The actual interpretation of these words is defined differently for
one-way and two-way negotiations (see chapters 4 and 5).




4. Usage of SDP H.263 options and parameters with SIP

This document specifies how these options and parameters can be
represented in SDP format. Current SIP protocol does not support any
negotiation about codecs or codec parameters. However, this negotiation
is quite needless since it is enough to tell the preferred decoder
options and parameters and let the other end to decide actual options
and parameters as long as the other party sends only such options and
parameters which are advertized.  This scheme keeps the IETF multimedia
terminal simple.


Codec options: (URV,SAC,AP,PB)
These words exist only if the sender of this SDP message is able or
willing to decode those. E.g. If a terminal is capable of decoding
SAC and AP options, it can put SAC AP in the end of <format specific
parameters>. Then the other party knows it, and can use those options
in its encoder.


Picture sizes and MPI:
Supported picture sizes and their corresponding minimum picture interval
(MPI) information can be combined. All picture sizes can be advertised to
other party, or only some subset of it.  Terminal announces only those
picture sizes (with their MPIs) which it is willing to receive.
MPI is an integer value (1..32) and it means that maximum picture (frame)
rate is (29.97/MPI) frames/s. MPI value may be bigger, meaning that
picture rate is slower. For example, MPI=2 means that maximum
(decodeable) picture rate per sec is about 15.

Parameter occurring first is the most preferred picture mode to be
received, and last is the least preferred (but still supported) one.
Parameter words are presented with no slash ("/") symbol between them,
and are separated by space (see example later in this chapter).

These words are present in SDP line only if terminal is willing to
decode the picture size with corresponding MPI. If terminal is not
willing to receive some mode, it is not present in the list.


Example of the usage of these words:

CIF=4  QCIF=3 SQCIF=2 XMAX=360 YMAX=240 MPI=2

This means that sender hopes to receive CIF picture size, which it can
decode at MPI=4. If that is not possible, then QCIF with MPI value 3,
if that is neither possible, then SQCIF with MPI value =2.  It is also
allowed (but least preferred) to send arbitrary picture sizes
(max 360x240) with MPI=2.
Note that most encoders support at least QCIF and CIF fixed resolutions
and they are expected to be available almost in every H.263-based video
application.


MaxBitRate and BitsPerPictureMaxKb parameters:
Both these parameters are useful in SIP. MaxBitRate is video decoder
property, hence it differs from SDP b:<modifier> <bandwidth-value>
attribute which refers more to application's total bandwidth (an
application consists often of both audio and video). Use of MaxBitRate
parameter is mandatory.

BitsPerPictureMaxKb is needed especially for decoder buffer size
estimation to reduce the propability of video buffer overflow.


Below is an example of H.263 SDP syntax in SIP message.

a=fmtp 34 CIF=4 QCIF=2/MaxBitRate=1000/SAC AP

This means that the sender of this message can decode H.263 (RTP
payload type 34) bitstream with following options and parameters:
Preferred resolution is CIF (its MPI is 4), but if that is not
possible then QCIF size is ok. Maximum receivable bitrate is
100 kbit/s (1000*100 bit/s) and SAC and AP options can be used.


5. Use of SDP H.263 options and parameters with SAP

SAP announcements are one-way only. H.263 options (like SAC) mean that
sending terminal (host) is going to use these options in its
transmitted H.263 stream. It is just an informal message.

Usually only one picture size (with its MPI) exists. However, since it
is possible for a video source (terminal) to change its picture size
during session, several picture sizes can exist in the parameter list.
First one is the original picture size to be used in the beginning of
the session.

Other H.263 parameters are not used with SAP (nor when announced in
web-page).


Example with SAP:
a=fmtp 34 CIF=2/URV SAC

The video source is sending an H.263 bitstream and picture size is CIF,
MPI=2 and URV and SAC options are used. This kind of announcement can be
used e.g.  in the MBone.




Authors' Addresses

Harri Honko, Petri Koskelainen, Jouni Salonen
Nokia Research Center
P.O.Box 100
FIN-33721 Tampere
Finland
e-mail:
harri.honko@research.nokia.com,
petri koskelainen@research.nokia.com,
jouni.salonen@research.nokia.com



 References:

 [1]  International Telecommunication Union.
 Video Coding for Low Bitrate Communication, ITU-T Recommendation  H.263,
 ITU 1996

 [2]  Handley et al, ``SDP - Session Description Protocol'',
 INTERNET-DRAFT,  IETF 1997.

 [3]  Handley et al, ``SIP - Session Initiation  Protocol'',
 INTERNET-DRAFT, IETF 1997.

  [4]  ``SAP - Session Announcement  Protocol'',
 INTERNET-DRAFT, IETF 1997.