IP Library Granted Patent US 9,967,306
Granted Patent B1
US 9,967,306 · App. 15/259,812 · Granted May 8, 2018

Prioritized transmission of redundancy data for packetized voice communication

Inventors: Yu Zhou (Herndon, VA); Luca Zappaterra (Eindhoven, NL); Muhammad A. Naim (Ashburn, VA)
Assignee: Sprint Spectrum L.P.
H04L65/607H04L65/1069H04L65/602
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,967,306
App. No.
15/259,812
Granted
May 8, 2018
Kind
B1
Abstract

A method for prioritized transmission of redundancy data in a voice-over-packet call. A sending device applies a variable rate codec to generate a sequence of encoded voice frames having varying sizes, and the sending device inserts the encoded voice frames into a sequence of fixed-size packets, one encoded voice frame per packet, resulting in varying left-over payload capacity per packet. The sending device further generates based on each encoded voice frame multiple redundancy blocks to help facilitate recovery of the encoded voice frame. And on a per packet-basis, the sending device selects, from a sliding-window set of recently generated redundancy blocks, one or more redundancy blocks to add into the left-over payload capacity of the packet, with the selecting of each redundancy block being based at least on importance of the voice frame based on which the redundancy block was generated, and the age and size of the redundancy block.

Claims (26)

1. A method for prioritized transmission of redundancy data in a voice-over-packet call, the method comprising:

encoding by a sending device a sequence of voice frames using a variable-rate codec to produce a sequence of encoded voice frames having varying sizes, and generating by the sending device a sequence of fixed-size packets holding the sequence of encoded voice frames, wherein each packet holds a respective encoded voice frame, and wherein the fixed-size packets have varying left-over payload capacity due to the varying sizes of the encoded voice frames;

generating by the sending device two or more redundancy blocks based on each encoded voice frame to help facilitate recovery of the encoded voice frame, and maintaining by the sending device on a sliding window basis a set of the redundancy blocks generated based on recently encoded voice frames; and

for each packet of the sequence of packets, (a) determining by the sending device the left-over payload capacity of the packet, (b) selecting from the set of redundancy blocks one or more redundancy blocks to include in the determined left-over payload capacity, wherein the selecting of each redundancy block is based on at least a priority level of the encoded voice frame based on which the redundancy block was generated, an age of the redundancy block, and a size of the redundancy block, (c) inserting the selected one or more redundancy blocks into the packet, and (d) transmitting the packet for receipt by a receiving device.

2. The method of claim 1 , wherein the variable-rate codec is Enhanced Voice Codec with Channel Aware Mode.

3. The method of claim 1 , wherein the priority level of each encoded voice frame is based on whether the encoded voice frame represents actual voice.

4. The method of claim 3 , wherein some of the encoded voice frames represent actual voice and others of the encoded voice frames represent comfort noise rather than actual voice, and wherein the encoded voice frames that represent actual voice have higher priority levels than the encoded voice frames that represent comfort noise.

5. The method of claim 4 , further comprising determining by the sending device the priority level of each voice frame, to facilitate selecting a redundancy block based at least on the priority level of the encoded frame based on which the redundancy block was generated.

6. The method of claim 1 , further comprising, for each packet of the sequence of packets, determining by the sending device for each redundancy block of the set of redundancy blocks an age of the redundancy block, to facilitate selecting a redundancy block based at least on the age of the redundancy block.

7. The method of claim 1 , further comprising, for each packet of the sequence, assigning by the sending device to each redundancy block of the set of redundancy blocks a respective importance score based on (i) the priority level of the voice frame based on which the redundancy block was generated and (ii) a current age of the redundancy block, wherein the selecting is based on the assigned importance scores.

8. The method of claim 1 , wherein, for each packet of the sequence, the selecting of the one or more redundancy blocks helps to optimize filling of the determined left-over payload capacity of the packet.

9. A device configured to engage in prioritized transmission of redundancy data in a voice-over-packet call, the device comprising:

a network communication interface for transmitting data;

a processing unit;

non-transitory data storage; and

program instructions stored in the data storage and executable by the processing unit to cause the device to carry out operations comprising:

encoding a sequence of voice frames using a variable-rate codec to produce a sequence of encoded voice frames having varying sizes, and generating a sequence of fixed-size packets holding the sequence of encoded voice frames, wherein each packet holds a respective encoded voice frame, and wherein the fixed-size packets have varying left-over payload capacity due to the varying sizes of the encoded voice frames,

generating two or more redundancy blocks based on each encoded voice frame to help facilitate recovery of the encoded voice frame, and maintaining on a sliding window basis a set of the redundancy blocks generated based on recently encoded voice frames, and

for each packet of the sequence of packets, (a) determining the left-over payload capacity of the packet, (b) selecting from the set of redundancy blocks one or more redundancy blocks to include in the determined left-over payload capacity, wherein the selecting of each redundancy block is based on at least a priority level of the encoded voice frame based on which the redundancy block was generated, an age of the redundancy block, and a size of the redundancy block, (c) inserting the selected one or more redundancy blocks into the packet, and (d) transmitting the packet via the network communication interface for receipt by a receiving device.

10. The device of claim 9 , wherein the variable-rate codec is Enhanced Voice Codec with Channel Aware Mode.

11. The device of claim 9 , wherein the priority level of each encoded voice frame is based on whether the encoded voice frame represents actual voice.

12. The device of claim 11 , wherein some of the encoded voice frames represent actual voice and others of the encoded voice frames represent comfort noise rather than actual voice, and wherein the encoded voice frames that represent actual voice have higher priority levels than the encoded voice frames that represent comfort noise.

13. The device of claim 12 , wherein the operations further comprise determining the priority level of each voice frame, to facilitate selecting a redundancy block based at least on the priority level of the encoded frame based on which the redundancy block was generated.

14. The device of claim 9 , wherein the operations further comprise, for each packet of the sequence of packets, determining by the sending device for each redundancy block of the set of redundancy blocks an age of the redundancy block, to facilitate selecting a redundancy block based at least on the age of the redundancy block.

15. The device of claim 9 , wherein the operations further comprise, for each packet of the sequence, assigning by the sending device to each redundancy block of the set of redundancy blocks a respective importance score based on (i) the priority level of the voice frame based on which the redundancy block was generated and (ii) a current age of the redundancy block, wherein the selecting is based on the assigned importance scores.

16. The device of claim 9 , wherein, for each packet of the sequence, the selecting of the one or more redundancy blocks helps to optimize filling of the determined left-over payload capacity of the packet.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
CHANGE OF NAME Recorded Feb 11, 2022
From: SPRINT SPECTRUM L.P.
To: SPRINT SPECTRUM LLC
Reel/Frame 059044/0022 →
TERMINATION AND RELEASE OF FIRST PRIORITY AND JUNIOR PRIORITY SECURITY INTEREST IN PATENT RIGHTS Recorded Apr 3, 2020
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: SPRINT SPECTRUM L.P.
Reel/Frame 052313/0299 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
GRANT OF FIRST PRIORITY AND JUNIOR PRIORITY SECURITY INTEREST IN PATENT RIGHTS Recorded Mar 3, 2017
From: SPRINT SPECTRUM L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 041937/0632 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: ZHOU, YU; NAIM, MUHAMMAD A.; ZAPPATERRA, LUCA
To: SPRINT SPECTRUM L.P.
Reel/Frame 039678/0159 →