Claims
- 1. A method of facilitating transmission of video frames over multiple channels in a communication system, said method comprising:
for each of said video frames, generating frame data representative of said each video frame; transforming said frame data to obtain transform coefficients of said frame data; assembling quadtrees of said transform coefficients, each of said quadtrees including a group of said transform coefficients associated with an equivalent spatial location in said each video frame; separately coding said quadtrees to form coded quadtree coefficient groups; and distributing said coded quadtree coefficient groups among said multiple channels for transmission.
- 2. A method as claimed in claim 1 wherein said distributing operation comprises assigning said coded quadtree coefficient groups to said multiple channels such that contiguous portions of said frame data will be transmitted over different ones of said multiple channels.
- 3. A method as claimed in claim 1 wherein:
said generating operation generates said frame data and motion vectors; and said method further comprises: forming blocks of said motion vectors; separately coding said blocks to form coded motion vector blocks; and distributing said coded motion vector blocks among said multiple channels for transmission.
- 4. A method as claimed in claim 3 utilizing a Huffman coding algorithm to obtain said coded motion vector blocks.
- 5. A method as claimed in claim 3 further comprising assigning said coded motion vector blocks to said multiple channels such that adjacent portions of said motion vectors will be transmitted over different ones of said multiple channels.
- 6. A method as claimed in claim 3 wherein said coded quadtree coefficient groups are distributed among said multiple channels independent from said coded motion vector blocks.
- 7. A method as claimed in claim 1 further comprising forming said quadtrees into 16 x 16 coding blocks prior to said coding operation.
- 8. A method as claimed in claim 1 wherein:
said transforming operation comprises performing a wavelet transform such that said transform coefficients are wavelet coefficients; and said coding operation comprises utilizing a zerotree wavelet coding algorithm.
- 9. A method as claimed in claim 1 wherein said coding operation comprises:
assembling said coded quadtree coefficient groups into packets; for each of said packets, assigning one of said multiple channels for transmission of said each packet; and forwarding said each packet toward said assigned one of said multiple channels.
- 10. A method as claimed in claim 1 further comprising:
assembling said coded quadtree coefficient groups into packets; attaching a packet identifier to each of said packets prior to said distributing operation; receiving said packets at a decoder via said multiple channels; and reconstructing said each video frame at said decoder from said received packets in response to said packet identifier.
- 11. A method as claimed in claim 10 wherein said reconstructing operation comprises:
determining an unsuccessful transmission of one of said packets; and forming an estimate of said transform coefficients of said one of said packets in response to adjacent ones of said transform coefficients of others of said packets received via others of said multiple channels.
- 12. A method as claimed in claim 10 wherein said packet is a first packet, said packet identifier is a first packet identifier, and said method further comprises:
generating motion vectors representative of said each video frame; forming blocks of said motion vectors; separately coding said blocks to form coded motion vector blocks; assembling said coded motion vector blocks into second packets; attaching a second packet identifier to each of said second packets; distributing said second packets among said multiple channels; and receiving said second packets at said decoder via said multiple channels, and said reconstructing operation reconstructs said each video frame from said first and second packets in response to said first and second packet identifiers.
- 13. A method as claimed in claim 12 further comprising:
determining an unsuccessful transmission of one of said second packets; and estimating said motion vectors of said one of said second packets from an average of surrounding ones of said motion vectors of others of said second packets received via others of said multiple channels.
- 14. A method as claimed in claim 10 wherein said reconstructing operation comprises adaptively buffering said received packets.
- 15. A method as claimed in claim 1 wherein said communication system is a satellite-based communication network and said multiple channels are wireless voice channels managed by said satellite-based communication network.
- 16. A coder/decoder system for facilitating transmission of video frames over multiple channels in a communication network, said system comprising:
an input for receiving each of said video frames; a processor in communication with said input for generating frame data representative of said each video frame; a wavelet transformer in communication with said processor for transforming said frame data to obtain wavelet coefficients of said frame data; a quadtree-based compressor for receiving said wavelet coefficients and assembling quadtrees of said wavelet coefficients, each of said quadtrees including a group of wavelet coefficients associated with an equivalent spatial location in said each video frame; a coder for separately coding said quadtrees to form coded quadtree coefficient groups; and an output interface in communication with said coder for receiving said coded quadtree coefficient groups, said output interface assigning said coded quadtree coefficient groups to said multiple channels such that adjacent portions of said frame data will be transmitted over different ones of said multiple channels.
- 17. A coder/decoder system as claimed in claim 16 wherein said processor comprises a motion compensation/estimation processor for generating said frame data and motion vectors representative of said each video frame.
- 18. A coder/decoder system as claimed in claim 17 wherein said coder is a first coder, and said system further comprises:
a splitter in communication with said processor for receiving said motion vectors and partitioning said motion vectors into blocks of motion vectors; a second coder for receiving said blocks of motion vectors and separately coding said blocks of motion vectors to form coded motion vector blocks, said second coder having an output in communication with said output interface, said output interface assigning said coded motion vector blocks to said multiple channels such that adjacent ones of said motion vector blocks will be transmitted over different ones of said multiple channels.
- 19. A coder/decoder system as claimed in claim 18 wherein said second coder utilizes a Huffman coding algorithm to obtain said coded motion vector blocks.
- 20. A coder/decoder system as claimed in claim 16 wherein said coder utilizes a zerotree wavelet coding algorithm.
- 21. A coder/decoder system as claimed in claim 16 wherein said output interface packetizes said coded quadtree coefficient groups to form transmission packets and appends a channel identifier to each of said transmission packets, said channel identifier identifying an assigned one of said multiple channels.
- 22. A coder/decoder system as claimed in claim 16 further comprising:
an input interface for receiving transmitted packets of coded quadtree coefficient groups from a second coder/decoder system via said multiple channels; buffer elements in communication with said input interface, one each of said buffer elements being associated with one each of said multiple channels, said input interface forwarding said transmitted coded quadtree coefficient groups received at ones of said multiple channels toward said buffer elements associated with said ones of said multiple channels; and a decoder in communication with said buffer elements for receiving said transmitted coded quadtree coefficient groups and reconstructing second video frames represented by said transmitted coded quadtree coefficient groups.
- 23. A coder/decoder system as claimed in claim 22 wherein said buffer elements comprise an adaptive buffer.
- 24. A coder/decoder system as claimed in claim 22 further comprising an estimator in communication with said decoder, wherein upon determination of an unsuccessful transmission of one of said packets, said estimator forms an estimate of said transmitted coded quadtree coefficient groups of said one of said packets in response to adjacent ones of said transmitted quadtree coefficient groups of others of said packets received via said multiple channels.
- 25. A coder/decoder system as claimed in claim 22 wherein said packets are first packets, said input interface further receives second packets of motion vector blocks, and said decoder reconstructs said second video frames from said first and second packets.
- 26. A coder/decoder system as claimed in claim 25 further comprising an estimator in communication with said decoder, wherein upon determination of an unsuccessful transmission of one of said second packets, said estimator forms an estimate of said motion vector blocks of said one of said second packets from an average of surrounding ones of said motion vectors of others of said second packets received via said multiple channels.
- 27. A method of facilitating transmission of video frames over multiple voice channels in a satellite-based communication network, said method comprising:
for each of said video frames, generating frame data and motion vectors representative of said each video frame; transforming said frame data to obtain transform coefficients of said frame data; assembling quadtrees of said transform coefficients, each of said quadtrees including a group of said transform coefficients associated with an equivalent spatial location in said each video frame; separately coding said quadtrees to form coded quadtree coefficient groups; forming blocks of said motion vectors; separately coding said blocks to form coded motion vector blocks; and distributing said coded quadtree coefficient groups and said coded motion vector blocks among said multiple channels for transmission, said distributing operation including: assigning said coded quadtree coefficient groups to said multiple channels such that contiguous portions of said frame data will be transmitted over different ones of said multiple voice channels; and assigning said coded motion vectors to said multiple channels such that adjacent portions of said motion vectors will be transmitted over different ones of said multiple voice channels.
- 28. A method as claimed in claim 27 wherein said distributing operation further comprises:
assembling said coded quadtree coefficient groups into first packets; assembling said coded motion vector blocks into second packets, said first and second packets being assigned said multiple voice channels for transmission of said first and second packets; and forwarding said first and second packets toward said assigned ones of said multiple voice channels.
- 29. A method as claimed in claim 28 further comprising:
attaching a packet identifier to each of said first and second packets prior to transmission of said first and second packets; receiving said first and second packets at a decoder via said multiple voice channels; and reconstructing said each video frame from said received packets in response to said packet identifier.
- 30. A method as claimed in claim 29 wherein said reconstructing operation comprises:
determining an unsuccessful transmission of one of said first packets; and forming an estimate of said transform coefficients of said one of said packets in response to adjacent ones of said transform coefficients of others of said packets received via others of said multiple channels.
- 31. A method as claimed in claim 29 wherein said packet determining an unsuccessful transmission of one of said second packets; and
estimating said motion vectors of said one of said second packets from an average of surrounding ones of said motion vectors of others of said second packets received via others of said multiple channels.
RELATED INVENTIONS
[0001] The present invention claims priority under 35 U.S.C. §119(e) to: “Video Coding and Transmission Over Multiple Very Low Bit-Rate Channels,” U.S. Provisional Patent Application Ser. No. 60/463,573, filed Apr. 16, 2003, which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60463573 |
Apr 2003 |
US |