KR20230040872A - 비디오 스트림의 전송을 제어하는 방법들 및 장치들 - Google Patents

비디오 스트림의 전송을 제어하는 방법들 및 장치들 Download PDF

Info

Publication number
KR20230040872A
KR20230040872A KR1020220093114A KR20220093114A KR20230040872A KR 20230040872 A KR20230040872 A KR 20230040872A KR 1020220093114 A KR1020220093114 A KR 1020220093114A KR 20220093114 A KR20220093114 A KR 20220093114A KR 20230040872 A KR20230040872 A KR 20230040872A
Authority
KR
South Korea
Prior art keywords
video
gop
bit rate
bits
frame
Prior art date
Application number
KR1020220093114A
Other languages
English (en)
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 KR20230040872A publication Critical patent/KR20230040872A/ko

Links

Images

Classifications

    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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
    • 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
    • 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
    • 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/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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

비디오 스트림의 전송을 제어하기 위한 컴퓨터 구현 방법이 제공된다. 이 방법은 전송될 비디오 스트림의 픽처 그룹들(group of pictures, GOP)에 대한 비트 수를 추정하는 과정; 상기 비디오 스트림의 전송을 위한 대기 시간 요구 사항을 설정하는 과정; 상기 추정된 비트 수 및 상기 GOP에 걸친 평균 최소 비디오 비트율을 결정하고, 상기 GOP 내의 비디오 프레임들에 대해 상기 대기 시간 요구 사항 및 상기 평균 최소 비디오 비트율에 기반하여 비디오 프레임의 전송을 위한 출력 비트율을 설정하는 과정; 및 상기 출력 비트율을 이용하여 상기 비디오 프레임을 전송하는 과정을 포함하는 컴퓨터 구형 방법.

Description

