CN101189870A - Motion stabilization - Google Patents

Motion stabilization Download PDF

Info

Publication number
CN101189870A
CN101189870A CNA2006800198266A CN200680019826A CN101189870A CN 101189870 A CN101189870 A CN 101189870A CN A2006800198266 A CNA2006800198266 A CN A2006800198266A CN 200680019826 A CN200680019826 A CN 200680019826A CN 101189870 A CN101189870 A CN 101189870A
Authority
CN
China
Prior art keywords
motion vector
piece
segmentation
motion
resolution
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.)
Pending
Application number
CNA2006800198266A
Other languages
Chinese (zh)
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN101189870A publication Critical patent/CN101189870A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

Stabilization for devices such as hand-held camcorders segments a low-resolution frame into a region of reliable estimation, refines the motion vectors of that region hierarchically while at the same time updating the segmentation, finds a global motion vector for the region at high resolution, and uses the global motion vector to compensate for jitter.

Description

Motion stabilization
Technical field
The present invention relates to Digital Signal Processing, and the imaging device that more particularly relates to image stability method and have electronic stabilityization.
Background technology
The task of image stabilization (IS) is to eliminate the shake of the video sequence that is captured by handheld cameras.Shake is normally caused by unwanted hand shake during the videograph, and become more serious problem when using higher zoom ratio.For consumer's digital camera and camera phone, the shake of eliminating video sequence has become more and more important problem.The method that has several different described image stabilization problems of solution.A kind of ad hoc approach is to use digital image processing techniques to eliminate shake.This method is commonly referred to " digital image stabilization " (DIS).
Typical digital image stabilizing method can be summarized as follows: step 1: motion vector calculation: calculate a plurality of candidate motion vectors between two frames by finding out being correlated with between the block of pixels.
Step 2: bulk motion vector is determined: use a plurality of heuristics to find out two overall jitter between the frame and move and handle candidate motion vector from step 1.Step 3: motion compensation: compensate estimated jitter motion by on the rightabout of described motion, output image being carried out numerical shift.
For example, referring to USP 5,748,231, USP 5,563,652 and USP 6,628,711.
Summary of the invention
The invention provides digital image stabilization, described digital image stabilization be by via the motion vector analysis with the low-definition version segmentation of incoming frame and hierarchically the refinement motion vector upgrade described segmentation simultaneously and come shake is estimated to realize.
Description of drawings
Fig. 1 illustrates layer-stepping graphical representation.
Fig. 2 shows image segmentation.
Fig. 3 shows global motion estimation.
Fig. 4 explanation is to the compensation of motion.
Fig. 5-the 6th, flow chart.
Fig. 7-9 display image pipeline, processor and network communication.
Embodiment
For example, the first preferred embodiment method that is used for the digital image stabilization (DIS) of handheld video device estimates that jitter motion also correspondingly compensates.Fig. 5 illustrates that described shake estimates, it comprises the steps: at first, and the motion by analyzing each piece is segmented into effectively (jitter motion) piece and invalid (other motions) piece with the low-definition version of incoming frame; Next, assemble motion vector to find out candidate motion region, and choose best candidate motion region by score, described score comprise piece in poor, the candidate motion region of motion vector of level and smooth average motion vector and present frame quantity and with previous frame choose the quantity of the overlapping piece in moving region.Then, by convergent-divergent and the described motion vector of refinement and upgrade described segmentation and expand to high-resolution in the bulk motion vector under the highest resolution up to producing described zone.Stablize the bulk motion vector (if there is) is applied to described frame is carried out motion compensation.Fig. 6 is the flow chart of entire method.
The preferred embodiment system comprises the video camera of implementing the preferred embodiment antihunt means, digital camera, video mobile phone, video display devices or the like.Fig. 7 shows general image processing pipeline, and preferred embodiment is stable can be embodied as the MPEG/JPEG function and determine to integrate with motion vector, although do not need coding or compression preferred embodiment stable.In fact, can stablize the video that shows without stable by the preferred embodiment of using as the part of procedure for displaying.
The preferred embodiment system may be embodied as any in the hardware of several types: digital signal processor (DSP), general purpose programmable processors, special circuit or system on chip (SoC), for example DSP and risc processor are together with the combination of various special-purpose programmable accelerator.Fig. 8 explanation is used for the example of the processor of digital camera application, wherein has the Video processing subsystem on the upper left side.Institute's program stored can be implemented signal processing on the plate or among outside (quickflashing EEP) ROM or the FRAM.Analogue-to-digital converters and digital-analog convertor can be provided to the coupling that reaches real world, modulator and demodulator (adding the antenna that is used for air interface) can provide coupling for transmitted waveform, and burster can be provided for going up at network (for example internet) form of transmission, referring to Fig. 9.
The described first preferred embodiment DIS method comprises following three steps:
Step 1. Segmentation: handle the block-based segmentation of calculating described frame by top (lowest resolution) to the layer-stepping graphical representation of each frame.
Step 2. Global motion estimation: use the segmentation of calculating in step 1 and the bulk motion vector that described frame is estimated in described layer-stepping graphical representation.
Step 3. Motion compensation: the bulk motion vector of calculating in the use step 2 compensates the jitter motion in the present frame.
Provide detailed description with the lower part to these steps.
Step 1-segmentation
Handle each new frame in the sequence frame and produce as shown in fig. 1 layer-stepping graphical representation.This layer-stepping is represented to be made up of the version of several different resolutions of original image.Can be by higher stage resolution ratio being carried out low-pass filtering (for example using Gaussian kernel), and on each direction, descend sampling to obtain each level of described expression with 2 factor then.Repeatedly repeat the version that this filtering and following sampling process reduce gradually with the resolution that produces primitive frame.The quantity of level changes according to the size of incoming frame.For example, under the situation of VGA input (640 * 480 pixels), use 4 grades of expressions, it provides 640 * 480,320 * 240,160 * 120 and 80 * 60 image.Say that roughly it is higher level's (lowest resolution) of 80 * 60 pixels that preferred embodiment uses rough size.The layer-stepping of two frames (present frame and previous frame) is represented to be kept in the memory for being used for estimation.
Use top block-based segmentation of calculating present frame current and that layer-stepping previous frame is represented.The purpose of this segmentation is that described frame is divided into independent moving region.Suppose that all pixels in the specific region all have same motion vector.The first preferred embodiment method is used 16 pieces as shown in Figure 2, and top 80 * 60 frames are divided into the piece of 4 * 4 arrays, and the size of each piece is 16 * 12 pixels, adds that width is the borderline region (being used for motion vector calculation) of 6 or 8 pixels.So the piece in more rudimentary will be 32 * 24,64 * 48 and 128 * 96 pixels.
In order to calculate described segmentation, at first by each piece at the top top place that layer-stepping is represented as reference frame of previous frame being implemented estimation based on SAD.Use full search, described full search relates at all possible motion vector (MV) calculates SAD (absolute difference and), and chooses described MV then as a MV with minimum SAD.In particular, to the present frame at time t place, suppose p t(i, j) expression is positioned at (i, (brightness) value of the pixel of j) locating, p T-1(m, the n) pixel of expression previous frame, and MV=[MVx, MVy] the possible motion vector of expression piece, then:
SAD(MV)=∑ (i,j)∈block?|p t(i,j)-p t-1(i+MVx,j+MVy)|
Owing to use two little low-resolution frames to implement this process, so computation complexity is lower.In case find out minimum SAD, promptly use four the adjacent SADs of described minimum SAD on vertical and horizontal direction to come following calculating reliability score.Suppose that S represents minimum SAD, and St, Sb, Sr and Sl represent upper and lower, right, the left adjacent S AD of minimum SAD respectively, that is to say, if V=[Vx, Vy] provide the piece motion vector of minimum S, St is motion vector [Vx so, Vy-1] SAD, Sb is the SAD of motion vector [Vx, Vy+l], by that analogy.Calculate (St-S)+(Sb-S)+(Sr-S)+(Sl-S) and, it is poor that we are called SAD with (St-S)+(Sb-S)+(Sr-S)+(Sl-S).This is to the tolerance of described texture content and shows the reliability of its MV.
In case described MV can be used for described, be about to it and assemble to discern described moving region.Before proceeding assembly, at first remove least reliable MV.In order to discern described least reliable MV, can use following two restrictive conditions:
1) if the level of described MV or vertical amplitude greater than a certain threshold value, it is unreliable then described MV to be labeled as.The representative value of described threshold value is in from 2 to 5 the scope.
2) if described SDA is poor less than a certain threshold value, it is unreliable then its MV to be labeled as.Described threshold value can be (8) pixel quantity in the piece divided by 2, therefore for 16 * 12, described threshold value will be 96.
After removing described unreliable MV, find out candidate motion region by assembling described MV, wherein each is trooped and includes identical MV; That is to say that candidate motion region is made up of the piece that all have identical (reliably) MV.The quantity of trooping will equal the quantity of different MV.Each MV troops all corresponding to a candidate motion region now.
Subsequently, the zone that has a MV that does not belong to described zone by absorption as described below makes each candidate motion region growth.If MV in the candidate motion region and the distance of the vector space between a MV are less than or equal to 1, then the piece with described MV absorbs in the described candidate motion region.During this process, some piece can be included in the more than zone.In other words, candidate motion region can be overlapping.
In all available candidate motion region, must assign to find out the best zone that can be used for video stabilization by what calculate each zone according to following formula:
PTS=relative motion score+big or small score+overlapping score
In order to calculate described relative motion score, at first calculate each regional relative motion.To each piece in the zone, accumulate MV in time by the autoregression of using following form and calculate the relative motion between (in described) object and the camera:
R j t = α R j t - 1 + ( 1 - α ) V j t
R wherein f tBe i ThJ in the frame ThThe relative motion of piece, α is an accumulation factor, and V f tBe described t ThPiece motion vector in the frame.First preferred embodiment uses a to equal 0.8.This equation is implemented at V f tLow-pass filtering.In case the relative motion of each piece can be used, promptly, the relative motion of all pieces in each candidate motion region finds out the relative motion in described zone by being averaged.After obtaining each regional relative motion, can following calculating relative motion score:
The relative motion score=
Minimum ((maxRelMotV-relMotV), (maxRelMotH-relMotH)),
Wherein maxRelMotV and maxRelMotH are that maximum on vertical and horizontal direction allows relative motion, and relMotV and the relMotH relative motion that is current block on vertical and horizontal direction.The representative value of maxRelMotV and maxRelMotH is in from 2 to 5 the scope usually.If it is negative that the relative motion of moving region must be divided into, be unreliable with described zone marker so and no longer it taken in.
By with in the zone the quantity of piece and a certain constant multiply each other and calculate big or small score.Described first preferred embodiment is used as constant with 0.1.
By calculating overlapping score with multiplying each other with the quantity of the piece of the segmentation overlay of previous frame in a certain constant and the described zone.For described constant, first preferred embodiment uses 0.4.
In case obtain the score that all are trooped, promptly select and have trooping of top score and be used for video stabilization.(because described trooping all has negative score) forbids the video stabilization at present frame so if exist without any trooping at this some place.
If selected trooping had polylith, for the computation complexity reason it is diminished so.In order to reduce the quantity of piece, eliminate piece with minimum SAD difference.
Step 2-global motion estimation
Continuation is carried out to subordinate's (high-resolution) that layer-stepping is represented.On each level, at first make estimation (from more senior) to being labeled as effective piece in the segmentation.Estimation refine to more high accuracy with MV, referring to Fig. 3.Precision increase along with movable information can separate undistinguishable moving region under low resolution before now.Therefore, use new motion vector, upgrade current segmentation.In order to upgrade described segmentation, use the program of using at top place that is similar to, but current only the use is labeled as effective piece in current segmentation.The MV that at first assembles through refinement all has identical MV so that each is trooped.Then, make each growth of trooping to find out candidate motion region.During described growth course, if new MV and troop in MV between ultimate range be less than or equal to 1, so described MV is absorbed in described the trooping.Note that the threshold value of locating corresponding to previous higher level when the threshold value 1 at prime place 0.5.The appearance of the more accurate movable information that the subordinate that represents along with layer-stepping locates, the separation of described moving region is proceeded with degree of precision.In case find out candidate motion region, promptly calculate the PTS of each candidate motion region and choose best trooping and be used for video stabilization.This program is identical with the program that top place uses.If selected trooping is excessive, can eliminates the least reliable piece so and reduce motion estimation complexity.Use the SAD difference to discern the least reliable piece.
The continuous subordinate that described layer-stepping is represented repeats above program.At the lowermost level place, in case assembled MV, promptly do not allow moving region growth, be used for video stabilization and only calculate its PTS and choose best one.Because the zone is not in the growth of lowermost level place, so trooping of existing should have the piece that has identical MV.This motion vector is to be used to stablize the whole MV of described frame.
All finish if piece is stated in any point place during described global motion estimation process, present frame is unsuitable for estimation so, so disable video stabilization.Disable video stabilization means and will can not upgrade montage the window's position in present frame.
Step 3-motion compensation
For each frame, described preferred embodiment method subwindow of montage and it is shown to the beholder from image is as illustrated in fig. 4.If this subwindow with the rightabout of described (estimation) jitter motion on suitably move, the beholder can not observe shake so.Equation below using comes the mover window:
U t=K tU t-1-W t
U wherein tThe coordinate in the subwindow upper left corner in the expression present frame, W tBe the estimated whole MV of present frame, and K tIt is the self adaptation accumulation factor.This equation can be applied to the vertical and horizontal coordinate in the described subwindow upper left corner individually.U tThe reference point neutral position that is described window in the middle of frame, make U tWindow is not zero from first frame of video that its initial position moves therein.K tHow far between minimum and maximum, change linearly apart from its neutral position according to described subwindow.Following calculating K tValue:
K t=[(K min-K max||U t-1||/U max]+K max
Wherein || U T-1|| be component U T-1Absolute value and, U MaxBe the maximum allowable offset of subwindow apart from its neutral position, K MaxBe K tMaximum, and K MinBe K tMinimum value.First preferred embodiment uses K Max=1 and K Min=0.85.
3. revise
Can revise described preferred embodiment in various manners and keep one or more features of low-resolution frames segmentation simultaneously, under high-resolution to the motion vector refinement of institute's sectional area, upgrade described segmentation and obtain the high-resolution movable information, and upgrade the window's position with bulk motion vector.
For instance, the block array that is used for segmentation can be according to the pixel quantity (for example 3000 to 8000 pixels) of the lowest resolution version of described frame and the ratio of width to height (4 * 5 the ratio of width to height of portrait for example, 4 * 3,16 * 9 the ratio of width to height of HDTV or the like) change, for example 8 * 5 arrays of 3 * 3 arrays of 4 * 3 the ratio of width to height with 3000 pixels and 16 * 9 the ratio of width to height have 8000 pixels.That is to say that from 9 to 40 pieces all suit.Usually can implement stable to picture; That is to say described stable top also that can be applied to separate based on field or combination field piece and end field piece.Lowest resolution full search can be replaced by limited search.SAD measures and can replace by other measurements of motion vector prediction error (for example SSD (difference of two squares and)) or by the SAD of double sampling.During refinement (and corresponding adjustment), can skip one or more levels that layer-stepping is represented, and can use different low-pass filtering and following sampling method to define described layering.When described motion estimation process reached the highest resolution that layer-stepping represents, it can continue the described motion vector of refinement and upgrade segmentation at subpixel resolution (for example half-pix, 1/4th pixels etc.).If the low-definition version of incoming frame (for example in the low pass-low pass of wavelet decomposition) is available, can use described version to accelerate to produce the speed of the process that described layer-stepping represents so.Can use the different equations of considering current location to calculate position through stable subwindow.Can change described all size, threshold value, accumulation factor or the like.

Claims (10)

1. the method for a digital image stabilization, described method comprises following steps:
(a) provide the low-definition version of input digit picture;
(a) according to motion prediction error described low-definition version is divided into reliable piece and unreliable;
(b) the piece motion vector according to described reliable piece gathers described reliable piece in the candidate motion region;
(c) from described candidate motion region, find out the segmentation of described low-definition version;
(d) described segmentation is updated to the segmentation of described input picture;
(d) from the described segmentation of described input picture, find out the bulk motion vector of described input picture; And
(d) the described bulk motion vector of use compensates the jitter motion in the described input picture.
2. the method for claim 1, wherein saidly find out segmentation and comprise that the score with described candidate motion region compares, wherein Qu Yu described score comprises: (i) motion of average piece relatively is with peaked poor, (ii) to the tolerance of the quantity of reliable piece described in the zone, and (iii) to the also tolerance of the quantity of the described reliable piece in the segmentation of the low-definition version of picture formerly in the zone.
3. the method for claim 1, comprise wherein said cutting apart: for each of described, with described described predicated error and motion vector equal described motion vector in one of two components of described motion vector, add be 1 increment or decrement predicated error difference and compare with threshold value.
4. the method for claim 1, the described segmentation of wherein said renewal is included in first the upgrading second of the described segmentation add the described input picture of being fragmented into of the above mid-resolution version and upgrade of segmentation of the mid-resolution version of described input picture, and wherein said mid-resolution version has: (i) resolution higher than described low-definition version; And (ii) than the low resolution of described input picture.
5. method to the jitter compensation of frame of video, it comprises following steps:
(a) provide resolution demixing F for incoming frame 1, F 2... F N, wherein N equals F for integer and described incoming frame greater than 2 N
(b) with described F 1Be divided into piece and add borderline region;
(c) for each of described, (i) computing block motion vector; Be 1 motion vector calculation predicated error (ii) at described motion vector and at differing with described motion vector; And (iii) when the difference of described predicated error and during above first threshold, with described described each be appointed as reliable piece;
(d) the piece motion vector according to described reliable piece is focused to described reliable piece in the candidate motion region;
(e) passing through according to following some more described zone is F from described candidate motion region 1Select segmentation: (i) quantity of piece; (ii) corresponding to the quantity of the piece of the piece in the segmentation of the layering of previous frame; Reach the (iii) mean value of related blocks motion vector;
(f) for n=2 ..., N is by at corresponding to F N-1The piece repeating step (c)-(e) of piece of described segmentation come to be F nSelect segmentation;
(g) from F NDescribed segmentation calculate bulk motion vector; And
(h) use described bulk motion vector to come described incoming frame is carried out jitter compensation.
6. method as claimed in claim 5, wherein said related blocks motion vector are the low-pass filtering of described motion vector.
7. method as claimed in claim 5, wherein said jitter compensation comprise the self adaptation accumulation of described bulk motion vector, to define the position of the subwindow in the described incoming frame.
8. method as claimed in claim 5, the wherein said piece that is divided into gives the coldest days of the year end individual piece between 40.
9. video camera, it comprises:
(a) picture grabber;
(b) shake estimator, it is coupled to described picture grabber, and described shake estimator comprises:
(i) sampler under the resolution demixing;
(ii) sectionalizer, it is coupled to described sampler down, and described sectionalizer can be operated to find out segmentation at each level of the resolution demixing that calculates in regular turn from the input picture and add motion vector;
(iii) bulk motion vector determiner, it is coupled to described sectionalizer;
(c) memory, it is used for the resolution demixing of previous frame, and described memory is coupled to described shake estimator; And
(d) jitter motion compensator, it is coupled to described shake estimator.
10. video camera as claimed in claim 9, wherein:
(a) described shake estimator is implemented on the programmable processor as program.
CNA2006800198266A 2005-04-28 2006-04-28 Motion stabilization Pending CN101189870A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US67608805P 2005-04-28 2005-04-28
US60/676,088 2005-04-28
US11/233,445 2005-09-22

Publications (1)

Publication Number Publication Date
CN101189870A true CN101189870A (en) 2008-05-28

Family

ID=39481201

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800198266A Pending CN101189870A (en) 2005-04-28 2006-04-28 Motion stabilization

Country Status (1)

Country Link
CN (1) CN101189870A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238380A (en) * 2010-04-22 2011-11-09 奇景光电股份有限公司 Hierarchical motion estimation method and system
CN104813656A (en) * 2012-11-29 2015-07-29 阿尔卡特朗讯公司 A videoconferencing server with camera shake detection
CN107851302A (en) * 2015-10-14 2018-03-27 谷歌有限责任公司 Stable video
CN112740654A (en) * 2018-09-19 2021-04-30 高途乐公司 System and method for stabilizing video

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238380A (en) * 2010-04-22 2011-11-09 奇景光电股份有限公司 Hierarchical motion estimation method and system
CN102238380B (en) * 2010-04-22 2013-07-17 奇景光电股份有限公司 Hierarchical motion estimation method and system
CN104813656A (en) * 2012-11-29 2015-07-29 阿尔卡特朗讯公司 A videoconferencing server with camera shake detection
US9762856B2 (en) 2012-11-29 2017-09-12 Alcatel Lucent Videoconferencing server with camera shake detection
CN104813656B (en) * 2012-11-29 2018-03-27 阿尔卡特朗讯公司 Videoconference server with DE Camera Shake detection
CN107851302A (en) * 2015-10-14 2018-03-27 谷歌有限责任公司 Stable video
US10986271B2 (en) 2015-10-14 2021-04-20 Google Llc Stabilizing video
CN107851302B (en) * 2015-10-14 2021-07-06 谷歌有限责任公司 Stabilizing video
CN112740654A (en) * 2018-09-19 2021-04-30 高途乐公司 System and method for stabilizing video
CN112740654B (en) * 2018-09-19 2023-12-19 高途乐公司 System and method for stabilizing video

Similar Documents

Publication Publication Date Title
US7605845B2 (en) Motion stabilization
US7649549B2 (en) Motion stabilization in video frames using motion vectors and reliability blocks
CN1992789B (en) Motion estimator and motion method
US8385418B2 (en) Dominant motion estimation for image sequence processing
JP5012413B2 (en) Jitter estimation method and jitter estimation apparatus
CN100389601C (en) Video electronic flutter-proof device
US20090153730A1 (en) Method and apparatus for modifying a moving image sequence
CN102124745A (en) Apparatus and method for converting 2D image signals into 3D image signals
KR0182058B1 (en) Apparatus and method of multi-resolution circulating search for motion estimation
US20130016180A1 (en) Image processing apparatus, method, and program
CN101163247A (en) Interpolation method for a motion compensated image and device for the implementation of said method
US20050195324A1 (en) Method of converting frame rate of video signal based on motion compensation
US20060159177A1 (en) Motion estimation method, device, and system for image processing
US20040109503A1 (en) High speed motion vector estimation apparatus and method
US20140334547A1 (en) Refining motion vectors in video motion estimation
CN101189870A (en) Motion stabilization
US8665318B2 (en) Digital video coding
KR20000063035A (en) Image processing device, image processing method, and storage medium
JP4523024B2 (en) Image coding apparatus and image coding method
JP5448983B2 (en) Resolution conversion apparatus and method, scanning line interpolation apparatus and method, and video display apparatus and method
JPH08242454A (en) Method for detecting global motion parameter
KR100856474B1 (en) Stabilizing method for shaking video image
JP3271387B2 (en) Motion amount detection device and motion amount detection method
Barreto et al. Real-time super-resolution over raw video sequences
JP4100321B2 (en) Segment unit image encoding apparatus and segment unit image encoding program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080528