Figure 10.6 below illustrates how the three requests are used by the transmitter. In this case, RTCP_APP_REQ_RED is equal to
"000000000101".
-
The speech encoder generates frames every 20 ms.
-
The speech frames are buffered in the aggregation buffer until it is possible to generate a payload chunk with the number of frames requested by either ptime at session setup or by RTCP_APP_REQ_AGG during a session.
-
The current payload chunk is used when constructing the current RTP packet.
-
The history buffer contains previously transmitted payload chunks. The length of this buffer needs to be dimensioned to store the maximum number of payload chunks that are possible. This value is based on the max-red value, the maxptime values and from the minimum number of frames that the transmitter will encapsulate in the RTP packets. In this case, the buffer length is selected to 11 payload chunks since this corresponds to the worst case of max-red=220, maxptime=240 and one frame per payload chunk.
-
After transmitting the current RTP packet, the content of the history buffer is shifted, the current payload chunk is shifted in to the history buffer as P(n-1) and the oldest payload chunk P(n-11) is shifted out.
-
When constructing the (provisional) RTP payload, the selected preceding payload chunks are selected from the history buffer and added to the current payload chunk. In order to form a valid RTP payload, the transmitter needs to verify that the maxptime value is not exceeded. If the provisional RTP payload is longer than what maxptime allows, then the oldest speech frames shall be removed until the length (in time) of the payload no longer violates the maxptime value. NO_DATA frames in the beginning or at the end of the payload does not need to be transmitted and are therefore removed. The RTP Time Stamp needs to be incremented when a NO_DATA frames are removed from the beginning of the payload. A (provisional) RTP packet containing only NO_DATA frames does not need to be transmitted.
Note also that the transmitter is not allowed to send frames that are older than the max-red value that the transmitter has indicated in the SDP.
It should be noted that RTCP_APP_REQ_AGG and RTCP_APP_REQ_RED are independent. Furthermore, it should also be noted that different redundant payload chunks may contain different number of speech frames.
RTCP_APP_REQ_EPRR:
EVS Primary Rate Request
Codecs:
This request can be used for the EVS codec and the IVAS codec when operating in EVS Primary mode.
The DATA field a 4-bit field and is encoded as described in the table below. The rate request indicates the maximum codec mode (highest bit-rate) that the receiver wants to receive. The sender may use a lower codec mode (lower bit-rate) when sending. The rate request shall comply with the media type parameters that are negotiated in the session.
Index |
EVS Primary rate request |
0000 | 5.9 |
0001 | 7.2 |
0010 | 8 |
0011 | 9.6 |
0100 | 13.2 |
0101 | 16.4 |
0110 | 24.4 |
0111 | 32 |
1000 | 48 |
1001 | 64 |
1010 | 96 |
1011 | 128 |
1100 | Not used |
1101 | Not used |
1110 | Not used |
1111 | Not used |
RTCP_APP_REQ_EBWR:
EVS Bandwidth Request
Codecs:
This request can be used for the EVS codec when operating in EVS Primary mode and for the IVAS codec when operating in IVAS immersive mode or EVS Primary mode.
The DATA field is a 4-bit field b0…b3, corresponding to bit 4 to bit 7 in the octet:
-
b0 set to '1' = request for narrowband.
-
b1 set to '1' = request for wideband.
-
b2 set to '1' = request for super-wideband.
-
b3 set to '1' = request for fullband.
Each bit in the DATA field indicates a bandwidth that the receiver wants to receive. One or several of these four bits can be set to
'1'. For example, a request for
'1110' indicates that the receiver wants to receive narrowband, wideband or super-wideband speech but not fullband speech. The bandwidth request shall comply with the media type parameters that are negotiated in the session.
A media receiver operating in IVAS Immersive mode should not send a request for narrowband unless also sending a request for switching to EVS Primary mode.
RTCP_APP_REQ_EPRED:
EVS Channel Aware Request
Codecs:
This request can be used for the EVS codec when operating in EVS Primary mode and for the IVAS codec when operating in IVAS immersive mode or EVS Primary mode.
The DATA field is a 4-bit field and is encoded as described in the table below.
Index |
Partial Redundancy request |
0000 | 13.2 CA-L-O2 |
0001 | 13.2 CA-L-O3 |
0010 | 13.2 CA-L-O5 |
0011 | 13.2 CA-L-O7 |
0100 | 13.2 CA-H-O2 |
0101 | 13.2 CA-H-O3 |
0110 | 13.2 CA-H-O5 |
0111 | 13.2 CA-H-O7 |
1000 | Not used |
1001 | Not used |
1010 | Not used |
1011 | Not used |
1100 | Not used |
1101 | Not used |
1110 | Not used |
1111 | Not used |
Since channel-aware mode is only defined for the EVS Primary 13.2 kbps mode then sending an EVS Channel Aware Request also implies changing to the EVS Primary mode and to the 13.2 kbps bit-rate and possibly also changing the audio bandwidth to either WB or SWB. When the IVAS codec isused, this also implies changing to mono audio. In addition, the following applies:
-
A media receiver operating in EVS Primary mode for narrowband or fullband audio, IVAS Immersive mode or in IVAS EVS Primary mode for narrowband or fullband audio, and sending a request for EVS channel aware mode shall also include an EVS bandwidth request (subclause 10.2.1.8) for wideband or super-wideband.
The channel aware request shall comply with the media type parameters that are negotiated for the session.
RTCP_APP_REQ_EP2I:
EVS Primary mode to EVS AMR-WB IO mode Switching Request
Codecs:
This request can be used for the EVS codec when operating in EVS Primary mode and for the IVAS codec when operating in IVAS immersive mode or EVS Primary mode.
The DATA field is an 11-bit field where the first 9 bits (b4-b12) are used to indicate the AMR-WB codec modes that are allowed and the 2 last bits (b13 and b14) are flags to set mode-change-period and mode-change-neighbor as follows:
-
first 9 bits for mode-set:
-
b4 = '0': AMR-WB 6.60 not allowed
b4 = '1': AMR-WB 6.60 allowed,
-
b5 = '0': AMR-WB 8.85 not allowed
b5 = '1': AMR-WB 8.85 allowed,
-
b6 = '0': AMR-WB 12.65 not allowed
b6 = '1': AMR-WB 12.65 allowed,
-
b7 = '0': AMR-WB 14.25 not allowed
b7 = '1': AMR-WB 14.25 allowed,
-
b8 = '0': AMR-WB 15.85 not allowed
b8 = '1': AMR-WB 15.85 allowed,
-
b9 = '0': AMR-WB 18.25 not allowed
b9 = '1': AMR-WB 18.25 allowed,
-
b10 = '0': AMR-WB 19.85 not allowed
b10 = '1': AMR-WB 19.85 allowed,
-
b11 = '0': AMR-WB 23.05 not allowed
b11 = '1': AMR-WB 23.05 allowed,
-
b12 = '0': AMR-WB 23.85 not allowed
b12 = '1': AMR-WB 23.85 allowed.
-
flags:
-
b13 = '0': mode-change-period=1,
b13 = '1': mode-change-period=2,
-
b14 = '0': mode-change-neightbor=0,
b14 = '1': mode-change-neightbor=1.
An MTSI client sending this request shall set at least one of the mode-set bits to
'1'. An MTSI client receiving a request with all zeroes shall ignore the request.
The mode-set indicated in the EVS Primary mode to EVS AMR-WB IO mode Switching Request can only allow codec modes that have been negotiated in SDP offer-answer. This request cannot be used to allow codec modes that have not been negotiated in SDP offer-answer.
An MTSI client sending this request should also send an RTCP_APP_CMR to indicate the codec mode that should be used after switching to EVS AMR-WB IO mode. An MTSI client receiving this request without a request for a codec mode should use the rules for Initial Codec Mode (ICM) defined in
clause 7.5.2.1.6 to determine the codec mode that should be used after switching to EVS AMR-WB IO mode.
The last bit (b15)
'R' is reserved for future use. An MTSI client sending this request shall set it to
'0'. An MTSI client receiving this request shall ignore this bit.
RTCP_APP_REQ_EI2P:
EVS AMR-WB IO mode to EVS Primary mode Switching Request
Codecs:
This request can be used for the EVS codec when operating in EVS AMR-WB IO mode and for the IVAS codec when operating in IVAS immersive mode or EVS AMR-WB IO mode.
The DATA field is a 4-bit field which is reserved for future use. All four bits are set to
'0'.
The bitrates and bandwidths that can be used after switching to EVS Primary mode are the same as negotiated at session setup or in a preceding session modification.
RTCP_APP_REQ_ICF:
IVAS Coded Format Request
Codecs:
This request can be used for the IVAS codec when operating in IVAS Immersive mode, EVS Primary mode or EVS AMR-WB IO mode.
The DATA field is a 4-bit field and is encoded as described in the Table below:
Data |
Identifier |
Coded Format request |
Subclause in TS 26.253 |
0000 | Stereo | Stereo Operation |
4.2.3 |
0001 | SBA | Scene-based Audio (SBA, Ambisonics) Operation |
4.2.4 |
0010 | MASA | Metadata-Assisted Spatial Audio (MASA) Operation |
4.2.5 |
0011 | ISM | Objects (Independent Streams with Metadata, ISM) Operation |
4.2.6 |
0100 | MC | Multi-Channel (MC) Operation |
4.2.7 |
0101 | OMASA | Combined Objects and MASA (OMASA) Operation |
4.2.9 |
0110 | OSBA | Combined Objects and SBA (OSBA) Operation |
4.2.8 |
0111 | Not used | | |
1000 | Not used | | |
1001 | Not used | | |
1010 | Not used | | |
1011 | Not used | | |
1100 | Not used | | |
1101 | Not used | | |
1110 | Not used | | |
1111 | Not used | | |
The IVAS Coded Format request may be used for switching between different IVAS Immersive coded format and also requesting switching from IVAS EVS Primary mode or IVAS EVS AMR-WB IO mode to IVAS Immersive mode.
The coded format request shall comply with the media type parameters that are negotiated for the session.
A media receiver operating in IVAS EVS Primary mode or IVAS EVS AMR-WB IO mode and sending an IVAS Coded Format request should also include an IVAS Bitrate request.
A media sender operating in IVAS EVS Primary mode or IVAS EVS AMR-WB IO mode and receiving an IVAS Coded Format request without an IVAS Bitrate request (
subclause 10.2.1.13) should apply the rules for Initial Codec Mode rules described in
subclause 7.5.2.1.10.
RTCP_APP_REQ_IBR:
IVAS Bit Rate Request
Codecs:
This request can be used for the IVAS codec when operating in IVAS Immersive mode, EVS Primary mode or EVS AMR-WB IO mode.
The DATA field is a 4-bit field and is encoded as described in the Table below:
Data |
Bit rate [kbps] |
0000 | 13.2 |
0001 | 16.4 |
0010 | 24.4 |
0011 | 32 |
0100 | 48 |
0101 | 64 |
0110 | 80 |
0111 | 96 |
1000 | 128 |
1001 | 160 |
1010 | 192 |
1011 | 256 |
1100 | 384 |
1101 | 512 |
1110 | reserved |
1111 | NO_REQ |
The IVAS Bit Rate request may be used for switching between different IVAS Immersive mode bitrates.
The IVAS Bit Rate request shall comply with the media type parameters that are negotiated for the session.
A media receiver operating in IVAS EVS Primary mode or IVAS EVS AMR-WB IO mode and sending an IVAS Bit Rate request should also include an IVAS Immersive Coded Format request.