US8018997B2 - System and method for video encoding - Google Patents

System and method for video encoding Download PDF

Info

Publication number
US8018997B2
US8018997B2 US11/298,412 US29841205A US8018997B2 US 8018997 B2 US8018997 B2 US 8018997B2 US 29841205 A US29841205 A US 29841205A US 8018997 B2 US8018997 B2 US 8018997B2
Authority
US
United States
Prior art keywords
frame
quantization scale
frames
jth frame
ith
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.)
Expired - Fee Related, expires
Application number
US11/298,412
Other versions
US20060133480A1 (en
Inventor
Han-Jen Chang
Wei-Min Chao
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.)
Quanta Computer Inc
Original Assignee
Quanta Computer 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 Quanta Computer Inc filed Critical Quanta Computer Inc
Assigned to QUANTA COMPUTER INC. reassignment QUANTA COMPUTER INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHANG, HAN-JAN, CHAO, WEI-MIN
Publication of US20060133480A1 publication Critical patent/US20060133480A1/en
Application granted granted Critical
Publication of US8018997B2 publication Critical patent/US8018997B2/en
Expired - Fee Related 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/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/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

  • This present invention relates to a video encoding system and method featuring an adaptive one-pass variable bit rate controller with scene change detection.
  • MPEG Motion Picture Experts Group
  • ISO International organization for standardization
  • a MPEG compliant video encoder compresses an input video sequence to achieve a target bit rate defined by the bandwidth of a user-desired video channel before it is transmitted or saved in a storage device.
  • a target bit rate defined by the bandwidth of a user-desired video channel before it is transmitted or saved in a storage device.
  • the quality of the decoded video sequence will significantly depend on the complexity of the scene.
  • variable bit rate improves the quality of video encoding by adaptively allocating bit rates according to the complexity of the scene.
  • the rate control for video encoding can be categorized into two fields: one is multi-pass variable bit rate; and the other is single pass variable bit rate.
  • the multi-pass variable bit rate technology utilizes the complexity information of the scene through preceding passes to achieve the target bit rate constraint.
  • the single pass variable bit rate technology adjusts encoding rate dynamically through encoding process.
  • the multi-pass variable bit rate algorithm for video encoding usually provides better picture quality; however, it also requires a larger amount of memory and more expensive computational cost. Therefore, such kind of variable bit rate technique is not suitable for real-time applications.
  • the single pass variable bit rate algorithm cannot guarantee a consistent quality for the entire sequence, especially those sequences with abrupt scene changes.
  • the main objective of this invention is to provide a video encoding system and method using an adaptive one-pass variable bit rate controller with scene change detection to resolve the problems mentioned above.
  • one objective of this invention is to provide a video encoding system and method using an adaptive one-pass variable bit rate controller with scene change detection.
  • the system and method according to the invention is used to detect whether one frame in a video sequence is a scene change, and if YES, to re-encode the frame according to complexity information so as to achieve a consistent quality throughout the entire sequence.
  • the video encoding method of this invention is to encode a video sequence consisting of N subsequences where N is a natural number and each subsequence includes a plurality of frames. More specifically, the video encoding method of this invention is to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded.
  • i is an integer index ranging from 1 to N
  • j is an integer index ranging from 2 to the number of frames in the ith subsequence.
  • the video encoding method of this invention includes the following steps. First, the method is performed to generate an initial quantization scale based on the encoded frames, and to encode the jth frame in the ith subsequence in accordance with the initial quantization scale in a first encoding mode. Next, the method is performed to determine whether the jth frame in the ith subsequence is a scene change relative to the (j ⁇ 1)th frame in the ith subsequence. If YES in above step, the method is performed to generate an adjusted quantization scale based on the initial quantization scale, and to re-encode the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale.
  • this invention when the current frame in a video sequence is labeled as a scene change, the video encoder re-encodes the current frame according to the complexity information of encoded frames. Specifically, this invention only re-encodes those frames where a scene change is detected. Therefore, this invention is a hybrid technique of multi-pass and single pass variable bit rate controller, which achieves better and consistent picture quality of the encoded video sequences. Besides, it can save a large amount of temporary encoding data.
  • FIG. 1A is the function-block diagram of the video encoding system of the invention.
  • FIG. 1B is the block diagram of the scene change detector shown in FIG. 1A .
  • FIG. 1C shows schematically the detection area defined by the determination module shown in FIG. 1B .
  • FIG. 2 is the flow chart of the video encoding method of the invention.
  • a video sequence 12 includes N subsequences and N is a natural number. Each subsequence includes a plurality of frames. Each frame in the video sequence 12 has a predefined number of rows and columns and each row and column has a plurality of macroblocks (MBs).
  • the video sequence 12 is inputted into the video encoding system 10 from an input end 14 .
  • the video encoding system 10 is used to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded.
  • i is an integer index ranging from 1 to N
  • j is an integer index ranging from 2 to the number of frames in the ith subsequence.
  • the video encoding system 10 of the invention includes an encoder 16 , a scene change detector 17 , a bit stream buffer 18 , a frame bit counter 20 , a video complexity estimator 22 and a quantization scale generator 24 .
  • the encoder 16 is coupled to the input end 14 and used to receive and encode the video sequence 12 .
  • an encoding mode is chosen to encode the macroblocks in the current frame.
  • Encoding modes can be generally categorized into two types: Intra-encoding mode and Inter-encoding mode.
  • Frames encoded by the intra-encoding mode are called intra frames (or I frames), and frames encoded by the inter-encoding mode are called inter frames (P frames or B frames). I frames are encoded without referencing any other frames whereas P frames are obtained by referencing the previous frame and B frames by referencing both the previous and next frame.
  • the scene change detector 17 is coupled to the encoder 16 and used to determine if the jth frame in the ith subsequence is a scene change relative to the (j ⁇ 1)th frame in the ith subsequence.
  • the quantization scale generator 24 is coupled to the encoder 16 and used to generate an initial quantization scale based on the encoded frames. If the jth frame in the ith subsequence is a scene change, the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale.
  • the second encoding mode is the aforementioned intra-encoding mode.
  • the encoder 16 encodes the jth frame in the ith subsequence in a first encoding mode in accordance with the initial quantization scale.
  • the first encoding mode is the aforementioned inter-encoding mode.
  • the video sequence 12 includes three subsequences and each subsequence includes one hundred frames.
  • the video encoding system 10 is currently encoding the 33th frame in the second subsequence and all previous frames have been encoded, that is, all frames of subsequence one and frame 1 to frame 32 in subsequence two have been encoded. It is noted that the intra-encoding mode is used to encode the first frame in each subsequence.
  • the quantization scale generator 24 generates an initial quantization scale based on the encoded frames.
  • the scene change detector 17 determines if the 33th frame in the second subsequence is a scene change relative to the 32th frame in the second subsequence.
  • the encoder 16 encodes the 33th frame in the second subsequence in inter-encoding mode in accordance with the initial quantization scale. If the 33th frame in the second subsequence is a scene change, the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the 33th frame in the second subsequence in intra-encoding mode in accordance with the adjusted quantization scale. Specifically, this invention only re-encodes those frames where a scene change is detected.
  • the bit stream buffer 18 is coupled to the encoder 16 and used to save the encoded bit streams of a frame temporarily.
  • the frame bit counter 20 is coupled to the encoder 16 and used to keep the accumulated bit length of each encoded frames in the video sequence 12 and generate an accumulated bit stream.
  • the video complexity estimator 22 is disposed between the frame bit counter 20 and the quantization scale generator 24 and used to receive the accumulated bit stream generated by the frame bit counter and generate a first and second video complexity.
  • the first video complexity is determined by the following equation:
  • X A S A * Q A * F N A 2 , ( 1 )
  • S A is a first summation of bit length defining the accumulated bit length of all frames previous to the jth frame of the ith subsequence
  • Q A is a first summation of quantization scale defined by accumulating the quantization scales of all frames previous to the jth frame of the ith subsequence
  • N A is a first number of frames defining the number of all frames previous to the jth frame of the ith subsequence
  • F is a predetermined frame rate.
  • S A , Q A and N A correspond to the summation of bit length, summation of quantization scale and number of all frames previous to the 33th frame of the second subsequence, respectively.
  • the frame rate F is the number of static frames displayed per second.
  • the second video complexity is determined by the following equation:
  • X L S L * Q L * F N L 2 , ( 2 )
  • S L is a second summation of bit length defining the accumulated bit length of frames between the first and the (j ⁇ 1)th frame in the ith subsequence
  • Q L is a second summation of quantization scale defined by accumulating the quantization scales of frames between the first and the (j ⁇ 1)th frame in the ith subsequence
  • N L is a second number of frames defining the number of frames between the first and the (j ⁇ 1)th frame in the ith subsequence.
  • S L , Q L and N L correspond to the summation of bit length, summation of quantization scale and number of frames between the first and the 32th frame in the second subsequence, respectively.
  • the initial quantization scale is determined by a predicted quantization scale and a differential quantization scale.
  • the predicted quantization scale Q P is determined by the following equation:
  • Q P MIN ⁇ ( X A , X L ) B + 1 , ( 3 )
  • X A is the first video complexity defining the video complexity of all frames previous to the jth frame of the ith subsequence
  • X L is the second video complexity defining the video complexity of frames between the first and the (j ⁇ 1)th frame in the ith subsequence.
  • B is a predetermined target bit rate.
  • X A is the video complexity of all frames previous to the 33th frame in the second subsequence
  • X L is the video complexity of frames between the first and the 32th frame in the second subsequence.
  • the differential quantization scale Q d is determined by the following equation:
  • FIG. 1B shows schematically the detection area defined by the determination module 171 shown in FIG. 1B .
  • the scene change detector 17 includes a determination module 171 and a judgment module 172 .
  • the determination module 171 is used to determine a detection area in the current jth frame.
  • the judgment module 172 determines whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed.
  • the judgment module 172 labels the current jth frame as a scene change if the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is greater than the threshold; otherwise, if the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is not greater than the threshold, the judgment module 172 continues performing the judgment process on the current jth frame until all rows in the detection area are examined.
  • the threshold THR_SC is determined by the following equation:
  • THR_SC N mbv DA * N mbh * SC_RATIO + 1 , ( 6 )
  • N mbv is the number of macroblocks of a single column in the current jth frame
  • N mbh is the number of macroblocks of a single row in the current jth frame
  • DA is a natural number used to define the detection area
  • SC_RATIO is a scene change ratio with which a percentage of intra macroblock in the detection area for scene change is determined.
  • each frame in the video sequence 12 have a predetermined number of rows and columns, e.g. 9 rows and 11 columns. Therefore, each row includes 11 macroblocks and each column includes 9 macroblocks.
  • the value of DA can be adjusted according to the frame rate F. When DA is set to 3 and SC_RATIO is set to 20%, the corresponding threshold is 7.6.
  • the detection area in the current 33th frame in the second subsequence includes three rows, i.e. r 1 , r 2 and r 3 .
  • the judgment module 172 determines if the total number of intra macroblocks of r 1 is greater than the threshold when the current processing macroblock is the last macroblock of r 1 (the dark gray area in FIG. 1C ). If YES, the current 33th frame in the second subsequence is labeled as a scene change. Otherwise, the judgment module 172 proceeds with checking the total number of intra macroblocks of r 2 and r 3 . This process is iterated until all rows in the detection are examined. The judgment module continues to perform the same judgment process on the next frame.
  • the quantization scale generator 24 When the jth frame in the ith subsequence is labeled as a scene change by the scene change detector 17 , the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the jth frame in the ith subsequence in intra-encoding mode in accordance with the adjusted quantization scale.
  • the adjusted quantization scale ⁇ circumflex over (Q) ⁇ is determined by the following equation:
  • N mb is the number of total macroblocks in the current jth frame
  • N intra is the number of intra macroblocks within the detection area in the current jth frame
  • S intra is the bit length of intra macroblocks within the detection area of the current jth frame
  • L is a second predetermined model parameter.
  • the invention also provides a video encoding method for encoding a video sequence consisting of N subsequences, wherein N is a natural number and each subsequence includes a plurality of frames. More specifically, the video encoding method of this invention is to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded.
  • i is an integer index ranging from 1 to N
  • j is an integer index ranging from 2 to the number of frames in the ith subsequence. It is noted that the intra-encoding mode is used to encode the first frame in each subsequence.
  • the video encoding method includes the following steps:
  • Step S 100 Start the encoding process.
  • Step S 102 Generate an initial quantization scale based on the encoded frames.
  • Step S 104 Encode the jth frame in the ith subsequence in an inter-encoding mode in accordance with the initial quantization scale.
  • Step S 106 Define a detection area in the current jth frame.
  • Step S 108 Determine whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area, N intra , is greater than a threshold, N thres , when the last intra macroblock of the current processing row is being processed.
  • Step S 110 If the result of S 108 is YES, label the current jth frame as a scene change and continue to perform Step S 112 . Otherwise, go to Step 114 .
  • Step S 112 Generate an adjusted quantization scale based on the initial quantization scale and re-encode the jth frame in the ith subsequence in an intra-encoding mode in accordance with the adjusted quantization scale. Then go to Step 116 .
  • Step S 114 Continue performing S 108 on the current jth frame until all rows within the detection area are examined, and then go to Step S 116 .
  • Step S 116 Iterate S 102 until all frames in the video sequence are encoded.
  • Step S 118 Termination.
  • the invention re-encodes the current frame according to complexity information of the encoded frames when the current frame in a video sequence is labeled as a scene change. Specifically, this invention only re-encodes those frames where a scene change is detected. Therefore, this invention is a hybrid technique of multi-pass and single pass variable bit rate controller, which achieves better and consistent picture quality of the encoded video sequences. Besides, it can save a large amount of temporary encoding data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A video encoding method and system are provided for encoding a video sequence. The video sequence includes N sub-sequences which each includes a plurality of frames. When the video encoding system encodes the jth frame in the ith sub-sequence of the video sequence, the frames previous to the jth frame in the ith sub-sequence have been encoded. Based on the encoded frames, an initial quantization scale is generated. According to the initial quantization scale, the jth frame of the ith sub-sequence is encoded in the inter-encoded mode. Whether the jth frame in the ith sub-sequence is a “scene change” relative to the (j−1)th frame in the ith subsequence is judged, and if YES, based on the initial quantization scale, an adjusted quantization scale is generated. Moreover, the jth frame in the ith sub-sequence is re-encoded in accordance with the adjusted quantization scale.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
This present invention relates to a video encoding system and method featuring an adaptive one-pass variable bit rate controller with scene change detection.
2. Description of the Prior Art
In recent years, technology on digital compression has been widely applied to compress files of various video formats to save the transmission bandwidth or storage capacity. Generally speaking, the most widely adopted techniques are the MPEG (Motion Picture Experts Group) standards established by the ISO (International organization for standardization), such as MPEG-1, MPEG-2, MPEG-4, etc.
It is well known that a MPEG compliant video encoder compresses an input video sequence to achieve a target bit rate defined by the bandwidth of a user-desired video channel before it is transmitted or saved in a storage device. However, when the compressed video sequence associated with a scene, encoded with a constant bit rate, is decoded, the quality of the decoded video sequence will significantly depend on the complexity of the scene.
In practical application, the video sequence is compressed with a variable bit rate. The so-called variable bit rate technique improves the quality of video encoding by adaptively allocating bit rates according to the complexity of the scene. Basically, the rate control for video encoding can be categorized into two fields: one is multi-pass variable bit rate; and the other is single pass variable bit rate. The multi-pass variable bit rate technology utilizes the complexity information of the scene through preceding passes to achieve the target bit rate constraint. The single pass variable bit rate technology adjusts encoding rate dynamically through encoding process. The multi-pass variable bit rate algorithm for video encoding usually provides better picture quality; however, it also requires a larger amount of memory and more expensive computational cost. Therefore, such kind of variable bit rate technique is not suitable for real-time applications. On the other hand, the single pass variable bit rate algorithm cannot guarantee a consistent quality for the entire sequence, especially those sequences with abrupt scene changes.
The main objective of this invention is to provide a video encoding system and method using an adaptive one-pass variable bit rate controller with scene change detection to resolve the problems mentioned above.
SUMMARY OF THE INVENTION
Accordingly, one objective of this invention is to provide a video encoding system and method using an adaptive one-pass variable bit rate controller with scene change detection. The system and method according to the invention is used to detect whether one frame in a video sequence is a scene change, and if YES, to re-encode the frame according to complexity information so as to achieve a consistent quality throughout the entire sequence.
The video encoding method of this invention is to encode a video sequence consisting of N subsequences where N is a natural number and each subsequence includes a plurality of frames. More specifically, the video encoding method of this invention is to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded. In the above definition, i is an integer index ranging from 1 to N, and j is an integer index ranging from 2 to the number of frames in the ith subsequence.
The video encoding method of this invention includes the following steps. First, the method is performed to generate an initial quantization scale based on the encoded frames, and to encode the jth frame in the ith subsequence in accordance with the initial quantization scale in a first encoding mode. Next, the method is performed to determine whether the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence. If YES in above step, the method is performed to generate an adjusted quantization scale based on the initial quantization scale, and to re-encode the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale.
In this invention, when the current frame in a video sequence is labeled as a scene change, the video encoder re-encodes the current frame according to the complexity information of encoded frames. Specifically, this invention only re-encodes those frames where a scene change is detected. Therefore, this invention is a hybrid technique of multi-pass and single pass variable bit rate controller, which achieves better and consistent picture quality of the encoded video sequences. Besides, it can save a large amount of temporary encoding data.
The advantage and spirit of the invention may be understood by the following recitations together with the appended drawings.
BRIEF DESCRIPTION OF THE APPENDED DRAWINGS
FIG. 1A is the function-block diagram of the video encoding system of the invention.
FIG. 1B is the block diagram of the scene change detector shown in FIG. 1A.
FIG. 1C shows schematically the detection area defined by the determination module shown in FIG. 1B.
FIG. 2 is the flow chart of the video encoding method of the invention.
DETAILED DESCRIPTION OF THE INVENTION
Referring to FIG. 1A, the function-block diagram of the video encoding system 10 of the invention is illustrated. As shown in FIG. 1A, a video sequence 12 includes N subsequences and N is a natural number. Each subsequence includes a plurality of frames. Each frame in the video sequence 12 has a predefined number of rows and columns and each row and column has a plurality of macroblocks (MBs). The video sequence 12 is inputted into the video encoding system 10 from an input end 14. The video encoding system 10 is used to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded. In the above definition, i is an integer index ranging from 1 to N, and j is an integer index ranging from 2 to the number of frames in the ith subsequence.
As shown in FIG. 1A, the video encoding system 10 of the invention includes an encoder 16, a scene change detector 17, a bit stream buffer 18, a frame bit counter 20, a video complexity estimator 22 and a quantization scale generator 24. The encoder 16 is coupled to the input end 14 and used to receive and encode the video sequence 12. Before the encoder 16 processes the current frame, an encoding mode is chosen to encode the macroblocks in the current frame. Encoding modes can be generally categorized into two types: Intra-encoding mode and Inter-encoding mode. Frames encoded by the intra-encoding mode are called intra frames (or I frames), and frames encoded by the inter-encoding mode are called inter frames (P frames or B frames). I frames are encoded without referencing any other frames whereas P frames are obtained by referencing the previous frame and B frames by referencing both the previous and next frame.
The scene change detector 17 is coupled to the encoder 16 and used to determine if the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence. The quantization scale generator 24 is coupled to the encoder 16 and used to generate an initial quantization scale based on the encoded frames. If the jth frame in the ith subsequence is a scene change, the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale. The second encoding mode is the aforementioned intra-encoding mode. Otherwise, if the jth frame in the ith subsequence is not a scene change, the encoder 16 encodes the jth frame in the ith subsequence in a first encoding mode in accordance with the initial quantization scale. The first encoding mode is the aforementioned inter-encoding mode.
In an embodiment, the video sequence 12 includes three subsequences and each subsequence includes one hundred frames. The video encoding system 10 is currently encoding the 33th frame in the second subsequence and all previous frames have been encoded, that is, all frames of subsequence one and frame 1 to frame 32 in subsequence two have been encoded. It is noted that the intra-encoding mode is used to encode the first frame in each subsequence. The quantization scale generator 24 generates an initial quantization scale based on the encoded frames. The scene change detector 17 determines if the 33th frame in the second subsequence is a scene change relative to the 32th frame in the second subsequence. If the 33th frame in the second subsequence is not a scene change, the encoder 16 encodes the 33th frame in the second subsequence in inter-encoding mode in accordance with the initial quantization scale. If the 33th frame in the second subsequence is a scene change, the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the 33th frame in the second subsequence in intra-encoding mode in accordance with the adjusted quantization scale. Specifically, this invention only re-encodes those frames where a scene change is detected.
The bit stream buffer 18 is coupled to the encoder 16 and used to save the encoded bit streams of a frame temporarily. The frame bit counter 20 is coupled to the encoder 16 and used to keep the accumulated bit length of each encoded frames in the video sequence 12 and generate an accumulated bit stream. The video complexity estimator 22 is disposed between the frame bit counter 20 and the quantization scale generator 24 and used to receive the accumulated bit stream generated by the frame bit counter and generate a first and second video complexity.
The first video complexity is determined by the following equation:
X A = S A * Q A * F N A 2 , ( 1 )
where SA is a first summation of bit length defining the accumulated bit length of all frames previous to the jth frame of the ith subsequence, QA is a first summation of quantization scale defined by accumulating the quantization scales of all frames previous to the jth frame of the ith subsequence, NA is a first number of frames defining the number of all frames previous to the jth frame of the ith subsequence, and F is a predetermined frame rate.
In the above embodiment, SA, QA and NA correspond to the summation of bit length, summation of quantization scale and number of all frames previous to the 33th frame of the second subsequence, respectively. The frame rate F is the number of static frames displayed per second.
The second video complexity is determined by the following equation:
X L = S L * Q L * F N L 2 , ( 2 )
where SL is a second summation of bit length defining the accumulated bit length of frames between the first and the (j−1)th frame in the ith subsequence, QL is a second summation of quantization scale defined by accumulating the quantization scales of frames between the first and the (j−1)th frame in the ith subsequence, NL is a second number of frames defining the number of frames between the first and the (j−1)th frame in the ith subsequence.
In the above embodiment, SL, QL and NL correspond to the summation of bit length, summation of quantization scale and number of frames between the first and the 32th frame in the second subsequence, respectively.
The initial quantization scale is determined by a predicted quantization scale and a differential quantization scale. The predicted quantization scale QP is determined by the following equation:
Q P = MIN ( X A , X L ) B + 1 , ( 3 )
where XA is the first video complexity defining the video complexity of all frames previous to the jth frame of the ith subsequence, and XL is the second video complexity defining the video complexity of frames between the first and the (j−1)th frame in the ith subsequence. B is a predetermined target bit rate.
In the above embodiment, XA is the video complexity of all frames previous to the 33th frame in the second subsequence, and XL is the video complexity of frames between the first and the 32th frame in the second subsequence.
The differential quantization scale Qd is determined by the following equation:
Q d = K * ( S buf buf_size - 0.5 ) , S buf = MAX ( S buf + S j - B F , 0 ) ( 4 )
where Sbuf is the current number of buffered bits by the bit stream buffer 18, Sj is the current number of generated bits from the jth frame in the jth subsequence, buf_size is a predetermined buffer size, and K is a first predefined model parameter which determines the scale of differential quantization scale.
Therefore, the initial quantization scale Q is determined by the following equation:
Q=MAX(Q MIN,MIN(Q MAX ,Q P +Q d)),  (5)
where a predetermined maximum and the minimum value of quantization scale are defined by QMAX and QMIN, respectively.
Referring to FIGS. 1B and 1C, the block diagram of the scene change detector 17 shown in FIG. 1A is illustrated in FIG. 1B. FIG. 1C shows schematically the detection area defined by the determination module 171 shown in FIG. 1B. The scene change detector 17 includes a determination module 171 and a judgment module 172. The determination module 171 is used to determine a detection area in the current jth frame. The judgment module 172 determines whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed. The judgment module 172 labels the current jth frame as a scene change if the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is greater than the threshold; otherwise, if the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is not greater than the threshold, the judgment module 172 continues performing the judgment process on the current jth frame until all rows in the detection area are examined. The threshold THR_SC is determined by the following equation:
THR_SC = N mbv DA * N mbh * SC_RATIO + 1 , ( 6 )
where Nmbv is the number of macroblocks of a single column in the current jth frame, and Nmbh is the number of macroblocks of a single row in the current jth frame, DA is a natural number used to define the detection area, and SC_RATIO is a scene change ratio with which a percentage of intra macroblock in the detection area for scene change is determined.
In the above embodiment, let each frame in the video sequence 12 have a predetermined number of rows and columns, e.g. 9 rows and 11 columns. Therefore, each row includes 11 macroblocks and each column includes 9 macroblocks. The value of DA can be adjusted according to the frame rate F. When DA is set to 3 and SC_RATIO is set to 20%, the corresponding threshold is 7.6.
As shown in FIG. 1C, when DA is set to 3, the detection area occupies one-third of the whole frame. In this embodiment, the detection area in the current 33th frame in the second subsequence includes three rows, i.e. r1, r2 and r3. The judgment module 172 determines if the total number of intra macroblocks of r1 is greater than the threshold when the current processing macroblock is the last macroblock of r1 (the dark gray area in FIG. 1C). If YES, the current 33th frame in the second subsequence is labeled as a scene change. Otherwise, the judgment module 172 proceeds with checking the total number of intra macroblocks of r2 and r3. This process is iterated until all rows in the detection are examined. The judgment module continues to perform the same judgment process on the next frame.
When the jth frame in the ith subsequence is labeled as a scene change by the scene change detector 17, the quantization scale generator 24 generates an adjusted quantization scale based on the initial quantization scale and the encoder 16 re-encodes the jth frame in the ith subsequence in intra-encoding mode in accordance with the adjusted quantization scale.
The adjusted quantization scale {circumflex over (Q)} is determined by the following equation:
Q ^ = Q * ( S int ra L * N mb N int ra * F B ) , ( 7 )
where Nmb is the number of total macroblocks in the current jth frame, Nintra is the number of intra macroblocks within the detection area in the current jth frame, Sintra is the bit length of intra macroblocks within the detection area of the current jth frame, and L is a second predetermined model parameter.
The invention also provides a video encoding method for encoding a video sequence consisting of N subsequences, wherein N is a natural number and each subsequence includes a plurality of frames. More specifically, the video encoding method of this invention is to encode the jth frame in the ith subsequence, provided that all frames previous to the jth frame in the ith subsequence have been encoded. In the above definition, i is an integer index ranging from 1 to N, and j is an integer index ranging from 2 to the number of frames in the ith subsequence. It is noted that the intra-encoding mode is used to encode the first frame in each subsequence.
Referring to FIG. 2, the flow chart of the video encoding method of the invention is illustrated. The video encoding method includes the following steps:
Step S100: Start the encoding process.
Step S102: Generate an initial quantization scale based on the encoded frames.
Step S104: Encode the jth frame in the ith subsequence in an inter-encoding mode in accordance with the initial quantization scale.
Step S106: Define a detection area in the current jth frame.
Step S108: Determine whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area, Nintra, is greater than a threshold, Nthres, when the last intra macroblock of the current processing row is being processed.
Step S110: If the result of S108 is YES, label the current jth frame as a scene change and continue to perform Step S112. Otherwise, go to Step 114.
Step S112: Generate an adjusted quantization scale based on the initial quantization scale and re-encode the jth frame in the ith subsequence in an intra-encoding mode in accordance with the adjusted quantization scale. Then go to Step 116.
Step S114: Continue performing S108 on the current jth frame until all rows within the detection area are examined, and then go to Step S116.
Step S116: Iterate S102 until all frames in the video sequence are encoded.
Step S118: Termination.
Contrast to prior arts, the invention re-encodes the current frame according to complexity information of the encoded frames when the current frame in a video sequence is labeled as a scene change. Specifically, this invention only re-encodes those frames where a scene change is detected. Therefore, this invention is a hybrid technique of multi-pass and single pass variable bit rate controller, which achieves better and consistent picture quality of the encoded video sequences. Besides, it can save a large amount of temporary encoding data.
With the example and explanations above, the features and spirits of the invention will be hopefully well described. Those skilled in the art will readily observe that numerous modifications and alterations of the device may be made while retaining the teaching of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.

Claims (14)

1. A video encoding method, a video sequence comprising N subsequences which each comprises a plurality of frames, said method functioning encoding the jth frame in the ith subsequence, frames previous to the jth frame in the ith subsequence having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames of the ith subsequence, said method comprising the steps of:
(a) based on the encoded frames, generating an initial quantization scale, wherein the initial quantization scale is determined by a predicted quantization scale and a differential quantization scale, and, wherein the predicted quantization scale QP is determined by the following equation:
Q P = MIN ( X A , X L ) B + 1 ,
where XA is a first video complexity defining the video complexity of all frames previous to the jth frame of the ith subsequence, and XL is a second video complexity defining the video complexity of the frames between the first and the (j−1)th frame in the ith subsequence, and B is a predetermined target bit rate;
(b) encoding the jth frame in the ith subsequence in a first encoding mode in accordance with the initial quantization scale;
(c) defining a detection area in the current jth frame, and determining whether the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame; and
(d) when YES in step (c), based on the initial quantization scale, generating an adjusted quantization scale, and re-encoding the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale.
2. The method according to claim 1, wherein the first video complexity XA is determined by the following equation:
X A = S A * Q A * F N A 2 ,
where SA is a first summation of bit length defining the accumulated bit length of all frames previous to the jth frame of the ith subsequence, QA is a first summation of quantization scale defined by accumulating the quantization scales of all frames previous to the jth frame of the ith subsequence, NA is a first number of frames defining the number of all frames previous to the jth frame of the ith subsequence, and F is a predetermined frame rate.
3. The method according to claim 2, wherein the second video complexity XL is determined by the following equation:
X L = S L * Q L * F N L 2 ,
where SL is a second summation of bit length defining the accumulated bit length of frames between the first and the (j−1)th frame in the ith subsequence, QL is a second summation of quantization scale defined by accumulating the quantization scales of frames between the first and the (j−1)th frame in the ith subsequence, and NL is a second number of frames defining the number of frames between the first and the (j−1)th frame in the ith subsequence.
4. The method according to claim 3, wherein the differential quantization scale Qd is determined by the following equation:
Q d = K * ( S buf buf_size - 0.5 ) , S buf = MAX ( S buf + S j - B F , 0 ) ,
where Sbuf is the current number of buffered bits, Sj is the current number of generated bits from the jth frame, buf_size is a predetermined buffer size, and K is a first predetermined model parameter which determines the scale of differential quantization scale.
5. The method according to claim 4, wherein the initial quantization scale Q is determined by the following equation:

Q=MAX(Q MIN,MIN(Q MAX ,Q P +Q d)),
where a predetermined maximum and the minimum value of quantization scale are defined by QMAX and QMIN, respectively.
6. A video encoding method, a video sequence comprising N subsequences which each comprises a plurality of frames, said method functioning encoding the jth frame in the ith subsequence, frames previous to the jth frame in the ith subsequence having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames of the ith subsequence, said method comprising the steps of:
(a) based on the encoded frames, generating an initial quantization scale;
(b) encoding the jth frame in the ith subsequence in a first encoding mode in accordance with the initial quantization scale;
(c) defining a detection area in the current jth frame, and determining whether the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame; and
(d) when YES in step (c), based on the initial quantization scale, generating an adjusted quantization scale, and re-encoding the jth frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale, wherein each of the plurality of frames has a predefined number of rows and columns, and each of the rows comprises a plurality of macroblocks, said step (c) further comprises:
(c1) determining whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed, wherein the threshold is determined by the following equation:
THR_SC = N mbv DA * N mbh * SC_RATIO + 1 ,
where Nmbv is the number of macroblocks of the single column in the current jth frame, and Nmbh is the number of macroblocks of the single row in the current jth frame, DA is a natural number defining the detection area, and SC_RATIO is a scene change ratio; and
(c2) labeling the current jth frame as the scene change when the result of step (c1) is YES, or continuing performing step (c1) on the current jth frame until all rows in the detection area are examined when the result of step (c1) is NO.
7. A video encoding method, a video sequence comprising N subsequences which each comprises a plurality of frames, said method functioning encoding the jth frame in the ith subsequence, frames previous to the jth frame in the ith subsequence having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames of the ith subsequence, said method comprising the steps of:
(a) based on the encoded frames, generating an initial quantization scale;
(b) encoding the jth frame in the ith subsequence in a first encoding mode in accordance with the initial quantization scale;
(c) defining a detection area in the current jth frame, and determining whether the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame; and
(d) when YES in step (c), based on the initial quantization scale, generating an adjusted quantization scale {circumflex over (Q)}, and re-encoding the ith frame in the ith subsequence in a second encoding mode in accordance with the adjusted quantization scale {circumflex over (Q)}, wherein each of the plurality of frames has a predefined number of rows and columns, and each of the rows comprises a plurality of macroblocks, said step (c) further comprises:
(c1) determining whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed, wherein the threshold is determined by the following equation:
THR_SC = N mbv DA * N mbh * SC_RATIO + 1 ,
where Nmbv, is the number of macroblocks of the single column in the current jth frame, and Nmbh is the number of macroblocks of the single row in the current jth frame, DA is a natural number defining the detection area, and SC_RATIO is a scene change ratio; and
(c2) labeling the current ith frame as the scene change when the result of step (c1) is YES, or continuing performing step (c1) on the current ith frame until all rows in the detection area are examined when the result of step (c1) is NO, and wherein the adjusted quantization scale {circumflex over (Q)} is determined by the following equation:
Q ^ = Q * ( S intra L * N mb N intra * F B ) ,
where Nmb is the number of total macroblocks in the current jth frame, Nintra is the number of intra macroblocks in the current jth frame from the first pass of encoding, Sintra is the bit length of intra macroblocks in the detection area of the current jth frame, and L is a second predetermined model parameter.
8. A video encoding system, a video sequence comprising N subsequences and each of the subsequences comprising a plurality of frames, said video encoding system being used to encode the jth frame in the ith subsequence and all previous frames having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames in the ith subsequence, said system comprising:
a quantization scale generator for generating, based on the encoded frames, an initial quantization scale, wherein the initial quantization scale is determined by a predicted quantization scale QP and a differential quantization scale and wherein the predicted quantization scale QP is determined by the following equation:
Q P = MIN ( X A , X L ) B + 1 ,
where XA is a first video complexity defining the overall video complexity of all frames previous to the jth frame of the ith subsequence, XL is a second video complexity defining the video complexity of frames between the first and (j−1)th frame in the ith subsequence, and B is a predetermined target bit rate;
an encoder, coupled to the quantization scale generator, for encoding the jth frame in the ith subsequence in a first encoding mode based on the initial quantization scale;
a determination module for determining a detection area in the current jth frame; and
a scene change detector, coupled to the encoder, for determining when the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame;
where the quantization scale generator generates an adjusted quantization scale based on the initial quantization scale and the encoder re-encodes the jth frame in the ith subsequence in a second encoding mode when the jth frame in the ith subsequence is a scene change.
9. The system according to claim 8, wherein the first video complexity XA is determined by the following equation:
X A = S A * Q A * F N A 2 ,
where SA is a first summation of bit length defining the accumulated bit length of all frames previous to the jth frame of the ith subsequence, QA is a first summation of quantization scale defined by accumulating the quantization scales of all frames previous to the jth frame of the ith subsequence, NA is a first number of frames defining the number of all frames previous to the jth frame of the ith subsequence, and F is a predetermined frame rate.
10. The system according to claim 9, wherein the second video complexity XL is determined by the following equation:
X L = S L * Q L * F N L 2 ,
where SL is a second summation of bit length defining the accumulated bit length of frames between the first and (j−1)th frame in the ith subsequence, QL is a second summation of quantization scale defined by accumulating the quantization scales of frames between the first and (j−1)th frame in the ith subsequence, and NL is a second number of frames defining the number of frames between the first and (j−1)th frame in the ith subsequence.
11. The system according to claim 10, wherein the differential quantization scale Qd is determined by the following equation:
Q d = K * ( S buf buf_size - 0.5 ) , S buf = MAX ( S buf + S j - B F , 0 )
where Sbuf is the current number of buffered bits, Sj is the current number of generated bits from the jth frame, buf_size is a predetermined buffer size, and K is a first predetermined model parameter which determines the scale of differential quantization scale.
12. The method according to claim 11, wherein the initial quantization scale Q is determined by the following equation:

