CN102595110B - Video coding method, decoding method and terminal - Google Patents

Video coding method, decoding method and terminal Download PDF

Info

Publication number
CN102595110B
CN102595110B CN201110004025.5A CN201110004025A CN102595110B CN 102595110 B CN102595110 B CN 102595110B CN 201110004025 A CN201110004025 A CN 201110004025A CN 102595110 B CN102595110 B CN 102595110B
Authority
CN
China
Prior art keywords
motion vector
counter
backward
candidate motion
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110004025.5A
Other languages
Chinese (zh)
Other versions
CN102595110A (en
Inventor
杨名远
林四新
宋锦
于浩平
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201110004025.5A priority Critical patent/CN102595110B/en
Priority to PCT/CN2011/084817 priority patent/WO2012094944A1/en
Publication of CN102595110A publication Critical patent/CN102595110A/en
Application granted granted Critical
Publication of CN102595110B publication Critical patent/CN102595110B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

An embodiment of the invention discloses a video coding method, a decoding method, and a terminal for the video coding method and the decoding method. The video coding method comprises the following steps: obtaining an initial candidate motion vector set of current coding block; adding a reverse motion vector into each motion vector in the initial candidate motion vector set; generating a new candidate motion vector set according to the reverse motion vector and the motion vector in the initial candidate motion vector set; and selecting a motion vector for coding from the new candidate motion vector set to code. The candidate motion vector set generated by using the embodiment of the invention includes the reverse motion vector produced for the motion vector; the reverse motion vector is equivalent to the predicted motion vector, as a result, the candidate motion vector set is more complete, the motion vector selected from the candidate motion vector set for coding is more optimal, and the coding performance is improved.

Description

Method for video coding, coding/decoding method and terminal
Technical field
The application relates to communication technical field, particularly relates to a kind of method for video coding, coding/decoding method and terminal.
Background technology
Motion prediction and motion compensation are the important technologies in video compression, a part of bit in compressed video stream is used for transmitting moving Vector Message, special in low bit-rate situation, for HD video, usually exceed 50 percent of the total bit number of code stream for the bit spent by transmitting moving Vector Message.Therefore, need, by selecting optimum motion vector, to improve code efficiency.For the Video coding of continuous dynamic image, continuous some width images being divided into P, B, I three types, for P frame, is carry out distilled edition frame data according to this frame and the difference of adjacent former frame (I frame or P frame); For B frame, be then carry out distilled edition frame according to the difference of adjacent former frame, this frame and rear frame data.For the difference of P frame and B frame, it is when selecting motion vector, and P frame only needs to obtain motion vector set according to its former frame, and B frame can obtain motion vector set according to its former frame and a rear frame.
For P frame, in prior art, a kind of scheme of motion vector of selecting is: in every two field picture, contain some code blocks to be encoded, for a code block to be encoded, motion vector according to this code block periphery code block to be encoded (being often referred to code block, upper left side code block, top code block and upper right side code block on the left of this code block to be encoded) obtains spatial domain candidate motion vector, and according to the median motion vector that these spatial domain candidate motion vectors calculate; Obtain the code block in same position in this code block former frame to be encoded, and four neighborhoods, eight neighborhood code block motion vector, obtain time domain candidate motion vector; The motion vector that one optimum is selected from the set of candidate motion vectors conjunction that above-mentioned spatial domain candidate motion vector, median motion vector and time domain set of candidate motion vectors become, as motion vector to be encoded, the motion vector to be encoded by this and the index information for its distribution enroll in code stream.
In the motion vector set generated for Video coding in prior art, each motion vector is consideration and has there is the motion vector that code block generates, only being difficult to select more excellent motion vector from by existing motion vector that code block obtains, being therefore difficult to improve coding efficiency further.
Summary of the invention
The embodiment of the present application provides a kind of method for video coding, coding/decoding method and terminal, is difficult to choose more excellent motion vector from existing motion vector set to solve, and causes the problem being difficult to improve coding efficiency.
In order to solve the problems of the technologies described above, the embodiment of the present application discloses following technical scheme:
A kind of method for video coding, comprising:
Obtain the initial candidate motion vector set of present encoding block;
For each motion vector in the set of described initial candidate motion vector adds a counter motion vector;
Motion vector in initial candidate motion vector set according to described counter motion vector generates new set of candidate motion vectors and closes;
From described new set of candidate motion vectors is closed, select the motion vector for encoding to encode.
A kind of Video coding terminal, comprising:
Acquiring unit, for obtaining the initial candidate motion vector set of present encoding block;
Adding device, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector;
Generation unit, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Coding unit, selects the motion vector for encoding to encode in closing from described new set of candidate motion vectors.
A kind of video encoding/decoding method, comprising:
Obtain the initial candidate motion vector set of present encoding block;
For each motion vector in the set of described initial candidate motion vector adds a counter motion vector;
Motion vector in initial candidate motion vector set according to described counter motion vector generates new set of candidate motion vectors and closes;
Resolve the code stream received, obtain the information of the motion vector selected by Video coding terminal;
Information according to described motion vector selects corresponding motion vector to decode from described new set of candidate motion vectors is closed.
A kind of video decode terminal, comprising:
Acquiring unit, for obtaining the initial candidate motion vector set of present encoding block;
Adding device, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector;
Generation unit, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Resolution unit, for resolving the code stream received, obtains the information of the motion vector selected by Video coding terminal;
Decoding unit, selects corresponding motion vector to decode for the information according to described motion vector from described new set of candidate motion vectors is closed.
As can be seen from the above-described embodiment, the embodiment of the present application is when the set of candidate motion vectors building Video coding is closed, obtain the initial candidate motion vector set of present encoding block, for each motion vector in the set of initial candidate motion vector adds a counter motion vector, generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector to close, from new set of candidate motion vectors is closed, select the motion vector for encoding to encode.During the set of candidate motion vectors that application the embodiment of the present application generates is closed, include the counter motion vector for motion vector generates, this counter motion vector is equivalent to the motion vector predicted, thus it is more complete to make set of candidate motion vectors close, that therefrom selects is more excellent for the motion vector of encoding, and improves coding efficiency.
Accompanying drawing explanation
In order to be illustrated more clearly in the embodiment of the present application or technical scheme of the prior art, be briefly described to the accompanying drawing used required in embodiment or description of the prior art below, apparently, for those of ordinary skills, under the prerequisite not paying creative work, other accompanying drawing can also be obtained according to these accompanying drawings.
Figure 1A is the first embodiment flow chart of the application's method for video coding;
Figure 1B is that the motion vector of encoding block in the embodiment of the present application B frame selects schematic diagram;
Fig. 1 C is the model schematic of the embodiment of the present application B frame constant velocity linear motion;
Fig. 2 is the second embodiment flow chart of the application's method for video coding;
Fig. 3 is the 3rd embodiment flow chart of the application's method for video coding;
Fig. 4 is the embodiment flow chart of the application's video encoding/decoding method;
Fig. 5 A is the embodiment block diagram of the application's Video coding terminal;
Fig. 5 B is the embodiment block diagram of a kind of adding device in Fig. 5 A;
Fig. 5 C is the embodiment block diagram of another kind of adding device in Fig. 5 A;
Fig. 5 D is the embodiment block diagram of coding unit in Fig. 5 A;
The embodiment block diagram of Fig. 6 the application video decode terminal.
Embodiment
The following embodiment of the present invention provides a kind of method for video coding and device.
Technical scheme in the embodiment of the present invention is understood better in order to make those skilled in the art person, and enable the above-mentioned purpose of the embodiment of the present invention, feature and advantage become apparent more, below in conjunction with accompanying drawing, technical scheme in the embodiment of the present invention is described in further detail.
See Figure 1A, the first embodiment flow chart for the application's method for video coding:
Step 101: the initial candidate motion vector set obtaining present encoding block.
Concrete, periphery encoding block according to present encoding block obtains spatial domain candidate motion vector, the time domain candidate motion vector of present encoding block is obtained according to reference frame, this reference frame can be the former frame of the present frame at present encoding block place, or a rear frame, or former frame and a rear frame, spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
See Figure 1B, for there is bi directional motion compensation characteristic B frame in the motion vector of encoding block select schematic diagram.Suppose that the encoding block mv in present frame is present encoding block, then the periphery encoding block of present encoding block mv is often referred to the left side encoding block mv of the mv shown in Figure 1B a, top encoding block mv b, upper right side encoding block mv c, upper left side encoding block mv d, according to above-mentioned encoding block mv a, mv b, mv c, mv dobtain the spatial domain candidate motion vector of present encoding block mv; Supposing to take reference frame as former frame in present frame is example, then the encoding block of present encoding block mv corresponding position in former frame is mv col, corresponding mv colfour neighborhoods and eight neighborhood encoding block be respectively mv 0to mv 7, according to above-mentioned mv coland mv 0to mv 7obtain the time domain candidate motion vector of mv, in like manner, also can according to the encoding block mv of present encoding block mv corresponding position in a rear frame col' and four neighborhoods and eight neighborhood encoding block mv 0' to mv 7' obtain time domain candidate motion vector.
Step 102: for each motion vector in the set of initial candidate motion vector adds a counter motion vector.
Concrete, can be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model.Predetermined movement model comprises uniform rectilinear motion model or accelerated motion model.
For uniform rectilinear motion model, see Fig. 1 C, it is the model schematic of B frame constant velocity linear motion.Suppose V bbackward motion vector, V fbe forward motion vector, the distance between B frame and forward reference frame is T f, and the distance between backward reference frame is T b, then for the uniform rectilinear motion model shown in Fig. 1 C, every a pair forward motion vector and backward motion vector are when meeting following relation: V f/ T f=-V b/ T b.
In addition, except the uniform rectilinear motion model shown in above-mentioned Fig. 1 C, also can adopt accelerated motion model, now two motion vector V fand V bbetween can meet relation V f=-(V b+ α), wherein α is speed difference.
Step 103: generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector and close.
After having added counter motion vector for the motion vector in the set of initial candidate motion vector, all forward motion vector composition forward direction set of candidate motion vectors in motion vector in added counter motion vector original initial candidate motion vector set are closed, and all backward motion vector form the conjunction of backward set of candidate motion vectors.
Except the above-mentioned mode setting up the conjunction of forward direction set of candidate motion vectors and the conjunction of backward set of candidate motion vectors respectively, also all forward motion vector and backward motion vector can be comprised in a new set of candidate motion vectors is closed, this new set of candidate motion vectors contains some groups of motion vectors in closing, have corresponding forward motion vector and backward motion vector in each group motion vector, each organizes corresponding forward motion vector and backward motion vector can be distinguished by identification information.
Step 104: select the motion vector for encoding to encode from new set of candidate motion vectors is closed.
It can be each motion vector allocation index mark during new set of candidate motion vectors is closed, adopt RDO (Rate Distortion Optimization, rate-distortion optimization criterion) mode selects for being encoded motion vector from new set of candidate motion vectors is closed, and identified by the index of the motion vector of described selection, and enroll code stream according to the information that the motion vector of described selection obtains.
Wherein, the motion vector selected from new set of candidate motion vectors is closed is the immediate motion vectors of true encoding motion vector with encoding terminal, because the amount of information of motion vector itself is larger, if therefore directly transmit true encoding motion vector itself in code stream, then the data volume of compression coding will be increased, reduce the efficiency of compression coding and coding transmission, therefore close by building set of candidate motion vectors, and after therefrom selecting motion vectors, the difference of itself and true motion vector can be obtained according to this motion vectors, this difference is very little compared to the data volume of true encoding motion vector own, therefore this difference is enrolled code stream and just effectively can improve compression coding and coding transmission efficiency.
In addition, encoding terminal also can utilize the motion vector of selection to complete other cataloged procedure, and this process is consistent with prior art, does not repeat them here.
See Fig. 2, be the second embodiment flow chart of the application's method for video coding, this example show the process unifying to judge generation counter motion vector to motion vector:
Step 201: the initial candidate motion vector set obtaining present encoding block.
Periphery encoding block according to present encoding block obtains spatial domain candidate motion vector, the time domain candidate motion vector of present encoding block is obtained according to reference frame, this reference frame can be the former frame of the present frame at present encoding block place, or a rear frame, or former frame and a rear frame, spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
Step 202: judge whether only there is unidirectional motion vector in the set of initial candidate motion vector, if so, then performs step 203; Otherwise, perform step 204.
In initial motion vectors set, comprise the periphery encoding block according to present encoding block, the motion vector that in reference frame, each encoding block obtains, judge whether only there is unidirectional motion vector refers to whether only comprise forward motion vector in the set of initial candidate motion vector herein, or only comprise backward motion vector.
Step 203: for unidirectional motion vector adds counter motion vector respectively, performs step 205.
In initial motion vectors set, if only comprise forward motion vector, then add a backward motion vector for each forward motion vector, if only comprise backward motion vector, then add a forward motion vector for each backward motion vector.Composition graphs 1C is known, every a pair forward motion vector and backward motion vector, when adopting uniform rectilinear motion model, should meet following relation: V f/ T f=-V b/ T b.
Step 204: be respectively forward motion vector and add backward motion vector as its counter motion vector, and be respectively backward motion vector interpolation forward motion vector as its counter motion vector.
In initial motion vectors set, if namely comprise forward motion vector, comprise backward motion vector again, be then respectively forward motion vector and add backward motion vector, and be respectively backward motion vector interpolation forward motion vector.Composition graphs 1C is known, every a pair forward motion vector and backward motion vector, when adopting uniform rectilinear motion model, should meet following relation: V f/ T f=-V b/ T b.
Step 205: generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector and close.
Step 206: be each motion vector allocation index mark in the conjunction of new set of candidate motion vectors.
Step 207: employing RDO mode selects the motion vector for encoding from new set of candidate motion vectors is closed.
Step 208: the index of the motion vector of described selection is identified, and enrolls code stream according to the information that the motion vector of described selection obtains.
The index information enrolled in code stream is equivalent to the selection information of the motion vector selected by encoding terminal, when the decoding terminal that code stream sends, can find corresponding motion vector according to selection information.
It should be noted that, selection except adopting the RDO mode shown in step 206 to step 208 to carry out motion vector in above-described embodiment, also the mode of simultaneously deriving at coding side and decoding end can be adopted to obtain motion vector, this embodiment of the present application is not limited.
See Fig. 3, be the 3rd embodiment flow chart of the application's method for video coding, this example show the process judging to generate counter motion vector to motion vector one by one:
Step 301: the initial candidate motion vector set obtaining present encoding block.
Periphery encoding block according to present encoding block obtains spatial domain candidate motion vector, the time domain candidate motion vector of present encoding block is obtained according to reference frame, this reference frame can be the former frame of the present frame at present encoding block place, or a rear frame, or former frame and a rear frame, spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
Step 302: order extracts a motion vector from the set of initial candidate motion vector.
Step 303: for the motion vector extracted adds a counter motion vector.
Wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector.
Composition graphs 1C, every a pair forward motion vector after interpolation counter motion vector and backward motion vector are when meeting following relation: V f/ T f=-V b/ T b.
Step 304: judged whether to add counter motion vector to motion vectors all in the set of initial candidate motion vector, if so, then performed step 305; Otherwise, return step 302.
Step 305: generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector and close.
Step 306: select the motion vector for encoding to encode from new set of candidate motion vectors is closed.
In this step 306, the RDO mode as shown in Fig. 2 embodiment specifically can be adopted to carry out the selection of motion vector, do not repeat them here.
From the embodiment of the method for above-mentioned Video coding, in the set of candidate motion vectors generated is closed, except spatial domain candidate motion vector, median motion vector and time domain candidate motion vector that the mode comprised conventionally generates, also comprise the counter motion vector added according to image theory according to the characteristics of motion, this counter motion vector is equivalent to the motion vector predicted, thus it is more complete to make set of candidate motion vectors close, that therefrom selects is more excellent for the motion vector of encoding, and improves coding efficiency.
Corresponding with aforementioned the application's method for video coding embodiment, present invention also provides the embodiment of video encoding/decoding method.The mode generating set of candidate motion vectors conjunction in the application's video decoding process is consistent with video coding process, video decoding process needs to carry out analyzing to video code flow to obtain coding side to the selection information of motion vector, to select the motion vector consistent with coding side to decode to current code block from set of candidate motion vectors is closed.
See Fig. 4, the embodiment flow chart for the application's video encoding/decoding method:
Step 401: the initial candidate motion vector set obtaining present encoding block.
Concrete, periphery encoding block according to present encoding block obtains spatial domain candidate motion vector, the time domain candidate motion vector of present encoding block is obtained according to reference frame, this reference frame can be the former frame of the present frame at present encoding block place, or a rear frame, or former frame and a rear frame, spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
Step 402: for each motion vector in the set of initial candidate motion vector adds a counter motion vector.
Concrete, can be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model.Predetermined movement model comprises uniform rectilinear motion model or accelerated motion model.
Wherein, can judge whether only there is unidirectional motion vector in described initial candidate motion vector; If only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
Wherein, also a counter motion vector can be added for the motion vector of described extraction, wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector; Judge whether to add counter motion vector to motion vectors all in the set of described initial candidate motion vector, if so, then triggered the step performing the new set of candidate motion vectors of described generation and close; Otherwise, return the step of a described order extraction motion vector from the set of described initial candidate motion vector.
Step 403: generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector and close.
Specific implementation in above-mentioned steps 401 to step 403 is consistent to the description in the 3rd embodiment with aforementioned video coding method first embodiment, does not repeat them here.
Step 404: resolve the code stream received, obtains the information of the motion vector selected by Video coding terminal.
After the motion vector that Video coding terminal is selected for encoding from new set of candidate motion vectors is closed, the index of the distribution for this motion vector mark can be enrolled code stream by Video coding terminal, and the difference between the motion vector of this selection and true motion vector is enrolled code stream, and by bit stream to video decode terminal.Therefore after this code stream of video decode terminal analysis, therefrom can get the information of the motion vector selected by encoding terminal, such as, the index mark of this motion vector, and obtain the difference between motion vector and true motion vector selected, according to the motion vector selected in the new set of candidate motion vectors conjunction that this index mark can generate from step 403 selected by encoding terminal, the motion vector of selection and difference value can be obtained the true encoding motion vector of encoding terminal.
Step 405: the information according to motion vector selects corresponding motion vector to decode from new set of candidate motion vectors is closed.
Corresponding with the embodiment of aforementioned the application's method for video coding and video encoding/decoding method, present invention also provides the embodiment block diagram of Video coding terminal and video decode terminal.
See Fig. 5 A, it is the embodiment block diagram of the application's Video coding terminal.
This Video coding terminal comprises: acquiring unit 510, adding device 520, generation unit 530 and coding unit 540.
Wherein, acquiring unit 510, for obtaining the initial candidate motion vector set of present encoding block;
Adding device 520, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector;
Generation unit 530, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Coding unit 540, selects the motion vector for encoding to encode in closing from described new set of candidate motion vectors.
See Fig. 5 B, the embodiment block diagram for adding device a kind of in Fig. 5 A:
This adding device 520 can comprise:
Direction vector judging unit 521, for judging whether only there is unidirectional motion vector in described initial candidate motion vector;
Motion vector adding device 522, for the judged result according to described direction vector judging unit, if only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
See Fig. 5 C, the embodiment block diagram for adding device another kind of in Fig. 5 A:
This adding device 520 can comprise:
Order extraction unit 523, extracts a motion vector for order from the set of described initial candidate motion vector;
Order adding device 524, for adding a counter motion vector for the motion vector of described extraction, wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector;
Adding judging unit 525, for having judged whether, counter motion vector having been added to motion vectors all in the set of described initial candidate motion vector;
Triggering performance element 526, is yes for completing the judged result of judging unit when described interpolation, then trigger described generation unit and perform corresponding function, the judged result completing judging unit when described interpolation is no, then return described order extraction unit.
See Fig. 5 D, the embodiment block diagram for coding unit in Fig. 5 A:
This coding unit 540 comprises:
Index mark allocation units 541, identify for each motion vector allocation index in closing for described new set of candidate motion vectors;
Motion vector selected cell 542, the motion vector selecting for encoding from described new set of candidate motion vectors is closed for adopting rate-distortion optimization criterion RDO;
Encoding operation unit 543, the index for the motion vector by described selection identifies, and enrolls code stream according to the information that the motion vector of described selection obtains.
See Fig. 6, it is the embodiment block diagram of the application's video decode terminal.
This video decode terminal comprises: acquiring unit 610, adding device 620, generation unit 639, resolution unit 640 and decoding unit 650.
Wherein, acquiring unit 610, for obtaining the initial candidate motion vector set of present encoding block;
Adding device 620, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector;
Generation unit 630, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Resolution unit 640, for resolving the code stream received, obtains the information of the motion vector selected by Video coding terminal;
Decoding unit 650, selects corresponding motion vector to decode for the information according to described motion vector from described new set of candidate motion vectors is closed.
Concrete, adding device 620 can comprise: direction vector judging unit, for judging whether only there is unidirectional motion vector in the set of described initial candidate motion vector; Motion vector adding device, for the judged result according to described direction vector judging unit, if only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
Concrete, adding device 620 also can comprise: direction vector judging unit, for judging whether only there is unidirectional motion vector in the set of described initial candidate motion vector; Motion vector adding device, for the judged result according to described direction vector judging unit, if only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
By known to the description of above execution mode, the embodiment of the present application is when the set of candidate motion vectors building Video coding is closed, obtain the initial candidate motion vector set of present encoding block, for each motion vector in the set of initial candidate motion vector adds a counter motion vector, generate new set of candidate motion vectors according to the motion vector in the set of counter motion vector initial candidate motion vector to close, from new set of candidate motion vectors is closed, select the motion vector for encoding to encode.During the set of candidate motion vectors that application the embodiment of the present application generates is closed, include the counter motion vector for motion vector generates, this counter motion vector is equivalent to the motion vector predicted, thus it is more complete to make set of candidate motion vectors close, that therefrom selects is more excellent for the motion vector of encoding, and improves coding efficiency.
Those skilled in the art can be well understood to the mode that technology in the embodiment of the present invention can add required general hardware platform by software and realize.Based on such understanding, technical scheme in the embodiment of the present invention can embody with the form of software product the part that prior art contributes in essence in other words, this computer software product can be stored in storage medium, as ROM/RAM, magnetic disc, CD etc., comprising some instructions in order to make a computer equipment (can be personal computer, server, or the network equipment etc.) perform the method described in some part of each embodiment of the present invention or embodiment.
Each embodiment in this specification all adopts the mode of going forward one by one to describe, between each embodiment identical similar part mutually see, what each embodiment stressed is the difference with other embodiments.Especially, for system embodiment, because it is substantially similar to embodiment of the method, so description is fairly simple, relevant part illustrates see the part of embodiment of the method.
Above-described embodiment of the present invention, does not form limiting the scope of the present invention.Any amendment done within the spirit and principles in the present invention, equivalent replacement and improvement etc., all should be included within protection scope of the present invention.

Claims (17)

1. a method for video coding, is characterized in that, comprising:
Obtain the initial candidate motion vector set of present encoding block;
For each motion vector in the set of described initial candidate motion vector adds a counter motion vector, comprise: in the set of initial candidate motion vector, both forward motion vector was comprised, comprise backward motion vector again, be respectively forward motion vector and add backward motion vector, and be respectively backward motion vector interpolation forward motion vector, describedly to be specially for each motion vector in the set of initial candidate motion vector adds a counter motion vector: be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model, described predetermined movement model comprises: uniform rectilinear motion model, or accelerated motion model,
Motion vector in initial candidate motion vector set according to described counter motion vector generates new set of candidate motion vectors and closes;
From described new set of candidate motion vectors is closed, select the motion vector for encoding to encode, wherein, the motion vector for encoding is the difference of closing candidate motion vector and the true motion vector obtained according to described new set of candidate motion vectors.
2. method according to claim 1, is characterized in that, the initial candidate motion vector set of described acquisition present encoding block comprises:
Periphery encoding block according to present encoding block obtains spatial domain candidate motion vector;
Obtain the time domain candidate motion vector of described present encoding block according to reference frame, described reference frame is the former frame of the present frame at described present encoding block place, or a rear frame, or former frame and a rear frame;
Described spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
3. the method according to claim 1 to 2 any one, is characterized in that, describedly comprises for each motion vector in the set of initial candidate motion vector adds a counter motion vector:
Judge whether only there is unidirectional motion vector in the set of described initial candidate motion vector;
If only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector;
If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
4. the method according to claim 1 to 2 any one, is characterized in that, describedly comprises for each motion vector in the set of initial candidate motion vector adds a counter motion vector:
From the set of described initial candidate motion vector, order extracts a motion vector;
Motion vector for described extraction adds a counter motion vector, wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector;
Judge whether to add counter motion vector to motion vectors all in the set of described initial candidate motion vector, if so, then triggered the step performing the new set of candidate motion vectors of described generation and close; Otherwise, return the step of a described order extraction motion vector from the set of described initial candidate motion vector.
5. method according to claim 1, is characterized in that, described new motion vector set comprises: the forward direction set of candidate motion vectors be made up of forward motion vector is closed, and the backward set of candidate motion vectors be made up of backward motion vector is closed.
6. method according to claim 1, is characterized in that, describedly selects the motion vector for encoding to carry out coding to comprise from new set of candidate motion vectors is closed:
For each motion vector allocation index mark in described new set of candidate motion vectors conjunction;
Employing rate-distortion optimization criterion RDO selects the motion vector for encoding from described new set of candidate motion vectors is closed;
The index of the motion vector of described selection is identified, and enrolls code stream according to the information that the motion vector of described selection obtains.
7. a Video coding terminal, is characterized in that, comprising:
Acquiring unit, for obtaining the initial candidate motion vector set of present encoding block;
Adding device, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector, comprise: in the set of initial candidate motion vector, both forward motion vector was comprised, comprise backward motion vector again, be respectively forward motion vector and add backward motion vector, and be respectively backward motion vector interpolation forward motion vector, describedly to be specially for each motion vector in the set of initial candidate motion vector adds a counter motion vector: be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model, described predetermined movement model comprises: uniform rectilinear motion model, or accelerated motion model,
Generation unit, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Coding unit, in closing from described new set of candidate motion vectors, select the motion vector for encoding to encode, wherein, the motion vector for encoding is the difference of closing candidate motion vector and the true motion vector obtained according to described new set of candidate motion vectors.
8. Video coding terminal according to claim 7, is characterized in that, described adding device comprises:
Direction vector judging unit, for judging whether only there is unidirectional motion vector in the set of described initial candidate motion vector;
Motion vector adding device, for the judged result according to described direction vector judging unit, if only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
9. Video coding terminal according to claim 7, is characterized in that, described adding device comprises:
Order extraction unit, extracts a motion vector for order from the set of described initial candidate motion vector;
Order adding device, for adding a counter motion vector for the motion vector of described extraction, wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector;
Adding judging unit, for having judged whether, counter motion vector having been added to motion vectors all in the set of described initial candidate motion vector;
Triggering performance element, is yes for completing the judged result of judging unit when described interpolation, then trigger described generation unit and perform corresponding function, the judged result completing judging unit when described interpolation is no, then return described order extraction unit.
10. Video coding terminal according to claim 7, is characterized in that, described coding unit comprises:
Index mark allocation units, identify for each motion vector allocation index in closing for described new set of candidate motion vectors;
Motion vector selected cell, the motion vector selecting for encoding from described new set of candidate motion vectors is closed for adopting rate-distortion optimization criterion RDO;
Encoding operation unit, the index for the motion vector by described selection identifies, and enrolls code stream according to the information that the motion vector of described selection obtains.
11. 1 kinds of video encoding/decoding methods, is characterized in that, comprising:
Obtain the initial candidate motion vector set of present encoding block;
For each motion vector in the set of described initial candidate motion vector adds a counter motion vector, comprise: in the set of initial candidate motion vector, both forward motion vector was comprised, comprise backward motion vector again, be respectively forward motion vector and add backward motion vector, and be respectively backward motion vector interpolation forward motion vector, describedly to be specially for each motion vector in the set of initial candidate motion vector adds a counter motion vector: be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model, described predetermined movement model comprises: uniform rectilinear motion model, or accelerated motion model,
Motion vector in initial candidate motion vector set according to described counter motion vector generates new set of candidate motion vectors and closes;
Resolve the code stream received, obtain the information of the motion vector selected by Video coding terminal;
Information according to described motion vector selects corresponding motion vector to decode from described new set of candidate motion vectors is closed, wherein, the motion vector for decoding is the difference of closing candidate motion vector and the true motion vector obtained according to described new set of candidate motion vectors.
12. methods according to claim 11, is characterized in that, the initial candidate motion vector set of described acquisition present encoding block comprises:
Periphery encoding block according to present encoding block obtains spatial domain candidate motion vector;
Obtain the time domain candidate motion vector of described present encoding block according to reference frame, described reference frame is the former frame of the present frame at described present encoding block place, or a rear frame, or former frame and a rear frame;
Described spatial domain candidate motion vector is become initial motion vectors set with time domain set of candidate motion vectors.
13., according to claim 11 to the method described in 12 any one, is characterized in that, describedly comprise for each motion vector in the set of initial candidate motion vector adds a counter motion vector:
Judge whether only there is unidirectional motion vector in the set of described initial candidate motion vector;
If only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector;
If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
14., according to claim 11 to the method described in 12 any one, is characterized in that, describedly comprise for each motion vector in the set of described initial candidate motion vector adds a counter motion vector:
From the set of described initial candidate motion vector, order extracts a motion vector;
Motion vector for described extraction adds a counter motion vector, wherein, if the motion vector extracted is forward motion vector, then for the motion vector of described extraction adds a backward motion vector as its counter motion vector, if the motion vector extracted is backward motion vector, then for the motion vector of described extraction adds a forward motion vector as its counter motion vector;
Judge whether to add counter motion vector to motion vectors all in the set of described initial candidate motion vector, if so, then triggered the step performing the new set of candidate motion vectors of described generation and close; Otherwise, return the step of a described order extraction motion vector from the set of described initial candidate motion vector.
15. methods according to claim 11, is characterized in that, described new motion vector set comprises: the forward direction set of candidate motion vectors be made up of forward motion vector is closed, and the backward set of candidate motion vectors be made up of backward motion vector is closed.
16. 1 kinds of video decode terminals, is characterized in that, comprising:
Acquiring unit, for obtaining the initial candidate motion vector set of present encoding block;
Adding device, for adding a counter motion vector for each motion vector in the set of described initial candidate motion vector, comprise: in the set of initial candidate motion vector, both forward motion vector was comprised, comprise backward motion vector again, be respectively forward motion vector and add backward motion vector, and be respectively backward motion vector interpolation forward motion vector, describedly to be specially for each motion vector in the set of initial candidate motion vector adds a counter motion vector: be that each motion vector in the set of initial candidate motion vector adds a counter motion vector according to predetermined movement model, described predetermined movement model comprises: uniform rectilinear motion model, or accelerated motion model,
Generation unit, generates new set of candidate motion vectors for the motion vector in initial candidate motion vector set according to described counter motion vector and closes;
Resolution unit, for resolving the code stream received, obtains the information of the motion vector selected by Video coding terminal;
Decoding unit, from described new set of candidate motion vectors is closed, corresponding motion vector is selected to decode for the information according to described motion vector, wherein, the motion vector for decoding is the difference of closing candidate motion vector and the true motion vector obtained according to described new set of candidate motion vectors.
17. video decode terminals according to claim 16, it is characterized in that, described adding device comprises:
Direction vector judging unit, for judging whether only there is unidirectional motion vector in the set of described initial candidate motion vector;
Motion vector adding device, for the judged result according to described direction vector judging unit, if only there is unidirectional motion vector, then add counter motion vector respectively for described unidirectional motion vector, described exists unidirectional motion vector and comprises and only there is forward motion vector, or only there is backward motion vector; If there is forward motion vector and backward motion vector simultaneously, be then respectively described forward motion vector and add backward motion vector as its counter motion vector, and be respectively described backward motion vector interpolation forward motion vector as its counter motion vector.
CN201110004025.5A 2011-01-10 2011-01-10 Video coding method, decoding method and terminal Active CN102595110B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110004025.5A CN102595110B (en) 2011-01-10 2011-01-10 Video coding method, decoding method and terminal
PCT/CN2011/084817 WO2012094944A1 (en) 2011-01-10 2011-12-28 Video encoding method, video decoding method and terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110004025.5A CN102595110B (en) 2011-01-10 2011-01-10 Video coding method, decoding method and terminal

Publications (2)

Publication Number Publication Date
CN102595110A CN102595110A (en) 2012-07-18
CN102595110B true CN102595110B (en) 2015-04-29

Family

ID=46483267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110004025.5A Active CN102595110B (en) 2011-01-10 2011-01-10 Video coding method, decoding method and terminal

Country Status (2)

Country Link
CN (1) CN102595110B (en)
WO (1) WO2012094944A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809642B (en) 2015-02-16 2020-06-16 华为技术有限公司 Method for encoding and decoding video image, encoding device and decoding device
CN105872545B (en) * 2016-04-19 2019-03-29 电子科技大学 A kind of random access Video coding middle-levelization time domain Rate-distortion optimization method
WO2019191867A1 (en) * 2018-04-02 2019-10-10 华为技术有限公司 Method and apparatus for video encoding and decoding
CN110868602B (en) * 2018-08-27 2024-04-12 华为技术有限公司 Video encoder, video decoder and corresponding methods
CN111526369B (en) * 2020-04-29 2022-09-09 Oppo广东移动通信有限公司 Video motion estimation method and device, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1377067A1 (en) * 2002-06-17 2004-01-02 Kabushiki Kaisha Toshiba Motion vector coding
CN1615652A (en) * 2002-01-17 2005-05-11 皇家飞利浦电子股份有限公司 Unit for and method of estimating a current motion vector
CN101841712A (en) * 2010-04-28 2010-09-22 广西大学 B-frame expansion direct mode oriented to panoramic video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1615652A (en) * 2002-01-17 2005-05-11 皇家飞利浦电子股份有限公司 Unit for and method of estimating a current motion vector
EP1377067A1 (en) * 2002-06-17 2004-01-02 Kabushiki Kaisha Toshiba Motion vector coding
CN1832575A (en) * 2002-06-17 2006-09-13 株式会社东芝 Video coding/decoding method and apparatus
CN101841712A (en) * 2010-04-28 2010-09-22 广西大学 B-frame expansion direct mode oriented to panoramic video coding

Also Published As

Publication number Publication date
CN102595110A (en) 2012-07-18
WO2012094944A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
US10091526B2 (en) Method and apparatus for motion vector encoding/decoding using spatial division, and method and apparatus for image encoding/decoding using same
AU2019275631B2 (en) Motion vector field coding and decoding method, coding apparatus, and decoding apparatus
CN104935939B (en) The apparatus and method encoded/decoded to image
CN104602017A (en) Video coder, method and device and inter-frame mode selection method and device thereof
US11736707B2 (en) Method and apparatus for processing video signal using affine prediction
CN102595110B (en) Video coding method, decoding method and terminal
CN102710934B (en) Motion predicting or compensating method
Zhang et al. Low complexity HEVC INTRA coding for high-quality mobile video communication
CN101321287A (en) Video encoding method based on movement object detection
CN104601988A (en) Video coder, method and device and inter-frame mode selection method and device thereof
CN102611887B (en) The coordinate figure of non-Integer Pel position motion vector rounds method and apparatus
CN106576170B (en) The method and system that adaptive search-window for Video coding positions
CN103141093A (en) Method and device for encoding/decoding image using extended skip mode
US20210168355A1 (en) Motion vector prediction for video coding
CN102017626B (en) Method of coding, decoding, coder and decoder
CN103155560A (en) Apparatus and method for encoding/decoding differential motion vector, and apparatus and method for encoding/decoding video using same
Correa et al. A method for early-splitting of HEVC inter blocks based on decision trees
CN103237213B (en) Method for video coding and video encoding/decoding method and relevant apparatus
CN104104947B (en) A kind of method for video coding and device
CN105323636A (en) Video processing method and video processing device
CN104918047A (en) Bidirectional motion estimation elimination method and device
CN104767997A (en) Video-oriented visual feature encoding method and device
Wang et al. Fast mode and depth decision algorithm for intra prediction of quality SHVC
CN105122808A (en) Method and apparatus of disparity vector derivation for three-dimensional and multi-view video coding
Toffetti et al. Image compression in a multi-camera system based on a distributed source coding approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant