Video compression can be considered the process of representing digital video data in a form that uses fewer bits when stored or transmitted. Video compression algorithms can achieve compression by exploiting redundancies and irrelevancies in the video data, whether spatial, temporal, or color-space. Video compression algorithms typically segment the video data into portions, such as groups of frames and groups of pels, to identify areas of redundancy within the video that can be represented with fewer bits than the original video data. When these redundancies in the data are reduced, greater compression can be achieved. An encoder can be used to transform the video data into an encoded format, while a decoder can be used to transform encoded video back into a form comparable to the original video data. The implementation of the encoder/decoder is referred to as a codec.
Standard encoders divide a given video frame into non-overlapping coding units or macroblocks (rectangular regions of contiguous pels) for encoding. The macroblocks are typically processed in a traversal order of left to right and top to bottom in the frame. Compression can be achieved when macroblocks are predicted and encoded using previously-coded data. The process of encoding macroblocks using spatially neighboring samples of previously-coded macroblocks within the same frame is referred to as intra-prediction. Intra-prediction attempts to exploit spatial redundancies in the data. The encoding of macroblocks using similar regions from previously-coded frames, together with a motion estimation model, is referred to as inter-prediction. Inter-prediction attempts to exploit temporal redundancies in the data.
The encoder may measure the difference between the data to be encoded and the prediction to generate a residual. The residual can provide the difference between a predicted macroblock and the original macroblock. The encoder can generate motion vector information that specifies, for example, the location of a macroblock in a reference frame relative to a macroblock that is being encoded or decoded. The predictions, motion vectors (for inter-prediction), residuals, and related data can be combined with other processes such as a spatial transform, a quantizer, an entropy encoder, and a loop filter to create an efficient encoding of the video data. The residual that has been quantized and transformed can be processed and added back to the prediction, assembled into a decoded frame, and stored in a framestore. Details of such encoding techniques for video will be familiar to a person skilled in the art.
H.264/MPEG-4 Part 10 AVC (advanced video coding), hereafter referred to as H.264, is a codec standard for video compression that utilizes block-based motion estimation and compensation and achieves high quality video representation at relatively low bitrates. This standard is one of the encoding options used for Blu-ray disc creation and within major video distribution channels, including video streaming on the internet, video conferencing, cable television and direct-broadcast satellite television. The basic coding units for H.264 are 16×16 macroblocks. H.264 is the most recent widely-accepted standard in video compression.
The basic MPEG standard defines three types of frames (or pictures), based on how the macroblocks in the frame are encoded. An I-frame (intra-coded picture) is encoded using only data present in the frame itself. Generally, when the encoder receives video signal data, the encoder creates I frames first and segments the video frame data into macroblocks that are each encoded using intra-prediction. Thus, an I-frame consists of only intra-predicted macroblocks (or “intra macroblocks”). I-frames can be costly to encode, as the encoding is done without the benefit of information from previously-decoded frames. A P-frame (predicted picture) is encoded via forward prediction, using data from previously-decoded I-frames or P-frames, also known as reference frames. P-frames can contain either intra macroblocks or (forward-)predicted macroblocks. A B-frame (bi-predictive picture) is encoded via bidirectional prediction, using data from both previous and subsequent frames. B-frames can contain intra, (forward-)predicted, or bi-predicted macroblocks.
As noted above, conventional inter-prediction is based on block-based motion estimation and compensation (BBMEC). The BBMEC process searches for the best match between the target macroblock (the current macroblock being encoded) and similar-sized regions within previously-decoded reference frames. When a best match is found, the encoder may transmit a motion vector. The motion vector may include a pointer to the best match's frame position as well as information regarding the difference between the best match and the corresponding target macroblock. One could conceivably perform exhaustive searches in this manner throughout the video “datacube” (height×width×frame index) to find the best possible matches for each macroblock, but exhaustive search is usually computationally prohibitive. As a result, the BBMEC search process is limited, both temporally in terms of reference frames searched and spatially in terms of neighboring regions searched. This means that “best possible” matches are not always found, especially with rapidly changing data.
A particular set of reference frames is termed a Group of Pictures (GOP). The GOP contains only the decoded pels within each reference frame and does not include information as to how the macroblocks or frames themselves were originally encoded (I-frame, B-frame or P-frame). Older video compression standards, such as MPEG-2, used one reference frame (the previous frame) to predict P-frames and two reference frames (one past, one future) to predict B-frames. The H.264 standard, by contrast, allows the use of multiple reference frames for P-frame and B-frame prediction. While the reference frames are typically temporally adjacent to the current frame, there is also accommodation for the specification of reference frames from outside the set of the temporally adjacent frames.
Conventional compression allows for the blending of multiple matches from multiple frames to predict regions of the current frame. The blending is often linear, or a log-scaled linear combination of the matches. One example of when this bi-prediction method is effective is when there is a fade from one image to another over time. The process of fading is a linear blending of two images, and the process can sometimes be effectively modeled using bi-prediction. Some past standard encoders such as the MPEG-2 interpolative mode allow for the interpolation of linear parameters to synthesize the bi-prediction model over many frames.
The H.264 standard also introduces additional encoding flexibility by dividing frames into spatially distinct regions of one or more contiguous macroblocks called slices. Each slice in a frame is encoded (and can thus be decoded) independently from other slices. I-slices, P-slices, and B-slices are then defined in a manner analogous to the frame types described above, and a frame can consist of multiple slice types. Additionally, there is typically flexibility in how the encoder orders the processed slices, so a decoder can process slices in an arbitrary order as they arrive to the decoder.
Historically, model-based compression schemes have been proposed to avoid the limitations of BBMEC prediction. These model-based compression schemes (the most well-known of which is perhaps the MPEG-4 Part 2 standard) rely on the detection and tracking of objects or features in the video and a method for encoding those features/objects separately from the rest of the video frame. These model-based compression schemes, however, suffer from the challenge of segmenting video frames into object vs. non-object (feature vs. non-feature) regions. First, because objects can be of arbitrary size, their shapes need to be encoded in addition to their texture (color content). Second, the tracking of multiple moving objects can be difficult, and inaccurate tracking causes incorrect segmentation, usually resulting in poor compression performance. A third challenge is that not all video content is composed of objects or features, so there needs to be a fallback encoding scheme when objects/features are not present.
While the H.264 standard allows a codec to provide better quality video at lower file sizes than previous standards, such as MPEG-2 and MPEG-4 ASP (advanced simple profile), “conventional” compression codecs implementing the H.264 standard typically have struggled to keep up with the demand for greater video quality and resolution on memory-constrained devices, such as smartphones and other mobile devices, operating on limited-bandwidth networks. Video quality and resolution are often compromised to achieve adequate playback on these devices. Further, as video resolution increases, file sizes increase, making storage of videos on and off these devices a potential concern.
The present invention recognizes fundamental limitations in the inter-prediction process of conventional codecs and applies higher-level modeling to overcome those limitations and provide improved inter-prediction, while maintaining the same general processing flow and framework as conventional encoders.
In the present invention, higher-level modeling provides an efficient way of navigating more of the prediction search space (the video datacube) to produce better predictions than can be found through conventional block-based motion estimation and compensation. First, computer-vision-based feature and object detection algorithms identify regions of interest throughout the video datacube. The detection algorithm may be from the class of nonparametric feature detection algorithms. Next, the detected features and objects are modeled with a compact set of parameters, and similar feature/object instances are associated across frames. The invention then forms tracks out of the associated feature/objects, relates the tracks to specific blocks of video data to be encoded, and uses the tracking information to produce model-based predictions for those blocks of data.
In embodiments, the specific blocks of data to be encoded may be macroblocks. The formed tracks relate features to respective macroblocks.
Feature/object tracking provides additional context to the conventional encoding/decoding process. Additionally, the modeling of features/objects with a compact set of parameters enables information about the features/objects to be stored efficiently in memory, unlike reference frames, whose totality of pels are expensive to store. Thus, feature/object models can be used to search more of the video datacube, without requiring a prohibitive amount of additional computations or memory. The resulting model-based predictions are superior to conventional inter-predictions, because the model-based predictions are derived from more of the prediction search space.
In some embodiments, the compact set of parameters includes information about the features/objects and this set is stored in memory. For a feature, the respective parameters include a feature descriptor vector and a location of the feature. The respective parameters are generated when the respective feature is detected.
The model-based compression framework (MBCF) of the present invention avoids the segmentation problem encountered by previous model-based schemes. While the MBCF of the present invention also detects and tracks features/objects to identify important regions of the video frame to encode, it does not attempt to encode those features/objects explicitly. Rather, the features/objects are related to nearby macroblocks, and it is the macroblocks that are encoded, as in “conventional” codecs. This implicit use of modeling information mitigates the segmentation problem in two ways: it keeps the sizes of the coding units (macroblocks) fixed (thus avoiding the need to encode object/feature shapes), and it lessens the impact of inaccurate tracking (since the tracking aids but does not dictate the motion estimation step). Additionally, the MBCF of the present invention applies modeling to video data at multiple fidelities, including a fallback option to conventional compression when features/objects are not present; this hybrid encoding scheme ensures that modeling information will only be used where needed and not incorrectly applied where it is not.
In an alternative embodiment, the MBCF may be modified so that the resulting bitstream of the encoder is H.264-compliant, meaning that the bitstream can be interpreted (decoded) by any standard H.264 decoder. The modifications in this standards-compliant MBCF (SC-MBCF) mostly involve simplification of processing options to fit entirely with the signal processing architecture of H.264. The most important of the modifications is the encoding of model-based motion vectors directly into the H.264-compliant bitstream, which incorporates modeling information in a way that is standards-compliant.
In further embodiments, the MBCF may be modified so that the resulting bitstream is compliant with any standard codec—including MPEG-2 and HEVC (H.265)—that employs block-based motion estimation followed by transform, quantization, and entropy encoding of residual signals. The steps to make the resulting bitstream compliant will vary depending on the standard codec, but the most important step will always be the encoding of model-based motion vectors directly into the compliant bitstream.
Computer-based methods, codecs and other computer systems and apparatus for processing video data may embody the foregoing principles of the present invention.
The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.
The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety. A description of example embodiments of the invention follows.
The invention can be applied to various standard encodings and coding units. In the following, unless otherwise noted, the terms “conventional” and “standard” (sometimes used together with “compression,” “codecs,” “encodings,” or “encoders”) will refer to H.264, and “macroblocks” will be referred to without loss of generality as the basic H.264 coding unit.
Feature-Based Modeling
Definition of Features
Example elements of the invention may include video compression and decompression processes that can optimally represent digital video data when stored or transmitted. The processes may include or interface with a video compression/encoding algorithm(s) to exploit redundancies and irrelevancies in the video data, whether spatial, temporal, or spectral. This exploitation may be done through the use and retention of feature-based models/parameters. Moving forward, the terms “feature” and “object” are used interchangeably. Objects can be defined, without loss of generality, as “large features.” Both features and objects can be used to model the data.
Features are groups of pels in close proximity that exhibit data complexity. Data complexity can be detected via various criteria, as detailed below, but the ultimate characteristic of data complexity from a compression standpoint is “costly encoding,” an indication that an encoding of the pels by conventional video compression exceeds a threshold that would be considered “efficient encoding.” When conventional encoders allocate a disproportionate amount of bandwidth to certain regions (because conventional inter-frame search cannot find good matches for them within conventional reference frames), it becomes more likely that the region is “feature-rich” and that a feature model-based compression method will improve compression significantly in those regions.
Feature Detection
Many algorithms have been proposed in the literature for detecting features based on the structure of the pels themselves, including a class of nonparametric feature detection algorithms that are robust to different transformations of the pel data. For example, the scale invariant feature transform (SIFT) [Lowe, David, 2004, “Distinctive image features from scale-invariant keypoints,” Int. J. of Computer Vision, 60(2):91-110] uses a convolution of a difference-of-Gaussian function with the image to detect blob-like features. The speeded-up robust features (SURF) algorithm [Bay, Herbert et al., 2008, “SURF: Speeded up robust features,” Computer Vision and Image Understanding, 110(3):346-359] uses the determinant of the Hessian operator, also to detect blob-like features. In one embodiment of the present invention, the SURF algorithm is used to detect features.
Other feature detection algorithms are designed to find specific types of features, such as faces. In another embodiment of the present invention, the Haar-like features are detected as part of frontal and profile face detectors [Viola, Paul and Jones, Michael, 2001, “Rapid object detection using a boosted cascade of simple features,” Proc. of the 2001 IEEE Conf on Computer Vision and Pattern Recognition, 1:511-518].
In another embodiment, discussed in full in U.S. application Ser. No. 13/121,904, filed Oct. 6, 2009, which is incorporated herein by reference in its entirety, features can be detected based on encoding complexity (bandwidth) encountered by a conventional encoder. Encoding complexity, for example, can be determined through analysis of the bandwidth (number of bits) required by conventional compression (e.g., H.264) to encode the regions in which features appear. Restated, different detection algorithms operate differently, but each are applied to the entire video sequence of frames over the entire video data in embodiments. For a non-limiting example, a first encoding pass with an H.264 encoder is made and creates a “bandwidth map.” This in turn defines or otherwise determines where in each frame H.264 encoding costs are the highest.
Typically, conventional encoders such as H.264 partition video frames into uniform tiles (for example, 16×16 macroblocks and their subtiles) arranged in a non-overlapping pattern. In one embodiment, each tile can be analyzed as a potential feature, based on the relative bandwidth required by H.264 to encode the tile. For example, the bandwidth required to encode a tile via H.264 may be compared to a fixed threshold, and the tile can be declared a “feature” if the bandwidth exceeds the threshold. The threshold may be a preset value. The preset value may be stored in a database for easy access during feature detection. The threshold may be a value set as the average bandwidth amount allocated for previously encoded features. Likewise, the threshold may be a value set as the median bandwidth amount allocated for previously encoded features. Alternatively, one could calculate cumulative distribution functions of the tile bandwidths across an entire frame (or an entire video) and declare as “features” any tile whose bandwidth is in the top percentiles of all tile bandwidths.
In another embodiment, video frames can be partitioned into overlapping tiles. The overlapping sampling may be offset so that the centers of the overlapping tiles occur at the intersection of every four underlying tiles' corners. This over-complete partitioning is meant to increase the likelihood that an initial sampling position will yield a detected feature. Other, possibly more complex, topological partitioning methods are also possible.
Small spatial regions detected as features can be analyzed to determine if they can be combined based on some coherency criteria into larger spatial regions. Spatial regions can vary in size from small groups of pels to larger areas that may correspond to actual objects or parts of objects. However, it is important to note that the detected features need not correspond to unique and separable entities such as objects and sub-objects. A single feature may contain elements of two or more objects or no object elements at all. For the current invention, the critical characteristic of a feature is that the set of pels comprising the feature can be efficiently compressed, relative to conventional methods, by feature model-based compression techniques.
Coherency criteria for combining small regions into larger regions may include: similarity of motion, similarity of appearance after motion compensation, and similarity of encoding complexity. Coherent motion may be discovered through higher-order motion models. In one embodiment, the translational motion for each individual small region can be integrated into an affine motion model that is able to approximate the motion model for each of the small regions. If the motion for a set of small regions can be integrated into aggregate models on a consistent basis, this implies a dependency among the regions that may indicate a coherency among the small regions that could be exploited through an aggregate feature model.
Feature Model Formation
After features have been detected in multiple frames of a video, it is important that multiple instances of the same feature be related together. This process is known as feature association and is the basis for feature tracking (determining the location of a particular feature over time), described below. To be effective, however, the feature association process must first define a feature model that can be used to discriminate similar feature instances from dissimilar ones.
In one embodiment, the feature pels themselves can be used to model a feature. Feature pel regions, which are two-dimensional, can be vectorized and similar features can be identified by minimizing mean-squared error (MSE) or maximizing inner products between different feature pel vectors. The problem with this is that feature pel vectors are sensitive to small changes in the feature, such as translation, rotation, scaling, and changing illumination of the feature. Features often change in these ways throughout a video, so using the feature pel vectors themselves to model and associate features requires some accounting for these changes. In one embodiment, the invention accounts for such feature changes in the simplest way, by applying standard motion estimation and compensation algorithms found in conventional codecs (e.g., H.264), which account for translational motion of features. In other embodiments, more complex techniques can be used to account for rotations, scalings, and illumination changes of features from frame to frame.
In an alternate embodiment, feature models are compact representations of the features themselves (“compact” meaning “of lower dimension than the original feature pels vectors”) that are invariant (remain unchanged when transformations of a certain type are applied) to small rotations, translations, scalings, and possibly illumination changes of the feature—meaning that if the feature changes slightly from frame to frame, the feature model will remain relatively constant. A compact feature model of this type is often termed a “descriptor.” In one embodiment of the current invention, for example, the SURF feature descriptor has length 64 (compared to the length-256 feature pel vectors) and is based on sums of Haar wavelet transform responses. In another embodiment, a color histogram with 5 bins is constructed from a colormap of the feature pels, and this 5-component histogram acts as the feature descriptor. In an alternate embodiment, feature regions are transformed via 2-D DCT. The 2-D DCT coefficients are then summed over the upper triangular and lower triangular portions of the coefficient matrix. These sums then comprise an edge feature space and act as the feature descriptor.
When feature descriptors are used to model features, similar features can be identified by minimizing MSE or maximizing inner products between the feature descriptors (instead of between the feature pel vectors).
Feature Association and Tracking
Once features have been detected and modeled, the next step is to associate similar features over multiple frames. Each instance of a feature that appears in multiple frames is a sample of the appearance of that feature, and multiple feature instances that are associated across frames are considered to “belong” to the same feature. Once associated, multiple feature instances belonging to the same feature may be aggregated to form a feature track.
A feature track is defined as the (x,y) location of a feature as a function of frames in the video. One embodiment associates newly detected feature instances with previously tracked features (or, in the case of the first frame of the video, with previously detected features) as the basis for determining which features instances in the current frame are extensions of which previously-established feature tracks. The identification of a feature's instance in the current frame with a previously established feature track (or, in the case of the first video frame, with a previously detected feature) constitutes the tracking of the feature.
In different embodiments, feature descriptors (e.g., the SURF descriptor) or the feature pel vectors themselves may serve as the feature models. In one embodiment, previously-tracked features, depicted as regions 60-1, 60-2, . . . , 60-n in
In a further embodiment, if no candidate feature detection in the current frame qualifies for extension of a given feature track, a limited search for a matching region in the current frame is conducted using either the motion compensated prediction (MCP) algorithm within H.264 or a generic motion estimation and compensation (MEC) algorithm. Both MCP and MEC conduct a gradient descent search for a matching region in the current frame that minimizes MSE (and satisfies the MSE threshold) with respect to the target feature in the previous frame. If no matches can be found for the target feature in the current frame, either from the candidate feature detection or from the MCP/MEC search process, the corresponding feature track is declared “dead” or “terminated.”
In a further embodiment, if two or more feature tracks have feature instances in the current frame that coincide by more than some threshold (for example, 70% overlap), all but one of the feature tracks are pruned, or dropped from further consideration. The pruning process keeps the feature track that has the longest history and has the largest total ACA, summed over all feature instances.
The following combination of the above steps is henceforth referred to as the feature point analysis (FPA) tracker and serves as an embodiment of the invention: SURF feature detection, feature modeling (using SURF descriptors), ACA-based sorting of candidate features, and feature association and tracking via minimization of MSE from among candidate features, supplemented by MCP/MEC searching for track extensions.
In another embodiment of the invention, macroblocks in the video frame are thought of as features, registration of the features/macroblocks is done through the MCP engine found in H.264, and feature/macroblocks are associated using the inter-frame prediction metrics (such as sum of absolute transform differences [SATD]) of H.264; this combination is termed the macroblock cache (MBC) tracker. The MBC tracker is differentiated from standard inter-frame prediction because certain parameters are different (for example, search boundaries are disabled, so that the MBC tracker conducts a wider search for matches) and because certain aspects of the matching process are different. In a third embodiment, SURF detections are related to nearby macroblocks, and the macroblocks are associated and tracked using the MCP and inter-frame prediction engines of H.264; this combination is termed the SURF tracker.
Feature-Based Compression
Feature modeling (or data modeling in general) can be used to improve compression over standard codecs. Standard inter-frame prediction uses block-based motion estimation and compensation to find predictions for each coding unit (macroblock) from a limited search space in previously decoded reference frames. Exhaustive search for good predictions throughout all past reference frames is computationally prohibitive. By detecting and tracking features throughout the video, feature modeling provides a way of navigating the prediction search space to produce improved predictions without prohibitive computations. In the following, the terms “feature-based” and “model-based” are used interchangeably, as features are a specific type of model.
In one embodiment of the invention, feature tracks are used to relate features to macroblocks. The general steps for this are depicted in
The next step is to calculate an offset 110 between the target macroblock and the projected feature position in the current frame. This offset can then be used to generate predictions for the target macroblock, using earlier feature instances in the associated feature's track. These earlier feature instances occupy either a local cache 120, comprised of recent reference frames where the feature appeared, or a distant cache 140, comprised of “older” reference frames 150 where the feature appeared. Predictions for the target macroblock can be generated by finding the regions in the reference frames with the same offsets (130, 160) from earlier feature instances as the offset between the target macroblock and the projected feature position in the current frame.
Generating Model-Based Primary and Secondary Predictions
In one embodiment of the present invention, feature-based prediction is implemented as follows: (1) detect the features for each frame; (2) model the detected features; (3) associate features in different frames to create feature tracks; (4) use feature tracks to predict feature locations in the “current” frame being encoded; (5) associate macroblocks in the current frame that are nearby the predicted feature locations; (6) generate predictions for the macroblocks in Step 5 based on past locations along the feature tracks of their associated features.
In one embodiment, features are detected using the SURF algorithm and they are associated and tracked using the FPA algorithm, as detailed in the previous section. Once features have been detected, associated, and tracked, the feature tracks can be used to associate each feature track with a nearest macroblock, as detailed above. It is possible for a single macroblock to be associated with multiple features, so one embodiment selects the feature having maximum overlap with the macroblock as the associated feature for that macroblock.
Given a target macroblock (the current macroblock being encoded), its associated feature, and the feature track for that feature, a primary prediction for the target macroblock can be generated. Data pels for the primary prediction comes from the most recent frame (prior to the current frame) where the feature appears, henceforth referred to as the key frame. The primary prediction is generated after selecting a motion model and a pel sampling scheme. In one embodiment of the present invention, the motion model can be either “0th order,” which assumes that the feature is stationary between the key frame and the current frame, or “1st order,” which assumes that feature motion is linear between the 2nd-most recent reference frame, the key frame, and the current frame. In either case, the motion of the feature is applied (in the backwards temporal direction) to the associated macroblock in the current frame to obtain the prediction for the macroblock in the key frame. In one embodiment of the present invention, the pel sampling scheme can be either “direct,” in which motion vectors are rounded to the nearest integer and pels for the primary prediction are taken directly from the key frame, or “indirect,” in which the interpolation scheme from conventional compression such as H.264 is used to derive a motion-compensated primary prediction. Thus, the present invention can have four different types of primary prediction, depending on the motion model (0th or 1st order) and the sampling scheme (direct or indirect).
In an alternative embodiment, data pels for the primary prediction do not have to come from the key frame (the most recent frame prior to the current frame where the feature occurs) but can be taken from any previous reference frame stored in the reference frame buffer. In this case, the primary prediction can still be calculated via 0th or 1st order motion models and through direct or indirect sampling schemes. In the case of the 1st order motion model, linear motion is assumed between the current frame, the key frame, and the past reference frame.
Primary prediction can be refined by modeling local deformations through the process of subtiling. In the subtiling process, different motion vectors are calculated for different local regions of the macroblock. In one embodiment, subtiling can be done by dividing the 16×16 macroblock into two 8×16 regions, two 16×8 regions, four 8×8 quadrants, or even smaller partitions (4×8, 8×4, 4×4), and calculating motion vectors for each local region separately. In another embodiment, subtiling can be carried out in the Y/U/V color space domain by calculating predictions for the Y, U, and V color channels (or various partitions of them) separately.
In addition to the primary prediction for the target macroblock, one can also generate secondary predictions based on positions of the associated feature in reference frames prior to the key frame. In one embodiment, the offset from the target macroblock to the (projected) position of the associated feature in the current frame represents a motion vector that can be used to find secondary predictions from the feature's position in past reference frames. In this way, a large number of secondary predictions can be generated (one for each frame where the feature has appeared previously) for a given target macroblock that has an associated feature. In one embodiment, the number of secondary predictions can be limited by restricting the search to some reasonable number of past reference frames (for example, 25).
Composite Predictions
Once primary and secondary predictions have been generated for a target macroblock, the overall reconstruction of the target macroblock can be computed based on these predictions. In one embodiment, following conventional codecs, the reconstruction is based on the primary prediction only, henceforth referred to as primary-only (PO) reconstruction.
In another embodiment, the reconstruction is based on a composite prediction that sums the key prediction and a weighted version of one of the secondary predictions. This algorithm, henceforth referred to as PCA-Lite (PCA-L), involves the following steps:
1. Create the vectorized (1-D) versions of the target macroblock and primary prediction. These can then be denoted as the target vector t and primary vector p.
2. Subtract the primary vector from the target vector to compute a residual vector r.
3. Vectorize the set of secondary predictions to form vectors si(Without loss of generality, assume that these secondary vectors have unit norm.) Then subtract the primary vector from all the secondary vectors to form the primary-subtracted set, si−p. This has the approximate effect of projecting off the primary vector from the secondary vectors.
4. For each secondary vector, calculate a weighting c=rT (si−p).
5. For each secondary vector, calculate the composite prediction as t^p+c·(si−p).
In general, the steps in the PCA-Lite algorithm approximate the operations in the well-known orthogonal matching pursuit algorithm [Pati, 1993], with the composite prediction meant to have non-redundant contributions from the primary and secondary predictions. In another embodiment, the PCA-Lite algorithm described above is modified so that the primary vector in Steps 3-5 above is replaced by the mean of the primary and the secondary vector. This modified algorithm is henceforth referred to as PCA-Lite-Mean.
The PCA-Lite algorithm provides a different type of composite prediction than the bi-prediction algorithms found in some standard codecs (and described in the “Background” section above). Standard bi-prediction algorithms employ a blending of multiple predictions based on temporal distance of the reference frames for the individual predictions to the current frame. By contrast, PCA-Lite blends multiple predictions into a composite prediction based on the contents of the individual predictions.
In another embodiment, the coefficients for the PCA-Lite algorithm can be computed over subtiles of a macroblock instead of over the entire macroblock. The benefit of this is similar to the benefit described above for calculating motion vectors over subtiles of the macroblock: calculating “local” coefficients over a subtile is potentially more “accurate” than calculating “global” coefficients over an entire macroblock. To perform the PCA-Lite coefficient calculation in subtile space, the target vector t, primary vector p, and secondary vectors si are divided into subtiles (either region-based partitions such as 16×8, 8×16, 8×8, and smaller regions; or color-based partitions such as Y/U/V color channels) and Steps 1-5 above are repeated for each subtile. Thus, a larger number of coefficients are calculated (one for each subtile) and needed to be encoded; this is a tradeoff for the higher accuracy produced by the local coefficient calculation.
Note that the formation of composite predictions as described above does not require feature-based modeling; composite predictions can be formed from any set of multiple predictions for a given target macroblock. Feature-based modeling, however, provides a naturally-associated set of multiple predictions for a given target macroblock, and composite predictions provide an efficient way to combine the information from those multiple predictions.
Multiple Fidelity Data Modeling
The current invention provides the ability to model the data at multiple fidelities for the purpose of model-based compression. One embodiment of this is illustrated in
The bottom level 200 in
The second level 202 in
The third level 204 in
The top level 206 in
In an alternate embodiment, objects may also be identified by correlating and aggregating nearby feature models 214.
A multiple-fidelity processing architecture may use any combination of levels 200, 202, 204, 206 to achieve the most advantageous processing. In one embodiment, all levels in
In another embodiment, the levels in
Model-Based Compression Codec
Standard Codec Processing
The encoding process may convert video data into a compressed, or encoded, format. Likewise, the decompression process, or decoding process, may convert compressed video back into an uncompressed, or raw, format. The video compression and decompression processes may be implemented as an encoder/decoder pair commonly referred to as a codec.
The entropy coding algorithm 328 in
Hybrid Codec Implementing Model-Based Prediction
Preferably, the encoder 360 utilizes the CABAC entropy encoding algorithm at 382 to provide a context-sensitive, adaptive mechanism for context modeling. The context modeling may be applied to a binarized sequence of the syntactical elements of the video data such as block types, motion vectors, and quantized coefficients, with the binarization process using predefined mechanisms. Each element is then coded using either adaptive or fixed probability models. Context values can be used for appropriate adaptations of the probability models.
While standard H.264 encoders encode motion vectors differentially with respect to neighboring, previously-decoded motion vectors, the MBCF encodes motion vectors differentially with respect to a “global” motion vector derived from the tracker (whether FPA, MBC, SURF or other tracker known in the art). One of the benefits of running a tracker is that this global motion vector is available as a by-product.
Competition Mode
In
At 368, if the H.264 macroblock solution is not considered efficient, then additional analysis is performed, and the encoder enters Competition Mode 380. In this mode, several different predictions are generated for the target macroblock, based on multiple models 378. The models 378 are created from the identification of features 376 detected and tracked in prior frames 374. Note that as each new frame 362 is processed (encoded and then decoded and placed into framestore), the feature models need to be updated to account for new feature detections and associated feature track extensions in the new frame 362. The model-based solutions 382 are ranked based on their encoding sizes 384, along with the H.264 solution acquired previously. Because of its flexibility to encode a given macroblock using either a base encoding (the H.264 solution) or a model-based encoding, the present invention is termed a hybrid codec.
For example, in Competition Mode, an H.264 encoding is generated for the target macroblock to compare its compression efficiency (ability to encode data with a small number of bits) relative to other modes. Then for each encoding algorithm used in Competition Mode, the following steps are executed: (1) generate a prediction based on the codec mode/algorithm used; (2) subtract the prediction from the target macroblock to generate a residual signal; (3) transform the residual (target minus prediction) using an approximation of a 2-D block-based DCT; (4) encode the transform coefficients using an entropy encoder.
In some respects, the baseline H.264 (inter-frame) prediction can be thought of as based on a relatively simple, limited model (H.264 is one of the algorithms used in Competition Mode). However, the predictions of the encoder 360 can be based on more complex models, which are either feature-based or object-based, and the corresponding tracking of those models. If a macroblock exhibiting data complexity is detected, the encoder 360 operates under the assumption that feature-based compression can do a better job than conventional compression.
Use of Feature-Based Predictions in Competition Mode
As noted above, for each target macroblock, the MBCF encoder makes an initial determination as to whether the H.264 solution (prediction) is efficient (“good enough”) for that macroblock. If the answer is negative, Competition Mode is entered.
In
The solution search space for a given target macroblock is comprised of all of the invention's feature-based predictions represented above, plus the H.264 solution (the “best” inter-frame prediction from H.264). In one embodiment, Competition Mode includes all possible combinations of processing choices noted above (tracker type, motion model and sampling scheme for primary prediction, subtiling scheme, and reconstruction algorithms). In another embodiment, the processing choices in Competition Mode are configurable and can be limited to a reasonable subset of possible processing combinations to save computations.
In an alternative embodiment, the MBCF may be modified so that the resulting bitstream of the encoder is H.264-compliant, meaning that the bitstream can be interpreted (decoded) by any standard H.264 decoder. In this standards-compliant MBCF (SC-MBCF), the processing options available to the Competition Mode are limited to those whose encodings can be interpreted within a standard H.264 bitstream. The available processing options in the SC-MBCF are:
In particular, standard H.264 decoders cannot interpret the additional coefficients required by the PCA-Lite algorithm variations, so the primary-only (PO) algorithm is the sole reconstruction algorithm available. For the (nonstandard) MBCF, the CABAC context for entropy encoded must be modified to accommodate the additional PCA-Lite coefficients, among other quantities; for the SC-MBCF, no such accommodation is necessary and standard H.264 CABAC context are used.
Potential solutions for the competition are evaluated one at a time by following the four steps noted previously: (1) generate the prediction; (2) subtract the prediction from the target macroblock to generate a residual signal; (3) transform the residual; (4) encode the transform coefficients using an entropy encoder. In
Information pertaining to the winning solution is saved into the encoding stream 386 and transmitted/stored for future decoding. This information may include, but is not limited to, the processing choices noted above for feature-based prediction (e.g., tracker type, primary prediction, subtiling scheme, reconstruction algorithm, etc.).
In some cases, the encoder 360 may determine that the target macroblock is not efficiently coded by H.264, but there is also no detected feature that overlaps with that macroblock. In this case, the encoder uses H.264 anyway to encode the macroblock as a last resort. In an alternate embodiment, the tracks from the feature tracker can be extended to generate a pseudo-feature that can overlap the macroblock and thus produce a feature-based prediction.
In one embodiment, movement among the four levels in
Decoding Using Feature-Based Predictions
The decoder 400 traverses each frame with the same slice ordering used by the encoder, and the decoder traverses each slice with the same macroblock ordering used by the encoder. For each macroblock 404, the decoder follows the same process as the encoder, determining 406 whether to decode the macroblock conventionally 408 or whether to decode the macroblock utilizing feature models and parameters at 416. If a macroblock was encoded via the invention's model-based prediction (within its model-based compression framework [MBCF]), the decoder 400 extracts whatever feature information (feature tracks, feature reference frames [GOP], feature motion vectors) is needed to reproduce the prediction for that solution 418. The decoder updates feature models (410, 412, 414) during the decoding so they are synchronized with the encoder feature state for the particular frame/slice/macroblock that is being processed. The need to run the feature detector 410 and tracker 414 at the decoder is non-standard but necessary to re-create the tracker-based global motion vectors for differential encoding of motion vectors.
In an alternative embodiment, within the standards-compliant MBCF (SC-MBCF), feature information is not used directly to encode model-based predictions. Instead, feature information identifies particular motion vectors and corresponding regions for primary prediction, and the motion vectors are encoded directly (or differentially with respect to neighboring motion vectors, as in standard H.264 encoders) into the bitstream. In this case, the decoder 400 never needs to extract additional feature information 416 but is always able to decode the macroblock conventionally at 408. Thus, in the SC-MBCF, the decoders are standard H.264 decoders that do not run feature detection and tracking.
Note that, because of memory limitations, conventional codecs do not typically retain the entire prediction context for decoded frames in the framestore 352 and cache 348 of
The full set of parameters that describe a feature model is known as the state of the feature, and this state must be isolated to retain feature models effectively.
Together, the macroblock data (pels) and state isolation information from associated features form an extended prediction context. Extended contexts from multiple feature instances and their previously decoded neighbors may be combined. The extended prediction context for the encoder 312 in
Cache Organization and Access of Feature Model Information
During the process of generating feature models, it is often the case that multiple instances of a specific feature are found in a given video. In this case, the feature model information can be stored or cached efficiently by organizing the model information prior to caching. This technique can be applied to both parametric and nonparametric model-based compression schemes.
In
The encoder 312/decoder 340 (
Certain embodiments of the present invention can extend the cache by first defining two categories of feature correlation in the previously decoded frames, namely local and non-local previously decoded data for the cache. The local cache can be a set of previously decoded frames that are accessible in batches, or groups of frames, but the particular frames that constitute those groups are determined by detected features. The local cache is driven by features detected in the current frame. The local cache is used to a greater extent when there are relatively few “strong” feature models (models having a long history) for the current frame/macroblock. The local cache processing is based on batch motion compensated prediction, and groups of frames are stored in reference frame buffers.
Thus, certain embodiments of the invention are able to apply analysis to past frames to determine the frames that will have the highest probability of providing matches for the current frame. Additionally, the number of reference frames can be much greater than the typical one-to-sixteen reference frame maximum found in conventional compression. Depending on system resources, the reference frames may number up to the limit of system memory, assuming that there are a sufficient number of useful matches in those frames. Further, the intermediate form of the data generated by the present invention can reduce the required amount of memory for storing the same number of reference frames.
When the features have an extensive history 626 in
The distant cache 614 can be any previously decoded data (or encoded data) that is preferably accessible in the decoder state. The cache may include, for example, reference frames/GOPs, which are generally a number of frames that precede the current frame being encoded. The decoder cache allows for other combinations of previously decoded frames to be available for decoding the current frame.
Digital Processing Environment and Communication Network
Example implementations of the present invention may be implemented in a software, firmware, or hardware environment. In an embodiment,
In one embodiment, the processor routines 824 and data 828 are a computer program product (generally referenced 824), including a computer readable medium capable of being stored on a storage device 828, which provides at least a portion of the software instructions for the invention system. The computer program product 824 can be installed by any suitable software installation procedure, as is well known in the art. In another embodiment, at least a portion of the software instructions may also be downloaded over a cable, communication, and/or wireless connection. In other embodiments, the invention programs are a computer program propagated signal product 814 (in
In alternate embodiments, the propagated signal is an analog carrier wave or digital signal carried on the propagated medium. For example, the propagated signal may be a digitized signal propagated over a global network (e.g., the Internet), a telecommunications network, or other network. In one embodiment, the propagated signal is transmitted over the propagation medium over a period of time, such as the instructions for a software application sent in packets over a network over a period of milliseconds, seconds, minutes, or longer. In another embodiment, the computer readable medium of computer program product 824 is a propagation medium that the computer system 810 may receive and read, such as by receiving the propagation medium and identifying a propagated signal embodied in the propagation medium, as described above for computer program propagated signal product.
Digital Rights Management
In some embodiments, the models of the present invention can be used as a way to control access to the encoded digital video. For example, without the relevant models, a user would not be able to playback the video file. An example implementation of this approach is discussed in U.S. application Ser. No. 12/522,357, filed Jan. 4, 2008, the entire teachings of which are incorporated by reference. The models can be used to “lock” the video or be used as a key to access the video data. The playback operation for the coded video data can depend on the models. This approach makes the encoded video data unreadable without access to the models.
By controlling access to the models, access to playback of the content can be controlled. This scheme can provide a user-friendly, developer-friendly, and efficient solution to restricting access to video content.
Additionally, the models can progressively unlock the content. With a certain version of the models, an encoding might only decode to a certain level; then with progressively more complete models, the whole video would be unlocked. Initial unlocking might enable thumbnails of the video to be unlocked, giving the user the capability of determining if they want the full video. A user that wants a standard definition version would procure the next incremental version of the models. Further, the user needing high definition or cinema quality would download yet more complete versions of the models. The models are coded in such a way as to facilitate a progressive realization of the video quality commensurate with encoding size and quality, without redundancy.
Flexible Macroblock Ordering and Scalable Video Coding
To improve the encoding process and produce compression benefits, example embodiments of the invention may extend conventional encoding/decoding processes. In one embodiment, the present invention may be applied with flexible macroblock ordering (FMO) and scalable video coding (SVC), which are themselves extensions to the basic H.264 standard.
FMO allocates macroblocks in a coded frame to one of several types of slice groups. The allocation is determined by a macroblock allocation map, and macroblocks within a slice group do not have to be contiguous. FMO can be useful for error resilience, because slice groups are decoded independently: if one slice group is lost during transmission of the bitstream, the macroblocks in that slice group can be reconstructed from neighboring macroblocks in other slices. In one embodiment of the current invention, feature-based compression can be integrated into the “foreground and background” macroblock allocation map type in an FMO implementation. Macroblocks associated with features comprise foreground slice groups, and all other macroblocks (those not associated with features) comprise background slice groups.
SVC provides multiple encodings of video data at different bitrates. A base layer is encoded at a low bitrate, and one or more enhancement layers are encoded at higher bitrates. Decoding of the SVC bitstreams can involve just the base layer (for low bitrate/low quality applications) or some or all of the enhancement layers as well (for higher bitrate/quality applications). Because the substreams of the SVC bitstream are themselves valid bitstreams, the use of SVC provides increased flexibility in different application scenarios, including decoding of the SVC bitstream by multiple devices (at different qualities, depending on device capabilities) and decoding in environments with varying channel throughput, such as Internet streaming.
There are three common types of scalability in SVC processing: temporal, spatial, and quality. In one embodiment of the current invention, feature-based compression can be integrated into a quality scalability implementation by including the primary feature-based predictions in the base layer (see the section above on model-based primary and secondary predictions). The coded frames in the base layer can then serve as reference frames for coding in the enhancement layer, where secondary feature-based predictions can be used. In this way, information from feature-based predictions can be added incrementally to the encoding, instead of all at once. In an alternate embodiment, all feature-based predictions (primary and secondary) can be moved to enhancement layers, with only conventional predictions used in the base layer.
It should be noted that although the figures described herein illustrate example data/execution paths and components, one skilled in the art would understand that the operation, arrangement, and flow of data to/from those respective components can vary depending on the implementation and the type of video data being compressed. Therefore, any arrangement of data modules/data paths can be used.
While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.
This application is a continuation-in-part of U.S. application Ser. No. 13/725,940 filed on Dec. 21, 2012, which claims the benefit of U.S. Provisional Application No. 61/615,795 filed on Mar. 26, 2012 and U.S. Provisional Application No. 61/707,650 filed on Sep. 28, 2012. This application also is a continuation-in part of U.S. patent application Ser. No. 13/121,904, filed Oct. 6, 2009, which is a U.S. National Stage of PCT/US2009/059653 filed Oct. 6, 2009, which claims the benefit of U.S. Provisional Application No. 61/103,362, filed Oct. 7, 2008. The '904 application is also a continuation-in part of U.S. patent application Ser. No. 12/522,322, filed Jan. 4, 2008, which is a U.S. National Stage of PCT/US2008/000090 filed Jan. 4, 2008, which claims the benefit of U.S. Provisional Application No. 60/881,966, filed Jan. 23, 2007, is related to U.S. Provisional Application No. 60/811,890, filed Jun. 8, 2006, and is a continuation-in-part of U.S. application Ser. No. 11/396,010, filed Mar. 31, 2006, now U.S. Pat. No. 7,457,472, which is a continuation-in-part of U.S. application Ser No. 11/336,366 filed Jan. 20, 2006, now U.S. Pat. No. 7,436,981, which is a continuation-in-part of U.S. application Ser. No. 11/280,625 filed Nov. 16, 2005, now U.S. Pat. No. 7,457,435, which claims the benefit of U.S. Provisional Application No. 60/628,819 filed Nov. 17, 2004 and U.S. Provisional Application No. 60/628,861 filed Nov. 17, 2004. U.S. application Ser. No. 11/280,625 is also a continuation-in-part of U.S. application Ser. No. 11/230,686 filed Sep. 20, 2005, now U.S. Pat. No. 7,426,285, which is a continuation-in-part of U.S. application Ser. No. 11/191,562 filed Jul. 28, 2005, now U.S. Pat. No. 7,158,680 which claims the benefit of U.S. Provisional Application No. 60/598,085 filed Jul. 30, 2004. U.S. application Ser. No. 11/396,010 also claims priority to U.S. Provisional Application No. 60/667,532, filed Mar. 31, 2005 and U.S. Provisional Application No. 60/670,951, filed Apr. 13, 2005. This present application is also related to U.S. Provisional Application No. 61/616,334, filed Mar. 27, 2012, U.S. Provisional Application No. 61/650,363 filed May 22, 2012 and U.S. application Ser. No. 13/772,230 filed Feb. 20, 2013 which claims the benefit of the '334 and '363 Provisional Applications. The entire teachings of the above applications are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5117287 | Koike et al. | May 1992 | A |
5586200 | Devaney et al. | Dec 1996 | A |
5608458 | Chen et al. | Mar 1997 | A |
5710590 | Ichige et al. | Jan 1998 | A |
5748247 | Hu | May 1998 | A |
5760846 | Lee | Jun 1998 | A |
5774591 | Black et al. | Jun 1998 | A |
5774595 | Kim | Jun 1998 | A |
5826165 | Echeita et al. | Oct 1998 | A |
5917609 | Breeuwer et al. | Jun 1999 | A |
5933535 | Lee et al. | Aug 1999 | A |
5969755 | Courtney | Oct 1999 | A |
5991447 | Eifrig et al. | Nov 1999 | A |
6044168 | Tucenyan et al. | Mar 2000 | A |
6061400 | Pearlstein et al. | May 2000 | A |
6069631 | Tao et al. | May 2000 | A |
6088484 | Mead | Jul 2000 | A |
6249318 | Girod et al. | Jun 2001 | B1 |
6256423 | Krishnamurthy et al. | Jul 2001 | B1 |
6307964 | Lin et al. | Oct 2001 | B1 |
6381275 | Fukuhara et al. | Apr 2002 | B1 |
6418166 | Wu et al. | Jul 2002 | B1 |
6546117 | Sun et al. | Apr 2003 | B1 |
6574353 | Schoepflin | Jun 2003 | B1 |
6608935 | Nagumo et al. | Aug 2003 | B2 |
6611628 | Sekiguchi et al. | Aug 2003 | B1 |
6614466 | Thomas | Sep 2003 | B2 |
6625310 | Lipton et al. | Sep 2003 | B2 |
6625316 | Maeda | Sep 2003 | B1 |
6640145 | Hoffberg et al. | Oct 2003 | B2 |
6646578 | Au | Nov 2003 | B1 |
6661004 | Aumond et al. | Dec 2003 | B2 |
6664956 | Erdem | Dec 2003 | B1 |
6711278 | Gu et al. | Mar 2004 | B1 |
6731799 | Sun et al. | May 2004 | B1 |
6731813 | Stewart | May 2004 | B1 |
6738424 | Allmen et al. | May 2004 | B1 |
6751354 | Foote et al. | Jun 2004 | B2 |
6774917 | Foote et al. | Aug 2004 | B1 |
6792154 | Stewart | Sep 2004 | B1 |
6842483 | Au et al. | Jan 2005 | B1 |
6870843 | Stewart | Mar 2005 | B1 |
6909745 | Puri et al. | Jun 2005 | B1 |
6912310 | Park et al. | Jun 2005 | B1 |
6925122 | Gorodnichy | Aug 2005 | B2 |
6950123 | Martins | Sep 2005 | B2 |
7003117 | Kacker et al. | Feb 2006 | B2 |
7027599 | Entwistle | Apr 2006 | B1 |
7043058 | Cornog et al. | May 2006 | B2 |
7088845 | Gu et al. | Aug 2006 | B2 |
7095786 | Schonfeld | Aug 2006 | B1 |
7158680 | Pace | Jan 2007 | B2 |
7162055 | Gu et al. | Jan 2007 | B2 |
7162081 | Timor et al. | Jan 2007 | B2 |
7164718 | Maziere et al. | Jan 2007 | B2 |
7173925 | Dantu et al. | Feb 2007 | B1 |
7184073 | Varadarajan et al. | Feb 2007 | B2 |
7227893 | Srinivasa | Jun 2007 | B1 |
7352386 | Shum et al. | Apr 2008 | B1 |
7356082 | Kuhn | Apr 2008 | B1 |
7415527 | Varadarajan et al. | Aug 2008 | B2 |
7424157 | Pace | Sep 2008 | B2 |
7424164 | Gondek et al. | Sep 2008 | B2 |
7426285 | Pace | Sep 2008 | B2 |
7436981 | Pace | Oct 2008 | B2 |
7457435 | Pace | Nov 2008 | B2 |
7457472 | Pace et al. | Nov 2008 | B2 |
7508990 | Pace | Mar 2009 | B2 |
7574406 | Varadarajan et al. | Aug 2009 | B2 |
7606305 | Rault | Oct 2009 | B1 |
7630522 | Popp et al. | Dec 2009 | B2 |
7715597 | Costache et al. | May 2010 | B2 |
7738550 | Kuhn | Jun 2010 | B2 |
7788191 | Jebara | Aug 2010 | B2 |
7869518 | Kim et al. | Jan 2011 | B2 |
8019170 | Wang | Sep 2011 | B2 |
8036464 | Sridhar et al. | Oct 2011 | B2 |
8065302 | Sridhar et al. | Nov 2011 | B2 |
8068677 | Varadarajan et al. | Nov 2011 | B2 |
8086692 | Sridhar et al. | Dec 2011 | B2 |
8090670 | Sridhar et al. | Jan 2012 | B2 |
8135062 | Cote | Mar 2012 | B1 |
8140550 | Varadarajan et al. | Mar 2012 | B2 |
8149915 | Novotny et al. | Apr 2012 | B1 |
8243118 | Pace | Aug 2012 | B2 |
8259794 | Bronstein et al. | Sep 2012 | B2 |
8290038 | Wang et al. | Oct 2012 | B1 |
8290049 | Kondo et al. | Oct 2012 | B2 |
8379712 | Park et al. | Feb 2013 | B2 |
8737464 | Zhang et al. | May 2014 | B1 |
8902971 | Pace | Dec 2014 | B2 |
8908766 | Pace | Dec 2014 | B2 |
8942283 | Pace | Jan 2015 | B2 |
8964835 | Pace | Feb 2015 | B2 |
9106977 | Pace | Aug 2015 | B2 |
9532069 | Pace et al. | Dec 2016 | B2 |
9578345 | DeForest et al. | Feb 2017 | B2 |
9621917 | Kottke et al. | Apr 2017 | B2 |
20010038714 | Masumoto et al. | Nov 2001 | A1 |
20020016873 | Gray et al. | Feb 2002 | A1 |
20020025001 | Ismaeil | Feb 2002 | A1 |
20020054047 | Toyama et al. | May 2002 | A1 |
20020059643 | Kitamura et al. | May 2002 | A1 |
20020073109 | Toriumi | Jun 2002 | A1 |
20020085633 | Kim et al. | Jul 2002 | A1 |
20020114392 | Sekiguchi et al. | Aug 2002 | A1 |
20020116529 | Hayden | Aug 2002 | A1 |
20020164068 | Yan | Nov 2002 | A1 |
20020196328 | Piotrowski | Dec 2002 | A1 |
20030011589 | Desbrun et al. | Jan 2003 | A1 |
20030058943 | Zakhor et al. | Mar 2003 | A1 |
20030063778 | Rowe et al. | Apr 2003 | A1 |
20030103647 | Rui et al. | Jun 2003 | A1 |
20030112243 | Garg et al. | Jun 2003 | A1 |
20030122966 | Markman et al. | Jul 2003 | A1 |
20030163690 | Stewart | Aug 2003 | A1 |
20030169812 | Maziere et al. | Sep 2003 | A1 |
20030194134 | Wenzel et al. | Oct 2003 | A1 |
20030195977 | Liu et al. | Oct 2003 | A1 |
20030206589 | Jeon | Nov 2003 | A1 |
20030231769 | Bolle et al. | Dec 2003 | A1 |
20030235341 | Gokturk et al. | Dec 2003 | A1 |
20040013286 | Viola et al. | Jan 2004 | A1 |
20040017852 | Garrido et al. | Jan 2004 | A1 |
20040022320 | Kawada et al. | Feb 2004 | A1 |
20040028139 | Zaccarin et al. | Feb 2004 | A1 |
20040037357 | Bagni et al. | Feb 2004 | A1 |
20040081359 | Bascle et al. | Apr 2004 | A1 |
20040085315 | Duan et al. | May 2004 | A1 |
20040091048 | Youn | May 2004 | A1 |
20040107079 | MacAuslan | Jun 2004 | A1 |
20040113933 | Guier | Jun 2004 | A1 |
20040135788 | Davidson et al. | Jul 2004 | A1 |
20040246336 | Kelly, III et al. | Dec 2004 | A1 |
20040264574 | Lainema | Dec 2004 | A1 |
20050015259 | Thumpudi et al. | Jan 2005 | A1 |
20050128306 | Porter et al. | Jun 2005 | A1 |
20050185823 | Brown et al. | Aug 2005 | A1 |
20050193311 | Das et al. | Sep 2005 | A1 |
20050281335 | Ha | Dec 2005 | A1 |
20060013450 | Shan et al. | Jan 2006 | A1 |
20060029253 | Pace | Feb 2006 | A1 |
20060045185 | Kiryati et al. | Mar 2006 | A1 |
20060067585 | Pace | Mar 2006 | A1 |
20060120571 | Tu et al. | Jun 2006 | A1 |
20060120613 | Su et al. | Jun 2006 | A1 |
20060133681 | Pace | Jun 2006 | A1 |
20060177140 | Pace | Aug 2006 | A1 |
20060204115 | Burazerovic | Sep 2006 | A1 |
20060233448 | Pace et al. | Oct 2006 | A1 |
20060274949 | Gallagher et al. | Dec 2006 | A1 |
20070025373 | Stewart | Feb 2007 | A1 |
20070053513 | Hoffberg | Mar 2007 | A1 |
20070071100 | Shi et al. | Mar 2007 | A1 |
20070071336 | Pace | Mar 2007 | A1 |
20070153025 | Mitchell et al. | Jul 2007 | A1 |
20070183661 | El-Maleh et al. | Aug 2007 | A1 |
20070185946 | Basri et al. | Aug 2007 | A1 |
20070239778 | Gallagher | Oct 2007 | A1 |
20070268964 | Zhao | Nov 2007 | A1 |
20070297645 | Pace | Dec 2007 | A1 |
20080027917 | Mukherjee et al. | Jan 2008 | A1 |
20080040375 | Vo et al. | Feb 2008 | A1 |
20080043848 | Kuhn | Feb 2008 | A1 |
20080101652 | Zhao et al. | May 2008 | A1 |
20080117977 | Lee et al. | May 2008 | A1 |
20080152008 | Sun et al. | Jun 2008 | A1 |
20080232477 | Wang et al. | Sep 2008 | A1 |
20080240247 | Lee et al. | Oct 2008 | A1 |
20090040367 | Zakrzewski et al. | Feb 2009 | A1 |
20090055417 | Hannuksela | Feb 2009 | A1 |
20090067719 | Sridhar et al. | Mar 2009 | A1 |
20090080855 | Senftner et al. | Mar 2009 | A1 |
20090112905 | Mukerjee et al. | Apr 2009 | A1 |
20090129474 | Pandit et al. | May 2009 | A1 |
20090158370 | Li et al. | Jun 2009 | A1 |
20090168884 | Lu et al. | Jul 2009 | A1 |
20090175538 | Bronstein | Jul 2009 | A1 |
20090262804 | Pandit et al. | Oct 2009 | A1 |
20090292644 | Varadarajan et al. | Nov 2009 | A1 |
20100008424 | Pace et al. | Jan 2010 | A1 |
20100027861 | Shekhar et al. | Feb 2010 | A1 |
20100049739 | Varadarajan et al. | Feb 2010 | A1 |
20100073458 | Pace | Mar 2010 | A1 |
20100074600 | Putterman et al. | Mar 2010 | A1 |
20100086062 | Pace | Apr 2010 | A1 |
20100088717 | Candelore et al. | Apr 2010 | A1 |
20100135575 | Guo et al. | Jun 2010 | A1 |
20100135590 | Yang et al. | Jun 2010 | A1 |
20100167709 | Varadarajan | Jul 2010 | A1 |
20100271484 | Fishwick et al. | Oct 2010 | A1 |
20100272185 | Gao et al. | Oct 2010 | A1 |
20100278275 | Yang et al. | Nov 2010 | A1 |
20100290524 | Lu et al. | Nov 2010 | A1 |
20100316131 | Shanableh et al. | Dec 2010 | A1 |
20100322300 | Li et al. | Dec 2010 | A1 |
20100322309 | Huang et al. | Dec 2010 | A1 |
20110019026 | Kameyama | Jan 2011 | A1 |
20110055266 | Varadarajan et al. | Mar 2011 | A1 |
20110058609 | Chaudhury et al. | Mar 2011 | A1 |
20110087703 | Varadarajan et al. | Apr 2011 | A1 |
20110182352 | Pace | Jul 2011 | A1 |
20110221865 | Hyndman | Sep 2011 | A1 |
20110285708 | Chen et al. | Nov 2011 | A1 |
20110286627 | Takacs et al. | Nov 2011 | A1 |
20120044226 | Singh et al. | Feb 2012 | A1 |
20120079004 | Herman | Mar 2012 | A1 |
20120105654 | Kwatra et al. | May 2012 | A1 |
20120155536 | Pace | Jun 2012 | A1 |
20120163446 | Pace | Jun 2012 | A1 |
20120281063 | Pace | Nov 2012 | A1 |
20130027568 | Zou et al. | Jan 2013 | A1 |
20130035979 | Tenbrock | Feb 2013 | A1 |
20130083854 | Pacc | Apr 2013 | A1 |
20130107948 | DeForest | May 2013 | A1 |
20130114703 | DeForest et al. | May 2013 | A1 |
20130170541 | Pace et al. | Jul 2013 | A1 |
20140286433 | He et al. | Sep 2014 | A1 |
20140355687 | Takehara et al. | Dec 2014 | A1 |
20150124874 | Pace | May 2015 | A1 |
20150189318 | Pace | Jul 2015 | A1 |
20150256850 | Kottke | Sep 2015 | A1 |
20160073111 | Lee et al. | Mar 2016 | A1 |
20170070745 | Lee et al. | Mar 2017 | A1 |
Number | Date | Country |
---|---|---|
0 614 318 | Sep 1994 | EP |
1 124 379 | Aug 2001 | EP |
1 250 012 | Oct 2002 | EP |
1 426 898 | Jun 2004 | EP |
1 779 294 | May 2007 | EP |
2003-253190 | Nov 1991 | JP |
5-244585 | Sep 1993 | JP |
2007-038873 | Feb 1995 | JP |
2007-095587 | Apr 1995 | JP |
2007-288789 | Oct 1995 | JP |
2008-235383 | Sep 1996 | JP |
2008-263623 | Oct 1996 | JP |
2000-20955 | Jul 2000 | JP |
2001-100731 | Apr 2001 | JP |
2001-103493 | Apr 2001 | JP |
2002-525735 | Aug 2002 | JP |
2004-94917 | Mar 2004 | JP |
2004 356747 | Dec 2004 | JP |
2006-521048 | Sep 2006 | JP |
2007-504696 | Mar 2007 | JP |
200820782 | May 2008 | JP |
2009-501479 | Jan 2009 | JP |
2010-517426 | May 2010 | JP |
H03253190 | Nov 1991 | TW |
200521885 | Jul 2005 | TW |
200527327 | Aug 2005 | TW |
WO 9827515 | Jun 1998 | WO |
WO 9859497 | Dec 1998 | WO |
WO 9926415 | May 1999 | WO |
WO 0016563 | Mar 2000 | WO |
WO 0045600 | Aug 2000 | WO |
WO 02102084 | Dec 2002 | WO |
WO 03041396 | May 2003 | WO |
WO 2005055602 | Jun 2005 | WO |
WO 2005107116 | Nov 2005 | WO |
WO 2006015092 | Feb 2006 | WO |
WO 2006034308 | Mar 2006 | WO |
WO 2006055512 | May 2006 | WO |
WO 2006083567 | Aug 2006 | WO |
WO 2006105470 | Oct 2006 | WO |
WO 2007007257 | Jan 2007 | WO |
WO 2007146102 | Dec 2007 | WO |
WO 2008091483 | Jul 2008 | WO |
WO 2008091484 | Jul 2008 | WO |
WO 2008091485 | Jul 2008 | WO |
WO 2010042486 | Apr 2010 | WO |
WO 2010118254 | Oct 2010 | WO |
WO 2011156250 | Dec 2011 | WO |
WO 2012033970 | Mar 2012 | WO |
WO 2013148002 | Oct 2013 | WO |
WO 2013148091 | Oct 2013 | WO |
WO 2014051712 | Apr 2014 | WO |
WO 2015138008 | Sep 2015 | WO |
WO 2016040116 | Mar 2016 | WO |
Entry |
---|
Keysers, et al., “Deformation Models for Image Recognition,” IEEE Transactions on Pattern Analysis and Machine Intelligence, 29(8):1422-1435 (2007). |
Viola, P. and Jones, M.J., “Robust Real-Time Face Detection,” International Journal of Computer Vision, 20(17):138-153 (2004). |
Notification and Transmittal of International Search Report and Written Opinion dated Jun. 10, 2013 for PCT/US2013/029297, entitled “Video Compression Repository and Model Reuse”. |
Zhang, et al., “A Novel Video Coding Framework by Perceptual Representation and Macroblock-Based Matching Pursuit Algorithm”, Department of Computer Science and Technology, pp. 322-331 (2007). |
Osama, et al., “Video Compression Using Matching Pursuits”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 9, No. 1, Feb. 1999. |
Neff, et al., “Matching-Pursuit Based Video Compression”, Department of Electrical Engineering and Computer Science, MPEG Meeting, Mar. 11, 1995. |
Ebrahimi, T., et al. “MPEG-4 natural video coding—An Overview”, Signal Processing: Image Communication 15:365-385 (2000). |
Bay, H., et al., “SURF: Speeded Up Robust Features”, ETH Zurich {bay, vangool}@vision.ee.ethz.ch, 1-14. |
Lowe, D.G., “Distinctive Image Features from Scale-Invariant Keypoints”, International Journal of Computer Vision, 1-28 (2004). |
Pati, Y.C., et al., “Orthogonal Matching Pursuit: Recursive Function Approximation with Applications to Wavelet Dccomposition”, 27th Annual Asilomar conference on Signals systems and Computers ,1-5 (1993). |
Viola, P., et al., “Rapid Object Detection using a Boosted Cascade of Simple Features”, Accepted Conference on Computer Vision and Pattern Recognition, 1-9 (2001). |
Wiegand, T., et al., “Overview of the H.264/AVC Video Coding Standard”, IEEE Transactions on Circuits and Systems for Video Technology, 13(7):560-576 (2003). |
“Series H: Audiovisual and Multimedia Systems: Infrastructure of audiovisual services—Coding of moving video; Advanced video coding for generic audiovisual services”, ITU-T, H.264: 1-657 (2012). |
Garrett-Glaser, J., “Diary of an x264 Developer”, http://x264dev.multimedia.cx/, 1-7 (2008). |
Brenneman, A., et al., “x264”, Wikipedia—The Free Encyclopedia: http:.//en.wikipedia,org/wiki/X264, 1-5. |
“H.264/MPEG-4 AVC”, Wikipedia—The Free Encyclopedia: http:.//en.wikipedia,org/wiki/X264, 1-17. |
OpenCV Documentation Page, http://docs.opencv.org/. |
Intel Integrated Performance Primitives—Documentation, http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/. |
Jones, M. and P. Viola, “Fast Multi View Face Detection,” Mitsubishi Electrical Laboratories, Jul. 2003 (10 pp.). |
Gunsel, B. et al., “Content based access to video objects: Temporal segmentation, visual summarization, and feature extraction,” Signal Processing, vol. 66, pp. 261 280 (1998). |
Piamsa nga, P. and N. Babaguchi, “Motion estimation and detection of complex object by analyzing resampled movements of parts,” in Proc. ICIP '04, 1 (365 368), Oct. 2004. |
Vidal, R. et al., “Generalized principal component analysis (GPCA)”, in Proc. CVPR '03, 1 (I621-628), Jun. 2003. |
Vidal, R. and R. Hartley, “Motion segmentation with missing data using PowerFactorization and GPCA,” in Proc. CVPR 04, 2 (II-310-316), Jun.-Jul. 2004. |
Huang, R. et al., “Sparse representation of images with hybrid linear models,” in Proc. ICIP '04, 2(1281 1284) Oct. 2004. |
Rong, S. et al., “Efficient spatiotemporal segmentation and video object generation for highway surveillance video,” in Proc. IEEE Int'l, Conf. Communications, Circuits and Systems and West Sino Expositions, 1(580 584), Jun. Jul. 2002. |
Toklu, C. et al., “Simultaneous Alpha Map Generation and 2 D Mesh Tracking for Multimedia Applications,” Proceedings of the International Conference on Image Processing: 1997, (113 116) (Oct. 1997). |
Urban, M., “Harris Interest Operator,” Jan. 28, 2003, http://cmp.felk.cvut.cz/cmp/courses/dzo/resources/lecture—harris—urban.pdf (23 pp.). |
Rehg, J. M. and Witkin, A. P., “Visual Tracking with Deformation Models,” Proc. IEEE Int'l. Conf. on Robotics and Automation, pp. 844-850 (Apr. 1991). |
Kass, Michael, Andrew Witzin, and Demetri Terzopoulos, “Snakes: Active contour Models,” International Journal of Computer Vision (1988). |
Tao, H.et al., “Compression of MPEG-4 Facial Animation Parameters for Transmission of Talking Heads,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 9, No. 2, pp. 264-276 (Mar. 1999). |
Reinders, M.J.T.et al., “Facial Feature Localization and Adaptation of a Generic Face Model for model-Based Coding,” Signal Processing: Image Communication, No. 7, pp. 57-74 (1995). |
Doenges, P. K., “MPEG-4: Audio/Video and Synthetic Graphics/Audio for Mixed Media,” Signal Processing: Image Communication, No. 9, pp. 433-463 (1997). |
PCT International Search Report, for International Application No. PCT/US2008/000091, dated Sep. 23, 2008, 5 pages. |
PCT International Search Report, for International Application No. PCT/US2008/000092, dated Sep. 23, 2008, 5 pages. |
Antoszczyszyn, P.M., et al., “Tracking of the Motion of Important Facial Features in Model-Based Coding,” Signal Processing, 66(2):249-260, (Apr. 30, 1998). |
Fukuhara, T., et al., “3-D Motion Estimation of Human Head for Model-Based Image Coding,” IEEE Proceedings—I, 140(1):26-35, (Feb. 1, 1993). |
International Search Report for International Application No. PCT/US2009/059653, 8 pp., dated Feb. 2, 2010. |
Written Opinion of the International Searching Authority for International Application No. PCT/US2009/059653, 8 pp., dated Feb. 2, 2010. |
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for International Application No. PCT/US2008/000090, 19 pp., dated Aug. 18, 2010. |
Invitation to Pay Additional Fees and, Where Applicable, Protest Fee, for International Application No. PCT/US2008/000090, dated Jun. 2, 2010. |
Notification Concerning Transmittal of International Preliminary Report on Patentability (Chapter I of the Patent Cooperation Treaty), for International Application No. PCT/US2008/00090, dated Sep. 2, 2010. |
Amit, Yali, 2D Object Detection and Recognition: Models, Algorithms, and Networks, The MIT Press, Cambridge, Massachusetts, pp. 147-149 (Sections 7.3: Detecting Pose and 7.4: Bibliographical Notes and Discussion) (2002). |
Huang, T.S. et al., “Chapter 5: Three-Dimensional Model-Based Image Communication,” Visual Information Representation, Communication, and Image Processing, Editors: Chen, Chang Wen, et al., Marcel Dekker, Inc., New York, New York, pp. 97-117 (1999). |
Extended European Search Report for 06 73 3758.4, dated Mar. 8, 2011 (17 pages). |
Extended European Search Report for 06 74 0318.8, dated May 6, 2011 (14 pages). |
Fischler, M.A., et al., “Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography,” Communications of the Association for Computing Machinery, 24(6):381-395 (1981). |
Harris, C., et al., “A Combined Corner and Edge Detector,” Alvey Vision Conference, Proceedings of the Alvey Vision Conference, p. 147 (1988). |
Irani, M., et al., “Detecting and Tracking Multiple Moving Objects Using Temporal Integration,” European Conference on Computer Vision, 282-287 (1992). |
Notification Concerning Transmittal of the International Preliminary Report on Patentability for PCT/US2009/059653, dated Apr. 21, 2011 (10 pages). |
Park, et al., “Qualitative Estimation of Camera Motion Parameters From the Linear Composition of Optical Flow,” Pattern Recognition: The Journal of the Pattern Recognition Society, 37:767-779 (2004). |
Pique, R. et al., “Efficient Face Coding in Video Sequences Combining Adaptive Principal Component Analysis and a Hybrid Codec Approach,” Proceedings of International Conference on Acoustics, Speech and Signal Processing, 3:629-632(2003). |
Schröder, K., et al., “Combined Description of Shape and Motion in an Object Based Coding Scheme Using Curved Triangles,” Proceedings of the International Conference on Image Processing, 2:390-393 (1995). |
Tabatabai, A. J., et al., “Motion Estimation Methods for Video Compressio—A Review,” Journal of the Franklin Institute, 335(8): 1411-1441 (1998). |
Wang, Y., “Use of Two-Dimensional Deformable Mesh Structures for Video Coding, Part I—The Synthesis Problem: Mesh-Based Function Approximation and Mapping” IEEE Transactions on Circuits and Systems for Video Technology, 6(6):1051-8215 (1996). |
Wang, Y., “Use of Two-Dimensional Deformable Mesh Strucutures for Video Coding, Part II—The Analysis Problem and a Region-Based Coder Employing an Active Mesh Representation” IEEE Transactions on Circuits and Systems for Video Technology, 6(6):1051-8215 (1996). |
Shin, J. et al., “Optical flow-based real-time object tracking using non-prior training active feature model,” Academic Press Limited, GB, vol. 11, No. 3, pp. 204-218 (Jun. 1, 2005). |
Cho, J-H., et al., “Object detection using multi-resolution mosaic in image sequences,” Signal Processing. Image Communication, Elsevier Science Publishers, Amsterdam, vol. 20, No. 3, pp. 233-253, (Mar. 1, 2005). |
Gorodinchy, et al., “Seeing faces in video by computers. Editorial for Special Issue on Face Processing in Video Sequences,” Image and Vision Computing, Guilford, GB, vol. 24, No. 6, pp. 551-556 (Jun. 1, 2006). |
Miners, B. W., et al., “Dynamic Facial Expression Recognition Using Fuzzy Hidden Markov Models,” Systems, Man and Cybernetics, 2005 IEEE International Conference on, IEEE, Piscataway, N.J., USA, vol. 2, pp. 1417-1422 (Oct. 10, 2005). |
Notification Concerning Transmittal of International Preliminary Report on Patentability, in International Application No. PCT/US2008/000092, pp. 9, dated Aug. 6, 2009. |
Dodgson, N. A., “Image resampling,” Technical Report, UCAM-CL-TR-261, ISSN 1476-2986, University of Cambridge, Computer Laboratory, (264 pp.) (Aug. 1992). |
Richardson, I., “Vcodex White Paper: Video Compression Patents,” Vcodex Ltd., pp. 3-6 (2008-2011). |
Notification Concerning Transmittal of International Preliminary Report on Patentability, in International Application No. PCT/US2008/000091, pp. 9, dated Aug. 6, 2009. |
Jolliffe, I.T., “Principal Component Analysis, Second Edition,” Springer, 518 pp., Apr. 2002. |
“Bit-Torrent: Introduction”, Retrieved on: Jan. 18, 2006, retrieved online at: http://web.archive.org/web/20060118042451/http://www.bittorrent.com/introduction.html. |
Office Action from U.S. Appl. No. 13/341,437, dated Nov. 20, 2012. |
Office Action from U.S. Appl. No. 12/522,357, dated Dec. 12, 2012. |
Office Action from U.S. Appl. No. 12/522,322, dated Dec. 11, 2012. |
Braspenning, R., De Haan, G., “True Motion Estimation Using Features Correspondence,” Electronic Imaging, (2004). |
Chen, M.J., et al., “Efficient multi-frame motion estimation algorithms for MPEG-4 AVC/JVT/H.264,” 2004 IEEE International Symposium on Circuits and Sytems, 111-737 (2004). |
Lee, T.K., et al., “A New Motion Vector Composition Algorithm for H.264 Multiple Reference Frame Motion Estimation,” Retrieved from the internet URL:http://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/39749/1/TA-P2-7.pdf [retrieved on Jan. 16, 2015]. |
Smith, L., et al., “A tutorial on Principal Components Analysis,” Feb. 26, 2002. |
Su., Yeping, et al., “Fast multiple reference frame motion estimation for H.264/AVC,” IEEE Transactions on Circuits and Systems for Video Technology, 16(3): 447-452 (2006). |
Wikipedia, Motion Perception; 6 pages; downloaded on Aug. 24, 2015; See https://en.wikipedia.org/wiki/Motion—perception#The—aperture—problem. |
Bulla, C. et al., “High Quality Video Conferencing: Region of Interest Encoding and Joint Video/Audio Analysis,” International Journal on Advances in Telecommunications, 6(3-4): 153-163 (Dec. 2013). |
Chen, Z. et al., “Perception-oriented video coding based on foveated JND model A,” Picture Coding Symposium 2009, Section 2 (May 2009). |
International Search Report and Written Opinion dated Oct. 16, 2013 for International Application No. PCT/US2013/043884, entitled “Standards-Compliant Model-Based Video Encoding and Decoding.” |
International Preliminary Report on Patentability dated Mar. 31, 2015 for International Application No. PCT/US2013/043884, entitled: Standards-Compliant Model-Based Video Encoding and Decoding. |
International Search Report and Written Opinion dated Oct. 11, 2013 for International Application No. PCT/US2013/025123, entitled “Context Based Video Encoding and Decoding.” |
International Preliminary Report on Patentability dated Oct. 9, 2014 for International Application No. PCT/US2013/025123, entitled: Context Based Video Encoding and Decoding. |
Li, Z., et al., “Visual attention guided bit allocation in video compression,” Image and Vision Computing, 29(1): 1-14 (Jan. 2011). |
Naccari, M. et al., “Improving HEVC Compression Efficiency by Intensity Dependant Spatial Quantisation,” MPEG Meeting (Jul. 2012). |
Richardson, Iain E., The H.264 Advanced Video Compression Standard, 2nd Edition, Chapter 7: H.264 Transform and Coding, Apr. 20, 2010. |
Tang, C-W., “Spatiotemporal Visual Considerations for Video Coding,” IEEE Transactions on Multimedia, 9(2): 231-238 (Feb. 2007). |
Wikipedia, “Lumi masking,” Retrieved from the Internet: https://web.archive.org/web/20061124153834/http://en.wikipedia.org/wiki/Lumi—masking, Retrieved on: Nov. 8, 2006, 1 page. |
Notice of Allowance for U.S. Appl. No. 13/725,940 dated Oct. 6, 2016, entitled: Model-Based Video Encoding and Decoding. |
Final Office Action for U.S. Appl. No. 13/725,940 dated Apr. 19, 2016, “Model-Based Video Encoding and Decoding”. |
Number | Date | Country | |
---|---|---|---|
20130230099 A1 | Sep 2013 | US |
Number | Date | Country | |
---|---|---|---|
61615795 | Mar 2012 | US | |
61707650 | Sep 2012 | US | |
61103362 | Oct 2008 | US | |
60881966 | Jan 2007 | US | |
60628819 | Nov 2004 | US | |
60628861 | Nov 2004 | US | |
60598085 | Jul 2004 | US | |
60667532 | Mar 2005 | US | |
60670951 | Apr 2005 | US | |
61616334 | Mar 2012 | US | |
61650363 | May 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13725940 | Dec 2012 | US |
Child | 13797644 | US | |
Parent | 13121904 | US | |
Child | 13725940 | US | |
Parent | 12522322 | US | |
Child | 13121904 | Mar 2011 | US |
Parent | 11396010 | Mar 2006 | US |
Child | 12522322 | Jul 2009 | US |
Parent | 11336366 | Jan 2006 | US |
Child | 11396010 | US | |
Parent | 11280625 | Nov 2005 | US |
Child | 11336366 | US | |
Parent | 11230686 | Sep 2005 | US |
Child | 11280625 | US | |
Parent | 11191562 | Jul 2005 | US |
Child | 11230686 | US | |
Parent | 13797644 | US | |
Child | 11230686 | US | |
Parent | 13772230 | Feb 2013 | US |
Child | 13797644 | US |