Network packet aware data encoding
View Patent ↗A communication device is operable to manage communication of data streams, which comprise data encoded utilizing scheme that generate plurality of frames with logical grouping and/or inter-frame dependencies, based on determination of network payload parameters that are utilized for the data transmission. Exemplary encoding schemes comprise MPEG encoding, which generates data streams comprised I-frames, P-frames and/or B-frames. Network packets that are utilized to perform data communication are generated such that packet payloads comprise only data corresponding to a single frame and/or logical grouping within the encoded data stream. Feedback from networking subsystem in the communication device may be provided during processing of the data streams to enable use of network payload parameters during encoding operations. Frame sizes may be adjusted, for example, so that a size of each frame is multiple of a size of a payload of the network packets that are utilized in data communication.
1. A method comprising:
in a communication device operative to process data arranged in network packets and a plurality of data frames,
arranging data in data streams to prevent generation of network packets comprising data corresponding to more than one data frame of said plurality of data frames; and
transmitting said data streams via one or more interfaces of the communication device.
2. The method of claim 1 further comprising:
arranging the data in the data streams to prevent generation of network packets comprising frames crossing a logical frame grouping.
3. The method of claim 2 wherein said plurality of data frames comprises MPEG based I-frames, P-frames or B-frames, and wherein said logical frame grouping is based on MPEG frame referencing dependencies.
4. The method of claim 1 further comprising:
arranging the data in the data streams to prevent generation inter-frame packing within individual network packets.
5. The method of claim 1 further comprising:
determining network payload parameters that are utilized for transmitting the data streams via the one or more interfaces of said communication device; and
using the network payload parameters for arranging the data.
6. The method of claim 1 further comprising:
receiving data for transmission;
encoding the received data according to a predetermined data coding protocol prior to arranging the encoded data in the data streams.
7. The method of claim 6 further comprising:
receiving network feedback;
using the network feedback, arranging the received data in data streams to encode or re-encode the received data to ensure that framing logical groupings are aligned with networking limitations as evidenced by the network feedback.
8. The method of claim 7 wherein receiving network feedback comprises:
receiving information about the type of network packets available to perform network communication, or
receiving information about payload available within network packets.
9. A user endpoint device for data communication in a network, the user endpoint device comprising:
a source of audio or video data;
a data encoder coupled to the data source; and
a data packetizer coupled to the data encoder to combine encoded data from the data encoder into a stream of network packets, the data packetizer operative to generate the network packets using information about inter-frame logical grouping or inter-frame dependencies to prevent inter-frame data packing within individual network packets;
a network subsystem coupled to the data packetizer and operable to communicate the stream of network packets from the user endpoint device to a network.
10. The user endpoint device of claim 9 wherein the data encoder is operative to encode data based on framing criteria.
11. The user endpoint device of claim 9 wherein the data encoder is operative to use MPEG encoding to generate I-frames, B-frames and P-frames with some inter-frame dependencies, and wherein the data packetizer is operative to combine the generated I-frames, B-frames and P-frames to prevent generation of network packets having inter-frame dependencies.
12. The user endpoint device of claim 9 wherein the data encoder is operative to generate a plurality of data frames and wherein the data packetizer is operative to prevent generation of network packets which include data corresponding to more than one frame of the plurality of frames.
13. The user endpoint device of claim 9 wherein the data encoder is operative to generate a plurality of data frames with logical grouping based on inter-frame dependencies and wherein the data packetizer is operative to prevent generation of network packets crossing the logical grouping.
14. The user endpoint device of claim 9 wherein the network subsystem comprises a streaming management function operable to determine framing characteristics of data communicated by the network subsystem and to communicate the framing characteristics to the data packetizer for use in generating the network packets.
15. The user endpoint device of claim 14 wherein the streaming management function is operative to detect presence of framing in communicated transport streams.
16. The user endpoint device of claim 15 wherein the streaming management function is operative to determine header information to detect the presence of framing.
17. The user endpoint device of claim 14 wherein the streaming management function is operative to determine based on header information in the communicated transport streams whether the communicated transport streams are MPEG encoded, and wherein the data packetizer is responsive to information that the communicated transport streams are MPEG encoded and operative to combine MPEG frames from the data encoder to prevent generation of network packets having inter-frame dependencies.
18. A method comprising:
at a communication device, generating a data stream;
determining applicable framing information about frame structure of the generated data stream;
determining network packet limitations or requirements for communicating data at the communication device;
packetizing the generated data stream to form a plurality of network packets, using the determined network packet limitations or requirements, so that the network packets do not include data corresponding to more than one frame as defined by the applicable framing information; and
communicating the network packets from the communication device.
19. The method of claim 18 wherein determining applicable framing information comprises determining logical frame groupings and inter-frame dependencies of frames of the generated data stream.
20. The method of claim 19 further comprising:
receiving network feedback defining networking limitations that determine frame structure of data to be communicated from the communication device; and
using the network feedback, encoding the data stream consistent with the networking limitations.