비디오 스트림의 전송을 제어하는 방법들 및 장치들{METHODS AND DEVICES FOR CONTROLLING A TRANSMISSION OF A VIDEO STREAM}
본 개시는 비디오 스트림의 전송을 제어하기 위한 방법들 및 장치들에 속한다.
비디오 코딩에서, 픽처 그룹 또는 GOP 구조는 인트라-프레임 및 인터-프레임이 배열되는 순서를 특정한다. GOP는 코딩된 비디오 스트림 내의 연속적인 픽처들의 콜렉션이다. 각 코딩된 비디오 스트림은 가시 프레임들이 생성되는 연속적인 GOP들로 구성된다. 압축된 비디오 스트림에서 새로운 GOP를 발견한다는 것은 디코더가 다음 프레임들을 디코딩하기 위해 이전 프레임들이 필요하지 않고 비디오를 빠르게 탐색할 수 있다는 것을 의미한다. GOP는 인트라-프레임으로 시작하고 코딩된 비디오 스트림에서 다음의 인트라-프레임 전에 그룹에서의 마지막 프레임으로 종료한다. 인트라-프레임의 크기는 인터-프레임의 크기보다 일반적으로 상당히 통상적으로 10-50배 더 크다. 따라서 코딩된 비디오 스트림을 네트워크를 통해 전송하는 것은 인트라-프레임이 전송되는 동안 임시 전송 비트율이 상대적으로 큰 반면, 후속하는 인터-프레임들이 전송되는 동안 전송 비트율은 상대적으로 낮게 된다. 이에 따라 비트율 스파이크(bitrate spike)는 인트라-프레임을 전송하는 동안 정상적으로 발생한다. 현대의 네트워크 및 인터넷 접속들은 비디오 스트림을 추가로 압축하지 않고도 이러한 비트율 스파이크들을 통상적으로 처리할 수 있다. 그러나 복수의 비디오 카메라들이 특정 네트워크에 설치되어야 하고, 전체 데이터 전송 비트율이 네트워크의 최대 데이터 전송 비트율을 순간적으로 초과할 수 있고, 복수의 비디오 카메라들에 대해 평균적으로 충분한 대역폭이 존재하더라도 복수의 비트율 스파이크들이 동시에 발생해야 한다. 이것은 데이터 패킷들의 손실, 비디오 품질 저하 등을 초래할 수 있다. 따라서 네트워크에서 이러한 전송 비트율 과부하를 방지할 필요가 있다.
따라서, 본 발명의 목적은 네트워크에서 전송 비트율 과부하를 방지하기 위해 비디오 스트림의 전송을 제어하기 위한 접근 방식을 제공하는 것이다.
제1 양태에 따르면, 비디오 스트림의 전송을 제어하기 위한 컴퓨터 구현 방법이 제공된다. 상기 방법은 전송될 비디오 스트림의 픽처 그룹(group of pictures, GOP)에 대한 비트 수를 추정하는 단계를 포함한다. 상기 방법은 상기 비디오 스트림의 전송을 위한 레이턴시 조건을 설정하는 단계를 더 포함한다. 상기 방법은 추정된 비트 수 및 상기 GOP의 지속기간으로 표현된 기간에 대응하는 시간에 기초하여 상기 GOP 전체의 평균 최소 비디오 비트율을 결정하는 단계를 더 포함한다. 상기 방법은 상기 GOP의 비디오 프레임에 대해: 상기 레이턴시 조건 및 상기 평균 최소 비디오 비트율에 기초하여 비디오 프레임의 전송을 위한 출력 비트율을 설정하는 단계; 및 상기 출력 비트율을 이용하여 상기 비디오 프레임을 전송하는 단계를 더 포함한다.
전통적으로 감시 네트워크는 케이블이 영구적으로 설치되고 특히 예측 가능한 비트율 곡선 등에서 비롯된 전송 용량이 보장되는 폐쇄형 시스템이었다. 이 방법을 사용하면 감시 카메라의 데이터가 다른 트래픽 유형이 전송되는 네트워크를 통해 전송되는 것을 허용할 수 있다. 이는 전송 용량이 보장될 수 없는 링크를 통해 수행되는 비디오 데이터의 장거리 전송이 수행되는 경우에 더 적합할 수 있다.
최대 비트율이 설정되고 고정된, 기존의 데이터 트래픽 셰이퍼에 비해, 본 개시는 데이터가 전송되는 네트워크 상의 감소된 부하를 제공하는 동적 데이터 트래픽 평활기(smoothener)를 제공한다. 또한, 상술한 바와 같이 네트워크 상의 부하를 감소시킬 수 있는 가능성으로 인해 네트워크 내의 다른 장치들 간의 데이터 전송 속도가 용이해질 수 있다.
본 명세서 전체에서 비트율은 디지털 네트워크를 통해 전송되는 초당 비트 수를 나타낸다. 비트율 곡선(curve)은 비트율이 시간의 함수임을 나타낸다. 비트율 곡선에서 비트율 스파이크는 비트율이 평균 비트율보다 상당히 큰 비트율 곡선의 비교적 짧은 시간 간격(time interval), 예를 들어, 인트라-프레임이 전송되는 시간 간격을 의미한다. 언급된 네트워크는 고려된 비디오 프레임의 전송이 명시적으로 달리 언급되지 않은 경우 발생하는 임의의 유형의 데이터 전송 네트워크(어쩌면 무선)이다. 네트워크는 예를 들어 로컬 네트워크, 공용 네트워크 등과 같은 디지털 정보를 통신하기 위한 임의의 유형의 네트워크일 수 있다. 네트워크를 통해 데이터를 "전송하는" 및 "푸시하는"이라는 표현은 전체에서 상호교환적으로 사용될 수 있다.
GOP 전체의 평균 최소 비디오 비트율은 GOP에 해당하는 모든 비디오 데이터가 GOP 기간 동안 전송되도록 각 프레임 기간 동안 전송될 필요가 있는 데이터의 양으로 정의된다. 프레임 기간은 대략 30-40ms, 예를 들어 초당 30 프레임율로 캡처된 30 프레임들의 GOP 길이로 주어질 수 있다.
상기 방법은 GOP의 비트율 곡선의 평활화(smoothening)를 용이하게 할 수 있다. 본 명세서에서 비트율 곡선의 평활화는 GOP의 전송에 따른 평균 비트율인 실질적으로 일정한 전송 비트율을 지칭한다. 이는 비디오 스트림이 전송되는 네트워크의 최대 비트율을 순간적으로 초과하는 것을 방지할 수 있다. 따라서, 예를 들어 라이브 스트림에서 정보를 잃을 위험이 감소될 수 있다.
레이턴시는 본 명세서 전체에서 시간 간격(time interval)을 의미하며, 여기서 시간 간격의 시작은 비디오 프레임의 캡처 또는 생성이 수행되는 타임 스탬프이고, 시간 간격의 끝은 비디오 프레임이 전송된 타임 스탬프이다. 따라서 레이턴시 조건은 허용 가능한 최대 시간 간격을 나타낼 수 있다. 상기 방법은 비디오 품질을 손상시키지 않으면서 짧은 레이턴시 시간을 용이하게 할 수 있으며, 이는 예를 들어 라이브 스트림들에서 유리할 수 있다.
비트 수의 추정은 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계적으로 분석하는 단계를 포함할 수 있다. 이것은 전송될 GOP의 비트 수에 대한 적절한 추정을 용이하게 할 수 있다. 이는 향후 GOP를 전송하는 데 필요한 일시적인 최소 비트율이 지속적으로 모니터링되고 업데이트되기 때문에 데이터 트래픽 평활화의 동적 속성들을 더욱 용이하게 할 수 있다.
비트 수를 추정하는 단계는 전송될 GOP에 대응하는 비디오 데이터를 버퍼링하는 단계 및 버퍼링된 비디오 데이터를 분석하는 단계를 더 포함할 수 있다.
비트 수의 추정은 GOP에 대응하는 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하는 단계를 더 포함할 수 있다. 따라서, 비디오 스트림의 이미 인코딩된 시퀀스가 평활화되어 전송될 수 있다. 짧은 레이턴시가 덜 중요하다는 것은, 캡처되고 저장된 GOP로부터 본질적으로 정확한 평균 비트율이 계산될 수 있기 때문에 유리할 수 있다. 따라서, 이것은 GOP의 비트 수에 대한 정제된 추정을 추가로 제공할 수 있다.
상기 방법은 GOP에서 비디오 프레임들을 전송하는 동안 이미 전송된 GOP의 프레임들의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 GOP의 프레임들 전체의 평균 최소 비디오 비트율을 업데이트하는 단계를 더 포함할 수 있다. 평균 최소 비디오 비트율은 비디오 카메라에 의해 캡처된 장면의 실시간 상황에 따라 업데이트될 수 있다. 따라서 평균 최소 비트율을 동적으로 업데이트하는 것은 GOP에서 비디오 프레임들을 전송하는 동안 수행될 수 있으며, 이는 네트워크의 과부하를 방지하는 것을 더욱 용이하게 할 수 있다. 이것은 GOP 시간 길이(time length), 즉 GOP가 전송되는 시간 간격(time interval)이 비교적 긴 경우 더욱 바람직할 수 있다. 대안적으로 또는 추가적으로, 이것은 현재 GOP가 상대적으로 정적인 캡처된 장면에 종속되는 반면 캡처된 장면에서 현재 GOP의 전송 비트율이 급격하게 변화하는 선행 GOP가 있는 경우 평균 최소 비디오 비트율을 낮출 수 있다.
제2 양태에 따르면, 복수의 비디오 스트림들의 동시 전송을 제어하기 위한 컴퓨터 구현 방법이 제공되며, 상기 방법은 복수의 비디오 스트림들 각각에 대해 상기 언급된 제1 양태의 특징들에 따른 방법을 수행하는 단계를 포함한다.
복수의 비디오 스트림들의 인트라-프레임들이 동시에 전송되어야 하는 경우, 그에 따른 복수의 비트율 스파이크들이 추가되어 네트워크의 과부하가 발생할 수 있다. 이러한 방법은 전송될 데이터 트래픽의 평활화(smoothing)를 용이하게 할 수 있고, 이로써 네트워크의 그러한 과부하를 피할 수 있다. 따라서, 데이터 패킷 손실 또는 비디오 해상도의 감소 등을 피할 수 있다.
제2 양태에 따른 방법은 레이턴시 조건이 복수의 비디오 스트림들 각각에 대해 상이하도록 복수의 비디오 스트림들 각각의 전송을 위한 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함할 수 있다. 이것은 복수의 비디오 카메라들 중에서 서로 다른 유형의 비디오 카메라들이 사용되는 경우 및/또는 동일한 유형의 복수의 비디오 카메라들의 비디오 카메라들에서 상이한 해상도, GOP 길이 등이 사용되는 경우, 유리할 수 있다. 이것은 상기 방법의 동적 특성을 향상시키는 것을 용이하게 할 수 있다.
제2 양태에 따른 방법은 복수의 비디오 스트림들 각각의 비디오 스트림의 유형에 기초하여 복수의 비디오 스트림들 각각의 전송을 위한 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함할 수 있다. 비디오 스트림의 유형은 라이브 스트림(live stream), 비-라이브 스트림(non-live stream) 등이 될 수 있다. 서로 다른 비디오 해상도들은 서로 다른 유형의 비디오 스트림에 적용될 수 있다. 예를 들어, 비-라이브 스트림은 라이브 스트림보다 더 큰 비디오 해상도를 가질 수 있다. 더 높은 비디오 해상도 외에도, 레이턴시 조건에 대한 개별 설정은 데이터 손실을 방지할 수 있는 비-라이브 스트림의 전송 비트율을 본질적으로 일정하게 설정할 수 있다. 따라서, 레이턴시는 라이브 스트림에 비해 비-라이브 스트림에서 훨씬 더 클 수 있다. 또한, 네트워크의 대역폭이 보다 효율적으로 활용될 수 있으며, 이에 따라 네트워크를 통한 동시 전송을 위해 이러한 비-라이브 스트림을 더 많이 스태킹할 수 있다.
제3 양태에 따르면, 처리 능력을 갖춘 장치 상에서 실행될 때 제1 및/또는 제2 양태에 따른 상기 방법을 구현하기 위한 명령어들이 저장된 비일시적 컴퓨터 판독가능 저장 매체가 제공된다.
제1 및 제2 양태와 관련하여 위에서 언급한 특징 및 이점은 적용 가능한 경우, 이 제3 양태에도 적용된다. 따라서 과도한 반복을 피하기 위해 위의 내용을 참조한다.
제4 양태에 따르면, 비디오 스트림의 전송을 제어하기 위한 비디오 스트림 셰이퍼가 제공되고, 비디오 스트림 셰이퍼는 다음을 실행하도록 구성된 회로를 포함한다:
전송될 상기 비디오 스트림의 픽처 그룹(group of pictures, GOP)에 대한 비트 수를 추정하도록 구성된 데이터 크기 추정부(data size estimating function),
상기 비디오 스트림의 전송을 위한 레이턴시 조건을 설정하도록 구성된 레이턴시 설정부(latency setting function),
상기 추정된 비트 수 및 상기 GOP의 지속 기간으로 표현된 기간에 대응하는 시간에 기초하여 상기 GOP 전체의 평균 최소 비디오 비트율을 결정하도록 구성된 비트율 결정부(bitrate determining function),
상기 GOP의 각 비디오 프레임에 대해, 상기 레이턴시 조건 및 상기 평균 최소 비트율에 기초하여 비디오 프레임의 전송을 위한 출력 비트율을 설정하도록 구성된 출력 비트율 설정부(output bitrate setting function), 및
상기 출력 비트율을 이용하여 상기 비디오 프레임을 전송하도록 구성된 전송부(transmitting function)를 포함한다.
제1 양태와 관련하여 위에서 언급한 특징 및 이점은 적용 가능한 경우 이 제2 양태에도 적용된다. 따라서 과도한 반복을 피하기 위해 위의 내용을 참조한다.
상기 데이터 크기 추정부는 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계적으로 분석하도록 추가로 구성될 수 있다.
상기 데이터 크기 추정부는 전송될 GOP에 대응하는 비디오 데이터를 버퍼링하고 상기 버퍼링된 비디오 데이터를 분석하도록 더 구성될 수 있다.
상기 데이터 크기 추정부는 GOP에 대응하는 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하도록 더 구성될 수도 있다.
상기 회로는 이미 전송된 GOP의 프레임들의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 GOP의 프레임들 전체의 평균 최소 비디오 비트율을 업데이트하도록 구성된 비트율 업데이트부를 더 포함할 수 있다.
상기 회로는 복수의 비디오 스트림들 각각에 대해 개별적으로 비디오 스트림 셰이퍼의 전술한 기능들을 실행하도록 구성된 메인부를 실행하도록 추가로 구성될 수 있다.
위에서 언급한 방법의 특징은 적용 가능한 경우 이 제2 양태에도 적용된다. 과도한 반복을 피하기 위해 위의 내용을 참조한다.
일반적으로, 특허청구범위에 사용된 모든 용어들은 본 명세서에서 달리 명시적으로 정의되지 않는 한 기술 분야에서의 통상적인 의미에 따라 해석되어야 한다. "a/an/the [요소, 장치, 구성 요소, 수단, 단계 등]"에 대한 모든 참조는 달리 명시되지 않는 한, 공개적으로 해당 요소, 장치, 구성 요소, 수단, 단계 등의 적어도 하나의 예시를 나타내는 것으로 해석되어야 한다. 여기에 공개된 모든 방법의 단계는 명시적으로 언급되지 않는 한 공개된 정확한 순서로 수행될 필요는 없다.
본 발명의 추가적인 목적들, 특징들 및 이점들 뿐만 아니라 상기의 것들은 첨부 도면을 참조하여 바람직한 실시예의 다음의 예시적이고 비제한적인 상세한 설명을 통해 더 잘 이해될 것이며, 동일한 참조 번호가 사용되는 유사한 구성 요소들을 위해 사용될 것이다.
도 1은 비디오 스트림의 전송을 제어하기 위한 방법의 흐름도를 개략적으로 도시한다.
도 2a 내지 도 2c는 픽처 그룹 GOP의 데이터 트래픽의 시간 경과에 따른 전송을 개략적으로 도시한다.
도 3은 복수의 비디오 스트림들의 전송을 제어하는 방법을 개략적으로 도시한다.
도 4는 비디오 스트림의 전송을 제어하기 위한 비디오 스트림 셰이퍼를 개략적으로 도시한다.
본 발명은 이제 본 발명의 현재 바람직한 실시예가 도시된 첨부 도면을 참조하여 이하에서 보다 충분히 설명될 것이다. 그러나, 본 발명은 많은 상이한 형태로 구현될 수 있고 본 명세서에 설명된 실시예에 제한되는 것으로 해석되어서는 안 된다. 오히려, 이들 실시예는 철저하고 완전성을 위해 제공되며, 본 발명의 범위를 당업자에게 충분히 전달하기 위해 제공된다.
도 1과 관련하여 비디오 스트림의 전송을 제어하기 위한 컴퓨터 구현 방법(100)의 흐름도가 도시되어 있다. 상기 방법(100)은 임의의 적절한 장치에서 구현될 수 있다. 비-제한적인 예에 따르면, 상기 방법(100)은 비디오 카메라, 특히 디지털 모니터링 비디오 카메라에서 구현될 수 있다. 다른 예로는 고정식 또는 휴대용 컴퓨터, 네트워크 게이트웨이 등이 있다. 상기 방법은 네트워크를 통해 전송될 데이터 트래픽에 대한 소위 트래픽 셰이퍼로 볼 수 있다. 상기 방법(100)은 전송될 비디오 스트림의 픽처 그룹 GOP에 대한 비트 수를 추정하는 단계(110)를 포함한다. GOP는 서로 다른 픽처 유형을 포함할 수 있다.
- 인트라 코딩된 픽처, I-프레임은 다른 모든 픽처들과 독립적으로 코딩된 픽처이다. 각 GOP는 디코딩 순서대로 I-프레임으로 시작한다. I-프레임은 대안적으로 키프레임으로 지칭될 수 있다.
- 예측 코딩된 픽처, P-프레임은 P-프레임 또는 I-프레임인 이전에 디코딩된 픽처에 대한 움직임 보상된 차이 정보를 포함하는 픽처이다. P-프레임은 픽셀-레벨 분석, 블록-레벨 분석 또는 벡터 분석에 의해 생성될 수 있다.
- 양방향 코딩된 픽처, B-프레임은 이전에 디코딩된 픽처(I-프레임 또는 P-프레임)와 B-프레임(P-프레임의 I-프레임)에 뒤따르는 픽처에 대한 움직임 보상된 차이 정보를 포함하는 픽처이다.
P-프레임들 및 B-프레임들은 집합적으로 종종 인터-프레임들로 지칭된다.
인트라-프레임의 비트 수는 일반적으로 인트라-프레임을 뒤따르는 인터-프레임의 비트 수보다 상당히 크며, 인터-프레임은 일반적으로 인트라-프레임에 대한 차이만을 포함한다. 그러나 움직임이 많은 장면을 캡처하는 경우에는 그렇지 않을 수 있다. 따라서, 예를 들어, 야간에서의 카메라 감시에서, 특정 시간 간격들 동안 카메라에 의해 캡처되는 장면에서 거의 또는 아무것도 변하지 않을 수 있는 경우, 캡처된 비디오 스트림 시퀀스 내의 인터-프레임의 파일 크기는 실질적으로 무시할 수 있다. 더욱이, 상대적으로 큰 GOP 길이 및/또는 낮은 프레임 레이트가 사용될 수 있는 그러한 상황에서, GOP 길이는 2개의 후속 인트라-프레임들 간의 프레임들 수를 지칭한다. 그러나 카메라 감시 상황에서 카메라에 의해 캡처되는 장면의 급격한 변화를 적절하게 캡처하려면, 캡처되는 장면의 현재(낮을 수 있음) 활동에 관계없이 비교적 짧은 GOP 길이가 바람직할 수 있다. 본 명세서 전체에 걸쳐 GOP에서의 픽쳐들에 대한 논의는 I 프레임들 및 P 프레임들을 배타적으로 고려한다. 당업자는 다른 유형의 프레임, 즉 B-프레임들이 청구항의 범위 내에서 간주될 수 있음을 인식한다. 또한, 본 명세서 전체에 걸쳐 정적 GOP 길이가 고려되지만, 당업자는 동적 GOP 길이가 대역폭을 절약하고 네트워크를 통한 데이터 트래픽을 용이하게 하는 등을 위해 구현될 수 있음을 이해한다. 비디오 프레임(I-프레임 또는 P-프레임)의 크기를 설명/논의할 때, 그러한 비디오 프레임을 저장하기 위해 필요한 해당 디스크 공간에 대한 참조가 이루어진다는 것을 이해해야 한다. 따라서, I-프레임이 P-프레임보다 크다는 것은 P-프레임에 비해 I-프레임을 저장하기 위해 더 큰 디스크 공간을 필요로 하는 I-프레임과 등가인 것으로 이해된다. 용어 "크기" 및 "비트 크기"는 때때로 같은 의미로 사용될 수 있다.
전송될 비디오 스트림의 GOP에 대한 비트 수의 추정은 비디오 스트림에서 이미 전송된 하나 이상의 GOP를 분석함으로써 수행될 수 있다. 이미 전송된 복수의 GOP들을 분석함으로써, 이미 전송된 GOP들 중 각 GOP의 비트 수를 기반으로 한 통계적 추세를 이용하여 전송할 GOP의 비트 수를 비교적 정확하게 추정할 수 있다. 따라서, 상기 방법은 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계적으로 분석하는 단계를 포함할 수 있다. 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수의 통계적 분석은 레이턴시를 도입할 리스크가 임계 확률 미만이 되도록 비트율이 선택될 수 있다는 점에서 확률론적 접근법을 활용할 수 있다. 임계 확률은 바람직하게는 비교적 낮을 수 있다. 예를 들어, 카메라가 상대적으로 정적인 장면의 비디오 시퀀스를 캡처해야 하는 경우, 비디오 시퀀스에서 특정 GOP의 P-프레임은 일반적으로 특정 GOP의 I-프레임보다 훨씬 작다. 그 후 통계적 분석은 후속 GOP들에서 사용될 적절한 비트율을 추정할 수 있다. 통계적 분석은 카메라가 캡처하는 장면의 추세를 결정하는 단계를 더 포함할 수 있다. 예를 들어, 추세는 장면에서 움직임의 변화율이 증가하는 것을 설명할 수 있으며, 이에 따라 더 큰 P-프레임들이 생성될 수 있다. 이것은 네트워크를 통해 전송되는 해당 데이터 트래픽을 평활화하기 위한 방법을 더욱 최적화할 수 있다.
상기 방법(100)은 비디오 스트림의 전송을 위한 레이턴시 조건을 설정(120)하는 단계를 더 포함한다. 위와 같이, 레이턴시 조건은 비디오 프레임 데이터의 캡쳐/생성과 그것의 전송 간의 시간차에 대한 조건이다. 레이턴시 조건은 초과되지 않는 최대 레이턴시일 수 있다. 레이턴시 조건은 가끔 레이턴시로 표시될 수 있다. 따라서, 전송될 GOP 전체에 걸쳐 추정된 비디오 비트율에 의해 야기되는 에러 및 잠재적으로 유도된 바람직하지 않은 레이턴시가 축적되고 시간에 따라 증가하는 것이 방지될 수 있다. 레이턴시 조건은 사용자가 설정할 수 있다. 레이턴시 조건은 사용자 경험, 네트워크 용량, 모니터링될 장면 유형 등에 따라 달라질 수 있다. 예를 들어, 게이트를 모니터링하고 실시간 인간 통신에 사용되는 카메라는 데이터의 거의 실시간 전송, 예를 들어 30ms 레이턴시를 요구할 수 있다. 반대로, 주차장을 모니터링하는 카메라의 경우 레이턴시가 0.5초와 같이 상당히 높을 수 있다. 트래픽 셰이퍼가 하나 이상의 GOP의 모든 데이터를 전송해야 하는 타겟 시간은 프레임 레이트 및 GOP 길이에 기초하여 더 계산될 수 있다. 따라서 타겟 시간은 다음 I-프레임의 전송이 실시간으로 이루어지는 타임 스탬프로 볼 수 있다.
상기 방법(100)은 추정된 비트 수 및 GOP의 지속기간으로 표현된 기간(time period)에 대응하는 시간에 기초하여 GOP 전체의 평균 최소 비트율을 결정하는 단계(130)를 더 포함한다. GOP 전체의 평균 최소 비트율은 비디오 해상도에 따라 다를 수 있다. 즉, 예를 들어 라이브 스트림에서 짧은 레이턴시가 필요한 경우, 라이브 스트림에서 GOP 전체의 평균 최소 비트율은 라이브 스트림 카메라가 캡처하는 장면이 특히 상대적으로 시각적으로 정적인 경우 상대적으로 낮을 수 있다. GOP 전체의 평균 최소 비디오 비트율은 GOP에 대응하는 모든 비디오 데이터가 GOP 기간 동안 전송될 수 있도록 얼마나 많은 데이터가 각 프레임 기간 동안 전송되어야 하는지에 기초하여 정의될 수 있다.
상기 방법(100)은 GOP의 비디오 프레임에 대해, 레이턴시 조건 및 평균 최소 비디오 비트율에 기초하여 비디오 프레임의 전송을 위한 출력 비트율을 설정하는 단계(140), 및 출력 비트율을 사용하여 비디오 프레임을 전송하는 단계(150)를 더 포함한다. 여기서, GOP에서의 각 비디오 프레임의 전송은 이에 따라 개별적으로 고려된다. 출력 비트율은 추정된 비트 수 및 전송될 프레임의 푸시가 완료되어야 하는 타겟 시간에 기초하여 업데이트될 수 있다.
도 2a 내지 도 2c는 상기 방법(100)을 그림으로 요약한다. 여기서 GOP(200)는 하나의 I-프레임(I1) 및 8개의 P-프레임(P1-P8)을 포함하는 예시이며, 이는 당업자를 제한하거나 혼동시키는 것으로 해석되어서는 안 된다. 즉, 청구항의 범위 내에서 임의의 적절한 수의 P-프레임이 가능할 수 있다. 어떠한 레이턴시가 없는 경우, 비디오 프레임의 전송은 적절한 시간 간격 동안 일반적으로 수행될 수 있다. 이러한 시간 간격은 바람직하게는 도 2a 내지 도 2c에 정성적으로 도시된 바와 같이, 2개의 후속 캡처된 프레임들 간의 경과 시간에 대응하는 시간 간격에 따른 프레임 레이트보다 짧거나 같을 수 있다. 시간 간격이 시간 간격에 따른 프레임 율보다 상당히 짧다면, 해당 비트율 곡선은 각 P 프레임의 크기가 중요하지 않을 수 있음에도 불구하고, 전송된 각 P-프레임에 대해 좁은 비트율 스파이크를 가졌을 것이다. 다시 말하면, I-프레임은 후속 P-프레임들 각각보다 훨씬 더 큰 것으로 보인다. 따라서 이 예는 캡처된 장면에서 비교적 완만한 변화를 제안한다. 일반적인 프레임 율은 초당 30프레임(fps)일 수 있다. GOP 길이는 예를 들어 30 또는 60 프레임일 수 있다. 따라서 프레임 율(30fps) 및 GOP 길이(60프레임)의 경우, GOP의 지속 시간은 2초이다. 당업자에 의해 용이하게 이해되는 바와 같이, 다른 적절한 프레임 율 및 GOP 길이가 청구범위 내에서 가능하다.
도 2a에는 GOP(200)의 데이터 트래픽의 시간에 따른 일반적인 전송이 개략적으로 도시되어 있으며, 여기서 전송 비트율은 I-프레임의 전송 동안 비교적 좁은 스파이크를 나타낸다. 이 토이(toy) 예에서, GOP(200)는 하나의 I-프레임(I1)과 8개의 P-프레임들(P1-P8)을 포함하는 P-프레임(210)의 그룹을 갖는 것으로 가정된다. GOP(200)의 각 프레임의 겉보기 "영역"은 GOP에서 프레임들의 상대적인 비트 크기를 정성적으로 나타낸다. 도 2a(i)에 도시된 프레임들은 데이터 패킷들로 볼 수 있다. 따라서 각 프레임(I1;P1-P8)은 네트워크를 통해 푸시될 데이터 패킷으로 볼 수 있다. 각 개별 데이터 패킷이 해당 비디오 프레임이 캡처되는 즉시 전송되기 때문에, 이러한 방식으로 데이터 패킷을 푸시하는 것은 최소 레이턴시를 갖는 것과 같다. 일반적으로, 그리고 이 예에서도 볼 수 있듯이, I 프레임(I1)은 후속 P 프레임들(P1-P8)에 비해 훨씬 더 큰 비트 크기를 가지며, 여기서 P 프레임들(P1-P8)은 모두 실질적으로 유사한 비트 크기를 갖는 것으로 가정된다. 실제 P 프레임 그룹은 일반적으로 다를 수 있다.
도 2b에는 GOP(200)의 시간 경과에 따른 평활화가 개략적으로 도시되어 있다. GOP(200)는 GOP(200)의 전송 시 상기 방법(100)에 따라 평활화된다. 여기에서, I-프레임의 비트들이 네트워크를 통해 푸시되는 동안, 시간 간격을 나타내는 제1 레이턴시 조건(LR1)이 설정된다. 도 2a에 도시된 I-프레임(I1)은 여기에서 2개의 데이터 패킷들로 분할되고 2개의 프레임들, 예를 들어, 도 2a의 I-프레임(I1) 및 제1 P-프레임(P1)을 푸시하는 것에 대응하는 시간 간격 동안 네트워크를 통해 푸시된다. 따라서 I-프레임(I1)은 두 개의 다른 프레임들로 분할되는 것으로 해석되지 않고, 오히려 두 개의 서로 다른 데이터 패킷들로 분할된다. GOP(200)가 네트워크를 통해 전송되고 수신기 측에서 재생되면, 해당 비디오 시퀀스는 정상 속도로 재생되고 레이턴시 조건과 유사한 시간만큼 지연된다. 평활화는 GOP(200)가 후속 GOP가 시작되기 전에 전송되도록 GOP(200)의 나머지 P-프레임들(P1-P8)이 더 큰 패킷들에 묶여 있어야 함을 요구한다. 이 예에서, 타겟 시간(TG1) 내에 푸시될 데이터 패킷(I1a, I1b, P1-P6)을 포함하고, 제7 P-프레임(P7) 및 제8 P-프레임(P8)을 포함하는 더 큰 P-프레임 패킷(PL1)을 포함하는 GOP에 대해, 마지막 데이터 패킷은 제7 P 프레임(P7) 및 제8 P 프레임(P8)을 포함하는 데이터 패킷일 수 있다. 임의의 쌍의 P-프레임들은 유사한 데이터 패킷, 예를 들어 제1 P-프레임(P1) 및 제2 P-프레임(P2) 등을 구성하는 데 동등하게 잘 사용될 수 있다. 이것은 네트워크를 통해 I-프레임 패킷들(I1a 및 I1b)를 푸시할 때 비트율에 해당하는 제1 비트율 피크(252)를 갖는 해당 비트율 곡선을 초래할 수 있다. 유사하게, 제2 비트율 피크(254)는 네트워크를 통해 더 큰 P-프레임 패킷(PL1)을 푸시할 때 비트율 곡선(250)에서 발생할 수 있다. 일반적으로 데이터 패킷은 약 1.5kB의 크기를 가질 수 있다. 비교적 큰 I-프레임은 수천 개의 데이터 패킷들로 분할될 수 있다. 프레임들은 이러한 데이터 패킷에 의해 적어도 세 가지 방식으로 전송될 수 있다: (i) 하나의 데이터 패킷에 있는 하나의 프레임, (ii) 하나의 데이터 패킷에 있는 복수의 프레임들, 또는 (iii) 복수의 데이터 패킷들에 있는 하나의 프레임. 원칙적으로, 특정 수의 프레임들을 다른 수의 데이터 패킷들로 분할하는 것이 더 가능할 수 있다. 예를 들어, 두 개의 데이터 패킷들은 총 3개의 프레임들을 포함할 수 있으며, 여기서 각 데이터 패킷은 1.5프레임에 해당하는 데이터를 포함한다.
도 2c에는 GOP(200)의 전송 시, 상기 방법(100)에 따라 평활화되는 데이터 트래픽의 시간상 GOP(200)에 대응하는 평활화 데이터의 다른 예가 개략적으로 도시되어 있다. I-프레임이 네트워크를 통해 푸시되는 시간 간격을 나타내는 제2 레이턴시 조건(LR2)가 설정된다. 도 2a에 도시된 I-프레임(I1)은 여기서 실질적으로 동일한 비트 크기의 5개의 데이터 패킷들(I1i-I1v)로 분할된다. P-프레임들(P1-P8)은 여기서 각각 2개의 P-프레임들 예를 들면, 제1 P1-프레임(P1) 및 제2 P2-프레임(P2)을 포함하는 제1 P-프레임, 제3 P3-프레임(P3) 및 제4 P4-프레임(P4)을 포함하는 제2 P-프레임 등을 포함하는 데이터 패킷에 묶여 있다. 이 예는 I-프레임 패킷들(I1i-I1v) 및 후속 P-프레임 패킷들을 푸시할 때 실질적으로 일정한 비트율을 갖는 해당 비트율 곡선(260)을 초래할 수 있다. 레이턴시 조건의 더 큰 시간 간격 값은 GOP(200)의 비트에 대응하는 데이터 패킷을 푸시할 때 더 일정한 비트율 곡선을 초래할 수 있고, 그 반대의 경우도 마찬가지임을 이해해야 한다. 이에 의해 비트율 곡선은 GOP의 평균 최소 비트율로부터 거의 또는 무시할 수 있는 편차를 가질 수 있다. 따라서, 레이턴시 조건은 레이턴시 조건의 시간 간격의 길이와 해당 비트율 곡선의 부드러움 사이의 절충점으로 볼 수 있다. 도 2c에 도시된 예는 네트워크의 부하와 관련하여 비교적 이상적일 수 있음을 이해해야 한다. 전송될 비디오 스트림의 GOP에 대한 비트 수 추정은 이미 전송된 GOP에 의존할 수 있으므로, 두 GOP들 간의 평균 비트율이 벗어나는 변동이 발생할 수 있다.
도 2a 내지 도 2c에서, 프레임 레이트는 GOP(200)에서 프레임에 대응하는 데이터 패킷들이 전송되는 레이트와 유사하게 나타날 수 있다. 그러나, 데이터 패킷들은 각각의 데이터 패킷이 복수의 프레임들을 포함하도록, 더 낮은 속도로 동등하게 잘 전송될 수 있으며, 각각의 데이터 패킷은 데이터 패킷에 포함된 프레임들의 캡처에 대응하는 기간 동안 전송된다.
비트 수의 추정(110)은 전송될 GOP에 대응하는 비디오 데이터를 버퍼링하고 버퍼링된 비디오 데이터를 분석하는 단계를 포함할 수 있다. 따라서, GOP 내의 모든 프레임은 버퍼링될 수 있으며, 그 후 모든 프레임들의 총 비트 크기는 GOP가 타겟 시간 동안 전송되는 데 필요한 평균 비트율 뿐만 아니라 계산될 수 있다. 그 다음에는 데이터 패킷이 GOP의 평균 비트율과 일치하는 비트율로 푸시될 수 있다. 이러한 상황에서, 상대적으로 큰 레이턴시는 비트율이 더 평활화될 수 있거나, 또는 네트워크를 통해 GOP에 대응하는 데이터 패킷들을 푸시하는 동안 실질적으로 일정할 수 있는 경우 조차도 존재할 수 있다.
대안적으로, 비트 수의 추정(110)은 GOP에 대응하는 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하는 단계를 포함할 수 있다. 따라서, 이미 인코딩된 비디오 데이터의 평활화가 가능할 수 있다. 이는 특정 경과된 시간 간격에 해당하는 데이터 패킷의 푸쉬가 가능하도록 비디오 카메라에 의해 캡처된 장면의 변경, 예를 들어, 이벤트가 트리거되어야 하는 사전-버퍼링(pre-buffering)의 경우에 바람직할 수 있다. 이러한 소정의 경과 시간 간격은, 예를 들면, 전술한 15초, 전술한 분(minute) 등일 수 있다.
상기 방법(100)은 GOP에서의 비디오 프레임을 전송하는 동안에, 이미 전송된 GOP의 프레임의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 GOP의 프레임에 전체의 평균 최소 비디오 비트율을 업데이트하는 단계를 더 포함할 수도 있다. 따라서, 평균 최소 비디오 비트율은 비디오 카메라에 의해 캡쳐된 장면의 실시간 상황에 따라 조정될 수 있다. 이 실시예는 선행 GOP가 캡처된 장면에서 급격한 변화를 받는 반면 현재 GOP는 상대적으로 정적인 캡처된 장면의 영향을 받는 경우 바람직할 수 있다.
도 3과 관련하여, 복수의 비디오 스트림들의 동시 전송을 제어하기 위한 컴퓨터 구현 방법(300)이 도시되어 있다. 상기 방법(300)은 복수의 비디오 스트림들 각각에 대해 위에서 설명된 상기 방법(100)을 수행하는 것을 개별적으로 포함한다. 상기 방법(300)은 그에 의해 비디오 스트림의 합에 대한 비트율이 네트워크를 통해 데이터의 전송을 위한 최대 허용 가능한 비트율 미만이 되도록 복수의 카메라들로부터의 비디오 스트림을 평활화하는 단계를 포함할 수 있다. 복수의 비디오 스트림들에 대해 비트율 스파이크들이 발생하도록, 각 비디오 스트림의 해당 레이턴시 조건이 비교적 짧은 경우, 제2 방법은 복수의 비디오 스트림들의 합에 대한 비트율이 최대 허용 가능한 비트율 미만이 되도록 하기 위해 필요하다면 하나 이상의 비디오 스트림을 지연시킬 수 있다.
상기 방법(300)은 레이턴시 조건이 복수의 비디오 스트림들 각각에 대해 상이하도록 복수의 비디오 스트림들 각각의 전송을 위한 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함할 수도 있다.
상기 방법(300)은 복수의 비디오 스트림들 각각의 비디오 스트림의 유형에 기초하여 복수의 비디오 스트림들 각각의 전송을 위한 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함할 수 있다. 비디오 스트림의 유형은 나중에 검토하기 위해 저장되는 라이브 스트림을 포함할 수 있다. 라이브 스트림의 재생은 캡처와 재생 사이에 몇 초 이하의 지연이 있을 수 있다. 비디오 스트림의 유형이 라이브 스트림인 경우, 레이턴시 조건은 상대적으로 짧은 기간일 수 있다. 그러면 네트워크를 통해 전송되는 라이브 스트림들의 수에 대한 제약 조건이 설정될 수 있다. 상기 방법(300)은 덜 동적 장면이 가능한 일시적으로 더 긴 레이턴시 조건으로 할당되도록 각각의 라이브 스트림과 연관된 각각의 장면에서의 활동을 평가할 수 있다. 대안적으로, 복수의 라이브 스트림들의 I-프레임들이 실질적으로 동시에 전송되어야 하는 경우, 하나 이상의 라이브 스트림은 서로에 대해 어느 정도 지연될 수 있다.
전술한 방법을 구현하기 위한 명령어들은 컴퓨터로 읽을 수 있는 비일시적 저장 매체에 저장되고 처리 능력을 가진 장치에서 실행된다.
도 4와 관련하여, 비디오 스트림의 전송을 제어하기 위한 비디오 스트림 셰이퍼(400)가 매우 개략적으로 도시되어 있다. 비디오 스트림 셰이퍼(400)는 임의의 적절한 디바이스에서 구현될 수 있다. 비-제한적인 예에 따르면, 비디오 스트림 셰이퍼(400)는 비디오 카메라, 특히 디지털 모니터링 비디오 카메라에서 구현될 수 있다. 다른 예로는 고정식 또는 휴대용 컴퓨터, 네트워크 게이트웨이 등이 있다. 방법(들)(100, 300)과 관련하여 위에서 언급한 특징은, 적용 가능한 경우, 비디오 스트림 셰이퍼(400)에도 적용된다. 따라서 과도한 반복을 피하기 위해 위의 내용을 참조한다.
비디오 스트림 셰이퍼(400)는 회로(420)를 포함한다.
회로(420)는 비디오 스트림 셰이퍼(400)의 기능들 및 동작들의 전반적인 제어를 수행하도록 구성된다. 회로(420)는 중앙 처리 장치(central processing unit, CPU), 마이크로컨트롤러 또는 마이크로프로세서와 같은 프로세서를 포함할 수 있다. 프로세서는 비디오 스트림 셰이퍼(400)의 기능들 및 동작들을 수행하기 위해 회로(420)에 저장된 프로그램 코드를 실행하도록 구성된다.
아래에서 더 설명되는 실행 가능한 기능들은 메모리에 저장될 수 있다. 메모리는 버퍼, 플래시 메모리, 하드 드라이브, 이동식 미디어, 휘발성 메모리, 비휘발성 메모리, 랜덤 액세스 메모리, RAM, 또는 다른 적절한 장치 중 하나 이상일 수 있다. 전형적인 배열에서, 메모리는 장기 데이터 저장을 위한 비휘발성 메모리 및 회로(420)에 대한 시스템 메모리로서 기능하는 휘발성 메모리를 포함할 수 있다. 메모리는 데이터 버스를 통해 회로(420)와 데이터를 교환할 수 있다. 메모리와 회로(420) 사이에 수반되는 제어 라인 및 어드레스 버스가 존재할 수 있다.
회로(420)의 기능들 및 동작들은 비일시적 컴퓨터 판독 가능 매체, 예를 들어 메모리에 저장된 실행 가능한 로직 루틴들, 예를 들어 컴퓨터 코드 부분, 소프트웨어 프로그램 등의 형태로 구현될 수 있다. 비디오 스트림 셰이퍼(400)에 의해 실행되고, 예를 들어 프로세서를 사용하여 회로(420)에 의해 실행된다. 비디오 스트림 셰이퍼(400)의 기능들 및 동작들은 독립형 소프트웨어 애플리케이션이거나 비디오 스트림 셰이퍼(400)와 관련된 추가 작업을 수행하는 소프트웨어 애플리케이션의 일부를 형성할 수 있다. 설명된 기능들 및 동작들은 해당 장치는 수행하도록 구성되는 방법을 고려할 수 있다. 또한, 설명된 기능들 및 동작들이 소프트웨어로 구현될 수 있지만, 이러한 기능은 전용 하드웨어 또는 펌웨어, 또는 하드웨어, 펌웨어 및/또는 소프트웨어의 일부 조합을 통해 수행될 수도 있다.
회로(420)는 전송될 비디오 스트림의 픽처 그룹(GOP)에 대한 비트 수를 추정하도록 구성된 데이터 크기 추정부(421)를 실행하도록 구성된다. 회로(420)는 비디오 스트림의 전송을 위한 레이턴시 조건을 설정하도록 구성된 레이턴시 설정부(422)를 더 포함한다. 회로(420)는 추정된 비트 수 및 GOP의 지속기간에 의해 표현되는 기간에 대응하는 시간에 기초하여 GOP 전체의 평균 최소 비디오 비트율을 결정하도록 구성된 비트율 결정부(423)를 더 포함한다. 회로(420)는 GOP의 비디오 프레임에 대해 레이턴시 조건 및 평균 최소 비트율에 기초하여 비디오 프레임의 전송을 위한 출력 비트율을 설정하도록 구성된 출력 비트율 설정부를 더 포함한다. 회로(420)는 출력 비트율을 사용하여 비디오 프레임을 전송하도록 구성된 전송부(425)를 더 포함한다.
데이터 크기 추정부(421)는 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계적으로 분석하도록 추가로 구성될 수 있다.
데이터 크기 추정부(421)는 전송할 GOP에 대응하는 비디오 데이터를 버퍼링하고 버퍼링된 비디오 데이터를 분석하도록 더 구성될 수 있다.
데이터 크기 추정부(421) GOP에 대응하는 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하도록 더 구성될 수 있다.
회로(420)는 GOP의 이미 전송된 프레임의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 GOP의 프레임 전체의 평균 최소 비디오 비트율을 업데이트하도록 구성된 비트율 업데이트부를 더 포함할 수 있다.
회로(420)는 복수의 비디오 스트림 각각에 대해 개별적으로 상기에 따라 기능들(421-425)을 실행하도록 구성된 메인부(426)을 실행하도록 추가로 구성될 수 있다.
당업자는 본 발명이 전술한 바람직한 실시예에 결코 제한되지 않는다는 것을 인식한다. 반대로, 첨부된 청구범위 내에서 많은 수정 및 변형이 가능하다.
예를 들어, 특정 비디오 스트림 셰이퍼(400)는 두 개의 독립적인 비디오 스트림들의 전송을 제어할 수 있다. 이러한 상황에서 두 비디오 스트림들 중 하나의 레이턴시 조건은 전송된 데이터의 평활화를 최적화하기 위해 나머지 비디오 스트림의 속성을 고려할 수 있다. 당업자는 이것이 두 개 이상의 독립 비디오 스트림들에도 적용될 수 있음을 인식한다.
추가로, 개시된 실시예에 대한 변형은 도면, 개시, 및 첨부된 청구범위의 연구로부터 청구된 발명을 실시함에 있어 당업자에 의해 이해되고 영향을 받을 수 있다.

