KR20190138568A - 비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템 - Google Patents

비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템 Download PDF

Info

Publication number
KR20190138568A
KR20190138568A KR1020190047738A KR20190047738A KR20190138568A KR 20190138568 A KR20190138568 A KR 20190138568A KR 1020190047738 A KR1020190047738 A KR 1020190047738A KR 20190047738 A KR20190047738 A KR 20190047738A KR 20190138568 A KR20190138568 A KR 20190138568A
Authority
KR
South Korea
Prior art keywords
camera
video
intra
sequence
movement
Prior art date
Application number
KR1020190047738A
Other languages
English (en)
Other versions
KR102363838B1 (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 KR20190138568A publication Critical patent/KR20190138568A/ko
Application granted granted Critical
Publication of KR102363838B1 publication Critical patent/KR102363838B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Studio Devices (AREA)

Abstract

이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템을 제공한다. 상기 방법은 상기 카메라의 이동량을 나타내는 입력을 수신하는 단계, 미리 결정된 거리에 관한 입력을 수신하는 단계 및 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 시퀀스의 비디오 프레임의 인트라-코딩과 인터-코딩 사이에서 선택하여 상기 카메라가 인트라-코딩된 캡쳐 비디오 프레임 사이에서 상기 미리 결정된 거리 이하로 이동시키는 단계를 포함한다.

Description

비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템{A METHOD, CONTROLLER, AND SYSTEM FOR ENCODING A SEQUENCE OF VIDEO FRAMES}
본 발명은 비디오 인코딩 분야에 관한 것이다. 특히, 본 발명은 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위한 방법 및 관련 장치에 관한 것이다.
모니터링 및 감시 목적으로 비디오 카메라를 사용하는 것이 증가하고 있다. 이는 특히 신체에 착용된 카메라나 열차 또는 버스에서 사용되는 카메라와 같이 이동하는 물체에 장착된 카메라에 적용된다. 신체에 착용된 카메라는 경찰이나 보안 직원이 사용할 수 있으며, 카메라에 의해 캡쳐된 비디오는 프렌식(forensic) 목적을 위해 사용될 수 있다. 비디오를 증거로 제공하기 위해, 카메라 착용자가 이동하는 방법에 관계없이 비디오의 품질이 충분히 높아야 하는 것이 중요하다. 많은 비디오 인코딩 방법은 정지된 카메라에 적용되고 최적화되기 때문에, 개선이 필요하다.
상기의 관점에서, 따라서 본 발명의 목적은 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스의 인코딩을 개선하는 것이다. 특히, 이동하는 물체의 모션에 관계없이 비디오의 특정 품질을 보장하기 위해 인코딩을 물체의 모션에 적용하는 것이 목적이다.
제1 양태에 따르면, 상기 목적은 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하는 방법에 의해 달성되며,
상기 카메라의 이동량을 나타내는 입력을 수신하는 단계,
미리 결정된 거리에 관한 입력을 수신하는 단계, 및
상기 카메라가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 거리 이하로 이동하도록, 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계를 포함한다.
일련의 비디오 프레임은 각각이 이미지 데이터를 운반하는 이미지 프레임의 시간적 시퀀스(temporal sequence)를 의미한다. 비디오 프레임은 일반적으로 인트라-코딩되거나 인터-코딩될 수 있다. 인트라-코딩된 프레임은 임의의 다른 프레임을 참고하지 않고 인코딩된다는 점에서 독립형(self-contained)이다. 따라서, 인트라-코딩된 프레임은 임의의 다른 프레임에 액세스(access)하지 않고 디코딩될 수 있다. 이는 하나 이상의 다른 프레임을 참조하여 인코딩되는 인터-코딩된 프레임과는 대조적이다. 이러한 방식으로, 상기 인터-코딩된 프레임은 일반적으로 상기 인트라-코딩된 프레임보다 낮은 비트 코스트(bit cost)로 인코딩될 수 있다. 그러나 인터-코딩된 프레임의 낮은 비트 코스트는 낮은 품질의 코스트를 발생시킨다. 즉, 상기 인트라-코딩된 프레임은 일반적으로 높은 품질이어서, 인터-코딩된 프레임보다 더 높은 포렌식 값을 갖는 이점을 갖는다.
정지된 카메라의 경우, 비디오 품질이 일정 수준을 유지하는 것을 보장하기 위해 시간이 지남에 따라 인트라-코딩된 프레임을 균등하게 분배하는 것이 타당하다. 그러나, 이는 이동하는 물체에 부착된 카메라에 대해 동일한 방식으로 타당하지 않다. 이러한 경우를 확인하기 위해, 이동하는 물체에 장착되는 카메라와 인트라-프레임이 특정 시간 속도로 인코딩되는 경우를 고려한다. 물체가 제1 속도로 이동할 때, 시간 속도는 제1 공간 속도로 변환된다. 예를 들어, 하나의 프레임이 물체에 의해 이동된 미터마다 인트라-코딩될 수 있다. 물체가 대신 제2 더 높은 속도로 이동하면, 시간 속도는 제2 낮은 공간 속도로 변환된다. 예를 들어, 하나의 프레임이 물체에 의해 이동되는 10 미터마다 인트라-코딩될 수 있다. 첫번째 경우에서, 하나의 고품질 프레임은 물체에 의해 이동된 1 미터마다 인코딩되고, 두번째 경우에서, 하나의 고품질 프레임은 물체에 의해 이동된 10 미터마다 인코딩된다. 따라서, 시간 단위마다 설정된 인트라-코딩 속도를 갖는 것은 물체가 빠르게 이동함에 따라 거리 단위마다 비디오의 품질을 저하되게 한다. 이동하는 물체에 대해 비디오의 품질을 일정하게 유지하기 위해, 대신 시간 단위가 아닌 물체에 의해 이동되는 거리 단위마다 설정된 인트라-코딩된 프레임 속도를 갖는 것이 더 합리적이다. 이는 카메라의 이동량과 카메라가 인트라-인코딩된 비디오 프레임을 캡쳐하는 사이에 미리 결정된 거리 이하로 이동하는 방식으로 미리 결정된 거리에 기초하여 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩을 선택함으로써 달성된다.
이는 또한 인코딩된 비디오에서 빠른 검색을 수행하기 위한 목적에 유리할 수 있다. 이러한 빠른 검색은 일반적으로 인트라-코딩된 프레임에 대해 인코딩된 비디오를 통해 스캐닝을 가능하게 한다. 상기 인트라-코딩된 프레임은 이어서 디코딩될 수 있고 시퀀스로 도시될 수 있다. 상기 인트라-코딩된 프레임은 독립형이기 때문에, 인트라-코딩된 프레임을 디코딩하기 위해 비디오에서의 다른 프레임을 디코딩할 필요가 없다. 카메라가 인트라-코딩된 프레임을 캡쳐하는 사이에서 미리 결정된 거리 이하로 이동하기 위해 비디오 시퀀스에서 인트라-코딩된 프레임을 분배함으로써, 카메라의 전체 모션의 우수한 커버리지를 제공하는 비디오 프레임이 빠른 검색에서 이용 가능할 것이다.
상기 이동하는 물체는 예를 들어, 사람 또는 자동차일 수 있다.
비디오 프레임의 인트라-코딩은 상기 프레임이 상기 비디오 시퀀스에서 다른 모든 프레임과 독립적으로 인코딩됨을 의미한다. 특히, 인트라-코딩된 비디오 프레임은 상기 비디오 시퀀스에서 다른 비디오 프레임을 참조하지 않고 인코딩된다. 인트라-코딩된 프레임은 때때로 I-프레임으로서, 예를 들어 H.264 및 H.265 표준으로 표시된다.
비디오 프레임의 인터-코딩은 상기 프레임이 상기 비디오 시퀀스에서 다른 프레임에 의존하여 인코딩되는 것을 의미한다. 특히, 인터-코딩된 비디오 프레임은 상기 비디오 시퀀스에서 이전에 디코딩된 비디오 프레임을 참조함으로써 인코딩될 수 있다. 인터-코딩된 프레임은 때때로 H.264 및 H.265 표준에서 B- 또는 P-프레임으로서 표시된다.
상기 카메라의 이동량을 나타내는 입력은 시간의 함수로서 상기 카메라의 이동을 나타내는 정보를 의미한다. 특히, 이동량을 나타내는 상기 입력은 시간에서의 고정된 지점 이후에 상기 카메라에 의해 이동된 거리가 도출되게 하는 임의의 정보일 수 있다. 상기 입력은 예를 들어, 시간의 함수로서의 상기 카메라의 속도 또는 시간의 함수로서의 상기 카메라의 위치를 나타낼 수 있다.
프레임이 인코딩될 때, 상기 인코더는 상기 프레임의 인트라-코딩 또는 인터-코딩 사이에서 선택한다. 상기 선택은 인트라-코딩된 프레임이 선택되는 상기 시간 속도를 지배하는 파라미터에 따라 이루어질 수 있다. 상기 시간 속도는 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 반복적으로 조절될 수 있어, 결국 상기 카메라가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 거리 이하로 이동한다. 상기 시간 속도는 상기 프레임이 인트라- 또는 인터-코딩되는 순서를 특정하는 픽처 그룹(a group of pictures; GOP) 구조의 길이와 관련될 수 있다. 따라서 상기 시간 속도를 조절하는 것은 상기 GOP 구조의 길이를 조절하는 것에 해당한다. 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계는 따라서 상기 비디오 프레임이 인트라-코딩된 프레임으로 인코딩되는 속도를 설정하는 단계를 포함할 수 있다. 이러한 방식으로, 시간 단위마다 설정된 상기 시간 속도는 거리 단위마다 설정된 인트라-코딩된 프레임의 속도로 조절될 수 있다.
프레임이 인트라-코딩되는 시간 속도를 변경하는 것은 상기 GOP 구조가 상기 카메라의 이동량에 기초하여 변경될 수 있는 방법의 일례이다. I는 I-프레임 및 P는 P-프레임을 나타내는 IPPP...형태의 GOP 구조의 경우, 상기 GOP 구조의 길이는 변경될 수 있는 상기 GOP 구조의 유일한 파라미터이다. 더욱 향상된 유형의 GOP 구조의 경우, 상기 카메라의 이동량에 따라 변경될 수 있는 상기 GOP 구조의 추가 파라미터가 존재한다. 상기 추가 파라미터는 상기 GOP 구조의 길이에 대한 대안으로서 또는 상기 GOP 구조의 길이에 추가하여 변경될 수 있다. 예를 들어, IBBPBBPBBPBBI 형태의 GOP 구조의 경우(여기서 B는 B-프레임을 나타냄), I/P-프레임들 사이의 B-프레임의 수는 상기 카메라의 이동량에 따라 변경될 수 있는 상기 GOP 구조의 추가 파라미터이다.
거리 단위마다 설정된 인트라-코딩된 프레임의 속도에 도달하기 위해, 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계는: 상기 카메라의 이동량을 나타내는 입력에 기초하여, 인트라-코딩된 비디오 프레임을 마지막으로 캡쳐한 이후에 카메라가 이동된 거리를 계산하는 단계, 및 상기 계산된 거리와 상기 미리 결정된 거리 사이의 비교에 기초하여 현재 또는 이전 비디오 프레임의 인트라-코딩 및 인터-코딩 사이를 선택하는 단계를 포함할 수 있다. 따라서, 인트라- 및 인터-코딩 사이의 선택이 이루어질 때, 마지막 인트라-코딩된 프레임이 인코딩된 이후에 상기 물체가 얼마나 멀리 이동되었는지를 확인할 수 있다. 이는 그런 다음 인트라-코딩된 프레임을 인코딩할 시간인지 아닌지를 알기 위해 상기 미리 결정된 거리와 비교될 수 있다.
보다 상세하게, 상기 계산된 거리가 임계값보다 상기 미리 결정된 거리에 더 근접하면 현재 비디오 프레임은 인트라-코딩되도록 선택될 수 있고, 상기 계산된 거리가 상기 미리 결정된 거리로부터의 임계값보다 더 크면 현재의 비디오 프레임은 인터-코딩되도록 선택될 수 있다. 따라서, 상기 계산된 거리가 여전히 상기 미리 결정된 거리로부터 여전히 큰 경우(임계값의 관점에서 측정된 바와 같이), 현재 프레임은 인터-코딩될 수 있다. 그러나, 상기 계산된 거리가 상기 미리 결정된 거리에 접근하면(상기 임계값보다 상기 미리 결정된 거리에 더 근접함), 상기 비디오 프레임은 상기 카메라가 인트라-코딩된 프레임 사이에서 상기 미리 결정된 거리보다 더 멀리 이동하지 않는 것을 보장하도록 인트라-코딩된다.
상기 임계값은 바람직하게 상기 선택 단계가 수행되는 두개의 후속 프레임을 캡쳐하는 사이에 상기 카메라에 의해 이동된 거리에 해당하거나 그 거리보다 크도록 설정된다. 이러한 방식으로, 상기 카메라는 결국 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 거리 이하로 이동할 것이다. 예를 들어, 상기 임계값은 현재 프레임을 캡쳐하는 단계와 선택 단계가 수행되는 다음 프레임을 캡쳐하는 단계 사이에서 카메라에 의해 이동된 거리에 해당하거나 그보다 더 크도록 설정될 수 있다. 상기 물체가 가변 속도를 가지기 때문에, 상기 임계값은 바람직하게 상기 카메라의 현재 이동에 적용된다. 보다 상세하게, 상기 임계값은 상기 카메라의 이동량 및 상기 미리 결정된 거리에 따라 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계가 반복되는 속도 및 상기 카메라의 이동량 중 적어도 하나에 따라 결정될 수 있다. 예로서, 현재 임계값은 상기 물체의 현재 속도와 선택 단계의 반복 주기의 곱으로 계산될 수 있다.
상기 카메라의 이동량을 나타내는 상기 입력은 마지막 인트라-코딩된 프레임을 캡쳐한 이후에 상기 카메라에 의해 이동된 거리를 계산할 수 있는 형태인 것이 바람직하다. 예를 들어, 상기 카메라의 이동량을 나타내는 입력은 특정 시간에서의 상기 카메라의 속도 및 카메라의 위치 중 적어도 하나를 포함할 수 있다. 상기 카메라의 이동량을 나타내는 입력이 시간에 따라 반복적으로 수신되기 때문에, 상기 입력은 시간의 함수로서 상기 카메라의 속도 또는 시간의 함수로서 상기 카메라의 위치 중 적어도 하나를 나타낼 수 있다.
상기 카메라의 이동량을 나타내는 입력은 가속도계, 자이로스코프(gyroscope), 또는 상기 카메라에 포함되거나 상기 이동하는 물체에 착용되는 위치 확인 장치(positioning device) 중 하나 이상으로부터 수신될 수 있다. 상기 위치 확인 장치는 위성 위치 확인 시스템, GPS 장치 또는 이의 동등물일 수 있다. 삼각 측량 기술을 기반으로 위치가 도출될 수 있는 통신 모뎀일 수도 있다.
상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계는 상기 시퀀스에서의 각각의 비디오 프레임에 대해 반복될 수 있다. 즉, 선택 단계가 반복되는 속도는 상기 비디오 시퀀스의 프레임 속도에 해당할 수 있다.
그러나, 처리 전력을 절약하기 위해, 선택 단계는 거의 수행되지 않을 수 있다. 선택 단계의 목적은 상기 카메라가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 거리 이하로 이동하는 것을 보장하는 것이다. 많은 경우, 상기 물체는 제한된 속도로만 이동할 수 있어, 상기 물체가 상기 비디오 시퀀스의 두개의 연속적인 프레임 사이에서 상기 미리 결정된 거리로 이동할 가능성이 없다. 이런 경우, 낮은 속도로 선택 단계를 반복하는 것으로 충분하다. 보다 구체적으로, 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계는 상기 이동하는 물체의 최대 속도에 따라 설정된 속도로 반복될 수 있다. 선택 단계의 반복 주기는 상기 이동하는 물체의 최대 속도와 선택 단계의 상기 반복 주기의 곱이 상기 미리 결정된 거리보다 짧도록 선택될 수 있다.
상기 비디오는 상기 카메라에 국부적으로 저장될 수 있다. 이를 위해, 상기 카메라는 비디오 저장 용량을 가질 수 있다. 상기 비디오 저장 용량은 일반적으로 제한되고 특정 기간 동안 지속되어야 한다. 예를 들어, 상기 비디오 저장 용량은 상기 카메라에 의해 캡쳐된 비디오를 하루 동안 저장하는 것을 지속해야 한다. 지속되어야 하는 특정 기간과 함께 상기 비디오 저장 용량은 비트 저장량(bit budget)을 정의한다. 상기 비트 저장량으로부터 시간 단위마다 소비될 수 있는 비트 수를 평균적으로 도출할 수 있다.
상기 미리 결정된 거리의 값은 상기 인코딩된 비디오에서의 비트 수에 영향을 미친다. 상기 물체의 제공된 속도에 대해, 미리 결정된 거리가 더 짧은 것은 인트라-코딩된 프레임이 보다 빈번하게 인코딩됨을 의미하며, 이에 따라 상기 미리 결정된 거리가 더 긴 경우과 비교하여 상기 인코딩된 비디오에서 더 많은 비트 수를 야기한다. 또한, 상기 물체의 속도가 증가함에 따라, 상기 물체가 상기 미리 결정된 거리를 이동하는데 더 적은 시간이 걸린다. 따라서, 상기 인트라-코딩된 프레임의 빈도(frequecny) 및 이에 따른 비트 코스트는 상기 물체의 속도에 따라 증가한다.
제한된 비디오 저장 용량을 처리하기 위해, 상기 미리 결정된 거리는 시간에 따라 조절되어야 할 수도 있다. 그렇지 않으면, 상기 비트 저장량이 초과될 위험이 있다. 구체적으로, 상기 방법은 상기 카메라의 비디오 저장 용량의 현재 사용량 및 상기 카메라의 이동량 중 적어도 하나에 기초하여 상기 미리 결정된 거리를 조절하는 단계를 더 포함할 수 있다. 예를 들어, 상기 비디오 저장 용량의 현재 사용량이 비트 저장량에 따라 현재 시점까지 소비될 수 있는 평균 비트 수를 초과하는 경우, 상기 미리 결정된 거리는 증가될 수 있고, 그 반대일 수도 있다. 다른 예에 따르면, 상기 카메라의 이동량이 일정 시간 동안 특정 수준을 초과하면, 상기 미리 결정된 거리가 증가될 수 있고, 그 반대일 수도 있다.
상기 미리 결정된 거리는 범위 내로 조절될 수 있다. 예를 들어, 상기 미리 결정된 거리는 상기 카메라에서의 비디오 저장 용량 및 상기 이동하는 물체의 이동 패턴을 반영한 이력 데이터(historical data)에 따라 설정되는 범위 내로 조절될 수 있다. 이러한 방식으로, 상기 미리 결정된 거리는 상기 카메라에서 제한된 비디오 저장 용량 및 상기 이동하는 물체의 전형적인 이동 패턴을 염두에 두고 선택된 특정 범위 내에 속하게 된다. 이는 결국 상기 비트 저장량을 초과할 위험을 감소시킨다. 제1 물체는 이력 데이터에 따라 제2 물체보다 평균적으로 더 많이 이동할 수 있다. 따라서 상기 범위의 하단부는 제2 물체보다 제1 물체에 대해 더 높게(즉, 상기 범위가 더 긴 거리 방향으로 옮겨질 수 있음) 설정될 수 있다. 이러한 방법으로, 상기 제1 물체가 상기 비트 저장량을 초과하는 위험이 감소된다.
제2 양태에 따르면, 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하도록 비디오 인코더를 제어하기 위한 제어기(controller)가 제공되고, 상기 제어기는:
상기 카메라의 이동량을 나타내는 입력 및 미리 결정된 거리에 관한 입력을 수신하도록 구성된 리시버(receiver), 및
상기 카메라가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 거리 이하로 이동하도록, 상기 카메라의 이동량 및 상기 미리 결정된 거리에 기초하여 상기 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하기 위해 상기 비디오 인코더를 제어하도록 구성된 제어 컴포넌트(control component)를 포함한다.
제3 양태에 따르면, 시스템이 제공되고, 상기 시스템은:
이동하는 물체에 장착되고 비디오 프레임의 시퀀스를 캡쳐하도록 배치된 비디오 카메라,
상기 비디오 카메라의 이동량을 측정하도록 구성된 모션 측정 장치(motion measurement device),
상기 비디오 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위한 비디오 인코더(video encoder), 및
상기 비디오 인코더를 제어하기 위한 제2 양태에 따른 제어기를 포함한다.
제4 양태에 따르면, 처리 능력을 갖는 장치에 의해 실행될 때 제1 양태의 방법을 수행하도록 적용된 컴퓨터 코드 명령어가 저장된 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
제2, 제3 및 제4 양태는 일반적으로 제1 양태와 동일한 특징 및 이점을 가질 수 있다. 본 발명은 달리 명시적으로 언급되지 않는 한 특징의 모든 가능한 조합에 관한 것이다.
상기 뿐만 아니라, 본 발명의 추가적인 목적, 특징 및 이점은 첨부된 도면을 참조하여, 본 발명의 바람직한 실시 형태에 대한 하기의 예시적이고 비-제한적인 상세한 설명을 통해 더 잘 이해될 것이며, 동일한 도면 번호는 유사한 요소에 대해 사용된다.
도 1은 실시 형태에 따라 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위한 시스템을 도시한다.
도 2는 도 1에 나타낸 시스템을 보다 상세히 개략적으로 도시한다.
도 3은 실시 형태에 따라 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위해 비디오 인코더를 제어하는 제어기를 개략적으로 도시한다.
도 4는 제1 그룹의 실시 형태에 따라 비디오 시퀀스의 비디오 프레임의 인트라-코딩 및 인터-코딩 사이에서 선택하는 공정을 개략적으로 도시한다.
도 5는 제2 그룹의 실시 형태에 따라 비디오 시퀀스의 비디오 프레임의 인트라-코딩 및 인터-코딩 사이에서 선택하는 공정을 개략적으로 도시한다.
도 6은 실시 형태에 따라 이동하는 물체에 장착된 카메라에 의해 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위해 비디오 인코더를 제어하는 방법의 흐름도이다.
이하, 본 발명은 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태를 상세히 설명한다. 그러나, 본 발명은 많은 상이한 형태로 구현될 수 있으며, 본 발명에서 설명된 실시 형태에 제한되는 것으로 해석되어서는 안되며; 오히려, 이들 실시 형태는 철저하고 완전하게 제공되고, 본 발명의 범위를 당업자에게 완전히 전달하기 위해 제공된다. 본 발명에서 개시된 시스템 및 장치는 작동 중에 설명될 것이다.
도 1은 이동하는 물체(102)에 장착된 시스템(100)을 도시한다. 이동하는 물체(102)는 일반적으로 사람 또는 자동차와 같은 임의의 이동하는 물체일 수 있다.
시스템(100)은 도 2에 보다 상세히 도시된다. 시스템은 비디오 카메라(204), 비디오 인코더(206), 제어기(208) 및 모션 측정 장치(210)를 포함한다.
비디오 카메라(204)는 이동하는 물체(100)에 장착되도록 배치된다. 비디오 카메라(204)는 특정 프레임 속도에서 비디오 프레임의 시퀀스(205)를 캡쳐한다. 따라서 각각의 비디오 프레임은 특정 시점에 해당하는 이미지 데이터를 포함한다. 비디오 카메라(204)가 이동하는 물체에 장착될 때, 비디오 프레임의 캡쳐된 시퀀스(205)는 이동하는 물체(100)의 주변을 나타낸다.
비디오 카메라(204)는 비디오 인코더(206)에 작동 가능하게 연결된다. 비디오 인코더(206)는 비디오 카메라(204)에 포함되거나, 별도의 유닛으로서 제공될 수 있다. 비디오 인코더(206)는 비디오 카메라(204)로부터 비디오 프레임의 시퀀스(205)를 수신하고, 비디오 프레임의 시퀀스(205)를 인코딩하여 인코딩된 비디오 프레임의 시퀀스(207)를 제공하기 위해 배치된다. 비디오 카메라(204)는 GOP 구조에 따라 비디오 프레임(205)을 인코딩할 수 있고, 이는 인트라-코딩된 프레임과 인터-코딩된 프레임의 순서를 특정한다. 인코딩된 비디오 프레임의 시퀀스(207)는 비디오 저장 장치, 즉 시스템의 메모리에 저장될 수 있다. 예를 들어, 비디오 저장 장치는 비디오 카메라(204)에 포함될 수 있다.
제어기(208)는 비디오 인코더(206)의 작동을 제어하도록 배치된다. 제어기는 비디오 인코더(206)의 필수 부분으로서 또는 별도의 유닛으로서 제공될 수 있다. 제어기(208)는 제어 신호(209)를 전송함으로써 비디오 인코더(208)의 작동을 제어할 수 있다. 제어 신호(209)는 비디오 프레임의 시퀀스(205)의 인트라-코딩 또는 인터-코딩할 것인지를 결정하는 비디오 인코더(206)에 대한 명령어를 포함한다. 예를 들어, 제어 신호(209)는 GOP 구조를 변경하기 위한 명령어를 포함할 수 있다. 특히, 제어 신호(209)는 GOP 구조의 길이를 변경하는 명령어를 포함할 수 있다. 제어기(208)는 또한 비디오 인코더(206)로부터 피드백(211)을 수신할 수 있다. 피드백(211)은 비디오 프레임의 비디오 시퀀스(205)가 인트라-코딩되었거나 인터-코딩되었는지 여부에 관련될 수 있다.
모션 측정 장치(210)는 비디오 카메라(204)의 이동을 측정하도록 배치된다. 모션 측정 장치(210)는 비디오 카메라(204) 또는 카메라(204)가 장착된 이동하는 물체(102)에 부착될 수 있다. 모션 측정 장치(210)는 일반적으로 비디오 카메라(204)의 이동이 도출될 수 있는 신호를 전달하는 임의의 장치일 수 있다. 이는 가속도계 또는 자이로스코프와 같은 비디오 카메라(204)의 속도를 측정하는 장치를 포함한다. 모션 측정 장치(210)는 대안적으로 또는 부가적으로 특정 시점에서 비디오 카메라(204)의 위치를 측정하는 위치 확인 장치를 포함할 수 있다. 상기 위치 확인 장치는 위성 위치 확인 시스템, GPS 장치 또는 이의 동등물일 수 있다. 삼각 측량 기술을 기반으로 위치를 도출할 수 있는 통신 모뎀일 수도 있다. 모션 측정 장치(210)는 단계 계수기(step counter)일 수도 있다.
모션 측정 장치(210)는 카메라(204)의 이동량을 나타내는 입력(212)을 제어기(208)에 제공한다. 또한, 제어기(208)는 미리 결정된 거리에 관한 입력(213)을 수신하도록 배치된다. 미리 결정된 거리 입력(213)은 예를 들어 제어기(218)의 구성시 사용자 또는 조작자에 의해 제공될 수 있다.
도 3은 제어기(208)를 보다 상세하게 도시한다. 제어기(208)는 리시버(302) 및 제어 컴포넌트(304)를 포함한다. 제어기(208)는 일부 실시 형태에서 또한 거리 조절 컴포넌트(306)를 포함할 수 있다.
제어기(208)는 제어기(208)의 기능을 구현하도록 구성된 다양한 컴포넌트(302, 304, 306)를 포함한다. 특히, 각각의 도시된 컴포넌트는 제어기(208)의 기능에 해당한다. 일반적으로, 제어기(208)는 컴포넌트(302, 304, 306), 보다 구체적으로는 이들의 기능을 구현하도록 구성된 회로(circuitry)를 포함할 수 있다.
하드웨어 구현에서, 컴포넌트(302, 304, 306) 각각은 전용이고 컴포넌트의 기능을 제공하도록 특별히 설계된 회로에 해당할 수 있다. 회로는 하나 이상의 주문형 집적 회로와 같은 하나 이상의 집적 회로의 형태일 수 있다. 예로서, 제어 컴포넌트(304)는 따라서 사용시 시퀀스(205)에서의 비디오 프레임의 인트라-코딩 및 인터-코딩 사이에서 선택하도록 비디오 인코더(206)를 제어하는 회로를 포함할 수 있다.
소프트웨어 구현에서, 회로는 대신 비-휘발성 메모리와 같은 (비-일시적) 컴퓨터 판독 가능 매체 상에 저장된 컴퓨터 코드 명령어와 관련하여 제어기(208)가 본 발명에서 개시된 임의의 방법을 수행하도록 야기하는 마이크로프로세서와 같은 프로세서의 형태일 수 있다. 이런 경우, 컴포넌트(302, 304, 306)는 따라서 프로세서에 의해 실행될 때 제어기(208)가 컨포넌트의 기능을 수행하도록 야기하는 컴퓨터 판독 가능 매체 상에 저장된 컴퓨터 코드 명령어의 일부에 각각 해당할 수 있다.
하드웨어 및 소프트웨어 구현의 조합을 가질 수도 있는데, 이는 컴포넌트(302, 304, 306) 중 일부의 기능이 하드웨어 및 소프트웨어로 구현됨을 의미하는 것을 이해할 것이다.
시스템(100), 특히 제어기(208)의 작동은 도 2, 3, 4, 5 및 도 6의 흐름도를 참조하여 설명될 것이다.
단계 S02에서, 제어기(208)의 리시버(302)는 비디오 카메라(204)의 이동량을 나타내는 입력(212)을 수신한다. 전술한 바와 같이, 입력(212)은 모션 측정 장치(210)로부터 수신될 수 있다. 입력(212)은 특정 시점에서의 카메라(204)의 속도 및/또는 카메라(204)의 위치와 관련될 수 있다. 리시버(302)는 모션 측정 장치(210)로부터의 입력을 연속적으로 또는 적어도 반복하여 수신하는 것으로 이해할 것이다. 따라서 수신된 입력(212)은 시간의 함수로서 비디오 카메라(204)의 모션량을 반영한다.
단계 S04에서, 제어기(208)의 리시버(302)는 미리 결정된 거리에 관한 입력(213)을 수신한다. 미리 결정된 거리는 미리 결정된 공간 거리를 나타낸다.
리시버(302)는 비디오 카메라(204)의 이동량을 나타내는 입력(212) 및 미리 결정된 거리에 관한 입력(213)을 제어 컴포넌트(304)에 전송한다. 보다 상세히 후술하는 바와 같이, 미리 결정된 거리에 관한 입력(213)은 일부 실시 형태에서 제어 컴포넌트(304)에 전송되기 전에 거리 조절 컴포넌트(306)에 의해 조절될 수 있다.
단계 S06에서, 제어기(208)의 제어 컴포넌트(304)는 비디오 카메라(204)의 이동량을 나타내는 입력(212) 및 미리 결정된 거리에 관한 입력(213)에 기초한 비디오 프레임의 시퀀스의 인트라-코딩 및 인터-코딩 사이에서 선택하도록 비디오 인코더(206)를 제어한다. 보다 상세하게, 제어 컴포넌트(304)는 비디오 프레임이 인트라-코딩되거나 인터-코딩되어야 하는지를 입력(212) 및 입력(213)에 기초하여 선택할 수 있다. 제어 컴포넌트(304)는 선택을 비디오 인코더(206)에 통지하기 위해 제어 신호(209)를 전송할 수 있고, 비디오 인코더(206)는 이에 따라 비디오 프레임의 이미지 데이터를 인코딩할 수 있다. 제어 신호(209)에서 비디오 인코더(206)로 전송된 정보는 비디오 프레임이 인트라-코딩된 프레임으로서 인코딩되어야 하는 속도와 관련될 수 있다. 특히, 제어 신호(209)는 비디오 프레임이 인트라-코딩된 프레임으로서 인코딩되어야 할 속도가 시간에 따라 어떻게 변하는지와 관련될 수 있다. 속도는 비디오 인코더(206)에 의해 적용된 GOP 구조의 길이에 해당할 수 있다. 따라서 제어 신호(209)는 비디오 인코더(206)가 시간에 따라 어떻게 GOP 구조의 길이를 변경해야 하는지에 관한 정보를 포함할 수 있다. 선택적으로 또는 부가적으로, 제어 신호(209)에서 비디오 인코더(206)로 전송된 정보는 특정 비디오 프레임이 인트라-코딩되거나 인터-코딩되어야하는지 여부를 직접 나타낼 수 있다.
제어 컴포넌트(304)는 비디오 카메라(204)가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에서 미리 결정된 거리 이하로 이동하도록 인트라-코딩 및 인터-코딩 사이에서 선택이 이루어진다. 이는 도 4에 추가로 도시된다. t0, t1, t2, t3, t4, t5 등의 시점은 카메라(204)가 비디오 프레임을 캡쳐한 시점의 적어도 일부에 해당한다. t0, t1, t2, t3, t4, t5 등의 시점에 대해, 비디오 카메라(204)는 프레임을 인트라-코딩하거나 인트라-코딩하지 않는지 여부를 선택한다. 제어 컴포넌트(304)는 비디오 시퀀스(205)에서의 각각의 비디오 프레임에 대해 선택이 이뤄질 수 있다. 이런 경우, t0, t1, t2, t3, t4, t5 등의 시점은 비디오 시퀀스(205)의 연속 프레임에 해당하고, t0, t1, t2, t3, t4, t5 등의 시점은 따라서 비디오 시퀀스(205)의 프레임 속도에 따라 설정된다. 그러나, 대부분의 응용 분야에서 이동하는 물체(102)는 비디오 시퀀스(205)의 두 프레임 사이의 미리 결정된 거리를 이동시킬 수 없기 때문에, 제어 컴포넌트(304)가 각각의 프레임에 대해 선택이 이뤄지는 것이 필요하지 않다. 예를 들어, 이동하는 물체(102)의 가능한 최대 속도가 알려지면, 카메라(204)가 미리 결정된 거리를 이동할 수 있는 최단 시간이 계산될 수 있다. 제어 컴포넌트(304)는 그런 다음 t0, t1, t2, t3, t4, t5 등의 시점 사이의 시간적 거리가 선택이 이뤄질 때 계산된 최단 시간 이하이도록 제어 컴포넌트가 선택을 하는 속도를 설정할 수 있다.
도 4의 예에서, 프레임은 문자 I(I-프레임에 대한 I)로 표시된 바와 같이, t0 시간에서 인트라-코딩된다. t0 시간에서, 마지막 인트라-코딩된 프레임 이후 카메라(304)에 의해 이동된 거리는 따라서 0이 된다. t1 시간에서, 제어 컴포넌트(304)는 카메라(204)가 인트라-코딩된 비디오 프레임을 마지막으로 캡쳐한 시간인 t0 이후에 카메라(204)가 이동한 거리를 카메라의 이동량을 나타내는 입력(212)에 기초하여 계산할 수 있다.
이러한 목적을 위해, 제어 컴포넌트(304)는 카메라의 이동량을 나타내는 입력(212)에 기초하여, 인트라-코딩된 비디오 프레임을 마지막으로 캡쳐한 이후에 카메라가 이동한 거리(d1)를 계산할 수 있다. 예를 들어, 입력(212)이 카메라(204)의 속도인 경우, 제어 컴포넌트(304)는 시간 t0에서 시간 t1까지의 속도를 적분하여 거리 d1을 계산할 수 있다. 입력(212)이 대신 위치 데이터를 제공하는 경우, 거리 d1은 예를 들어, 시간 t1에서의 위치가 시간 t0에서의 위치를 뺀 것과 같이 계산될 수 있다. 그런 다음 제어 컴포넌트(304)는 시간 t1에서 캡쳐한 프레임이 인트라-코딩 또는 인터-코딩 여부를 선택하기 위해 계산된 거리 d1을 미리 결정된 거리(D)와 비교할 수 있다.
카메라(204)가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에서 미리 결정된 거리(D) 이상으로 이동하지 않는 것을 확인하기 위해, 제어 컴포넌트(304)는 마지막 인트라-코딩된 프레임 이후의 계산된 거리 d1를 임계값(T)을 뺀 미리 결정된 거리(D)와 비교될 수 있다. 계산된 거리 d1가 미리 결정된 거리(D)로부터의 임계값(T)를 초과하는 경우, 즉 d1<D-T이면, 시간 t1에서의 프레임은 인터-코딩되도록 선택된다. 그렇지 않으면, 시간 t1에서의 프레임은 인트라-코딩되도록 선택된다. 도시된 예에서, d1<D-T이므로, 시간 t1에서의 프레임은 문자 P(P-프레임에 대해 P)로 표시된 바와 같이 인터-코딩되도록 선택된다. 이러한 절차는 t2, t3, t4 및 t5의 시점에서 반복된다. 이러한 예에서, t2, t3, t4의 시점에 해당하는 계산된 거리 d2, d3, d4는 여전히 D-T보다 작기 때문에, 이들 시점에서 캡쳐된 프레임은 인터-코딩되도록 선택된다. 그러나, t5 시점에서 계산된 거리 d5는 D-T보다 크므로, 시간 t5에서의 프레임은 인트라-코딩되도록 선택된다. 제어 컴포넌트(304)는 제어 신호(209)를 통해 선택을 비디오 인코더(206)에 통지한다. 제어 컴포넌트(304)는 그런 다음 시간 t5에서 마지막으로 인트라-코딩된 프레임을 캡쳐한 이후 카메라(204)에 의해 이동된 거리를 계산하기 위해 t6, t7 등의 뒤이은 시점에 대해 계속한다.
제어 컴포넌트(304)는 미리 결정된 거리(D)보다 큰 인트라-코딩된 프레임 사이에서 카메라(204)에 의해 이동된 거리의 위험을 최소화하기 위해 임계값(T)을 설정할 수 있다. 이러한 목적을 위해, 제어 컴포넌트(304)는 시간에서의 현재 지점과 인트라-코딩/인터-코딩 선택이 이루어질 시간에서의 다음 지점 사이에서 카메라(204)에 의해 이동된 거리를 예측할 수 있다. 예측은 카메라(204)의 이동량에 관한 입력(212)을 사용할 수 있다. 예를 들어, 시간 t1에서, 제어 컴포넌트(304)는 입력(212)에 기초하여 거리 d2-d1을 예측할 수 있다. 예를 들어, 입력(212)이 시간 t1에서 카메라(204)의 현재 속도를 포함하면, 제어 컴포넌트(304)는 다음 선택이 이루어질 때까지 현재 속도와 시간 t2-t1의 곱으로서 거리 d2-d1를 예측할 수 있다. 그러나, 카메라(204)의 가속도를 고려한 예측과 같은 더 개선된 예측이 이루어질 수도 있음이 이해될 수 있다. 다음 인트라-코딩/인터-코딩 선택이 이루어질 때까지 카메라(204)에 의해 이동될 거리를 예측하면, 제어 컴포넌트(304)는 임계값(T)을 예측된 거리 이상이 되게 설정할 수 있다. 따라서, 이러한 접근법으로 임계값(T)은 시간에 따라 변할 수 있다. 더 간단한 접근법에서, 임계값(T)은 고정될 수 있고, 이동하는 물체의 미리 결정된 최대 속도와 선택 단계가 제어 컴포넌트(304)에 의해 반복되는 주기의 곱에 해당할 수 있다.
도 5에 도시된 다른 그룹의 실시 형태에 따르면, 제어 컴포넌트(304)는 제2 시점 이후에 제1 시점에서 캡쳐된 프레임에 관한 인트라-코딩/인터-코딩 사이의 선택을 기다린다. 예를 들어, 제어 컴포넌트(304)는 시간 t4에서 캡쳐된 프레임에 관한 선택을 하기 전에 시간 t5까지 기다릴 수 있다. 이러한 방식으로, 제어 컴포넌트(304)는 제1 시점과 제2 시점 사이에서 카메라의 이동량을 고려함으로써 제1 시점에 관한 선택을 할 수 있다. 따라서, 제2 시점에서, 제어 컴포넌트(304)는 인트라-코딩된 마지막 프레임을 캡쳐 한 이후 카메라가 이동한 거리를 입력(212)에 기초하여 계산할 수 있다. 거리가 미리 결정된 거리 이상인 경우, 제어 컴포넌트(304)는 제1 시점에서 프레임을 인트라-코딩하도록 선택한다. 거리가 미리 결정된 거리보다 작으면, 제어 컴포넌트(304)는 제1 시점에서 프레임을 인터-코딩하도록 선택한다.
도 5를 참조하면, 시간 t2에서, 제어 컴포넌트(304)는 시간 t0에서 마지막으로 인트라-코딩된 프레임을 캡쳐한 이후에 카메라(204)에 의해 이동된 거리 d2를 입력(212)으로부터 계산한다. d2가 미리 결정된 거리(D)보다 작기 때문에, 제어 컴포넌트(304)는 시점 t1에서 캡쳐된 프레임이 인터-코딩되어야 하는 시점 t2에서 결정된다. 유사하게, 제어 컴포넌트(304)는 t3, t4 및 t5 시점에서 해당하는 거리 d3, d4 및 d5 모두가 미리 결정된 거리(D) 미만이므로, t2, t3 및 t4 시점 각각에서 캡쳐된 프레임은 인터-코딩되어야 한다고 결정한다. 그러나, 시간 t6에서, 제어 컴포넌트(304)는 마지막으로 캡쳐된 인트라-코딩된 프레임이 미리 결정된 거리(D)보다 크기 때문에 카메라(204)에 의해 이동된 해당 거리 d6이후에 다른 결정에 도달할 것이다. 따라서, 제어 컴포넌트(304)는 t6 시점에서, t5 시점에서 캡쳐된 프레임이 인트라-코딩되어야 한다는 것을 선택한다. 제어 컴포넌트(304)는 제어 신호(209)를 통해 선택을 비디오 인코더(206)에 통지한다. 이어서, 제어 컴포넌트(304)는 시간 t5에서 마지막으로 인트라-코팅된 프레임을 캡쳐한 이후에 t7, t8 등의 뒤이은 시점에 대해 카메라(204)에 의해 이동된 거리를 계산하는 것을 지속한다. 도 5의 실시 형태는 인트라-코딩된 캡쳐한 두개의 프레임 사이에서 미리 결정된 거리보다 많이 이동하는 카메라(204)의 위험이 제거된다는 점에서 도 4의 실시 형태보다 유리하다. 그러나, 이러한 이점은 인코딩에 레이턴시를 도입하는 코스트로 달성된다.
제어 신호(209)를 수신하면, 비디오 인코더(206)는 제어기(208)에 의해 이루어진 선택에 따라 프레임의 비디오 시퀀스(205)의 이미지 데이터를 인코딩할 수 있다. 이러한 방식으로, 적어도 하나의 프레임은 카메라가 미리 결정된 거리를 이동하는 동안 인트라-코딩될 것이다. 비디오 인코더(206)는 제어 신호(209)를 통해 제어기(208)에 의한 신호보다 더 빈번하게 (그러나 그다지 드물지 않게) 프레임을 인트라-코딩하는 이유를 추가로 가질 수 있다. 제어기(208)는 어떤 프레임이 인트라-코딩되었는지를 인지하는 것을 확인하기 위해, 비디오 인코더(206)는 제어기(208)로 피드백(211)을 전송할 수 있다. 피드백(211)은 특히 비디오 시퀀스(205)에서의 프레임이 마지막으로 인트라-코딩된 것을 제어기(208)에 나타낼 수 있다. 제어 컴포넌트(304)는 전술한 바와 같이 카메라(204)에 의해 이동된 거리 d1, d2, d3 등을 계산할 때 그 정보를 사용할 수 있다.
일부 경우, 비디오 카메라(204)는 비디오 저장 장치에 국부적으로 비디오 프레임(207)의 인코딩된 시퀀스를 저장한다. 대안적으로, 비디오 프레임(207)의 인코딩된 시퀀스는 비디오 카메라(204)로부터 이격된 비디오 저장 장치에 저장될 수 있다. 비디오 저장 장치는 임의의 적절한 형태의 비-휘발성 메모리일 수 있다. 비디오 저장 장치의 용량이 제한될 수 있다. 제한된 비디오 저장 용량은 일반적으로 하루와 같은 미리 결정된 시간 동안 지속되어야 한다. 미리 결정된 거리는 비디오 프레임(207)의 인코딩된 시퀀스의 크기에 영향을 미친다. 더 낮은 미리 결정된 거리는 보다 높은 미리 결정된 거리와 비교하여 더 많은 프레임이 인트라-코딩되도록 하여, 더 많은 저장 공간을 필요로 한다.
비디오 카메라(204)가 비디오 프레임(207)의 인코딩된 시퀀스를 저장하기 위한 메모리를 소모하는 것을 피하기 위해, 제어기(208)는 실시간으로 미리 결정된 거리를 조절할 수 있다. 보다 구체적으로, 제어기(208)는 미리 결정된 거리를 조절하는 거리 조절 컴포넌트(306)를 포함할 수 있고, 조절된 미리 결정된 거리를 제어 컴포넌트(304)로 전송할 수 있다. 일반적으로, 거리 조절 컴포넌트(306)는 비디오 저장 용량 및/또는 물체의 이동량의 현재 사용량에 기초하여 미리 결정된 거리를 조절할 수 있다. 예를 들어, 남아있는 비디오 저장 장치가 제1 기준 레벨보다 낮은 경우, 거리 조절 컴포넌트(306)는 미리 결정된 거리를 증가시킬 수 있고, 그 반대로 할 수도 있다. 또한, 카메라(204)의 현재 이동량이 제2 기준 레벨보다 높고 남아있는 비디오 저장 장치가 제1 기준 레벨보다 낮으면, 거리 조절 컴포넌트(306)는 미리 결정된 거리를 증가시킬 수 있다.
거리 조절 컴포넌트(306)는 미리-설정된 범위 내에서 미리 결정된 거리를 조절할 수 있다. 범위는 일반적으로 이동하는 물체(102)의 이동 패턴과 조합하여, 비디오 카메라(204)에서의 비디오 저장 용량에 따라 설정될 수 있다. 이동 패턴은 이동하는 물체(102)가 이력적으로 카메라(100)가 사용될 때의 미리 결정된 시간에 해당하는 기간 동안 어떻게 이동했는지를 반영하는 이력 데이터로부터 도출될 수 있다. 이동 패턴은 예를 들어, 기간 동안 이동하는 물체(102)의 속도 히스토그램으로 표시될 수 있다. 예를 들어, 제1 이동하는 물체(102)가 제2 이동하는 물체보다 평균적으로 더 많이 이동하는 경우, 범위의 하단부는 제2 이동하는 물체보다 제1 이동하는 물체(102)에 대해 더 높을 수 있다. 특히, 비디오 카메라(205)에서의 비디오 저장 용량과 이동하는 물체(102)의 이동 패턴의 조합에 기초하여 범위가 설정될 수 있다. 비디오 카메라(205)에서의 동일한 비디오 저장 용량에 대해, 범위의 하단부는 이력 데이터에 기초한 더 높은 평균 속도를 갖는 물체와 비교하여 이력 데이터에 기초하여 더 낮은 평균 속도를 갖는 물체에 대해 낮게 설정될 수 있다.
당업자는 다양한 방식으로 전술한 실시 형태를 변형할 수 있으며, 상기 실시 형태에 도시된 바와 같이 본 발명의 이점을 여전히 사용할 수 있음을 이해할 것이다. 예를 들어, 상기 예에서 인트라-코딩된 마지막 프레임으로부터 이동 거리를 추정하는 것이 설명된다. 그러나, 모션 측정 장치로부터(예를 들어, 가속도계로부터) 판독된 현재 모션 벡터에 대해 인터-코딩 및 인트라-코딩 사이의 결정을 기초로 할 수 있다. 이는 정확하지는 않지만, 실제 구현에서는 여전히 충분히 우수할 수 있다. 따라서, 본 발명은 도시된 실시 형태들로 제한되어서는 안되며, 첨부된 청구항에 의해서만 정의되어야 한다. 또한, 당업자가 이해하는 바와 같이, 도시된 실시 형태들은 조합될 수 있다.

Claims (14)

  1. 이동하는 물체(100)에 장착된 카메라(204)에 의해 고정된 시간 프레임 속도로 캡쳐된 비디오 프레임의 시퀀스(205)를 인코딩하는 방법에 있어서,
    카메라(204)의 이동량을 나타내는 입력(212)을 수신하는 단계(S02),
    미리 결정된 공간 거리(D)에 관한 입력(213)을 수신하는 단계(S04), 및
    상기 카메라(204)가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에 상기 미리 결정된 공간 거리(D) 이하로 이동하도록 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리(D)에 기초하여 상기 시퀀스(205)의 비디오 프레임의 인트라-코딩 및 인터-코딩 중 하나를 선택하는 단계(S06)를 포함하는 방법.
  2. 제1항에 있어서, 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리에 기초하여 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계(S06)는 상기 비디오 프레임이 인트라-코딩된 프레임으로서 인코딩되는 속도를 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계(S06)는:
    상기 카메라(204)의 이동량을 나타내는 입력(212)에 기초하여, 인트라-코딩된 비디오 프레임을 마지막으로 캡쳐한 이후에 상기 카메라(204)가 이동한 거리(d1, d2, d3, d4, d5, d6)를 계산하는 단계, 및
    상기 계산된 거리(d1, d2, d3, d4, d5, d6)와 상기 미리 결정된 공간 거리(D) 사이의 비교에 기초하여 현재 또는 이전 비디오 프레임의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 계산된 거리(d1, d2, d3, d4, d5)가 임계값(T)보다 상기 미리 결정된 공간 거리(D)에 더 근접하면 상기 현재 비디오 프레임은 인트라-코딩되도록 선택되고, 상기 계산된 거리(d1, d2, d3, d4, d5)가 상기 미리 결정된 공간 거리(D)로부터 상기 임계값(T)보다 큰 경우 상기 현재 비디오 프레임은 인터-코딩되도록 선택되는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 임계값(T)은 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리(D)에 기초하여 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계가 반복되는 속도 및 카메라(204)의 이동량 중 적어도 하나에 따라 결정되는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 카메라(204)의 이동량을 나타내는 상기 입력(212)은 특정 시간에서의 상기 카메라(204)의 속도 및 상기 카메라(204)의 위치 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 카메라(204)의 이동량을 나타내는 상기 입력(212)은 가속도계, 자이로스코프, 또는 상기 카메라에 포함되거나 상기 이동하는 물체(102)에 착용된 위치 확인 장치 중 하나 이상으로부터 수신되는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리(D)에 기초하여 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계(S06)는 상기 시퀀스(205)에서의 각각의 비디오 프레임에 대해 반복되는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리(D)에 기초하여 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이에서 선택하는 단계(S06)는 상기 이동하는 물체(102)의 최대 속도에 따라 설정되는 속도에서 반복되는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 상기 카메라(204)는 비디오 저장 용량을 가지며, 상기 방법은 상기 카메라(204)의 비디오 저장 용량의 현재 사용량 및 상기 카메라(204)의 이동량 중 적어도 하나에 기초하여 상기 미리 결정된 공간 거리(D)를 조절하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서, 상기 미리 결정된 공간 거리(D)는 상기 카메라(204)에서의 비디오 저장 용량 및 상기 이동하는 물체(102)의 이동 패턴을 반영한 이력 데이터에 따라 설정되는 범위 내에서 조절되는 것을 특징으로 하는 방법.
  12. 이동하는 물체(102)에 장착된 카메라(204)에 의해 고정된 시간 프레임 속도로 캡쳐된 비디오 프레임의 시퀀스(205)를 인코딩하도록 비디오 인코더(206)를 제어하기 위한 제어기(208)로서,
    상기 카메라(204)의 이동량을 나타내는 입력(212) 및 미리 결정된 공간 거리(D)에 관한 입력(213)을 수신하도록 구성된 리시버(302), 및
    상기 카메라(204)가 인트라-코딩된 비디오 프레임을 캡쳐하는 사이에서 상기 미리 결정된 공간 거리(D) 이하로 이동하기 위해, 상기 카메라(204)의 이동량 및 상기 미리 결정된 공간 거리(D)에 기초하여 상기 비디오 프레임의 시퀀스(205)의 인트라-코딩 및 인터-코딩 사이를 선택하도록 상기 비디오 인코더(206)를 제어하기 위해 구성된 제어 컴포넌트(304)를 포함하는 제어기.
  13. 이동하는 물체(102)에 장착되고 고정된 시간 프레임 속도로 비디오 프레임의 시퀀스(205)를 캡쳐하도록 배치된 비디오 카메라(204),
    상기 비디오 카메라(204)의 이동량을 측정하도록 구성된 모션 측정 장치(210),
    상기 비디오 카메라(204)에 의해 상기 고정된 시간 프레임 속도로 캡쳐된 비디오 프레임의 시퀀스를 인코딩하기 위한 비디오 인코더(206), 및
    상기 비디오 인코더(206)를 제어하기 위한 제12항에 따른 제어기(208)를 포함하는 시스템(100).
  14. 처리 능력을 갖는 장치에 의해 실행될 때 제1항의 방법을 수행하도록 적용된 컴퓨터 코드 명령어가 저장된 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020190047738A 2018-06-05 2019-04-24 비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템 KR102363838B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18175973.9 2018-06-05
EP18175973.9A EP3579553B1 (en) 2018-06-05 2018-06-05 A method, controller, and system for encoding a sequence of video frames

Publications (2)

Publication Number Publication Date
KR20190138568A true KR20190138568A (ko) 2019-12-13
KR102363838B1 KR102363838B1 (ko) 2022-02-15

Family

ID=62567322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190047738A KR102363838B1 (ko) 2018-06-05 2019-04-24 비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템

Country Status (6)

Country Link
US (1) US10972724B2 (ko)
EP (1) EP3579553B1 (ko)
JP (1) JP7150664B2 (ko)
KR (1) KR102363838B1 (ko)
CN (1) CN110572644B (ko)
TW (1) TWI769379B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3029936A1 (en) * 2014-12-05 2016-06-08 Axis AB Method and device for real-time encoding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7889191B2 (en) * 2006-12-01 2011-02-15 Semiconductor Components Industries, Llc Method and apparatus for providing a synchronized video presentation without video tearing
US9456192B2 (en) * 2007-12-14 2016-09-27 Cable Television Laboratories, Inc. Method of coding and transmission of progressive video using differential signal overlay
US20140133548A1 (en) 2011-06-30 2014-05-15 Nokia Corporation Method, apparatus and computer program products for detecting boundaries of video segments
US9232233B2 (en) * 2011-07-01 2016-01-05 Apple Inc. Adaptive configuration of reference frame buffer based on camera and background motion
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
US8773542B2 (en) * 2012-05-17 2014-07-08 Samsung Electronics Co., Ltd. Apparatus and method for adaptive camera control method based on predicted trajectory
EP2885765B1 (en) * 2012-08-15 2019-12-18 Intuitive Surgical Operations, Inc. Methods and systems for optimizing video streaming
US10448032B2 (en) * 2012-09-04 2019-10-15 Qualcomm Incorporated Signaling of down-sampling location information in scalable video coding
US10408857B2 (en) * 2012-09-12 2019-09-10 Alpinereplay, Inc. Use of gyro sensors for identifying athletic maneuvers
CN104703539B (zh) * 2012-10-04 2018-04-10 柯尼卡美能达株式会社 图像处理装置和程序
JP6109956B2 (ja) * 2012-12-17 2017-04-05 インテル・コーポレーション ビデオコンテンツを前処理するエンコーダハードウェアの活用
US10284842B2 (en) * 2013-03-05 2019-05-07 Qualcomm Incorporated Inter-layer reference picture construction for spatial scalability with different aspect ratios
EP2983367A4 (en) * 2013-04-05 2016-11-16 Samsung Electronics Co Ltd METHOD AND DEVICE FOR CODING AND DECODING VIDEO CONTENT IN RELATION TO THE POSITION OF ALL-NUMBER PIXELS
US9497592B2 (en) * 2014-07-03 2016-11-15 Qualcomm Incorporated Techniques for determining movements based on sensor measurements from a plurality of mobile devices co-located with a person
US20160021332A1 (en) * 2014-07-17 2016-01-21 Telecommunication Systems, Inc. Spatially Synchronized Video
US20170054890A1 (en) * 2015-08-19 2017-02-23 Sound Devices, LLC Identification of flicker and banding in video
EP3136726B1 (en) 2015-08-27 2018-03-07 Axis AB Pre-processing of digital images
US9854170B2 (en) * 2015-12-29 2017-12-26 Oculus Vr, Llc Rolling shutter blur reduction using motion data
EP3200456A1 (en) * 2016-01-28 2017-08-02 Axis AB Video encoding method and video encoder system for temporal noise reduction
US10165222B2 (en) * 2016-06-09 2018-12-25 Intel Corporation Video capture with frame rate based on estimate of motion periodicity
EP3324628B1 (en) * 2016-11-18 2021-12-29 Axis AB Method and encoder system for encoding video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3029936A1 (en) * 2014-12-05 2016-06-08 Axis AB Method and device for real-time encoding

Also Published As

Publication number Publication date
JP2020025247A (ja) 2020-02-13
KR102363838B1 (ko) 2022-02-15
US10972724B2 (en) 2021-04-06
EP3579553A1 (en) 2019-12-11
TWI769379B (zh) 2022-07-01
JP7150664B2 (ja) 2022-10-11
TW202005380A (zh) 2020-01-16
CN110572644A (zh) 2019-12-13
EP3579553B1 (en) 2020-05-20
CN110572644B (zh) 2021-10-22
US20190373256A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US11102508B2 (en) Method and image processing unit for forming a video stream
CN103650504B (zh) 基于图像捕获参数对视频编码的控制
EP3029937B1 (en) Method and encoder for video encoding of a sequence of frames
CN110740317B (zh) 子块运动预测、编码方法、编码器及存储装置
KR101908639B1 (ko) 비디오 스트림을 인코딩하는 방법 및 시스템
EP3370419B1 (en) A video encoder and a method in a video encoder
CN109660796A (zh) 一种对视频帧进行编码的方法
JP6707334B2 (ja) リアルタイム符号化のための方法及び装置
US10091521B2 (en) Image encoding device, captured image recording system, imaging device, method of encoding image, and image encoding program
KR102363838B1 (ko) 비디오 프레임의 시퀀스를 인코딩하기 위한 방법, 제어기 및 시스템
JP2006135557A (ja) 動画像符号化装置
CN109660795A (zh) 一种基于下采样的信息编码方法
JP2007228101A (ja) 動画像符号化装置
KR102594565B1 (ko) 웨어러블 카메라 및 웨어러블 카메라에 의해 캡처된 비디오를 인코딩하는 방법
US20180027242A1 (en) Image processing apparatus, image processing method, and program
CN109495740A (zh) 一种基于环境信息来对图像进行编码的方法
US8761530B2 (en) Apparatus and method to control target code amount
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
CN114422778A (zh) 图像处理装置和对由相机捕获的图像进行编码的方法
JPH0388489A (ja) 画像符号化方式
JP2014096744A (ja) 画像符号化装置及び画像符号化方法

Legal Events

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