Q=MAX(Q MIN,MIN(Q MAX ,Q P +Q d)),
where a predetermined maximum value and a predetermined minimum value of quantization scale are defined by QMAX and QMIN, respectively.
13. A video encoding system, a video sequence comprising N subsequences and each of the subsequences comprising a plurality of frames, said video encoding system being used to encode the ith frame in the ith subsequence and all previous frames having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames in the ith subsequence, said system comprising:
a quantization scale generator for generating, based on the encoded frames, an initial quantization scale;
an encoder, coupled to the quantization scale generator, for encoding the jth frame in the ith subsequence in a first encoding mode based on the initial quantization scale;
a determination module for determining a detection area in the current jth frame; and
a scene change detector, coupled to the encoder, for determining when the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame;
where the quantization scale generator generates an adjusted quantization scale based on the initial quantization scale and the encoder re-encodes the jth frame in the ith subsequence in a second encoding mode when the jth frame in the ith subsequence is a scene change, wherein each of the plurality of frames has a predefined number of rows and columns, and each of the rows comprises a plurality of macroblocks, said scene change detector further comprises:
a judgment module for determining whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed;
wherein the judgment module labels the current jth frame as the scene change when the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is greater than the threshold; otherwise, the judgment module continues performing the judgment process on the current jth frame until all rows in the detection area are examined, and wherein the threshold is determined by the following equation:
THR_SC = N mbv DA * N mbh * SC_RATIO + 1 ,
where Nmbv is the number of macroblocks of the single column in the current jth frame, and Nmbh is the number of macroblocks of the single row in the current jth frame, DA is a natural number defining the detection area, and SC_RATIO is a scene change ratio.
14. A video encoding system, a video sequence comprising N subsequences and each of the subsequences comprising a plurality of frames, said video encoding system being used to encode the jth frame in the ith subsequence and all previous frames having been encoded, N being a natural number, i being an integer index ranging from 1 to N, j being an integer index ranging from 2 to the number of the frames in the ith subsequence, said system comprising:
a quantization scale generator for generating, based on the encoded frames, an initial quantization scale;
an encoder, coupled to the quantization scale generator, for encoding the jth frame in the ith subsequence in a first encoding mode based on the initial quantization scale;
a determination module for determining a detection area in the current jth frame; and
a scene change detector, coupled to the encoder, for determining when the jth frame in the ith subsequence is a scene change relative to the (j−1)th frame in the ith subsequence within the detection area which is smaller than the frame;
where the quantization scale generator generates an adjusted quantization scale {circumflex over (Q)} based on the initial quantization scale and the encoder re-encodes the jth frame in the ith subsequence in a second encoding mode when the jth frame in the ith subsequence is a scene change, wherein each of the plurality of frames has a predefined number of rows and columns, and each of the rows comprises a plurality of macroblocks, said scene change detector further comprises:
a judgment module for determining whether the total number of intra macroblocks of all rows previous to and including a current processing row within the detection area is greater than a threshold when the last intra macroblock of the current processing row is being processed;
wherein the judgment module labels the current jth frame as the scene change when the total number of intra macroblocks of all rows previous to and including the current processing row within the detection area is greater than the threshold; otherwise, the judgment module continues performing the judgment process on the current jth frame until all rows in the detection area are examined, and wherein the threshold is determined by the following equation:
THR_SC = N mbv DA * N mbh * SC_RATIO + 1 ,
where Nmbv is the number of macroblocks of the single column in the current jth frame, and Nmbh is the number of macroblocks of the single row in the current jth frame, DA is a natural number defining the detection area, and SC_RATIO is a scene change ratio, wherein the adjusted quantization scale {circumflex over (Q)} is determined by the following equation:
Q ^ = Q * ( S intra L * N mb N intra * F B ) ,
where Nmb is the number of total macroblocks in the current jth frame, Nintra is the number of intra macroblocks in the current jth frame from the first pass of encoding, Sintra is the bit length of intra macroblocks in the detection area of the current jth frame, and L is a second predetermined model parameter.
US11/298,412 2004-12-17 2005-12-08 System and method for video encoding Expired - Fee Related US8018997B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
TW093139252 2004-12-17
TW093139252A TWI254879B (en) 2004-12-17 2004-12-17 System and method for video encoding
TW93139252A 2004-12-17

