Background technology
Digital video is compressed usually so that store and broadcast.Compressed video is compared to original, not compressed video content, can and use lower bandwidth for transmission in less space stored, thereby reduce storage and transmission requirements.
Digital video comprises the sequential picture of playing with constant rate of speed (for example, 30 images/sec).The usual way of compressed digital video is the redundancy of utilizing between these sequential pictures, for example the redundancy on time or the space.Because can have a lot of identical contents in video sequence between the consecutive image, the difference of only transmitting between the consecutive image is useful.Be called as predication error frame E
nDifference frame can be by present frame I
nReference frame P with one of previous coded frame
nBetween difference define, thereby this predication error frame is
E
n(x,y)=I
n(x,y)-P
n(x,y)
Wherein, n is frame number and (x, y) remarked pixel coordinate.In typical Video Codec, this difference frame is compressed before transmission.Compression can be by discrete cosine transform (DCT), huffman coding or similarly method realization.
Because compressed video comprises motion, two width of cloth consecutive images subtract each other can not obtain minimum difference.For example, when video camera when shaking, whole scene is all changing.Compensate this motion, ((x, y), Δ y (x, y)) is added in the coordinate of previous frame Δ x, thereby this predicated error becomes to be commonly referred to the displacement of motion vector
E
n(x,y)=I
n(x,y)-P
n(x+Δx(x,y),y+Δy(x,y))
Any pixel of this previous frame can be deducted from the pixel of this present frame, thereby the predicated error that obtains like this is less.Yet to obtain motion vector not pratical and feasible usually for each pixel, because this need be each pixel transmitting moving vector.Thereby a motion vector general proxy is commonly called a large amount of continuous pixel of pixel " piece ".
Summary of the invention
According to the embodiment of the present invention, the method that is used for motion-vector prediction in scalable video coding can comprise the current block that is identified in when anterior layer, acquisition is corresponding to the adjacent motion vectors adjacent to the piece of the current block in deserving anterior layer, determine final base layer motion vector, calculate motion vectors based on this adjacent motion vectors or this final base layer motion vector.This method may further include this adjacent motion vectors of identification or this final base layer motion vector, is used for motion vectors and calculates.Identification can comprise the consistency of determining in the adjacent motion vectors of working as anterior layer, and the reliability of definite motion-vector prediction.Identification can also comprise analysis this adjacent motion vectors at basic layer.
This method can also comprise the reference frame index of acquisition corresponding to each adjacent motion vectors in deserving anterior layer, the reference frame index of this adjacent motion vectors and the reference frame index of current block are compared, and use and this current block has the current layer motion vector of same reference frame index to calculate this motion vectors.This method can also comprise that the reference frame index with the reference frame index of this final base layer motion vector and current block compares, if and the reference frame index of this final base layer motion vector is identical with the reference frame index of this current block, then use this final base layer motion vector to calculate this motion vectors.
Calculate motion vectors and can also comprise that use is in the adjacent motion vectors of deserving anterior layer and this motion vectors of combination calculation of this final base layer motion vector.The consistency of determining adjacent motion vectors can comprise the compute vectors distance.Determine that final base layer motion vector can comprise that the number of putting (co-located) base layer motion vector altogether that is identified for current block equals one or greater than one, when the number of putting base layer motion vector altogether that is used for current block equals for the moment, select single to put base layer motion vector altogether as this final base layer motion vector, when the number of putting base layer motion vector altogether that is used for current block greater than for the moment, these are put base layer motion vector altogether carry out arithmetical operation, and the result who selects this operation that counts is as this final base layer motion vector.
This arithmetical operation can be this to be put base layer motion vector altogether ask on average, or to this put altogether base layer motion vector ask in (median).Put altogether on the base layer motion vector at this and to carry out this arithmetical operation and can comprise that obtaining this puts the reference frame index of base layer motion vector altogether, this is put the reference frame index of base layer motion vector altogether and the reference frame index of current block compares, and only put altogether and carry out this arithmetical operation when base layer motion vector has identical reference frame index with this current block when this.Ask and on average can comprise putting the block size of base layer motion vector altogether and this being put base layer motion vector altogether and be weighted according to this.Can comprise in asking putting the block size of base layer motion vector altogether and this being put base layer motion vector altogether and be weighted according to this.
This method can also comprise the generation signal, and this signal is indicated this adjacent motion vectors or should final basic layer fortune decide vector whether be used to calculate this motion vectors.Generate signal and can comprise that the use arithmetic coding generates signal.The context selection that is used for this arithmetic coding can be based on the consistency in the adjacent motion vectors of deserving anterior layer.The reliability of motion-vector prediction selected to depend in the context that is used for this arithmetic coding.The reliability of this motion-vector prediction can be used to the adjacent motion vectors from basic layer.
The method of decoding motion vectors can comprise received signal in scalable video coding, this signal indication is in the generation of this motion vectors, use final base layer motion vector and the adjacent motion vectors in working as anterior layer, calculate this motion vectors, and, from this motion vectors, be identified for the motion vector of this current block based on this final base layer motion vector and this adjacent motion vectors.The use of this adjacent motion vectors is based on the consistency of this adjacent motion vectors, also based on the reliability of using the motion-vector prediction of adjacent motion vectors at basic layer.
According to the embodiment of the present invention, the equipment that is used for motion-vector prediction in scalable video coding can comprise the memory cell that is used to store current layer motion vector, and is configured to be used for determining final base layer motion vector and calculate the processor of motion vectors based on deserving preceding layer motion vector and this final base layer motion vector.Layer motion vector can be based in the consistency when the adjacent motion vectors of anterior layer to calculate this motion vectors before use deserving, and the reliability of using the motion-vector prediction of adjacent motion vectors at basic layer.This processor can be determined the consistency of adjacent motion vectors by the compute vectors distance.
According to the embodiment of the present invention, be used for to comprise the memory cell that is used to store motion vectors at the equipment of scalable video coding decoding motion vectors, the receiving element that is used for received signal, this signal indication has been used final base layer motion vector and current layer motion vector in generating this motion vectors, and the processor that is connected to this receiving element, this processor is configured to use this final basic exercise vector and deserves preceding layer motion vector and determine motion vector as current block from this motion vectors.This memory cell can also be stored in the consistency when the adjacent motion vectors of anterior layer, and the reliability of using the motion-vector prediction of adjacent motion vectors at basic layer.
According to the embodiment of the present invention, the system that is used for the motion-vector prediction Code And Decode in scalable video coding can comprise the receiving element that is used to receive current layer motion vector and puts base layer motion vector altogether, and be configured to be used to use this to put base layer motion vector altogether and determine final base layer motion vector, and calculate the processing unit of motion vectors based on current layer motion vector and final base layer motion vector.This receiving element and this processing unit can be deployed on the mobile device.This mobile device can be a mobile phone.
According to the embodiment of the present invention, a kind of computer program can comprise that having record being used to thereon makes processor generate the computer usable medium of the computer program logic of the motion vectors that is used for scalable video coding, wherein this computer program logic can comprise and makes this processor obtain at the procurement process when the adjacent motion vectors of anterior layer, make this processor determine definite process of final base layer motion vector, and make this processor calculate the computational process of motion vectors based on this adjacent motion vectors and this final base layer motion vector.Can be based in consistency for calculating this motion vectors when the adjacent motion vectors of anterior layer to the use of this adjacent motion vectors, and the reliability of using the motion-vector prediction of adjacent motion vectors at basic layer.
According to the embodiment of the present invention, this computer program can comprise that having record being used for thereon makes the computer usable medium of processor at the computer program logic of scalable video coding decoding motion vectors, wherein this computer program logic can comprise that making this processor receive indication uses first receiving course of the signal of final base layer motion vector and current layer motion vector in the generation of this motion vectors, and make this processor based on this final base layer motion vector and before deserving layer motion vector from this motion vectors, determine definite process of motion vector for current block.
According to the embodiment of the present invention, the method that is used for determining final base layer motion vector can comprise that the number of putting base layer motion vector altogether that is identified for current block equals one or greater than one, when this number of putting base layer motion vector altogether that is used for current block equals for the moment, select single to put base layer motion vector altogether as this final base layer motion vector, when this number of putting base layer motion vector altogether that is used for current block greater than for the moment, this is put base layer motion vector altogether carry out arithmetical operation, and the result who selects this arithmetical operation is as this final base layer motion vector.This is put base layer motion vector execution arithmetical operation altogether can comprise that obtaining this puts the reference frame index of base layer motion vector altogether, this reference frame index of putting base layer motion vector is altogether compared with the reference frame index of current block, and only put base layer motion vector altogether when having the reference frame index identical with this current block when this, carry out this arithmetical operation.
Embodiment
In the description related to the preferred embodiment, the accompanying drawing that forms a part of describing is quoted, and in this description, this accompanying drawing is shown below by implementing the mode that is exclusively used in the execution mode of describing of the present invention therein.Should be appreciated that, can utilize other execution mode, also can make the change of structure and do not break away from the scope of preferred implementation of the present invention.
In adjustable video coding, when anterior layer can be enhancing on spatial resolution, temporal resolution and picture quality.In the following discussion, term " basic layer " can be the absolute basic layer that generates by such as the non-adjustable codec that defines in standard H.264, or the enhancement layer that uses as the basis of the current enhancement layer that is used to encode.In addition, in the following discussion, when the motion vector that uses from the basic layer in space, suppose to have carried out the motion vector up-sampling.
Embodiments of the present invention can be used for multiple application, environment, system or the like.For example, Fig. 1 shows example system 10, and embodiments of the present invention can be utilized therein.This system 10 shown in Fig. 1 can comprise a plurality of communication equipments, this for example the communication equipment of honeycomb or mobile phone 12 and 14 can communicate by network.This system 10 can comprise any combination of wired or wireless network, this wired or wireless network includes but not limited to cellular phone network, WLAN (wireless local area network) (LAN), Bluetooth personal regional network, Ethernet, token ring local area network (LAN), wide area network, internet or the like.This system 10 can comprise wired and Wireless Telecom Equipment simultaneously.
Fig. 2 is the block diagram of exemplary video encoder 50, wherein can implement embodiments of the present invention.As shown in Figure 2, this encoder 50 receives the input signal 68 of indication primitive frames, and the signal 74 of the video data that indication encoded is provided to the transmission channel (not shown).This encoder 50 can comprise carries out the motion estimation block 60 of crossing over a plurality of layers estimation and generating one group of prediction.Resulting exercise data 80 is passed to motion compensation block 64.This motion compensation block 64 can form the image 84 of prediction.Module 66 deducts from primitive frame because the image 84 of this prediction is combined, surplus 70 is provided for transform and quantization piece 52, and this transform and quantization piece 52 is carried out transform and quantization and sent to de-quantization and inverse transform block 56 and entropy coder 54 with the data 72 that reduce after data volume also will quantize.The output of making up from de-quantization and inverse transform block 56 and motion compensation block 64 by combiner 82 forms reconstruction frames.After rebuilding, this reconstruction frames can be sent to frame storage 58.The video data 74 that this entropy coder 54 advances to have encoded with this surplus and exercise data 80 codings.
Fig. 3 is the block diagram that can realize the exemplary video decoder 90 of embodiments of the present invention therein.In Fig. 3, decoder 90 can use entropy decoder 92 to be decoded as decoded quantized data 108 from the video data 104 of transmission channel.Exercise data 106 is also sent to de-quantization and inverse transform block 96 from this entropy decoder 92.The data that this de-quantization and inverse transform block 96 can quantize this then are converted to surplus 110.Exercise data 106 from entropy coder 92 is sent to motion compensation block 94 to form predicted picture 114.Use this from the predicted picture 114 of motion compensation block 94 and from this surplus 110 of de-quantization and inverse transform block 96, composite module 102 can provide the signal 118 of the video image that indication rebuild.
According to the embodiment of the present invention, when at basic layer place but a plurality of putting altogether the motion vector time spent being arranged for current block, determine to be hereinafter referred to as final base layer motion vector (FBLM vector) be used for the base layer motion vector of current block motion prediction the time, will consider all these motion vectors.
When anterior layer being temporal resolution or picture quality enhancement layer, deserving each macro block on the anterior layer and have identical size corresponding to the macro block on this basic layer.In the case, depend on the piece compartment model that deserves the macro block on the anterior layer, may on this current basic layer, have a plurality of motion vectors of putting altogether to use.For example, in Fig. 4 A, if the piece compartment model in enhancement layer macro block 120 is 16 * 16, then corresponding to whole 6 motion vectors at 6 pieces shown in the basic layer macro block 122 be considered to be used for this current 16 * 16 120 put motion vector altogether.Similarly, shown in Fig. 4 B, if the piece compartment model in this enhancement layer macro block 124 is 8 * 16, so 8 * 16 of this left side have 5 from this basic layer macro block 126 put motion vector altogether, and 8 * 16 of this right side have from this basic layer macro block 126 1 put motion vector altogether.
When this current block is the spatial resolution enhancement layer, each macro block on the anterior layer can corresponding to, for example, the zone of 1/4th sizes in the macro block on basic layer.In the case, the macro block zone of 1/4th sizes on this basic layer can be up-sampled to macroblock size and motion vector that should correspondence also can amplify 2 times in proportion.Depend on piece compartment model, may have a plurality of motion vectors of putting altogether to use at this basic layer at the macro block on anterior layer.For example, shown in Fig. 4 C, if being used for the piece compartment model of enhancement layer macro block 130 is 16 * 16, then corresponding to whole 3 motion vectors at 3 pieces shown in the basic layer macro block 132 be considered to be used for this current 16 * 16 130 put motion vector altogether.Similarly, shown in Fig. 4 D, if this piece compartment model is 16 * 8, so 16 * 8 of these enhancement layer macro block 136 upsides have 2 from this basic layer 138 put motion vector altogether, 1 from piece 1 and another is from piece 2.And 16 * 8 of this enhancement layer macro block 136 downsides also have from this basic layer 138 2 put motion vector altogether, one from piece 1 and another is from piece 3.
Fig. 5 shows according to the embodiment of the present invention, is used to calculate the general flow chart of motion vectors.In step 150, obtain to be used for the current layer motion vector of current block.
In step 152, determine final base layer motion vector.Fig. 6 shows according to the embodiment of the present invention, is used for determining the general flow chart of final base layer motion vector from putting motion vector altogether.Referring to Fig. 6, in step 160, at the available number of determining at the current block of this enhancement layer from basic layer of putting vector altogether.In step 162,, then select this motion vector as this final base layer motion vector in step 164 if only have one at the available vector of putting altogether from basic layer at the current block of this enhancement layer.
Otherwise, in step 162, if, then can check their reference frame index in step 166 at deserving putting motion vector altogether from this basic layer available and having a plurality ofly of anterior layer.Each motion vector can have the reference frame index that is associated with it.This reference frame index is indicated the frame number of this reference frame of this motion vector indication.Along with current block is encoded, give priority to motion vector with same reference frame index.Thereby, in step 168,, be used to calculate this final base layer motion vector at these motion vectors of step 170 so if the available motion vector of putting altogether has the reference frame index identical with this current block on this basic layer.According to the embodiment of the present invention, can calculate this final base layer motion vector by the multiple mode of using these motion vectors.Vector average that for example, this can be had the reference frame index identical with this current block as this final base layer motion vector.As another example, a plurality ofly put motion vector altogether and calculate this final base layer motion vector what have a reference frame index identical from these, in can using with this current block.In step 174, reference frame index that can this final base layer motion vector is set to the value identical with the reference frame index of this current block.
Get back to step 168, if on this basic layer available putting altogether neither one has the reference frame index identical with this current block in the motion vector, so in step 172, use these motion vectors to calculate this final base layer motion vector.As previously mentioned, can calculate this final base layer motion vector by the multiple mode of using these motion vectors, such as, for example, use the average of these motion vectors or in.In step 176, reference frame index that can this final base layer motion vector is set to the value inequality with the reference frame index of this current block.
According to the embodiment of the present invention, a plurality of when putting base layer motion vector average or middle altogether when calculating, consider the piece partition size of this motion vector.For example, the motion vector that has relatively large size in calculating can be endowed bigger weight.For example, referring to Fig. 4 A, if corresponding to whole six motion vector (Δ x of each piece
1, Δ y
1), (Δ x
2, Δ y
2) ..., (Δ x
6, Δ y
6) all be used to calculate final base layer motion vector, then motion vector (Δ x
5, Δ y
5) may be endowed 8 times of weights to piece 1,2,3 and 4.Similarly, motion vector (Δ x
6, Δ y
6) may be endowed 4 times of weights to piece 1,2,3 and 4.
Referring to Fig. 5, can whether can be used to calculate this motion vectors with definite use in similitude of deserving anterior layer inspection adjacent motion vectors or consistency to layer motion vector before deserving in step 154.When adjacent motion vectors was similar each other, it was considered to be used for the candidate preferably of motion-vector prediction.Can check the similitude or the consistency of this adjacent motion vectors with multiple mode.For example, according to the embodiment of the present invention, can use vector distance as similitude or conforming tolerance to this adjacent motion vectors.For example, use motion vector (Δ x
1, Δ y
1), (Δ x
2, Δ y
2) ..., (Δ x
n, Δ y
n) motion vectors that obtained can be by (Δ x
p, Δ y
p) expression.Can be to conforming tolerance by these vectors (Δ x
1, Δ y
1), (Δ x
2, Δ y
2) ..., (Δ x
n, Δ y
n) and this motion vectors (Δ x
p, Δ y
p) variance and define.
In step 156, can check the reliability of using the motion-vector prediction of adjacent vector at basic layer, whether reliable to point out to use if deserving this motion vectors of anterior layer motion vector computation.Can check the reliability of motion-vector prediction with multiple mode.For example, according to the embodiment of the present invention, the reliability of motion-vector prediction can be measured by poor (vector increment) between the motion vector of the motion vectors of putting piece in this basic layer at this altogether and this coding.If basic layer use adjacent vector and the motion vectors calculated for this basic layer inaccuracy, then probably the adjacent vector of this use and the motion vectors calculated for should anterior layer also inaccuracy.
Referring to Fig. 5,, determined this motion vectors now in step 158.Can from or deserve before calculate this motion vectors the two the combination of layer motion vector or this final base layer motion vector or this.
According to the embodiment of the present invention, but when when the adjacent motion vectors at anterior layer place and this final base layer motion vector the two for calculating this motion vectors time spent all, and, have the reference frame index identical if wherein only there is one with this current block, then can give bigger weight of this vector or higher priority, and elect it as this motion vectors with reference frame index identical with current block.Otherwise, can determine this motion vectors by based on selecting to have this motion vector of big weight or higher priority in the similitude of the adjacent motion vectors of deserving anterior layer or consistency and in the reliability of the motion-vector prediction of this basic layer.
In addition, can just send signal to the decoder that for example uses arithmetic coding for the selection to current motion vector or this final base layer motion vector of calculating motion vectors.In this case, context can depend on when the consistency of the adjacent motion vectors of anterior layer and in the reliability of the motion-vector prediction of the use adjacent motion vectors of basic layer.
Thereby, use embodiments of the present invention, can calculate motion vectors adaptively.Thereby, remove or reduced the indication motion vector by the coding maker position needed overall overhead of selecting from which layer.Then improved coding efficiency.
When illustrating or describing specific implementations of the present invention, for a person skilled in the art, obviously the present invention is not limited to the specific execution mode that this is showed and describes, and can not break away from the spirit and scope of appended claims and make a change and adjust.