Claims (14)

  1. 비디오 스트림의 전송을 제어하기 위한 컴퓨터 구현 방법에 있어서,
    전송될 상기 비디오 스트림의 픽처 그룹(group of pictures, GOP)에 대한 비트 수를 추정-상기 GOP는 인트라-프레임 및 하나 이상의 인터-프레임을 포함함-하는 단계;
    상기 비디오 스트림의 전송을 위한 레이턴시 조건을 설정-상기 레이턴시 조건은 비디오 프레임 데이터의 캡처/생성 및 이에 대한 전송 간의 시간차에 대한 조건임-하는 단계;
    상기 추정된 비트 수 및 상기 GOP의 지속기간으로 표현된 기간(time period)에 대응하는 시간(time)에 기초하여 상기 GOP 전체의 평균 최소 비디오 비트율을 결정하는 단계;
    상기 GOP의 각 비디오 프레임에 대해:
    상기 비디오 프레임이 확산될 데이터 패킷의 수를 결정하거나 상기 GOP의 또 다른 비디오 프레임으로서 상기 비디오 프레임이 동일한 데이터 패킷으로 전송되도록 결정하여, 상기 레이턴시 조건 및 상기 평균 최소 비디오 비트율에 기초하여 상기 비디오 프레임의 전송을 위한 출력 비트율을 설정하는 단계, 및
    상기 출력 비트율을 이용하여 상기 비디오 프레임을 전송하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 비트 수를 추정하는 단계는 상기 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계 분석하는 단계를 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 비트 수를 추정하는 단계는, 상기 전송될 GOP에 대응하는 비디오 데이터를 버퍼링하고, 상기 버퍼링된 비디오 데이터를 분석하는 단계를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 비트 수를 추정하는 단계는 상기 GOP에 대응하는 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 GOP에서 상기 비디오 프레임을 전송하는 동안, 이미 전송된 상기 GOP의 프레임들의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 상기 GOP의 프레임들 전체의 상기 평균 최소 비디오 비트율을 업데이트하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 복수의 비디오 스트림들의 동시 전송을 제어하기 위한 컴퓨터 구현 방법에 있어서, 상기 방법은 상기 복수의 비디오 스트림들 각각에 대해 개별적으로 제1항에 따른 방법을 수행하는 단계를 포함하는 컴퓨터 구현 방법.
  7. 제6항에 있어서,
    상기 복수의 비디오 스트림들 각각에 대해 상기 레이턴시 조건이 상이하도록 상기 복수의 비디오 스트림들 각각의 전송을 위한 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함하는 컴퓨터 구현 방법.
  8. 제6항에 있어서,
    상기 복수의 비디오 스트림들 각각의 비디오 스트림의 유형에 기초하여 상기 복수의 비디오 스트림들 각각의 전송을 위한 상기 레이턴시 조건을 개별적으로 설정하는 단계를 더 포함하는 컴퓨터 구현 방법.
  9. 처리 능력을 갖춘 장치에서 실행될 때 제1항에 따른 상기 방법을 구현하기 위한 명령어들이 저장된 비일시적 컴퓨터 판독 가능 저장 매체.
  10. 비디오 스트림의 전송을 제어하기 위한 비디오 스트림 셰이퍼-상기 비디오 스트림 셰이퍼는 다음을 실행하도록 구성된 회로를 포함함-하는 비디오 스트림 셰이퍼에 있어서,
    전송될 상기 비디오 스트림의 픽처 그룹(group of pictures, GOP)에 대한 비트 수를 추정하도록 구성된 데이터 크기 추정부-상기 GOP는 인트라-프레임 및 하나 이상의 인터-프레임을 포함함-;
    상기 비디오 스트림의 전송을 위한 레이턴시 조건을 설정하도록 구성된 레이턴시 설정부-상기 레이턴시 조건은 비디오 프레임 데이터의 캡처/생성 및 이에 대한 전송 간의 시간차에 대한 조건임-;
    상기 추정된 비트 수 및 상기 GOP의 지속기간으로 표현된 기간에 대응하는 시간에 기초하여 상기 GOP 전체의 평균 최소 비디오 비트율을 결정하도록 구성된 비트율 결정부;
    상기 GOP의 각 비디오 프레임에 대해, 상기 비디오 프레임이 확산될 데이터 패킷의 수를 결정하거나 상기 GOP의 또 다른 비디오 프레임으로서 상기 비디오 프레임이 동일한 데이터 패킷으로 전송되도록 결정하여, 상기 레이턴시 조건 및 상기 평균 최소 비트율에 기초하여 상기 비디오 프레임의 전송을 위한 출력 비트율을 설정하도록 구성된 출력 비트율 설정부, 및
    상기 출력 비트율을 이용하여 상기 비디오 프레임을 전송하도록 구성된 전송부를 포함하는 비디오 스트림 셰이퍼.
  11. 제10항에 있어서,
    상기 데이터 크기 추정부는, 상기 비디오 스트림에서 하나 이상의 선행 GOP에 대한 비트 수를 통계 분석하도록 추가 구성된 비디오 스트림 셰이퍼.
  12. 제10항에 있어서,
    상기 데이터 크기 추정부는, 전송될 상기 GOP에 해당하는 비디오 데이터를 버퍼링하고 상기 버퍼링된 비디오 데이터를 분석하는 비디오 스트림 셰이퍼.
  13. 제10항에 있어서,
    상기 데이터 크기 추정부는, 상기 GOP에 대응하는 상기 비디오 스트림의 이미 인코딩된 시퀀스에 대한 비트 수를 결정하도록 더 구성된 비디오 스트림 셰이퍼.
  14. 제10항에 있어서,
    상기 회로는 이미 전송된 상기 GOP의 프레임의 실제 비트 수에 기초하여 아직 전송되지 않은 나머지 상기 GOP의 프레임들 전체의 상기 평균 최소 비디오 비트율을 업데이트하도록 구성된 비트율 업데이트부를 더 포함하는 비디오 스트림 셰이퍼.
KR1020220093114A 2021-09-16 2022-07-27 비디오 스트림의 전송을 제어하는 방법들 및 장치들 KR20230040872A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21197010.8 2021-09-16
EP21197010.8A EP4152747B1 (en) 2021-09-16 2021-09-16 Methods and devices for controlling a transmission of a video stream

Publications (1)

Publication Number Publication Date
KR20230040872A true KR20230040872A (ko) 2023-03-23

Family

ID=77801515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220093114A KR20230040872A (ko) 2021-09-16 2022-07-27 비디오 스트림의 전송을 제어하는 방법들 및 장치들

Country Status (5)

Country Link
US (1) US20230082211A1 (ko)
EP (1) EP4152747B1 (ko)
JP (1) JP2023043851A (ko)
KR (1) KR20230040872A (ko)
CN (1) CN115834884A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698262B (zh) * 2020-06-24 2021-07-16 北京达佳互联信息技术有限公司 带宽确定方法、装置、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046729B2 (en) * 2002-08-27 2006-05-16 Ess Technology, Inc. Bit rate control for motion compensated video compression system
US20130142249A1 (en) * 2011-12-06 2013-06-06 Advanced Micro Devices, Inc. Method and apparatus for performing video and image compression using a video encoder
EP3829170A1 (en) * 2019-11-29 2021-06-02 Axis AB Encoding and transmitting image frames of a video stream