Publications (2)

Publication Number Publication Date
US20060133480A1 US20060133480A1 (en) 2006-06-22
US8018997B2 true US8018997B2 (en) 2011-09-13

Family

ID=36595712

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/298,412 Expired - Fee Related US8018997B2 (en) 2004-12-17 2005-12-08 System and method for video encoding

Country Status (2)

Country Link
US (1) US8018997B2 (en)
TW (1) TWI254879B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070274385A1 (en) * 2006-05-26 2007-11-29 Zhongli He Method of increasing coding efficiency and reducing power consumption by on-line scene change detection while encoding inter-frame
US8379734B2 (en) * 2007-03-23 2013-02-19 Qualcomm Incorporated Methods of performing error concealment for digital video
US20090015657A1 (en) * 2007-07-09 2009-01-15 Jason Wong Method and system for adapting video according to associated audio
GB2459671A (en) * 2008-04-29 2009-11-04 Imagination Tech Ltd Scene Change Detection For Use With Bit-Rate Control Of A Video Compression System
WO2016122540A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Encoder
WO2017023829A1 (en) * 2015-07-31 2017-02-09 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
WO2019104635A1 (en) * 2017-11-30 2019-06-06 SZ DJI Technology Co., Ltd. System and method for controlling video coding at frame level
CN108810545B (en) * 2018-07-04 2023-04-18 中南大学 Method, apparatus, computer readable medium and electronic device for video encoding
CN111770347A (en) * 2020-07-17 2020-10-13 广州市奥威亚电子科技有限公司 Video transmission method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351493B1 (en) 1998-06-30 2002-02-26 Compaq Computer Corporation Coding an intra-frame upon detecting a scene change in a video sequence
US6654417B1 (en) 1998-01-26 2003-11-25 Stmicroelectronics Asia Pacific Pte. Ltd. One-pass variable bit rate moving pictures encoding
US7023917B2 (en) * 2001-05-15 2006-04-04 Koninklijke Philips Electronics N.V. Detecting subtitles in a video signal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654417B1 (en) 1998-01-26 2003-11-25 Stmicroelectronics Asia Pacific Pte. Ltd. One-pass variable bit rate moving pictures encoding
US6351493B1 (en) 1998-06-30 2002-02-26 Compaq Computer Corporation Coding an intra-frame upon detecting a scene change in a video sequence
US7023917B2 (en) * 2001-05-15 2006-04-04 Koninklijke Philips Electronics N.V. Detecting subtitles in a video signal

