IP Library Granted Patent US 12,457,180
Granted Patent B2
US 12,457,180 · App. 18/132,699 · Granted Oct 28, 2025

Packet payload mapping for robust transmission of data

Inventors: Vikram Singh (San Francisco, CA); Michal Pietras (London, GB)
Assignee: Mixhalo Corp.
H04L49/9057G10L19/167H04L1/0041H04L1/0045H04L1/1841H04L12/18H04L49/9005H04L49/901H04L65/70H04L65/80H04L69/16H04L1/0083H04N7/04
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 12,457,180
App. No.
18/132,699
Granted
Oct 28, 2025
Kind
B2
Abstract

Systems and methods for packet payload mapping for robust transmission of data are described. For example, methods may include receiving, using a network interface, packets that each respectively include a primary frame and one or more preceding frames from the sequence of frames of data that are separated from the primary frame in the sequence of frames by a respective multiple of a stride parameter; storing the frames of the packets in a buffer with entries that each hold the primary frame and the one or more preceding frames of a packet; reading a first frame from the buffer as the primary frame from one of the entries; determining that a packet with a primary frame that is a next frame in the sequence has been lost; and, responsive to the determination, reading the next frame from the buffer as a preceding frame from one of the entries.

Claims (42)

1 . A system for receiving data partitioned into a sequence of frames of data, comprising:

a network interface;

a memory; and

a processor, wherein the memory includes instructions executable by the processor to cause the system to:

receive, using the network interface, packets encoded according to a packet payload mapping scheme, each packet respectively encoded to include a primary frame and one or more preceding frames from the sequence of frames of data,

wherein the one or more preceding frames of a respective packet are separated from the primary frame of the respective packet in the sequence of frames by a respective multiple of a stride parameter and the one or more preceding frames of the respective packet include a number of preceding frames equal to a redundancy parameter,

wherein the stride parameter is equal to or greater than a minimum number of sequential packets associated with recovery from a packet loss event; and

store the frames of the packets in a buffer with entries that each hold the primary frame and the one or more preceding frames of a packet, wherein the buffer is sized to store frames from a number of packets equal to the stride parameter times the redundancy parameter plus one.

2 . The system of claim 1 , wherein the memory includes instructions executable by the processor to cause the system to:

read a first frame from the buffer as the primary frame from one of the entries of the buffer.

3 . The system of claim 2 , wherein the memory includes instructions executable by the processor to cause the system to:

determine, based on the buffer, that a packet with a primary frame that is a next frame in the sequence of frames of data has been lost.

4 . The system of claim 3 , wherein the memory includes instructions executable by the processor to cause the system to:

responsive to the determination that the packet was lost, read the next frame from the buffer as a preceding frame from one of the entries of the buffer.

5 . The system of claim 4 , wherein the memory includes instructions executable by the processor to cause the system to:

write frames, including the first frame and the next frame, that are read from the buffer to a reassembly buffer, wherein the reassembly buffer includes entries that each consist of a frame of the sequence of frames of data.

6 . The system of claim 1 , wherein the memory includes instructions executable by the processor to cause the system to:

store the packets in a jitter buffer as they are received; and

read the packets from the jitter buffer before storing the frames of the packets in the buffer.

7 . The system of claim 1 , wherein the memory includes instructions executable by the processor to cause the system to:

receive, using the network interface, a packet map data structure that indicates the stride parameter and indicates a count of redundant preceding frames to be transmitted in each of the packets.

8 . The system of claim 1 , wherein the sequence of frames of data is a sequence of frames of audio data.

9 . A method for receiving data partitioned into a sequence of frames of data, comprising:

receiving, using a network interface, packets encoded according to a packet payload mapping scheme, each packet respectively encoded to include a primary frame and one or more preceding frames from the sequence of frames of data,

wherein the one or more preceding frames of a respective packet are separated from the primary frame of the respective packet in the sequence of frames by a respective multiple of a stride parameter and the one or more preceding frames of the respective packet include a number of preceding frames equal to a redundancy parameter,

wherein the stride parameter is equal to or greater than a minimum number of sequential packets associated with recovery from a packet loss event; and

storing the frames of the packets in a buffer with entries that each hold the primary frame and the one or more preceding frames of a packet, wherein the buffer is sized to store frames from a number of packets equal to the stride parameter times the redundancy parameter plus one.

10 . The method of claim 9 , further comprising:

reading a first frame from the buffer as the primary frame from one of the entries of the buffer.

11 . The method of claim 10 , further comprising:

determining, based on the buffer, that a packet with a primary frame that is a next frame in the sequence of frames of data has been lost.

12 . The method of claim 11 , further comprising:

responsive to the determination that the packet was lost, reading the next frame from the buffer as a preceding frame from one of the entries of the buffer.

13 . The method of claim 12 , further comprising:

writing frames, including the first frame and the next frame, that are read from the buffer to a reassembly buffer, wherein the reassembly buffer includes entries that each consist of a frame of the sequence of frames of data.

14 . The method of claim 13 , wherein the reassembly buffer is sized to store a number of frames equal to the stride parameter.

15 . The method of claim 13 , further comprising:

playing audio data that is stored in an oldest frame from the reassembly buffer; and

deleting the oldest frame from the reassembly buffer.

16 . The method of claim 9 , further comprising:

storing the packets in a jitter buffer as they are received; and

reading the packets from the jitter buffer before storing the frames of the packets in the buffer.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded May 8, 2025
From: FREDDY TECHNOLOGIES LLC
To: TECH CAPITAL, LLC
Reel/Frame 071067/0476 →
SECURITY INTEREST Recorded Sep 10, 2024
From: FREDDY TECHNOLOGIES LLC
To: TECH CAPITAL, LLC
Reel/Frame 068547/0145 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2023
From: SINGH, VIKRAM; PIETRAS, MICHAL
To: MIXHALO CORP.
Reel/Frame 065566/0601 →
Continuity (3)
Continuation 17030544 · Sep 24, 2020
Provisional Application 62905786 · Sep 25, 2019
Related Publication 20230353511A1 · Nov 2, 2023
References Cited (22)
US 5111490A · Drawert · 1992 [cited by applicant]
US 6538684B1 · Sasaki · 2003 [cited by applicant]
US 11385806B1 · Banerjee et al. · 2022 [cited by applicant]
US 20100172641A1 · Sasaki et al. · 2010 [cited by applicant]
US 20130141602A1 · Kuriyama · 2013 [cited by applicant]
US 20130185074A1 · Gruber et al. · 2013 [cited by applicant]
US 20130185084A1 · Rajendran · 2013 [cited by examiner]
US 20150106106A1 · Atti et al. · 2015 [cited by applicant]
US 20160087866A1 · Modai et al. · 2016 [cited by applicant]
US 20160308791A1 · Subasingha et al. · 2016 [cited by applicant]
US 20170054573A1 · Herrero · 2017 [cited by applicant]
US 20170125028A1 · Sinder et al. · 2017 [cited by applicant]
US 20170125029A1 · Atti et al. · 2017 [cited by applicant]
US 20190371345A1 · Bhatia et al. · 2019 [cited by applicant]
US 20200036644A1 · Belogolovy et al. · 2020 [cited by applicant]
US 20200204296A1 · Srinivasan et al. · 2020 [cited by applicant]
US 20200245118A1 · Kurth et al. · 2020 [cited by applicant]
US 20220216964A1 · Mondal et al. · 2022 [cited by applicant]
CN 106131580A · 2016 [cited by applicant]
CN 107534589A · 2018 [cited by applicant]
CN 108352927A · 2018 [cited by applicant]
WO WO2017074587A1 · 2017 [cited by applicant]