Efficient video packetization methods for packet-switched video telephony applications
First Claim
1. A packet-switched video telephony device comprising:
- an encoder operable to encode a video sequence to create an encoded video data;
a packet switched video assembler operable to packetize the encoded video data into dynamically adjusted packets by estimating a size of a frame of the video sequence to determine an estimated frame size, estimating a number of packets to be generated for the frame based on the estimated frame size and iteratively calculating an updated packet size, based on at least the estimated frame size and the number of packets, on a packet-by-packet basis, while the encoded video data is packed into an actual bitstream; and
a transmitter for transmitting the actual bitstream.
1 Assignment
0 Petitions
Accused Products
Abstract
A device having an encoder and a packet switched video assembler which first estimates how many packets should be generated for one frame based on an estimated frame size and an initial fixed target packet size. Then, an updated packet size is recalculated on a packet-by-packet or slice-by-slice basis. The video assembler includes a three-stage process. The first stage estimates the frame size with or without encoding the video sequence, wherein in the case where the first stage includes encoding, the encoded data is packed in to a simulation bitstream. The second stage estimates the number of packets using the target packet size, estimated frame size and a configuration mode. The third stage dynamically updates the packet size using one-MB look-ahead approach with pre-encoding each MB. In an alternate embodiment, the third stage turns off the look ahead feature when encoding a current macroblock takes place during the third stage.
29 Citations
50 Claims
-
1. A packet-switched video telephony device comprising:
-
an encoder operable to encode a video sequence to create an encoded video data; a packet switched video assembler operable to packetize the encoded video data into dynamically adjusted packets by estimating a size of a frame of the video sequence to determine an estimated frame size, estimating a number of packets to be generated for the frame based on the estimated frame size and iteratively calculating an updated packet size, based on at least the estimated frame size and the number of packets, on a packet-by-packet basis, while the encoded video data is packed into an actual bitstream; and a transmitter for transmitting the actual bitstream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable medium comprising program instructions that, when executed, cause one or more processors to:
-
encode a video sequence to create an encoded video data; estimate a size of a frame of the video sequence to determine an estimated frame size, estimate a number of packets to be generated for a frame based on the estimated frame size; and iteratively calculate an updated packet size, based on at least the estimated frame size and the number of packets, on a packet-by-packet basis, while the encoded video data is packed into an actual bitstream. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A packet-switched video telephony device comprising:
-
encoding means for encoding a video sequence to create an encoded video data; video assembling means for assembling the encoded video data into dynamically adjusted packets by estimating a size of a frame of the video sequence to determine an estimated frame size, estimating a number of packets to be generated for a frame based on the estimated frame size and iteratively calculating an updated packet size, based on at least the estimated frame size and the number of packets, on a packet-by-packet basis, while the encoded video data is packed into an actual bitstream; and transmitting means for transmitting the actual bitstream. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A method comprising:
-
encoding a video sequence to create encoded video data with an encoder; and dynamically adjusting packets of the encoded video data with the encoder by estimating a size of a frame of the video sequence to determine an estimated frame size, estimating a number of packets to be generated for a frame, based on an estimated frame size, and iteratively calculating an updated packet size, based on at least the estimated frame size and the number of packets, on a packet-by-packet basis, while the encoded video data is packed into an actual bitstream. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. An encoder comprising:
-
a macroblock encoding module operable to encode a video sequence to create an encoded video data having macroblocks; and a packet switched video assembler operable to packetize the encoded video data into dynamically adjusted packets by estimating a size of a frame of the video sequence to determine an estimated frame size, iteratively calculating an updated packet size, on a slice-by-slice basis, while the encoded video data is packed into an actual bitstream, the updated packet sized being a function of the estimated frame size derived from a fixed initial target frame size and an estimated number of packets. - View Dependent Claims (50)
-
Specification