Also Published As

Publication number Publication date
TWI254879B (en) 2006-05-11
US20060133480A1 (en) 2006-06-22
TW200625162A (en) 2006-07-16

Similar Documents

Publication Publication Date Title
US8018997B2 (en) System and method for video encoding
US5719632A (en) Motion video compression system with buffer empty/fill look-ahead bit allocation
US5677969A (en) Method, rate controller, and system for preventing overflow and underflow of a decoder buffer in a video compression system
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
US9497464B2 (en) GOP-independent dynamic bit-rate controller
US6301428B1 (en) Compressed video editor with transition buffer matcher
EP0711079B1 (en) Method and apparatus for scaling a compressed video bitstream
US6650705B1 (en) Method for encoding and transcoding multiple video objects with variable temporal resolution
US7881370B2 (en) Method of selecting among n spatial video CODECs the optimum CODEC for a same input signal
JP4901772B2 (en) Moving picture coding method and moving picture coding apparatus
US20020021756A1 (en) Video compression using adaptive selection of groups of frames, adaptive bit allocation, and adaptive replenishment
US20040170395A1 (en) Quantization method and system for video MPEG applications and computer program product therefor
US20060159169A1 (en) Moving pictures encoding with constant overall bit-rate
EP1869895B1 (en) Scene-by-scene digital video processing
US8098729B2 (en) Implementing B-picture scene changes
US20030031251A1 (en) Video encoding method and apparatus
US20090175330A1 (en) Method and apparatus for adapting a default encoding of a digital video signal during a scene change period
JPH11346362A (en) Real time single path variable bit rate control method, and encoder
US6804294B1 (en) Method and apparatus for video frame selection for improved coding quality at low bit-rates
JP2000013799A (en) Device and method for motion compensation encoding and decoding
CN1145154A (en) Buffer management in variable Bit-rate compression systems
US20030067979A1 (en) Image processing apparatus and method, recording medium, and program
US20130272383A1 (en) Rate control for content transcoding
US20120069896A1 (en) Efficient coding complexity estimation for video transcoding systems
US6226326B1 (en) Coding device and coding method

Legal Events

Date Code Title Description
AS Assignment

Owner name: QUANTA COMPUTER INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANG, HAN-JAN;CHAO, WEI-MIN;REEL/FRAME:017356/0694

Effective date: 20051122

ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

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

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20230913