KR20140027393A - 낮은 레이턴시 레이트 제어 시스템 및 방법 - Google Patents

낮은 레이턴시 레이트 제어 시스템 및 방법 Download PDF

Info

Publication number
KR20140027393A
KR20140027393A KR1020137032245A KR20137032245A KR20140027393A KR 20140027393 A KR20140027393 A KR 20140027393A KR 1020137032245 A KR1020137032245 A KR 1020137032245A KR 20137032245 A KR20137032245 A KR 20137032245A KR 20140027393 A KR20140027393 A KR 20140027393A
Authority
KR
South Korea
Prior art keywords
rate control
control block
buffer
frame
rate
Prior art date
Application number
KR1020137032245A
Other languages
English (en)
Other versions
KR101809306B1 (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 KR20140027393A publication Critical patent/KR20140027393A/ko
Application granted granted Critical
Publication of KR101809306B1 publication Critical patent/KR101809306B1/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/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
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/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
    • 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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 전송 시스템 내의 인코더는 서브-프레임 레벨로 비트 할당을 제어한다. 일 프레임은, 레이트 제어 블록들로 알려진, 더 작은 블록들로 분할된다. 레이트 제어 블록들은 비트 할당을 위한 기본 단위로 사용된다. 이러한 비트 할당은 시스템에 의해 요구되는 목표 비트 레이트를 달성할 뿐만 아니라 레이턴시 제약들도 충족한다. 인코더는, 1 이상의 이미지 프레임의 슬라이스들을 사용하여 레이트 제어 블록들을 생성하기 위해 슬라이스 분할 능력들을 이용한다. 이러한 피쳐는, 디코더가 독립적으로 레이트 제어 블록들을 디코딩하게 하며, 각각의 레이트 제어 블록에 대한 인코딩된 데이터 사이즈가 할당되는 것을 보장한다. 인코더는 또한 버퍼에 대한 오버플로우 조건을 감지하고, 이미지 프레임이 인터-프레임인지 인트라-프레임인지에 기초하여 오버플로우 조건을 회피하도록 동작을 수행한다.

Description

낮은 레이턴시 레이트 제어 시스템 및 방법{LOW LATENCY RATE CONTROL SYSTEM AND METHOD}
본 발명은 네트워크를 통해 비디오 신호를 전송하는 것에 관한 것이다. 더 자세하게는, 본 발명은 낮은 레이턴시 제약들을 갖는 네트워크를 통해 복잡한 비디오 신호를 보내고 받는 것에 관한 것이다.
알려진 비디오 전송/수신 시스템들에서, 디지털 미디어 서버로부터의 데이터 컨텐츠 (data content) 는, 디지털 미디어 렌더러 (digital media renderer) 에서의 재생을 위해 디코딩되도록, 인코딩되어 보내진다. 그러나, 시간이 지날수록, 비디오 컨텐츠는 상당히 복잡해질 수 있다. 복잡성이 변화하면서, 컨텐츠의 양질의 전송에 필요한 비트 레이트 (bit rate) 도 변화한다. 주어진 양질의 압축 레벨을 위해, 비디오 데이터의 복잡성은, 데이터를 인코딩하기 위해 더 높은 비트 레이트를 야기한다. 그러나, 네트워크의 용량은 시간이 지나더라도 일정하게 유지될 수도 있고, 비디오 데이터의 복잡성 또는 증가된 비트 레이트에 기인하여 변화하지는 않는다.
비디오 인코더에서의 이러한 비트 레이트 변동을 수용하기 위해, 레이트 제어는 항상 네트워크에 일정한 비트 레이트를 만들도록 사용된다. 일정한 비트 레이트는, 씬 (scene) 이 변화하거나 비디오가 다수의 모션 또는 정교한 피쳐들을 캡쳐할 때와 같이, 비디오의 복잡성이 극적으로 변화하는 경우라 할지라도, 데이터의 전송에 대해 유효하다. 레이트 제어는 비디오 재생 품질을 가능한한 안정적으로 유지하도록 노력한다. 레이트 제어는 품질 안정성과 일정한 비트 레이트 요구 사이에서의 절충을 시도한다.
알려진 시스템들은 레이트 제어의 한계들에 기인하여 그리고 네트워크의 용량에 의해 적용되는 제약들을 충족하는 것에 기인하여 전송에 앞서 데이터를 버퍼링 (buffering) 한다. 즉각적인 비디오 인코더 비트 레이트가 네트워크의 용량보다 더 높고 더 낮을 수 있으나, 네트워크로 보내지는 버퍼링된 데이터의 레이트는 항상 동일하거나 네트워크 용량보다 낮도록, 인코딩된 데이터가 버퍼링된다. 비트 레이트가 상당히 네트워크 용량을 넘어 증가할 수도 있으므로, 알려진 시스템들은 이러한 가능성있는 큰 증가를 수용하기 위해 더 큰 버퍼들을 장착한다. 그러나, 더 큰 버퍼들은 데이터의 전송으로 레이턴시를 도입하여, 지연이 발생한다.
예를 들어, 알려진 시스템은 네트워크에 걸쳐 데이터를 전송하기 전 인코딩 후에 복수의 프레임들을 버퍼링할 수도 있다. 버퍼 사이즈가 클수록 시스템 내부에서 레이턴시가 높아진다. 일부 어플리케이션에서는, 이러한 레이턴시가 수용될 수 없다. 실시간 비디오 재생 및 상호작용 어플리케이션들은 높은 레이턴시에 처하지 않을 수도 있고, 따라서 복잡한 비디오 전송들을 처리하기 위해 단지 버퍼 사이즈를 증가시킬 수 없다. 사실상, 일부 어플리케이션들은 네트워크에서 어떠한 뚜렷한 레이턴시라도 허용할 수 없다. 따라서, 버퍼 사이즈는 레이턴시를 줄이도록 최소화될 수도 있으나, 그러면 시스템은 복잡한 데이터에 기인하여 증가된 비트 레이트 변동을 처리할 수 없을 수도 있다.
본 발명의 실시형태들은 네트워크의 단일 프레임의 지속기간 (duration) 보다 낮은 전송 레이턴시를 요구하는 시나리오 (scenario) 들을 위해 비디오 인코더 출력 비트 스트림 (video encoder output bit stream) 을 제어한다. 본 발명의 실시형태들은 복잡한 비디오 데이터 인코딩에 기인한 비트 레이트 증가를 처리하기 위해 큰 버퍼들을 장착하지 않지만, 대신에 인코딩이 낮은 레이턴시와 함께 발생하게 하는 프로세스를 수행한다. 일 프레임 또는 그 미만은 개시된 실시형태들에 따라 버퍼링될 수도 있다. 제안된 레이트 제어는 또한, 낮은 레이턴시를 요구하지 않는 시스템을 또한 커버하도록, 더 높은 레이턴시로 작동할 수도 있다.
개시된 실시형태들은 특정 최대 비트 레이트를 달성하기 위해 일 프레임 내에 필요한 비트들을 할당한다. 네트워크 용량 아래 머무름으로써, 비디오 전송/수신 시스템은 실시간 비디오 재생에 요구되는 낮은 레이턴시를 얻는다.
개시된 실시형태들은 서브-프레임 레벨 (sub-frame level) 에서 비트 할당을 제어한다. 일 프레임은, 레이트 제어 블록 (rate control block) 들로 알려진 더 작은 블록들로 분할된다. 레이트 제어 블록들은 비트 할당을 위한 기본 단위 (basic unit) 로 사용된다. 이러한 비트 할당은 시스템에 의해 요구되는 목표 비트 레이트를 달성할 뿐만 아니라 레이턴시 제약들을 만족시킨다. 개시된 실시형태들은 비디오 인코더의 슬라이스 분할 능력 (slice partitioning capability) 들을 이용할 수도 있다. 이러한 피쳐는, 디코더가 독립적으로 레이트 제어 블록들을 디코딩하게 한다. 각각의 레이트 제어 블록에 대해 인코딩된 데이터 사이즈가 레이트 제어에 의해 할당된 비트 레이트보다 낮은 경우라 할지라도, 각각의 레이트 제어 블록에 대한 엔드-대-엔드 (end-to-end) 레이턴시는 특정된 최대 레이턴시만큼 클 것이다.
낮은 네트워크 레이턴시를 얻기 위해, 개시된 실시형태들은, 만족스러운 결과들로 이끌어야만 하는, 추정되고 예상되는 값들을 사용한다. 그럼에도 불구하고, 레이트 제어 블록에 대해 할당된 비트가 달성되지 않는 경우로 이끌 수도 있는 잘못된 추정을 만들 개연성이 존재한다. 다르게 말하면, 비트 레이트는 목표 비트 레이트보다 높을 수도 있고 버퍼 용량을 초과할 수도 있으며, 그에 따라 레이턴시 요건을 위험에 처하게 한다. 버퍼 오버플로우 (buffer overflow) 의 이러한 문제를 회피하기 위해, 개시된 실시형태들은 레이트 제어 블록의 "코딩하지 않은" 부분들에 기초하여 버퍼 보호 메커니즘을 장착할 수도 있다. 다른 보호 메커니즘들도 사용될 수도 있다.
바람직한 실시형태들에 따르면, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하는 방법이 개시된다. 상기 방법은, 상기 이미지 프레임의 레이트 제어 블록을 선택하는 단계를 포함한다. 상기 레이트 제어 블록은 복수의 매크로블록 (macroblock) 들을 포함한다. 또한 상기 방법은 상기 비트 레이트 (bit rate) 에 따라 상기 레이트 제어 블록의 상기 복수의 매크로블록들을 인코딩하는 단계를 포함한다.
또한 바람직한 실시형태들에 따르면, 비디오 전송 인코딩 시스템이 개시된다. 상기 비디오 전송 인코딩 시스템은, 이미지 프레임으로부터의 레이트 제어 블록이 정수 개의 슬라이스들을 가질 것이라는 점을 보장하는 슬라이스 분할기 (slice partitioner) 를 포함한다. 이러한 피쳐는, 상기 레이트 제어 블록들이 독립적으로 디코딩되게 한다. 상기 레이트 제어 블록은 복수의 매크로블록들을 포함한다. 상기 비디오 전송 인코딩 시스템은 또한 상기 레이트 제어 블록에 대한 상기 복수의 매크로블록들을 인코딩하는 인코더를 포함한다. 상기 비디오 전송 인코딩 시스템은 또한 각각의 레이트 제어 블록에 대해 인코딩된 데이터를 저장하는 버퍼를 포함한다. 상기 비디오 전송 시스템에 대한 비트 레이트 및 상기 버퍼의 사이즈는 상기 레이트 제어 블록에 대한 일 세트의 파라미터들에 따라 설정된다.
또한 바람직한 실시형태들에 따르면, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법이 개시된다. 상기 방법은 프레임 및 레이트 제어 블록 초기 설정 양자 모두의 부분으로 사용되도록 통계를 수집하는 단계를 포함한다. 상기 방법은 또한 상기 레이트 제어의 인코딩된 데이터를 수신하도록 버퍼에 대한 사이즈를 설정하는 단계를 포함한다. 상기 방법은 또한 상기 버퍼의 상기 사이즈에 대응하는 비트 레이트에 따라서 상기 레이트 제어 블록 내에서 복수의 매크로블록들을 인코딩하는 단계를 포함한다.
첨부되는 도면들은 본 발명의 이해를 더 깊이 제공하고, 본 명세서의 일부분을 구성하기 위해 포함된다. 이하에서 리스트된 도면들은 본 발명의 실시형태들을 도시하고, 본 명세서와 함께, 청구항들 및 그들의 등가물들에 의해 개시된 바와 같은, 본 발명의 원리를 설명하기 위해 제공된다.
도 1은 개시된 실시형태들에 따른 비디오 신호 데이터의 전송 및 수신을 위한 시스템을 도시한다.
도 2a는 개시된 실시형태들에 따른 시스템 내에서의 인코딩, 전송 및 디코딩 시간을 보여주는 그래프를 도시한다.
도 2b는 개시된 실시형태들에 따라 시간에 대한 시스템 내의 비트 레이트 변동을 보여주는 그래프를 도시한다.
도 3은 개시된 실시형태들에 따른 레이트 제어 블록들을 갖는 비디오 프레임을 도시한다.
도 4는 개시된 실시형태들에 따른 레이트 제어 블록들을 사용하여 비디오 전송 인코더 내의 비트 레이트를 제어하기 위한 순서도를 도시한다.
도 5는 개시된 실시형태들에 따른 매크로블록 레벨 레이트 제어를 수행하는 것에 대한 순서도를 도시한다.
본 발명의 형태들이 첨부된 명세서에 개시된다. 본 발명의 대안적인 실시형태들 및 그들의 등가물들이, 본 발명의 정신 또는 범위로부터 떨어지지 않으면서 고안된다. 이하에 개시된 엘리먼트들과 같은 것은 도면에서 참조번호와 같은 것에 의해 나타내어지는 것에 유의해야만 한다.
도 1은 개시된 실시형태들에 따른, 비디오 신호 데이터의 전송 및 수신을 위한 시스템 (100) 을 도시한다. 시스템 (100) 은, 정보를 공유하기 위해 네트워크를 통해 접속하는 어떠한 시스템 또는 장치의 집합일 수 있다. 비디오 신호 내의 이미지 프레임들은 수신되어, 네트워크를 통해 보내진다. 이미지 프레임 내의 데이터는 다양한 인코딩 기술들을 사용하여 전송을 위해 인코딩된다.
시스템 (100) 은, 예를 들어 비디오 컨텐츠가 게이밍 콘솔 (gaming console) 에서 생성되고, 그 후 평판 스크린 텔레비젼과 같은 고화질 디지털 미디어 렌더러로 전송되는 게이밍 시스템 (gaming system) 일 수도 있다. 대안적으로 시스템 (100) 은 고화질 (HD) 비디오를 사용한 보안 모니터링 시스템일 수도 있다. 이러한 실행은, 모니터링이 실시간의 양질 비디오로 발생하게 하는 HD 카메라들을 주문하도록 요청하는 보안 카메라 제조자들의 수가 최근 증가함에 따라, 감시 산업에서 표준이 되어 가고 있다.
디지털 미디어 서버 (102) 는 전송될 비디오 컨텐츠를 생성한다. 디지털 미디어 서버 (102) 는 비디오 데이터를 캡쳐하는 어떠한 장치, 콘솔, 카메라 등일 수 있다. 예를 들어, 디지털 미디어 서버 (102) 는 디스크 또는 여타의 매체에 저장되는 비디오 게임들을 실행하는 게이밍 콘솔이다. 게임을 실행하는 것으로부터 생성되는 콘텐츠는, 실시간으로 보여지고 상호작용하도록 사용자에게 표시된다. 대안적으로, 디지털 미디어 서버 (102) 는 데이터를 캡쳐하는 컴퓨터, 비디오 레코더, 디지털 카메라, 스캐너 등이다.
비압축된 데이터 신호 (104) 는 디지털 미디어 서버 (102) 로부터 인코더 (106) 로 출력된다. 인코더 (106) 는 시스템 (100) 내의 전송을 위해 신호 (104) 를 인코딩하거나 압축할 수도 있다. 인코더 (106) 는 신호 (104) 를 인코딩하기 위해 손실있는 압축 기술 (lossy compression techniques) 을 사용할 수도 있다. 이러한 기술의 강점은 신호 (104) 내의 데이터의 복잡성에 근거하여 변화하지 않을 수도 있다.
예를 들어, 상대방에 대해 검을 휘두르는 게임에서의 캐릭터의 비디오 데이터는 단순히 서있는 캐릭터의 비디오보다 더 복잡하거나 매우 번잡하고, 유사한 품질을 유지하기 위해서 다른 인코딩 프로세스들을 필요로 할 수도 있다. 인코더 (106) 는 이하에서 더 자세하게 개시될 슬라이스 분할기 (134) 를 포함한다.
인코더 (106) 는 버퍼 (110) 로 압축된 신호 (108) 를 출력한다. 버퍼 (110) 는, 시스템 (100) 을 통해 전송될 수 있을 때까지 신호 (108) 로부터 데이터를 저장한다. 만약 네트워크 비트 레이트가 신호 (108) 의 전송을 허용하지 않는다면, 그 후 버퍼 (110) 는, 트랜시버 (transceiver, 14) 에 의해 전송될 수 있는 그러한 시간까지 데이터를 유지한다.
버퍼 (110) 는 버퍼 사이즈 값을 가질 수도 있다. 그 목표들 (레이턴시 및 비트 레이트) 를 달성하도록 레이트 제어에 의해 사용되는 버퍼 사이즈 값은 인정된 최대 전송 레이턴시와 직접적으로 연관될 것이다. 버퍼 (110) 는 신호 (112) 를 트랜시버 (114) 로 출력한다.
트랜시버 (114) 는 네트워크 (118) 를 통해 신호 (116) 를 전송한다. 상술한 게이밍 예시를 사용하면, 네트워크 (118) 는 라우터가 신호 (116) 를 디지털 미디어 서버 (102) 로부터 수신하고 그것을 표시를 위해 디지털 미디어 렌더러 (132) 로 전달하는 장소를 위한 무선 네트워크일 수도 있다. 대안적으로, 네트워크 (118) 는 실시간 비디오를 보여주는 원격 카메라로부터 신호 (116) 를 수신하는 컴퓨터들의 네트워크일 수도 있다.
트랜시버 (120) 는 신호 (116) 를 수신하여 버퍼 (124) 로 신호 (122) 를 출력한다. 버퍼 (124) 는 버퍼 (110) 와 유사한 버퍼 사이즈 값을 가질 수도 있다. 신호 (126) 는 버퍼 (110) 로부터 디코더 (128) 로 스트림 (stream) 된다. 디코더 (128) 는 비압축된 신호 (130) 를 생성하기 위해 신호 (126) 를 디코딩하거나 압축해제한다. 압축 해제된 신호 (130) 는 바람직하게 코딩 프로세스에 기인한 약간의 변동이 있는 압축 해제된 신호 (104) 의 고품질 복사본이다.
디지털 미디어 렌더러 (132) 는 압축 해제된 신호 (130) 를 수신하여 사용자에게 비디오 데이터 컨텐츠를 표시한다. 디지털 미디어 렌더러 (132) 는 1,280 x 720 픽셀 (720p) 또는 1,920 x 1,080 픽셀 (1080i/1080p) 의 디스플레이 해상도를 가지는 고화질 텔레비젼일 수 있다. 따라서, 시스템 (100) 내에서 인코딩되거나 디코딩되는 데이터의 양은, 디지털 미디어 서버 (102) 및 디지털 미디어 렌더러 (132) 에 의해, 그것 상에 놓여지는 요구들에 기인하여 복잡할 수도 있다.
시스템 (100) 은 다양한 제한들 및 파라미터들의 적용을 받는다. 시스템 (100) 은 일정한 비트 레이트로 네트워크 (118) 를 통해 전송할 수 있다. 이러한 비트 레이트는 동일한 오버 타임 (over time) 을 유지하지만, 그러나 특정 환경하에서 변화할 수도 있다. 지연 또는 적분 시간 (integration time) 이 버퍼 (110) 가 가득 차도록 발생할 수도 있고, 이것은 네트워크 (118) 를 통해 데이터가 보내짐에 따라 시스템 (100) 내에서 레이턴시를 야기한다.
도 2a는 개시된 실시형태들에 따른 시스템 내에서의 인코딩, 전송 및 디코딩 시간을 보여주는 그래프 (200) 를 도시한다. 그래프 (200) 는 인코딩 시간 (204), 전송 시간 (206) 및 디코딩 시간 (208) 을 보여주는 타임 라인 (202) 을 포함한다. 인코딩 시간 (204) 은 코딩 프로세스를 시작하기 전에 요구되는 다수의 비디오 라인의 시간과 최소 디코딩가능 유닛이 인코더 (106) 에 의해 인코딩 또는 압축되기 위한 시간을 나타낼 수도 있다.
개시된 실시형태들에 대한 최소 디코딩가능 유닛은 일 슬라이스일 수 있다. 이 시간 이후에, 인코더 (106) 는 이러한 첫 (제1) 슬라이스를 송신하는 것을 시작할 수 있다. 전통적인 스킴 (scheme) 들은 인코딩을 시작하기 전에 1 프레임을 대기하고, 전체 프레임이 인코딩된 후에 비트 스트림의 전송을 시작한다. 이는 인코딩 시간의 2 프레임들을 포함한다. 시스템 (100) 은 인코딩을 시작하기 전의 대기를 최소화하고 최소 디코딩가능 유닛을 더 작게 만들어서, 인코딩 시간을 최소화한다.
인코딩 시간 (204) 은 바람직하게는 최소 디코딩가능 유닛에 대한 타임 랩스 (time lapse) 보다 작거나 같다. 예를 들어, 최소 디코딩가능 유닛이 일 프레임이고, 프레임 (210) 에 대한 시간 길이가 1/60 초라면, 인코딩 시간 (204) 은 시스템 (100) 내의 그것보다 작다.
전송 시간 (206) 은 네트워크 (118) 를 통해 데이터를 전송하기 위한 시간을 나타낸다. 전송 시간 (206) 은 또한 (레이트 제어를 위해 구성되는 비트 레이트보다 작거나 같은) 기대되는 용량에서 네트워크를 통해 버퍼 사이즈 개수의 비트를 보내는데 요구되는 시구간보다 작거나 같다. 따라서, 데이터는 임의의 주목할만한 길이의 시간 동안 버퍼링되지 않을 수도 있거나, 또는 시스템 (100) 은 전송에 대한 이러한 요건들에 맞지 않을 수도 있다. 디코딩 시간 (208) 은, 비디오 데이터의 최소 디코딩가능 유닛이 비디오 신호를 복원하기 위해 압축해제되거나 디코딩되는 시간을 나타낸다. 디코딩 시간 (208) 은 또한 최소 디코딩가능 유닛에 대한 시구간보다 작거나 같다. 최소 디코딩가능 유닛이 일 프레임인 경우, 이 시간은 1 프레임보다 작을 것이다.
따라서, 시스템 (100) 내의 레이턴시는, 인코딩 시간 (204), 전송 시간 (206) 및 디코딩 시간 (208) 이 프레임들 (210) 에 대한 시구간 보다 작게 유지되는 것으로서 감소된다. 알려진 시스템들은 반대의 접근법을 병합할 수도 있고, 여기서 이러한 시간들은 일 프레임의 지속 기간을 초과한다. 이러한 지연들은 프로세스에서의 각각의 단계에서 늘어나고, 이는 높은 레이턴시를 가져온다. 보다 큰 버퍼들은 또한 이러한 시간들을 증가시킨다. 도 2a는 레이턴시가 실-시간 비디오 렌더링을 위해 요구되는 한계 내에서 시스템 (100) 을 통해 프레임들을 잘 이동시키는 레벨로 어떻게 감소되는지를 도시한다.
도 2b는 개시된 실시형태들에 따라 시간에 대한 시스템 내의 비트 레이트 변동을 보여주는 그래프 (220) 를 도시한다. 그래프 (220) 는 타임 라인 (222), 및 비디오 데이터 비트 레이트 라인 (224) 을 도시한다. 비디오 데이터 비트 레이트 라인 (224) 은 타임 라인 (222) 이 연장함에 따라 변화한다. 비디오 데이터 비트 레이트 라인 (224) 은 비디오 인코딩의 복잡도가 변화함에 따라 변화한다. 예를 들어, 비디오 데이터 비트 레이트 라인 (224) 은 복잡도가 증가함에 따라 상승한다.
도 2b는 또한 비디오 데이터를 저장하는 버퍼 (226) 를 포함한다. 버퍼 (226) 는 도 1의 버퍼들 (110 및 124) 에 대응할 수도 있다. 도시된 바와 같이, 비디오 데이터 비트 레이트 라인 (224) 에 대한 데이터 모두는 버퍼 (226) 내에 맞춰진다. 비디오 데이터 비트 레이트 라인 (224) 은 라인 (224) 이 얼마나 변화하든지 상관없이 버퍼 (226) 의 한계를 초과하지 않는다. 버퍼 (226) 는 또한 버퍼 사이즈를 가질 수도 있다. 버퍼 사이즈는 개시된 실시형태들에 따른 일 프레임 보다 작은 기대되는 최소 전송 레이턴시에 의존할 수도 있다. 이 사이즈는 레이턴시가 최소화됨을 보장한다.
값들이 시스템 (100) 내에서 도 2a 및 2b에 도시된 관계에 맞춰지도록 설정될 수도 있다. 네트워크 (118) 에 대한 상수 비트 레이트는 비디오 컨텐츠를 전송 및 수신하기 위한 특정 최대 비트 레이트 값을 설정할 수도 있다. 즉, 비디오 컨텐츠의 일 프레임을 인코딩하기 위해 필요한 비트들에 대한 값이 결정된다. 프레임 비트 값 및 기대되는 레이턴시는 버퍼 (226) 의 버퍼 사이즈를 설정할 수도 있다. 예를 들어, 비트 레이트가 1000 비트이고 일 프레임에 대한 기대되는 사이즈 및 기대되는 전송 레이턴시가 일 프레임의 절반인 경우, 버퍼 사이즈는 500 비트일 것이다. 버퍼 (226) (또는 버퍼들 (110 및 124)) 에 저장된 데이터의 양은 이 값을 초과하지 않을 수도 있다. 따라서, 시스템 (100) 내에서의 임의의 지연 또는 레이턴시는, 도 2a에 도시된 바와 같이, 프레임의 시간 (들어오는 (incoming) 비디오의 프레임 레이트가 초당 60 프레임인 경우 60분의 1초) 과 대략 같거나 작다.
도 3은 개시된 실시형태들에 따른 레이트 제어 블록들 (310) 을 갖는 비디오 프레임 (300) 을 도시한다. 바람직하게는, 매 (every) 비디오 프레임 (300) 은 동일한 수의 비트를 갖는다. 화상 (picture) 이 매우 분주하고 (busy), 모든 동작을 캡쳐하기 위해 복잡한 인코딩을 요구하는 경우, 비디오 프레임 (300) 에 대한 비트 레이트가 증가할 수도 있다.
비디오 프레임 (300) 은 매크로블록 (302) 들을 형성하도록 그룹화된 픽셀들로 구성될 수도 있다. 각각의 매크로블록 (302) 들은 2 이상의 픽셀들을 포함한다. 바람직하게는, 매크로블록 (302) 은 16 픽셀 대 (by) 16 픽셀이다. 매크로블록 (302) 들은 인코더 (106) 에 의해 인코딩되고, 압축 스킴 또는 다른 알고리즘을 사용하여 디코더 (128) 에 보내진다. 보내진 정보는 비디오 프레임 (300) 내의 매크로블록의 주소, 휘도 정보, 크로미넌스 (chrominance) 또는 컬러 정보, 압축 레벨 값 및 모션 벡터 정보를 포함한다.
따라서, 비디오 프레임 (300) 은 복수의 매크로블록 (302) 들로 분할될 수도 있다. 종래의 비디오 전송 및 수신 시스템에서, 비디오 프레임 (300) 의 매크로블록 (302) 들 모두는 인코딩되고, 버퍼링되고, 그 후에 네트워크 (118) 를 통해 보내진다. 개시된 실시형태들은 비디오 프레임 (300) 을 레이트 제어 블록 (310) 들로 분할하고, 비디오 데이터를 인코딩, 전송 및 디코딩하기 위한 기초로서 이러한 레이트 제어 블록들을 사용한다.
인코더 (106) 의 슬라이스 분할기 (134) 는 매 레이트 제어 블록은 정수 개의 슬라이스들을 갖는 것을 보장한다. 레이트 제어 블록 (310) 들은 또한 서브-프레임들로 알려질 수도 있다. 레이트 제어 블록 (310) 들은 시스템 (100) 에서 비트 할당을 위한 기초 단위로 사용될 수도 있고, 복수의 매크로블록 (302) 들을 포함할 수도 있다. 바람직하게는, 각각의 레이트 제어 블록 (310) 의 매크로블록 (302) 들의 개수는 5와 15 사이이다. 레이트 제어 블록 (310) 은 프레임 (300) 의 하나 이상의 슬라이스를 포함할 수도 있다.
대안적으로, 매크로블록들의 개수는 기대되거나 요구되는 최대 전송 레이턴시에 의존할 것이다. 레이트 제어 블록 (310) 의 사이즈가 더 커질수록, 달성가능한 최소 레이턴시가 더 높아진다. 또한, 반대로, 요구되는 레이턴시가 높아질수록, 요구되는 레이트 제어 블록이 더 작아진다.
매크로블록 (302) 들의 개수에 기초하여, 레이트 제어 블록 (310) 들은, 레이트 제어 블록 (310) 의 지속 기간에 대응하는 목표 비트 레이트를 가질 수도 있다. 즉, 레이트 제어 블록들 (310) 에 대한 목표 비트 레이트가 인코딩되는 정보가 훨씬 적음에 따라 비디오 프레임 (300) 에 대한 목표 비트 레이트 보다 작아야 한다. 이 피쳐는 비트 레이트 변동을 단일 비디오 프레임 (300) 에 대한 버퍼 사이즈 아래로 잘 유지한다.
버퍼 (110) 는 레이트 제어 블록 (310) 과 적어도 동일한 버퍼 사이즈를 포함한다. 인코더 (106)는 각각의 레이트 제어 블록 (310) 내의 마지막 매크로블록 (302) 이 인코딩된 후에 각각의 레이트 제어 블록 (310) 을 전달할 수도 있다. 디코더 (128) 는 각각의 레이트 제어 블록 (310) 의 디코딩 프로세스를 독립적으로 시작할 수도 있다. 따라서, 정보는 증가된 레이트에서 그리고 감소된 레이턴시로 시스템 (100) 을 통해 전송된다. 비트 레이트는 비디오 프레임 (300) 의 "분주한 (busy)" 부분을 수용하는 레이트 제어 블록 (310) 들 사이를 변동할 수도 있지만, 레이트 제어를 위해 구성된 비트 레이트보다 절대 높지 않을 수도 있다.
도 4는 개시된 실시형태들에 따른 레이트 제어 블록 (310) 들을 사용하여 비디오 전송 인코더 (106) 내의 비트 레이트를 제어하기 위한 순서도 (400) 를 도시한다. 단계 402는 비디오 프레임 (300) 에 대한 프레임 레벨 초기 설정들을 결정함에 의해 실행된다. 이러한 설정들은 프레임 당 비트의 개수, 프레임 당 매크로블록 (302) 들의 개수, 레이트 제어 블록 (310) 상의 매크로블록 (302) 들의 개수, 목표된 비트 레이트 등과 같은 것을 포함할 수도 있다. 단계 404는 비디오 프레임 (300) 내에서 레이트 제어 블록 (310) 들을 생성함으로써 실행된다. 상술한 바와 같이, 비디오 프레임 (300) 은 매크로블록 (302) 들을 포함하는 수개의 레이트 제어 블록 (310) 들을 포함할 수도 있다.
단계 406은 인코딩 및 전송을 위한 레이트 제어 블록 (310) 을 선택함에 의해 실행된다. 예를 들어, 비디오 프레임 (300) 을 참조하면, 상부 레이트 제어 블록 (310) 이 처음에 선택되고, 하부 레이트 제어 블록 (310) 이 인코딩될 때까지 상부 레이트 제어 블록 (310) 이 선택될 수도 있다. 단계 408은 레이트 제어 블록 초기 설정을 결정함에 의해 실행된다. 목표 비트 레이트가 선택되고, 레이트 제어 블록 (310) 의 지속 기간에 대응하는 버퍼가 설정된다.
인코더 (106) 가 선택된 레이트 제어 블록 (310) 의 사이즈에 기초하여 비트의 개수를 할당할 수도 있다. 설정에 기초하여, 단계 410은 레이트 제어 블록 (310) 들의 사이즈에 기초하여 목표 비트 레이트를 사용하여 매크로블록 레벨 레이트 제어를 수행함에 의해 실행된다. 단계 410는 도 5에 의해 보다 상세히 개시된다.
단계 412는 레이트 제어 블록 (310) 내의 매크로블록 (302) 들 중 하나를 인코딩함에 의해 실행된다. 단계 414는 인코딩된 매크로블록 (302) 이 레이트 제어 블록 (310) 내의 마지막 매크로블록인지를 결정함에 의해 실행된다. 만약 아니오 라면, 그 후 순서도 (400) 는 나머지 매크로블록 (302) 들을 인코딩하는 단계 410으로 돌아간다. 만약 예 라면, 그 후 단계 416이 가상의 버퍼 관리를 수행함에 의해 실행된다. 버퍼 (110) 내의 인코딩된 데이터가 네트워크 (118) 를 통한 전송을 위해 트랜시버 (114) 로 전달된다. 버퍼 (110) 가 레이트 제어 블록 (310) 의 사이즈에 대응하기 때문에, 상부 레이트 제어 블록 (310) 으로부터의 데이터가 이어지는 레이트 제어 블록 (310) 들을 인코딩하는 동안 지연되지 않는다.
단계 418은 비디오 프레임 (300) 내의 마지막 매크로블록 (302) 이 인코딩되는지를 결정함에 의해 실행된다. 만약 아니오 라면, 그 후 순서도 (400) 는 다음 레이트 제어 블록 (310) 을 선택하기 위해 단계 406으로 돌아간다. 만약 예 라면, 그 후 비디오 프레임 (300) 의 모두가 인코딩되고, 새로운 비디오 프레임이 수신되어야 한다. 따라서, 순서도 (400) 는 단계 402로 돌아간다.
도 5는 개시된 실시형태들에 따른 매크로블록 레벨 레이트 제어를 수행하는 것에 대한 순서도 (500) 를 도시한다. 순서도 (500) 는 도 4의 단계 410을 더 개시한다. 낮은 레이턴시를 달성하기 위해, 개시된 실시형태들은 추정되고 예측된, 매크로블록들 (302) 에 대한 인코딩 값들을 사용할 수도 있다. 이러한 프로세스들은 인코딩 시간을 감소시키기 위해 인코딩 동안 매크로블록 (310) 에 대한 값들을 "예측한다". 그러나, 그러한 예측들은 잘못된 추정을 생산할 위험성을 가진다. 이러한 에러는 특히 이전의 프레임으로부터의 더 많은 이동 및 변화를 갖는 분주한 비디오 프레임에서 발생할 수도 있다.
예를 들어, 비디오 프레임 (300) 이 일부 구름이 있는 파란 하늘을 묘사한다면, 인코더 (106) 는 레이트 제어 블록 (310) 내의 매크로블록 (302) 에 대한 값들이 파란 배경에 대한 것과 동일한 것으로 예측할 수도 있다. 에러는 인코더가, 매크로블록 (302) 이 매크로블록에서 나는 비행기에 대한 시작 데이터를 갖는 경우 매크로블록 (302) 이 파란 하늘에 대한 값들을 갖는 것을 예측할 때 발생할 수도 있다. 매크로블록 (302)이 파란 하늘에 대한 값들과 상이한 값들을 갖도록 비행기가 백색일 수도 있으나, 인코더 (106) 는 어쨌든 예측된 값들을 사용했다. 그러한 에러는 값들에서의 복잡한 변화를 처리하기 위해 높은 비트 레이트를 야기할 수도 있다.
시스템 (100) 상의 낮은 레이턴시 제약들 때문에, 이들과 같은 실수는 회피되어야 한다. 도 5에 의해 도시된 개시된 실시형태들은 버퍼 오버플로우 및 초래된 레이턴시를 방지하도록 일부 동작들을 수행할 수도 있다. 하나의 그러한 동작은 레이트 제어 블록 (310) 에 대한 버퍼 사이즈 한계에 접근하는 것을 피하는 것일 수도 있다. 공간은 복잡한 변화에 기인하여 비트 레이트 내의 임의의 갑작스런 스파이크 (spike) 를 처리하도록 버퍼 (110) 내에 남겨져야 한다. 그러나, 공간에도 불구하고, 버퍼 오버플로우는 여전히 일어날 수도 있고, 따라서 처리되어야 할 필요가 있다.
단계 502는 선택된 레이트 제어 블록 (310) 에 대한 현재 비트 레이트가 버퍼 오버플로우에 근접하는지를 결정함에 의해 실행된다. 만약 아니오 라면, 단계 504는 다음 매크로블록 예측에 대한 압축 레벨 결정을 수행함에 의해 실행된다. 압축 레벨 결과를 사용하여, 개시된 실시형태들은 유사한 매크로블록 (302) 을 이전에 인코딩된 비디오 프레임 (300) 상에서 인코딩하는 것으로 예측할 수도 있다. 단계 506은 순서도 400으로 돌아가는 것에 의해 실행된다.
단계 502가 예 라면, 그 후 단계 508는 매크로블록 (302) 이 전체 부분 예측된 프레임 (인트라-프레임, 또는 1-프레임) 또는 전체 시간의 예측된 프레임 (인터-프레임) 비디오 설정 내에 있는지를 결정함에 의해 실행된다. 만약 아니오 라면, 그 후 단계 510는 레이트 제어 블록 (310) 내의 매크로블록 (302) 들의 나머지에 대한 인코딩 프로세스를 생략함에 의해 실행된다. 대신에, 탈출 매크로블록들이 사용될 수도 있다. 인코더 (106) 가 디코더 (128) 에게 현재 프레임이 이전 프레임과 유사하다는 것을 알려주고, 그러한 매크로블록들은 레이트 제어 블록 (310) 들을 채우는데 사용될 수도 있다. 따라서, 버퍼 오버플로우는 비트레이트가 버퍼 (110) 의 용량을 초과하지 않음에 따라 회피된다.
만약 단계 508이 예 라면, 그 후 단계 512가 레이트 제어 블록 (310) 내의 나머지 매크로블록 (302) 들에서 특별한 동작을을 수행함에 의해 실행된다. I-프레임 환경에서, 인코더 (106) 는 비디오 데이터가 이전 비디오 프레임들과 관련되지 않음에 따라 탈출 매크로블록들을 사용하지 않을 수도 있다.
인트라-프레임 코딩은 다양한 무손실 (lossless) 및 손실 (lossy) 압축 기술들이, 현재 프레임 내에 오직 포함되고 비디오 시퀀스에서의 임의의 다른 프레임에 관계되지 않은 정보와 관련되어 수행된다는 사실을 나타낸다. 즉, 일시적인 프로세싱은 현재 화상 또는 프레임의 외부에서 수행되지 않는다.
따라서, 예측 시나리오는 1-프레임 비디오 프레임들에 대해 동작하지 않을 수도 있다. 단계 512는 최소 정보가 보내지도록 예측 잔여물을 부분적으로 또는 전체적으로 제거한다. 인코더 (106) 는 1-프레임 매크로블록 (302) 들을 계속 사용하나, 나머지 매크로블록 (302) 들은 사용될 비트들의 수를 감소시키도록 0 (제로) 로서 위치되는 예측 잔여물의 대부분을 가질 것이다. 그 결과는 비트 레이트가 버퍼 (110) 에 대해 할당된 비트 레이트 내에 맞춰지기 위해 감소된다는 것이다. 순서도 (500) 는 그 후 단계 506을 통해 순서도 (400) 로 돌아간다.
다양한 변경예들 및 변형예들이 본 발명의 사상 또는 범위로부터 벗어남이 없이 프라이버시 카드 커버 (privacy card cover) 의 개시된 실시형태들에서 만들어질 수도 있다는 것이 당업자들에게 명백할 것이다. 따라서, 변경예들 및 변형예들이 본 발명은 임의의 청구항들의 범위 및 그들의 균등물 내에 있는 경우, 본 발명은 상술한 실시형태들의 변경예들 및 변형예들을 커버하도록 의도된다.

Claims (20)

  1. 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법으로서,
    상기 이미지 프레임의 레이트 제어 블록 (rate control block) 을 선택하는 단계로서, 상기 레이트 제어 블록은 복수의 매크로블록 (macroblock) 들을 포함하는 상기 이미지 프레임의 레이트 제어 블록을 선택하는 단계;
    비트 레이트 (bit rate) 를 할당하도록 레이트 제어 블록을 결정하는 단계; 및
    상기 비트 레이트에 따라 상기 레이트 제어 블록의 상기 복수의 매크로블록들을 인코딩하는 단계를 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  2. 제1 항에 있어서,
    상기 결정하는 단계는, 상기 레이트 제어 블록의 사이즈에 대응하는 상기 레이트 제어 블록 설정 (setting) 을 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  3. 제1 항에 있어서,
    상기 비트 레이트에 따라 상기 비디오 전송 시스템 내에서 버퍼의 사이즈를 설정하는 단계를 더 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  4. 제1 항에 있어서,
    복수의 레이트 제어 블록들로 상기 이미지 프레임을 분할하는 단계를 더 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  5. 제1 항에 있어서,
    매크로블록 레벨 레이트 제어를 수행하는 단계를 더 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  6. 제5 항에 있어서,
    상기 인코딩된 복수의 매크로블록들의 사이즈에 기인하여 상기 버퍼가 오버플로우 (overflow) 상태에 있는지 여부를 결정하는 단계를 더 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  7. 제5 항에 있어서,
    상기 매크로블록 레벨 레이트 제어를 수행하는 단계는, 이전의 프레임의 매크로블록을 복제하는 단계를 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  8. 제5 항에 있어서,
    상기 매크로블록 레벨 레이트 제어를 수행하는 단계는, 인프라-프레임 (intra-frame) 매크로블록으로부터 매크로블록 잔여물의 부분들을 제거하는 단계를 포함하는, 비디오 전송 시스템 내에서 이미지 프레임을 인코딩하기 위한 방법.
  9. 비디오 전송 인코딩 시스템으로서,
    이미지 프레임 내의 레이트 제어 블록이 상기 이미지 프레임으로부터 정수 개의 슬라이스들로 구성되도록 보장하는 슬라이스 분할기 (slice partitioner) 로서, 상기 레이트 제어 블록은 복수의 매크로블록들을 포함하는 상기 슬라이스 분할기;
    상기 레이트 제어 블록에 대한 상기 복수의 매크로블록들을 인코딩하는 인코더; 및
    각각의 레이트 제어 블록에 대한 인코딩된 데이터를 저장하는 버퍼 (buffer) 를 포함하며,
    상기 비디오 전송 시스템에 대한 비트 레이트 및 상기 버퍼의 사이즈는 상기 레이트 제어 블록에 대한 파라미터에 따라 설정되는, 비디오 전송 인코딩 시스템.
  10. 제9 항에 있어서,
    상기 비트 레이트를 설정하는 상기 파라미터 및 상기 버퍼의 상기 사이즈는 상기 레이트 제어 블록의 사이즈와 관련되는, 비디오 전송 인코딩 시스템.
  11. 제9 항에 있어서,
    상기 슬라이스 분할기는 상기 이미지 프레임으로부터 복수의 레이트 제어 블록들을 생성하는, 비디오 전송 인코딩 시스템.
  12. 제9 항에 있어서,
    상기 인코더는, 상기 버퍼가 오버플로우 상태에 있을 때, 매크로블록 레벨 레이트 제어를 수행하도록 구성되는, 비디오 전송 인코딩 시스템.
  13. 제9 항에 있어서,
    상기 비트 레이트를 사용하여 상기 레이트 제어 블록의 상기 복수의 매크로블록들을 디코딩하는 디코더를 더 포함하는, 비디오 전송 인코딩 시스템.
  14. 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법으로서,
    복수의 레이트 제어 블록들로부터 레이트 제어 블록을 선택하는 단계;
    상기 레이트 제어 블록의 초기 설정을 결정하는 단계;
    상기 레이트 제어의 인코딩된 데이터를 수신하도록 버퍼에 대한 사이즈를 설정하는 단계; 및
    상기 버퍼의 상기 사이즈에 대응하는 비트 레이트에 따라서 상기 레이트 제어 블록 내의 복수의 매크로블록들을 인코딩하는 단계를 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  15. 제14 항에 있어서,
    상기 복수의 레이트 제어 블록들로 상기 이미지 프레임을 분할하는 단계를 더 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  16. 제14 항에 있어서,
    상기 버퍼에 대한 오버플로우 조건을 결정하는 단계 및 상기 이미지 프레임이 인프라-프레임인지 여부에 기초하여 상기 오버플로우 조건을 회피하도록 동작을 수행하는 단계를 더 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  17. 제14 항에 있어서,
    상기 레이트 제어 블록의 마지막의 매크로블록이 인코딩된 경우, 새로운 레이트 제어 블록을 선택하는 단계를 더 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  18. 제17 항에 있어서,
    상기 새로운 레이트 제어 블록의 상기 초기 설정에 따라 상기 비트 레이트 및 상기 버퍼의 상기 사이즈를 설정하는 단계를 더 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  19. 제1 항에 있어서,
    상기 레이트 제어 블록은 1 이상의 상기 이미지 프레임의 슬라이스들을 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
  20. 제14 항에 있어서,
    상기 레이트 제어 블록은 1 이상의 상기 이미지 프레임의 슬라이스들을 포함하는, 비디오 전송 이내에 이미지 프레임을 인코딩하는 방법.
KR1020137032245A 2011-05-04 2012-05-04 낮은 레이턴시 레이트 제어 시스템 및 방법 KR101809306B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/067,051 2011-05-04
US13/067,051 US8831108B2 (en) 2011-05-04 2011-05-04 Low latency rate control system and method
PCT/US2012/036646 WO2012151548A1 (en) 2011-05-04 2012-05-04 Low latency rate control system and method

Publications (2)

Publication Number Publication Date
KR20140027393A true KR20140027393A (ko) 2014-03-06
KR101809306B1 KR101809306B1 (ko) 2017-12-14

Family

ID=47090227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137032245A KR101809306B1 (ko) 2011-05-04 2012-05-04 낮은 레이턴시 레이트 제어 시스템 및 방법

Country Status (5)

Country Link
US (2) US8831108B2 (ko)
JP (3) JP2014519246A (ko)
KR (1) KR101809306B1 (ko)
CN (1) CN103718555B (ko)
WO (1) WO2012151548A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US8818171B2 (en) * 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9514664B2 (en) * 2012-09-25 2016-12-06 The Boeing Company Measuring latency in a test system using captured images
US9188644B1 (en) 2012-09-25 2015-11-17 The Boeing Company Latency measurement system and method
US20140187331A1 (en) * 2012-12-27 2014-07-03 Nvidia Corporation Latency reduction by sub-frame encoding and transmission
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9979970B2 (en) * 2014-08-08 2018-05-22 Qualcomm Incorporated System and method for determining buffer fullness for display stream compression
WO2016159610A1 (ko) * 2015-04-02 2016-10-06 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10003811B2 (en) 2015-09-01 2018-06-19 Microsoft Technology Licensing, Llc Parallel processing of a video frame
US20170085886A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Variable partition size for block prediction mode for display stream compression (dsc)
CN105706448A (zh) * 2015-12-25 2016-06-22 王晓光 一种视频软件的解码方法及系统
CN107241571B (zh) * 2016-03-29 2019-11-22 杭州海康威视数字技术股份有限公司 一种多媒体文件封装、播放方法及装置
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
CN108696771B (zh) * 2017-04-11 2021-03-09 苏州谦问万答吧教育科技有限公司 一种视频播放方法及装置
US10404565B2 (en) * 2017-12-13 2019-09-03 Ford Global Technologies, Llc Simulation latency indication
CN110248205B (zh) * 2018-09-03 2023-03-24 浙江大华技术股份有限公司 一种视频录像数据打包的方法及装置
JP7465073B2 (ja) 2019-10-28 2024-04-10 キヤノン株式会社 画像符号化装置及びその制御方法及びプログラム
CN114245178A (zh) * 2021-12-20 2022-03-25 未来电视有限公司 一种传输视频的方法、装置、设备和存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9510093D0 (en) * 1995-05-18 1995-07-12 Philips Electronics Uk Ltd Interactive image manipulation
US6055330A (en) * 1996-10-09 2000-04-25 The Trustees Of Columbia University In The City Of New York Methods and apparatus for performing digital image and video segmentation and compression using 3-D depth information
US7277483B1 (en) * 2000-04-18 2007-10-02 Ati International Srl Method and apparatus for rate control for constant-bit-rate finite-buffer-size video encoder
JP4256574B2 (ja) * 2000-08-04 2009-04-22 富士通株式会社 画像信号符号化方法および画像信号符号化装置
JP2002218477A (ja) * 2000-11-20 2002-08-02 Matsushita Electric Ind Co Ltd 映像符号化方法、映像符号化装置及び映像中継装置
TWI226198B (en) * 2003-08-08 2005-01-01 Lite On It Corp Method of buffer management in video encoder
MXPA06013193A (es) * 2004-05-13 2007-02-14 Qualcomm Inc Compresion de encabezado de datos de multimedia transmitidos sobre un sistema de comunicacion inalambrica.
CN1973550B (zh) * 2004-07-07 2010-08-18 汤姆森许可贸易公司 使用冗余视频流的通过dsl的数字视频广播系统中的快速频道改变
KR100612871B1 (ko) * 2004-11-11 2006-08-14 삼성전자주식회사 액정 표시장치의 동적 캐패시턴스 보상장치 및 방법
CN101061718B (zh) * 2004-11-22 2010-10-13 汤姆森研究基金有限公司 用于数字订户线路系统中的频道改变的方法和设备
CN100459717C (zh) * 2005-04-20 2009-02-04 华为技术有限公司 基于h.264的压缩视频传输误码消除方法
KR100770873B1 (ko) * 2005-07-25 2007-10-26 삼성전자주식회사 영상 부호화시 비트율 제어 방법 및 장치
US7929603B2 (en) * 2006-03-24 2011-04-19 Hewlett-Packard Development Company L.P. System and method for accurate rate control for video compression
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
CA2667194C (en) * 2006-10-23 2013-06-25 Vidyo, Inc. System and method for scalable video coding using telescopic mode flags
CN101647278B (zh) * 2006-12-12 2012-05-30 梵提克斯公司 用于视频编码标准的改进的视频速率控制
US7808882B2 (en) * 2007-04-17 2010-10-05 Sharp Laboratories Of America, Inc. Method and system for optimized reference signal downlink transmission in a wireless communication system
KR101345295B1 (ko) 2007-06-11 2013-12-27 삼성전자주식회사 인트라 픽처만을 이용한 동영상 시퀀스의 부호화시의비트율 제어 방법 및 장치
CN101217615B (zh) * 2007-12-27 2011-04-06 北京中星微电子有限公司 一种压缩图像比特率控制的方法及装置
EP2077646A1 (en) * 2008-01-05 2009-07-08 Panasonic Corporation Control channel signaling using code points for indicating the scheduling mode
GB0807804D0 (en) 2008-04-29 2008-06-04 Imagination Tech Ltd Interlaced video edge filtering
JP2009302776A (ja) * 2008-06-11 2009-12-24 Canon Inc 画像符号化装置、その制御方法、及びコンピュータプログラム
US20090310672A1 (en) * 2008-06-13 2009-12-17 W&W Communications, Inc. Method and System for Rate Control in a Video Encoder
US8724694B2 (en) * 2008-10-14 2014-05-13 Nvidia Corporation On-the spot deblocker in a decoding pipeline
US20100166060A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Video transcoder rate control
JP5072893B2 (ja) 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
US8817884B2 (en) * 2009-11-20 2014-08-26 Texas Instruments Incorporated Techniques for perceptual encoding of video frames
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding

Also Published As

Publication number Publication date
US8831108B2 (en) 2014-09-09
CN103718555A (zh) 2014-04-09
US20120281767A1 (en) 2012-11-08
JP6226490B2 (ja) 2017-11-08
KR101809306B1 (ko) 2017-12-14
US20140376640A1 (en) 2014-12-25
JP2014519246A (ja) 2014-08-07
JP2016119708A (ja) 2016-06-30
JP2017208849A (ja) 2017-11-24
US9445107B2 (en) 2016-09-13
CN103718555B (zh) 2017-02-01
WO2012151548A1 (en) 2012-11-08

Similar Documents

Publication Publication Date Title
JP6226490B2 (ja) 小待ち時間レート制御システムおよび方法
AU2014275405B2 (en) Tuning video compression for high frame rate and variable frame rate capture
US20150373075A1 (en) Multiple network transport sessions to provide context adaptive video streaming
US11039149B2 (en) Dynamic video insertion based on feedback information
JP6463041B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2014039294A1 (en) Adaptation of encoding and transmission parameters in pictures that follow scene changes
GB2514540A (en) Resource for encoding a video signal
JP2015171114A (ja) 動画像符号化装置
US20120281757A1 (en) Scene change detection for video transmission system
US20120281756A1 (en) Complexity change detection for video transmission system
US20150131715A1 (en) Image transmission apparatus, image transmission method, and recording medium
JP6089846B2 (ja) 映像配信システム及びデコーダ並びに映像配信方法
JP5784823B2 (ja) エンドツーエンドコード化ビデオ伝送システムのためのオンデマンドイントラリフレッシュ
US10735773B2 (en) Video coding techniques for high quality coding of low motion content
US8095955B2 (en) Methods and systems for improving network response during channel change
US11871079B2 (en) Client and a method for managing, at the client, a streaming session of a multimedia content
US11438631B1 (en) Slice based pipelined low latency codec system and method
JP2024514060A (ja) ストリーミングアプリケーションにおけるビデオデータの微調整
Mohammed et al. Ultra-High-Definition Video Transmission for Mission-Critical Communication Systems Applications
CN104702970A (zh) 一种同步视频数据的方法、设备及系统

Legal Events

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