# US 2008/0313684 A1 · Determining a Transmission Order for Frames Based on Bit Reversals of Sequence Numbers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0313684 A1
- Document ID: US20080313684A1
- Status: Published application
- Kind: A1
- Application number: 11/762,352
- Filed: 2007-06-13
- Published: 2008-12-18
- Earliest claimed: 2007-06-13
- Assignees: International Business Machines Corporation
- Inventors: Glenn Darrell Batalden; Timothy Pressier Clark
- Web page: https://patentgrep.com/patent/US20080313684A1

## CPC

- H04N 21/26216: {involving the channel capacity, e.g. network bandwidth (admission control, resource allocation in open networks H04L12/5692; flow control in packet networks H04L47/10; establishing a schedule or organising the servicing of application requests taking into account QoS H04L67/61)}
- H04N 7/173: with two-way working, e.g. subscriber sending a programme selection signal
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/4344: {Remultiplexing of multiplex streams, e.g. by modifying time stamps or remapping the packet identifiers}
- H04N 21/4402: involving reformatting operations of video signals for household redistribution, storage or real-time display {(details of conversion of video standards at pixel level H04N7/01; video transcoding H04N19/40; adapting incoming signals to the display format of the display terminal G09G5/005; media handling at the source in data packet switching networks H04L65/764)}
- H04N 21/845: Structuring of content, e.g. decomposing content into time segments
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In an embodiment, frames are received in an arrival order. Each of the frames has a target client and a sequence number that represents a relative position of the frame in the arrival order. A transmission order is determined based on bit reversals of the sequence numbers. Then frames are then sent to the respective target client in the transmission order. A frame is sent to the target client from its slot during a respective time period that is associated with the slot. If the slot is empty, no data is sent during the respective time period. In this way, the transmission of frames is spread over the available time.

## Claims

### Claim 1

A method comprising:
receiving a plurality of frames in an arrival order, wherein each of the plurality of frames has a respective target client and a respective sequence number that represents a relative position of the respective frame in the arrival order;
determining a transmission order based on a bit reversal of the sequence numbers; and
sending each of the respective frames to the respective target client in the transmission order.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving a plurality of requests from the respective target clients, wherein the plurality of requests specify a plurality of respective programs, wherein the programs comprise the plurality of frames.

### Claim 3 (depends on 1)

The method of claim 1, wherein the determining further comprises:
selecting a respective slot in a queue for each of the respective frames, wherein the selecting further comprises creating a respective slot number of the respective slot based on a bit reversal of an order of a plurality of bits of the respective sequence number; and
adding the respective frame to the respective slot.

### Claim 4 (depends on 3)

The method of claim 3, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is a binary power; and
setting the respective slot number to the respective bit reversal of the order of the plurality of bits.

### Claim 5 (depends on 3)

The method of claim 3, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is not a binary power;
creating a list comprising a plurality of pairs of the sequence numbers and the bit reversals of the sequence numbers;
sorting the list by the bit reversals of the sequence numbers;
assigning a respective sorted position to each of the respective sequence numbers in response to the sorting; and
setting the respective slot for the sequence number to be the respective sorted position of the sequence number in the list.

### Claim 6 (depends on 3)

The method of claim 3, wherein the sending further comprises:
sending the respective frame from the respective slot in the queue to the respective target client during a respective time period that is associated with the respective slot if the respective slot contains the respective frame; and
refraining from sending data during the respective time period if the respective slot is empty.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
calculating a size of a logical group of a subset of the plurality of frames based on a display rate of the subset and a round-trip latency of a network to which one of the target clients is connected; and
calculating a maximum data rate needed to send one of the programs to the target client based on the size of the logical group and a transfer rate for the logical group.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining an available bandwidth of each resource in a path in the network to the one of the target clients; and
notifying the one of the target clients of insufficient bandwidth if the maximum data rate is less than the available bandwidth.

### Claim 9

