Abstract:
An encoder. A first encoding unit discrete cosine transforms an input frame, quantizes the transformation result, and generates a first frame according to a motion vector. The first encoding unit includes a first feedback unit dequantizing the transformation result, generating a processing signal and a first reconstruction signal according to the dequantization result, and re-quantizing the processing signal to generate a requantization signal. A second encoding unit encodes according to the first reconstruction signal to generate a second frame and an encoding signal. The third encoding unit generates a third frame according to the encoding signal and the re-quantization signal.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates to encoders and image encoding methods, and more particularly to encoders and image encoding methods used in seamless bitstream switching. 
     2. Description of the Related Art 
     In conventional commercial video streaming, the server may store multiple bit-streams with different bitrates/resolutions to deal with bandwidth variation in standard compliance beforehand. With bitstream switching, the server chooses the bitstream which matches the client&#39;s available bandwidth. For example, clients with high channel bandwidth can subscribe to higher bitrate bitstreams for better video quality, whereas clients with low channel bandwidth subscribe to lower bitrate bitstreams with lower video quality. 
       FIG. 1A  and  FIG. 1B  show conventional bitstream switching with direct switching. In  FIG. 1A , as the client&#39;s available bandwidth decreases, bitstreams transmitted by server are switched from high bitrate bitstreams (H) to low bitrate bitstreams (L). The dotted blocks P H1 , P H2 , P L3 , P L4 , and P L5  in  FIG. 1A  are frames received by the client. In  FIG. 1B , as the client&#39;s available bandwidth increases, bitstreams transmitted by server switch from low bitrate bitstreams (L) to high bitrate bitstreams (H). The dotted blocks P L1 , P L2 , P H3 , P H4 , and P H5  in  FIG. 1B  are the frames received by the client. 
     As shown in  FIG. 1A , when bitstreams are switched from high bitrate bitstreams (H) to low bitrate bitstreams (L) at time t, the frames received by the client are the dotted blocks P H1 , P H2 , P L3 , P L4 , and P L5  in sequence. In the encoder, predicted frame P L3  is encoded according to frame P L2 . In the decoder, frame P L3  is decoded according to the decoded frame P H2 . Because of the different reference frames in encoder and decoder, drift occurs at frame P L3 . 
     To avoid drift from bitrate switching, standard H.264 provides seamless bitstream switching. Standard H.264 defines a novel frame type, SP frame. Note that SP frame and P frame are all generated by predicted decoding according to time. 
       FIG. 2A  shows a conventional server switching low bitrate bitstreams (L) to high bitrate bitstreams (H) by SP frame when the client&#39;s available bandwidth increases. The frames received by the client are the dotted blocks P L1 , P L2 , SP LH , P H4 , and P H5  in sequence. Note that the frame at switching point t is encoded to SP frame. SP frame comprises primary SP frames SP H  and SP L , and a secondary SP frame SP LH . Thus, when the bitstream switches, drift errors are avoided by transmitting bridge SP frame SP LH  to client at switching point t. 
     SP frames (SP L , SP H , and SP LH ) are obtained by encoder  300  in  FIG. 3  according to P frame P H3  and the original P frame P L3  at switching point shown in  FIG. 1A . 
     Encoder  300  comprises low bitrate encoding unit  310 , high bitrate encoding unit  350 , and bridge frame encoding unit  340 , and generates SP frames SP H , SP L , and SP LH  according to P frame P H3  and P L3 . 
     Low bitrate encoding unit  310  comprises transformation unit  312 , adder  314 , quantization unit  316 , statistic encoding unit  318  and feedback circuit  320 . Transformation unit  312  receives P frame P L3  and performs discrete cosine transformation to generate signal X 11 . Adder  314  is coupled to transformation unit  312 , and subtracts signal X 12  from signal X 11 . Quantization unit  316  is coupled to adder  314 , and quantifies the output of adder  314  to generate signal X 13 . Statistic encoding unit  318  is coupled to quantization unit  316 , and statistically encodes signal X 13  and motion vector MV to generate SP frame SP L . Feedback circuit  320  is coupled between quantization unit  316  and adder  314 , and generates signals X 12  and X 14  according to signal X 13 . Note that transformation unit  312  can be a discrete cosine transformation unit, and statistic encoding unit  318  comprises entropy coding unit and variable length coding (VLC) unit, and motion vector MV is motion vector of P frame P L3 . 
     Feedback circuit  320  comprises dequantization unit  322 , adder  324 , requantization units  326  and  330 , and signal processing unit  328 . Dequantization unit  322  is coupled to quantization unit  316 , receives signal X 13  and dequantizes the signal X 13 . Adder  324  is coupled to dequantization unit  322 , and adds the output of dequantization unit  322  and signal X 14 . Requantization unit  326  is coupled between adder  324  and signal processing unit  328 , and re-quantizes the output of adder  324  through quantization unit  3261  and dequantization unit  3263 . Signal processing unit  328  is coupled to requantization unit  326 , and generates signal X 14  through inverse transformation unit  3281 , filter  3282 , memory device  3283 , compensation unit  3284  and transformation unit  3285  according to the output of requantization unit  326 . Inverse transformation unit  3281  is coupled to requantization unit  326 , and dequantizes the output of requantization unit  326 . Filter  3282  is coupled to inverse transformation unit  3281 , filters the output of inverse transformation unit  3281  and stores the filter result to memory device  3283 . Compensation unit  3284  is coupled to memory device  3283 , and compensates the output of filter  3282  according to motion vector MV. Transformation unit  3285  is coupled to compensation unit  3284 , and performs discrete cosine transformation on the output of compensation unit  3284  to generate signal X 14 . Requantization unit  330  is coupled between transformation unit  3285  and adder  314 , and re-quantizes signal X 14  through quantization unit  3301  and dequantization unit  3303  to generate signal X 12 . 
     Note that quantization unit  3261  and dequantization unit  3263  of requantization unit  326  and quantization unit  3301  and dequantization unit  3303  of requantization unit  330  have the same quantization parameter, and quantization unit  316  and dequantization unit  322  have the same quantization parameter. The quantization parameters of requantization unit  326  and requantization unit  330  are preferably smaller than those of quantization unit  316  and dequantization unit  322 . Inverse transformation unit  3281  is an inverse discrete cosine transformation unit, and transformation unit  3285  is a discrete cosine transformation unit. Filter  3282  can be a loop filter, and compensation unit  3284  is a motion compensator. 
     High bitrate encoding unit  350  comprises transformation unit  352 , adder  354 , quantization unit  356 , statistic encoding unit  358  and feedback circuit  360 . Transformation unit  352  receives P frame P H3  and performs discrete cosine transformation to generate signal X 21 . Adder  354  is coupled to transformation unit  352 , and subtracts signal X 22  from signal X 21 . Quantization unit  356  is coupled to adder  354 , and quantifies the output of adder  354  to generate signal X 23 . Statistic encoding unit  358  is coupled to quantization unit  356 , and statistically encodes signal X 23  and motion vector MV to generate SP frame SP H . Feedback circuit  360  is coupled between quantization unit  356  and adder  354 , and generates signals X 22  and X 24  according to signal X 23 . Note that transformation unit  352  can be a discrete cosine transformation unit, and statistic encoding unit  358  comprises entropy coding unit and variable length coding (VLC) unit, and motion vector MV is motion vector of P frame P L3 . 
     Feedback circuit  360  comprises dequantization unit  362 , adder  364 , requantization units  366  and  370 , and signal processing unit  368 . Dequantization unit  362  is coupled to quantization unit  356 , receives signal X 23  and dequantizes the signal X 23 . Adder  364  is coupled to dequantization unit  362 , and adds the output of dequantization unit  362  and signal X 25 . Requantization unit  366  is coupled between adder  364  and signal processing unit  368 , and re-quantizes the output of adder  364  through quantization unit  3661  and dequantization unit  3663  to generate signals X 24  and X 26 . Signal processing unit  368  is coupled to requantization unit  366 , and generates signal X 25  through inverse transformation unit  3681 , filter  3682 , memory device  3683 , compensation unit  3684  and transformation unit  3685  according to signal X 26 . Inverse transformation unit  3681  is coupled to requantization unit  366 , and dequantizes signal X 26 . Filter  3682  is coupled to inverse transformation unit  3681 , filters the output of inverse transformation unit  3681  and stores the filter result to memory device  3683 . Compensation unit  3684  is coupled to memory device  3683 , and compensates the output of filter  3682  according to motion vector MV. Transformation unit  3685  is coupled to compensation unit  3684 , and performs discrete cosine transformation on the output of compensation unit  3684  to generate signal X 25 . Requantization unit  370  is coupled between transformation unit  3685  and adder  354 , and re-quantizes signal X 25  through quantization unit  3701  and dequantization unit  3703  to generate signal X 22 . 
     Note that quantization unit  3661  and dequantization unit  3663  of requantization unit  366  and quantization unit  3701  and dequantization unit  3703  of requantization unit  370  have the same quantization parameter, and quantization unit  356  and dequantization unit  362  have the same quantization parameter. The quantization parameters of requantization unit  366  and requantization unit  370  are preferably smaller than those of quantization unit  356  and dequantization unit  362 . Inverse transformation unit  3681  is an inverse discrete cosine transformation unit, and transformation unit  3685  is a discrete cosine transformation unit. Filter  3682  can be a loop filter, and compensation unit  3684  is a motion compensator. 
     Bridge frame encoding unit  340  comprises quantization unit  342 , adder  344 , and statistic encoding unit  346 . Quantization unit  342  quantifies signal X 14 . Adder  344  subtracts the output of quantization unit  342  from signal X 24 . Statistic encoding unit  346  statistically encodes the output of adder  344  according to motion vector MV to generate SP frame SP LH . 
       FIG. 2B  shows a conventional server switching high bitrate bitstreams (H) to low bitrate bitstreams (L) by SP frame when the client&#39;s available bandwidth decreases. The frames received by the client are the dotted blocks P H1 , P H2 , SP HL , P L4 , and P L5  in sequence. Note that bridge frame SP HL  transmitted to client at switching point t is different with the bridge frame SP LH  of  FIG. 2A . 
     The seamless bitstream switching is achieved by the encoder  300  defined by H.264. Requantization units  326  and  330  of low bitrate encoding unit  310  and requantization units  366  and  370  of high bitrate encoding unit  350  with large quantization parameters decrease data size of the bitstream of SP frame SP LH , however, encoding efficacy of SP frame SP H  and SP L  is also decreased. 
     BRIEF SUMMARY OF INVENTION 
     Encoders and image encoding methods are provided. An exemplary embodiment of an encoder comprises a first encoding unit coupled to a third encoding unit, discrete cosine transforming an input frame, quantizing the transformation result, and generating a first frame according to a motion vector, wherein the first encoding unit comprises a first feedback unit dequantizing the transformation result, generating a processing signal and a first reconstruction signal according to the dequantization result, and requantizing the processing signal to generate a requantization signal, and a second encoding unit coupled to the third encoding unit, encoding according to the first reconstruction signal to generate a second frame and an encoding signal, wherein the third encoding unit generates a third frame according to the encoding signal and the requantization signal. 
     An exemplary embodiment of an image encoding method comprises discrete cosine transforming an input frame, quantizing the transformation result, and generating a first frame according to a motion vector, dequantizing the transformation result, and generating a processing signal and a first reconstruction signal according to the dequantization result, requantizing the processing signal to generate a requantization signal, encoding according to the first reconstruction signal to generate a second frame and an encoding signal, and generating a third frame according to the encoding signal and the requantization signal. 
     A detailed description is given in the following embodiments with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
         FIG. 1A  and  FIG. 1B  show conventional bitstream switching with direct switching; 
         FIG. 2A  shows a conventional server switching low bitrate bitstreams (L) to high bitrate bitstreams (H) by SP frame when a client&#39;s available bandwidth increases; 
         FIG. 2B  shows a conventional server switching high bitrate bitstreams (H) to low bitrate bitstreams (L) by SP frame when a client&#39;s available bandwidth decreases; 
         FIG. 3  is a block diagram of conventional encoder  300 ; 
         FIG. 4A  shows a server switching high bitrate bitstreams (H) to low bitrate bitstreams (L) by SS frame when a client&#39;s available bandwidth decreases; 
         FIG. 4B  shows a server switching low bitrate bitstreams (L) to high bitrate bitstreams (H) by SS frame when a client&#39;s available bandwidth increases; and 
         FIG. 5  is a block diagram of conventional encoder  500  according to an embodiment of the invention; and 
         FIG. 6  shows encoding efficiency of high bitrate bitstreams respectively using SS frames, SP frames, and P frames. 
     
    
    
     DETAILED DESCRIPTION OF INVENTION 
     The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
       FIG. 4A  shows a server switching high bitrate bitstreams (H) to low bitrate bitstreams (L) by SS frame when a client&#39;s available bandwidth decreases. The frames received by the client are the dotted blocks P H1 , SS HL , SS L , P L3 , P L4 , and P L5  in sequence. In  FIG. 4A , the block marked by dotted line at switching point t indicates the switching window for bitstream switching. The frames in the switching window are encoded as SS frame, wherein SS H  and SS L  are primary SS frames, and SS HL  is a secondary SS frame. 
     In an embodiment of the invention, the server not only transmits the bitstream of secondary SS frame (SS HL  as an example), but also the bitstream of low bitrate SS frame (SS L  as an example) and motion vector of high bitrate SS frame to the client. Thus, Low bitrate encoding unit decodes SS frame SS L  according to the received information, achieving seamless bitstream switching. 
     SS frames (SS L , SS H , and SS HL ) are obtained by encoder  500  in  FIG. 5  according to the original P frame P H2  at switching point shown in  FIG. 1A . 
     Encoder  500  comprises high bitrate encoding unit  510 , low bitrate encoding unit  550 , and bridge frame encoding unit  540 , and generates SS frames SS H , SS L , and SP HL  according to P frame P H2 . 
     High bitrate encoding unit  510  comprises transformation unit  512 , adder  514 , quantization unit  516 , statistic encoding unit  518  and feedback circuit  520 . Transformation unit  512  receives P frame P H2  and performs discrete cosine transformation to generate signal X 51 . Adder  514  is coupled to transformation unit  512 , and subtracts signal X 52  from signal X 51 . Quantization unit  516  is coupled to adder  514 , and quantifies the output of adder  514  to generate signal X 53 . Statistic encoding unit  518  is coupled to quantization unit  516 , and statistically encodes signal X 53  and motion vector MV to generate SS frame SS H . Feedback circuit  520  is coupled between quantization unit  516  and adder  514 , and generates signals X 52  and X 54  according to signal X 53 . Note that transformation unit  512  can be a discrete cosine transformation unit, and statistic encoding unit  518  comprises entropy coding unit and variable length coding (VLC) unit, and motion vector MV is motion vector of P frame P H2 . 
     Feedback circuit  520  comprises dequantization unit  522 , adder  524 , requantization unit  530 , and signal processing unit  528 . Dequantization unit  522  is coupled to quantization unit  516 , receives signal X 53  and dequantizes the signal X 53 . Adder  524  is coupled to dequantization unit  522 , and adds the output of dequantization unit  522  and signal X 52 . Signal processing unit  528  is coupled to adder  524 , and generates signal X 55  through inverse transformation unit  5281 , filter  5282 , memory device  5283 , compensation unit  5284  and transformation unit  5285  according to the output of adder  524 . Inverse transformation unit  5281  is coupled to adder  524 , and dequantizes the output of adder  524 . Filter  5282  is coupled to inverse transformation unit  5281 , filters the output of inverse transformation unit  5281  and stores the filter result to memory device  5283 . Compensation unit  5284  is coupled to memory device  5283 , and compensates the output of filter  5282  according to motion vector MV. Transformation unit  5285  is coupled to compensation unit  5284 , and performs discrete cosine transformation on the output of compensation unit  5284  to generate signal X 55 . Requantization unit  530  is coupled between transformation unit  5285  and adder  514 , and re-quantizes signal X 55  through quantization unit  5301  and dequantization unit  5303  to generate signal X 52 . 
     Note that quantization unit  5301  and dequantization unit  5303  of requantization unit  530  have the same quantization parameters, and quantization unit  516  and dequantization unit  522  have the same quantization parameter. The quantization parameters of requantization unit  530  are preferably smaller than those of quantization unit  516  and dequantization unit  522 . Inverse transformation unit  5281  is an inverse discrete cosine transformation unit, and transformation unit  5285  is a discrete cosine transformation unit. Filter  5282  can be a loop filter, and compensation unit  5284  is a motion compensator. 
     Low bitrate encoding unit  550  comprises transformation unit  552 , adder  554 , quantization unit  556 , statistic encoding unit  558  and feedback circuit  560 . Transformation unit  552  receives the output (reconstruction signal H rec ) of filter  5282  and performs discrete cosine transformation on H rec  to generate signal X 61 . Adder  554  is coupled to transformation unit  552 , and subtracts signal X 62  from signal X 61 . Quantization unit  556  is coupled to adder  554 , and quantifies the output of adder  554  to generate signal X 63 . Statistic encoding unit  558  is coupled to quantization unit  556 , and statistically encodes signal X 63  and motion vector MV to generate SS frame SS L . Feedback circuit  560  is coupled between quantization unit  556  and adder  554 , and generates signals X 62  and X 64  according to signal X 63 . Note that transformation unit  552  can be a discrete cosine transformation unit, and statistic encoding unit  558  may be an entropy coding unit or a variable length coding (VLC) unit, and motion vector MV is motion vector of P frame P L2 . 
     Feedback circuit  560  comprises dequantization unit  562 , adder  564 , requantization unit  570 , and signal processing unit  568 . Dequantization unit  562  is coupled to quantization unit  556 , receives signal X 63  and dequantizes the signal X 63 . Adder  564  is coupled to dequantization unit  562 , and adds the output of dequantization unit  562  and signal X 62 . Signal processing unit  568  is coupled to adder  564 , and generates signal X 65  through inverse transformation unit  5681 , filter  5682 , memory device  5683 , compensation unit  5684  and transformation unit  5685  according to signal X 66 . Inverse transformation unit  5681  is coupled to adder  564 , and dequantizes signal X 66 . Filter  5682  is coupled to inverse transformation unit  5681 , filters the output of inverse transformation unit  5681  and stores the filter result to memory device  5683 . Compensation unit  5684  is coupled to memory device  5683 , and compensates the output of filter  5682  according to motion vector MV. Transformation unit  5685  is coupled to compensation unit  5684 , and performs discrete cosine transformation on the output of compensation unit  5684  to generate signal X 65 . Requantization unit  570  is coupled between transformation unit  5685  and adder  554 , and re-quantizes signal X 65  through quantization unit  5701  and dequantization unit  5703  to generate signal X 62 . 
     Note that quantization unit  5701  and dequantization unit  5703  of requantization unit  570  have the same quantization parameter, and quantization unit  556  and dequantization unit  562  have the same quantization parameter. The quantization parameters of requantization unit  570  are preferably smaller than those of quantization unit  556  and dequantization unit  562 . Inverse transformation unit  5681  is an inverse discrete cosine transformation unit, and transformation unit  5685  is a discrete cosine transformation unit. Filter  5682  can be a loop filter, and compensation unit  5684  is a motion compensator. 
     Bridge frame encoding unit  540  comprises adder  542  and statistic encoding unit  544 . Adder  542  subtracts signal X 54  from signal X 64 . Statistic encoding unit  544  statistically encodes the output of adder  542  and generates SS frame SS HL . 
       FIG. 4B  shows a server switching low bitrate bitstreams (L) to high bitrate bitstreams (H) by SS frame when the client&#39;s available bandwidth increases. The frames received by the client are the dotted blocks P L1 , SS LH , SP H , P H3 , P H4  and P H5  in sequence. Note that during bitstream switching, bridge frame SS LH  transmitted to client at switching point t is the same with the bridge frame SS HL  of  FIG. 4A . 
       FIG. 6  shows encoding efficiency of high bitrate bitstreams respectively using SS frames, SP frames, and P frames. As shown, encoding efficiency of high bitrate bitstreams is decreased by the two requantization units in encoder  300  when using SP. Thus, the encoder  500  according to an embodiment of the invention removes one requantization unit in encoder  300 , and rearranges the method to generate bridge frame. As shown, encoding efficiency of high bitrate bitstreams using the SS frame disclosed by an embodiment of the invention is closed to that using P frame, and achieves seamless bitstream switching. In addition, irrespective of whether the bitrate of bitstream is switched from high to low or low to high, the identical bridge frame SS HL (=SS LH ) is used, without generating different types of frames, such as frames SP LH  and SP HL  in  FIGS. 2A and 2B . 
     While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. Those skilled in the technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents.