KR101707600B1 - 멀티미디어 클립에 대한 비디오 안정화 적용 - Google Patents

멀티미디어 클립에 대한 비디오 안정화 적용 Download PDF

Info

Publication number
KR101707600B1
KR101707600B1 KR1020167012365A KR20167012365A KR101707600B1 KR 101707600 B1 KR101707600 B1 KR 101707600B1 KR 1020167012365 A KR1020167012365 A KR 1020167012365A KR 20167012365 A KR20167012365 A KR 20167012365A KR 101707600 B1 KR101707600 B1 KR 101707600B1
Authority
KR
South Korea
Prior art keywords
motion
multimedia clip
camera
video
computing device
Prior art date
Application number
KR1020167012365A
Other languages
English (en)
Other versions
KR20160058195A (ko
Inventor
알렉상드르 카펜코
Original Assignee
페이스북, 인크.
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 페이스북, 인크. filed Critical 페이스북, 인크.
Publication of KR20160058195A publication Critical patent/KR20160058195A/ko
Application granted granted Critical
Publication of KR101707600B1 publication Critical patent/KR101707600B1/ko

Links

Images

Classifications

    • H04N5/23267
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/71Circuitry for evaluating the brightness variation
    • H04N5/23254
    • H04N5/23258
    • H04N5/2351

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)
  • Adjustment Of Camera Lenses (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일실시예로, 본 방법은 멀티미디어 클립의 녹화 중 카메라의 움직임에 대응하는 카메라의 하나 이상의 모션을 결정하는 단계를 포함한다. 또한, 본 방법은 녹화 중 존재하는 하나 이상의 광량을 결정하는 단계 및 결정된 모션 및 광량으로부터 멀티미디어 클립에 대한 모션-블러 메트릭을 결정하는 단계를 포함한다. 본 방법은 모션-블러 메트릭에 기반하여 멀티미디어 클립에 비디오-안정화 루틴을 적용할지 여부를 결정하는 단계를 더 포함한다.

Description

멀티미디어 클립에 대한 비디오 안정화 적용{APPLYING VIDEO STABILIZATION TO A MULTIMEDIA CLIP}
본 명세서는 일반적으로 멀티미디어 클립의 비디오 안정화에 관한 것이다.
가령 스마트폰, 태블릿 컴퓨터 또는 랩톱 컴퓨터와 같은 모바일 컴퓨팅 장치는 GPS 수신기, 나침판, 자이로스코프 또는 가속도계와 같이 그 위치, 방향 또는 방위를 결정하기 위한 기능을 포함할 수 있다. 이런 장치는 또한 BLUETOOTH 통신, 근거리 통신(NFC), 또는 적외선(IR) 통신이나 WLAN(wireless local area network) 또는 셀룰러-전화 네트워크를 구비한 통신 등과 같이 무선 통신을 위한 기능을 포함할 수 있다. 또한, 이런 장치는 하나 이상의 카메라, 스캐너, 터치스크린, 마이크로폰 또는 스피커를 포함할 수 있다. 또한, 모바일 컴퓨팅 장치는 게임, 웹 브라우저 또는 소셜 네트워킹 애플리케이션과 같은 소프트웨어 애플리케이션들을 실행할 수 있다. 소셜 네트워킹 애플리케이션으로, 사용자는 그들의 소셜 네트워크에서 다른 사용자들과 연결, 통신 및 정보를 공유할 수 있다.
디지털 카메라를 포함하는 모바일 컴퓨팅 장치는 예컨대 디지털 비디오 클립과 같은 멀티미디어 클립을 녹화하는데 사용될 수 있다. 녹화 중에, 의도하지 않은 카메라의 움직임 또는 손의 흔들림이나 다른 진동 원인에 의해 유발되는 카메라 흔들림은 가령 비디오의 떨리거나 덜컥거리는 모션과 같은 비디오의 원치않는 효과를 야기할 수 있다. 특정 실시예로, 비디오-안정화 루틴은 비디오가 시청되거나 재생될 때 카메라 흔들림의 효과를 줄이도록 멀티미디어 클립 또는 특정 길이의 비디오에 적용될 수 있다. 카메라 흔들림의 효과를 줄이도록 디지털 비디오에 적용될 수 있는 많은 비디오-안정화(또는 이미지-안정화) 기술이 있다. 본 명세서는 임의의 적절한 비디오-안정화 기술을 고려한다. 특정 실시예로, 비디오-안정화 기술은 비디오에서 원치않는 모션 블러(또는 모션-블러 아티팩트)를 야기할 수 있는데, 이때 모션 블러는 녹화 중에 카메라의 모션에 의해 야기되는 비디오 이미지의 스미어링(smearing), 블러링(blurring) 또는 블리딩-아웃(bleeding-out)을 말한다. 모션 블러는 카메라가 특정 이미지 프레임의 비디오에 대한 광을 모을 때 발생할 수 있고, 카메라가 광을 모으면, 카메라는 카메라 흔들림에 일부 기인하여 움직일 수 있다. 이런 카메라 모션은 이미지에서 모션 트레일(motion trail)을 생성할 수 있고, 이미지 안정화를 적용하여 녹화 중 카메라 흔들림에 의해 유발하는 비디오의 떨리거나 덜컥거리는 모션을 감소시킬 수 있는 한편, 이미지 안정화는 통상 이미지의 픽셀을 수정하지 않는다. 즉, 일부 픽셀은 모션-블러 아티팩트를 생성할 수 있는 모션 트레일을 여전히 포함할 수 있고, 따라서 이미지 안정화 루틴이 멀티미디어 클립에 적용된 후에도 모션 블러 아티팩트는 비디오에 여전히 남아있을 수 있다.
모션 블러는 통상 원하지 않지만 떨리는 비디오에서 상당히 명백하거나 너무 문제가 되지 않을 수 있는데, 이는 떨리는 비디오 및 모션 블러가 통상 동기화된 형태로 함께 발생하기 때문이다. 특정 실시예로, 일단 비디오-안정화 기술이 적용되면, 모션-블러 아티팩트는 시청자에게 불쾌하거나 불편하게 나타날 수 있고, 모션 블러를 생성한 카메라 흔들림이 비디오에서 감소되거나 제거되었기 때문에 상당히 눈에 띌 수 있고 해당하는 모션 없이 단지 모션-블러 아티팩트만 남아있을 수 있다. 특정 실시예로, 컴퓨팅 장치는 원치않는 모션-블러 아티팩트를 도입하지 않으면서 카메라 흔들림의 효과를 감소시키도록 특정 멀티미디어 클립에 비디오 안정화를 적용할지를 결정할 수 있다. 특정 실시예로, 멀티미디어 클립이 비디오 안정화를 적용한 후 과도한 모션-블러 아티팩트를 포함할 수 있다고 결정되면, 컴퓨팅 장치는 그 멀티미디어 클립에 비디오 안정화를 적용하지 않도록 결정할 수 있다.
특정 실시예로, 비디오 안정화를 적용할지 여부의 결정에 사용될 수 있는 하나의 인자는 과도한 카메라 움직임이 모션 블러를 야기할 수 있기 때문에 녹화 중 카메라의 움직임의 양이다. 특정 실시예로, 비디오 안정화를 적용할지 여부를 결정하는데 사용될 수 있는 다른 인자는 비디오를 녹화할 때 존재하는 광량이다. 저조도(low-light) 상태라면, 노출 시간은 충분히 길 수 있고 카메라는 모션 블러 문제를 일으킬 만큼 움직일 수 있다. 특정 실시예로, 저조도 상태에서, 카메라의 상대적으로 긴 셔터 시간(shutter time)은 모션 블러를 야기할 수 있고, 이런 저조도 상태에서 녹화된 특정 멀티미디어 클립에 대해서는 이미지 안정화를 비활성해야 한다고 결정될 수 있다. 특정 실시예로, 모션-블러 아티팩트는 안정화된 비디오에서 불편한 효과를 생성할 수 있기 때문에 특정 멀티미디어 클립을 안정화시키지 않도록 결정될 수 있다. 특정 실시예로, 특정 멀티미디어 클립은 안정화된 멀티미디어 클립이 상당한 양의 모션 블러를 포함하지 않을 것이라고 결정된다면 비디오 안정화를 가능하게 할 수 있다. 특정 실시예로, 컴퓨팅 장치는 멀티미디어 장치로부터 모션-블러 아티팩트를 제거하려고 하지 않을 수 있고, 컴퓨팅 장치는 이미지 안정화를 활성화할 것인지를 결정할 수 있다. 특정 실시예로, 비디오 안정화를 적용할 것인지의 결정은 클립마다(per-clip) 이루어질 수 있거나, 전체 비디오 또는 멀티미디어 클립의 임의의 적절한 서브세트에 적용될 수 있다.
상술한 실시예들은 단지 예로서 본 명세서의 범위를 제한하지 않는다. 특정 실시예는 상술한 실시예들의 컴포넌트, 구성요소, 특징, 기능, 동작 또는 단계 중 전부 또는 일부를 포함하거나, 어떠한 것도 포함하지 않을 수 있다.
본 발명의 내용 중에 포함되어 있다.
도 1은 예시적인 동작이 이루어지는 예시적인 모바일 컴퓨팅 장치를 도시한다.
도 2는 예시적인 회전이 이루어지는 예시적인 모바일 컴퓨팅 장치를 도시한다.
도 3 및 4는 모바일 컴퓨팅 장치의 예시적인 모션과 연관된 예시적인 동작 벡터를 도시한다.
도 5는 예시적인 동작과 연관된 예시적인 트레이스 및 몇몇의 예시적인 멀티미디어 클립에 대한 예시적인 노출 시간을 도시한다.
도 6은 도 5에서의 예시적인 동작과 예시적인 노출 시간의 곱과 연관된 예시적인 트레이스를 도시한다.
도 7은 특정 멀티미디어 클립에 비디오 안정화를 적용할 것인지를 결정하기 위한 예시적인 방법을 도시한다.
도 8은 예시적인 컴퓨터 시스템을 도시한다.
도 1은 예시적인 물리적 동작이 가해지는 예시적인 모바일 컴퓨팅 장치(100)를 도시한다. 특정 실시예로, 모바일 컴퓨팅 장치(100)는 단일-보드 컴퓨터(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 랩톱 또는 노트북 컴퓨터, 모바일 전화, 스마트폰, 디지털 카메라, 개인용 정보 단말기(PDA), 태플릿 컴퓨터 시스템 또는 이들의 2 이상의 조합일 수 있다. 모바일 컴퓨팅 장치(100)는 하나 이상의 통합형 카메라 또는 하나 이상의 외부 카메라에 대한 인터페이스를 포함할 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)는 하나 이상의 디지털 카메라를 포함할 수 있는데, 이때 디지털 카메라는 디지털 포맷으로 이미지 또는 비디오를 기록하거나 저장하는 장치를 말할 수 있다. 본 명세서에서, "카메라"라는 용어는 디지털 카메라를 일컬을 수 있고, "멀티미디어 클립"이라는 용어는 디지털 비디오 또는 디지털 포맷으로 기록되거나 저장된 비디오를 일컬을 수 있다. 특정 실시예로, 멀티미디어 클립이라는 용어는 비디오 기록의 이산적 섹션 또는 특정 길이를 일컬을 수 있다. 특정 실시예로, 멀티미디어 클립은 멀티미디어 비디오 클립, 멀티미디어 이미지, 디지털 비디오 클립, 비디오 클립 또는 비디오로 일컬어질 수 있다. 특정 실시예로, 디지털 카메라는 예컨대 전하-결합 소자(CCD) 이미지 센서 또는 CMOS(complementary metal-oxide-semiconductor) 액티브-픽셀 센서와 같은 이미지 센서를 포함할 수 있다. 본 명세서는 임의의 적절한 물리적 형태를 가지며 임의의 적절한 카메라를 포함하는 임의의 적절한 모바일 컴퓨팅 장치(100)를 고려한다.
도 1에 도시된 바와 같이, 모바일 컴퓨팅 장치(100)의 물리적 움직임(또는 움직임)은 회전 이동 또는 병진 이동, 속도 또는 가속도, 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 비록 본 명세서는 회전 이동 또는 병진 이동, 속도 또는 가속도를 포함하는 모바일 컴퓨팅 장치(100)의 물리적 움직임을 기술하거나 도시하지만, 본 명세서는 임의의 적절한 움직임 또는 적절한 움직임들의 조합을 고려한다. 특정 실시예로, 모바일 컴퓨팅 장치(100)는 모바일 컴퓨팅 장치(100)의 위치, 방향, 병진 이동 또는 회전 이동을 감지하기 위한 하나 이상의 타입의 센서를 포함할 수 있다. 이런 모션 센서는 가속도계, 자이로스코프 또는 자력계, 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 또한, 모바일 컴퓨팅 장치(100)는 위치 또는 움직임을 감지하기 위한 하나 이상의 외부 센서에 대한 인터페이스를 포함할 수 있다. 비록 본 명세서는 모바일 컴퓨팅 장치(100)의 위치, 방향 또는 움직임을 감지하기 위한 특정 센서를 기술하지만, 본 명세서는 위치, 방향 또는 움직임을 감지하기 위한 임의의 적절한 센서를 고려한다.
특정 실시예로, 하나 이상의 센서로부터의 데이터, 정보 또는 값은 멀티미디어 클립의 녹화와 동시에 기록되거나 분석될 수 있고, 센서 값은 멀티미디어 클립에 비디오 안정화를 적용할지의 결정에 사용될 수 있다. 특정 실시예로, 멀티미디어 클립이라는 용어는 이산적 섹션 또는 특정 길이의 비디오 녹화를 일컬을 수 있다. 특정 실시예로, 멀티미디어 클립은 예컨대 한 번의 녹화 개시(예컨대, "녹화" 버튼 누르기) 이후에 이어지는 한 번의 녹화 종료(예컨대, "정지" 버튼 누르기)와 같이 한 번의 녹화 이벤트시 발생하는 임의의 적절한 길이의 녹화된 비디오를 일컬을 수 있다. 특정 실시예로, 멀티미디어 클립은 임의의 적절한 조합 또는 일련의 2 이상의 비디오 녹화 이벤트를 일컬을 수 있다. 특정 실시예로, 멀티미디어 클립은 1초, 10초, 15초, 1분, 20분, 1시간 또는 임의의 적절한 지속시간을 가질 수 있다. 특정 실시예로, 이미지 프레임은 멀티미디어 클립의 하나의 스틸 이미지를 일컬을 수 있고, 멀티미디어 클립은 비디오 녹화를 형성하도록 함께 결합되는 하나 이상의 이미지 프레임을 포함할 수 있다. 특정 실시예로, 멀티미디어 클립은 초당 24 프레임(FPS), 25 FPS, 30 FPS 또는 임의의 적절한 프레임 속도(frame rate)를 가질 수 있는데, 이때 프레임 속도는 녹화되거나 재생되는 동안 비디오의 초당 스틸 이미지 또는 비디오 프레임의 수를 일컬을 수 있다. 비록 본 명세서는 특정 지속시간과 프레임 속도를 가지며 하나 이상의 녹화 이벤트를 포함하는 특정 멀티미디어 클립을 기술하고 도시하지만, 본 명세서는 임의의 적절한 지속시간과 프레임 속도를 가지며 임의의 적절한 수의 녹화 이벤트를 포함하는 임의의 적절한 멀티미디어 클립을 고려한다.
특정 실시예로, 모바일 컴퓨팅 장치(100)의 움직임은 모바일 컴퓨팅 장치(100)와 통합된 하나 이상의 모션 센서(예컨대, 자이로스코프, 자력계, 가속도계)로부터 수신되는 정보 또는 값에 의해 결정될 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)는 카메라 및 자이로스코프 센서를 포함하는 스마트폰일 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)와 통합된 모션 센서는 마이크로-전자-기계 시스템(MEMS) 기술로 제조된 진동-구조 자이로스코프를 포함할 수 있다. 특정 실시예로, 자이로스코프는 모바일 컴퓨팅 장치(100)의 회전 방향 또는 회전 움직임 대 시간을 결정하는데 사용될 수 있다. 특정 실시예로, 자이로스코프는 회전(또는 각) 속도를 결정하는 속도 자이로스코프(rate gyroscope)일 수 있다. 예로서 제한 없이, 속도 자이로스코프는 라디안/초 또는 도/초(degree/s)의 단위로 각속도에 해당하는 데이터, 정보 또는 값을 제공할 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)의 회전(또는 각) 방향은 시간에 대한 자이로스코프 센서 데이터의 적분으로 결정될 수 있다. 특정 실시예로, 각 방향(θ(t))은 시간 및 특정 2차원 또는 3차원 좌표계의 하나 이상의 축에 대한 카메라의 각도를 표현할 수 있다. 특정 실시예로, 각 방향 또는 모션은 예컨대 피치(pitch) 축, 롤(roll) 축 또는 요우(yaw) 축과 같은 다양한 회전 축을 참조로 결정될 수 있다. 특정 실시예로, 센서 데이터의 적분은 특정 시간 구간 동안 센서 데이터를 합산하거나 평균화하여 수행될 수 있다. 예로서 제한 없이, 속도 자이로스코프에 의해 결정되는 바와 같이 시간(t1) 및 각속도(ω(t))에서의 초기 각 방향(θ(t1))을 고려하면, 추후 시간(t2)에서의 각 방향은 수식 θ(t2) = θ(t1) + ω(t)×(t2 - t1)로부터 결정될 수 있다. 특정 실시예로, 식 ω(t)는 t1≤t≤t2인 t에서 얻어질 수 있다. 특정 실시예로, 식 ω(t)는 t1에서 t2까지의 시간 구간 동안 얻어지는 ω(t)의 평균값을 나타낼 수 있다.
특정 실시예로, 자력계(예컨대, 자기장 센서)는 모바일 컴퓨팅 장치(100)의 방향 또는 회전 운동을 측정하는데 사용될 수 있다. 자력계는 모바일 컴퓨팅 장치(100)의 각 방향을 결정하도록 지구의 자기장 또는 임의의 다른 적절한, 실질적으로 정적인 자기장을 감지할 수 있다. 특정 실시예로, 가속도계는 모바일 컴퓨팅 장치(100)의 병진 또는 회전 운동을 결정하는데 사용될 수 있다. 특정 실시예로, 가속도계 센서 데이터는 모바일 컴퓨팅 장치(100)의 선형 가속도를 결정하는데 사용될 수 있다. 게다가, 특정 시간 구간 동안 가속도 데이터를 적분하는 것은 모바일 컴퓨팅 장치(100)의 속도를 결정하는데 사용될 수 있고, 제2 적분 연산을 수행하는 것은 시간의 함수로서 모바일 컴퓨팅 장치(100)의 위치의 결정을 가능하게 할 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)의 회전 또는 병진 운동은 멀티미디어 클립을 구성하는 이미지들을 분석하여 결정될 수 있다. 예로서 제한 없이, 특징-기반 분석(feature-based analysis)은 멀티미디어 클립의 이미지 내 하나 이상의 특징(예컨대, 구별되는, 정지된 물체 또는 가장자리)을 추적하고 이미지 사이의 특징의 위치 변화로부터 카메라의 모션을 결정하는데 사용될 수 있다.
도 1의 예는 카메라 흔들림과 적어도 부분적으로 연관될 수 있는 일련의 예시적인 움직임이 가해지는 모바일 컴퓨팅 장치(100)를 도시한다. 특정 실시예로, 모바일 컴퓨팅 장치(100)의 움직임은 의도된 움직임(예컨대, 카메라의 패닝(panning))을 따른 카메라 흔들림의 조합으로 발생할 수 있다. 특정 실시예로, 카메라 움직임은 멀티미디어 클립의 녹화 중 카메라의 의도하지 않거나 원치않은 움직임, 흔들임 또는 진동을 일컬을 수 있다. 예로서 제한 없이, 카메라 흔들림은 적어도 부분적으로, 카메라를 파지하면서 하나 이상의 손의 움직임으로, 카메라를 파지하면서(예컨대, 사람이 걷거나, 달리거나, 뛰면서) 사람의 신체의 움직임으로 또는 카메라가 위치하는 물체의 움직임으로 발생할 수 있다. 본 명세서는 임의의 적절한 하나 이상의 소스로부터 발생하는 임의의 적절한 카메라 흔들림을 고려한다.
도 1에서, 움직임은 모바일 컴퓨팅 장치(100)의 하나 이상의 회전, 병진 또는 하나 이상의 회전이나 병진의 임의의 적절한 조합을 포함할 수 있다. 도 1(그리고 도 2의 아래)에 도시된 움직임은 명료함을 위해 과장될 수 있다. 특정 실시예로, 카메라 흔들림과 연관된 회전은 대략 0.5도 내지 10도의 크기를 가질 수 있고, 카메라 흔들림과 연관된 병진은 대략 0.5 내지 10mm의 크기를 가질 수 있다. 도 1에서, 모바일 컴퓨팅 장치(100)은 (도 1의 좌측) 시간 t0에서 초기 방향을 가질 수 있고, (도 1의 중앙) 시간 t1에서 다른 방향으로 이동할 수 있으며, 이후 (도 2의 우측) 시간 t2에서 다른 방향으로 이동할 수 있다. 도 1에서, 모바일 컴퓨팅 장치(100)의 움직임은 회전, 병진 또는 회전과 병진 모두를 포함할 수 있다. 특정 실시예로, 컴퓨팅 장치는 모바일 컴퓨팅 장치(100)의 회전 모션, 병진 모션 또는 회전과 병진 모션 모두에 기반하여 비디오 안정화를 활성화할지를 결정할 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)에는 회전 모션과 병진 모션 모두를 포함할 수 있는 움직임이 가해질 수 있고, 컴퓨팅 장치는 모바일 컴퓨팅 장치(100)의 회전 모션에 기반하여 비디오 안정화를 활성화할지를 결정할 수 있다. 비록 본 명세서는 특정 크기를 가진 모바일 컴퓨팅 장치(100)의 특정 움직임을 기술하고 도시하지만, 본 명세서는 임의의 적절한 크기를 가진 모바일 컴퓨팅 장치(100)의 임의의 적절한 움직임을 고려한다.
도 2는 각도 Θ(220)만큼 예시적인 회전을 가하는 예시적인 모바일 컴퓨팅 장치(100)의 상면도이다. 도 2에서, 모바일 컴퓨팅 장치(100)는 카메라를 포함할 수 있고, 모바일 컴퓨팅 장치(100)의 회전은 적어도 부분적으로 카메라 흔들림의 결과일 수 있다. 도 2에서, 모바일 컴퓨팅 장치(100)는 시간 t0에서 초기 방향을 가질 수 있고, 시간 t1에서 최종 방향으로 각도 Θ(220)만큼 회전될 수 있다. 선(200)과 선(210)은 카메라 또는 카메라 렌즈가 위치하는 모바일 컴퓨팅 장치(100)의 정면에 대해 실질적으로 직교할 수 있다. 선(200)과 선(210)은 각각 모바일 컴퓨팅 장치(100)의 초기 방향 및 최종 방향을 나타낼 수 있고, 선(200)과 선(210) 사이의 각도 Θ(220)는 모바일 컴퓨팅 장치(100)의 회전량을 나타낼 수 있다. 도 2에서, 벡터(230)는 초기 방향에서 최종 방향으로 모바일 컴퓨팅 장치(100)의 회전과 연관된 모션 벡터를 나타낼 수 있다. 모션 벡터(230)는 선(200)과 선(210)에 직교하도록 지향될 수 있고, 모바일 컴퓨팅 장치(100)가 회전되는 회전축을 따라 지향될 수 있다.
도 3 및 4는 모바일 컴퓨팅 장치(100)의 예시적인 모션과 연관된 예시적인 모션 벡터를 도시한다. 특정 실시예로, 2개의 방향 사이의 모바일 컴퓨팅 장치(100)의 회전 모션은 회전축을 따라 지향되고 회전의 크기와 비례하는 크기를 가지는 벡터로 표현될 수 있다. 특정 실시예로, 사원법(quaternions), 오일러 각(Euler angles) 또는 회전 메트릭은 모바일 컴퓨팅 장치(100)의 방향 또는 회전을 표현하거나 결정하는데 사용될 수 있다. 비록 본 명세서는 방향이나 회전의 특정 표현을 기술하고 도시하지만, 본 명세서는 방향이나 회전의 임의의 적절한 표현을 고려한다. 특정 실시예로, 회전 모션이나 방향은 모션 벡터를 사용하여 도시될 수 있는데, 이때 모션 벡터는 한 위치에서 다른 위치로의 모바일 컴퓨팅 장치(100)의 모션을 나타낼 수 있다. 도 3의 예에서, 모션 벡터(300 및 310)는 2개의 방향 사이의 모바일 컴퓨팅 장치(100)의 특정한 회전을 각각 나타낼 수 있다. 도 4의 예에서, 모션 벡터(400 및 410)는 2개의 방향 사이의 모바일 컴퓨팅 장치(100)의 특정한 회전을 각각 나타낼 수 있다. 도 3 및 4에서, 각(320 및 420)는 관련 모션 벡터 사이의 차이를 각각 나타낼 수 있다. 도 3의 각(320)은 도 4의 각(420)에 비하여 상대적으로 크다. 도 3은 2가지 회전 모션의 회전축 간에 상대적으로 차이가 큰 모바일 컴퓨팅 장치(100)의 2가지 회전 모션(300 및 310)을 나타낼 수 있다. 예로서 제한 없이, 도 3의 모션 벡터(300)는 모바일 컴퓨팅 장치(100)의 롤링 모션(rolling motion)을 실질적으로 나타낼 수 있고, 모션 벡터(310)는 피칭(pitching) 또는 요잉(yawing) 모션을 실질적으로 나타낼 수 있다. 도 4는 2가지 회전 모션의 회전축 간에 상대적으로 차이가 작은 2가지 회전 모션(400 및 410)을 나타날 수 있다. 예로서 제한 없이, 도 4의 모션 벡터(400)는 모바일 컴퓨팅 장치(100)의 롤링 모션을 실질적으로 나타낼 수 있고, 모션 벡터(410)는 또한 실질적으로 롤링 모션인 다른 모션을 나타낼 수 있다.
특정 실시예로, 카메라 흔들림의 양은 예컨대 자이로스코프 센서로 표시되는 바와 같이 멀티미디어 클립 내 하나의 프레임에서 다음 프레임으로의 카메라의 모션 또는 방향에 의해 결정될 수 있다. 예로서, 멀티미디어 클립이 한 프레임에 대해 특정 방향으로 모션을 가지고 후속 프레임 내 모션이 실질적으로 동일한 방향을 따라 계속된다면, 카메라는 매끄럽게 움직였고 흔들리거나 덜컥거리지 않았다고 결정될 수 있다. 특정 실시예로, 카메라 방향 또는 카메라 흔들림이 빈번하게 방향을 변화시킨다면, 안정화된 비디오에서 모션 블러를 가지는 문제가 있을 수 있닫. 특정 실시예로, 도 3의 예에 도시된 바와 같이, 모션 벡터 각이 상대적으로 크게 변하는 하나 이상의 모션은 카메라 흔들림에 의해 적어도 부분적으로 유발되는 하나 이상의 움직임을 겪는 모바일 컴퓨팅 장치(100)를 나타낼 수 있다. 특정 실시예로, 도 4의 예에 도시된 바와 같이, 모션 벡터 각이 상대적으로 작게 변하는 하나 이상의 모션은 카메라 흔들림과 연관되지 않은 하나 이상의 움직임(예컨대, 모바일 컴퓨팅 장치(100)의 카메라는 패닝하고 있을 수 있음)을 겪는 모바일 컴퓨팅 장치(100)을 나타낼 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)가 멀티미디어 클립의 녹화 중 카메라 흔들림과 연관된 하나 이상의 움직임을 겪었는지 여부는 2 이상의 모션 벡터 각 사이의 변화로부터 적어도 부분적으로 결정될 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)가 멀티미디어 클립의 녹화 중 카메라 흔들림과 연관된 하나 이상의 움직임을 겪었는지 여부를 결정하는 루틴은 모든 모션 벡터 각 또는 몇몇의 특정 모션 벡터 각과 연관된 정보를 사용할 수 있다. 예로서 제한 없이, 이런 루틴은 특정 방향, 시간 스탬프, 크기 또는 크기 범위를 가지는 모션 벡터 각 또는 모션 벡터 각 변화와 연관된 정보를 사용할 수 있다.
특정 실시예로, 모션 벡터는 비디오 클립의 2개의 이미지 프레임과 연관될 수 있고, 모션 벡터는 2개의 이미지 프레임 사이에서 발생하는 카메라 방향의 변화로부터 결정될 수 있다. 특정 실시예로, 모션 벡터는 멀티미디어 클립에서 서로 이어지고 이들 사이의 다른 이미지 프레임이 없는 2개의 이미지 프레임과 연관될 수 있다. 특정 실시예로, 모션 벡터는 하나 이상의 다른 이미지 프레임에 의해 분리될 수 있는 멀티미디어 클립의 2개의 이미지 프레임과 연관될 수 있다. 특정 실시예로, 일련의 모션 벡터는 비디오 클립에 대해 결정될 수 있고, 비디오 클립의 임의의 적절한 이미지 프레임 쌍은 연관된 모션 벡터를 가질 수 있다. 특정 실시예로, 카메라 흔들림의 양은 2개의 모션 벡터 사이의 각(ΔΘ)을 결정하여 정량화될 수 있는데, 이때 2개의 모션 벡터는 이들 사이에 0, 1, 또는 임의의 적절한 수의 이미지 프레임이나 다른 모션 벡터를 가질 수 있다. 특정 실시예로, 임의의 적절한 이미지 프레임과 연관된 임의의 2개의 적절한 모션 벡터 사이의 내적(dot product)이 결정될 수 있고, 이때 내적은 2개의 벡터 사이의 각의 함수인 값을 반환한다. 본 명세서는 2개의 모션 벡터 사이의 각을 결정하기 위한 임의의 적절한 기술을 고려한다. 특정 실시예로, 모션 벡터(ΔΘ) 사이의 각은 모션 변화, 각 방향 변화, 카메라 방향 변화 또는 방향 변화라고 일컬어질 수 있다.
특정 실시예로, 멀티미디어 클립에 비디오 안정화를 적용할지 여부는 멀티미디어 클립과 연관된 2 이상의 모션 벡터 사이의 각에 의해 적어도 부분적으로 결정될 수 있다. 특정 실시예로, 멀티미디어 클립에 비디오 안정화를 적용할지 여부는 멀티미디어 클립과 연관된 하나 이상의 모션 벡터의 크기에 의해 적어도 부분적으로 결정될 수 있다. 예로서 제한 없이, 상대적으로 작은 크기를 가진 모션 벡터는 카메라의 움직임이 상대적으로 작은 크기를 가짐을 나타낼 수 있고, 결국 모션 블러의 양이 상대적으로 작음을 나타낼 수 있다. 특정 실시예로, 상당한 양의 카메라 흔들림이 있다면, 또한 모션 벡터 사이의 각이 상당히 클 수 있다. 특정 실시예로, 각이 클수록, 안정화된 멀티미디어 클립에서 문제가 되는 모션 블러가 더 많을 수 있다. 특정 실시예로, 저역-통과 필터는 카메라의 안정화된 방향이나 모션(또는, 합성-카메라 또는 가상-카메라 방향이나 모션)을 획득하도록 카메라의 방향 정보에 적용될 수 있다. 특정 실시예로, 모션 벡터는 카메라 흔들림의 양을 결정하도록 카메라의 안정화된 방향이나 모션과 비교될 수 있다. 비록 본 명세서는 카메라 흔들림을 결정하고 정량화하기 위한 특정 기술을 기술하고 도시하지만, 본 명세서는 카메라 흔들림을 결정하거나 정량화하기 위한 임의의 적절한 기술을 고려한다.
특정 실시예로, 멀티미디어 클립은 특정 프레임 속도로 녹화될 수 있고, 센서는 그 프레임 속도와 동일하거나 다를 수 있는 속도로 방향 정보를 제공할 수 있다. 예로서 제한 없이, 25FPS로 녹화된 멀티미디어 클립은 대략 40ms의 연속하는 프레임의 시작점 사이의 시간을 가질 수 있다. 예로서 제한 없이, 자이로스코프 센서는 대략 10ms의 업데이트 사이의 구간에 해당하는, 대략 100Hz의 속도로 방향 정보 또는 업데이트를 제공할 수 있다. 특정 실시예로, 특정 프레임에 대한 카메라의 방향의 결정 또는 녹화는 특정 프레임의 이미지가 포착되거나 녹화될 때 동기식으로 또는 실질적으로 동시에 발생할 수 있다. 특정 실시예로, 특정 프레임에 대한 카메라의 방향의 결정은 모션 센서 또는 방향 센서에 의해 제공되는 하나 이상의 업데이트를 평균화하거나, 합산하거나, 하나의 값을 선택하거나, 최소값이나 최대값을 취하는 것을 포함할 수 있다. 예로서 제한 없이, 대략 40ms의 연속하는 프레임과 모션 센서 사이의 프레임 속도 및 대략 10ms의 업데이트 간격에 대하여, 특정 프레임에 대한 카메라의 방향의 결정은 1 내지 4개의 센서 판독을 포함할 수 있다. 특정 실시예로, 멀티미디어 클립은 일련의 이미지 프레임을 포함할 수 있는데, 이때 각 이미지 프레임은 이미지가 포착되었을 때 멀티미디어 클립 내 시간을 표시하는 해당 시간 스탬프를 가진다. 특정 실시예로, 센서는 방향 정보를 주기적으로 제공할 수 있는데, 이때 각 카메라 방향은 해당 시간 스탬프를 가진다. 특정 실시예로, 특정 프레임에 대한 카메라 방향은 특정 프레임에 대한 시간 스탬프 근처에서 발생하는 시간 스탬프를 가진 2 이상의 카메라 방향을 보간(interpolating)하여 알아낼 수 있다. 비록 본 명세서는 특정 프레임 속도 및 특정 모션 센서 업데이트 속도를 기술하지만, 본 명세서는 임의의 적절한 프레임 속도 및 임의의 적절한 모션 센서 업데이트 속도를 고려한다.
특정 실시예로, 비디오 안정화를 적용할지 여부를 결정하는 것은 비디오를 녹화할 때 존재하는 광량과 관련이 있을 수 있다. 특정 실시예로, 존재하는 광량은 카메라의 노출 시간으로부터 결정될 수 있다. 노출 시간(또는 셔터 속도)은 특정 이미지를 포착할 때 카메라의 셔터가 얼마나 오랫동안 열려 있는지 또는 샘플링 시간이 얼마나 오랫동안 사용되는지를 말할 수 있다. 특정 실시예로, 카메라의 이미지 센서에 도달하는 광량은 노출 시간에 비례할 수 있다. 특정 실시예로, 존재하는 광량을 결정하기 위한 기술은 카메라와 통합된 광센서를 사용하거나 광레벨 또는 밝기의 표시로 프레임을 분석하는 것을 포함할 수 있다. 저조도 상태에서, 카메라는 멀티미디어 클립을 모션 블러에 더 취약하게 만들 수 있는 상대적으로 긴 노출 시간을 가질 수 있다. 예로서 제한 없이, 밝은 광(예컨대, 맑은 실외)에서 전형적인 노출 시간은 대략 0.5ms일 수 있는 한편, 저조도(예컨대, 실내 또는 어두운 공간)에서 전형적인 노출 시간은 대략 30ms일 수 있다. 밝은 광에서, 모션 블러는 카메라의 상대적으로 짧은 노출 시간으로 인해 큰 문제가 되지 않을 수 있다. 특정 실시예로, 짧은 노출 시간을 고려하면, 모션 블러는 카메라 모션의 상대적으로 큰 진폭 또는 큰 주파수로부터 발생할 수 있고, 카메라 흔들림과 연관된 일반적인 카메라 모션에 대한 의미 있는 모션 블러는 발생하지 않을 수 있다. 저조도 하에서, 대략 상대적으로 긴 노출 시간 동안 카메라를 흔들리지 않게 잡아서 이미지를 안정화하는 것은 어려울 수 있기 때문에, 모션 블러가 발생할 수 있다.
도 5는 예시적인 모바일 컴퓨팅 장치(100)와 연관된 예시적인 트레이스(traces) 또는 시간-종속 값 및 몇몇의 예시적인 멀티미디어 클립(500)에 대한 예시적인 노출 시간을 도시한다. 도 5에서, 특정 멀티미디어 클립(500)에 대해, 트레이스(510)는 멀티미디어 클립(500)의 프레임에 대한 노출 시간(ΔT)을 나타낼 수 있고, 트레이스(520)는 프레임 사이의 방향 변화(ΔΘ)를 나타낼 수 있다. 특정 실시예로, 방향 변화(520)의 값은 멀티미디어 클립(500)과 연관된 모션 벡터로부터 결정될 수 있다. 도 5에서, 노출 시간(510) 및 방향 변화(520)는 가로 시간축(530) 및 임의의 단위로 노출 시간과 방향 변화를 나타내는 세로축(540)을 따라 그려진다. 특정 실시예로, 모바일 컴퓨팅 장치(100)에 대한 값인 노출 시간(510) 또는 방향 변화(520)는 특정 멀티미디어 클립의 각 프레임에 대해 결정될 수 있다. 특정 실시예로, 모바일 컴퓨팅 장치(100)에 대한 값인 노출 시간(510) 또는 방향 변화(520)는 특정 멀티미디어 클립의 특정 프레임(예컨대, 2개 프레임당 하나, 3개 프레임당 하나)에 대해 결정될 수 있다. 도 5에서, 멀티미디어 클립(500A)은 예컨대 대략 20ms와 같이 상대적으로 긴 노출 시간(510A)을 가지며, 이는 비디오가 상대적으로 저조도 상태에서 녹화됨을 나타낼 수 있다. 도 5에서, 멀티미디어 클립(500A)은 상대적으로 낮은 방향 변화(520A)를 가지며, 이는 카메라가 녹화 중 상대적으로 안정적이었음(예컨대, 상대적으로 카메라 흔들림이 적었음)을 나타낼 수 있다.
도 6은 도 5에서의 예시적인 움직임(520)과 예시적인 노출 시간(510)의 곱과 연관된 예시적인 트레이스 또는 시간-종속 값을 도시한다. 도 6에서, 트레이스(600)는 특정 멀티미디어 클립(500)에 대한 모션-블러 메트릭 함수(MBMF)를 나타낼 수 있다. 도 6에서 트레이스(600)로 표현되는 모션-블러 메트릭 함수(600)는 노출 시간(510)과 방향 변화(520)를 곱하여 획득될 수 있다. 특정 실시예로, 모션-블러 메트릭 함수(600)는 수식 MBMF(t) = ΔT(t)×ΔΘ(t)로부터 결정될 수 있고, 특정 시간 ti에 발생하는 특정 프레임에 대한 모션-블러 메트릭 함수(600)의 값은 MBMF(ti) = ΔT(ti)×ΔΘ(ti)로 표현될 수 있다. 특정 실시예로, MBMF(600)는 비디오 안정화가 멀티미디어 클립(500)에 적용되는 경우 멀티미디어 클립(500) 또는 멀티미디어 클립의 특정 섹션 내 모션 블러의 표시를 제공할 수 있다. 특정 실시예로, 특정 시간에 발생하는 특정 프레임에 대한 모션-블러 메트릭 함수(600)의 값은 그 특정 프레임에 대한 모션 블러의 표시를 제공할 수 있다. 특정 실시예로, MBMF(600)는 특정 멀티미디어 클립(500)에 비디오 안정화를 적용하거나 활성화할 것인지를 결정하는데 적어도 부분적으로 사용될 수 있다.
상술한 바와 같이, 멀티미디어 클립(500A)은 상대적으로 긴 노출 시간(510A) 및 상대적으로 낮은 방향 변화량(520A)을 가질 수 있다. 도 6에서, 모션-블러 메트릭 함수(600A)는 노출 시간(510A)과 방향 변화(520A)의 곱을 나타내며, 클립(500A)에 비디오 안정화를 적용할 것인지의 결정은 MBMF(600)에 의존할 수 있다. 특정 실시예로, 도 6의 선(610)으로 표시된 바와 같이, 모션-블러 메트릭 함수(600)의 일부 부분이 특정 임계값(610)을 초과하면, 비디오 안정화가 멀티미디어 클립(500)에 적용되지 않아야 한다고 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭 함수(600)가 멀티미디어 클립(500)의 지속시간 중 특정 부분 동안 특정 임계값(610)을 초과하면, 안정화된 비디오에 생길 수 있는 모션 블러의 문제로 인해 비디오 안정화가 멀티미디어 클립(500)에 적용되지 않아야 한다고 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭 함수가 멀티미디어 클립의 지속시간의 1%, 2%, 5%, 10% 또는 임의의 적절한 퍼센트 이상 동안 기결정된 임계값(610)을 초과하면 비디오 안정화를 적용하지 않도록 결정될 수 있다. 예로서 제한 없이, 모션-블러 메트릭 함수(600)가 멀티미디어 클립의 지속시간의 5% 이상 동안 기결정된 임계값(610)을 초과하면, 비디오 안정화를 적용하지 않도록 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭 함수(600)가 멀티미디어 클립(500)의 지속시간의 특정 부분 동안 특정 임계값(610)을 초과하지 않는다면, 비디오 안정화가 멀티미디어 클립(500)에 적용될 수 있다고 결정될 수 있고, 그 결과로 생성되는 안정화된 멀티미디어 클립은 모션 블러에 대해 큰 문제가 없을 수 있다. 특정 실시예로, 모션-블러 메트릭 함수가 멀티미디어 클립의 지속시간의 90%, 95%, 98%, 99% 또는 임의의 적절한 퍼센트 이상 동안 기결정된 임계값(610)을 초과하지 않는다면 비디오 안정화가 적용될 수 있다고 결정될 수 있다. 예로서 제한 없이, 모션-블러 메트릭 함수(600)가 멀티미디어 클립의 지속시간의 95% 이상 동안 기결정된 임계값(610)을 초과하지 않는다면, 비디오 안정화가 적용될 수 있다고 결정될 수 있다.
특정 실시예로, 멀티미디어 클립(500)에 대한 모션-블러 메트릭(MBM)은 모션-블러 메트릭 함수(600)로부터 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭은 MBMF(600)의 평균, 중간값, 하나의 값, 최소값 또는 최대값으로서 결정될 수 있다. 특정 실시예로, N개의 프레임을 포함하는 멀티미디어 클립(500)에 대해, 모션-블러 메트릭은 모션-블러 메트릭 함수(600)의 평균을 나타낼 수 있고, 수식
Figure 112016044834767-pct00001
로부터 결정될 수 있다. 특정 실시예로, 특정 멀티미디어 클립에 대한 모션-블러 메트릭은 하나의 수 또는 하나의 값일 수 있다. 특정 실시예로, 모션-블러 메트릭은 안정화된 멀티미디어 클립에 존재할 수 있는 카메라 흔들림으로 인한 모션-블러 아티팩트의 상대적인 양을 표시하는 척도일 수 있다. 특정 실시예로, 멀티미디어 클립(500)에 대한 모션-블러 메트릭이 기결정된 임계값(610)을 초과하면, 비디오 안정화가 멀티미디어 클립(500)에 적용되지 않아야 한다고 결정될 수 있다. 특정 실시예로, 멀티미디어 클립(500)에 대한 모션-블러 메트릭이 기결정된 임계값(610)을 초과하지 않는다면, 비디오 안정화가 멀티미디어 클립(500)에 적용될 수 있다고 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭 임계값(610)에 대한 기결정된 값은 안정화된 멀티미디어 클립의 대략 90%, 95%, 98%, 99% 또는 임의의 적절한 퍼센트가 실질적으로 모션-블러 아티팩트에서 벗어날 수 있는 값 그리고 안정화된 멀티미디어 클립의 대략 10%, 5%, 2%, 1% 또는 임의의 적절한 퍼센트가 모션-블러 아티팩트를 포함할 수 있는 값을 나타낼 수 있다. 특정 실시예로, MBM이 기결정된 모션-블러 메트릭 임계값(610)을 초과하는 멀티미디어 클립(500)에 대하여, 안정화된 멀티미디어 클립(500)의 5% 이상이 모션-블러 아티팩트를 포함할 수 있고, 안정화된 멀티미디어 클립(500)의 95% 미만이 실질적으로 모션-블러 아티팩트에서 벗어날 수 있다. 특정 실시예로, MBM이 기결정된 모션-블러 메트릭 임계값(610) 미만인 멀티미디어 클립(500)에 대하여, 안정화된 멀티미디어 클립(500)의 5% 미만이 모션-블러 아티팩트를 포함할 수 있고, 안정화된 멀티미디어 클립(500)의 95% 이상이 실질적으로 모션-블러 아티팩트에서 벗어날 수 있다. 특정 실시예로, 비디오-안정화 루틴을 적용할지를 결정하는 것은 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 대략 95% 이상이 실질적으로 모션-블러 아티팩트에서 벗어날 수 있는지를 결정하는 것을 포함한다. 비록 본 명세서는 모션-블러 메트릭 함수(600)로부터 결정된 특정 모션-블러 메트릭을 기술하지만, 본 명세서는 임의의 적절한 모션-블러 메트릭 함수(600)로부터 임의의 적절한 방식으로 결정된 임의의 적절한 모션-블러 메트릭을 고려한다.
도 6에서, 모션-블러 메트릭 함수(600A)는 멀티미디어 클립(500A)의 녹화 중 발생한 방향 변화(520A)의 양이 상대적으로 적음에 부분적으로 기인하여 상대적으로 낮다. 특정 실시예로, MBMF(600)가 임계값(610A) 미만이기 때문에 멀티미디어 클립(500A)에 비디오 안정화를 적용하도록 결정될 수 있다. 특정 실시예로, MBMF(600A)로부터 결정된 MBM에 대한 값은 임계값(610A) 미만일 수 있고, MBM의 값에 기반하여 멀티미디어 클립(500A)에 비디오 안정화를 적용하도록 결정될 수 있다. 도 6에서, 모션-블러 메트릭 함수(600B)는 멀티미디어 클립(500B)과 연관될 수 있고 해당 노출 시간(510B) 및 방향 변화(520B)로부터 결정될 수 있다. 노출 시간(510B)은 상대적으로 짧을 수 있고(예컨대, 멀티미디어 클립(500B)은 밝은 광 상태에서 녹화되었을 수 있고), 방향 변화(520B)는 멀티미디어 클립(500B)이 녹화되는 동안 카메라 흔들림이 상대적으로 컸음을 나타낼 수 있다. 모션-블러 메트릭 함수(600B)는 상대적으로 짧은 노출 시간(510B)(예컨대, 대략 0.5ms)으로 인해 상대적으로 낮을 수 있다. 특정 실시예로, 상대적으로 낮은 MBMF(600B)의 값 또는 낮은 해당 모션-블러 메트릭의 값에 기반하여 멀티미디어 클립(500B)에 비디오 안정화를 적용하도록 결정될 수 있다. 도 6에서, 멀티미디어 클립(500C)과 연관된 모션-블러 메트릭 함수(600C)는 멀티미디어 클립(500C)에서 모션 블러의 양이 작거나 보통임을 나타낼 수 있다. 예로서 제한 없이, 비디오-안정화 기준은 모션-블러 메트릭 함수(600C)가 임계값(610C)을 초과하지 않아야 함을 요구한다면, 멀티미디어 클립(500C)에 비디오 안정화를 적용하지 않도록 결정될 수 있다. 예로서 제한 없이, MBMF(600C)로부터 결정된 모션-블러 메트릭 값이 임계값(610C) 미만이라면, 멀티미디어 클립(500C)에 비디오 안정화를 적용하도록 결정될 수 있다. 도 6에서, 녹화 중 발생한 방향 변화(520D)가 상대적으로 클 뿐 아니라 노출 시간(510D)은 상대적으로 보통(예컨대, 5-10ms)임에 적어도 부분적으로 기인하여 멀티미디어 클립(500D)과 연관된 모션-블러 메트릭 함수(600D)는 상대적으로 크다. 특정 실시예로, 임계값(610D)에 비교되는 MBMF(600D)(또는 관련 모션-블러 메트릭)에 기반하여 멀티미디어 클립(500D)에 비디오 안정화를 적용하지 않도록 결정될 수 있다. 비록 본 명세서는 멀티미디어 클립에 비디오 안정화를 적용할지를 결정하기 위한 특정 기준을 기술하지만, 본 명세서는 멀티미디어 클립에 비디오 안정화를 적용할지를 결정하기 위한 임의의 적절한 기준을 고려한다.
특정 실시예로, 비디오-안정화 루틴을 활성화하거나 적용하는 것은 멀티미디어 클립에서 카메라 흔들림의 효과가 감소되거나 제거되는 경우 루틴을 통해 멀티미디어 클립을 송신하는 것을 일컬을 수 있다. 특정 실시예로, 비디오-안정화 루틴을 활성화하거나 비활성화할지 여부의 결정은 모바일 컴퓨팅 장치(100)가 비디오를 녹화하는 동안 모바일 컴퓨팅 장치(100)에 의해 실시간으로 수행될 수 있다. 특정 실시예로, 비디오-안정화 루틴을 적용할지 여부의 결정은 멀티미디어 클립 및 적절한 센서 정보나 값이 녹화된 후 수행될 수 있다. 특정 실시예로, 비디오-안정화 루틴을 활성화하거나 비활성화할지 여부의 결정은 멀티미디어 클립을 녹화한 모바일 컴퓨팅 장치(100)에 의해 수행될 수 있다. 특정 실시예로, 비디오-안정화 루틴을 활성화하거나 비활성화할지 여부의 결정은 멀티미디어 클립을 녹화한 모바일 컴퓨팅 장치(100)와는 상이한 다른 컴퓨팅 장치에 의해 수행될 수 있다. 예로서 제한 없이, 모바일 컴퓨팅 장치(100)는 멀티미디어 클립을 서버로 업로드할 수 있고, 서버에서 동작하는 애플리케이션 또는 서버와 연결되는 컴퓨팅 장치는 멀티미디어 클립에 대한 비디오 안정화를 활성화하거나 비활성화할지를 결정할 수 있다. 본 명세서는 임의의 적절한 컴퓨팅 장치에 의해 수행되는 멀티미디어 클립에 비디오 안정화를 적용할지 여부에 대한 임의의 적절한 결정을 고려한다.
특정 실시예로, 비디오-안정화 루틴은 이미지 내 특징이 프레임마다 추적되어 카메라의 모션을 회복한 후 이를 보상하는 특징-기반 안정화를 사용하여 구현될 수 있다. 특정 실시예로, 비디오 안정화는 비디오 녹화 장치에 내장되거나 장착되는 센서 신호(예컨대, 자이로스코프, 가속도계 또는 자력계)에 기반하여 구현될 수 있으며, 센서 정보는 비디오가 녹화되고 있을 때 기록된다. 특정 실시예로, 자이로스코프로부터의 정보는 카메라의 방향을 재구축하도록 시간에 대하여 통합될 수 있고, 카메라의 방향 정보는 멀티미디어 클립을 안정화하는 루틴에서 사용될 수 있다. 특정 실시예로, 저역-통과 필터는 안정화되거나 합성된 카메라 방향을 획득하도록 카메라의 방향 정보에 적용될 수 있고, 비디오-안정화 루틴에 사용될 수 있다. 비록 본 명세서는 비디오 안정화를 구현하기 위한 특정 기술을 기술하고 도시하지만, 본 명세서는 임의의 적절한 비디오-안정화 기술을 고려한다.
도 7은 특정 멀티미디어 클립에 비디오 안정화를 적용할지를 결정하기 위한 예시적인 방법(700)을 도시한다. 이 방법은 단계 710에서 시작할 수 있는데, 이때 하나 이상의 카메라 모션이 결정될 수 있고, 모션은 멀티미디어 클립의 녹화 중 카메라의 움직임에 해당할 수 있다. 특정 실시예로, 녹화 중 카메라의 움직임은 카메라 흔들림에 적어도 부분적으로 기인할 수 있다. 단계 720에서, 녹화 중 존재하는 하나 이상의 광량이 결정될 수 있다. 단계 730에서, 멀티미디어 클립에 대한 모션-블러 메트릭이 결정될 수 있다. 특정 실시예로, 모션-블러 메트릭은 결정된 카메라의 모션 및 결정된 광량의 존재로부터 결정될 수 있다. 단계 740에서, 모션-블러 메트릭에 기반하여 멀티미디어 클립에 비디오-안정화를 적용할지가 결정될 수 있고, 이 때 이 방법은 종료할 수 있다. 특정 실시예로, 모션-블러 메트릭이 기결정된 값 이하라면, 비디오 안정화가 멀티미디어 클립에 적용될 수 있다. 특정 실시예로, 모션-블러 메트릭이 기결정된 값을 초과하면, 멀티미디어 클립에 대한 비디오 안정화가 활성화되지 않을 수 있다. 적절한 경우, 특정 실시예는 도 7의 방법의 하나 이상의 단계를 반복할 수 있다. 비록 본 명세서는 도 7의 방법의 특정 단계가 특정 순서로 발생하는 것으로 설명하고 도시하지만, 본 명세서는 도 7의 방법의 임의의 적절한 단계가 임의의 적절한 순서로 발생하는 것을 고려한다. 더욱이, 비록 본 명세서는 도 7의 방법의 특정 단계를 포함하는, 특정 멀티미디어 클립에 비디오 안정화를 적용할지를 결정하기 위한 예시적인 방법을 설명하고 도시하지만, 본 명세서는 적절한 경우 도 7의 방법의 단계들의 전부 또는 일부를 포함하거나 어떤 단계도 포함하지 않을 수 있는 임의의 적절한 단계를 포함하는, 멀티미디어 클립에 비디오 안정화를 적용할지를 결정하기 위한 임의의 적절한 방법을 고려한다. 게다가, 비록 본 명세서는 도 7의 방법의 특정 단계를 수행하는 특정 컴포넌트, 장치 또는 시스템을 설명하고 도시하지만, 본 명세서는 도 7의 방법의 임의의 적절한 단계를 수행하는 임의의 적절한 컴포넌트, 장치 또는 시스템의 임의의 적절한 조합을 고려한다.
도 8은 예시적인 컴퓨터 시스템(800)을 도시한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(800)은 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(800)은 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예로, 하나 이상의 컴퓨터 시스템들(800)을 실행하는 소프트웨어는 본 명세서에 기술되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나, 본 명세서에 기술되거나 도시된 기능을 제공한다. 특정 실시예는 하나 이상의 컴퓨터 시스템들(800)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 적절한 경우 컴퓨터 시스템에 대한 언급은 컴퓨팅 장치 및 그 역을 포함할 수 있다. 게다가, 컴퓨터 시스템에 대한 언급은 적절한 경우 하나 이상의 컴퓨터 시스템을 포함할 수 있다.
본 명세서는 임의의 적절한 수의 컴퓨터 시스템(800)을 고려한다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(800)을 고려한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 임베디드 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예컨대, 컴퓨터-온-모듈(COM) 또는 시스템-온-모듈(SOM)), 데스크톱 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 상호작용형 키오스크(kiosk), 메인 프레임, 컴퓨터 시스템 메쉬(mesh), 모바일 전화, 개인 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템 또는 이들의 2 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(800)은 하나 이상의 컴퓨터 시스템(800)들을 포함할 수 있거나; 일체형 또는 분산형일 수 있거나; 다수의 위치에 걸쳐 있거나, 다수의 기계에 걸쳐 있거나; 다수의 데이터 센터에 걸쳐 있거나; 하나 이상의 네트워크에 하나 이상의 클라우드 성분을 포함할 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실질적으로 공간적 또는 시간적 제한 없이 실행할 수 있다. 예로서 제한 없이, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 실시간으로 또는 일괄 모드로 실행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템(800)은 본 명세서에 기술되거나 도시되는 하나 이상의 방법의 하나 이상의 단계를 다른 시기에 또는 다른 위치에서 실행할 수 있다.
특정 실시예로, 컴퓨터 시스템(800)은 프로세서(802), 메모리(804), 저장소(806), 입력/출력(I/O) 인터페이스(808), 통신 인터페이스(810) 및 버스(812)를 포함한다. 본 명세서가 특정 배열로 특정한 수의 특정 구성요소를 갖는 특정 컴퓨터 시스템을 기술하고 도시하지만, 본 명세서는 임의의 적절한 배열로 임의의 적절한 수의 임의의 적절한 구성요소를 갖는 임의의 적절한 컴퓨터 시스템을 고려한다.
특정 실시예로, 프로세서(802)는 가령 컴퓨터 프로그램을 구성하는 명령어와 같은 명령어를 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해, 프로세서(802)는 내부 레지스터, 내부 캐시, 메모리(804) 또는 저장소(806)로부터 명령어를 검색(또는 페치(fetch))할 수 있고; 명령어를 디코딩하고 실행한 후; 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(804) 또는 저장소(806)에 기록할 수 있다. 특정 실시예로, 프로세서(802)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 캐시를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 캐시들을 포함하는 프로세서(802)를 고려한다. 예로서 제한 없이, 프로세서(802)는 하나 이상의 명령어 캐시들, 하나 이상의 데이터 캐시들 및 하나 이상의 변환 색인 버퍼(translation lookaside buffers, TLBs)를 포함할 수 있다. 명령어 캐시에 저장된 명령어들은 메모리(804)나 저장소(806) 내 명령어들의 사본일 수 있고, 명령어 캐시는 프로세서(802)에 의한 이런 명령어들의 검색 속도를 높일 수 있다. 데이터 캐시 내의 데이터는 프로세서(802)에서 실행하는 다음 명령들에 의해 접근하거나 메모리(804)나 저장소(806)로 기록하기 위해 프로세서(802)에서 실행되는 이전 명령들의 결과; 또는 다른 적절한 데이터를 동작하는데 프로세서(802)에서 실행하는 명령어를 위한 메모리(804)나 저장소(806) 내의 데이터의 사본일 수 있다. 데이터 캐시는 프로세서(802)에 의한 판독 또는 기록 동작의 속도를 높일 수 있다. TLB들은 프로세서(802)에 의한 가상 주소 변환의 속도를 높일 수 있다. 특정 실시예로, 프로세서(802)는 데이터용, 명령어용 또는 주소용 하나 이상의 내부 레지스터를 포함할 수 있다. 본 명세서는 적절한 경우 임의의 적절한 수의 임의의 적절한 내부 레지스터들을 포함하는 프로세서(802)를 고려한다. 적절한 경우, 프로세서(802)는 하나 이상의 산술 논리 유닛(ALUs)을 포함할 수 있거나; 멀티-코어 프로세서일 수 있거나; 하나 이상이 프로세서들(62)을 포함할 수 있다. 본 명세서가 특정 프로세서를 기술하고 도시하지만, 본 명세서는 임의의 적절한 프로세서를 고려한다.
특정 실시예로, 메모리(804)는 프로세서(802)가 실행하는 명령어 또는 프로세서(802)가 운영하는 데이터를 저장하기 위한 메인 메모리를 포함한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 저장소(806)나 또 다른 소스(가령, 예컨대 또 다른 컴퓨터 시스템(800))에서 메모리(804)로 명령어를 로딩할 수 있다. 이후, 프로세서(802)는 메모리(804)에서 내부 레지스터나 내부 캐시로 명령어를 로딩할 수 있다. 명령어를 실행하기 위해, 프로세서(802)는 내부 레지스터나 내부 캐시로부터 명령어를 검색하고 이들을 디코딩할 수 있다. 명령어의 실행 중 또는 실행 후, 프로세서(802)는 (중간 결과 또는 최종 결과일 수 있는) 하나 이상의 결과를 내부 레지스터나 내부 캐시로 기록할 수 있다. 이후, 프로세서(802)는 하나 이상의 이런 결과를 메모리(804)에 기록할 수 있다. 특정 실시예로, 프로세서(802)는 (저장소(806) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(804)에서 단지 명령어만을 실행하며, (저장소(806) 또는 다른 곳과는 대조적으로) 하나 이상의 내부 레지스터나 내부 캐시에서 또는 메모리(804)에서 단지 데이터만을 운영한다. (주소 버스 및 데이터 버스를 각각 포함할 수 있는) 하나 이상의 메모리 버스는 프로세서(802)를 메모리(804)로 연결할 수 있다. 하기에 기술되는 바와 같이, 버스(812)는 하나 이상의 메모리 버스를 포함할 수 있다. 특정 실시예로, 하나 이상의 메모리 관리 유닛(MMUs)은 프로세서(802)와 메모리(804) 사이에 상주하며, 프로세서(802)에 의해 요청되는 메모리(804)로의 접근을 용이하게 한다. 특정 실시예로, 메모리(804)는 랜덤 액세스 메모리(RAM)를 포함한다. 적절한 경우, 이런 RAM은 휘발성 메모리일 수 있다. 적절한 경우, 이런 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이런 RAM은 단일 포트형 또는 다중-포트형 RAM일 수 있다. 본 명세서는 임의의 적절한 RAM을 고려한다. 적절한 경우, 메모리(804)는 하나 이상의 메모리(804)를 포함할 수 있다. 본 명세서가 특정 메모리를 기술하고 도시하지만, 본 명세서는 임의의 적절한 메모리를 고려한다.
특정 실시예로, 저장소(806)는 데이터용 또는 명령어용 대용량 저장소를 포함한다. 예로서 제한 없이, 저장소(806)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 자기-광학 디스크, 자기 테이프, 범용 직렬 버스(USB) 드라이브 또는 이들의 2 이상의 조합을 포함할 수 있다. 적절한 경우, 저장소(806)는 착탈식 또는 비-착탈식(또는 고정) 매체를 포함할 수 있다. 적절한 경우, 저장소(806)는 컴퓨터 시스템(800)의 내부 또는 외부에 있을 수 있다. 특정 실시예로, 저장소(806)는 비휘발성, 고체-상태(solid-state) 메모리이다. 특정 실시예로, 저장소(806)는 읽기 전용 메모리(ROM)를 포함한다. 적절한 경우, 이런 ROM은 마스크-프로그램화된 ROM, 프로그램가능 ROM(PROM), 소거가능 PROM(EPROM), 전기적 소거가능 PROM(EEPROM), 전기적 변경가능 ROM(EAROM), 플래시 메모리 또는 이들의 2 이상의 조합일 수 있다. 본 명세서는 임의의 적절한 물리적 형태를 취하는 대용량 저장소(806)를 고려한다. 적절한 경우, 저장소(806)는 프로세서(802)와 저장소(806) 사이의 통신을 용이하게 하는 하나 이상의 저장소 제어 유닛을 포함할 수 있다. 적절한 경우, 저장소(806)는 하나 이상의 저장소(806)를 포함할 수 있다. 본 명세서가 특정 저장소를 기술하고 도시하지만, 본 명세서는 임의의 적절한 저장소를 고려한다.
특정 실시예로, I/O 인터페이스(808)는 컴퓨터 시스템(800)과 하나 이상의 I/O 장치 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 적절한 경우, 컴퓨터 시스템(800)은 하나 이상의 이들 I/O 장치를 포함할 수 있다. 하나 이상의 이들 I/O 장치는 사람과 컴퓨터 시스템(800) 사이의 통신을 가능하게 할 수 있다. 예로서 제한 없이, I/O 장치는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라(still camera), 스타일러스(stylus), 태블릿, 터치 스크린, 트랙볼(trackball), 비디오 카메라, 다른 적절한 I/O 장치 또는 이들의 2 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서를 포함할 수 있다. 본 명세서는 임의의 적절한 I/O 장치 및 이에 대한 적절한 I/O 인터페이스(808)를 고려한다. 적절한 경우, I/O 인터페이스(808)는 프로세서(802)가 하나 이상의 이들 I/O 장치를 구동할 수 있도록 하는 하나 이상의 장치 또는 소프트웨어 드라이버를 포함할 수 있다. 적절한 경우, I/O 인터페이스(808)는 하나 이상의 I/O 인터페이스(808)를 포함할 수 있다. 본 명세서가 특정 I/O 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 I/O 인터페이스를 고려한다.
특정 실시예로, 통신 인터페이스(810)는 컴퓨터 시스템(800)과 하나 이상의 다른 컴퓨터 시스템(800)이나 하나 이상의 네트워크 사이의 통신(가령, 예컨대 패킷-기반 통신)을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 통신 인터페이스(810)는 이더넷이나 다른 유선-기반 네트워크로 통신하기 위한 네트워크 인터페이스 제어장치(NIC)나 네트워크 어댑터 또는 가령 WI-FI 네트워크와 같이 무선 네트워크로 통신하기 위한 무선 NIC(WNIC)나 무선 어댑터를 포함할 수 있다. 본 명세서는 임의의 적절한 네트워크 및 이에 대한 임의의 적절한 통신 인터페이스(810)를 고려한다. 예로서 제한 없이, 컴퓨터 시스템(800)은 애드 혹 네트워크(ad hoc network), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 네트워크(MAN), 인터넷의 하나 이상의 부분 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 하나 이상의 이런 네트워크의 하나 이상의 부분은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(800)은 무선 PAN(WPAN)(가령, 예컨대 BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(가령, 예컨대 GSM(Global System for Mobile Communication) 네트워크), 다른 적절한 무선 네트워크 또는 2 이상의 이런 네트워크들의 조합으로 통신할 수 있다. 적절한 경우, 컴퓨터 시스템(800)은 임의의 이들 네트워크에 대한 임의의 적절한 통신 인터페이스(810)를 포함할 수 있다. 적절한 경우, 통신 인터페이스(810)는 하나 이상의 통신 인터페이스(810)를 포함할 수 있다. 본 명세서가 특정 통신 인터페이스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 통신 인터페이스를 고려한다.
특정 실시예로, 버스(812)는 컴퓨터 시스템(800)의 구성요소를 서로 연결하는 하드웨어, 소프트웨어 또는 이들 모두를 포함한다. 예로서 제한 없이, 버스(812)는 AGP(Accelerated Graphics Port)이나 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HT(HYPERTRANSPORT) 인터커넥트, ISA(Industry Standard Architecture) 버스, INFINIBAND 인터커넥트, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCIe(PCI-Express) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standard Association local) 버스, 다른 적절한 버스 또는 2 이상의 이런 버스의 조합을 포함할 수 있다. 적절한 경우, 버스(812)는 하나 이상의 버스(812)를 포함할 수 있다. 본 명세서가 특정 버스를 기술하고 도시하지만, 본 명세서는 임의의 적절한 버스나 인터커넥트를 고려한다.
본 명세서에서, 컴퓨터-판독가능한 비-일시적 저장매체 또는 저장매체들은 하나 이상의 반도체 기반 또는 다른 집적회로(ICs)(가령, 예컨대 FPGAs(field-programmable gate arrays) 또는 ASICs(application-specific ICs)), 하드 디스크 드라이브(HDDs), 하이브리드 하드 디스크(HHDs), 광학 디스크, 광학 디스크 드라이브(ODDs), 자기-광학 디스크, 자기-광학 드라이브, 플로피 디스크, 플로피 디스크 드라이브(FDDs), 자기 테이프, 고체-상태 드라이브(SSDs), RAM-드라이브, SECURE DIGITAL 카드나 드라이브, 임의의 다른 적절한 컴퓨터-판독가능한 비-일시적 저장매체 또는, 적절한 경우, 2 이상의 이들의 임의의 적절한 조합을 포함할 수 있다. 적절한 경우, 컴퓨터-판독가능한 비-일시적 저장매체는 휘발성, 비휘발성 또는 휘발성과 비휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 포괄적인 것이며 배타적인 것이 아니다. 따라서, 본 명세서에서 "A 또는 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A, B 또는 둘 모두"를 의미한다. 게다가, "및"은 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, 공동 및 별개 모두이다. 따라서, 본 명세서에서 "A 및 B"는 명시적으로 다르게 지시하거나 문맥상 달리 지시되지 않는 한, "A 및 B가 공동이든 별개이든 상관없이 모두"를 의미한다.
본 명세서의 범위는 당업자가 이해할 수 있는 본 명세서에 기술되거나 도시된 예시적인 실시예들에 대한 모든 변화, 치환, 변형, 대체 및 변경을 포함한다. 본 명세서의 범위는 본 명세서에 기술되거나 도시된 예시적인 실시예들로 국한되지 않는다. 게다가, 본 명세서는 특정 컴포넌트, 구성요소, 기능, 동작 또는 단계를 포함하는 것으로 본 명세서의 각각의 실시예들을 기술하고 도시하지만, 임의의 이런 실시예들은 당업자가 이해할 수 있는 본 명세서에 어디든 기술되거나 도시되는 임의의 컴포넌트, 구성요소, 기능, 동작 또는 단계의 임의의 조합이나 치환을 포함할 수 있다. 게다가, 첨부된 청구범위에서 특정 기능을 수행하도록 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 할 수 있게 하거나, 동작할 수 있거나, 동작하는 장치나 시스템 또는 장치나 시스템의 구성요소에 대한 언급은 장치, 시스템 또는 구성요소가 그렇게 설계되거나, 배치되거나, 할 수 있거나, 구성되거나, 가능하거나, 동작할 수 있거나 동작하는 한, 장치, 시스템, 구성요소, 그 또는 그러한 특정 기능이 활성화되었는지, 턴온 되었는지, 잠금 해제되었는지 여부를 포함한다.

Claims (30)

  1. 컴퓨팅 장치에 의해, 멀티미디어 클립의 녹화 중 카메라의 움직임에 대응하는 카메라의 하나 이상의 모션을 결정하는 단계;
    컴퓨팅 장치에 의해, 녹화 중 존재하는 하나 이상의 광량(amounts of light)을 결정하는 단계;
    컴퓨팅 장치에 의해, 결정된 모션 및 광량으로부터 멀티미디어 클립에 대한 모션-블러 메트릭(motion-blur metric)을 결정하는 단계; 및
    컴퓨팅 장치에 의해, 모션-블러 메트릭에 기반하여 멀티미디어 클립에 비디오-안정화 루틴을 적용할지 여부를 결정하는 단계를 포함하며,
    상기 멀티미디어 클립은 디지털 비디오를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 카메라의 하나 이상의 모션을 결정하는 단계는:
    컴퓨팅 장치에 의해, 모션 센서로부터 정보를 수신하는 단계; 및
    컴퓨팅 장치에 의해, 모션 센서 정보로부터 카메라의 하나 이상의 각 방향 변화(angular orientation changes)를 결정하는 단계를 포함하며,
    상기 모션 센서는 자이로스코프인 방법.
  3. 제 1 항에 있어서,
    녹화 중 카메라의 움직임은 카메라의 흔들림에 적어도 부분적으로 기인하는 방법.
  4. 제 1 항에 있어서,
    상기 컴퓨팅 장치는 자이로스코프 및 카메라를 포함하는 스마트폰인 방법.
  5. 제 1 항에 있어서,
    상기 녹화 중 존재하는 하나 이상의 광량을 결정하는 단계는, 컴퓨팅 장치에 의해, 멀티미디어 클립의 하나 이상의 이미지 프레임에 대한 노출 시간을 결정하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 멀티미디어 클립에 대한 모션-블러 메트릭을 결정하는 단계는, 컴퓨팅 장치에 의해, 멀티미디어 클립의 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱을 결정하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 멀티미디어 클립에 대한 모션-블러 메트릭을 결정하는 단계는, 컴퓨팅 장치에 의해, 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱의 평균값을 결정하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 비디오-안정화 루틴을 적용할지 여부를 결정하는 단계는, 컴퓨팅 장치에 의해, 모션-블러 메트릭이 기결정된 임계값 미만인지를 결정하는 단계를 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 비디오-안정화 루틴을 적용할지 여부를 결정하는 단계는, 컴퓨팅 장치에 의해, 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 95% 이상이 모션-블러 아티팩트(motion-blur artifacts)에서 벗어나는지를 결정하는 단계를 포함하는 방법.
  10. 제 1 항에 있어서,
    상기 비디오-안정화 루틴을 적용할지 여부를 결정하는 단계는, 컴퓨팅 장치에 의해, 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 5% 미만이 모션-블러 아티팩트를 포함하는지를 결정하는 단계를 포함하는 방법.
  11. 하나 이상의 컴퓨터-판독가능한 비-일시적 저장매체로서,
    멀티미디어 클립의 녹화 중 카메라의 움직임에 대응하는 카메라의 하나 이상의 모션을 결정하고;
    녹화 중 존재하는 하나 이상의 광량을 결정하며;
    결정된 모션 및 광량으로부터 멀티미디어 클립에 대한 모션-블러 메트릭을 결정하고;
    모션-블러 메트릭에 기반하여 멀티미디어 클립에 비디오-안정화 루틴을 적용할지 여부를 결정하도록 실행될 때 동작하는 소프트웨어를 수록하며,
    상기 멀티미디어 클립은 디지털 비디오를 포함하는, 컴퓨터-판독가능한 비-일시적 저장매체.
  12. 제 11 항에 있어서,
    상기 소프트웨어는:
    모션 센서로부터 정보를 수신하고;
    모션 센서 정보로부터 카메라의 하나 이상의 각 방향 변화를 결정하도록 실행될 때 또한 동작하며,
    상기 모션 센서는 자이로스코프인 컴퓨터-판독가능한 비-일시적 저장매체.
  13. 제 11 항에 있어서,
    녹화 중 카메라의 움직임은 카메라의 흔들림에 적어도 부분적으로 기인하는 컴퓨터-판독가능한 비-일시적 저장매체.
  14. 제 11 항에 있어서,
    상기 카메라는 자이로스코프를 포함하는 스마트폰에 내장되는 컴퓨터-판독가능한 비-일시적 저장매체.
  15. 제 11 항에 있어서,
    상기 소프트웨어는 멀티미디어 클립의 하나 이상의 이미지 프레임에 대한 노출 시간을 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  16. 제 11 항에 있어서,
    상기 소프트웨어는 멀티미디어 클립의 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱을 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  17. 제 16 항에 있어서,
    상기 소프트웨어는 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱의 평균값을 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  18. 제 11 항에 있어서,
    상기 소프트웨어는 모션-블러 메트릭이 기결정된 임계값 미만인지를 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  19. 제 11 항에 있어서,
    상기 소프트웨어는 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 95% 이상이 모션-블러 아티팩트에서 벗어나는지를 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  20. 제 11 항에 있어서,
    상기 소프트웨어는 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 5% 미만이 모션-블러 아티팩트를 포함하는지를 결정하도록 실행될 때 또한 동작하는 컴퓨터-판독가능한 비-일시적 저장매체.
  21. 하나 이상의 프로세서; 및
    프로세서와 연결되고 프로세서에 의해 실행가능한 명령어를 포함하는 메모리를 포함하는 시스템으로서,
    상기 프로세서는:
    멀티미디어 클립의 녹화 중 카메라의 움직임에 대응하는 카메라의 하나 이상의 모션을 결정하고;
    녹화 중 존재하는 하나 이상의 광량을 결정하며;
    결정된 모션 및 광량으로부터 멀티미디어 클립에 대한 모션-블러 메트릭을 결정하고;
    모션-블러 메트릭에 기반하여 멀티미디어 클립에 비디오-안정화 루틴을 적용할지 여부를 결정하는 명령어를 실행할 때 동작하며,
    상기 멀티미디어 클립은 디지털 비디오를 포함하는 시스템.
  22. 제 21 항에 있어서,
    상기 프로세서는:
    모션 센서로부터 정보를 수신하고;
    모션 센서 정보로부터 카메라의 하나 이상의 각 방향 변화를 결정하는 명령어를 실행할 때 또한 동작하며,
    상기 모션 센서는 자이로스코프인 시스템.
  23. 제 21 항에 있어서,
    녹화 중 카메라의 움직임은 카메라의 흔들림에 적어도 부분적으로 기인하는 시스템.
  24. 제 21 항에 있어서,
    상기 시스템은 자이로스코프 및 카메라를 포함하는 스마트폰인 시스템.
  25. 제 21 항에 있어서,
    상기 프로세서는 멀티미디어 클립의 하나 이상의 이미지 프레임에 대한 노출 시간을 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  26. 제 21 항에 있어서,
    상기 프로세서는 멀티미디어 클립의 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱을 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  27. 제 26 항에 있어서,
    상기 프로세서는 복수의 프레임에 대한 노출 시간과 카메라 방향 변화의 곱의 평균값을 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  28. 제 21 항에 있어서,
    상기 프로세서는 모션-블러 메트릭이 기결정된 임계값 미만인지를 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  29. 제 21 항에 있어서,
    상기 프로세서는 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 95% 이상이 모션-블러 아티팩트에서 벗어나는지를 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
  30. 제 21 항에 있어서,
    상기 프로세서는 멀티미디어 클립에 비디오-안정화 루틴을 적용한 후 멀티미디어 클립의 5% 미만이 모션-블러 아티팩트를 포함하는지를 결정하는 명령어를 실행할 때 또한 동작하는 시스템.
KR1020167012365A 2013-10-11 2014-10-09 멀티미디어 클립에 대한 비디오 안정화 적용 KR101707600B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/052,001 US9066014B2 (en) 2013-10-11 2013-10-11 Applying video stabilization to a multimedia clip
US14/052,001 2013-10-11
PCT/US2014/059807 WO2015054443A1 (en) 2013-10-11 2014-10-09 Applying video stabilization to a multimedia clip

Publications (2)

Publication Number Publication Date
KR20160058195A KR20160058195A (ko) 2016-05-24
KR101707600B1 true KR101707600B1 (ko) 2017-02-16

Family

ID=52809337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167012365A KR101707600B1 (ko) 2013-10-11 2014-10-09 멀티미디어 클립에 대한 비디오 안정화 적용

Country Status (10)

Country Link
US (2) US9066014B2 (ko)
EP (2) EP3567846A1 (ko)
JP (1) JP6204585B2 (ko)
KR (1) KR101707600B1 (ko)
CN (2) CN105830427B (ko)
AU (1) AU2014331925B2 (ko)
CA (1) CA2927445C (ko)
IL (1) IL244927A (ko)
MX (1) MX348256B (ko)
WO (1) WO2015054443A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300834B2 (en) 2009-05-20 2016-03-29 Dacuda Ag Image processing for handheld scanner
EP3703001A1 (en) 2013-08-31 2020-09-02 ML Netherlands C.V. User feedback for real-time checking and improving quality of scanned image
US9066014B2 (en) * 2013-10-11 2015-06-23 Facebook, Inc. Applying video stabilization to a multimedia clip
EP3089102B1 (en) 2013-12-03 2019-02-20 ML Netherlands C.V. User feedback for real-time checking and improving quality of scanned image
EP3092603B1 (en) 2014-01-07 2022-05-11 ML Netherlands C.V. Dynamic updating of composite images
US10708491B2 (en) * 2014-01-07 2020-07-07 Ml Netherlands C.V. Adaptive camera control for reducing motion blur during real-time image capture
WO2015173173A1 (en) 2014-05-12 2015-11-19 Dacuda Ag Method and apparatus for scanning and printing a 3d object
JP6677098B2 (ja) * 2015-07-01 2020-04-08 株式会社リコー 全天球動画の撮影システム、及びプログラム
US10097758B2 (en) * 2015-11-18 2018-10-09 Casio Computer Co., Ltd. Data processing apparatus, data processing method, and recording medium
US10678337B2 (en) * 2016-01-04 2020-06-09 The Texas A&M University System Context aware movement recognition system
US10579169B2 (en) * 2016-03-08 2020-03-03 Egalax_Empia Technology Inc. Stylus and touch control apparatus for detecting tilt angle of stylus and control method thereof
US10591731B2 (en) * 2016-12-06 2020-03-17 Google Llc Ocular video stabilization
KR102385360B1 (ko) 2017-09-19 2022-04-12 삼성전자주식회사 이미지 보정을 수행하는 전자 장치 및 그 동작 방법
CN108702464B (zh) * 2017-10-16 2021-03-26 深圳市大疆创新科技有限公司 一种视频处理方法、控制终端及可移动设备
CN110351579B (zh) * 2019-08-16 2021-05-28 深圳特蓝图科技有限公司 一种视频的智能剪辑方法
US11481471B2 (en) * 2019-08-16 2022-10-25 Meta Platforms, Inc. Mapping convolution to a matrix processor unit
JP2021033015A (ja) * 2019-08-22 2021-03-01 キヤノン株式会社 像ブレ補正装置及びその制御方法、プログラム、記憶媒体
KR20210115185A (ko) * 2020-03-12 2021-09-27 삼성전자주식회사 이미지 처리 방법 및 장치
KR20230023506A (ko) * 2021-08-10 2023-02-17 삼성전자주식회사 이미지 안정화를 수행하는 전자 장치 및 그의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009058966A (ja) 2000-06-05 2009-03-19 Fujifilm Corp カメラの絞り制御方法及び装置、並びにカメラ
JP2009273058A (ja) 2008-05-09 2009-11-19 Olympus Imaging Corp 撮像装置及び撮像方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091448A (en) * 1993-12-27 2000-07-18 Canon Kabushiki Kaisha Apparatus for preventing an image blur prevention device from changing states during an image recording operation
JPH07191360A (ja) * 1993-12-27 1995-07-28 Canon Inc カメラ防振制御装置
US6747691B1 (en) * 1997-09-09 2004-06-08 Minolta Co., Ltd. Apparatus capable of determining shake of the apparatus relative to an object
JPH1184446A (ja) * 1997-09-09 1999-03-26 Minolta Co Ltd 振れ補正機能付きカメラ
JP4053205B2 (ja) * 2000-03-21 2008-02-27 株式会社リコー 撮像装置
EP1377040A1 (en) * 2002-06-19 2004-01-02 STMicroelectronics S.r.l. Method of stabilizing an image sequence
KR100547998B1 (ko) 2003-02-10 2006-02-01 삼성테크윈 주식회사 촬영 상태가 부적절하였음을 알려주는 디지털 카메라의제어방법
JP4766320B2 (ja) * 2006-02-06 2011-09-07 カシオ計算機株式会社 撮像装置及びそのプログラム
JP4594257B2 (ja) * 2006-03-10 2010-12-08 富士フイルム株式会社 ディジタル撮像装置
US7697836B2 (en) 2006-10-25 2010-04-13 Zoran Corporation Control of artificial lighting of a scene to reduce effects of motion in the scene on an image being acquired
US8144780B2 (en) * 2007-09-24 2012-03-27 Microsoft Corporation Detecting visual gestural patterns
KR101023946B1 (ko) * 2007-11-02 2011-03-28 주식회사 코아로직 객체 추적을 이용한 디지털 영상의 손떨림 보정 장치 및방법
KR100939541B1 (ko) * 2008-02-18 2010-02-03 주식회사 앤비젼 자동 영상 검사 시스템 및 그 시스템에서의 자동 영상 검사방법
JP2009284394A (ja) * 2008-05-26 2009-12-03 Olympus Imaging Corp 撮像装置および撮像方法
JP5328307B2 (ja) * 2008-11-14 2013-10-30 キヤノン株式会社 振れ補正機能を有する撮影装置及びその制御方法
KR20100112788A (ko) 2009-04-10 2010-10-20 삼성테크윈 주식회사 손떨림 방지 기능과 플래쉬 기능의 제어 방법, 이를 이용한 촬영 방법 및 디지털 카메라 모듈
JP5424835B2 (ja) * 2009-11-30 2014-02-26 キヤノン株式会社 画像処理装置、画像処理方法
JP2011166391A (ja) 2010-02-09 2011-08-25 Nikon Corp 撮像装置
US8558889B2 (en) * 2010-04-26 2013-10-15 Sensormatic Electronics, LLC Method and system for security system tampering detection
WO2011145297A1 (ja) * 2010-05-21 2011-11-24 パナソニック株式会社 撮像装置、画像処理装置、画像処理方法、および画像処理プログラム
CN102457675B (zh) * 2010-10-27 2014-08-06 展讯通信(上海)有限公司 防止手持式照像设备在拍照时抖动的方法
US8922707B2 (en) * 2011-01-26 2014-12-30 Aptina Imaging Corporation Systems and methods for luminance-based scene-change detection for continuous autofocus
JP6005370B2 (ja) * 2012-03-05 2016-10-12 ローム株式会社 位置制御装置、手振れ補正装置、撮像装置
JP2014143530A (ja) * 2013-01-23 2014-08-07 Sony Corp 情報処理装置と情報処理方法および撮像装置
US9066014B2 (en) * 2013-10-11 2015-06-23 Facebook, Inc. Applying video stabilization to a multimedia clip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009058966A (ja) 2000-06-05 2009-03-19 Fujifilm Corp カメラの絞り制御方法及び装置、並びにカメラ
JP2009273058A (ja) 2008-05-09 2009-11-19 Olympus Imaging Corp 撮像装置及び撮像方法

Also Published As

Publication number Publication date
EP3567846A1 (en) 2019-11-13
CN109413332A (zh) 2019-03-01
US20150215540A1 (en) 2015-07-30
JP2016535948A (ja) 2016-11-17
CA2927445A1 (en) 2015-04-16
US20150103189A1 (en) 2015-04-16
US9066014B2 (en) 2015-06-23
EP3055990A1 (en) 2016-08-17
AU2014331925A1 (en) 2016-05-26
IL244927A0 (en) 2016-05-31
AU2014331925B2 (en) 2016-06-30
EP3055990B1 (en) 2019-06-05
IL244927A (en) 2017-04-30
WO2015054443A1 (en) 2015-04-16
US9307149B2 (en) 2016-04-05
EP3055990A4 (en) 2017-08-30
MX2016004578A (es) 2016-08-01
CA2927445C (en) 2017-06-20
JP6204585B2 (ja) 2017-09-27
MX348256B (es) 2017-06-05
CN105830427A (zh) 2016-08-03
CN105830427B (zh) 2018-12-21
KR20160058195A (ko) 2016-05-24

Similar Documents

Publication Publication Date Title
KR101707600B1 (ko) 멀티미디어 클립에 대한 비디오 안정화 적용
US10484606B1 (en) Stabilization of low-light video
US11979662B2 (en) Systems and methods for stabilizing videos
CN106210544B (zh) 一种移动终端及其拍摄视频的防抖处理方法、系统
US8964040B2 (en) High dynamic range image registration using motion sensor data
AU2017202332B2 (en) Movement-triggered action for mobile device
US11671707B2 (en) Systems and methods for dynamic stabilization adjustment
JP2017147682A (ja) 全天球撮影システム
CN113301249B (zh) 全景视频处理方法、装置、计算机设备和存储介质
WO2019176177A1 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant