US7403562B2 - Model based rate control for predictive video encoder - Google Patents

Model based rate control for predictive video encoder Download PDF

Info

Publication number
US7403562B2
US7403562B2 US11/074,661 US7466105A US7403562B2 US 7403562 B2 US7403562 B2 US 7403562B2 US 7466105 A US7466105 A US 7466105A US 7403562 B2 US7403562 B2 US 7403562B2
Authority
US
United States
Prior art keywords
picture
cost
pictures
rate control
category
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/074,661
Other versions
US20060203907A1 (en
Inventor
Kyeong Ho Yang
Hyung Joon Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Enterprises LLC
Original Assignee
EG Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EG Tech Inc filed Critical EG Tech Inc
Priority to US11/074,661 priority Critical patent/US7403562B2/en
Assigned to E.G. TECHNOLOGY, INC. reassignment E.G. TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KIM, HYUNG JOON, YANG, KYEONG HO
Priority to PCT/US2006/008755 priority patent/WO2006096869A2/en
Priority to CN200680015464.3A priority patent/CN101194518A/en
Publication of US20060203907A1 publication Critical patent/US20060203907A1/en
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY AGREEMENT Assignors: EG TECHNOLOGY, INC.
Application granted granted Critical
Publication of US7403562B2 publication Critical patent/US7403562B2/en
Assigned to EG TECHNOLOGY, INC. reassignment EG TECHNOLOGY, INC. RELEASE Assignors: SILICON VALLEY BANK
Assigned to ARRIS GROUP, INC. reassignment ARRIS GROUP, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EG TECHNOLOGY, INC.
Assigned to ARRIS ENTERPRISES, INC. reassignment ARRIS ENTERPRISES, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: ARRIS GROUP, INC.
Assigned to BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT reassignment BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT SECURITY AGREEMENT Assignors: 4HOME, INC., ACADIA AIC, INC., AEROCAST, INC., ARRIS ENTERPRISES, INC., ARRIS GROUP, INC., ARRIS HOLDINGS CORP. OF ILLINOIS, ARRIS KOREA, INC., ARRIS SOLUTIONS, INC., BIGBAND NETWORKS, INC., BROADBUS TECHNOLOGIES, INC., CCE SOFTWARE LLC, GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., GENERAL INSTRUMENT CORPORATION, GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., GIC INTERNATIONAL CAPITAL LLC, GIC INTERNATIONAL HOLDCO LLC, IMEDIA CORPORATION, JERROLD DC RADIO, INC., LEAPSTONE SYSTEMS, INC., MODULUS VIDEO, INC., MOTOROLA WIRELINE NETWORKS, INC., NETOPIA, INC., NEXTLEVEL SYSTEMS (PUERTO RICO), INC., POWER GUARD, INC., QUANTUM BRIDGE COMMUNICATIONS, INC., SETJAM, INC., SUNUP DESIGN SYSTEMS, INC., TEXSCAN CORPORATION, THE GI REALTY TRUST 1996, UCENTRIC SYSTEMS, INC.
Assigned to ARRIS ENTERPRISES LLC reassignment ARRIS ENTERPRISES LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ARRIS ENTERPRISES INC
Assigned to SETJAM, INC., GIC INTERNATIONAL HOLDCO LLC, BIG BAND NETWORKS, INC., GIC INTERNATIONAL CAPITAL LLC, POWER GUARD, INC., 4HOME, INC., ARRIS ENTERPRISES, INC., BROADBUS TECHNOLOGIES, INC., GENERAL INSTRUMENT CORPORATION, MODULUS VIDEO, INC., JERROLD DC RADIO, INC., ARRIS KOREA, INC., NEXTLEVEL SYSTEMS (PUERTO RICO), INC., ARRIS SOLUTIONS, INC., THE GI REALTY TRUST 1996, AEROCAST, INC., QUANTUM BRIDGE COMMUNICATIONS, INC., ARRIS HOLDINGS CORP. OF ILLINOIS, INC., CCE SOFTWARE LLC, ACADIA AIC, INC., SUNUP DESIGN SYSTEMS, INC., TEXSCAN CORPORATION, UCENTRIC SYSTEMS, INC., NETOPIA, INC., GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., MOTOROLA WIRELINE NETWORKS, INC., IMEDIA CORPORATION, ARRIS GROUP, INC., LEAPSTONE SYSTEMS, INC. reassignment SETJAM, INC. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Assigned to WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT reassignment WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: ARRIS ENTERPRISES LLC
Assigned to JPMORGAN CHASE BANK, N.A. reassignment JPMORGAN CHASE BANK, N.A. ABL SECURITY AGREEMENT Assignors: ARRIS ENTERPRISES LLC, ARRIS SOLUTIONS, INC., ARRIS TECHNOLOGY, INC., COMMSCOPE TECHNOLOGIES LLC, COMMSCOPE, INC. OF NORTH CAROLINA, RUCKUS WIRELESS, INC.
Assigned to JPMORGAN CHASE BANK, N.A. reassignment JPMORGAN CHASE BANK, N.A. TERM LOAN SECURITY AGREEMENT Assignors: ARRIS ENTERPRISES LLC, ARRIS SOLUTIONS, INC., ARRIS TECHNOLOGY, INC., COMMSCOPE TECHNOLOGIES LLC, COMMSCOPE, INC. OF NORTH CAROLINA, RUCKUS WIRELESS, INC.
Assigned to WILMINGTON TRUST reassignment WILMINGTON TRUST SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARRIS ENTERPRISES LLC, ARRIS SOLUTIONS, INC., COMMSCOPE TECHNOLOGIES LLC, COMMSCOPE, INC. OF NORTH CAROLINA, RUCKUS WIRELESS, INC.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to video encoders, and more specifically to rate controlled predictive video encoders.
  • Rate control is an essential function of most video encoders. This is due, in part, to the fact that while many encoders encode video as a variable bitrate stream, many applications require a constant bitrate stream. However, most video standards do not specify how to control the bit rate.
  • rate control algorithms have been proposed, such as those disclosed ISO-IEC/JTC1/SC29/SG11, “MPEG2: Test Model 5,” Draft, April 1993 and Zhihai He and Sanjit K. Mitra, “Optimum Bit Allocation and Accurate Rate Control for Video Coding via p-domain Source Modeling,” IEEE Transactions on Circuits and System for Video Technology , October 2002.
  • a look-ahead approach has also been introduced to rate control for stable rate control in case of noticeable change in the picture characteristic due to, for example, scene change.
  • Such rate control schemes usually consist of two steps. The first step is to allocate bits to each picture in a given set of pictures to minimize the overall distortion. The second step is to find the quantization parameter that meets the number of bits allocated to encode the current picture.
  • the rate control schemes identified above are used in the second step (i.e., selection of a quantization parameter).
  • this two-step approach makes the rate control complicated.
  • the present invention is directed to a model based rate control algorithm for a predictive video encoder that substantially obviates one or more of the problems due to limitations and disadvantages of the related art.
  • An advantage of the present invention is that it provides accurate rate control while requiring much lower complexity than known rate control schemes. This is made possible by using a rate model that adapts to the local characteristic of a video sequence, and by targeting to maintain the quantization parameter as constant as possible in a given set of pictures, GOP, instead of the two step approach.
  • Another advantage of the present invention is that it provides a rate model that is a function of picture cost which adapts to the local characteristics of a video sequence.
  • a method for providing rate control in a predictive video encoder includes classifying pictures in a video sequence, estimating a first quantization parameter, calculating picture costs for each of the pictures in the video sequence based on the estimated quantization parameter, initializing rate control, performing bit allocation and quantization parameter selection based on the picture costs, and encoding the video sequence.
  • FIG. 1 is a block diagram of video encoder in accordance with an embodiment of the invention.
  • FIG. 2 illustrates exemplary pseudo-C code for estimating a quantization parameter according to an embodiment of the invention.
  • FIG. 3 illustrates exemplary picture categories according to an embodiment of the invention.
  • the invention provides an adaptive rate control algorithm that is based on a rate model of a predictive video encoder.
  • the rate model is a function of a cost, called picture cost, that is represented as a weighted sum of prediction cost and residual cost, and adapts to the local characteristic of a video sequence.
  • Prediction cost represents the estimated number of bits needed to generate an error image
  • residual cost as used herein, describes the difficulty of encoding the resultant error image.
  • An adaptive model is used to estimate the number of bits needed to encode a picture.
  • the model can incorporate a scene change detector, still picture detector, and flash detector to more accurately adapt to the characteristics of the picture.
  • the adaptive model according to the invention is described with regard to implementation in an H.264 video encoder with I, P and B pictures in a GOP structure.
  • the adaptive model of the invention can be applied to other video encoding system standards, such as any of the MPEG standards.
  • an exemplary encoder 100 has two functional modules: pre-processor 101 and main processor 103 .
  • Pre-processor 101 reads a series of input video frames, detects scene changes, flash and/or still pictures, and decides the GOP size based on the information within the video frames.
  • the pre-processor 101 also estimates a quantization parameter (QP) that is to be used to compute the prediction and residual costs of the pictures in a GOP.
  • QP quantization parameter
  • Main processor 103 processes each picture by performing rate control, motion estimation, mode selection, and entropy coding.
  • the first step of pre-processor 101 is to classify scenes to make rate control stable.
  • the pre-processor 101 classifies scenes by determining scene changes, flash pictures, and still pictures.
  • a scene change between picture n and the previous picture n ⁇ 1 is determined based on the difference in mean values of co-located blocks of size M ⁇ N and the sum of absolute differences (SADs) of those blocks.
  • a scene change may be detected, for example, by comparing the difference between the mean value of the current picture and the mean value of the previous picture with a predefined threshold value and comparing the average of the difference between a current picture pixel and the corresponding pixel in the previous picture to determine the number of changes between the current picture and a previous picture. If the number of changes is greater than a threshold value, there has been a scene change.
  • the pre-processor determines whether the detected scene change is an actual scene change or a flash picture instead. If the current picture n is determined as a scene change, but the next picture n+1 is similar to the previous picture n ⁇ 1, the current picture is considered a flash picture instead of a scene change picture, and the flash flag is set to ON while the scene change flag is set to OFF.
  • a flag is forwarded to the main processor along with the number of stationary macroblocks (num_still_mb) in the picture.
  • An exemplary method of detecting still pictures begins by determining the number of still macroblocks in the picture. This is achieved, for example, by comparing the sum of the absolute differences (SADs) of the macroblocks to a specified threshold, StillMBthres. If the percentage of still macroblocks in the picture is larger than a specified value, for example, 96%, and the cost prediction is less than a specified threshold the picture is considered still.
  • the pre-processor also sets the GOP size, GOPSIZE, based on the location of scene changes or the maximum GOP size if a scene change does not occur within a specified number of pictures, for example, 15.
  • a GOP usually has no more than one picture with the scene change flag set, and starts with an I picture.
  • the pre-processor estimates the quantization parameter, QP 1 that is to be used to compute the prediction and residual costs of the pictures in a GOP. Both the prediction cost and the residual cost tend to increase as the quantization parameter decreases. Therefore, a significant difference between the quantization parameters used for cost computation (QP 1 ) and the quantization parameters used for actual encoding (QP 2 ) will result in the main processor failing to accurately estimate the number of bits required for each picture and consequently the processor fails to provide accurate rate control.
  • QP 1 is estimated based on spatiotemporal complexity of the picture, the target bitrate, and the number of macroblocks per second.
  • FIG. 2 illustrates an exemplary pseudo-C code algorithm for estimating QP 1 .
  • the pre-processor Upon estimation of the quantization parameter, QP 1 , the pre-processor computes the costs.
  • These costs are the sum of those for all the macroblocks in the picture and are used in bit allocation and rate control in the main processor.
  • the prediction cost, predCost[i] represents the estimated number of bits needed to generate an error image (field or frame).
  • the bits are mostly from inter-picture prediction and/or intra-picture prediction.
  • the residual cost, resiCost[i] represents the cost of encoding the prediction error image. This could be, for example, sum of absolute difference (SAD), sum of absolute transformed difference (SATD), or any other measure describing the difficulty in encoding the error image.
  • the pre-processor can also perform a simple motion estimation and a crude coding mode decision in order to more accurately compute the costs.
  • Main processor 103 encodes each picture by performing, for example, rate control, sub-pel motion estimation, mode selection, and entropy coding.
  • Bit allocation and QP estimation for the current picture is performed in the main processor by looking at the buffer status and all the remaining pictures in the current GOP.
  • the model based rate control algorithm according to the invention aims to meet a given relationship of QPs to be assigned to different pictures. The relationship could be dependent on another processing unit and the complexity of each picture and/or the picture type. For example the QP could be maintained as constant as possible over the current GOP with a little bigger, e.g., +2, QP for B pictures. A bigger QP is assigned to encoding B pictures since B pictures are not used as reference pictures in prediction of other pictures.
  • the number of bits required to encode each picture is estimated using the prediction cost, predCost[i], and the residual cost, resiCost[i], received from the pre-processor and the characteristic of the category to which each picture belongs.
  • pictures within a GOP are classified into categories to accurately characterize different coding schemes and availability of certain reference pictures.
  • the pictures could be categorized in one of the following nine categories: P frames (P_Frame); P top fields (P_Top); P bottom fields with more than one reference fields (P_Bottom); B frames (B_Frame); B fields coded with a reference field that is one field away (B_Close); B fields coded without having a reference field that is one field away (B_Far); I frames (I_Frame); I fields (I_Field); and P bottom fields coded with only one reference field (PI_Field).
  • the PI_Field is for the bottom field of the first frame in each GOP when the field is not allowed to refer pictures in the previous GOP.
  • FIG. 3 illustrates the picture categories according to an exemplary embodiment of the invention.
  • Each category is characterized by a structure, such as that shown below, that contains the following: the average QP used to encode the pictures in the specific category; the average prediction cost for the category; the average residual cost for the category, the relationship between the prediction cost and the actual number of bits used; the relationship between the residual cost and the actual number of bits used to encode transform coefficients; the actual number of bits used to encode the picture; and the total picture cost.
  • the j th category of pictures is characterized by a structure RefRCdata[j] that contains the followings:
  • RefRCdata[j].QP 2 which represents the average QP used to encode the pictures in the category
  • RefRCdata[j].resiCost which represents the average residual cost
  • RefRCdata[j].pred_cw which represents the relationship between predCost and actual number of bits used in prediction, computed as the actual number of bits for prediction divided by the average prediction cost;
  • RefRCdata[j].resi_cw which represents the relationship between resiCost and actual number of bits to encode transform coefficients, computed as the actual number of bits for residual cost divided by the average residual cost;
  • the rate control algorithm of the main processor performs three main functions: initialization of rate control; bit allocation and QP selection, and Updating the reference data.
  • Rate control is initialized before processing each GOP as follows.
  • the prediction cost, predCost[i], and the residual cost, resiCost[i], for all the pictures in the GOP and the quantization parameter, QP 1 , that was used in pre-processor are read.
  • RefRCData[j] In order to reset RefRCData[j] accurately, the relationships, init_actual_pred_bits versus predCost and init_actual_resi_bits versus resiCost, are obtained by off-line training with many sequences separately for the three different picture types (I, P, & B), QP 1 (from Pre Processor), and QP 2 (to be used in encoding the current picture). A curve fitting technique is performed using the piecewise linear approximation method. Using the functions, RefRCData[j] is reset as follows:
  • the QP 2 that provides bits closest to target_bits_gop given in Eq. (2) is found.
  • the average of predCost and resiCost over the GOP for each category indexed by j is calculated, and stored respectively in RefRCdata[j].predCost and RefRCdata[j].resiCost.init_actual_pred_bits and init_actual_resi_bits respectively corresponding to the average values of predCost and resiCost are obtained using the initialization functions for QP 1 and QP 2 .
  • RefRCdata[j].pictureCost is computed using Eq. (1) and the same value is stored in RefRCdata[j].outBits.
  • the main processor After initialization of rate control, the main processor performs bit allocation and QP selection. Accordingly to an embodiment of the invention, the main processor estimates the number of bits and QP (QP 2 ) to encode the current picture indexed by k using the information received from the pre-processor and the updated reference data stored in RefRCdata[j] as follows.
  • STEP 2 The picture cost for the pictures in the GOP, picturecost[i] (i ⁇ k) is calculated using equation (1).
  • bits_total(gop QP ) ⁇ i ⁇ k out_bits( i , gop QP ), Eq. (5)
  • STEP 5 If the picture k belongs to B_Frame, B_Close, or B_Far, increase QP 2 by 2.
  • Eq. (8) is to effectively allocate bits to encoding of the next picture in case the estimation error for the current picture is somewhat big.
  • the ⁇ is a weighting factor used to update RefRCdata[j] in Eqs. (10)-(14), and represents how much different the picture k is from the previously encoded pictures in the same category. As can be seen in the equations, more weight can be given on the characteristic of the just encoded picture if the picture seems to be very different from the previous ones.
  • STEP 5 Get pred_cw[k] and resi_cw[k] for the picture k from the actual encoding statistics that are respectively actual_pred_bits[k]/predCost[k] and actual_resi_bits[k]/resiCost[k].
  • Macroblocks can be classified into, for example, 5 categories (indexed by j, 0-4):
  • the j th category of MBs is characterized by a structure RefMBdata[j], that contains the followings:
  • RefMBdata[j].QP 2 average QP used to encode the MBs in the category
  • RefMBdata[j].pred_cw relationship between predCost and actual number of bits used in prediction. It is computed as actual_number_of_bits_for_prediction/predCost.
  • RefMBdata[j].resi_cw relationship between resiCost and actual number of bits to encode transform coefficients. It is computed as actual_number_of_bits_for_residual/resiCost.
  • Eq. (17) assigns a bigger QP to MBs to which human eyes are less sensitive, and a smaller QP to those to which human eyes are more sensitive.
  • inventive rate model can be extended to a case of slice layer rate control.
  • the rate control method has only been described for the case of using a fixed window called GOP where the number of remaining pictures in the window decreases until the start of the next GOP is detected, the method can easily be modified to use a sliding window that consists of a fixed number of frames, for example 15. In this case, some frames in the window may belong to a different GOP from others.
  • the method can also be modified to have a fixed window comprising a plurality of consecutive GOPs instead of one GOP to better control the rate by looking ahead more frames.
  • a fixed window comprising a plurality of consecutive GOPs instead of one GOP to better control the rate by looking ahead more frames.
  • the number of frames in the window becomes 30 at the start of each GOP and decreases to 15 at the end of each GOP.

Abstract

A rate control algorithm for a predictive video encoder is provided to accurately control the coding rate while requiring a small complexity. The algorithm assumes the video encoder to consist of two processors, pre-processor and main processor, and the rate control located in main processor uses prediction cost and residual cost for each picture that are computed in pre-processor. Prediction cost represents the estimated number of bits needed to generate an error image, and residual cost describes the difficulty of encoding the resultant error image. Accurate and simple rate control is made possible by using a new rate model that adapts to the local characteristic of a video sequence, and by targeting to maintain the quantization parameter as constant as possible in a given set of pictures, GOP, instead of the conventional two step approach.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to video encoders, and more specifically to rate controlled predictive video encoders.
2. Discussion of the Related Art
Rate control is an essential function of most video encoders. This is due, in part, to the fact that while many encoders encode video as a variable bitrate stream, many applications require a constant bitrate stream. However, most video standards do not specify how to control the bit rate.
Conventional encoders control the output bitrate by varying the coarseness of the quantization step. Variation of the quantization scale directly affects the size of the output. Although coarse quantization significantly reduces the bitrate, it also reduces image quality. Accordingly, more advanced rate control algorithms are needed in order to distribute available bits in a manner that avoids visible artifacts in the displayed image.
Many rate control algorithms have been proposed, such as those disclosed ISO-IEC/JTC1/SC29/SG11, “MPEG2: Test Model 5,” Draft, April 1993 and Zhihai He and Sanjit K. Mitra, “Optimum Bit Allocation and Accurate Rate Control for Video Coding via p-domain Source Modeling,” IEEE Transactions on Circuits and System for Video Technology, October 2002. A look-ahead approach has also been introduced to rate control for stable rate control in case of noticeable change in the picture characteristic due to, for example, scene change. Such rate control schemes usually consist of two steps. The first step is to allocate bits to each picture in a given set of pictures to minimize the overall distortion. The second step is to find the quantization parameter that meets the number of bits allocated to encode the current picture. The rate control schemes identified above are used in the second step (i.e., selection of a quantization parameter). However, this two-step approach makes the rate control complicated.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to a model based rate control algorithm for a predictive video encoder that substantially obviates one or more of the problems due to limitations and disadvantages of the related art.
An advantage of the present invention is that it provides accurate rate control while requiring much lower complexity than known rate control schemes. This is made possible by using a rate model that adapts to the local characteristic of a video sequence, and by targeting to maintain the quantization parameter as constant as possible in a given set of pictures, GOP, instead of the two step approach.
Another advantage of the present invention is that it provides a rate model that is a function of picture cost which adapts to the local characteristics of a video sequence.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described, a method for providing rate control in a predictive video encoder includes classifying pictures in a video sequence, estimating a first quantization parameter, calculating picture costs for each of the pictures in the video sequence based on the estimated quantization parameter, initializing rate control, performing bit allocation and quantization parameter selection based on the picture costs, and encoding the video sequence.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention.
In the drawings:
FIG. 1 is a block diagram of video encoder in accordance with an embodiment of the invention.
FIG. 2 illustrates exemplary pseudo-C code for estimating a quantization parameter according to an embodiment of the invention.
FIG. 3 illustrates exemplary picture categories according to an embodiment of the invention.
DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS
Reference will now be made in detail to an embodiment of the present invention, example of which is illustrated in the accompanying drawings.
The invention provides an adaptive rate control algorithm that is based on a rate model of a predictive video encoder. The rate model is a function of a cost, called picture cost, that is represented as a weighted sum of prediction cost and residual cost, and adapts to the local characteristic of a video sequence. Prediction cost, as used herein, represents the estimated number of bits needed to generate an error image, and residual cost, as used herein, describes the difficulty of encoding the resultant error image. An adaptive model is used to estimate the number of bits needed to encode a picture. Furthermore, the model can incorporate a scene change detector, still picture detector, and flash detector to more accurately adapt to the characteristics of the picture.
For purposes of example, the adaptive model according to the invention is described with regard to implementation in an H.264 video encoder with I, P and B pictures in a GOP structure. However, one skilled in the art would readily appreciate that the adaptive model of the invention can be applied to other video encoding system standards, such as any of the MPEG standards.
As shown in FIG. 1, an exemplary encoder 100 has two functional modules: pre-processor 101 and main processor 103. Pre-processor 101 reads a series of input video frames, detects scene changes, flash and/or still pictures, and decides the GOP size based on the information within the video frames. The pre-processor 101 also estimates a quantization parameter (QP) that is to be used to compute the prediction and residual costs of the pictures in a GOP. Main processor 103 processes each picture by performing rate control, motion estimation, mode selection, and entropy coding.
The first step of pre-processor 101 is to classify scenes to make rate control stable. The pre-processor 101 classifies scenes by determining scene changes, flash pictures, and still pictures. A scene change between picture n and the previous picture n−1 is determined based on the difference in mean values of co-located blocks of size M×N and the sum of absolute differences (SADs) of those blocks.
A scene change may be detected, for example, by comparing the difference between the mean value of the current picture and the mean value of the previous picture with a predefined threshold value and comparing the average of the difference between a current picture pixel and the corresponding pixel in the previous picture to determine the number of changes between the current picture and a previous picture. If the number of changes is greater than a threshold value, there has been a scene change.
Next, the pre-processor determines whether the detected scene change is an actual scene change or a flash picture instead. If the current picture n is determined as a scene change, but the next picture n+1 is similar to the previous picture n−1, the current picture is considered a flash picture instead of a scene change picture, and the flash flag is set to ON while the scene change flag is set to OFF.
When a still picture is detected, a flag is forwarded to the main processor along with the number of stationary macroblocks (num_still_mb) in the picture. An exemplary method of detecting still pictures begins by determining the number of still macroblocks in the picture. This is achieved, for example, by comparing the sum of the absolute differences (SADs) of the macroblocks to a specified threshold, StillMBthres. If the percentage of still macroblocks in the picture is larger than a specified value, for example, 96%, and the cost prediction is less than a specified threshold the picture is considered still.
The pre-processor also sets the GOP size, GOPSIZE, based on the location of scene changes or the maximum GOP size if a scene change does not occur within a specified number of pictures, for example, 15. A GOP usually has no more than one picture with the scene change flag set, and starts with an I picture.
Next the pre-processor estimates the quantization parameter, QP1 that is to be used to compute the prediction and residual costs of the pictures in a GOP. Both the prediction cost and the residual cost tend to increase as the quantization parameter decreases. Therefore, a significant difference between the quantization parameters used for cost computation (QP1) and the quantization parameters used for actual encoding (QP2) will result in the main processor failing to accurately estimate the number of bits required for each picture and consequently the processor fails to provide accurate rate control. In order to make prediction cost and residual cost of a picture more useful for rate control in the main processor, QP1 is estimated based on spatiotemporal complexity of the picture, the target bitrate, and the number of macroblocks per second. Since the use of different QPs for adjacent GOPs makes the costs less correlated, the QP from the previous GOP remains unchanged unless a scene change occurs, or there is a large change in scene complexity. FIG. 2 illustrates an exemplary pseudo-C code algorithm for estimating QP1.
Upon estimation of the quantization parameter, QP1, the pre-processor computes the costs. The prediction cost and the residual cost is computed for each picture in the current GOP, predCost[i]and resiCost[i], i=0,1, . . . , 2*GOPSIZE−1 in the field coding mode and i=0, 2, . . . , 2*GOPSIZE−2 for the frame coding mode. These costs are the sum of those for all the macroblocks in the picture and are used in bit allocation and rate control in the main processor. The prediction cost, predCost[i], represents the estimated number of bits needed to generate an error image (field or frame). The bits are mostly from inter-picture prediction and/or intra-picture prediction. The residual cost, resiCost[i], represents the cost of encoding the prediction error image. This could be, for example, sum of absolute difference (SAD), sum of absolute transformed difference (SATD), or any other measure describing the difficulty in encoding the error image. The pre-processor can also perform a simple motion estimation and a crude coding mode decision in order to more accurately compute the costs.
Main processor 103 encodes each picture by performing, for example, rate control, sub-pel motion estimation, mode selection, and entropy coding.
Bit allocation and QP estimation for the current picture is performed in the main processor by looking at the buffer status and all the remaining pictures in the current GOP. The model based rate control algorithm according to the invention aims to meet a given relationship of QPs to be assigned to different pictures. The relationship could be dependent on another processing unit and the complexity of each picture and/or the picture type. For example the QP could be maintained as constant as possible over the current GOP with a little bigger, e.g., +2, QP for B pictures. A bigger QP is assigned to encoding B pictures since B pictures are not used as reference pictures in prediction of other pictures. The number of bits required to encode each picture is estimated using the prediction cost, predCost[i], and the residual cost, resiCost[i], received from the pre-processor and the characteristic of the category to which each picture belongs.
Accordingly to an exemplary embodiment of the invention, pictures within a GOP are classified into categories to accurately characterize different coding schemes and availability of certain reference pictures. For example, the pictures could be categorized in one of the following nine categories: P frames (P_Frame); P top fields (P_Top); P bottom fields with more than one reference fields (P_Bottom); B frames (B_Frame); B fields coded with a reference field that is one field away (B_Close); B fields coded without having a reference field that is one field away (B_Far); I frames (I_Frame); I fields (I_Field); and P bottom fields coded with only one reference field (PI_Field). The PI_Field is for the bottom field of the first frame in each GOP when the field is not allowed to refer pictures in the previous GOP. FIG. 3 illustrates the picture categories according to an exemplary embodiment of the invention.
Each category is characterized by a structure, such as that shown below, that contains the following: the average QP used to encode the pictures in the specific category; the average prediction cost for the category; the average residual cost for the category, the relationship between the prediction cost and the actual number of bits used; the relationship between the residual cost and the actual number of bits used to encode transform coefficients; the actual number of bits used to encode the picture; and the total picture cost.
The jth category of pictures is characterized by a structure RefRCdata[j] that contains the followings:
RefRCdata[j].QP2: which represents the average QP used to encode the pictures in the category;
RefRCdata[j].predCost: which represents the average prediction cost;
RefRCdata[j].resiCost: which represents the average residual cost;
RefRCdata[j].pred_cw: which represents the relationship between predCost and actual number of bits used in prediction, computed as the actual number of bits for prediction divided by the average prediction cost;
RefRCdata[j].resi_cw: which represents the relationship between resiCost and actual number of bits to encode transform coefficients, computed as the actual number of bits for residual cost divided by the average residual cost;
RefRCdata[j].outBits: which represents the actual number of bits used to encode the picture; and
RefRCdata[j].pictureCost:=pred cw*predCost+resi cw*resiCost   Eq. (1)
Given the size of the GOP and the cost information, the rate control algorithm of the main processor performs three main functions: initialization of rate control; bit allocation and QP selection, and Updating the reference data.
Rate control is initialized before processing each GOP as follows.
First, the prediction cost, predCost[i], and the residual cost, resiCost[i], for all the pictures in the GOP and the quantization parameter, QP1, that was used in pre-processor are read. The target number of bits to encode the remaining pictures in the GOP, target_bits_gop, is set using equation (2)
target_bits gop=average_bits gop−bufferStatus/2.   Eq. (2)
If the scene change flag is set, then the information in RefRCData[j],j=0, . . . , 8 is reset. In order to reset RefRCData[j] accurately, the relationships, init_actual_pred_bits versus predcost and init_actual_resi_bits versus resiCost, are determined by off-line training.
In order to reset RefRCData[j] accurately, the relationships, init_actual_pred_bits versus predCost and init_actual_resi_bits versus resiCost, are obtained by off-line training with many sequences separately for the three different picture types (I, P, & B), QP1 (from Pre Processor), and QP2 (to be used in encoding the current picture). A curve fitting technique is performed using the piecewise linear approximation method. Using the functions, RefRCData[j] is reset as follows:
Using cost information and picture coding type from the pre-processor and the initialization function for QP1, the QP2 that provides bits closest to target_bits_gop given in Eq. (2) is found. Next, the average of predCost and resiCost over the GOP for each category indexed by j is calculated, and stored respectively in RefRCdata[j].predCost and RefRCdata[j].resiCost.init_actual_pred_bits and init_actual_resi_bits respectively corresponding to the average values of predCost and resiCost are obtained using the initialization functions for QP1 and QP2. Then, pred_cw and resi_cw are computed using
RefRCdata[j].pred cw=init_actual_pred_bits/RefRCdata[j].predCost and
RefRCdata[j].resi cw=init_actual_resi_bits/RefRCdata[j].resiCost
Finally, RefRCdata[j].pictureCost is computed using Eq. (1) and the same value is stored in RefRCdata[j].outBits.
After initialization of rate control, the main processor performs bit allocation and QP selection. Accordingly to an embodiment of the invention, the main processor estimates the number of bits and QP (QP2) to encode the current picture indexed by k using the information received from the pre-processor and the updated reference data stored in RefRCdata[j] as follows.
STEP 1: For the kth picture, the quantization parameter for the GOP, gopQP, is computed as a weighted average of QPs stored in RefRCdata:
gopQP=Σ i≧kRefRCdata[j=ref_index[i]].QP2/Σi≧k I(i),   Eq. (3)
where ref_index[i] is the category that the ith picture belongs to and I(i)=1 if the picture indexed by i belongs to the current GOP and 0 otherwise. QP2 for B pictures is adjusted by −2 before being added.
STEP 2: The picture cost for the pictures in the GOP, picturecost[i] (i≧k) is calculated using equation (1).
STEP 3: Calculate the number of bits used to encode the ith picture with QP=gopQP, out_bits(i, gopQP), using equation (4).
out_bits(i, gopQP)=RefRCdata[j].outBits * (pictureCost[i]/RefRCdata[j].pictureCost)β[j]RefRCdata[j].QP2−gopQP,   Eq. (4)
where j=ref_index[i] and β[j] represents increase or decrease of bits respectively with decrement or increment of QP by 1. β[j] can be obtained by offline training. Eq. (4) assumes that the total number of out bits is proportional to the pictureCost obtained by Eq. (1). Then, the number of bits needed to encode all the remaining pictures with QP=gopQP is calculated:
bits_total(gopQP)=Σi≧kout_bits(i, gopQP),   Eq. (5)
STEP 4: Find QP2 that generates bits_total(QP) closest to target_bits_gop by adjusting QP appropriately according to the difference between bits_total(QP) and target_bits_gop:
out_bits(i,QP2)=out_bits(i, gopQP)*β[j]gopQP−QP2,   Eq. (6)
bits_total(QP2)=Σi≧kout_bits(i, QP2).   Eq. (7)
STEP 5: If the picture k belongs to B_Frame, B_Close, or B_Far, increase QP2 by 2.
After encoding the picture k, the reference data, RefRCdata[j=ref_index[k]], and the parameters for rate control are updated as follows:
STEP 1: Update target_bits_gop as follows:
errorBits=actualOutBits−out_bits(k, QP2),
target_bits_gop=target_bits_gop−actualOutBits+errorBits/2.   Eq. (8)
Eq. (8) is to effectively allocate bits to encoding of the next picture in case the estimation error for the current picture is somewhat big.
STEP 2: Set j=ref_index[k], category that the picture k belongs to.
STEP 3: If the picture k is the first picture in the category j in the current scene, set γ to 1. Otherwise compute γ as follows:
pCost c=RefRCdata[j].pred cw*predCost[k]+RefRCdata[j].resi cw* resiCost[k]
pCost r=RefRCdata[j].pred cw*RefRCdata[j].predCost+RefRCdata[j]. resi cw*RefRCdata[j].resiCost[k]
γ=f(|pCost c-pCost r|/max(pCost c, pCost r)).   Eq. (9)
The γ is a weighting factor used to update RefRCdata[j] in Eqs. (10)-(14), and represents how much different the picture k is from the previously encoded pictures in the same category. As can be seen in the equations, more weight can be given on the characteristic of the just encoded picture if the picture seems to be very different from the previous ones.
STEP 4: Update QP2 for the category j:
QP2_ref=RefRCdata[j].QP2
RefRCdata[j].QP2=γ*QP2+(1−γ)*QP2_ref   (10)
STEP 5: Get pred_cw[k] and resi_cw[k] for the picture k from the actual encoding statistics that are respectively actual_pred_bits[k]/predCost[k] and actual_resi_bits[k]/resiCost[k].
STEP 6: Adjust pred_cw and resi_cw and then update RefRCdata[j].pred_cw and RefRCdata[j].resi_cw:
pred cw_ref=RefRCdata[j].pred cw*β[j] QP2 ref−RefRCdata[j].QP2
resi cw_ref=RefRCdata[j].resi cw*β[j] QP2 ref−RefRCdata[j].QP2
pred cw k=pred cw[k]*β[j] QP2 ref−QP2
resi cw k=resi cw[k]*β[j] QP2 ref−QP2
RefRCdata[j].pred cw=γ*pred cw k+(1−γ)*pred cw_ref
RefRCdata[j].resi cw=γ*resi cw k+(1−γ)*resi cw_ref   Eq. (11)
STEP 7: Adjust outBits and then update RefRCdata[j].outBits as:
outBits_ref =RefRCData[j]outBits*βi [j]QP2 ref−RefRCdata[j].QP2
outBits k=actualOutBits*β[j] QP2 ref−QP2
RefRCdata[j].outBits=γ*outBits k+(1−γ)*outBits_ref   Eq. (12)
STEP 8: Update RefRCdata[j].predCost and RefRCdata[j].resiCost as:
RefRCdata[j].predCost=γ*predCost[k]+(1−γ)*RefRCdata[j].predCost   Eq. (13)
RefRCdata[j].resiCost=γ*resiCost[k]+(1−γ)*RefRCdata[j].resiCost   Eq. (14)
STEP 9: Update RefRCdata[j].pictureCost using Eq. (1).
With the number of bits allocated to the current picture k, out_bits(k, QP2), and cost information for each macroblock obtained as disclosed above, the rate control can easily be extended to macroblock layer rate control. Macroblocks can be classified into, for example, 5 categories (indexed by j, 0-4):
MB_Normal_H (j=0): Normal MBs with data to which human eyes are very sensitive; MB_Normal_M (j=1): Normal MBs with data to which human eyes are not very sensitive; MB_Normal_L (j=2): Normal MBs with data to which human eyes are not sensitive; MB_Random (j=3): MBs with random signal or similar to that; and MB_Still (i=4): no movement at all
The jth category of MBs is characterized by a structure RefMBdata[j], that contains the followings:
RefMBdata[j].QP2: average QP used to encode the MBs in the category
RefMBdata[j].predCost: average prediction cost
RefMBdata[j].resiCost: average residual cost
RefMBdata[j].pred_cw: relationship between predCost and actual number of bits used in prediction. It is computed as actual_number_of_bits_for_prediction/predCost.
RefMBdata[j].resi_cw: relationship between resiCost and actual number of bits to encode transform coefficients. It is computed as actual_number_of_bits_for_residual/resiCost.
RefMBdata[j].outBits: Actual number of bits used to encode the MB
RefMBdata[j].MBCost:=pred cw*predCost+resi cw*resiCost   Eq. (15)
At the time of encoding the lth MB the aim is to find QP to be used to encode the current MB and all the ensuing macroblocks meeting the bit budget requirement. A small difference in QP can be applied to each category j as in Eq. (16):
QP Mb [j]=QP+d[j].   Eq. (16)
This approach is very similar to the B picture case above where the QP for B pictures was increased by 2. An example for d[j] is as follows:
d[0]=−2, d[1]=0, d[2]=2, d[3]=5, d[4]=0.   Eq. (17)
Eq. (17) assigns a bigger QP to MBs to which human eyes are less sensitive, and a smaller QP to those to which human eyes are more sensitive.
Then, if the GOP in the picture layer rate control is replaced by Picture and Picture by MB, a MB layer rate control algorithm is provided.
Similarly the inventive rate model can be extended to a case of slice layer rate control.
It will be apparent to those skilled in the art that various modifications and variation can be made in the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.
Even though the proposed algorithm can also be applied to slice layer rate control and/or MB layer rate control, we describe only picture layer rate control in detail, and explain how we can extend it to slice or macroblock later rate control briefly.
Even though the rate control method has only been described for the case of using a fixed window called GOP where the number of remaining pictures in the window decreases until the start of the next GOP is detected, the method can easily be modified to use a sliding window that consists of a fixed number of frames, for example 15. In this case, some frames in the window may belong to a different GOP from others.
The method can also be modified to have a fixed window comprising a plurality of consecutive GOPs instead of one GOP to better control the rate by looking ahead more frames. In case of using two GOPs and 15 frames for each GOP, the number of frames in the window becomes 30 at the start of each GOP and decreases to 15 at the end of each GOP.

Claims (12)

1. A method of performing rate control in a predictive video encoder, comprising:
classifying pictures in a video sequence into respective categories;
estimating a first quantization parameter;
calculating a respective prediction cost and residual cost for each of the pictures in the video sequence based on the estimated quantization parameter;
initializing rate control data for each category;
computing a respective picture cost for each picture using the respective prediction cost and residual cost, and the rate control data for the respective category;
performing bit allocation and quantization parameter selection for a picture selected from the video sequence using the respective picture cost and the respective rate control data for all the pictures in a respective group of pictures to which the selected picture belongs;
encoding the selected picture;
updating the rate control data for the respective category; and
performing bit allocation and quantization parameter selection for a second picture selected from the video sequence using the respective picture cost and the respective rate control data for all the pictures in a respective group of pictures to which the second picture belongs.
2. The method of claim 1, wherein the picture cost is a weighted sum of prediction cost and residual cost.
3. The method of claim 2, wherein the prediction cost is an estimate of the number of bits needed to generate an error image, and the residual cost describes the difficulty of encoding the resultant error image.
4. The method of claim 1, wherein classifying pictures in the video sequence comprises:
detecting scene changes in the video sequence; and
setting a group of picture (GOP) size based on the detected scene changes.
5. The method of claim 1, further comprising:
classifying each picture in a GOP, wherein the categories characterize different coding schemes and availability of certain reference pictures for encoding pictures in each category.
6. The method of claim 5, wherein each category is characterized by the average quantization parameter used to encode the pictures in a specific category, the average prediction cost for the category, the average residual cost for the category, the relationship between the prediction cost and the actual number of bits used, the relationship between the residual cost and the actual number of bits used to encode the picture, and the total picture cost.
7. The method of claim 1, wherein the rate control data comprises:
data representing the quantization parameter used to encode the pictures in a category;
data representing average prediction costs;
data representing average residual costs;
data representing the relationship between the prediction cost and an actual number of bits used in prediction;
data representing the relationship between the residual cost and an actual number of bits used to encode transform coefficients; and
data representing the actual number of bits used to encode a picture.
8. The method of claim 1, wherein updating the control data comprises:
calculating a quantization parameter for the GOP as a weighted average of quantization parameters stored in the control data;
calculating the picture cost for the pictures in the GOP;
calculating the number of bits used to encode the ith picture; and
calculating a quantization parameter that generates a number of bits closest to the target number of bits.
9. A predictive video encoder, comprising:
a pre-processor configured to
classify pictures in a video sequence into respective categories,
estimate a first ciuantization parameter, and
calculate a respective prediction cost and residual cost for each of the pictures in the video sequence based on the estimated quantization parameter; and
a main processor configured to initialize rate control data for each category,
compute a respective picture cost for each picture using the respective prediction cost and residual cost, and the rate control data for the respective category,
perform bit allocation and ciuantization parameter selection for a picture selected from the video sequence using the respective picture cost and the respective rate control data for all the pictures in a respective group of pictures to which the selected picture belongs,
encode the selected picture,
update the rate control data for the respective category, and
perform bit allocation and ciuantization parameter selection for a second picture selected from the video seciuence using the respective picture cost and the respective rate control data for all the pictures in a respective group of pictures to which the second picture belongs.
10. The encoder of claim 9, wherein the picture cost is a weighted sum of prediction cost and residual cost.
11. The encoder of claim 10, wherein prediction cost is an estimate of the number of bits needed to generate an error image, and residual cost describes the difficulty of encoding the resultant error image.
12. The encoder of claim 9, wherein the pre-processor is further configured to:
classify scenes by determining scene changes, flash pictures, and still pictures in the video sequence; and
set the GOP size based on the classification of scenes.
US11/074,661 2005-03-09 2005-03-09 Model based rate control for predictive video encoder Active 2026-06-11 US7403562B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/074,661 US7403562B2 (en) 2005-03-09 2005-03-09 Model based rate control for predictive video encoder
PCT/US2006/008755 WO2006096869A2 (en) 2005-03-09 2006-03-09 Model based rate control for predictive video encoder
CN200680015464.3A CN101194518A (en) 2005-03-09 2006-03-09 Model based rate control for predictive video encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/074,661 US7403562B2 (en) 2005-03-09 2005-03-09 Model based rate control for predictive video encoder

Publications (2)

Publication Number Publication Date
US20060203907A1 US20060203907A1 (en) 2006-09-14
US7403562B2 true US7403562B2 (en) 2008-07-22

Family

ID=36954063

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/074,661 Active 2026-06-11 US7403562B2 (en) 2005-03-09 2005-03-09 Model based rate control for predictive video encoder

Country Status (3)

Country Link
US (1) US7403562B2 (en)
CN (1) CN101194518A (en)
WO (1) WO2006096869A2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060239348A1 (en) * 2005-04-25 2006-10-26 Bo Zhang Method and system for encoding video data
US20060256858A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
US20060256857A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
CN101527846B (en) * 2008-12-19 2010-11-03 无锡云视界科技有限公司 H.264 variable bit rate control method based on Matthew effect
US20110002381A1 (en) * 2009-07-02 2011-01-06 Dialogic Corporation Bitrate control algorithm for video transcoding systems
US20140375756A1 (en) * 2013-06-24 2014-12-25 Kyeong Ho Yang Resource-adaptive video encoder sharing in multipoint control unit
US9621900B1 (en) 2012-04-18 2017-04-11 Matrox Graphics Inc. Motion-based adaptive quantization
US10003802B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US10003803B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US10360695B1 (en) 2017-06-01 2019-07-23 Matrox Graphics Inc. Method and an apparatus for enabling ultra-low latency compression of a stream of pictures

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2057846A4 (en) * 2006-09-01 2016-06-29 Thomson Licensing Method and apparatus for encoding a flash picture occurring in a video sequence, and for decoding corresponding data for a flash picture
CN101632308B (en) 2007-03-14 2011-08-03 日本电信电话株式会社 Encoding bit rate control method and device
BRPI0808567A2 (en) 2007-03-14 2014-09-02 Nippon Telegraph & Telephone MOVEMENT VECTOR SEARCH METHOD AND APPARATUS, PROGRAM FOR THE SAME, AND STORAGE MEDIA, STORING THE PROGRAM
EP3264772B1 (en) 2007-03-14 2022-09-07 Nippon Telegraph And Telephone Corporation Quantization control method and apparatus, program therefor, and storage medium which stores the program
CN101682772B (en) 2007-03-14 2012-03-21 日本电信电话株式会社 Code quantity estimating method and device, their program, and recording medium
US8582652B2 (en) * 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
US9100646B2 (en) * 2008-09-03 2015-08-04 Sk Telecom Co., Ltd. Device and method for image encoding/decoding using prediction direction conversion and selective encoding
KR101369161B1 (en) 2008-09-05 2014-03-05 에스케이 텔레콤주식회사 Prediction Direction Change Method and Apparatus and Video Encoding/Decoding Method and Apparatus
JP5641755B2 (en) * 2010-03-25 2014-12-17 キヤノン株式会社 Encoding apparatus, encoding apparatus control method, and program
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
JP5871602B2 (en) * 2011-12-19 2016-03-01 キヤノン株式会社 Encoder
US9565440B2 (en) * 2013-06-25 2017-02-07 Vixs Systems Inc. Quantization parameter adjustment based on sum of variance and estimated picture encoding cost
US9426475B2 (en) * 2013-06-25 2016-08-23 VIXS Sytems Inc. Scene change detection using sum of variance and estimated picture encoding cost
CN104754361B (en) * 2013-12-28 2018-01-23 同济大学 Image Coding, coding/decoding method and device
CN106961603B (en) * 2017-03-07 2018-06-15 腾讯科技(深圳)有限公司 Intracoded frame code rate allocation method and device
CN109413427B (en) * 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 Video frame coding method and terminal
US10721471B2 (en) * 2017-10-26 2020-07-21 Intel Corporation Deep learning based quantization parameter estimation for video encoding
CN111757107B (en) * 2020-06-29 2024-03-05 北京百度网讯科技有限公司 Video coding method, device, equipment and medium

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) * 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5412430A (en) * 1991-07-31 1995-05-02 Matsushita Electric Industrial Co. Ltd. Image coding method and image coding apparatus
US5933194A (en) * 1995-11-01 1999-08-03 Samsung Electronics Co., Ltd Method and circuit for determining quantization interval in image encoder
US5990957A (en) * 1996-09-09 1999-11-23 Samsung Electronics Co., Ltd. Video signal bit amount control using adaptive quantization
US6011589A (en) * 1996-09-03 2000-01-04 Mitsubishi Denki Kabushiki Kaisha Picture coding device where the quantization step is adjusted in response to a motion vector
US6023296A (en) 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
US6072831A (en) * 1996-07-03 2000-06-06 General Instrument Corporation Rate control for stereoscopic digital video encoding
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6275614B1 (en) * 1998-06-26 2001-08-14 Sarnoff Corporation Method and apparatus for block classification and adaptive bit allocation
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6690833B1 (en) * 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US7095784B2 (en) * 2003-04-14 2006-08-22 Silicon Intergrated Systems Corp. Method and apparatus for moving picture compression rate control using bit allocation with initial quantization step size estimation at picture level
US7126989B2 (en) * 2001-09-12 2006-10-24 Matsushita Electric Industrial Co., Ltd. Image coding method and image decoding method

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) * 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5412430A (en) * 1991-07-31 1995-05-02 Matsushita Electric Industrial Co. Ltd. Image coding method and image coding apparatus
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5933194A (en) * 1995-11-01 1999-08-03 Samsung Electronics Co., Ltd Method and circuit for determining quantization interval in image encoder
US6072831A (en) * 1996-07-03 2000-06-06 General Instrument Corporation Rate control for stereoscopic digital video encoding
US6011589A (en) * 1996-09-03 2000-01-04 Mitsubishi Denki Kabushiki Kaisha Picture coding device where the quantization step is adjusted in response to a motion vector
US5990957A (en) * 1996-09-09 1999-11-23 Samsung Electronics Co., Ltd. Video signal bit amount control using adaptive quantization
US6023296A (en) 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
US6690833B1 (en) * 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6275614B1 (en) * 1998-06-26 2001-08-14 Sarnoff Corporation Method and apparatus for block classification and adaptive bit allocation
US7126989B2 (en) * 2001-09-12 2006-10-24 Matsushita Electric Industrial Co., Ltd. Image coding method and image decoding method
US7095784B2 (en) * 2003-04-14 2006-08-22 Silicon Intergrated Systems Corp. Method and apparatus for moving picture compression rate control using bit allocation with initial quantization step size estimation at picture level

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060239348A1 (en) * 2005-04-25 2006-10-26 Bo Zhang Method and system for encoding video data
US9667999B2 (en) * 2005-04-25 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for encoding video data
US20060256858A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
US20060256857A1 (en) * 2005-05-16 2006-11-16 Douglas Chin Method and system for rate control in a video encoder
CN101527846B (en) * 2008-12-19 2010-11-03 无锡云视界科技有限公司 H.264 variable bit rate control method based on Matthew effect
US20110002381A1 (en) * 2009-07-02 2011-01-06 Dialogic Corporation Bitrate control algorithm for video transcoding systems
US8588296B2 (en) 2009-07-02 2013-11-19 Dialogic Corporation Bitrate control algorithm for video transcoding systems
US9621900B1 (en) 2012-04-18 2017-04-11 Matrox Graphics Inc. Motion-based adaptive quantization
US10003802B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US10003803B1 (en) 2012-04-18 2018-06-19 Matrox Graphics Inc. Motion-based adaptive quantization
US9609276B2 (en) 2013-06-24 2017-03-28 Dialogic Corporation Resource-adaptive video encoder sharing in multipoint control unit
US9210381B2 (en) * 2013-06-24 2015-12-08 Dialogic Corporation Resource-adaptive video encoder sharing in multipoint control unit
US20140375756A1 (en) * 2013-06-24 2014-12-25 Kyeong Ho Yang Resource-adaptive video encoder sharing in multipoint control unit
US10360695B1 (en) 2017-06-01 2019-07-23 Matrox Graphics Inc. Method and an apparatus for enabling ultra-low latency compression of a stream of pictures

Also Published As

Publication number Publication date
CN101194518A (en) 2008-06-04
WO2006096869A3 (en) 2007-06-21
US20060203907A1 (en) 2006-09-14
WO2006096869A2 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
US7403562B2 (en) Model based rate control for predictive video encoder
EP1745653B1 (en) Encoder with adaptive rate control for h.264
KR100468726B1 (en) Apparatus and method for performing variable bit rate control in real time
Yuan et al. Optimum bit allocation and rate control for H. 264/AVC
KR101033442B1 (en) Method and apparatus for controlling a bitrate in video processing system
US20100111180A1 (en) Scene change detection
US7373004B2 (en) Apparatus for constant quality rate control in video compression and target bit allocator thereof
Lee et al. Adaptive intra-frame assignment and bit-rate estimation for variable GOP length in H. 264
EP1086593A1 (en) Sequence adaptive bit allocation for pictures encoding
Zupancic et al. Two-pass rate control for improved quality of experience in UHDTV delivery
US20060256858A1 (en) Method and system for rate control in a video encoder
Jing et al. A novel intra-rate estimation method for H. 264 rate control
US8792562B2 (en) Moving image encoding apparatus and method for controlling the same
He et al. Efficient rate control in versatile video coding with adaptive spatial-temporal bit allocation and parameter updating
Yu et al. A perceptual bit allocation scheme for H. 264
Zhang et al. A two-pass rate control algorithm for H. 264/AVC high definition video coding
Yin et al. A rate control scheme for H. 264 video under low bandwidth channel
Hrarti et al. A macroblock-based perceptually adaptive bit allocation for H264 rate control
KR101168007B1 (en) A Method for Adaptive Rate Control in Unit-level for Real-time H.264/AVC
Jing et al. Improved frame level MAD prediction and bit allocation scheme for H. 264/AVC rate control
Pai et al. MPEG-4 constant-quality constant-bit-rate control algorithms
Xie et al. Optimal bit allocation and efficient rate control for H. 264/AVC based on general rate-distortion model and enhanced coding complexity measure
Huang et al. A novel 4-D perceptual quantization modeling for H. 264 bit-rate control
Wang et al. Optimization of the block-level bit allocation in perceptual video coding based on MINMAX
Lan et al. Operational distortion–quantization curve-based bit allocation for smooth video quality

Legal Events

Date Code Title Description
AS Assignment

Owner name: E.G. TECHNOLOGY, INC., GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YANG, KYEONG HO;KIM, HYUNG JOON;REEL/FRAME:016374/0510

Effective date: 20050302

AS Assignment

Owner name: SILICON VALLEY BANK,CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:EG TECHNOLOGY, INC.;REEL/FRAME:019000/0893

Effective date: 20070226

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:EG TECHNOLOGY, INC.;REEL/FRAME:019000/0893

Effective date: 20070226

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: EG TECHNOLOGY, INC.,GEORGIA

Free format text: RELEASE;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023998/0768

Effective date: 20100209

Owner name: EG TECHNOLOGY, INC., GEORGIA

Free format text: RELEASE;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023998/0768

Effective date: 20100209

AS Assignment

Owner name: ARRIS GROUP, INC., GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EG TECHNOLOGY, INC.;REEL/FRAME:024864/0491

Effective date: 20090831

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: ARRIS ENTERPRISES, INC., GEORGIA

Free format text: MERGER;ASSIGNOR:ARRIS GROUP, INC.;REEL/FRAME:030228/0330

Effective date: 20130416

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, IL

Free format text: SECURITY AGREEMENT;ASSIGNORS:ARRIS GROUP, INC.;ARRIS ENTERPRISES, INC.;ARRIS SOLUTIONS, INC.;AND OTHERS;REEL/FRAME:030498/0023

Effective date: 20130417

Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS

Free format text: SECURITY AGREEMENT;ASSIGNORS:ARRIS GROUP, INC.;ARRIS ENTERPRISES, INC.;ARRIS SOLUTIONS, INC.;AND OTHERS;REEL/FRAME:030498/0023

Effective date: 20130417

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: ARRIS ENTERPRISES LLC, PENNSYLVANIA

Free format text: CHANGE OF NAME;ASSIGNOR:ARRIS ENTERPRISES INC;REEL/FRAME:041995/0031

Effective date: 20151231

AS Assignment

Owner name: ARRIS KOREA, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., P

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GIC INTERNATIONAL HOLDCO LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: BROADBUS TECHNOLOGIES, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: THE GI REALTY TRUST 1996, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ARRIS ENTERPRISES, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: QUANTUM BRIDGE COMMUNICATIONS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: MOTOROLA WIRELINE NETWORKS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: NETOPIA, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: SETJAM, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: POWER GUARD, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: 4HOME, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: BIG BAND NETWORKS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: LEAPSTONE SYSTEMS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: NEXTLEVEL SYSTEMS (PUERTO RICO), INC., PENNSYLVANI

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., P

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ARRIS SOLUTIONS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GENERAL INSTRUMENT CORPORATION, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: SUNUP DESIGN SYSTEMS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: TEXSCAN CORPORATION, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ARRIS GROUP, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ARRIS HOLDINGS CORP. OF ILLINOIS, INC., PENNSYLVAN

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: IMEDIA CORPORATION, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: CCE SOFTWARE LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: MODULUS VIDEO, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: UCENTRIC SYSTEMS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: JERROLD DC RADIO, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ACADIA AIC, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GIC INTERNATIONAL CAPITAL LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: AEROCAST, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: NEXTLEVEL SYSTEMS (PUERTO RICO), INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

Owner name: ARRIS HOLDINGS CORP. OF ILLINOIS, INC., PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294

Effective date: 20190404

AS Assignment

Owner name: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATE

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ARRIS ENTERPRISES LLC;REEL/FRAME:049820/0495

Effective date: 20190404

Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK

Free format text: ABL SECURITY AGREEMENT;ASSIGNORS:COMMSCOPE, INC. OF NORTH CAROLINA;COMMSCOPE TECHNOLOGIES LLC;ARRIS ENTERPRISES LLC;AND OTHERS;REEL/FRAME:049892/0396

Effective date: 20190404

Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK

Free format text: TERM LOAN SECURITY AGREEMENT;ASSIGNORS:COMMSCOPE, INC. OF NORTH CAROLINA;COMMSCOPE TECHNOLOGIES LLC;ARRIS ENTERPRISES LLC;AND OTHERS;REEL/FRAME:049905/0504

Effective date: 20190404

Owner name: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CONNECTICUT

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ARRIS ENTERPRISES LLC;REEL/FRAME:049820/0495

Effective date: 20190404

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: WILMINGTON TRUST, DELAWARE

Free format text: SECURITY INTEREST;ASSIGNORS:ARRIS SOLUTIONS, INC.;ARRIS ENTERPRISES LLC;COMMSCOPE TECHNOLOGIES LLC;AND OTHERS;REEL/FRAME:060752/0001

Effective date: 20211115