A storage medium encoded with instructions, wherein the instructions when executed comprise:
receiving a plurality of frames in an arrival order, wherein each of the plurality of frames has a respective target client and a respective sequence number that represents a relative position of the respective frame in the arrival order;
determining a transmission order based on a bit reversal of the sequence numbers; and
sending each of the respective frames to the respective target client in the transmission order.

### Claim 10 (depends on 9)

The storage medium of claim 9, further comprising:
receiving a plurality of requests from the respective target clients, wherein the plurality of requests specify a plurality of respective programs, wherein the programs comprise the plurality of frames.

### Claim 11 (depends on 9)

The storage medium of claim 9, wherein the determining further comprises:
selecting a respective slot in a queue for each of the respective frames, wherein the selecting further comprises creating a respective slot number of the respective slot based on a bit reversal of an order of a plurality of bits of the respective sequence number; and
adding the respective frame to the respective slot.

### Claim 12 (depends on 11)

The storage medium of claim 11, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is a binary power; and
setting the respective slot number to the respective bit reversal of the order of the plurality of bits.

### Claim 13 (depends on 11)

The storage medium of claim 11, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is not a binary power;
creating a list comprising a plurality of pairs of the sequence numbers and the bit reversals of the sequence numbers;
sorting the list by the bit reversals of the sequence numbers;
assigning a respective sorted position to each of the respective sequence numbers in response to the sorting; and
setting the respective slot for the sequence number to be the respective sorted position of the sequence number in the list.

### Claim 14 (depends on 11)

The storage medium of claim 11, wherein the sending further comprises:
sending the respective frame from the respective slot in the queue to the respective target client during a respective time period that is associated with the respective slot if the respective slot contains the respective frame; and
refraining from sending data during the respective time period if the respective slot is empty.

### Claim 15 (depends on 9)

The storage medium of claim 9, further comprising:
calculating a size of a logical group of a subset of the plurality of frames based on a display rate of the subset and a round-trip latency of a network to which one of the target clients is connected;
calculating a maximum data rate needed to send one of the programs to the target client based on the size of the logical group and a transfer rate for the logical group;
determining an available bandwidth of each resource in a path in the network to the one of the target clients; and
notifying the one of the target clients of insufficient bandwidth if the maximum data rate is less than the available bandwidth.

### Claim 16

A computer system comprising:
a processor; and
memory connected to the processor, wherein the memory encodes instructions that when executed by the processor comprise:
receiving a plurality of requests from a plurality of respective target clients, wherein the plurality of requests specify a plurality of respective programs, wherein the programs comprise a plurality of frames,
receiving the plurality of frames in an arrival order, wherein each of the plurality of frames has one of the respective target clients and a respective sequence number that represents a relative position of the respective frame in the arrival order,
determining a transmission order based on a bit reversal of the sequence numbers, and
sending each of the respective frames to the respective target client in the transmission order.

### Claim 17 (depends on 16)

The computer system of claim 16, wherein the determining further comprises:
selecting a respective slot in a queue for each of the respective frames, wherein the selecting further comprises creating a respective slot number of the respective slot based on a bit reversal of an order of a plurality of bits of the respective sequence number; and
adding the respective frame to the respective slot.

### Claim 18 (depends on 17)

The computer system of claim 17, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is a binary power; and
setting the respective slot number to the respective bit reversal of the order of the plurality of bits.

### Claim 19 (depends on 17)

The computer system of claim 17, wherein the creating the respective slot number further comprises:
determining that the queue has a length that is not a binary power;
creating a list comprising a plurality of pairs of the sequence numbers and the bit reversals of the sequence numbers;
sorting the list by the bit reversals of the sequence numbers;
assigning a respective sorted position to each of the respective sequence numbers in response to the sorting; and
setting the respective slot for the sequence number to be the respective sorted position of the sequence number in the list.

### Claim 20 (depends on 17)

The computer system of claim 17, wherein the sending further comprises:
sending the respective frame from the respective slot in the queue to the respective target client during a respective time period that is associated with the respective slot if the respective slot contains the respective frame; and
refraining from sending data during the respective time period if the respective slot is empty.
