US2013235928A1PendingUtilityA1

Advanced coding techniques

54
Assignee: APPLE INCPriority: Mar 6, 2012Filed: Oct 15, 2012Published: Sep 12, 2013
Est. expiryMar 6, 2032(~5.6 yrs left)· nominal 20-yr term from priority
H04N 19/149H04N 19/139H04N 19/192H04N 19/124H04N 19/172H04N 19/154H04N 19/577H04N 19/117H04N 19/15H04N 19/58H04N 19/107H04N 19/46H04N 19/156
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Embodiments of the present invention provide techniques for efficiently coding/decoding video data during circumstances when constraints are imposed on the video data. A frame from a video sequence may be marked as a delayed decoder refresh frame. Frames successive to the delayed decoder refresh frame in coding order may predictively coded without reference to frames preceding the delayed decoder refresh frame in coding order. The distance between the delayed decoder refresh frame and the successive frames may exceed a distance threshold. Frames successive to a current frame in decoding order may be decoded without reference to frames preceding the current frame in decoding order. The distance between the current frame and the successive frames may exceed a distance threshold.

Claims

exact text as granted — not AI-modified
We claim: 
     
         1 . A video coding method, comprising:
 selecting coding parameters of a video sequence based on a target bit rate;   predictively coding the video sequence based on the parameters; and   if the target bit rate is not achieved:
 identifying regions of the video sequence with high bit rates, 
 increasing a filtering strength applied to the identified regions, and 
 predictively coding the video sequence with the increased filtering strength. 
   
     
     
         2 . A video coding method, comprising:
 predictively coding, on a first coding pass, a video sequence based on a first set of coding parameters;   storing values of a characteristic of frames from the video sequence during the first coding pass;   identifying frames which violate a constraint imposed on the characteristic based on the stored values;   determining target characteristic values for the frames from the video sequence, wherein the target characteristic values are lower than the constraint;   computing a second set of coding parameters to achieve the target characteristic values; and   predictively coding, on a second pass, the video sequence based on the second set of coding parameters.   
     
     
         3 . The method of  claim 2 , wherein the characteristic is at least one of data rate, visual quality, decoder complexity, decoder thermal generation, and decoder power usage. 
     
     
         4 . The method of  claim 2 , wherein the second set of coding parameters includes a quantization parameter. 
     
     
         5 . A video coding method, comprising:
 determining perceptual model values from a video sequence;   computing an index based on the perceptual model values into a matrix, wherein the matrix stores associations between at least one parameter range and file sizes;   retrieving a file size from the matrix corresponding to the computed index; and   predictively coding the video sequence with parameters associated with the file size.   
     
     
         6 . The method of  claim 5 , wherein the perceptual model values are determined from at least one of spatial and temporal visual masking values. 
     
     
         7 . The method of  claim 5 , wherein the at least one parameter range includes at least one of data rate range, resolution range, thermal output range, power utilization range, and decoder complexity range. 
     
     
         8 . A video coding method, comprising:
 determining a number of buffered frames from a video sequence available to calculate an optimum file size; and   if the number of available buffered frames is below a threshold, predictively coding the video sequence to achieve one of a predetermined video quality level or a video quality level determined from previous coding history.   
     
     
         9 . A video coding method, comprising:
 computing a motion compensated error energy of a current frame of a video sequence;   computing a weighted average motion compensated error energy of frames successive to the current frame in coding order;   if the motion compensated error energy of the current frame is higher than the weighted average motion compensated error energy of the successive frames by a first factor, computing a weighted average motion compensated error energy of the current frame and frames adjacent to the current frame;   if the weighted average motion compensated error energy of the current frame and the adjacent frames is higher than the weighted average motion compensated error energy of the successive frames by a second factor, marking the current frame as a random access pictures frame; and   predictively coding the current frame.   
     
     
         10 . A video coding method, comprising:
 marking a frame from a video sequence as a delayed decoder refresh frame; and   predictively coding frames successive to the delayed decoder refresh frame in coding order without reference to frames preceding the delayed decoder refresh frame in coding order, wherein the distance between the delayed decoder refresh frame and the successive frames exceeds a distance threshold.   
     
     
         11 . The method of  claim 10 , further comprising:
 predictively coding the delayed decoder refresh frame without reference to the frames preceding the delayed decoder refresh frame in coding order.   
     
     
         12 . The method of  claim 10 , further comprising:
 communicating the distance threshold to a decoder.   
     
     
         13 . A decoding method, comprising:
 decoding frames successive to a current frame in decoding order without reference to frames preceding the current frame in decoding order, wherein a distance between the current frame and the successive frames exceeds a distance threshold.   
     
     
         14 . The method of  claim 13 , wherein the current frame is marked by a coder as a delayed decoder refresh frame. 
     
     
         15 . The method of  claim 13 , further comprising:
 decoding the current frame without reference to the frames preceding the current frame in decoding order.   
     
     
         16 . A coding apparatus, comprising:
 a controller to select coding parameters of a video sequence based on a target bit rate; and   a coding engine to:
 predictively code the video sequence based on the parameters, and 
 if the target bit rate is not achieved:
 identify regions of the video sequence with high bit rates, and 
 predictively code the video sequence with an increased filtering strength applied to the identified regions by a pre-processor. 
 
   
     
     
         17 . A coding apparatus, comprising:
 a coding engine to:
 predictively code, on a first coding pass, a video sequence based on a first set of coding parameters, and 
 predictively code, on a second coding pass, the video sequence based on a second set of coding parameters; 
   a storage device to store values of a characteristic of frames from the video sequence during the first coding pass; and   a controller to:
 identify frames which violate a constraint imposed on the characteristic based on the stored values, 
 determine target characteristic values for the frames from the video sequence, wherein the target characteristic values are lower than the constraint, and 
 compute the second set of coding parameters to achieve the target characteristic values. 
   
     
     
         18 . The apparatus of  claim 17 , wherein the characteristic is at least one of data rate, visual quality, decoder complexity, decoder thermal generation, and decoder power usage. 
     
     
         19 . The apparatus of  claim 17 , wherein the second set of coding parameters includes a quantization parameter. 
     
     
         20 . A coding apparatus, comprising:
 a pre-processor to determine perceptual model values from a video sequence;   a controller to:
 compute an index based on the perceptual model values into a matrix, wherein the matrix stores associations between at least one parameter range and file sizes, and 
 retrieve a file size from the matrix corresponding to the computed index; and 
   a coding engine to predictively coding the video sequence with parameters associated with the file size.   
     
     
         21 . The apparatus of  claim 20 , wherein the perceptual model values are determined from at least one of spatial and temporal visual masking values. 
     
     
         22 . The apparatus of  claim 20 , wherein the at least one parameter range includes at least one of data rate range, resolution range, thermal output range, power utilization range, and decoder complexity range. 
     
     
         23 . A coding apparatus, comprising:
 a controller to:
 determine a number of buffered frames from a video sequence available to calculate an optimum file size, and 
 determine if the number of available buffered frames is below a threshold; and 
   a coding engine to:
 if the number of available buffered frames is below the threshold, predictively code the video sequence to achieve one of a predetermined video quality level or a video quality level determined from previous coding history. 
   
     
     
         24 . A coding apparatus, comprising:
 a controller to:
 compute a weighted average motion compensated error energy of frames successive to the current frame in coding order, 
 if the motion compensated error energy of the current frame is higher than the weighted average motion compensated error energy of the successive frames by a first factor, compute a weighted average motion compensated error energy of the current frame and frames adjacent to the current frame, and 
 if the weighted average motion compensated error energy of the current frame and the adjacent frames is higher than the weighted average motion compensated error energy of the successive frames by a second factor, mark the current frame as a random access pictures frame; and 
   a coding engine to predictively code the current frame.   
     
     
         25 . A coding apparatus, comprising:
 a controller to mark a frame from a video sequence as a delayed decoder refresh frame; and   a coding engine to predictively code frames successive to the delayed decoder refresh frame in coding order without reference to frames preceding the delayed decoder refresh frame in coding order, wherein the distance between the delayed decoder refresh frame and the successive frames exceeds a distance threshold.   
     
     
         26 . The coding apparatus of  claim 25 , wherein the coding engine is further configured to predictively code the delayed decoder refresh frame without reference to the frames preceding the delayed decoder refresh frame in coding order. 
     
     
         27 . The coding apparatus of  claim 25 , further comprising:
 a channel to communicate the distance threshold to a decoder.   
     
     
         28 . A decoding apparatus, comprising:
 a decoding engine to decode frames successive to a current frame in decoding order without reference to frames preceding the current frame in decoding order, wherein a distance between the current frame and the successive frames exceeds a distance threshold.   
     
     
         29 . The decoding apparatus of  claim 28 , wherein the current frame is marked by a coder as a delayed decoder refresh frame. 
     
     
         30 . The decoding apparatus of  claim 28 , wherein the decoding engine is further configured to decode the current frame without reference to the frames preceding the current frame in decoding order. 
     
     
         31 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 select coding parameters of a video sequence based on a target bit rate;   predictively code the video sequence based on the parameters; and   if the target bit rate is not achieved:
 identify regions of the video sequence with high bit rates, 
 increase a filtering strength applied to the identified regions, and 
 predictively code the video sequence with the increased filtering strength. 
   
     
     
         32 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 predictively code, on a first coding pass, a video sequence based on a first set of coding parameters;   store values of a characteristic of frames from the video sequence during the first coding pass;   identify frames which violate a constraint imposed on the characteristic based on the stored values;   determine target characteristic values for the frames from the video sequence, wherein the target characteristic values are lower than the constraint;   compute a second set of coding parameters to achieve the target characteristic values; and   predictively code, on a second pass, the video sequence based on the second set of coding parameters.   
     
     
         33 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 determine perceptual model values from a video sequence;   compute an index based on the perceptual model values into a matrix, wherein the matrix stores associations between at least one parameter range and file sizes;   retrieve a file size from the matrix corresponding to the computed index; and   predictively code the video sequence with parameters associated with the file size.   
     
     
         34 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 compute a motion compensated error energy of a current frame of a video sequence;   compute a weighted average motion compensated error energy of frames successive to the current frame in coding order;   if the motion compensated error energy of the current frame is higher than the weighted average motion compensated error energy of the successive frames by a first factor, compute a weighted average motion compensated error energy of the current frame and frames adjacent to the current frame;   if the weighted average motion compensated error energy of the current frame and the adjacent frames is higher than the weighted average motion compensated error energy of the successive frames by a second factor, mark the current frame as a random access pictures frame; and   predictively code the current frame.   
     
     
         35 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 mark a frame from a video sequence as a delayed decoder refresh frame; and   predictively code frames successive to the delayed decoder refresh frame in coding order without reference to frames preceding the delayed decoder refresh frame in coding order, wherein the distance between the delayed decoder refresh frame and the successive frames exceeds a distance threshold.   
     
     
         36 . A storage device storing program instructions that, when executed by a processor, cause the processor to:
 decode frames successive to a current frame in decoding order without reference to frames preceding the current frame in decoding order, wherein a distance between the current frame and the successive frames exceeds a distance threshold.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.