Per-image forward error correction
AssigneeApple Inc.
InventorsYan Yang, Hyeonkuk Jeong, Joe S. Abuan, Xiaosong Zhou
Life of this patent
Estimating the term…
Abstract
Some embodiments provide a method for encoding digital video. The method receives a digital video image. The method encodes the digital video image. The method generates error correction information for the encoded digital video image using only data from the encoded digital video image. The method transmits the generated error correction information with the encoded digital video image. In some embodiments, the method determines a level of error protection for the encoded digital video image based on an image type of the encoded digital video image.
Claims23
A non-transitory computer readable medium storing a computer program which when executed by at least one processor encodes digital video, the computer program comprising sets of instructions for:
- receiving a video stream comprising a plurality of digital video images;
- encoding an image of the plurality of digital video images to generate an encoded digital video frame;
- generating error correction information for the encoded digital video frame, wherein more error correction information is generated for an I-frame than for a non I-frame, wherein the generating error correction information comprises:
- dividing the encoded digital video frame into a plurality of data packets to transmit over a network;
- determining a number of packets required to generate error correction information for the encoded digital video frame;
- when the required number of packets is not greater than a number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame;
- and
- when the required number of packets is greater than the number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame and additional pseudo-packets, wherein the additional pseudo-packets comprise predetermined data that is not obtained from the video stream, wherein the required number of packets is not greater than the sum of the number of data packets in the plurality of data packets the number of additional pseudo-packets;
- and
- transmitting the generated error correction information with the encoded digital video frame.
A non-transitory computer readable medium storing a computer program which when executed by at least one processor encodes a digital video image, the computer program comprising sets of instructions for:
- identifying a frame type for an encoded digital video frame;
- determining a level of error protection for the encoded digital video frame based on the identified frame type, wherein the level of error protection is greater for an I-frame than for a P-frame or a B-frame;
- generating error correction information for the encoded digital video frame according to the level of error protection, wherein the generating error correction information comprises:
- dividing the encoded digital video frame into a plurality of data packets to transmit over a network;
- determining a number of packets required to generate error correction information for the encoded digital video frame;
- when the required number of packets is not greater than a number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame;
- and
- when the required number of packets is greater than the number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame and additional pseudo-packets, wherein the additional pseudo-packets comprise predetermined data that is not obtained from the encoded digital video frame, wherein the number of packets comprised in the plurality of data packets and the additional pseudo-packets is at least the required number of packets;
- transmitting the generated error correction information with the encoded digital video frame.
A non-transitory computer readable medium storing a computer program which when executed by at least one processor encodes a digital video image, the computer program comprising sets of instructions for:
- determining a packet size for transmitting an encoded video frame over a network;
- dividing the encoded video frame into a plurality of data packets to transmit over the network based on the packet size;
- determining a number of packets required to generate error correction information for the encoded video frame;
- when the required number of packets is greater than a number of data packets into which the video frame is divided, creating additional pseudo-packets, wherein the additional pseudo-packets comprise predetermined data that is not obtained from the encoded video frame;
- generating error correction information for the encoded video frame using the plurality of data packets and the created pseudo-packets;
- and
- transmitting the plurality of data packets over the network with at least one error correction information packet.
A method of encoding digital video, comprising:
- receiving a video stream comprising a plurality of digital video images;
- encoding an image of the plurality of digital video images to generate an encoded digital video frame;
- generating error correction information for the encoded digital video frame, wherein more error correction information is generated for an I-frame than for a non I-frame, wherein the generating error correction information comprises:
- dividing the encoded digital video frame into a plurality of data packets to transmit over a network;
- determining a number of packets required to generate error correction information for the encoded digital video frame;
- when the required number of packets is not greater than a number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame;
- and
- when the required number of packets is greater than the number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame and additional pseudo-packets, wherein the additional pseudo-packets comprise predetermined data that is not obtained from the video stream, wherein the required number of packets is not greater than the sum of the number of data packets in the plurality of data packets the number of additional pseudo-packets;
- and
- transmitting the generated error correction information with the encoded digital video frame.
A method of encoding digital video image, comprising:
- identifying a frame type for an encoded digital video frame;
- determining a level of error protection for the encoded digital video frame based on the identified frame type, wherein the level of error protection is greater for an I-frame than for a P-frame or a B-frame;
- generating error correction information for the encoded digital video frame according to the level of error protection, wherein the generating error correction information comprises:
- dividing the encoded digital video frame into a plurality of data packets to transmit over a network;
- determining a number of packets required to generate error correction information for the encoded digital video frame;
- when the required number of packets is not greater than a number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame;
- and
- when the required number of packets is greater than the number of data packets in the plurality of data packets, generating error correction information using data only from the encoded digital video frame and additional pseudo-packets, wherein the additional pseudo-packets comprise predetermined data that is not obtained from the encoded digital video frame, wherein the number of packets comprised in the plurality of data packets and the additional pseudo-packets is at least the required number of packets;
- transmitting the generated error correction information with the encoded digital video frame.
A method of encoding digital video image, comprising:
- determining a packet size for transmitting an encoded video frame over a network;
- dividing the encoded video frame into a plurality of data packets to transmit over the network based on the packet size;
- determining a number of packets required to generate error correction information for the encoded video frame;
- when the required number of packets is greater than a number of data packets into which the video frame is divided, creating additional pseudo-packets, wherein the additional pseudo- packets comprise predetermined data that is not obtained from the encoded video frame;
- generating error correction information for the encoded video frame using the plurality of data packets and the created pseudo-packets;
- and
- transmitting the plurality of data packets over the network with at least one error correction information packet.
Dependencies are inferred from the claim text.