Also Published As

Publication number Publication date
EP4152747B1 (en) 2023-08-16
JP2023043851A (ja) 2023-03-29
US20230082211A1 (en) 2023-03-16
EP4152747A1 (en) 2023-03-22
CN115834884A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN109660879B (zh) 直播丢帧方法、系统、计算机设备和存储介质
US9253063B2 (en) Bi-directional video compression for real-time video streams during transport in a packet switched network
EP3253064A1 (en) Frame loss method for video frame and video sending apparatus
CN109600610B (zh) 一种数据编码方法、终端及计算机可读存储介质
CN107770538B (zh) 一种检测场景切换帧的方法、装置和系统
US10666939B2 (en) Method and apparatus for processing video bitrate, storage medium, and electronic device
WO2004023821A1 (en) A method and an apparatus for controlling the rate of a video sequence; a video encoding device
CN106789385B (zh) 一种视频流的发送方法、发送装置和网络摄像机
TW201404170A (zh) 用於可調適視訊串流之技術
CN107493482B (zh) 一种视频回放方法及装置
JP2020518174A (ja) ビデオフレーム符号化方法、端末、および記憶媒体
CN108924574B (zh) 录播系统中的丢包处理方法、装置、设备及存储介质
CN113068001B (zh) 基于级联摄像机的数据处理方法、装置、设备和介质
KR20230040872A (ko) 비디오 스트림의 전송을 제어하는 방법들 및 장치들
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
KR100742106B1 (ko) 네트워크로의 데이터 출력 레이트 제어 시스템
CN114501066A (zh) 视频流处理方法、系统、计算机设备和存储介质
US7274739B2 (en) Methods and apparatus for improving video quality in statistical multiplexing
KR102118678B1 (ko) 부호화된 비디오 스트림 전송 장치 및 방법
CN111953613B (zh) 数据传输控制方法及装置
CN111953612B (zh) 数据传输控制方法及装置
JP3946804B2 (ja) 画像符号化制御方法
CN115037701B (zh) 视频处理方法、装置、服务器及介质
CN115834975B (zh) 一种视频传输方法、装置、设备及介质
TWI683572B (zh) 基於畫面動態資訊的視訊位元率傳輸控制方法