# Negotiating H.263+ profile 3

As documented in 3GPP TR 26.911, optional annexes of ITU-T Recommendation H.263 are useful for improving the compression efficiency and error resilience of the codec. 3GPP recommends that an ITU-T Recommendation H.263 video decoder support the following annexes:

- Annex I (Advanced INTRA Coding mode) improves error resilience and compression efficiency.

- Annex J (Deblocking Filter mode) improves compression efficiency.

- Annex K (Slice Structured mode without Rectangular Slice submode) improves error resilience.

- Annex T (Modified Quantization mode) improves compression efficiency.

These annexes characterize the Version 2 (H.263+) Interactive and Streaming Wireless Profile, designated as profile 3 in the H.263 Annex X Recommendation.

## 3G-324M Interface support for H.263+ profile 3

The 3G-324M Interface supports H.263+ profile 3. To enable H.263+ profile 3 in a Video Access application, set the bit_mask field in the MH263CAPABILITY structure to h263_profile3_enabled (0x0001). The H.324M Middleware then negotiates with the remote terminal to see if it also supports H.263+ profile 3:

If the remote terminal... | Then the H.324M Middleware
Supports H.263+ profile 3 | Uses the H.263+ profile 3 codec.
Does not support H.263_ profile 3 | Falls back to H.263 baseline (profile 0).

The application can obtain the outcome of the H.263 negotiation by checking the value of the bit_mask field in the MH263CAPABILITYOPTIONS structure. If h263_profile3_enabled (0x0001) is set, an H.263+ profile 3 decoder is required to decode the video stream sent by the peer. The application can then check the advancedIntraCodingMode, deblockingFilterMode, slicesInOrder_NonRect, and modifiedQuantizationMode fields to find out which H.323 annexes are used by the remote terminal.

For more information, see MH263CAPABILITYOPTIONS structure.

Note: The application must use RFC 2429 RTP packetization to transport H.263+ profile 3 video. RFC 2190 cannot be used for this purpose.

## H.263+ profile 3 parameters

The H.263+ profile 3 parameters for the 3G-324M Interface are specified in the MH263CAPABILITY and MH263CAPABILITYOPTIONS structures in avoptions.h.

### MH263CAPABILITY structure

The MH263CAPABILITY structure defines the H.324M local terminal capabilities for the H.263 codec. Set the bit_mask field to h263_profile3_enabled (0x0001) to enable H.263+ profile 3:

typedef struct _MH263CAPABILITY
{
unsigned short bit_mask;
....
#define h263_profile3_enabled 0x0001
...
}

MH263CAPABILITY is a substructure to the MEDIA_UNION structure, which itself is a substructure to the H324_LCD structure and the H324_TERM_CAPS structure. For more information, see H324_LCD or H324_TERM_CAPS.

### MH263CAPABILITYOPTIONS structure

The MH263CAPABILITYOPTIONS structure enables the application to check which H.263+ profile 3 annex (I, J, K, or T) is used by the remote terminal, if H.263+ profile 3 codec was negotiated:

typedef struct MH263CAPABILITYOPTIONS
{
unsigned int bit_mask;
H245_BOOL advancedIntraCodingMode; // Annex I
H245_BOOL deblockingFilterMode; // Annex J
H245_BOOL improvedPBFramesMode;
H245_BOOL unlimitedMotionVectors;
H245_BOOL fullPictureFreeze;
H245_BOOL partialPictureFreezeAndRelease;
H245_BOOL resizingPartPicFreezeAndRelease;
H245_BOOL fullPictureSnapshot;
H245_BOOL partialPictureSnapshot;
H245_BOOL videoSegmentTagging;
H245_BOOL progressiveRefinement;
H245_BOOL dynamicPictureResizingByFour;
H245_BOOL dynamicPictureResizingSixteenthPel;
H245_BOOL dynamicWarpingHalfPel;
H245_BOOL dynamicWarpingSixteenthPel;
H245_BOOL independentSegmentDecoding;
H245_BOOL slicesInOrder_NonRect; // Annex K
H245_BOOL slicesInOrder_Rect;
H245_BOOL slicesNoOrder_NonRect;
H245_BOOL slicesNoOrder_Rect;
H245_BOOL alternateInterVLCMode;
H245_BOOL modifiedQuantizationMode; // Annex T
H245_BOOL reducedResolutionUpdate;
} MH263CAPABILITYOPTIONS;

MH263CAPABILITYOPTIONS is a substructure to the H324_LCD structure, which is carried with the video OLC event (H324EVN_LCD). For more information, see H324_LCD.