KR102413080B1 - 비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법 - Google Patents

비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법 Download PDF

Info

Publication number
KR102413080B1
KR102413080B1 KR1020180038257A KR20180038257A KR102413080B1 KR 102413080 B1 KR102413080 B1 KR 102413080B1 KR 1020180038257 A KR1020180038257 A KR 1020180038257A KR 20180038257 A KR20180038257 A KR 20180038257A KR 102413080 B1 KR102413080 B1 KR 102413080B1
Authority
KR
South Korea
Prior art keywords
video encoder
output
bitrate
time interval
compression level
Prior art date
Application number
KR1020180038257A
Other languages
English (en)
Other versions
KR20180119105A (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 KR20180119105A publication Critical patent/KR20180119105A/ko
Application granted granted Critical
Publication of KR102413080B1 publication Critical patent/KR102413080B1/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/146Data rate or code amount at the encoder output
    • 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/115Selection of the code volume for a coding unit prior to coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/124Quantisation
    • 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/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/179Methods 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 scene or a shot
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/183Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source

Abstract

비디오 스트림을 인코딩할 때 비디오 인코더의 출력 비트레이트를 제어하기위한 제어기 및 방법이 제공된다. 상기 방법은, 상기 비디오 스트림이 포착된 위치에 대한 날씨 예측 데이터를 수신하는 단계; 상기 날씨 예측 데이터에 기초하여, 상기 비디오 스트림의 내용에 영향을 미치는 날씨로 인한 상기 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 예측하는 단계; 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 보상하기 위해 비디오 스트림의 압축 레벨을 증가시킴으로써 비디오 인코더의 출력 비트레이트를 감소시키는 단계를 포함한다.

Description

비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법{VIDEO CAMERA, CONTROLLER, AND METHOD FOR CONTROLLING OUTPUT BITRATE OF A VIDEO ENCODER}
본 발명은 비디오 인코딩의 분야에 관한 것이다. 특히, 본 발명은 비디오 인코더의 출력 비트레이트의 제어하는 것에 관한 발명이다.
일반적으로 비디오 카메라는 감시에 사용된다. 감시 어플리케이션에서 비디오 카메라는 장면을 묘사하는 비디오 스트림을 캡처하여 장면을 모니터링하도록 구성된다. 그런 다음 비디오 스트림이 저장되기 전에 인코딩된다. 인코딩된 비디오 스트림은 비디오 카메라 자체에 저장될 수도 있지만, 일반적으로는 네트워크를 통해 예를 들어 서버로 전송 및 저장된다. 만일, 장면에서 관심있는 이벤트(가령, 침입 혹은 절도)가 발생했음을 발견했다면, 저장소로부터 인코딩된 비디오 스트림에 액세스하여 관심있는 이벤트의 증거를 찾을 수 있다.
따라서, 전술한 비디오 카메라의 비디오 인코더는 소정 기간 동안 일정량의 저장된 비디오 데이터를 생성한다. 저장 공간이 제한 요소가 될 수 있기 때문에, 비디오 인코더에 의해 생성되는 비디오 데이터의 양, 즉 비디오 인코더의 출력 비트레이트를 제어하여, 이용가능한 저장 공간이 미리 설정된 지속 기간(가령, 일주일 또는 한 달) 동안 지속되도록 하는 것이 중요할 수 있다.
이와 동시에, 비디오 품질에 부정적인 영향을 미치는 예컨대 잡음 또는 다른 요인에 의해 야기되는 비트레이트 피크를 제한함과 아울러, 비디오 인코더의 출력 비트레이트가 비디오 스트림에서 흥미로운 모션(예컨대, 위의 침입 혹은 절도와 같은)에 의해 야기되는 비트레이트 피크를 포착하도록 허용되는 것은 당연한 일이다. 예를 들어 야간의 소음은 예상하기 쉽지만, 비디오 품질에 부정적인 영향을 줄 수 있는 또 다른 요소는 비, 눈, 안개 또는 강한 바람과 같은 날씨 이벤트이다. 이러한 날씨 이벤트는 일반적으로 비디오 스트림의 내용에 영향을 미칠 것이며 그리고 바람직하지 않은 잡음 또는 모션을 도입하여, 추가적인 감시 정보를 제공하지 않는 비트레이트 피크들을 발생시키게 될 것이다. 예를 들어 날씨 이벤트로 인하여, 비디오 인코더는 주간 또는 월간 할당된 비트들의 대부분을 날씨에 의해 야기되는 비트레이트 피크에 첫날에 이미 소비할 수도 있어, 나머지 시간 기간에 대해서는 매우 적은 비트들만을 남겨놓을 수 있다.
날씨 데이터를 압축하도록 링크시키는 US 2015/0358537 A1을 포함하는 선행 기술이 존재하기는 하지만, 미래의 날씨 이벤트에 의해 야기되는 비트레이트 피크들을 제한하거나 보상하는 방법을 개시하고 있는 종래 기술은 존재하지 않는다. 따라서 개선의 여지가 있다.
따라서, 본 발명의 목적은 미래의 날씨 이벤트에 의해 야기되는 비트레이트 피크를 제한하거나 보상하는 것이다.
본 발명의 제 1 양상에 따르면, 상기 목적은 비디오 스트림을 인코딩할 때 비디오 인코더의 출력 비트레이트를 제어하는 방법에 의해 달성되며, 상기 방법은,
상기 비디오 스트림이 캡처되는 위치에 대한 날씨 예측 데이터를 수신하는 단계;
상기 날씨 예측 데이터에 기초하여, 상기 비디오 스트림의 내용에 영향을 미치는 날씨로 인한 상기 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 예측하는 단계; 및
상기 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 보상하도록 비디오 스트림의 압축 레벨을 증가시킴으로써 비디오 인코더의 출력 비트레이트를 감소시키는 단계를 포함한다.
이러한 방법에 따르면, 날씨 예측 데이터는 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 예측하는데 사용된다. 비디오 인코더의 출력 비트레이트의 미래의 증가가 예측되었을 때, 비디오 스트림을 압축할 때 비디오 인코더에 의해 적용되는 압축 레벨이 증가된다. 이러한 방식으로, 비디오 인코더의 출력 비트레이트가 감소하고, 따라서 출력 비트레이트의 미래의 증가가 보상될 수 있다. 압축 레벨은 현재 압축 레벨과 관련하여 증가될 수 있다. 현재 압축 레벨은 시간 간격의 시작시 설정되는 공칭(nominal) 압축 레벨에 대응할 수 있다. 하지만, 현재 압축 레벨은 또한 가령, 시간 간격의 시작으로부터 상기 시간 간격의 현재 시점까지인 시간 기간 동안과 같이, 시간 간격의 시작 이후에 조절된 압축 레벨에 대응할 수 있다.
본 명세서에서 사용된 압축 레벨이라는 용어는, 일반적으로 비디오 스트림이 압축되는 정도를 지칭한다. 일반적으로 이것은 비디오 인코더의 파라미터이며, 가변적일 수 있다. 예를 들어, 압축 레벨은 양자화 파라미터의 형태일 수 있다.
본 명세서에서 사용되는 비디오 스트림의 내용은, 일반적으로 비디오 스트림의 프레임들의 이미지 컨텐츠를 의미한다. 비, 눈, 안개 또는 바람과 같은 날씨는 일반적으로 비디오 스트림의 프레임들에 잡음 또는 움직임(또는, 모션 이라함)을 도입하여 비디오 스트림의 이미지 내용에 영향을 줄 것이다.
날씨 예측 데이터는 다양한 날씨 관련 파라미터들의 형태일 수 있다. 날씨 관련 파라미터들는 날씨에 의해 야기되는 출력 비트레이트에서의 미래의 증가를 예측하는데 사용될 수 있는바, 예를 들어 다양한 미리결정된 임계값들과 상기 파라미터들을 비교함으로써 사용될 수 있다. 보다 구체적으로는, 날씨 예측 데이터는 기상 상태를 나타내는 파라미터들을 포함할 수 있고, 그리고 예측하는 단계에서, 상기 파라미터가 미리결정된 파라미터 범위 밖에 속하는 경우 출력 비트레이트에서의 미래의 증가가 예측된다.
일부 어플리케이션들에서, 비디오 인코더의 출력 비트레이트에 대한 제어는 특정 시간 간격 동안 출력되는 전체 비트 수가 소정 레벨을 초과하지 않도록 인코더의 출력 데이터 량을 제어하는 것을 목표로 한다. 즉, 비디오 인코더는 특정 시간 간격 동안 소비할 수 있는 비트 예산을 가질 수 있다. 예상치 못한 비트 비용이 발생하면(본원에서는 날씨로 인해 야기되는 비트레이트의 미래의 증가로 표현됨), 비디오 인코더는 예상치 못한 비트 비용을 보상하기 위한 조치를 취해야 한다. 그렇지 않으면 결국 비트 예산이 초과될 것이다. 따라서, 본 방법은 시간 간격 동안 비디오 인코더로부터 출력이 허용되는 최대 비트 수에 대응하는 비트 예산을 설정하는 단계를 더 포함할 수 있으며, 출력 비트레이트를 감소시키는 단계에서, 비트 예산이 초과되지 않도록 상기 시간 간격의 적어도 일부분 동안 비디오 스트림의 압축 레벨이 증가된다.
따라서, 날씨에 의해 야기되는 비트레이트 피크들의 형태인 예상치 못한 비트 비용을 보상하기 위해 압축 레벨이 증가될 수 있다. 하지만, 예상치 못한 비트 비용을 보상하기 위해 압축 레벨이 증가될 수도 있을뿐만 아니라, 시간 간격이 종료할 때 비트 예산이 초과되지 않음을 보장하도록 시간 간격 동안에 압축 레벨이 반복적으로 조절될 수도 있다. 예를 들어, 상기 방법은 비트 예산이 초과되지 않도록, 상기 시간 간격 동안에 상기 비디오 스트림의 압축 레벨을 주기적으로 조절하는 단계를 더 포함할 수 있다. 이것은, 상기 시간 간격 동안 여태까지 소비된 비트 수가 예측된 것보다 높다면 압축 레벨을 증가시키는 단계, 또는 여태까지 소비된 비트 수가 예측된 것보다 낮다면 압축 레벨을 감소시키는 단계를 포함할 수 있다.
예상된 소비 비트 수는, 동일한 지속 기간의 이전 시간 간격들 동안 동일 시점에서 소비되었던 평균 비트 수에 대응할 수 있다. 이와 관련하여, 아주 유사한 내용이 월별 가구 예산(monthly household budget)에 적용될 수 있다. 월별 가구 예산에는 예상 비용과 예상치 못한 비용이 있다. 예상 비용은 월말에 지불해야하는 집세에 대응할 수 있으며, 예상치 못한 비용은 예기치 못했던 누수 수리를 위한 비용에 대응할 수 있다. 예상 비용은 매월 통상적으로 발생하는 비용을 고려하여 계획을 세우기 용이한 반면에, 예상치 못한 비용은 처리하기가 훨씬 어렵다. 하지만, 월별 예산은 예상 비용과 예상치 못한 비용 둘다를 모두 커버해야하며, 예기치 않은 비용이 발생하면, 월말에 청구서들을 지불할만큼 충분한 돈이 남아있도록 한 쪽 또는 다른 쪽에서 가구 소비(expense of household)을 줄여야 한다.
비디오 인코더의 비트 예산으로 돌아 가면, 앞서 설명한 바와 같이 날씨로 인한 비트 비용에 해당하는 예상치 못한 비용이 있으며, 그리고 예상되는 비트 비용도 존재할 수 있다. 가계 예산과 유사하게, 예상되는 비트 비용들 및 이들이 발생하는 시간 간격의 시점이 이력 데이터로부터 추론될 수 있다. 예를 들어, 동일한 지속 시간의 과거의 시간 간격들로부터 비트레이트 데이터가 수집될 수 있으며, 이로부터 상기 시간 간격 동안 비디오 인코더의 출력 비트레이트의 평균 시간 변화가 계산될 수 있다. 이렇게 계산된 평균 시간 변화 곡선은 예를 들어, 시간 간격 내의 임의의 시점에서, 상기 시간 간격의 그 시점까지 평균적으로 발생하는 비트 비용들을 추정하는데 사용될 수 있다. 이것은 비트 예산이 초과되지 않음을 보장할 수 있도록 출력 비트레이트를 제어하는데 이용될 수 있다.
보다 상세하게는, 상기 방법은 시간 간격 동안 비디오 인코더의 출력 비트레이트의 평균 시간 변화(average temporal variation)를 나타내는 이전에 수집된 비트레이트 데이터를 수신하는 단계, 및 상기 이전에 수집된 비트레이트 데이터로부터, 상기 시간 간격의 현재 시점에서 상기 비디오 인코더로부터 평균적으로 출력되는 비트 수를 계산하는 단계를 포함하고, 상기 압축 레벨을 주기적으로 조절하는 단계에서, 현재 시점에서 상기 비디오 인코더로부터 출력된 비트 수가 상기 현재 시점에서 상기 비디오 인코더로부터 평균적으로 출력되는 상기 계산된 비트 수를 초과한다면 상기 압축 레벨이 증가되고, 그리고 상기 현재 시점에서 상기 비디오 인코더로부터 출력된 비트 수가 상기 현재 시점에서 상기 비디오 인코더로부터 평균적으로 출력되는 상기 계산된 비트 수 보다 작다면 상기 압축 레벨이 감소된다.
이전에 수집된 비트레이트 데이터는 또한 비디오 스트림의 공칭 압축 레벨을 설정하는데 사용될 수 있다. 공칭 압축 레벨은 압축 레벨이 조절되는(즉, 증가 또는 감소시키는) 기준 레벨로서의 역할을 할 수 있다. 보다 상세하게는, 상기 방법은,
시간 간격 동안 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터를 수신하는 단계, 및
상기 시간 간격에 대한 비트 예산이 초과되지 않도록 상기 시간 간격 동안 이전에 수집된 비트레이트 데이터에 기초하여 비디오 스트림의 공칭 압축 레벨을 설정하는 단계를 포함하고,
상기 비디오 인코더의 출력 비트레이트을 감소시키는 단계에서, 상기 압축 레벨은 상기 공칭 압축 레벨로부터 증가된다.
앞선 설명에서, 공칭 압축 레벨은 평균 시간 변동 곡선(즉, 예상된 미래 비용)에 기초하여 설정된 압축 레벨을 지칭하여, 예상된 미래 비트 비용들이 비트 예산에 의해 커버될 것이다. 일반적으로, 공칭 압축 레벨은 시간 간격의 시작 시점에 설정되며, 따라서 압축 레벨의 시작 값으로 사용될 수 있다.
상기 방법은, 상기 비트 예산에 따른, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 비트 수를 추적하고, 그리고 상기 시간 간격의 남은 시간을 추적하는 단계를 더 포함하며, 상기 비디오 인코더의 출력 비트레이트를 감소시키는 단계에서, 상기 압축 레벨은, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 상기 비트 수 및 상기 시간 간격의 남은 시간에 적어도 기초하여 결정되는 분량 만큼 증가된다. 따라서, 이 방법은 항상, 상기 시간 간격의 나머지 동안 얼마나 많은 비트들이 소비를 위해 남아있는지를 추적할 수 있으며 그리고 남아있는 시간을 추적할 수 있다. 이러한 정보에 기초하여, 날씨로 인한 비트레이트의 증가를 보상하기 위한 압축 레벨의 증가 분량을 설정할 수 있다.
이러한 분량은 시간 간격 동안 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 또한 결정될 수 있다. 이러한 방식으로, 평균 시간 변화 곡선으로부터 추론될 수 있는 미래의 예상 비트 비용은, 날씨로 인한 비트레이트 증가를 보상하기 위해 압축 레벨이 얼마나 많이 증가되어야 하는지를 결정할 때 또한 고려될 수 있다.
압축 레벨이 증가되는 상기 시간 간격의 부분은 여러 가지 방식들로 선택될 수 있다. 예를 들어, 시간 간격의 적어도 일부분은, 비디오 인코더의 출력 비트레이트의 예측된 미래의 증가 동안 비디오 스트림의 압축 레벨이 증가되도록, 날씨 예측 데이터에 기초하여 선택될 수 있다. 달리 말하면, 날씨가 발생할 것으로 예상될 때 압축 레벨이 증가될 수 있다.
시간 간격의 적어도 일부는 또한, 시간 간격 동안 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 선택될 수 있다. 예를 들어, 출력 비트레이트의 평균 시간 변화에서 비트레이트 피크를 포착하는 것이 중요하다고 가정하면, 출력 비트레이트의 평균 시간 변화에서 비트레이트 피크들이 존재하지 않을 때 압축 레벨이 증가될 수 있다. 이러한 부분들은 출력 비트레이트의 평균 시간 변화가 임계값 아래일 때의 시간 부분들로 식별될 수 있다. 보다 상세하게는, 이전에 수집된 비트 레이트 데이터가 미리결정된 임계값을 초과하는 시간 간격의 일부분 동안 또는 이전에 수집된 비트 레이트 데이터가 미리결정된 임계치보다 낮은 시간 간격의 일부분 동안 비디오 스트림의 압축 레벨이 증가하도록, 시간 간격의 적어도 일부는 이전에 수집된 비트레이트 데이터에 기초하여 선택될 수 있다.
대안적으로, 비디오 스트림의 압축 레벨은 시간 간격의 나머지 기간 동안 증가될 수 있다. 이러한 방식으로, 날씨로 인한 비트레이트의 증가에 대한 보상이 나머지 시간 간격에 걸쳐 분산된다.
또 다른 일례에 따르면, 시간 간격의 적어도 일부는 비디오 스트림의 내용에 기초하여 선택될 수 있다. 예를 들어, 압축 레벨은 비디오 스트림에서의 움직임의 레벨이 임계값 아래인 시간 부분 동안 증가될 수 있다. 그렇게하면 비디오 스트림의 흥미로운 부분이 여전히 고품질로 인코딩되었는지를 보장할 수 있다.
본 발명의 제 2 측면에 따르면, 상기 목적은 비디오 스트림을 인코딩할 때 비디오 인코더의 출력 비트레이트를 제어하기 위한 제어기에 의해 달성되며, 상기 제어기는,
비디오 스트림이 캡처되는 위치에 대한 날씨 예측 데이터를 수신하도록 구성된 수신기;
상기 날씨 예측 데이터에 기초하여, 상기 비디오 스트림의 내용에 영향을 미치는 날씨로 인한 상기 비디오 인코더의 출력 비트레이트에서의 미래의 증가를 예측하도록 구성된 예측기; 및
비디오 인코더의 출력 비트레이트의 미래의 증가를 보상하도록 비디오 스트림의 압축 레벨을 증가시킴으로써 비디오 인코더의 출력 비트레이트를 감소시키는 출력 비트레이트 조절기를 포함한다.
본 발명의 제 3 양상에 따르면, 상기 목적은 비디오 인코더 및 비디오 인코더의 출력 비트레이트를 제어하기 위한 상기 제 2 양상에 따른 제어기를 포함하는 비디오 카메라에 의해 달성된다.
본 발명의 제 4 양상에 따르면, 프로세싱 능력을 갖는 디바이스에 의해 실행될 때 상기 제 1 양상의 방법을 수행하도록 구성된 컴퓨터 코드 명령어를 갖는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다.
상기 제 2, 제 3 및 제 4 양상는 일반적으로 제 1 양상와 동일한 특징 및 이점을 가질 수 있다. 또한, 본 발명은 달리 명시적으로 언급되지 않는 한 특징들의 가능한 모든 조합들에 관한 발명이다.
전술한 것 뿐만 아니라 추가적인 본 발명의 목적, 특징 및 장점은 첨부된 도면을 참조하여, 본 발명의 실시예에 대한 다음의 예시적이고 비제한적인 상세한 설명을 통해 더욱 잘 이해될 것이다. 도면들에서는 동일한 참조 번호들이 유사한 구성요소들에 대해서 사용될 것이다.
도 1은 실시예에 따른 비디오 카메라의 개략도이다.
도 2는 도 1의 비디오 카메라의 비디오 인코더의 출력 비트레이트를 제어하기 위한 제어기의 개략도이다.
도 3은 실시예에 따라 비디오 스트림을 인코딩 할 때 비디오 인코더의 출력 비트레이트를 제어하는 방법의 흐름도이다.
도 4는 실시예에 따라 비디오 스트림을 인코딩 할 때 비디오 인코더의 출력 비트레이트를 제어하는 방법의 흐름도이다.
도 5a-5d는 각각 시간의 함수로서 비디오 인코더의 출력 비트레이트를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 그러나, 본 발명은 많은 상이한 형태로 구현될 수 있으며, 여기에 설명된 실시예만으로 한정되는 것으로 해석되어서는 안된다. 오히려, 이들 실시예는 철저하고 완전하게 제공되며, 본 발명의 범위를 당업자에게 완전히 전달하기 위해 제공된다. 여기에 개시된 시스템 및 장치는 동작 동안 설명될 것이다.
도 1은 비디오 카메라(100)를 도시한다. 비디오 카메라는 센서(102), 이미지 파이프라인(104), 및 네트워크 인터페이스(112)를 포함한다.
비디오 카메라(100)는 센서(102)를 통해 비디오 스트림을 캡처하도록 구성된다. 비디오 스트림은 일련의 이미지 데이터 프레임들을 포함한다. 센서(102)에 의해 캡처된 바와 같은 이미지 데이터는 이미지 미가공 데이터(image raw data)의 형태이다. 미가공 형식(raw format)의 이미지 데이터는 프레임 단위로 이미지 파이프 라인(104)으로 전달되며, 이미지 파이프 라인(104)에서는 이미지 데이터가 프로세싱 및 인코딩된다. 이러한 목적을 위해, 이미지 파이프 라인(104)은 이미지 프로세서(106) 및 비디오 인코더(108)를 포함한다. 이미지 프로세서(106)는 다양한 프로세싱 단계에서 당업계에 이미 알려진 방식으로 프레임들의 이미지 미가공 데이터를 프로세싱할 수 있다. 프로세싱된 이미지 데이터는 비디오 인코더(108)에 의해 인코딩된다.
비디오 인코더(108)는 비디오 스트림의 인코딩된 이미지 데이터를 비트스트림 형태로 출력한다. 비트스트림은 전형적으로 네트워크 인터페이스(112)를 통해 네트워크를 통해 저장 유닛에 보내지며, 저장 유닛은 예를 들어 서버 상에 위치될 수 있다. 대안적으로, 비디오 카메라(100)는 인코딩된 비디오 스트림을 저장하기 위한 저장부를 자체적으로 포함할 수 있으며, 이러한 저장부는 전형적으로 비휘발성 메모리의 형태이다.
따라서, 비디오 인코더(108)는 비트스트림을 출력한다. 비디오 인코더(108)가 비트들을 출력하는 레이트, 즉 비디오 인코더(108)의 출력 비트레이트는 제어기(110)에 의해 제어될 수 있다. 제어기는 비디오 인코더(108)의 일부로서 또는 별도의 유닛으로서 구현될 수 있다. 이러한 목적으로, 제어기(110)는 비디오 인코더(108)에 제어 신호를 전송할 수 있다. 제어 신호는 특히 비디오 인코더(108)에 압축 레벨을 조절하도록 지시할 수 있다. 이와 관련하여, 압축 레벨은 예를 들어 H.264 표준의 양자화 파라미터를 참조할 수 있다. 대안적으로 또는 부가적으로, 압축 레벨은 비디오 인코더(108)의 프레임 레이트를 조절함으로써 조절될 수 있다. 압축 레벨이 증가함에 따라, 비디오 인코더(108)의 출력 비트레이트는 감소할 것이며, 그 반대도 마찬가지이다.
제어기(110) 및 그 구성요소는 도 2에 보다 상세히 도시된다. 제어기(110)는 수신기(1101), 예측기(1102) 및 출력 비트레이트 조절기(1103)를 포함한다.
따라서, 제어기(110)는 제어기(110)의 기능을 구현하도록 구성된 다양한 구성 요소들(1101, 1102, 1103)을 포함한다. 특히, 예시된 각각의 구성 요소는 제어기(110)의 기능에 대응한다. 일반적으로, 제어기(110)는 구성 요소들(1101, 1102, 1103)를 구현하도록 구성된 회로를 포함할 수 있으며, 보다 구체적으로는 이들의 기능을 구현하도록 구성될 수 있다.
하드웨어 구현에서, 구성 요소들(1101, 1102, 1103) 각각은 상기 구성 요소의 기능을 제공하도록 전용되며 특별하게 설계된 회로에 대응할 수 있다. 상기 회로는 하나 이상의 주문형 집적회로와 같은 하나 이상의 집적회로의 형태 일 수 있다. 예로서, 출력 비트레이트 조절기(1103)는 사용시에 압축 레벨을 증가시킴으로써 비디오 인코더의 출력 비트레이트를 감소시키는 회로를 포함할 수 있다.
소프트웨어 구현에서, 대신에 상기 회로는 마이크로 프로세서와 같은 프로세서의 형태일 수 있으며, 이는 비휘발성 메모리와 같은(비일시적인) 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 코드 명령과 관련하여 상기 제어기로 하여금 본 명세서에 개시된 임의의 방법들을 수행하게 한다. 이 경우, 구성 요소들(1101, 1102, 1103)은 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 코드 명령들의 일부분에 각각 대응할 수 있으며, 이는 프로세서에 의해 실행될 때 제어기(110)로 하여금 상기 구성요소의 기능을 수행하게 한다.
하드웨어 및 소프트웨어 구현의 조합도 가능함을 유의해야 하는바, 이는 구성 요소들(1101, 1102, 1103) 중 일부의 기능은 하드웨어로 구현되고 나머지는 소프트웨어로 구현됨을 의미한다.
제어기의 동작은 도 1 및 도 2와 도 3의 흐름도를 참조하여 이하에서 설명 될 것이다.
단계 S302에서, 수신기(1101)는 날씨 예측 데이터를 수신한다. 날씨 예측은 비디오 스트림이 캡처되는 위치, 즉 비디오 카메라(100)의 위치에 관한 것이다. 날씨 예측 데이터는 네트워크 인터페이스(112)를 통해 네트워크로부터 수신될 수 있다. 예를 들어, 날씨 예측 데이터는 인터넷 기반 날씨 예측 서비스로부터 수신될 수 있다.
날씨 예측 데이터는 일반적으로 비디오 카메라(100)의 위치에서 미래의 날씨를 나타낸다. 예를 들어, 날씨 예측 데이터는 하나 이상의 파라미터의 형태일 수 있다. 이것은 강우량, 적설량, 습도, 온도 및/또는 풍속을 포함할 수 있다. 이들 파라미터들은 단독으로 또는 함께, 비디오 카메라(100)의 위치에서의 기상 상태를 나타낼 수 있다. 예를 들어, 강수량은 비가 옴을 나타내고, 적설량은 눈이 옴을 나타내며, 습도 레벨은 온도와 함께 안개를 나타내며, 풍속은 바람이 불고 있음을 나타낸다. 날씨 예측 데이터는 또한 하나 이상의 파라미터들에 의해서 특정된 바와 같은 기상 상태가 언제 나타날지를 표시할 수 있다.
단계 S304에서, 예측기(1102)는 날씨 예측 데이터에 기초하여 비디오 인코더(110)의 출력 비트레이트의 미래의 증가를 예측한다. 야외 상황, 즉 비디오 카메라(100)가 야외에 위치하는 경우, 다양한 기상 상태들이 비디오 스트림의 내용에 영향을 미칠 것이다(가령, 바람직하지 않은 잡음 또는 모션을 도입하는 것과 같이). 예를 들어, 비가 내리거나 눈이 내리면 이미지의 잡음 레벨이 높아질 것이며, 그리고 바람이 심하면 장면의 나뭇 가지들과 나뭇잎들이 움직일 수 있다. 이러한 잡음 및 움직임은 그 어떤 추가적인 감시 정보도 부가하지 않기 때문에 감시의 관점에서는 바람직하지 않다. 그럼에도 불구하고 기상 상태로 인해 발생하는 잡음 또는 움직임은 비디오 스트림에 있게 될 것이며, 이는 출력 비트레이트의 증가를 야기할 것인바, 왜냐하면 잡음 및 움직임은 인코딩하는데 코스트가 많이 들기 때문이다.
전술한 바와 같이, 날씨 예측 데이터는 카메라(100)의 위치에서의 미래의 기상 상태를 나타내며, 따라서 비디오 인코더(108)의 출력 비트레이트에 있어서 미래에 증가가 있을지, 심지어 언제 있을지를 예측하는데 사용될 수 있다. 예를 들어, 예측기(1102)는 날씨 예측 데이터의 하나 이상의 파라미터들과 미리정의된 파라미터 범위들을 비교하여, 이들이 상기 미리정의된 파라미터 범위들의 내부 또는 외부에 속하는지를 알 수 있다. 미리정의된 파라미터 범위의 외부에 속하는 파라미터는 이미지 데이터에 영향을 미칠 기상 상태가 존재함을 나타내는(따라서, 결국에는 출력 비트레이트에서 증가가 있을 것임을 나타내는) 지표로서 작용할 수 있다. 따라서, 하나 또는 여러 개의 파라미터들이 미리정의된 파라미터 범위들의 외부에 속하는 경우, 예측기(1102)는 출력 비트레이트가 미래에 증가될 것임을 예측할 수 있다.
전술한 바와 같이, 비디오 스트림의 이미지 내용에 영향을 미치는 날씨로 인하여 출력 비트레이트가 미래에 증가할 것임을 예측기(1102)가 예측한 경우, 본 방법은 단계 S306로 진행한다. 단계 S306에서, 출력 비트레이트 조절기(1103)는 예측된 미래의 출력 비트레이트 증가를 보상하기 위한 동작을 취한다. 보다 상세하게, 출력 비트레이트 조절기(1103)는 비디오 인코더(108)의 압축 레벨을 증가시키는 결정을 취한다. 출력 비트레이트 조절기(1103)는 예를 들어 압축 레벨을 증가시켜야한다는 제어 신호를 비디오 인코더(108)에 전송할 수 있다. 예를 들어, 비디오 인코더(108)의 양자화 파라미터가 증가될 수 있다. 대안적으로 또는 부가적으로, 인코딩된 비디오 스트림의 프레임 레이트가 감소될 수 있다. 결과적으로, 비디오 인코더(108)의 압축 레벨이 증가되는 경우, 출력 비트레이트는 감소될 것이다. 이러한 방식으로, 기상 상태로 인한 예측된 비트레이트 증가가 보상될 수 있다. 바람직하게는, 기상 상태로 인한 비트레이트의 증가가 완전히 보상되도록 압축 레벨이 증가된다.
출력 비트레이트 조절기(1103)는 즉시, 즉 나쁜 기상 상태가 예측되자마자 압축 레벨을 증가시키도록 비디오 인코더(108)를 제어할 수 있다. 하지만, 출력 비트레이트 조절기(1103)는 또한, 기상 상태가 발생할 것으로 예상되는 때, 즉 출력 비트레이트의 예측된 미래의 증가 동안에 압축 레벨을 증가시키도록 비디오 인코더(108)를 제어할 수도 있다. 압축 레벨의 증가는 추후 통지가 있을 때까지 일 수도 있으며 또는 이것은 순간적인 것 즉, 시간 제한이 있을 수도 있다. 예를 들어, 기상 상태로 인한 비트레이트 증가가 발생할 것으로 예측되는 기간에만 적용되도록, 압축 레벨의 증가가 제한될 수 있다. 또 다른 옵션에 따르면, 압축 레벨이 증가되어야만 하는 시간 기간은 가령, 비디오 스트림 내의 모션의 레벨과 같은 비디오 스트림의 내용에 기초하여 선택될 수 있다. 보다 상세하게는, 제어기(110)는 예를 들어 비디오 인코더(108)를 통해 인코딩될 비디오 스트림에 액세스할 수 있다. 다음으로, 출력 비트레이트 조절기(1103)는 예컨대, 비디오 스트림 내의 모션의 레벨이 임계값 이하인 기간들 동안 압축 레벨을 증가시키도록 결정할 수 있다.
압축 수준의 증가량은 일반적으로 예측된 기상 상태의 심각도에 따라 달라질 수 있다. 날씨가 "강할수록" 압축 레벨을 더 많이 높여야 한다. 그러나 실제로는 이것은 카메라의 위치에 따라 달라질 것이며, 그리고 특정 위치의 카메라에 대한 압축 레벨의 적절한 증가량을 찾아내기 위해서는, 경험적인 테스트들이 필요하다. 일례로서, 카메라는 날씨에 의해 거의 영향을 받지 않는 보호받는 장소에 마운트될 수도 있으며 또는 심지어 비교적 온화한 날씨일지라도 이미지 내용들 및 결과적으로 비트레이트에 큰 영향을 미치는, 오픈 워터(open water) 위의 다리와 같은 노출된 위치에 있을 수도 있다. 따라서, 날씨로 인한 비트레이트의 향후 증가를 보상하기 위해 압축 레벨이 얼마나 많이 상승해야만 하는지를 알아내기 위하여, 카메라의 날씨 민감도가 테스트되어야 한다.
도 1을 참조하여 설명되는 바와 같이, 인코딩된 비디오 스트림이 저장될 수 있다. 일부 상황에서는, 오직 소정 분량의 저장 공간만이 이용가능하며, 그리고 이용가능한 저장 공간이 하루, 일주일 또는 한 달과 같이 미리정의된 시간 동안 유지되어야 한다. 달리 말하면, 시간 기간 동안 비디오 인코더(108)로부터 출력되는 것이 허용되는 최대 비트 수를 정의하는 소정의 비트 예산이 존재할 수 있다. 이러한 경우, 제어기(110)는 날씨에 의해 야기되는 비트레이트 피크들을 보상하도록 비디오 인코더(108)의 출력 비트레이트를 제어해야만 할 뿐만 아니라, 상기 제어기(100)는 비트 예산이 초과되지 않도록 압축 레벨을 조절함으로써 출력 비트레이트를 추가적으로 제어해야만 한다. 도 3를 참조하여 서술된 방법은, 이러한 상황의 맥락에서 구현될 수도 있다. 이는 도 1, 도 2, 도 5a 내지 도 5d 및 도 4의 흐름도를 참조하여 이하에서 보다 상세하게 설명될 것이다.
단계 S402에서, 비트 예산이 시간 간격에 대해 설정된다. 비트 예산은 시간 간격 T 동안 비디오 인코더(108)로부터 출력이 허용된 최대 비트 수에 대응한다. 전형적으로, 비트 예산은 네트워크 인터페이스(112) 및 수신기(1101)를 통해 제어기(110)로 통신될 수 있는 입력 파라미터이다. 이것은, 이용가능한 저장 용량 및 원하는 보유 시간에 기초할 수 있다.
단계 S404에서, 제어기(101)는 수신기(1101)를 통해 이전에 수집된 비트레이트 데이터를 수신할 수 있다. 이전에 수집된 비트레이트 데이터는 시간 간격 T 동안 비디오 인코더(108)의 평균 출력 비트레이트의 시간적 변화를 기술하는 곡선의 형태일 수 있다. 이러한 곡선은, 과거의 여러 주간들(a plurality of weeks in the past)로부터의 비트레이트 데이터와 같이, 과거의 복수개의 시간 간격들 T로부터 출력 비트레이트 데이터를 수집하고 그리고 상기 복수개의 시간 간격들에 대한 평균을 계산함으로써 산출될 수 있다. 이러한 곡선(500)의 일례가 도 5a에 도시되어 있다. 곡선(500) 아래의 영역, 즉 상기 곡선의 시간 적분은 시간 주기 T 동안 출력되는 평균 비트 수이다. 시간 주기 T 동안 출력되는 평균 비트 수는, 비트 예산에 의해 허용되는 최대 출력 비트수 이하인 것으로 가정된다. 이러한 의미에서, 곡선(500)은 시간에 대한 이용가능한 비트 예산의 분포로 보여질 수 있다. 유사하게, 시간 t0 까지의 상기 곡선의 적분은 시간 t0 까지 출력되는 평균 비트 수이다. 환언하면, 곡선(500)으로부터, 특정 시점 이전에 출력되는 예상 비트 수가 계산될 수 있다.
이전에 수집된 비트레이트 데이터는 또한 압축 레벨에 대한 베이스 레벨 또는 기준 레벨로서 작용할 수 있는 공칭(nominal) 압축 레벨을 설정하는데 사용될 수 있다. 그 다음, 공칭 압축 레벨과 관련하여, 예를 들어, 후술하는 단계 S406 및 S412에서 압축 레벨이 조절될 수 있다. 공칭 압축 레벨은 바람직하게는 시간 간격의 초기(outset)에 설정되며, 따라서 압축 레벨의 시작 값으로 간주될 수 있다. 공칭 압축 레벨은 이전에 수집된 비트레이트 데이터에 기초하여 설정될 수 있다. 보다 상세하게는, 이전에 수집된 비트레이트 데이터는, 이전에 수집된 비트레이트 데이터를 생성할 때 비디오 인코더(108)에 의해 사용되었던 압축 레벨과 관련될 수 있다. 이전에 수집된 비트레이트 데이터가 원하는 비트 예산 내에 맞지 않는 것으로 판명되면(가령, 곡선(500) 아래의 면적이 비트 예산을 초과하는 경우처럼), 공칭 압축 레벨은 이전에 수집된 비트레이트 데이터와 연관된 압축 레벨보다 높아야하고, 그 반대의 경우도 마찬가지이다. 실제로, 비트레이트 데이터는 다양한 압축 레벨들에 대해서 수집될 수 있으며, 그리고 이를 기초로, 요망되는 비트 예산을 초과하지 않는 비트레이트 곡선과 관련된 압축 레벨에 대응하도록 공칭 압축 레벨이 설정될 수 있다.
단계 S406에서, 출력 비트레이트 조절기(1103)는 비디오 스트림의 압축 레벨을 조절한다. 보다 상세하게는, 출력 비트레이트 조절기(1103)는 시간 간격 T 동안 압축 레이트를 주기적으로 조절할 수 있다. 예를 들어, 시간 간격 T가 하루(24 시간)에 해당하면 압축 레이트는 시간 단위로 업데이트될 수 있다. 특히, 압축 레이트는 시간 간격 T의 끝에서 비트 예산이 초과되지 않음을 보장하도록 조절될 수 있다. 이러한 목적을 위해, 출력 비트레이트 조절기는 비디오 인코더(108)로부터의 입력을 통해, 시간 간격 동안 소비된 비트 수를 추적할 수 있다. 그 다음, 출력 비트레이트 조절기(1103)는 시간 t0에서 비디오 인코더(108)로부터 실제로 출력된 비트들과 시간 t0에서의 출력 비트들의 예측된 개수를 비교할 수 있다. 전술한 바와 같이, 후자는 도 5a의 곡선(500)을 t0 시점까지 적분함으로써 얻어질 수 있다. 만일, 인코더(108)로부터 출력된 비트들의 개수가 출력 비트들의 예측된 개수를 초과하면, 출력 비트레이트 조절기(1103)는 압축 레벨을 증가시킬 수 있다. 만일, 인코더(108)로부터 출력된 비트들의 개수가 출력 비트들의 예측된 개수보다 작다면, 출력 비트레이트 조절기(1103)는 압축 레벨을 감소시킬 수 있다.
일반적으로, 압축 레벨 조절의 양은 당 업계에 공지된 바와 같이 여러 가지 방식으로 수행될 수 있다. 예를 들어, 비례 제어 기법이 사용될 수도 있는데, 비례 제어 기법에서 조절 사이즈는, 인코더로부터 출력된 비트들의 실제 개수와 출력 비트들의 예측된 개수 사이의 차이값에 비례한다.
압축 레벨을 주기적으로 조절하는 것의 대안으로서, 또는 보완책으로서, 실제로 출력된 비트들의 개수와 출력 비트들의 예측된 개수가 소정 임계값 이상으로 차이가 나는 것을 발견하면 압축 레벨을 조절할 수도 있다.
단계 S408에서,도 3의 단계 S302와 관련하여 서술된 것에 따라 날씨 예측 데이터가 수신된다. 날씨 예측 데이터는 시간 간격(T) 동안의 임의의 시점에서 수신될 수 있다. 도 5a의 일례에서, 날씨 예측 데이터는 시간 t1에 수신되는 것으로 가정된다.
단계 S406 및 단계 S408에 대한 특정 순서는 없다는 것을 주목해야 한다. 한편으로, 단계 S406의 조절은 가령, 주기적으로(도 5a의 시점들 t0, 2t0, 3t0, ,,, 에서) 수행되는 것과 같이, 시간 간격 T 동안 여러 번 수행된다. 다른 한편으로, 단계 S408은 가령, 도 5a의 시간 t1에서와 같이, 시간 간격 T 동안의 임의의 시간에서 일어날 수 있다. 사실상, 단계 S408는 압축 레벨의 조절을 트리거할 수 있는바(다음의 단계들 S410, S412 참조), 이는 단계 S406에서 설명된 정규적인 조절에 부가되는 것이다.
단계 S410에서, 예측기(1102)는 도 3의 단계 S304와 관련하여 서술된 것에 따라 날씨 예측 데이터에 기초하여 출력 비트레이트에 있어서의 미래의 증가를 예측한다. 도 5a의 일례를 참조하면, 출력 비트레이트는 비디오 스트림의 내용에 영향을 미치는 날씨로 인해 점선(502)까지 증가할 것으로 예측된다.
단계 S412에서, 출력 비트레이트 조절기(1103)는 날씨에 의해 야기되는 출력 비트레이트의 예측된 증가를 보상하기 위해 압축 레벨을 증가시키며, 따라서 비트 예산이 최종적으로 유지됨을 보장할 수 있다. 이는 도 3의 단계 S306와 관련하여 설명된 것과 일치한다.
일반적으로, 출력 비트레이트 조절기(1103)는 시간 간격 T의 적어도 시간 부분 동안 압축 레벨을 증가시킨다. 그러나, 출력 비트레이트 조절기(1103)는 출력 비트레이트에서의 예측된 증가를 보상하기 위해 압축 레벨을 언제 증가시킬지를 선택하기 위한 서로 다른 전략들을 가질 수 있다. 하나의 전략에 따르면, 출력 비트레이트에서의 예측된 증가 동안에 압축 레벨이 증가된다. 다시 말하면, 날씨 예측 데이터에 기초하여, 압축 레벨이 증가되는 기간들이 선택된다. 이것은 도 5b의 1점 쇄선(dash-dotted curve)(504)에 의해 도시되며, 이는 그 경우에 대한 최종 출력 비트레이트를 나타낸다. 다른 전략에 따르면, 압축 레벨은 시간 간격 T의 나머지 동안에 증가된다. 이것은 도 5c의 1점쇄선(506)에 의해 예시된다. 또 다른 전략에 따르면, 평균 비트레이트 곡선(500)에 기초하여 선택된 시간 간격 T의 시간 부분 동안 압축 레벨이 증가된다. 보다 상세하게는, 평균 비트레이트 곡선이 임계값 아래에 있을 때 압축 레벨이 증가될 수 있다. 이는 도 5d의 일점 쇄선(508)에 의해 예시되며, 이는 그 경우에 대한 최종 출력 비트레이트를 나타낸다. 임계값은 B로 표시된다. 또 다른 전략에 따르면, 압축 레벨은 비디오 스트림의 내용물에 기초하여 증가되는바, 가령 비디오 스트림 내의 움직임의 레벨이 임계값 아래일 때 압축 레벨이 증가된다.
단계 S412에서 압축 레벨의 증가량을 설정하기 위한 서로 다른 접근법들이 존재할 수 있다. 사용된 코덱과 같은 다양한 요소들이, 압축 레벨과 출력 비트레이트 사이의 관계에 영향을 미칠 수 있다. 위에서 더 자세히 설명된 바와 같이, 날씨의 심각도와 카메라의 위치는 압축 레벨이 얼마나 증가해야 하는지에 영향을 미칠 수 있다. 따라서, 서로 다른 환경들의 서로 다른 카메라들에 대해, 압축 레벨이 출력 비트레이트에 어떻게 영향을 미치는지를 측정하기 위하여, 소정의 테스트들이 필요하다. 하지만, 다음을 상기해야만 하는바, 만일 단계 S412에서 압축 레벨이 충분히 충분히 증가되지 않았다는 것이 발견되면 단계 S406에서의 주기적 조절로 인하여 압축 레벨의 추가적인 증가가 이루어질 수 있다. 이와 반대로, 만일 단계 S412에서 압축 레벨이 너무 많이 증가한다면, 단계 S406에서 수행되는 정규 조절에서 압축 레벨이 다시 감소될 수 있다. 따라서, 상기 시스템은 이 점에서 자율 규제형(self-regulatory)이다. 하지만, 단계 S412에서 압축 레벨을 증가시킬 때, 잔여 비트 예산 및 시간 간격의 남은 시간을 고려하는 것이 바람직할 수 있다. 전형적으로, 잔여 시간이 더 남아있는 경우와 비교하여 잔여 시간이 짧은 시간만 남아있는 경우에는 압축 레벨의 증가량이 더 커야하는데, 왜냐하면 날씨가 야기한 비트레이트의 증가는 비교적 짧은 시간 동안 보상되어야 하기 때문이다. 유사하게, 소비될 비트들이 오직 적은 개수만이 남아있다면, 소비될 비트들이 더 많이 남아있는 경우에 비하여, 압축 레벨의 증가량이 더 클 필요가 있는데, 왜냐하면 이러한 상황에서는 날씨가 야기한 비트레이트 증가에 대해 소비될 예비 비트들이 남아있지 않을 가능성이 높기 때문이다.
또한, 증가량은 이전에 수집된 비트레이트 데이터의 곡선(500)에 기초하여 결정될 수도 있다. 이러한 방식으로, 미래의 예상 비트 비용(곡선 500으로부터 추론될 수 있음)이, 날씨가 초래한 비트레이트에서의 증가를 보상하기 위해 압축 레벨이 얼마나 증가되어야 하는지를 결정할 때, 고려될 수 있다. 예를 들어, 소비될 나머지 비트들에 대해 시간 간격의 나머지 부분 동안에 높은 비트 비용이 예측된다면, 소비될 나머지 비트들에 대해시간 간격의 나머지 부분 동안에 낮은 비트 비용이 예측되는 경우보다, 압축 레벨의 증가가 통상적으로 더 높을 필요가 있다. 즉, 남아있는 비트 예산과 남아있는 예측 비트 비용을 비교함으로써, 미래의 날씨가 야기한 비트레이트 증가에 대하여 얼마나 많은 비트들이 소비될 수 있는지가 결정된다. 날씨가 야기한 비트레이트 증가를 커버하기에는 잔여 비트들이 충분하게 남아있지 않음이 발견되는 경우, 압축 레벨이 증가되어야만 한다. 압축 레벨의 증가량은 다음과 같은 점을 보장하도록 설정될 수 있는바, 날씨에 의해 야기된 비트레이트 증가분이 잔여 비트 예산에 의해서 커버될 것임을 출력 비트레이트의 대응하는 감소량이 보장하도록, 압축 레벨의 증가량이 설정될 수 있다.
당업자는 여러 가지 방식으로 상기 실시예들을 변형할 수 있고 상기 실시예에 도시된 바와 같은 본 발명의 장점들을 여전히 사용할 수 있음을 알 것이다. 따라서, 본 발명은 도시된 실시예들로 제한되어서는 안되며 첨부된 청구 범위에 의해서만 정의되어야 한다. 또한, 당업자가 이해하는 바와 같이, 도시된 실시예들은 조합될 수 있다.

Claims (20)

  1. 비디오 스트림을 인코딩할 때 비디오 인코더의 출력 비트레이트를 제어하는 방법으로서,
    현재 시점에서, 비디오 스트림이 캡처되는 위치에 대한 미래 날씨 상태를 나타내는 날씨 예측 데이터를 수신하는 단계, 상기 날씨 예측 데이터는 상기 미래 날씨 상태를 나타내는 하나 이상의 날씨 관련 파라미터들과 날씨 상태가 발생할 시점에 대한 표시를 포함하고;
    상기 하나 이상의 날씨 관련 파라미터들 중 적어도 하나가 기정의된 파라미터 간격을 벗어나면, 비디오 스트림에 도입되는 노이즈 또는 모션으로 인하여 미래 날씨 상태가 비디오 인코더의 출력 비트레이트에 영향을 미칠지를 상기 날씨 예측 데이터에 기초하여 예측하는 단계;
    미래 날씨 상태가 출력 비트레이트에 영향을 미칠 것이라 예측함에 응답하여, 비디오 스트림을 압축할 때 비디오 인코더에 의해서 현재 적용되는 압축 레벨을 증가시키는 단계, 상기 압축 레벨은 날씨 상태가 발생할 시점 보다 앞서서 증가되며;
    시간 간격 동안 비디오 인코더로부터 출력이 허용된 최대 비트 수에 대응하는 비트 예산을 설정하는 단계, 상기 최대 비트 수는 상기 시간 간격 동안 상기 비디오 인코더에 의해 인코딩되는 비디오 스트림이 저장될 이용가능한 저장 용량에 대응하며;
    상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화(average temporal variation)를 나타내는 이전에 수집된 비트레이트 데이터를 수신하는 단계;
    이전에 수집된 비트레이트 데이터로부터, 상기 시간 간격 동안의 복수의 시점들 중 소정 시점에서 비디오 인코더로부터 평균적으로 출력되는 비트 수를 계산하는 단계; 및
    상기 압축 레벨을 조절하되,
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 큰 경우, 압축 레벨을 증가시키고, 그리고
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 작은 경우, 압축 레벨을 감소시킴에 의해서 압축 레벨을 조절하는 단계
    를 포함하는 것을 특징으로 하는 비디오 인코더의 출력 비트레이트를 제어하는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 날씨 관련 파라미터들은, 강우 레벨, 적설 레벨, 습도 레벨, 온도 및 풍속 중 적어도 하나를 포함하는 것을 특징으로 하는 비디오 인코더의 출력 비트레이트를 제어하는 방법.
  3. 제1항에 있어서,
    상기 비디오 스트림의 압축 레벨은 상기 시간 간격 동안 주기적으로 조절되는 것을 특징으로 하는 비디오 인코더의 출력 비트레이트를 제어하는 방법.
  4. 제1항에 있어서,
    상기 비트 예산에 따라, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 비트 수를 추적하고, 그리고 상기 시간 간격의 남은 시간을 추적하는 단계를 더 포함하며,
    상기 비디오 인코더에 의해 적용되는 압축 레벨을 증가시키는 단계에서, 상기 압축 레벨은, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 상기 비트 수 및 상기 시간 간격의 남은 시간에 적어도 기초하여 결정되는 분량 만큼 증가되는 것을 특징으로 하는 비디오 인코더의 출력 비트레이트를 제어하는 방법.
  5. 제4항에 있어서,
    상기 분량은 또한, 상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 결정되는 것을 특징으로 하는 비디오 인코더의 출력 비트레이트를 제어하는 방법.
  6. 비디오 스트림을 인코딩할 때, 비디오 인코더의 출력 비트레이트를 제어하는 제어기로서,
    현재 시점에서, 비디오 스트림이 캡처되는 위치에 대한 미래 날씨 상태를 나타내는 날씨 예측 데이터를 수신하는 수신기 회로, 상기 날씨 예측 데이터는 상기 미래 날씨 상태를 나타내는 하나 이상의 날씨 관련 파라미터들과 날씨 상태가 발생할 시점에 대한 표시를 포함하고;
    상기 하나 이상의 날씨 관련 파라미터들 중 적어도 하나가 기정의된 파라미터 간격을 벗어나면, 비디오 스트림에 도입되는 노이즈 또는 모션으로 인하여 미래 날씨 상태가 비디오 인코더의 출력 비트레이트에 영향을 미칠지를 상기 날씨 예측 데이터에 기초하여 예측하는 예측기 회로; 및
    출력 비트레이트 조절기 회로를 포함하고,
    상기 출력 비트레이트 조절기 회로는,
    미래 날씨 상태가 출력 비트레이트에 영향을 미칠 것이라 예측함에 응답하여, 비디오 스트림을 압축할 때 비디오 인코더에 의해서 현재 적용되는 압축 레벨을 증가시키고, 상기 압축 레벨은 날씨 상태가 발생할 시점 보다 앞서서 증가되며;
    시간 간격 동안 비디오 인코더로부터 출력이 허용된 최대 비트 수에 대응하는 비트 예산을 설정하고, 상기 최대 비트 수는 상기 시간 간격 동안 상기 비디오 인코더에 의해 인코딩되는 비디오 스트림이 저장될 이용가능한 저장 용량에 대응하며;
    상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터로부터, 상기 시간 간격 동안의 복수의 시점들 중 소정 시점에서 비디오 인코더로부터 평균적으로 출력되는 비트 수를 계산하고;
    상기 압축 레벨을 조절하되,
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 큰 경우, 압축 레벨을 증가시키고, 그리고
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 작은 경우, 압축 레벨을 감소시킴에 의해서 압축 레벨을 조절하도록 구성되는 것을 특징으로 하는 제어기.
  7. 비디오 카메라로서,
    센서;
    비디오 인코더; 및
    비디오 인코더의 출력 비트레이트를 제어하는 제어기를 포함하고,
    상기 제어기는,
    현재 시점에서, 상기 센서에 의해 비디오 스트림이 캡처되는 위치에 대한 미래 날씨 상태를 나타내는 날씨 예측 데이터를 수신하는 수신기 회로, 상기 날씨 예측 데이터는 상기 미래 날씨 상태를 나타내는 하나 이상의 날씨 관련 파라미터들과 날씨 상태가 발생할 시점에 대한 표시를 포함하고;
    상기 하나 이상의 날씨 관련 파라미터들 중 적어도 하나가 기정의된 파라미터 간격을 벗어나면, 비디오 스트림에 도입되는 노이즈 또는 모션으로 인하여 미래 날씨 상태가 비디오 인코더의 출력 비트레이트에 영향을 미칠지를 상기 날씨 예측 데이터에 기초하여 예측하는 예측기 회로; 및
    출력 비트레이트 조절기 회로를 포함하고,
    상기 출력 비트레이트 조절기 회로는,
    미래 날씨 상태가 출력 비트레이트에 영향을 미칠 것이라 예측함에 응답하여, 비디오 스트림을 압축할 때 비디오 인코더에 의해서 현재 적용되는 압축 레벨을 증가시키고, 상기 압축 레벨은 날씨 상태가 발생할 시점 보다 앞서서 증가되며;
    시간 간격 동안 비디오 인코더로부터 출력이 허용된 최대 비트 수에 대응하는 비트 예산을 설정하고, 상기 최대 비트 수는 상기 시간 간격 동안 상기 비디오 인코더에 의해 인코딩되는 비디오 스트림이 저장될 이용가능한 저장 용량에 대응하며;
    상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터로부터, 상기 시간 간격 동안의 복수의 시점들 중 소정 시점에서 비디오 인코더로부터 평균적으로 출력되는 비트 수를 계산하고;
    상기 압축 레벨을 조절하되,
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 큰 경우, 압축 레벨을 증가시키고, 그리고
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 작은 경우, 압축 레벨을 감소시킴에 의해서 압축 레벨을 조절하도록 구성되는 것을 특징으로 하는 비디오 카메라.
  8. 비디오 스트림을 인코딩할 때 비디오 인코더의 출력 비트레이트를 제어하기 위한 명령들이 저장되어 있는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령들은 컴퓨팅 디바이스에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금:
    현재 시점에서, 비디오 카메라에 의해서 비디오 스트림이 캡처되는 위치에 대한 미래 날씨 상태를 나타내는 날씨 예측 데이터를 수신하는 동작, 상기 날씨 예측 데이터는 상기 미래 날씨 상태를 나타내는 하나 이상의 날씨 관련 파라미터들과 날씨 상태가 발생할 시점에 대한 표시를 포함하고;
    상기 하나 이상의 날씨 관련 파라미터들 중 적어도 하나가 기정의된 파라미터 간격을 벗어나면, 비디오 스트림에 도입되는 노이즈 또는 모션으로 인하여 미래 날씨 상태가 비디오 인코더의 출력 비트레이트에 영향을 미칠지를 상기 날씨 예측 데이터에 기초하여 예측하는 동작;
    미래 날씨 상태가 출력 비트레이트에 영향을 미칠 것이라 예측함에 응답하여, 비디오 스트림을 압축할 때 비디오 인코더에 의해서 현재 적용되는 압축 레벨을 증가시키는 동작, 상기 압축 레벨은 날씨 상태가 발생할 시점 보다 앞서서 증가되며;
    시간 간격 동안 비디오 인코더로부터 출력이 허용된 최대 비트 수에 대응하는 비트 예산을 설정하는 동작, 상기 최대 비트 수는 상기 시간 간격 동안 상기 비디오 인코더에 의해 인코딩되는 비디오 스트림이 저장될 이용가능한 저장 용량에 대응하며;
    상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화(average temporal variation)를 나타내는 이전에 수집된 비트레이트 데이터를 수신하는 동작;
    이전에 수집된 비트레이트 데이터로부터, 상기 시간 간격 동안의 복수의 시점들 중 소정 시점에서 비디오 인코더로부터 평균적으로 출력되는 비트 수를 계산하는 동작; 및
    상기 압축 레벨을 조절하되,
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 큰 경우, 압축 레벨을 증가시키고, 그리고
    현재 시점에서 비디오 인코더로부터 출력된 비트 수가 상기 소정 시점에서 비디오 인코더로부터 평균적으로 출력된 상기 계산된 비트 수 보다 작은 경우, 압축 레벨을 감소시킴에 의해서 압축 레벨을 조절하는 동작
    를 포함하는 동작들을 수행하게 하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  9. 제6항에 있어서,
    상기 하나 이상의 날씨 관련 파라미터들은, 강우 레벨, 적설 레벨, 습도 레벨, 온도 및 풍속 중 적어도 하나를 포함하는 것을 특징으로 하는 제어기.
  10. 제6항에 있어서,
    상기 비디오 스트림의 압축 레벨은 상기 시간 간격 동안 주기적으로 조절되는 것을 특징으로 하는 제어기.
  11. 제6항에 있어서,
    상기 출력 비트레이트 조절기 회로는 또한, 상기 비트 예산에 따라, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 비트 수를 추적하고, 그리고 상기 시간 간격의 남은 시간을 추적하며,
    상기 비디오 인코더에 의해 현재 적용되는 압축 레벨을 증가시킴에 있어서, 상기 압축 레벨은, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 상기 비트 수 및 상기 시간 간격의 남은 시간에 적어도 기초하여 결정되는 분량 만큼 증가되는 것을 특징으로 하는 제어기.
  12. 제11항에 있어서,
    상기 분량은 또한, 상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 결정되는 것을 특징으로 하는 제어기.
  13. 제7항에 있어서,
    상기 하나 이상의 날씨 관련 파라미터들은, 강우 레벨, 적설 레벨, 습도 레벨, 온도 및 풍속 중 적어도 하나를 포함하는 것을 특징으로 하는 비디오 카메라.
  14. 제7항에 있어서,
    상기 비디오 스트림의 압축 레벨은 상기 시간 간격 동안 주기적으로 조절되는 것을 특징으로 하는 비디오 카메라.
  15. 제7항에 있어서,
    상기 출력 비트레이트 조절기 회로는 또한, 상기 비트 예산에 따라, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 비트 수를 추적하고, 그리고 상기 시간 간격의 남은 시간을 추적하며,
    상기 비디오 인코더에 의해 현재 적용되는 압축 레벨을 증가시킴에 있어서, 상기 압축 레벨은, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 상기 비트 수 및 상기 시간 간격의 남은 시간에 적어도 기초하여 결정되는 분량 만큼 증가되는 것을 특징으로 하는 비디오 카메라.
  16. 제15항에 있어서,
    상기 분량은 또한, 상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 결정되는 것을 특징으로 하는 비디오 카메라.
  17. 제8항에 있어서,
    상기 하나 이상의 날씨 관련 파라미터들은, 강우 레벨, 적설 레벨, 습도 레벨, 온도 및 풍속 중 적어도 하나를 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  18. 제8항에 있어서,
    상기 비디오 스트림의 압축 레벨은 상기 시간 간격 동안 주기적으로 조절되는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  19. 제8항에 있어서,
    상기 비트 예산에 따라, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 비트 수를 추적하고, 그리고 상기 시간 간격의 남은 시간을 추적하는 동작을 더 포함하며,
    상기 비디오 인코더에 의해 현재 적용되는 압축 레벨을 증가시킴에 있어서, 상기 압축 레벨은, 상기 시간 간격 동안 상기 비디오 인코더로부터 출력되도록 남아있는 상기 비트 수 및 상기 시간 간격의 남은 시간에 적어도 기초하여 결정되는 분량 만큼 증가되는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 분량은 또한, 상기 시간 간격 동안 상기 비디오 인코더의 출력 비트레이트의 평균 시간 변화를 나타내는 이전에 수집된 비트레이트 데이터에 기초하여 결정되는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
KR1020180038257A 2017-04-24 2018-04-02 비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법 KR102413080B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17167724.8A EP3396954A1 (en) 2017-04-24 2017-04-24 Video camera and method for controlling output bitrate of a video encoder
EP17167724.8 2017-04-24

Publications (2)

Publication Number Publication Date
KR20180119105A KR20180119105A (ko) 2018-11-01
KR102413080B1 true KR102413080B1 (ko) 2022-06-24

Family

ID=58644856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180038257A KR102413080B1 (ko) 2017-04-24 2018-04-02 비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법

Country Status (6)

Country Link
US (1) US11212524B2 (ko)
EP (1) EP3396954A1 (ko)
JP (1) JP7128019B2 (ko)
KR (1) KR102413080B1 (ko)
CN (1) CN108737828B (ko)
TW (1) TWI753092B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180302455A1 (en) * 2017-04-18 2018-10-18 Facebook, Inc. Systems and methods for adjusting video transmission bitrates
KR102336666B1 (ko) * 2017-09-15 2021-12-07 삼성전자 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
GB2575463B (en) * 2018-07-10 2022-12-14 Displaylink Uk Ltd Compression of display data
EP3672231B1 (en) * 2018-12-21 2021-05-26 Axis AB Adaptive storage between multiple cameras in a video recording system
EP3742728B1 (en) 2019-05-24 2022-09-21 Axis AB A method and bitrate controller for controlling output bitrate of a video encoder
US11232686B2 (en) * 2019-12-30 2022-01-25 Axis Ab Real-time deviation in video monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518158A (ja) 2003-02-14 2006-08-03 エックスヴイディー コーポレイション 知覚モデルに基づく映像圧縮の方法及び装置
US20150358537A1 (en) 2014-06-09 2015-12-10 Verizon Patent And Licensing Inc. Adaptive camera setting modification based on analytics data
WO2016181150A1 (en) 2015-05-12 2016-11-17 Apical Limited Image processing method

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744686B2 (ja) * 1989-05-19 1995-05-15 三菱電機株式会社 可変伝送速度画像符号化装置
CA2137266C (en) 1993-04-09 2003-07-22 Tsuyoshi Oda Picture encoding method, picture encoding apparatus and picture recording medium
US5686963A (en) 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
BE1010193A3 (nl) 1996-04-17 1998-02-03 Philips Electronics Nv Encodeer-inrichting voor het encoderen van een programma en opteken-inrichting.
WO1999049664A1 (en) 1998-03-20 1999-09-30 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. Moving pictures encoding with constant overall bit rate
WO1999063760A1 (en) 1998-05-30 1999-12-09 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. Sequence adaptive bit allocation for pictures encoding
US20020122482A1 (en) 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
US6995686B2 (en) * 2003-08-01 2006-02-07 Harris Corporation Weather information dissemination system for mobile vehicles
JP4292073B2 (ja) 2003-12-25 2009-07-08 富士通株式会社 映像管理装置
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
JP2006197140A (ja) 2005-01-12 2006-07-27 Sharp Corp 撮像装置及び情報提供システム
JP4817990B2 (ja) 2005-08-17 2011-11-16 キヤノン株式会社 撮像装置及びその制御方法及びプログラム及び記憶媒体
JP2007251719A (ja) 2006-03-17 2007-09-27 Hitachi Kokusai Electric Inc 気象データに連動したカメラシステム
US20090086024A1 (en) * 2007-10-02 2009-04-02 Sam Systems, Inc. System and method for improving video compression efficiency
WO2010057170A1 (en) * 2008-11-17 2010-05-20 Cernium Corporation Analytics-modulated coding of surveillance video
IT1398196B1 (it) 2009-06-25 2013-02-14 St Microelectronics Srl Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini
US8412272B2 (en) * 2009-07-24 2013-04-02 T-Mobile Usa, Inc. Rectifier circuit management system, such as for use in cell site power systems
US9083971B2 (en) 2012-10-22 2015-07-14 Arris Technology, Inc. Algorithms for determining bitrate for a statistical multiplexing system to ensure stream alignment from encoders to the multiplexer
US9411072B1 (en) 2013-03-15 2016-08-09 Exelis, Inc. Real-time adaptive weather surveillance system and method
JP5747105B2 (ja) 2014-05-12 2015-07-08 株式会社 日立産業制御ソリューションズ 画像処理装置
US9712584B2 (en) * 2014-06-02 2017-07-18 Sony Corporation Context-based adaptive streaming algorithm for a user device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518158A (ja) 2003-02-14 2006-08-03 エックスヴイディー コーポレイション 知覚モデルに基づく映像圧縮の方法及び装置
US20150358537A1 (en) 2014-06-09 2015-12-10 Verizon Patent And Licensing Inc. Adaptive camera setting modification based on analytics data
WO2016181150A1 (en) 2015-05-12 2016-11-17 Apical Limited Image processing method

Also Published As

Publication number Publication date
TWI753092B (zh) 2022-01-21
US20180309986A1 (en) 2018-10-25
TW201904287A (zh) 2019-01-16
KR20180119105A (ko) 2018-11-01
EP3396954A1 (en) 2018-10-31
CN108737828B (zh) 2023-06-02
CN108737828A (zh) 2018-11-02
JP2018201195A (ja) 2018-12-20
US11212524B2 (en) 2021-12-28
JP7128019B2 (ja) 2022-08-30

Similar Documents

Publication Publication Date Title
KR102413080B1 (ko) 비디오 인코더의 출력 비트레이트를 제어하기 위한 비디오 카메라, 콘트롤러 및 방법
US11050924B2 (en) Method and system for auto-setting of cameras
WO2006096869A2 (en) Model based rate control for predictive video encoder
KR20070108528A (ko) 부호화 방법, 부호화 장치, 부호화 처리의 프로그램 및부호화 처리의 프로그램을 기록하는 기록 매체
US11178401B2 (en) Method and bitrate controller for controlling output bitrate of a video encoder
KR19990087156A (ko) 디지털 비디오 데이터를 엔코딩 또는 디코딩하기 위한 방법및 장치
CN112714315B (zh) 基于全景视频的分层缓冲方法及系统
JP2018201195A5 (ko)
EP1001633A2 (en) Encoding rate controlling apparatus and information encoding apparatus
KR100598293B1 (ko) 가변비트율 부호화장치
US11321390B2 (en) Video data generation apparatus, video data generation method, and program
US10593047B2 (en) Setting of a motion trigger level
US20040213346A1 (en) Moving image coding apparatus and method
US10136100B2 (en) Method and device in a camera network system
TWI767165B (zh) 在視訊記錄系統中之多個攝影機之間之適應儲存
JP4254784B2 (ja) 動画像符号化装置、方法及びプログラム
US20050244064A1 (en) Processing a media signal in a media system to prevent overload

Legal Events

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