KR20080067360A - 비디오 전화용 비디오 소스 레이트 제어 - Google Patents

비디오 전화용 비디오 소스 레이트 제어 Download PDF

Info

Publication number
KR20080067360A
KR20080067360A KR1020087012751A KR20087012751A KR20080067360A KR 20080067360 A KR20080067360 A KR 20080067360A KR 1020087012751 A KR1020087012751 A KR 1020087012751A KR 20087012751 A KR20087012751 A KR 20087012751A KR 20080067360 A KR20080067360 A KR 20080067360A
Authority
KR
South Korea
Prior art keywords
video
packet
frame
buffer
fullness
Prior art date
Application number
KR1020087012751A
Other languages
English (en)
Other versions
KR100961420B1 (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 KR20080067360A publication Critical patent/KR20080067360A/ko
Application granted granted Critical
Publication of KR100961420B1 publication Critical patent/KR100961420B1/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
    • 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
    • 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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video 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/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/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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
    • 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/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/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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/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/2368Multiplexing of audio and video streams
    • 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
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6175Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

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

Abstract

본 명세서는 비디오 전화 (VT) 애플리케이션용 비디오 소스 레이트 제어의 기술에 관한 것이다. 소스 비디오 인코딩 레이트는 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓의 듀얼-버퍼 기반 추정을 이용하여 제어될 수도 있다. 듀얼-버퍼 기판 추정 기술은 물리 비디오 버퍼의 충만도 및 가상 비디오 버퍼의 충만도를 추적할 수도 있다. 소스 비디오 인코딩 레이트는 이후 결과물인 프레임 버짓에 기초하여 제어된다. 가상 버퍼의 컨텐츠는 타겟 인코딩 레이트에 의해 강제되는 제약에 따르며, 물리 버퍼의 컨텐츠는 변화하는 채널 상태에 의해 강제되는 제약에 따른다. 물리 비디오 버퍼 충만도에 대한 고려는 비디오 소스 레이트 제어 기술이 채널-적응형이게 한다. 가상 비디오 버퍼 충만도에 대한 고려는 비디오 소스 레이트 제어 기술이 채널을 압도할 수 있는 과도한 비디오를 인코딩하는 것을 피하게 한다.
프레임 버짓, 비디오 전화, 비디오 소스 레이트 제어, 물리 비디오 버퍼, 가상 비디오 버퍼

Description

비디오 전화용 비디오 소스 레이트 제어{VIDEO SOURCE RATE CONTROL FOR VIDEO TELEPHONY}
본 출원은 2005년 10월 27일에 출원된 미국 가출원 제 60/731,614호를 우선권 주장한다.
본 명세서는 비디오 전화 (VT; video telephony) 에 관한 것으로, 더 상세하게는 VT 시스템의 비디오 소스 레이트 제어를 위한 기술에 관한 것이다.
비디오 전화 (VT) 는 오디오 및 비디오 데이터를 전달하는 패킷의 실시간 통신을 수반한다. VT 디바이스는 비디오 카메라 또는 비디오 아카이브와 같은 비디오 캡쳐 디바이스로부터 비디오를 획득하고, 비디오 패킷을 발생시키는 비디오 인코더를 포함한다. 유사하게, VT 디바이스에서의 오디오 인코더는 마이크로폰 또는 스피치 신시사이저와 같은 오디오 캡쳐 디바이스로부터 오디오를 획득하고, 오디오 패킷을 발생시킨다. 비디오 패킷 및 오디오 패킷은 라디오 링크 프로토콜 (RLP) 큐에 위치한다. 매체 액세스 제어 (MAC) 계층 모듈은 RLP 큐의 컨텐츠로부터 매체 액세스 제어 (MAC) 계층 패킷을 발생시킨다. MAC 계층 패킷은 다른 VT 디바이스로 통신 채널을 통한 송신을 위해 물리 (PHY) 계층 패킷으로 변환된다.
이동 VT 애플리케이션에서, VT 디바이스는 기지국으로부터 무선 단말기로서의 VT 디바이스로 무선 포워드 링크 (FL)(또는 "다운링크") 를 통해 물리 계층 패킷을 수신한다. VT 디바이스는 무선 리버스 링크 (RL)(또는 "업링크") 를 통해 기지국으로 PHY 계층 패킷을 송신한다. 각 VT 디바이스는 수신된 PHY 및 MAC 계층 패킷을 변환하고 패킷 페이로드를 오디오 패킷 및 비디오 패킷으로 리어셈블링하기 위한 PHY 및 MAC 계층을 포함한다. VT 디바이스 내의 비디오 디코더는 디스플레이 디바이스를 통해 사용자에 표시하기 위한 비디오 데이터를 디코딩한다. VT 디바이스 내의 오디오 디코더는 오디오 스피커를 통한 출력을 위해 오디오 데이터를 디코딩한다.
무선 환경에서의 이동 VT 는 힘들 수 있다. 무선 채널에 대한 데이터 레이트는 제한되고 시간에 따라 변한다. 예를 들어, CAMA2000 1×EV-DO Release 0 네트워크에서, 데이터 레이트는 무선 커버리지 영역 내의 채널 상태 또는 다수의 VT 사용자 사이의 트래픽 정체로 인해 변할 수도 있다. 또한, 데이터 레이트가 0 으로 떨어지는 경우, 예를 들어, 전송할 데이터가 없는 경우, 합리적인 데이터 레이트로의 복귀에 시간에 필요할 수도 있다. 그 결과, 이동 VT 는 실시간의 평활한 비디오 컨퍼런스를 경영하는 능력을 훼손하는 바람직하지 않은 비디오 및 오디오 지연에 영향을 받기 쉬울 수 있다.
개요
일반적으로, 본 명세서는 VT 애플리케이션을 위한 비디오 소스 레이트 제어의 기술에 관한 것이다. 채널 상태, 과도한 비디오 컨텐츠, 또는 그 둘다는 비디오의 송신에서 상당한 지연을 야기할 수 있다. 리버스 링크 (RL) 스루풋이 감소되고, 예를 들어, 비디오는 RL 을 압도하고 비디오 송신 지연을 증가시킬 수 있다. 본 명세서는 소스 비디오의 인코딩 레이트를 제어하는 기술을 제공하여 채널 상태의 범위에 걸친 비디오 지연을 감소시킨다. 이러한 점에서, 비디오 소스 레이트 제어 기술은 채널-적응형일 수도 있다. 기술은 비디오 소스 인코딩 레이트가 채널 상태 또는 과동한 비디오 컨텐츠 또는 복잡도로 인해 감소되는 경우에 공간 및 시간적 품질의 저하를 감소시키는데 효과적이다.
몇몇 실시형태에서, 소스 비디오 인코딩 레이트는 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓의 듀얼-버퍼 기반 추정을 이용하여 제어된다. 듀얼-버퍼 기반 추정 기술은 물리 비디오 버퍼의 충만도 및 임계값에 대한 가상 비디오 버퍼의 충만도를 추적할 수도 있다. 소스 비디오 인코딩 레이트는 이후 결과물인 프레임 버짓에 기초하여 제어된다. 가상 비디오 버퍼의 컨텐츠는 타겟 인코딩 레이트에 의해 강제되는 비트 제약에 따르며, 물리 비디오 버퍼의 컨텐츠는 변화하는 채널 상태, 예를 들어, RL 스루풋에 의해 강제되는 채널 제약에 따른다.
물리 비디오 버퍼 충만도에 대한 고려는 비디오 소스 레이트 제어 기술이 채널-적응형이게 허가한다. 물리 비디오 버퍼에서 인코딩된 비디오의 양은, 적어도 부분적으로, 채널이 추가적인 비디오 패킷을 수용할 수 있는 레이트에 관한 함수이다. 가상 비디오 버퍼 충만도에 대한 고려는 비디오 소스 레이트 제어 기술이 채널을 압도할 수 있는 과도한 비디오를 인코딩하는 것을 피하게 허가한다.
비디오 소스 레이트 제어 기술은 채널 상태에 기초하여 물리 비디오 버퍼로부터 추출된 비디오 패킷의 사이즈를 제어하는 채널-적응형 비디오 패킷 셰이핑 기술과 함께 이용될 수도 있다. 채널 상태는 프레임 버짓을 공식화하는데 이용하기 위한 채널 상태의 간접적인 지시를 제공하는 물리 비디오 버퍼로부터 제거된 비디오의 양에 영향을 미친다. 일단 프레임 버짓이 확립되면, 비디오 블록 버짓은 또한 rho 도메인에서 추정되어, 각 프레임 내의 개별 비디오 블록으로 프레임 버짓의 일부를 할당한다.
일 실시형태에서, 본 명세서는 인코딩된 비디오를 물리 비디오 버퍼에 추가하는 단계, 채널을 통한 송신을 위해 물리 비디오 버퍼로부터 인코딩된 비디오의 패킷을 제거하는 단계, 타겟 인코딩 레이트에 대한 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지하는 단계, 및 물리 비디오 버퍼의 충만도 및 가상 비디오 버퍼의 충만도에 기초하여 비디오의 실제 인코딩 레이트를 제어하는 단계를 포함하는 방법을 제공한다.
본 명세서는 또한 하나 이상의 프로세서로 하여금 이러한 방법을 수행하게 하는 명령을 포함하는 컴퓨터-판독가능 매체를 예상한다. 예를 들어, 본 명세서는 또한 하나 이상의 프로세서로 하여금, 인코딩된 비디오를 물리 비디오 버퍼에 추가하고, 채널을 통한 송신을 위해 물리 비디오 버퍼로부터 인코딩된 비디오의 패킷을 제거하고, 타겟 인코딩 레이트에 대한 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지하며, 물리 비디오 버퍼의 충만도 및 가상 비디오 버퍼의 충만도에 기초하여 비디오의 실제 인코딩 레이트를 제어하게 하는 명령을 포함하는 컴퓨터-판독가능 매체를 제공한다.
다른 실시형태에서, 본 명세서는 비디오 인코더, 비디오 인코더에 의해 인코딩된 비디오를 저장하는 물리 비디오 버퍼, 채널을 통한 송신을 위해 물리 비디오 버퍼로부터 인코딩된 비디오를 제거하는 패킷 셰이퍼, 타겟 인코딩 레이트에 대한 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼, 및 물리 비디오 버퍼의 충만도 및 가상 비디오 버퍼의 충만도에 기초하여 비디오의 실제 인코딩 레이트를 제어하는 컨트롤러를 포함하는 시스템을 제공한다.
하나 이상의 실시형태의 상세한 사항은 이하의 설명 및 첨부 도면에 개시된다. 다른 특징, 목적, 및 장점은 설명 및 도면, 및 청구범위로부터 자명하다.
도 1 은 VT 애플리케이션용 오디오/비디오 인코딩 및 디코딩 시스템을 도시한 블록 다이어그램이다.
도 2 는 비디오 소스 레이트 제어를 구현하는 비디오 인코딩 시스템을 도시한 블록 다이어그램이다.
도 3 은 듀얼-버퍼 기반 프레임 버짓 추정을 이용하여 비디오 소스 레이트 제어되는 도 2 의 비디오 인코딩 시스템의 예시적인 실시형태를 도시한 블록 다이어그램이다.
도 4 는 채널-적응형 비디오 패킷 셰이핑을 구현하는 오디오/비디오 인코딩 시스템 내의 도 2 의 비디오 인코딩 시스템의 집적화를 도시한 블록 다이어그램이 다.
도 5 는 비디오 소스 레이트 제어의 기술을 도시한 플로우 다이어그램이다.
도 6 은 비디오 소스 레이트 제어의 기술을 더 상세히 도시한 플로우 다이어그램이다.
도 1 은 비디오 인코딩 및 디코딩 시스템 (10) 을 도시한 블록 다이어그램이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 송신 채널 (16) 에 접속된 인코더 시스템 (12) 및 디코더 시스템 (14) 을 포함한다. 도 1 의 실시예에서, 인코더 시스템 (12) 은 제 1 비디오 통신 디바이스와 연관되고, 오디오 소스 (17), 비디오 소스 (18), 비디오 인코더 (20), 오디오 인코더 (22), 비디오 패킷 셰이퍼 (24), 실시간 전송 프로토콜 (RTP)/사용자 데이터그램 프로토콜 (UDP)/인터넷 프로토콜 (IP)/포인트-투-포인트 프로토콜 (PPP) 변환 모듈 (26), 라디오 링크 프로토콜 (RLP) 큐 (28), MAC 계층 모듈 (30) 및 물리 (PHY) 계층 모듈 (32) 을 포함한다. 디코더 시스템 (14) 은 다른 비디오 통신 디바이스와 연관되고, PHY 계층 모듈 (34), MAC 계층 모듈 (36), RLP 큐 (38), RTP/UDP/IP/PPP 변환 모듈 (40), 비디오 디코더 (42), 오디오 디코더 (44), 오디오 출력 디바이스 (46) 및 비디오 출력 디바이스 (48) 를 포함한다.
설명할 바와 같이, 비디오 인코더 (20) 는 채널-적응형 비디오 소스 레이트 제어를 제공하여, 예를 들어 CDMA2000 1×EV-DO Release 0 네트워크에서 종래의 것과 같이, 가변 채널 스루풋 조건 하의 비디오 지연을 감소시킨다. 리버스 링크 (RL) 스루풋은 EV-DO, Release 0 네트워크 내의 비디오 지연에 있어 중요한 요소이다. 비디오 인코더 (20) 는 RL 스루풋의 함수로서, 적어도 부분적으로 비디오 소스 인코딩 레이트를 제어할 수도 있다. 비디오 인코더 (20) 는 낮은 엔드-투-엔드 지연 요건, 예를 들어, 500 밀리초 미만을 갖는 환경에서 유용할 수도 있다. 엔트-투-엔트 지연은 예를 들어, 이동 무선 VT 시스템에서 전송자와 수신자 사이의 비디오 송신에 있어서의 지연을 지칭한다. 본 명세서에서 설명한 바와 같이, 채널-적응형 소스 레이트 제어는 무선 채널과 같은 일정 비트 레이트 (CBR) 또는 가변 비트 레이트 (VBR) 송신 채널과 동작하는 경우에 공간적 비주얼 품질과 시간적 비주얼 품질 사이에서 트레이드-오프하면서 비디오 송신의 엔드-투-엔드 지연을 적응적으로 제어할 수도 있다.
비디오 인코더 (20) 는, 비디오 소스 인코딩 레이트가 채널 상태 또는 과도한 비디오 컨텐츠 또는 복잡도로 인해 감소하는 경우에 공간 및 시간적 품질의 저하를 감소하는데 효과적일 수도 있다. 종래 레이트 제어 방식은 공간적 비디오 품질과 시간적 비디오 품질 사이의 합리적인 트레이드-오프로 바람직한 엔드-투-엔드 지연을 지원하지 않는다. 예를 들어, 작고 고정된 비디오 버퍼 사이즈의 사용은 끊어지는 (jerky) 모션 및 낮은 공간적 비주얼 품질을 야기하는 스킵된 프레임의 퍼센트를 더 크게 할 수 있다. 반대로, 큰 비디오 버퍼 사이즈의 사용은 더 우수한 공간적 품질을 생성할 수 있지만, 최종 사용자를 당황스럽게 하고 괴롭힐 수 있는 더 큰 가변 지연을 야기하는 경향이 있다.
일반적으로, 버퍼링 및 송신 지연을 포함하는 엔드-투-엔드 지연, 공간적 비 주얼 품질, 스킵된 비디오 프레임의 수, 대역폭의 불충분한 이용을 나타내는 인코더 버퍼 언더플로우, 프레임 스킵핑을 야기하는 인코더 버퍼 오버플로우, 디코딩할 데이터가 없고 디스플레이 리프레시가 적은 것을 나타내는 디코더 버퍼 언더플로우, 손실된 데이터를 나타내는 디코더 버퍼 오버플로우, 수신기 디스플레이 리프레시 레이트, 오디오-비디오 동기화, 인코더측 PSNR (peak signal to noise ratio), 및 제 1 인트라 (Ⅰ) 프레임 다음의 초기 버퍼 지연을 참조하여, 비디오 소스 인코딩 레이트 제어의 성능이 평가될 수 있다.
본 명세서에 따른 비디오 인코더 (20) 는 비디오의 프레임에 이용가능한 수개의 인코딩 비트를 정의하는 프레임 버짓의 추정을 위한 듀얼-버퍼 기반 방식을 채용할 수도 있다. 듀얼-버퍼 기반 추정 기술은 물리 비디오 버퍼의 충만도 및 임계값에 대한 가상 비디오 버퍼의 충만도를 추적할 수도 있다. 소스 비디오 인코딩 레이트는 이후 결과물인 프레임 버짓에 기초하여 제어된다. 가상 비디오 버퍼의 컨텐츠는 타겟 인코딩 레이트에 의해 강제되는 비트 제약에 따르고, 물리 비디오 버퍼의 제약은 채널 상태, 예를 들어, 리버스 링크 (RL) 스루풋을 변화시킴으로써 강제된 채널 제약에 따른다. 이러한 방식으로, 비디오 인코더 (20) 는 낮은 프레임 스킵핑 및 우수한 공간적 품질로, 특정된 타겟 인코딩 레이트, 및 특정된 엔드-투-엔드 지연을 지원할 수 있다.
몇몇 실시형태에서, 비디오 인코더 (20) 는 채널 상태에 기초하여 비디오 패킷 셰이핑을 수행하는 비디오 패킷 셰이퍼 (24) 와 함께 작동할 수도 있다. 예를 들어, 비디오 패킷 셰이퍼 (24) 는 채널 상태에 적어도 부분적으로 기초하여 패 킷 사이즈로 비디오를 패킷화할 수도 있다. 몇몇 실시형태에서, 비디오 패킷 셰이퍼는 과도한 오디오 지연을 피하기 위해 비디오 패킷 송신보다 오디오 패킷 송신을 우선시킬 수도 있다. 비디오 패킷 셰이퍼 (24) 는 비디오 패킷의 사이즈 및 비디오 패킷이 채널 (16) 을 통한 송신을 위해 물리 비디오 버퍼로부터 제거되는 레이트를 제어할 수도 있다.
이번엔, 비디오 패킷의 사이즈 및 레이트는 물리 비디오 버퍼의 충만도에 영향을 미친다. 열악한 채널 상태의 경우, 비디오 패킷의 사이즈 및 비디오 패킷이 발생되는 레이트는 비디오 패킷 셰이퍼 (24) 에 의해 감소되어, RL 을 압도할 수도 있다. 더 우수한 채널 상태의 경우, 비디오 패킷의 사이즈 및 비디오 패킷이 발생되는 레이트는 비디오 패킷 셰이퍼 (24) 에 의해 증가될 수도 있다. 비디오 인코더 (20) 는 가상 비디오 버퍼 충만도와 함께 물리 비디오 버퍼 충만도를 모니터링하여, 채널 상태 및 비트 제약에 따라 인코딩 레이트를 적응적으로 제어한다.
시스템 (10) 은, 예를 들어, 송신 채널 (16) 을 통한 비디오 전화에 양방향 비디오 및 오디오 송신을 제공할 수도 있다. 따라서, 일반적인 상호 인코딩, 디코딩 및 변환 모듈은 채널 (16) 의 반대 끝에서 제공될 수도 있다. 몇몇 실시형태에서, 인코더 시스템 (12) 및 디코더 시스템 (14) 은 비디오 스트리밍, 비디오 전화, 또는 둘 다가 구비된 무선 이동 단말기와 같은 비디오 통신 디바이스 내에 내장될 수도 있다. 이동 단말기는 RTP, UDP, IP, 또는 PPP 와 같은 패킷-스위칭 표준에 따라 VT 를 지원할 수도 있다.
RTP/UDP/IP/PPP 변환 모듈은 오디오 인코더 (22) 및 비디오 패킷 셰이퍼 (24) 로부터 수신된 오디오 및 비디오 데이터에 적절한 RTP/UDP/IP/PPP 헤더 데이터를 추가하고, 데이터를 RLP 큐 (28) 에 위치시킨다. RTP 는 UDP 의 상위에서 운영되고, UDP 는 IP 의 상위에서 운영되며, IP 는 PPP의 상위에서 운영된다. MAC 계층 모듈 (30) 은 RLP 큐 (28) 의 컨텐츠로부터 MAC RLP 패킷을 발생시킨다. PHY 계층 모듈 (32) 은 채널 (16) 을 통한 송신을 위해 MAC RLP 패킷을 PHY 계층 패킷으로 변환한다.
디코딩 시스템 (14) 의 PHY 계층 모듈 (34) 및 MAC 계층 모듈 (36) 은 상호간 방식으로 동작한다. PHY 계층 모듈 (34) 은 채널 (16) 로부터 수신된 PHY 계층 패킷을 MAC RLP 패킷으로 변환한다. MAC 계층 모듈 (36) 은 MAC RLP 패킷을 RLP 큐 (38) 로 위치시킨다. RTP/UDP/IP/PPP 변환 모듈 (40) 은 RLP 큐 (38) 에서의 데이터로부터 헤더 정보를 스트립핑하고, 전달을 위한 비디오 및 오디오 데이터를 각각 비디오 디코더 (42) 및 오디오 디코더 (44) 로 리어셈블링한다.
시스템 (10) 은 코드 분할 다중 접속 (CDMA), 주파수 분할 다중 접속 (FDMA), 시분할 다중 접속 (TDMA), 또는 직교 주파수 분할 다중 (OFDM), 또는 다른 적절한 무선 기술과 같은 하나 이상의 무선 통신 기술을 지원하도록 설계될 수도 있다. 상기 무선 통신 기술은 다양한 라디오 액세스 기술 중 임의의 것에 따라 전달될 수도 있다. 예를 들어, CDMA 는 cdma2000 또는 와이드밴드 CDMA (WCDMA) 표준에 따라 전달될 수도 있다. TDMA 는 GSM (Global System for Mobile Communications) 표준에 따라 전달될 수도 있다. UMTS (Universal Mobile Telecommunication System) 표준은 GSM 또는 WCDMA 동작을 허가한다. 통상적으로, VT 애플리케이션의 경우, 시스템 (10) 은 cdma2000 1×EV-DO, Release 0, 또는 후속 EV-DO 릴리즈와 같은 하이 데이터 레이트 (HDR; high data rate) 를 지원하도록 설계된다.
비디오 인코더 (20) 는 MPEG-4 와 같은 비디오 압축 방법에 따라 인코딩된 비디오 데이터를 발생시킨다. 다른 비디오 압축 방법은 ITU (International Telecommunication Union) H.263, ITU H.264, 또는 MPEG-2 방법과 같이, 이용될 수도 있다. 오디오 인코더 (22) 는 비디오 데이터를 동반하기 위해 오디오 데이터를 인코딩한다. 비디오 소스 (18) 는 하나 이상의 비디오 카메라, 하나 이상의 비디오 아카이브, 또는 비디오 카메라와 비디오 아카이브의 조합과 같은 비디오 캡쳐 디바이스일 수도 있다.
오디오 데이터는 적응형 멀티-레이트 협대역 (AMR-NB), 또는 다른 기술과 같은 오디오 압축 방법에 따라 인코딩될 수도 있다. 오디오 소스 (17) 는 마이크로폰, 또는 스피치 신시사이저 디바이스와 같은 오디오 캡쳐 디바이스일 수도 있다. VT 애플리케이션의 경우, 비디오는 VT 컴퍼런스에 상대방의 시청을 허가하고, 오디오는 그 상대방의 스피킹 보이스가 들리도록 허가한다.
동작 중에, RTP/UDP/IP/PPP 변환 모듈 (26) 은 비디오 인코더 (20) 및 오디오 인코더 (22) 로부터 비디오 및 오디오 데이터 패킷을 획득한다. 이전에 언급한 대로, RTP/UDP/IP/PPP 변환 모듈 (26) 은 적절한 헤더 정보를 오디오 패킷에 추가하고 결과물인 데이터를 RLP 큐 (28) 내에 삽입한다. 마찬가지로, RTP/UDP/IP/PPP 변환 모듈 (26) 은 적절한 헤더 정보를 비디오 패킷에 추가하고 결과물인 데이터를 RLP 큐 (28) 내에 삽입한다. MAC 계층 모듈 (30) 은 RLP 큐 (28) 로부터 데이터를 검색하고 MAC 계층 패킷을 형성한다. 각 MAC 계층 패킷은 RTP/UDP/IP/PPP 헤더 정보, 및 RLP 큐 (28) 내에 포함된 오디오 또는 비디오 패킷 데이터를 운반한다.
오디오 패킷은 비디오 패킷과 무관하게 RLP 큐 (28) 에 삽입된다. 그러나, 패킷 셰이퍼 (24) 는 RLP 큐 (28) 에 추가된 비디오 패킷의 사이즈를 제어하여, 각 오디오 패킷이 다음으로 이용가능한 MAC 계층 패킷에 의해 운반될 수 있게 한다. 몇몇 경우에, RLP 큐 (28) 의 컨텐츠로부터 발생된 MAC 계층 패킷은 헤더 정보 및 비디오 패킷 데이터만 운반한다. 다른 경우에, MAC 계층 패킷은 헤더 정보 및 오디오 패킷 데이터만을 운반한다.
많은 경우에, MAC 계층 패킷은 RLP 큐 (28) 의 컨텐츠에 따라, 헤더 정보, 오디오 패킷 데이터 및 비디오 패킷 데이터를 운반한다. MAC 계층 패킷은 라디오 링크 프로토콜 (RLP) 에 따라 구성될 수도 있고, MAC RLP 패킷으로 지칭될 수도 있다. PHY 계층 모듈 (32) 은 MAC RLP 오디오-비디오 패킷을 채널 (16) 을 통한 송신을 위해 PHY 계층 패킷으로 변환한다.
채널 (16) 은 PHY 계층 패킷을 디코더 시스템 (14) 으로 운반한다. 채널 (16) 은 인코더 시스템 (12) 과 디코더 시스템 (14) 사이의 임의의 물리 접속일 수도 있다. 예를 들어, 채널 (16) 은 로컬 또는 광역 유선 네트워크와 같은 유선 접속일 수도 있다. 다른 방법으로는, 여기서 설명한 바와 같이, 채널 (16) 은 셀룰러, 위성 또는 광학 접속과 같은 무선 접속일 수도 있다. 채널 상태는 유선 및 무선 채널에 대해 관심사일 수도 있지만, 특히 무선 채널 (16) 을 통해 수행된 이동 VT 애플리케이션의 경우에 문제가 있고, 여기서 채널 상태는 페이딩 (fading) 또는 정체로 인해 나빠질 수도 있다.
본 명세서에 따르면, 비디오 인코더 (20) 는 비디오 소스 (18) 로부터 비디오를 인코딩하고, 인코딩된 비디오를 물리 비디오 버퍼에 추가한다. 비디오 패킷 셰이퍼 (24) 는 물리 비디오 버퍼 내의 비디오 컨텐츠를 패킷화하고, 채널 (16) 을 통한 송신을 위해 물리 비디오 버퍼로부터 인코딩된 비디오의 패킷을 제거한다. 패킷 사이즈뿐만 아니라, 비디오 패킷 셰이퍼 (24) 가 물리 비디오 버퍼로부터 비디오 패킷을 제거하는 레이트는 채널 (16) 과 연관된 채널 상태에 따라 부분적으로 달라진다. 예를 들어, 채널 (16) 은 채널 상태에 따라 변하는 스루풋을 갖는 리버스 링크 (RL) 를 특징으로 할 수도 있다.
비디오 인코더 (20) 는 타겟 인코딩 레이트에 비례하여 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지한다. 타겟 인코딩 레이트는 채널 (16) 을 통해 송신되는 비디오 패킷에 대해 특정된 최대 인코딩 레이트일 수도 있다. 비디오 인코더 (20) 는 물리 비디오 버퍼의 충만도 및 가상 비디오 버퍼의 충만도에 기초하여 비디오 소스 (18) 로부터 비디오의 실제 인코딩 레이트를 제어한다. 물리 비디오 버퍼 충만도에 대한 고려는 비디오 인코더 (20) 에 의해 적용되는 비디오 소스 레이트 제어가 채널-적응형이게 허가한다. 물리 비디오 버퍼에서의 비디오 양은, 부분적으로, 채널이 추가적인 비디오 패킷을 수용할 수 있는 레이 트의 함수이다. 가상 비디오 버퍼 충만도에 대한 고려는, 최대 타겟 인코딩 레이트가 주어질 때, 비디오 인코더 (20) 에 의해 적용된 비디오 소스 레이트 제어 기술이 채널을 압도할 수 있는 과도한 비디오를 인코딩하는 것을 피하게 허가한다.
비디오 패킷 셰이퍼 (24) 는 RTP/UDP/IP/PPP 변환 모듈 (26) 에 제공되는 각 비디오 패킷의 사이즈를 제어한다. 비디오 패킷 셰이퍼 (24) 는 물리 비디오 버퍼에서의 비디오를 패킷화하고 채널 (16) 을 통한 송신을 위해 비디오 패킷을 제거하는 임의의 패킷타이저 (packetizer) 일 수도 있다. 그러나, 몇몇 실시형태에서, 비디오 소스 레이트 제어 기술은, 채널 상태에 부분적으로 기초하여 물리 비디오 버퍼로부터 추출된 비디오 패킷의 사이즈를 제어하고, 오디오 인코더 (22) 로부터의 오디오 패킷의 송신을 우선시키는 채널-적응형 비디오 패킷 셰이핑 기술과 함께 이용될 수도 있다.
예를 들어, 비디오 패킷 셰이퍼 (24) 는 비디오 패킷을 사이즈화하여, 각 오디오 패킷이 다음으로 이용가능한 MAC 계층 패킷에 의해 수용될 수 있게 한다. 비디오 패킷의 제어된 사이즈화는 채널 상태, 큰 비디오 패킷 또는 그 둘 다에 의해 야기되는 오디오 지연을 방지한다. 오디오 패킷이 이용가능한 경우, MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷에 포함되기 위해 RLP 큐에 위치한다. 오디오 패킷은 MAC RLP 패킷 내에 오디오 패킷을 위치시키기 위한 공간을 허가하도록 사이즈화된 비디오 패킷과 결합될 수도 있다. 비디오 부분이 채널 상태로 인한 지연을 겪을 수 있더라도, 오디오를 우선시함으로써, VT 컨퍼런스의 오디오 부분은 실질적인 지연 없이 전달될 수 있다. 비디오가 채널 상태에 의해 절충될 수도 있더라도, 비디오 패킷 셰이퍼 (24) 는 오디오를 우선시하여, VT 컨퍼런스에 대한 상대방이 구두 대화를 원활하게 계속할 수 있게 확실히 한다.
비디오 패킷 셰이퍼 (24) 는 채널 상태에 기초하여 비디오 패킷 사이즈를 조절할 수 있다는 점에서 채널-적응형이 되도록 구성될 수도 있다. 이 방법으로, 인코더 시스템 (12) 은 채널 상태가 열악한 경우에 오디오 지연을 피하기 위해 오디오 패킷의 송신을 우선시킬 수 있다. 동시에, 비디오 패킷 셰이퍼 (24) 는 오디오 우선시가 비디오 패킷의 언더-패킷화됨을 야기시키지 않게 확실히 할 수 있다. 즉, 비디오 패킷 셰이퍼 (24) 는 비디오 패킷을 충분히 작게 사이즈화하여, 다음으로 이용가능한 MAC RLP 패킷에 하나 이상의 오디오 패킷이 포함되게 허가하지만, MAC RLP 패킷에서의 과도한 공간이 낭비되지 않도록 너무 작지 않게 사이즈화한다. 결과적으로, 비디오 패킷 셰이퍼 (24) 는 오디오 패킷의 우선화와 비디오 패킷의 효율적인 송신 모두를 지원할 수도 있다. 채널 적응형 비디오 패킷 셰이핑이 적용되는 경우, 오디오 데이터에 주어지는 더 높은 우선순위는 증가된 비디오 지연의 비용에서 올 수 있다. 비디오 지연은 리버스 링크 (RL) 스루풋이 감소되는 경우에 증가한다. 과도한 비디오 지연을 피하기 위해, 본 명세서에 따르면, 비디오 소스 레이트는 채널 스루풋의 함수로서 제어된다.
디코더 시스템 (14) 의 PHY 계층 모듈 (34) 은 PHY 계층 패킷으로부터 MAC 계층 패킷을 식별하고 컨텐츠를 MAC RLP 패킷으로 리어셈블링한다. MAC 계층 모듈 (36) 은 이후 MAC RLP 패킷의 컨텐츠를 리어셈블링하여 RLP 큐 (38) 내의 삽 입을 위해 비디오 및 오디오 패킷을 제공한다. RTP/UDP/IP/PPP 모듈 (40) 은 수반하는 헤더 정보를 제거하고, 비디오 패킷을 비디오 디코더 (42) 에 그리고 오디오 패킷을 오디오 디코더 (44) 에 제공한다. 비디오 디코더 (42) 는 비디오 데이터 프레임을 디코딩하여, 디스플레이 디바이스를 구동하는데 이용하기 위해 비디오 데이터의 스트림을 생성한다. 오디오 디코더 (44) 는 오디오 데이터를 디코딩하여, 예를 들어, 오디오 스피커를 통해 사용자에 표시하기 위해 오디오 정보를 생성한다.
상술한 바와 같이, 비디오 패킷 셰이퍼 (24) 는 RTP/UDP/IP/PPP 변환 모듈 (26) 에 제시된 비디오 패킷의 사이즈를 제어한다. 상세하게는, 비디오 패킷 셰이퍼 (24) 는 MAC RLP 패킷 내의 오디오 패킷의 송신을 우선시키기 위해 비디오 패킷의 사이즈를 제어하고, 비디오 패킷이 RLP 큐 (28) 를 압도하는 것을 방지하도록 구성될 수도 있다. 이러한 방식으로, 비디오 부분이 채널 상태로 인해 지연을 겪지 않을 수도 있더라도, VT 컨퍼런스의 오디오 부분은 실질적인 지연 없이 이송될 수 있다. 비디오가 채널 상태에 의해 절충될 수도 있더라도, 비디오 패킷 셰이퍼 (24) 는 VT 컨퍼런스에 대한 상대방이 여전히 원활하게 구두 대화를 계속할 수 있게 확실히 한다.
비디오 패킷 셰이퍼 (24) 에 의해 적용된 패킷 셰이핑 기술은 오디오 패킷의 우선된 송신을 확실히 하도록 하나 이상의 규칙을 적용할 수도 있다. 하나의 규칙에 따르면, 예를 들어, 오디오 패킷은 RLP 큐 (28) 의 컨텐츠로부터 발생된 바로 다음으로 이용가능한 MAC RLP 패킷에서 전송되어야 한다. 오디오 프레임은 제 1 주기 간격에서 오디오 인코더 (22) 에 의해 발생된다. MAC RLP 패킷은 제 2 주기 간격에서 MAC 계층 모듈 (30) 에 의해 발생된다. 소정의 간격으로 발생된 오디오 프레임은 MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷에 위치하여야 한다. 몇몇 실시형태에서, 옵션으로, 오디오 패킷 사이즈와 함께 RLP 큐 (28) 의 총 출력 큐 사이즈는 하나의 MAC RLP 패킷에서 운반될 수 있어야 한다.
다양한 규칙은 VT 시퀀스의 모든 패킷에 대하여 적용될 수도 있다. 오디오 및 비디오가 단일 MAC RLP 패킷에서 운반될 수 있게 확실히 하는 방식으로 몇몇 비디오 패킷이, 본질적으로 사이즈화될 수도 있더라도, 특히 채널 상태가 저하되는 경우, 오디오 및 비디오가 단일 MAC RLP 패킷에서 운반될 수 있게 확실히 하기 위해, 다른 비디오 패킷이 더 클 수도 있고 다른 비디오 패킷의 사이즈 감소가 필요할 수도 있다. VT 시퀀스의 모든 패킷에 대해서 기술을 적용함으로써, 비디오의 컨텐츠가 비싸거나 또는 채널 대역폭이 실질적으로 한정되더라도 만족스런 스피치 통신이 확보될 수 있다.
비디오 패킷 셰이퍼 (24) 는 RLP 큐 (28) 에의 삽입을 위해 RTP/UDP/IP/PPP 변환 모듈 (26) 에 제시된 각 비디오 패킷의 사이즈를 제어한다. 비디오 패킷 셰이퍼 (24) 는 광범위한 비디오 컨텐츠에 의해 연속적인 MAC RLP 패킷의 소비로 인해 지연되지 않는다는 것을 확실히 할 수도 있다. 대신에, 오디오가 이용가능한 경우, 비디오 인코더 (20) 로부터의 비디오가 각 MAC RLP 패킷이 오디오 및 비디오의 운반을 허가하도록 선택된 사이즈의 패킷으로 분리된다. 각 오디오 프레임은 RLP 큐 (28) 에 제공된 오디오 패킷으로서 이용될 수도 있다. 다른 방법으로는, 몇몇 실시형태에서, 오디오 패킷은 연속적인 간격으로 제공된 다수의 오디오 프레임을 묶을 수도 있다.
비디오 패킷 셰이퍼 (24) 는, 몇몇 실시형태에서, 연속적인 오디오 프레임들 사이에서 발생된 MAC 계층 패킷에 대한 추정된 채널 스루풋에 기초하여, 각 MAC 계층 패킷에 대한 비디오 패킷 사이즈를 결정할 수도 있다. 스루풋은 전류 무선 채널 송신 레이트, 무선 기지국 활성, 및 송신 전력 제한 중 하나 이상으로 나타낸 것과 같이, 채널 상태에 기초하여 추정될 수도 있다. 예를 들어, 채널 상태는 현재 MAC 계층 데이터 레이트, 리버스 활성 (RA) 비트, 및 전력 증폭기 (PA) 제한에 기초하여 결정될 수도 있다. 본 명세서에 따르면, 비디오 인코더 (20) 는 물리 비디오 버퍼 충만도에 부분적으로 기초하여 적응형 소스 레이트 제어를 적용한다. 이러한 경우에, 소스 비디오 인코딩 레이트는 채널 상태가 비디오 인코딩 레이트를 지원하지 않으면 비디오 인코더 (20) 에 의해 감소될 수도 있다.
도 2 는 비디오 소스 레이트 제어를 구현하는 비디오 인코딩 시스템 (10) 을 도시한 블록 다이어그램이다. 도 2 에 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 인코딩 엔진 (50), 물리 비디오 버퍼 (52) 및 비디오 레이트 컨트롤러 (54) 를 포함한다. 비디오 인코딩 엔진 (50) 은 비디오 소스 (18) 로부터 비디오 데이터를 획득하고, 비디오 레이트 컨트롤러 (54) 에 의해 제어되는 레이트로 비디오 데이터를 인코딩한다. 비디오 인코딩 엔진 (50) 은 이후 인코딩된 비디오를 물리 비디오 버퍼 (52) 에 위치시킨다. 비디오 패킷 셰이퍼 (24) 는 비디 오 버퍼 (52) 로부터 비디오 데이터를 제거하고 채널 (16) 을 통한 송신을 위해 비디오 데이터를 패킷화한다. 비디오 패킷의 사이즈는, 부분적으로, RL 스루풋과 같은 채널 (16) 상의 채널 상태에 관한 함수일 수도 있다. 비디오 레이트 컨트롤러 (54) 는 물리 비디오 버퍼 (52) 의 충만도를 모니터링하고, 적어도 부분적으로 충만도에 기초하여 비디오 인코딩 엔진 (50) 에 의해 적용된 비디오 인코딩 레이트를 제어한다.
인코딩 레이트는 물리 비디오 버퍼 (52) 의 현재 충만도에 따라 한 프레임씩 업데이트될 수도 있다. 또한, 설명할 바와 같이, 비디오 레이트 컨트롤러 (54) 는 가상 비디오 버퍼를 유지할 수도 있다. 이러한 방식으로, 비디오 레이트 컨트롤러 (54) 는 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓의 듀얼-버퍼 기반 추정을 이용하여 소스 비디오 인코딩 레이트를 제어할 수도 있다. 듀얼-버퍼 기반 추정 기술은 물리 비디오 버퍼 (52) 의 충만도 및 임계값에 대한 가상 비디오 버퍼의 충만도를 추적한다. 비디오 레이트 컨트롤러 (54) 는 이후 결과물인 프레임 버짓에 기초하여 소스 비디오 인코딩 레이트를 제어한다.
가상 비디오 버퍼의 컨텐츠는 타겟 인코딩 레이트에 의해 강제된 비트 제약에 따르며, 물리 비디오 버퍼 (52) 의 컨텐츠는 채널 상태, 예를 들어, RL 스루풋을 변화시킴으로써 강제된 채널 제약에 따른다. 가상 비디오 버퍼의 사이즈는 RL 스루풋에 따라 스케일링될 수도 있다. 물리 비디오 버퍼 (52) 의 충만도에 대한 고려는 비디오 소스 레이트 제어 기술이 채널-적응형이도록 허가한다. 물 리 비디오 버퍼 (52) 에서의 비디오의 양은, 부분적으로, 채널 (16) 이 추가적인 비디오 패킷을 수용할 수 있는 레이트의 함수이다. 가상 비디오 버퍼 충만도에 대한 고려는 채널 (16) 을 압도할 수 있는 과도한 비디오를 비디오 레이트 컨트롤러 (54) 가 인코딩하는 것을 피하게 허가한다. 가상 비디오 버퍼의 충만도는, 예를 들어, 타겟 비트 레이트 및 타겟 프레임 레이트를 포함하는 타겟 인코딩 레이트의 함수일 수도 있다. 사실상, 가상 비디오 버퍼는 프레임 비트 할당 및/또는 프레임 스킵핑을 제어하는데 이용될 수도 있다.
비디오 인코더 (20) 는 수개의 바람직한 특징을 제공할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 일반적으로 CODEC-독립적인 비디오 소스 레이트 제어 방식을 제공할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 MPEG4, ITU H.263 또는 ITU H.264 에 따라 비디오 인코딩에 적당할 수도 있다. 또한, 비디오 인코더 (20) 는 DSP 내의 단순한 구현예 또는 내장형 로직 코어에 영향을 받기 쉬울 수도 있다. 몇몇 실시형태에서, 비디오 인코더 (20) 는 모델-기반 레이트 제어를 적용, 예를 들어, rho 도메인에서 비디오 블록 레이트 제어를 적용할 수도 있다. 예를 들어, 일단 프레임 비트 버짓이 특정 비디오 프레임에 대해 확립되면, 프레임 비트 버짓은 rho 도메인 레이트 제어를 이용하여 프레임 내의 비디오 블록, 예를 들어, 매크로블록 (MB) 들 사이에서 할당될 수도 있다. 개별 MB 에 대한 rho 도메인값은 이후 양자화 파라미터 (QP) 값으로 맵핑될 수 있다.
도 3 은 도 2 의 비디오 인코딩 시스템의 예시적인 실시형태를 도시한 블록 다이어그램이고, 비디오 소스 레이트 제어는 듀얼-버퍼 기반 프레임 버짓 추정을 이용한다. 도 3 에 도시된 바와 같이, 비디오 인코딩 엔진 (50) 은 비디오 소스 (18) 로부터 비디오를 획득하고, 예를 들어, MPEG4 또는 다른 인코딩 기술에 따라, 인코딩된 비디오 데이터 비트스트림을 발생시킨다. 인코딩된 비디오는 물리 비디오 버퍼 (52) 에 위치한다. 도 3 의 실시예에서, 비디오 레이트 컨트롤러 (54) 는 레이트 컨트롤 유닛 (56), 버퍼 정보 유닛 (58) 및 가상 비디오 버퍼 (60) 를 포함한다. 버퍼 정보 유닛 (58) 은 비디오 패킷 셰이퍼 (24) 에 의해 물리 비디오 버퍼로부터 제거된 비디오 패킷의 사이즈에 관한 함수인, 물리 비디오 버퍼 (52) 의 충만도를 모니터링한다. 이번에는, 비디오 패킷의 사이즈는 RL 스루풋과 같은 채널 제약의 함수이다. 또한, 버퍼 정보 유닛 (58) 은 비디오 인코더 (20) 에 의해 인코딩된 비디오의 양에 관한 함수인, 가상 비디오 버퍼 (60) 의 충만도, 및 타겟 비트 레이트 및 타겟 프레임 레이트를 포함하는, 타겟 인코딩 레이트와 같은 비트-레이트 제약을 모니터링한다.
물리 비디오 버퍼 (52) 의 충만도 및 가상 비디오 버퍼 (60) 의 충만도에 기초하여, 버퍼 정보 유닛 (58) 은 레이트 컨트롤 유닛 (56) 에 의한 분석을 위해 버퍼값을 발생시킨다. 몇몇 실시형태에서, 버퍼 정보 유닛 (58) 은 레이트 컨트롤 유닛 (56) 에 제공된 버퍼값으로서 물리 비디오 버퍼 충만도 및 가상 비디오 버퍼 충만도의 최대값을 발생시킬 수도 있다. 물리 비디오 버퍼 충만도 또는 가상 비디오 버퍼 충만도는 가상 비디오 버퍼 (60) 보다 물리 비디오 버퍼 (52) 를 우선시키는 계수에 의해 가중될 수도 있거나, 또는 그와 반대일 수도 있다. 레이트 컨트롤 유닛 (56) 은 먼저 스킵핑 임계값 (Tskip) 과 버퍼 정보 유닛 (58) 으 로부터 수신된 버퍼값을 비교한다.
버퍼값이 스킵핑 임계값 (Tskip) 을 충족하거나 초과하면, 레이트 컨트롤 유닛 (56) 은 비디오 인코딩 엔진 (50) 에 명령하여 다음 비디오 프레임의 인코딩을 스킵한다. 이러한 경우에, 다음 프레임이 인코딩되지 않을 것이기 때문에 프레임 버짓을 결정할 필요가 없다. 버퍼값이 스킵핑 임계값 (Tskip) 미만이면, 레이트 컨트롤 유닛 (56) 은 비디오 인코딩 엔진 (50) 에 의해 사용되어 다음 프레임을 인코딩하기 위해 프레임 버짓을 결정한다. 프레임 버짓은 다음 비디오 프레임을 인코딩하기 위해 할당된 인코딩 비트의 수를 정의한다.
프레임 비트 버짓, 즉, 전체 프레임에 대한 비트의 수를 추정하는 것에 더해, 레이트 컨트롤 유닛 (56) 은 또한 비디오 블록 버짓을 추정할 수도 있다. 비디오 블록 버짓은 프레임 내의 각 비디오 블록, 예를 들어, 매크로블록 (MB) 에 할당될 인코딩 비트의 수를 정의한다. 프레임 버짓은 비디오 블록에 평등하게 할당되거나, 또는 비디오 블록 방식에 기초하여 할당될 수도 있다. 예를 들어, 비디오 블록 버짓은 프레임의 MB-레벨 파라메트릭 rho-도메인 맵핑 및 각 MB 에 대한 양자화 파라미터 (QP) 에 대한 MB 비트 버짓을 적용할 수도 있다. 몇몇 실시형태에서, 각 MB QP 는 균일 인트라-프레임 공간 품질을 유지하도록 사후-프로세싱될 수도 있다. 가능한 스킵된 MB 의 QP 는 컴플라이언트 MPEG-4 비트스트림을 생성하기 위해 고려될 수도 있다.
몇몇 실시형태에서, 물리 비디오 버퍼 (52) 는 임계값을 초과하는 시간의 주기 동안 버퍼 내에 상주하면 비디오 데이터를 드롭하도록 구성될 수도 있다. 예를 들어, 비디오 데이터의 특정 프레임이 비디오 인코딩 엔진 (50) 에 의해 비디오 버퍼 (52) 에 위치된 후에, 열악한 채널 상태로 인해 연장된 시간의 주기 동안 물리 비디오 버퍼에 존속할 수도 있다. 이 경우에, 더 많은 인코딩된 비디오가 비디오 인코딩 엔진 (50) 으로부터 이용가능할 수도 있더라도, 물리 비디오 버퍼 (52) 에서 이용가능한 공간이 없을 수도 있다. 새롭게 인코딩된 데이터를 수용하기 위해, 물리 비디오 버퍼 (52) 는, 예를 들어, 퍼스트-인-퍼스트-드롭 (first-in-first-drop) 에 기초하여, 가장 오래된 비디오 데이터를 드롭하도록 구성될 수도 있다. 비디오 데이터를 드롭하는 것은 비디오 데이터를 폐기하고 비디오 데이터에 의해 미리 점유된 버퍼 공간을 새롭게 인코딩된 비디오 데이터로 겹쳐쓰는 것을 단순히 수반할 수도 있다. 드롭된 데이터는, 예를 들어, 바이트로 측정된 데이터의 프레임 또는 일부 소정양의 데이터일 수도 있다.
비디오 데이터는 임계값을 초과하는 시간의 주기 동안 물리 비디오 버퍼 (52) 에 있었던 경우에 드롭될 수도 있다. 다른 방법으로는, 물리 비디오 버퍼 (52) 로부터 비디오 데이터를 드롭핑하는 기준은 임계값을 초과하는 시간, 및 물리 비디오 버퍼 내의 공간을 요구하는 추가적인 비디오 데이터가 인코딩된다는 인코딩 엔진 (50) 으로부터의 지시 둘 다를 포함할 수도 있다. 어떤 경우에는, 물리 비디오 버퍼 (52) 에서의 비디오 데이터의 적어도 일부가 드롭되어 새롭게 인코딩된 비디오 데이터에 대한 공간을 만든다. 비디오 데이터를 드롭핑하는 것과 함께, 물리 비디오 버퍼 (52) 는 비디오 데이터가 드롭될 것을 지시하는 인코딩 엔진 (50) 으로의 피드백을 제공할 수도 있다. 피드백에 응답하여, 인코딩 엔 진 (50) 은 인코딩 프로세스에서 조기 에러 제어 기술을 적용하여 비디오 품질에 대한 드롭된 비디오 데이터의 효과를 완화할 수도 있다.
도 4 는 채널-적응형 비디오 패킷 셰이핑을 구현하는 오디오/비디오 인코딩 시스템 내의 도 2 의 비디오 인코딩 시스템 (10) 의 집적화를 도시한 블록 다이어그램이다. 이전에 언급한 바와 같이, 채널 적응형 비디오 소스 레이트 제어는 임의의 비디오 패킷화 방식과 함께 이용될 수도 있다. 그러나, 몇몇 애플리케이션에서, 이전에 설명한 바와 같이, 채널 (16) 을 통한 송신을 위해 비디오보다 오디오를 우선시하는 비디오 패킷 셰이핑 방식과 같은 채널 적응형 비디오 패킷 셰이핑 방식으로 채널 적응형 비디오 소스 레이트 제어를 적용하는 것이 바람직할 수도 있다.
도 4 에 도시된 바와 같이, 비디오 패킷 셰이퍼 (24) 는 물리 비디오 버퍼 (52) 로부터 비디오 데이터를 제거하고, RTP/UDP/IP/PPP 변환 모듈 (26) 로의 전달을 위해 비디오 데이터를 패킷화한다. 다시, 비디오 패킷 셰이퍼 (24) 에 의해 수신된 채널 정보 및 RLP 큐 사이즈에 의해 증명된 바와 같이, 각 패킷의 사이즈는 채널 상태에 따라 결정될 수도 있다. 오디오 인코더 (22) 는 오디오 인코딩 엔진 (61) 및 오디오 버퍼/번들러 (bundler)(62) 를 포함한다. 오디오 인코딩 엔진 (61) 은 오디오 소스로부터 수신된 오디오를 인코딩한다. 오디오 버퍼/번들러 (62) 는 오디오 인코딩 엔진 (61) 으로부터 오디오 데이터를 수신하고, RTP/UDP/IP/PPP 변환 모듈 (26) 로의 전달을 위해 오디오 프레임을 발생시킨다. RTP/UDP/IP/PPP 변환 모듈 (26) 은 채널 (16) 을 통한 송신을 위해 MAC RLP 패킷 을 RLP 큐 (28) 내에 위치시킨다.
리버스 트래픽 채널 (RTC) MAC 유닛 (64) 은 RTC MAC 프로토콜을 구현하여, 채널 (16) 의 리버스 링크 (RL) 를 통해 송신하기 위한 통신 디바이스 이후의 절차를 제공한다. 편의를 위해, MAC 계층 모듈 (30) 및 PHY 계층 모듈 (32) 은 도 4 에 도시하지 않는다. 비디오 패킷 셰이퍼 (24) 는 하나 이상의 입력에 기초하여 각 비디오 패킷의 사이즈를 제어한다. 입력은 채널 상태, RLP 큐 특성, 및 오디오 패킷 사이즈 및 상태에 관련될 수도 있다. 비디오 패킷 셰이퍼 (24) 는 입력에 기초하여 추정된 사이즈의 비디오 패킷을 발생시킨다. 비디오 패킷 사이즈는 최소 사이즈가 될 수도 있다.
비디오 버퍼 (52) 는 비디오 인코더 (20) 로부터 수신된 비디오 정보를 버퍼링하고, 비디오 패킷 셰이퍼 (24) 에 의한 패킷화를 위해 비디오 정보를 저장한다. 오디오 버퍼 (62) 는 오디오 인코더 (22) 로부터 수신된 오디오 프레임 정보를 버퍼링하고, 정보를 RTP/UDP/IP/PPP 변환 모듈 (26) 로 패스한다. 오디오 및 비디오 패킷은 서로 독립하게 RLP 큐 (28) 에 삽입된다. 비디오 패킷 셰이퍼 (24) 에 의해 생성된 비디오 패킷의 사이즈는 제어되어, MAC 계층 모듈 (30; 도 4 에 미도시) 에 의해 생성된 다음으로 이용가능한 MAC RLP 패킷에서 오디오 패킷에 대해 충분한 공간이 확실히 있게 할 수도 있다. 특히, RLP 큐 (28) 는, RLP 큐에서의 오디오 패킷이 다음 MAC RLP 패킷으로 전송될 수 있는 것을 확실히 하면서, 비디오 패킷에 압도되지 않는다.
도 4 의 실시예에서, 비디오 패킷 셰이퍼 (24) 는 오디오 패킷 타이머, 오디 오 우선순위값, RLP 큐 사이즈, 및 채널 정보를 포함하는 수개의 입력을 수신할 수도 있다. 오디오 패킷 타이머는 오디오 정보가 오디오 버퍼 (62) 에서 현재 이용가능한지 여부를 지시하고, 그렇다면, 각 오디오 프레임이 전달되는 타이밍을 지시한다. 예를 들어, 오디오 프레임이 매 20 ms 의 간격으로 전달되면, 오디오 패킷 타이머는 오디오 프레임이 이용가능한 경우에 20 ms 로 설정된다. 몇몇 실시형태에서, 오디오 버퍼 (62) 는 단일 패킷으로의 통합을 위해 연속적인 오디오 프레임을 묶도록 구성될 수도 있다. 이 경우에, 오디오 패킷 타이머는 오디오 패킷으로 묶여진 프레임의 수에 대응하는 다수일 수도 있다. 즉, 오디오 패킷 타이머는 번들 프레임의 수에 비례하거나 또는 그렇지 않으면 이에 관련된 값을 가질 수도 있다. 예를 들어, 3 개의 오디오 프레임이 묶여지면, 오디오 타이머는 60 ms 로 설정될 수도 있다. 따라서, 오디오 패킷 타이머는 또한 RTP/UDP/IP/PPP 변환 모듈 (26) 을 통해 RLP 큐 (28) 에의 삽입을 위해 오디오 버퍼 (62) 에 의해 발생된 오디오 패킷의 사이즈를 지시한다.
오디오 우선순위값은 오디오 및 비디오의 상대 우선순위를 정의하므로, 오디오 및 비디오와 연관된 지연에 영향을 미친다. 예를 들어, 오디오 우선순위값은 우선순위값이 더 작을수록 오디오 지연이 낮아지도록 확립될 수도 있다. 따라서, 오디오 우선순위값이 증가하면서, 오디오 지연은 증가하고 비디오 지연은 감소한다. 반대로, 오디오 우선순위값이 감소되면서, 오디오 지연은 감소하고 비디오 지연은 증가한다. 따라서, 오디오 지연은 오디오 우선순위값을 추적한다. 이하 더욱 상세히 설명할 바와 같이, 비디오 패킷 셰이퍼 (24) 는 오디오 우선 순위값을 이용하여 각 비디오 패킷의 사이즈를 제어하며, 그 결과 소정의 오디오 패킷 지연을 야기한다.
비디오 패킷 셰이퍼 (24) 에 의해 수신된 RLP 큐 사이즈는 RLP 큐 (28) 에서 버퍼링된 현재 데이터의 사이즈를 나타낸다. 비디오 패킷 셰이퍼 (24) 는 RLP 큐 사이즈를 이용하여 비디오 패킷의 사이즈를 제어한다. RLP 큐 (28) 가 비교적 충만하면, 비디오 패킷 셰이퍼 (24) 는 다운 방향으로 비디오 패킷의 사이즈를 조절하여, RL 을 압도하고 과도한 오디오 지연을 야기하는 것을 피할 수도 있다. RLP 큐 (28) 가 덜 충만하면, 비디오 패킷 셰이퍼 (24) 는 오디오 패킷에 충분한 공간을 여전히 제공하면서 비디오 패킷의 사이즈를 증가시킬 수도 있다. RLP 큐 사이즈를 이용하여, 비디오 패킷 셰이퍼 (24) 는 RLP 큐 (28) 의 충만도의 함수로서 비디오 패킷 사이즈를 동적으로 조절할 수 있다. RLP 큐 충만도는 과도한 비디오 컨텐츠, 채널 상태의 저하, 또는 그 둘 다를 지시할 수도 있다. RLP 큐 사이즈의 이용은 비디오 패킷 셰이퍼 (24) 가 채널 상태의 변경 또는 비디오 컨텐츠의 오버로딩에 반응할 수 있는 방법 중 하나이다.
비디오 패킷 셰이퍼 (24) 는 또한 리버스 트래픽 채널 (RTC) MAC 유닛 (64) 에 의해 제공된 채널 정보를 모니터링함으로써 채널 상태의 변화에 더욱 직접 반응할 수도 있다. RTC MAC 유닛 (64) 은 현재 MAC RL 레이트, 결합된 RA 비트, 및 헤드룸 제한과 같은 채널 특성에 관련된 정보를 발생시킨다. MAC RL 레이트는 RL 을 통해 이용가능한 현재 송신 레이트를 지시한다. RA 비트는 부속된 무선 기지국이 바쁜지 여부를 지시하는 리버스 활성 비트이다. 헤드룸 제한은 현재 송신력에 기초하여, 송신에 이용되도록 허용되는 최대 레이트를 지시할 수도 있다. RA 비트는 RL 이 기지국 불활성으로 인해 정체되거나 또는 이용가능하지 않는 경우를 지시한다. PA 제한은 송신력 헤드룸을 나타내고, 채널 상태가 저하된 경우를 지시한다.
다양한 입력에 기초하여, 비디오 패킷 셰이퍼 (24) 는 페이로드 사이즈 추정치를 발생시킨다. 오디오 우선순위값이 오디오가 높은 우선순위에 따른다고 특정하면, 페이로드 사이즈 추정치는 오디오 패킷이 다음으로 이용가능한 MAC RLP 패킷에 포함되게 허가하도록 선택된다. 비디오 패킷 셰이퍼 (24) 는 비디오 버퍼 (52) 로부터 비디오를 수신하고, 페이로드 사이즈 추정 및 최소 비디오 패킷 사이즈에 기초하여 비디오를 패킷화한다. 최소 비디오 패킷 사이즈는 비디오 패킷 셰이퍼 (24) 에 의해 생성될 비디오 패킷의 최소 사이즈를 나타낸다. 실제로, 최소 비디오 패킷 사이즈는 비디오 패킷 사이즈의 입도 (granularity) 및 대역폭 효율성을 제어한다. 더 작은 최소 비디오 패킷 사이즈값의 경우, 비디오 패킷 셰이핑은 오디오를 수용하는 점에서 더욱 효과적이고, 이에 의해 오디오 지연을 피하지만, 대역폭이 덜 효율적이다. 더 큰 최소 비디오 패킷 사이즈값의 경우, 비디오 패킷 셰이핑은 오디오 지연을 피하는데 덜 효과적이지만, 더 큰 대역폭 효율성을 제공한다.
도 4 에 또한 도시된 바와 같이, 비디오 인코더 (20) 는 물리 비디오 버퍼 (52) 로부터의 물리 비디오 버퍼 충만도값에 응답하는 비디오 레이트 컨트롤러 (54) 를 포함하도록 구성된다. 비디오 인코더 (20) 는 비디오 버퍼 충만도에 기초하여 적응형 소스 레이트 제어 피처를 제공한다. 물리 비디오 버퍼 (52) 가 비교적 충만한 경우, 비디오 레이트 컨트롤러 (54) 는 비디오 인코딩 엔진 (50) 에 의해 적용된 비디오 인코딩 레이트를 감소시킴으로써 응답한다. 물리 비디오 버퍼 (52) 가 덜 충만한 경우, 비디오 레이트 컨트롤러 (54) 는 소스 비디오 인코딩 레이트를 증가시킨다. 이러한 방식으로, 비디오 인코딩 레이트는 채널 상태가 현재 비디오 인코딩 레이트를 지원할 수 없으면 감소된다. 여기서 설명한 바와 같이, 이 채널-적응형 소스 레이트 제어 피처는 듀얼-버퍼 프레임 버짓 추정 기술로서 구현될 수도 있다. 듀얼-버퍼 프레임 버짓 추정 기술에 관한 추가 상세한 사항은 후술한다.
일반적으로, 비디오 레이트 컨트롤러 (54) 는 비디오 레이트 컨트롤러에 의해 유지되는 가상 비디오 버퍼 및 물리 비디오 버퍼 (52) 의 상태에 기초하여 비디오 소스 인코딩 레이트를 제어한다. 물리 비디오 버퍼 (52) 는 비디오 인코딩 엔진 (50) 에 의해 인코딩된 비디오의 프레임을 수신한다. 가상 비디오 버퍼 (60, 도 3) 는 한 프레임씩 업데이트되어 타겟 인코딩 레이트에 대한 인코딩된 비디오의 양을 나타낸다. 타겟 인코딩 레이트는 타겟 비트 레이트 (R) 및 타겟 프레임 레이트 (F) 를 특징으로 할 수도 있다. 타겟 비트 레이트 (R) 의 예는 24 Kbps (Kilobits per second) 이다. 타겟 프레임 레이트의 예는 7.5 fps (frames per second) 이다. 가상 버퍼 충만도값은 다음의 수학식에 의해 표현될 수 있다.
Figure 112008037955393-PCT00001
여기서, Wn 은 인코딩된 비디오 프레임 n에서의 가상 버퍼 충만도이고, Wn-1 은 프레임 n-1 에서의 가상 버퍼 충만도이고, Bn-1 은 비디오 인코딩 엔진 (50) 에 의해 이용되어 프레임 n-1 을 인코딩하는 코딩 비트의 실제 수이고, R 은 타겟 비트 레이트이며, F 는 타겟 프레임 레이트이다. 수학식 (1) 은 O 또는 Wn-1+Bn-1―R/F 중 최대인 하나이다. 값 Wn-1+Bn-1―R/F 이 음이면, 인코딩된 비디오의 양은 비교적 낮다.
버퍼 정보 유닛 (58, 도 3) 은 물리 비디오 버퍼 (52) 및 가상 비디오 버퍼 (60) 의 충만도에 기초하여 버퍼값 Xn 을 발생시킨다. 예를 들어, 버퍼값 Xn 은 다음의 수학식에 의해 나타낼 수도 있다.
Figure 112008037955393-PCT00002
여기서, 계수 w 는 양의 정수이고, Vn 은 프레임 n에서의 물리 비디오 버퍼 (52) 의 충만도를 나타낸다. 계수 w 는 물리 비디오 버퍼 충만도 대 가상 비디오 버퍼 충만도에 따르는 가중치를 결정하는 가중값이다. 수학식 (2) 는 버퍼값 Xn 으로서 w*Vn 또는 Wn 중 더 큰 것을 생성한다.
레이트 컨트롤 유닛 (56) 은 버퍼값 Xn 을 이용하여 다음 프레임을 스킵할지 여부를 결정한다. 특히, 버퍼값 Xn 이 스킵핑 임계값 (Tskip) 이상이면 (즉, Xn>=Tskip), 레이트 컨트롤 유닛 (56) 은 비디오 인코딩 엔진 (50) 에 명령하여 다 음 프레임 n+1 의 인코딩을 스킵한다. Xn 이 스킵핑 임계값 (Tskip) 을 충족하거나 초과하는 경우, 가상 비디오 버퍼 충만도에 의해 증명된 바와 같이, 비디오 인코더 (20) 가 그 비트 제약을 초과할 위험이 있거나, 또는 예를 들어, 채널 상태로 인해 물리 비디오 버퍼 (52) 가 너무 충만한 것 중 하나이다. 예를 들어, 채널 상태가 열악하면, 비디오 패킷 셰이퍼 (24) 는 물리 비디오 버퍼 (52) 로부터 제거된 비디오 패킷의 사이즈 및/또는 패킷이 제거되는 레이트를 감소시킬 수도 있다. 이 경우에, 비디오 인코더 (20) 에 의해 적용된 인코딩 레이트를 감소시키는 것이 필요하다. 채널-적응형 비디오 패킷 셰이핑은 채널 상태 및 비디오 소스 레이트 제어를 브리지 (bridge) 하는 인터페이스를 제공한다. 버퍼값 Xn 은 채널 스루풋의 간접 지시를 제공하는 비디오 버퍼 충만도로 채널 상태 정보를 변환한다.
버퍼값 Xn 이 스킵핑 임계값 (Tskip) 을 충족하지 않거나 초과하지 않으면 (즉, Xn<Tskip), 레이트 컨트롤 유닛 (56, 도 3) 은 다음 프레임을 인코딩하도록 할당된 비트의 수를 정의하는 프레임 버짓을 결정한다. 레이트 컨트롤 유닛 (56) 은 다음의 수학식에 따라 프레임 n 에 대한 프레임 버짓 Bn 을 결정할 수도 있다.
Figure 112008037955393-PCT00003
여기서, Xn>Z*Tskip 이면, Δ= Xn/F 이고, Xn<=Z*M 이면, Δ= Xn-Z*Tskip 이며, Z 는 계수이다. 일반적으로, 델타값 Δ은 버퍼 충만도 (Wn 또는 Vn), 프레 임 레이트 (F), 및 채널 스루풋의 함수이다. 값 R, 타겟 비트 레이트는 채널 스루풋을 나타낸다. 값 F, 타겟 프레임 레이트는 프레임이 송신될 수 있는 레이트를 나타낸다. 값 R/F, 즉, 채널 스루풋 R 나누기 프레임 레이트는 프레임 당 채널 스루풋을 나타낸다.
버퍼값이 스킵핑 임계값 (Tskip) 의 Z배 보다 더 크면, 가상 또는 물리 버퍼는 적용가능한 비교적 충만된다. 이러한 경우에, 버퍼값 Xn 을 프레임 레이트 F 로 나누고, 타겟 비트 레이트를 타겟 프레임 레이트 나눈 것인 R/F 에서 뺀다. 일반적으로, Δ(=Xn/F) 의 이 값은 비디오 인코딩 엔진 (50) 에 의해 적용된 인코딩 레이트를 감소시킨다. 버퍼값이 스킵핑 임계값 (Tskip) 의 Z배 이하이면, 적용가능한 가상 또는 물리 버퍼는 더욱 인코딩된 비디오를 수용할 충분한 공간을 가진다. 이러한 경우에, 스킵핑 임계값 (Tskip) 의 Z 배 곱을 버퍼값 Xn 에서 뺀다. 일반적으로, Δ(=Xn-Z*Tskip) 의 이 값은 비디오 인코딩 엔진 (50) 에 의해 적용된 인코딩 레이트를 증가시킨다.
실례로서, 일 구현예에 있어서, 다음의 요건이 비디오 인코더 (20) 에 의해 적용된 비디오 소스 레이트 제어에 적용될 수도 있다. 채널 비트 레이트 R 이 48 Kbps (6000 바이트/초) 이고 프레임 레이트가 15 fps 이면, 대응하는 프레임 버짓은 480000/15 = 3200 비트 = 400 바이트이다. 0.4 내지 0.6 초 최대 엔드-투-엔드 지연 요건 (예를 들어, 400 내지 600 ms, 보다 특히 500 ms) 을 가정하면, 물리 비디오 버퍼 지연 요건은 200 밀리초 (ms) 이하이다. 이 경우에, 가상 비디오 버퍼 (60) 의 사이즈는 1200 바이트 (200 ms*6000 바이트/초) 로 설정될 수 있다. 상기 요건을 만족하기 위해, 비디오 소스 레이트 제어 설계는 매 프레임에 대해 1200 바이트 이하인 물리 비디오 버퍼 충만도를 가져야 한다. 또한, 물리 비디오 버퍼 (52) 에서의 인코더 버퍼링 지연은 매 프레임에 대해 200 ms 이하이어야 한다.
비디오 인코더 (20) 는 RL 스루풋이 감소하는 경우에 비디오 인코딩 레이트를 감소시키지만, RL 스루풋에 적절하게 적용되어, RL 스루풋에 대해 오버- 또는 언더-응답을 방지한다. 이상적으로는, 물리 비디오 버퍼 (52) 에서 버퍼 언더플로우가 없거나 최소 버퍼 언더플로우가 있어야 할 뿐 아니라, 버퍼 오버플로우가 없거나 최소 버퍼 오버플로우가 있어야 한다. 버퍼 언더플로우는 대역폭의 불충분한 이용을 지시하고, 버퍼 오버플로우는 스킵된 프레임, 즉, 인코딩된 비디오 프레임을 수용하기 위해 물리 비디오 버퍼 (52) 에 불충분한 공간이 있는 경우에 프레임의 인코딩을 스킵하는 것을 야기한다. 여기서 설명된 듀얼 버퍼 기판 레이트 제어 방식으로, 엔드-투-엔드 비디오 지연은 공간 품질을 향상시키면서 감소될 수 있다. 이러한 방식으로, 우수한 균형이 소정량의 대역폭에서 실질적으로 최대 인코딩 품질로 달성될 수 있다. 예를 들어, 낮은 프레임 스킵핑 및 최소 버퍼 언더플로우로 또는 버퍼 언더플로우 없이, 엄격히 낮은 엔트-투-엔드 지연 요건, 예를 들어, 500 ms 이하를 충족시키는 것이 가능하다.
가상 비디오 버퍼 (60) 는 버퍼-기반 비트 할당 및 프레임 스킵핑을 이용하여 지연 요건을 충족하는 것을 돕는다. 물리 비디오 버퍼 (52) 는 비디오 인코딩 레이트의 채널 상태에의 적응을 허가한다. 상기 수학식 (1)-(3) 에 따르면, 가상 비디오 버퍼 충만도값 Wn 은 채널 상태가 우수한 경우에 레이트 제어에 이용된다. RTP 계층으로부터의 물리 비디오 버퍼 충만도값 Vn 은 채널 상태가 열악한 경우에 인코딩 레이트를 감소시키는데 이용된다. 이러한 방식으로, 시변 채널 스루풋으로 인해 채널 상태의 변경 하에 할당된 프레임 버짓을 충족시키는 것이 가능하다. MB-레벨 레이트 제어는 레이트 제어의 정확도를 개선하기 위한 다른 피쳐의 역할을 한다. 이러한 피쳐들로, 전체 엔드-투-엔드 시각 품질은 예를 들어, VT 애플리케이션 또는 다른 애플리케이션에서, 더 효과적인 오디오-비디오 통신을 지원하며, 소정의 비트 레이트에 대해 향상될 수 있다.
도 5 는 비디오 소스 레이트 제어의 기술을 도시한 플로우 다이어그램이다. 도 5 의 실시예에서, 비디오 인코딩 엔진 (50) 은 비디오 프레임 n-1 을 인코딩하고 (단계 70), 인코딩된 비디오 프레임을 물리 비디오 버퍼 (52) 에 추가한다 (단계 72). 레이트 컨트롤 유닛 (56) 은, 예를 들어, 수학식 (1) 에 따라 다음 프레임 n 에 대한 가상 버퍼 (74) 를 업데이트하여, 새로운 가상 버퍼 충만도값 (Wn) 을 산출한다 (단계 74). 가상 비디오 버퍼를 업데이트하는 데 있어, Bn-1 은 물리 비디오 버퍼 (52) 에 추가된 프레임 n-1 을 인코딩하기 위한 비디오 인코딩 엔진 (50) 에 의해 이용된 비트의 양이다. 버퍼 정보 유닛 (58) 은 물리 비디오 버퍼 충만도값 (Vn) 를 결정하고 (단계 76), 가상 비디오 버퍼 충만도값 (Wn) 을 결정한다 (단계 78). 레이트 컨트롤 유닛 (56) 은 물리 비디오 버퍼 충만도값 (Vn) 및 가상 비디오 버퍼 충만도값 (Wn) 에 기초하여 비디오 인코딩 엔진 (50) 의 비디오 인코딩 레이트를 제어한다 (단계 80). 이후, 프로세스는 인코딩될 다음 프레임으로 진행하고 (단계 82), 반복한다.
도 6 은 비디오 소스 레이트 제어의 기술을 더 상세히 도시한 플로우 다이어그램이다. 도 6 의 실시예에서, 비디오 인코딩 엔진 (50) 은 비디오 프레임 n-1 을 인코딩하고 (단계 84), 인코딩된 비디오 프레임을 물리 비디오 버퍼 (52) 에 추가한다 (단계 86). 레이트 컨트롤 유닛 (56) 은, 예를 들어, 수학식 (1) 에 따라 다음 프레임에 대한 가상 버퍼 (74) 를 업데이트하여, 새로운 가상 버퍼 충만도값 (Wn) 을 산출한다 (단계 88). 버퍼 정보 유닛 (58) 은 물리 비디오 버퍼 충만도값 (Vn) 을 결정하고 (단계 90), 가상 비디오 버퍼 충만도값 (Wn) 을 결정한다 (단계 92). 레이트 컨트롤 유닛 (56) 은 버퍼 정보 유닛 (58) 으로부터 버퍼값 (Xn) 을 수신한다. 버퍼값 Xn= max(w*Vn, Wn) 이고, 여기서 w 는 가중치이다. 이는 상기의 수학식 (2) 에 대응한다. max(w*Vn, Wn) 이 스킵핑 임계값 (Tskip) 이상이면 (단계 94), 레이트 컨트롤 유닛 (56) 은 비디오 인코딩 엔진 (50) 에 명령하여 다음 프레임 n 의 인코딩을 스킵한다 (단계 96). 다음 프레임 n 을 스킵하는 때에, 프로세스는 스킵된 프레임 (101) 이후의 다음 프레임으로 진행하고 (단계 101), 반복한다.
max(w*Vn, Wn) 이 스킵핑 임계값 (Tskip) 이하이면 (단계 94), 레이트 컨트롤 유닛 (56) 은 타겟 인코딩 레이트, 예를 들어, 타겟 비트 레이트 (R) 및 타겟 프레임 레이트 (F), 물리 비디오 버퍼 충만도값 (Vn), 가상 비디오 버퍼 충만도값 (Wn), 및 스킵핑 임계값 (Tskip) 에 기초하여 다음 프레임에 대해 프레임 버짓을 추정한다 (단계 98). 특히, 레이트 컨트롤 유닛 (56) 은 상기 수학식 (3) 을 적용하여, 다음 프레임을 인코딩하는데 이용가능한 비트의 수를 정의하는 프레임 버짓 Bn 을 결정할 수도 있다. 프레임 버짓을 결정할 때, 레이트 컨트롤 유닛 (56) 은 비디오 인코딩 엔진 (50) 에 지시하여, 인코딩될 프레임 내에서, 비디오 블록, 예를 들어, 매크로블록 (MB) 에 공평하게 프레임 버짓의 비트를 할당할 수도 있다. 다른 방법으로는, 프레임 버짓 비트는 rho 도메인 MB 비트 할당을 이용하여 할당될 수도 있다 (단계 99). 각 MB 에 대한 rho 도메인 MB 비트 할당은 이후 대응하는 QP 값에 맵핑될 수도 있다 (단계 100). 일단 인코딩 레이트가 현재 프레임에 대해 결정되면, 프로세스는 다음 프로엠으로 진행하고 (단계 101), 반복된다.
본 명세서에서 설명된 기술은 범용 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA), 또는 다른 동등한 로직 디바이스 내에서 구현될 수도 있다. 예를 들어, 비디오 인코더 시스템 (12), 및 그 컴포넌트 및 모듈은 인코딩 프로세스, 또는 코딩/디코딩 (CODEC) 프로세스의 부분으로서, 디지털 신호 프로세서 (DSP), 마이크로프로세서, 내장형 코어, 또는 다른 프로세싱 디바이스 상에서 실행되게 구현될 수도 있다. 따라서, 모듈로서 설명된 컴포넌트는 인코딩 프로세스의 하드웨어 컴포넌트 또는 프로그램가능한 피쳐들, 또는 개별 프로세스를 형성할 수도 있다.
몇몇 실시형태에서, 인코딩 기능은 상이한 하드웨어 컴포넌트들 중에서 분리될 수도 있다. 예를 들어, 프레임-레벨 레이트 제어는 내장형 로직 코어에서 수행될 수도 있고, MB-레벨 레이트 제어는 DSP 에서 수행될 수도 있다. 실예로 서, 타겟 비트 레이트 (R Kbps) 및 프레임 레이트 (F fps) 가 주어지면, 내장형 로직 코어 내의 프레임-레벨 레이트 제어는, 각 프레임을 인코딩한 후에, 레이트 제어 모델 파라미터, 예를 들어, rho 도메인 모델 파라미터를 업데이트하는 것, 다음 프레임에 대한 프레임 버짓 (B) 을 추정하는 것, 및 버짓-투-rho 및 rho-투-QP 맵핑을 이용하여, 예를 들어, rho 테이블 또는 rho 파라메트릭 수학식을 통해 프레임 버짓을 프레임 QP 에 맵핑하는 것을 수반한다.
QP 값의 사후-프로세싱 때에, 프레임 QP 에 대한 임의의 추가적인 제약을 포함하며, 내장형 로직 코어는 프레임 QP, rho 버짓 및 새로운 모델 파라미터를 DSP 에 전송한다. DSP 는 이후 rho-투-QP 맵핑을 이용하여 각 MB 에 대한 QP 를 계산하고, QP 값의 사후-프로세싱을 수행한다. DSP 는 MB 델타 QP 값이 +2 와 -2 내에 있다는 규칙뿐만 아니라, MB QP 에 대한 임의의 추가적인 제약을 유지한다. MB 를 인코딩한 후에 rho 도메인 모델 파라미터를 업데이트하는 때에, DSP 는 적용가능한 비디오 프레임 내의 다른 MB 에 대한 프로세스를 반복한다. MB 인코딩이 완료된 후에, 프로세스는 내장형 로직 코어로 복귀하여, 인코딩될 다음 비디오 프레임을 취급한다.
비디오 인코더 시스템 (12) 은 명령 및 데이터를 저장하는 전용 메모리뿐만 아니라, 전용 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합을 가질 수도 있다. 소프트웨어에서 구현되면, 기술은 RAM (random access memory), ROM (read-only memory), NVRAM (non-volatile random access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 메모리 등 상의 명령으로서 구 현도리 수도 있다. 명령은 하나 이상의 프로세서가 본 명세서에서 설명한 기능성의 일정한 양태를 수행하게 한다.
이하, 예시적인 비디오 패킷 셰이퍼 (24) 의 추가적인 사항을 설명한다. 다음의 설명은 본 명세서에서 설명한 비디오 소스 레이트 제어 기술을 이용하여 유용할 수도 있는 비디오 패킷 셰이핑 기술의 실시예를 제공한다. 그러나, 본 명세서에 따른 비디오 소스 레이트 제어의 기술은 다양한 패킷 셰이핑 기술 중 임의의 것으로 실시될 수도 잇다. 따라서, 다음의 사항은 예시적인 목적으로 제공되고, 비디오 소스 레이트 제어 기술의 제한이 본 명세서에서 넓게 구현 및 설명된 것으로 고려되면 안 된다.
이 실시예에서, 비디오 패킷 셰이퍼 (24) 는 오디오의 송신을 우선시키기 위해 RTP/UDP/IP/PPP 변환 모듈 (26, 도 1 및 도 4) 에 제공된 각 비디오 패킷의 사이즈를 제어한다. 특히, 비디오 패킷이 사이즈화되어, 각 오디오 패킷은 다음으로 이용가능한 MAC 계층 패킷에 의해 수용될 수 있게 한다. 비디오 패킷의 제어된 사이즈화는 채널 상태, 큰 비디오 패킷, 또는 그 둘 다에 의해 야기되는 오디오 지연을 방지한다. 오디오 패킷이 이용가능한 경우, MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷에 포함되기 위해 RLP 큐에 위치한다. 오디오 패킷은 MAC RLP 패킷 내에 오디오 패킷을 위치시키기 위한 공간을 허가하도록 사이즈화된 비디오 패킷과 결합될 수도 있다.
비디오 패킷 셰이퍼 (24) 는 채널 상태에 기초하여 비디오 패킷 사이즈를 조절할 수 있다는 점에서 채널-적응형이 되도록 구성될 수도 있다. 이 방법으로, 인코더 시스템 (12) 은 채널 상태가 열악한 경우에 오디오 지연을 피하기 위해 오디오 패킷의 송신을 우선시킬 수 있다. 동시에, 비디오 패킷 셰이퍼 (24) 는 오디오 우선시가 비디오 패킷의 언더-패킷화됨을 야기시키지 않음을 확실히 할 수 있다. 즉, 비디오 패킷 셰이퍼 (24) 는 비디오 패킷을 충분히 작게 사이즈화하여, 다음으로 이용가능한 MAC RLP 패킷에 하나 이상의 오디오 패킷이 포함되게 허가하지만, MAC RLP 패킷에서의 과도한 공간이 낭비되지 않게 너무 작지 않게 사이즈화한다. 결과적으로, 비디오 패킷 셰이퍼 (24) 는 오디오 패킷의 우선화와 비디오 패킷의 효율적인 송신 모두를 지원할 수도 있다.
상술한 바와 같이, RTP/UDP/IP/PPP 변환 모듈 (26) 에 제시된 비디오 패킷의 사이즈를 제어하도록 비디오 패킷 셰이퍼 (24) 가 제공된다. 비디오 패킷 셰이퍼 (24) 는 비디오 패킷의 사이즈를 제어하여 MAC RLP 패킷에서의 오디오 패킷의 송신을 우선시키고, 비디오 패킷이 RLP 큐 (28) 를 압도하는 것을 방지한다. 이러한 방식으로, 비디오 부분이 채널 상태로 인해 지연을 겪지 않을 수도 있더라도, VT 컨퍼런스의 오디오 부분은 실질적인 지연 없이 이송될 수 있다. 비디오가 채널 상태에 의해 절충될 수도 있더라도, 비디오 패킷 셰이퍼 (24) 는 VT 컨퍼런스에 대한 상대방은 여전히 원활하게 구두 대화를 계속할 수 있는 것을 확실히 한다.
비디오 패킷 셰이퍼 (24) 에 의해 적용된 패킷 셰이핑 기술은 오디오 패킷의 우선된 송신을 확실히 하도록 하나 이상의 규칙을 적용할 수도 있다. 하나의 규칙에 따르면, 예를 들어, 오디오 패킷은 RLP 큐 (28) 의 컨텐츠로부터 발생된 바 로 다음으로 이용가능한 MAC RLP 패킷에서 전송되어야 한다. 오디오 프레임은 제 1 주기 간격에서 오디오 인코더 (22) 에 의해 발생된다. MAC RLP 패킷은 제 2 주기 간격에서 MAC 계층 모듈 (30) 에 의해 발생된다. 소정의 간격으로 발생된 오디오 프레임은 MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷에 위치하여야 한다. 몇몇 실시형태에서, 옵션으로, 오디오 패킷 사이즈와 함께 RLP 큐 (28) 의 총 출력 큐 사이즈는 하나의 MAC RLP 패킷에서 운반될 수 있어야 한다.
다양한 규칙은 VT 시퀀스의 모든 패킷에 대하여 적용될 수도 있다. 오디오 및 비디오가 단일 MAC RLP 패킷에서 운반될 수 있게 확실히 하는 방식으로 몇몇 비디오 패킷이, 본질적으로 사이즈화될 수도 있더라도, 특히 채널 상태가 저하되는 경우, 오디오 및 비디오가 단일 MAC RLP 패킷에서 운반될 수 있게 확실히 하기 위해, 다른 비디오 패킷이 더 클 수도 있고 다른 비디오 패킷의 사이즈 감소가 필요할 수도 있다. VT 시퀀스의 모든 패킷에 대해서 기술을 적용함으로써, 비디오의 컨텐츠가 비싸거나 또는 채널 대역폭이 실질적으로 한정되더라도 만족스런 스피치 통신이 확보될 수 있다.
RLP 큐 (28) 에 삽입하기 위해 패킷 셰이퍼 (24) 에 의해 RTP/UDP/IP/PPP 변환 모듈 (26) 에 제시된 각 비디오 패킷의 사이즈가 제어된다. 상기 규칙은, 오디오 패킷이 광범위한 비디오 컨텐츠에 의해 연속적인 MAC RLP 패킷의 소비로 인해 지연되지 않도록 확실히 한다. 대신에, 오디오가 이용가능한 경우, 비디오 인코더 (20) 로부터의 비디오는 각 MAC RLP 패킷이 오디오 및 비디오의 운반을 허 가하도록 선택된 사이즈의 패킷으로 분리된다. 각 오디오 프레임은 RLP 큐 (28) 에 제공되는 오디오 패킷으로서 이용될 수도 있다. 다른 방법으로는, 몇몇 실시형태에서, 오디오 패킷은 연속적인 간격으로 제공된 다수의 오디오 프레임을 묶을 수도 있다.
비디오 패킷 셰이퍼 (24) 는, 몇몇 실시형태에서, 연속적인 오디오 프레임들 사이에서 발생된 MAC 계층 패킷에 대한 추정된 채널 스루풋에 기초하여, 각 MAC 계층 패킷에 대한 비디오 패킷 사이즈를 결정할 수도 있다. 스루풋은 전류 무선 채널 송신 레이트, 무선 기지국 활성, 및 송신 전력 제한 중 하나 이상으로 나타낸 것과 같이, 채널 상태에 기초하여 추정될 수도 있다. 예를 들어, 채널 상태는 현재 MAC 계층 데이터 레이트, 리버스 활성 (RA) 비트, 및 전력 증폭기 (PA) 제한에 기초하여 결정될 수도 있다. 또한, 일부 실시형태에서, 비디오 인코더 (20) 는 비디오 버퍼 점유시간에 기초하여 적응형 소스 레이트 제어를 더 포함할 수도 있다. 이러한 경우에, 소스 비디오 인코딩 레이트는, 우선시된 오디오 패킷화에 대한 요구의 가정시, 채널 상태가 비디오 인코딩 레이트를 지원하지 않으면 비디오 인코더 (20) 에 의해 감소될 수도 있다.
오디오 인코더 (22) 는 오디오 프레임을 발생시키고, 비디오 인코더 (20) 는 비디오 프레임을 발생시킨다. 일련의 연속적인 MAC RLP 패킷은 RLP 큐 (28) 에서 버퍼링되는 프레임으로부터 도출된 오디오 패킷 및 비디오 패킷을 운반하는데 이용가능하다. 오디오 인코더 (22) 에 의한 제 1 오디오 프레임의 발생 다음에, MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷은 제 1 오디오 프레임을 운반한다. 제 2 패킷 프레임은 또한 필요하다면 제 1 오디오 프레임을 전달하는데 이용될 수 있다. 그러나, RLP 큐 (28) 의 컨텐츠가 비디오 패킷에 의해 압도되면, 제 1 오디오 프레임은 긴 시간의 주기 동안 전달되지 않을 수도 있다.
각 MAC RLP 패킷은 RL 채널 상태 정보로부터 도출된 연관된 데이터 레이트를 가진다. 우수한 RL 상태 하에서, 각 MAC RLP 패킷은 76.8 Kbps (Kilobits per second) 의 데이터 레이트를 운반할 수도 있다. 그러나, 열악한 RL 채널 상태 하에서, 데이터 레이트는 변동하고, 예를 들어, 19.2 Kbps 또는 38.4 Kbps 와 같이 종종 낮다. 과도한 비디오 컨텐츠, 열악한 채널 상태, 또는 그 둘 다는 오디오 패킷의 송신에 있어 상당한 지연을 야기할 수 있다. 과도한 비디오 패킷 사이즈는, 특히 RL 스루풋이 낮은 데이터 레이트로 인해 감소되는 경우에 RL 을 압도하고 오디오 지연을 증가시킬 수 있다.
비디오 패킷은 제어되지 않은 채로 남겨지면, 과도한 양의 MAC RLP 패킷 공간을 소비하여, 오디오 패킷의 연속적인 송신들 사이에서 지연을 발생시킬 수도 잇다. 어떤 경우에, 비디오는 수개의 연속적인 MAC RLP 패킷을 소비하여, 오디오가 정확히 송신되는 것을 방지할 수도 있다. 각 MAC RLP 패킷은 오디오 및 비디오 패킷 정보의 통합을 위해 대략 26.67 ms의 공간을 제공한다. 큰 비디오 프레임이 오디오 프레임과 실질적으로 동시에 발생되는 경우를 고려한다. 이 시나리오에서, 연속적인 비디오 프레임이 시간상 서로 133 ms 발생된다고 가정한다. 그러나, 연속적인 오디오 프레임은 시간상 서로 60 ms 만 발생된다.
우수한 RL 상태 하에서도, 제 1 오디오 프레임뿐만 아니라, 제 2 및 제 3 오디오 프레임에 대한 오디오 패킷의 통합을 위한 불충분한 공간이 있을 수도 있다. 대신에, 큰 비디오 프레임과 연관된 비디오 패킷은 대부분의 MAC RLP 패킷을 소비하여, 상당한 오디오 지연을 발생시킬 수도 있다. 이 문제는 열악한 RL 상태의 경우에서처럼, 채널 상태가 저하되는 경우에 특히 도전적이다. 다양한 채널 상태 하에서 오디오 지연을 완화시키기 위해, 도 1의 시스템 (10) 은 비디오 프레임으로부터 도출된 비디오 패킷의 사이즈를 제어하는 비디오 패킷 셰이퍼 (24) 를 통함할 수도 있다. VT 시퀀스의 매 패킷에 대하여 비디오 제한을 적용함으로써, 비디오 패킷 셰이퍼 (24) 는 VT 시퀀스와 연관된 오디오가 절충되지 않는 것을 확실히 할 수 있다.
고정 길이 비디오 패킷 셰이핑은 오디오 지연의 문제에 대한 부분적인 해결을 제시한다. 그러나, 고정 길이 비디오 패킷 셰이핑은 채널 상태를 고려하지 않는다. 결과적으로, 비디오는 RL 스루풋이 감소되는 경우에 여전히 채널을 압도할 수 있다. 또한, 고정 길이 패킷 셰이핑은 2 개의 연속적인 오디오 패킷들 사이의 스루풋을 고려하지 않아, 비디오 데이터의 오버- 또는 언더-패킷화를 야기한다.
고정 길이 비디오 패킷 셰이핑의 경우, 비디오 패킷의 사이즈는 비디오 프레임을 고정 사이즈 패킷 (예를 들어, 300-바이트) 으로 매 60 ms 마다 단편화함으로써 제어된다. 오디오 프레임은 또한 고정-사이즈 패킷으로, 예를 들어, 매 60 ms 마다 단편화된다. 비디오 패킷은 MAC RLP 패킷 내의 오디오 데이터 패킷 직 후에 송신된다. 정상 동작 상태 하에서, 고정 길이 비디오 패킷화는 MAC RLP 패킷 내의 오디오 패킷의 적시의 송신을 촉진한다.
고정 길이 비디오 패킷 셰이핑 접근법은 오디오 패킷이 우수한 RL 상태 하에서 지연 없이 송신되게 확실히 한다. 그러나, RL 상태가 저하되면, 고정 길이 비디오 패킷은 RL 을 압도하여, 연속적인 오디오 패킷들 사이의 지연을 발생시킬 수 있다. 비디오 패킷의 고정 길이로 인해, RL 상태의 변화에 응답하는 능력이 없다. 몇몇 실례에 있어서, 우수한 RL 상태 하에서, 비디오 데이터는 언더패킷화되어, 각 MAC RLP 패킷에 의해 제공되는 공간의 불충분한 이용, 및 일반적인 대역폭 비효율성을 야기할 수도 있다. 열악한 RL 상태 하에서, 비디오 패킷의 고정 사이즈는 RL 이 취급하기 너무 커서, 오디오 지연을 발생시킬 수도 있다. 이러한 이유로, 채널-적응형 비디오 패킷 셰이핑은 전체 VT 시퀀스에 대한 품질 오디오를 유지하기 위해 대역폭 또는 비디오 컨텐츠에 응답하여 적응할 수 있는 사이즈를 갖는 조절가능한 길이 비디오 패킷을 생성하도록 제공될 수도 있다.
채널-적응형 비디오 패킷 셰이핑의 경우, 비디오 패킷 사이즈는 채널 상태에 기초하여 조절되어, 오디오 패킷이 실질적인 지연 없이 송신될 수 있게 한다. 고정 비디오 패킷 사이즈 대신에, 각 비디오 패킷의 사이즈는 오디오 패킷의 사이즈 및 채널 상태에 기초하여 동적으로 조절된다. 우수한 RL 상태 하에서, 비디오 패킷 사이즈는 증가할 수도 있지만, 비디오 패킷이 RL 을 압도하고 오디오 지연을 도입할 정도는 아니다. 열악한 RL 상태 하에서, 비디오 패킷의 사이즈가 감소되어, 패킷화되고 다음으로 이용가능한 MAC RLP 패킷에 위치될 오디오 프레임에 대한 공간을 제공한다.
오디오 프레임이 이용가능한 경우, 비디오 프레임이 사이즈화되어, 각각의 오디오 프레임이 다음으로 이용가능한 MAC RLP 패킷에 위치될 수 있게 한다. 각 오디오 프레임은 패킷화된 후, MAC 계층 모듈 (30) 에 의해 발생된 다음으로 이용가능한 MAC RLP 패킷에 포함되기 위해 RLP 큐 (28) 에 위치하여, 오디오 패킷의 송신 사이에 과도한 지연을 제거한다. 각 MAC RLP 패킷은 RLP 큐 (28) 의 컨텐츠에 따라, 오디오만, 비디오만, 또는 오디오와 비디오 둘 다를 운반할 수도 있다. 그러나, 각 오디오 패킷 간격에서, 비디오 패킷이 사이즈화되어, 다음으로 이용가능한 MAC RLP 패킷에서 오디오 패킷의 통합을 허가한다.
특히, 이용가능한 RL 레이트가 감소되면서, 예를 들어, 채널 상태로 인해, 오디오 패킷의 사이즈는 MAC RLP 패킷의 사이즈에 비례하여 증가한다. 즉, 각 오디오 패킷은 비디오 패킷 사이즈가 감소되기 때문에 RL 레이트가 감소되면서 MAC RLP 패킷의 더 큰 부분을 소비한다. 반대로, 각 비디오 패킷의 사이즈가 동적으로 조절되어, RL 레이트가 감소하면서 MAC RLP 패킷의 더 작은 부분을 소비하게 된다. 이러한 방법으로, 비디오 패킷은 사이즈화되어, 다음으로 이용가능한 MAC RLP 패킷 내의 각 오디오 패킷이 위치하는 것을 허가한다. 그 결과는 오디오가 비디오보다 더 높은 우선순위가 주어져서 오디오 지연을 감소시키는 것이다.
RTC MAC 유닛 (64, 도 4) 은 RTC MAC 프로토콜을 구현하여 통신 디바이스에 이은 절차를 제공하여 RL 을 통해 송신하도록 구성될 수도 있다. 특별한 실시형태에서, 비디오 패킷 셰이퍼 (24) 는 하나 이상의 입력에 기초하여 각 비디오 패 킷의 사이즈를 제어하는 페이로드 사이즈 추정기를 포함할 수도 있다. 입력은 채널 상태, RLP 큐 특성, 및 오디오 패킷 사이즈 및 상태에 관련될 수도 있다. 비디오 패킷 셰이퍼 (24) 는 또한, 특별한 실시형태에서, 최소 비디오 패킷 사이즈에 영향을 받기 쉽게, 페이로드 사이즈 추정기에 의해 특정되고 추정된 페이로드 사이즈에 기초하여 비디오 패킷을 발생시키는 대역폭 효율 패킷타이저를 포함할 수도 있다.
비디오 버퍼 (52) 는 비디오 인코더 (20) 로부터 수신된 비디오 정보를 버퍼링하고, 비디오 정보를 비디오 패킷 셰이퍼 (24) 에 패스한다. 오디오 버퍼 (62) 는 오디오 인코더 (22) 로부터 수신된 오디오 프레임 정보를 버퍼링하고, 정보를 RTP/UDP/IP/PPP 변환 모듈 (26) 로 패스한다. 오디오 및 비디오 패킷은 서로 독립적으로 RLP 큐 (28) 에 삽입된다. 비디오 패킷 셰이퍼 (24) 에 의해 생성된 비디오 패킷의 사이즈는 MAC 계층 모듈 (30) 에 의해 생성된 다음으로 이용가능한 MAC RLP 패킷에서의 오디오 패킷에 대한 충분한 공간이 있을 것을 확실히 한다. 특히, RLP 큐 (28) 는 비디오 패킷으로 압도되지 않으며, RLP 큐의 오디오 패킷은 다음 MAC RLP 패킷으로 확실히 전송될 수 있게 한다.
이 실시예에서, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 오디오 패킷 타이머, 오디오 우선순위값, ACPredNumberPlus, RLP 큐 사이즈, 및 채널 정보를 포함하는 수개의 입력을 수신한다. 오디오 패킷 타이머는 오디오 정보가 오디오 버퍼 (62) 에서 현재 이용가능한지 여부를 지시하고, 그렇다면, 각 오디오 프레임이 전달되는 타이밍을 지시한다. 예를 들어, 오디오 프레임이 매 20 ms 의 간격으로 전달되면, 오디오 패킷 타이머는 오디오 프레임이 이용가능한 경우에 20 ms 로 설정된다. 몇몇 실시형태에서, 오디오 버퍼 (62) 는 단일 패킷으로의 통합을 위해 연속적인 오디오 프레임을 묶도록 구성될 수도 있다. 이 경우에, 오디오 패킷 타이머는 오디오 패킷으로 묶여진 프레임의 수에 대응하는 다수일 수도 있다. 즉, 오디오 패킷 타이머는 번들 프레임의 수에 비례하거나 또는 그렇지 않으면 이에 관련된 값을 가질 수도 있다. 예를 들어, 3 개의 오디오 프레임이 묶여지면, 오디오 타이머는 60 ms 로 설정될 수도 있다. 따라서, 오디오 패킷 타이머는 또한 RTP/UDP/IP/PPP 변환 모듈 (26) 을 통해 RLP 큐 (28) 에의 삽입을 위해 오디오 버퍼 (62) 에 의해 발생된 오디오 패킷의 사이즈를 지시한다.
오디오 우선순위값 MACPredNumberPlus 는 오디오 및 비디오의 상대 우선순위를 정의하므로, 오디오 및 비디오와 연관된 지연에 영향을 미친다. 예를 들어, 우선순위값이 작을수록 오디오 지연이 낮아지도록, MACPredNumberPlus 가 확립된다. 따라서, MACPredNumberPlus가 증가하면서, 오디오 지연이 증가하고 비디오 지연이 감소한다. 반대로, MACPredNumberPlus가 감소하면서, 오디오 지연이 감소하고 비디오 지연이 증가한다. 따라서, 오디오 지연은 오디오 우선순위값 MACPredNumberPlus를 추적한다. 이후 더 상세히 설명할 바와 같이, 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 MACPredNumberPlus 값을 이용하여 각 패킷의 사이즈를 제어하여, 소정의 오디오 패킷 지연을 발생시킨다.
페이로드 사이즈 추정기에 의해 수신된 RLP 큐 사이즈는 RLP 큐 (28) 에서 버퍼링된 현재 데이터의 사이즈를 나타낸다. 페이로드 사이즈 추정기는 RLP 큐 사이즈를 이용하여 비디오 패킷의 사이즈를 제어한다. RLP 큐 (28) 가 비교적 충만하면, 페이로드 사이즈 추정기는 다운 방향으로 비디오 패킷의 사이즈를 조절하여, RL 을 압도하고 과도한 오디오 지연을 야기하는 것을 피할 수도 있다. RLP 큐 (28) 가 덜 충만하면, 페이로드 사이즈 추정기는 여전히 오디오 패킷에 대한 충분한 공간을 제공하면서 비디오 패킷의 사이즈를 증가시킬 수도 있다. RLP 큐 사이즈로, 페이로드 사이즈 추정기는 RLP 큐 (28) 의 충만도의 함수로서 비디오 패킷 사이즈를 동적으로 조절할 수 있다. 큐 충만도는 과도한 비디오 컨텐츠, 채널 상태의 저하, 또는 둘 다를 지시할 수도 있다. RLP 큐 사이즈의 사용은 페이로드 사이즈 추정기가 채널 상태의 변화 또는 비디오 컨텐츠의 오버로딩에 응답할 수 있는 방법 중 하나이다.
비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 또한 RTC MAC 유닛 (64) 에 의해 제공된 채널 정보를 모니터링함으로써 채널 상태의 변경에 더욱 직접 응답할 수도 있다. RTC MAC 유닛 (64) 은 현재 MAC RL 레이트, 결합된 RA 비트, 및 헤드룸 제한과 같은 채널 특성에 관련된 정보를 발생시킨다. MAC RL 레이트는 RL 을 통해 이용가능한 현재 송신 레이트를 지시한다. RA 비트는 부속된 무선 기지국이 바쁜지 여부를 지시하는 리버스 활성 비트이다. 헤드룸 제한은 현재 송신력에 기초하여, 송신에 이용되도록 허용되는 최대 레이트를 지시할 수도 있다. RA 비트는 RL 이 기지국 불활성으로 인해 정체되거나 또는 이용가능하지 않는 경우를 지시한다. PA 제한은 송신력 헤드룸을 나타내고, 채널 상태 가 저하된 경우를 지시한다.
다양한 입력에 기초하여, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 페이로드 사이즈 추정치를 발생시킨다. MACPredNumPlus 우선순위값이 오디오가 높은 우선순위에 따른다고 특정하면, 페이로드 사이즈 추정치는 오디오 패킷이 다음으로 이용가능한 MAC RLP 패킷에 포함되게 허가하도록 선택된다. 비디오 패킷 셰이퍼 (24) 의 대역폭이 효율적인 패킷타이저는 비디오 버퍼 (52) 로부터 비디오를 수신하고, 최소 비디오 패킷 사이즈 및 페이로드 사이즈 추정기에 의해 특정된 페이로드 사이즈 추정에 기초하여 비디오를 패킷화한다. 최소 비디오 패킷 사이즈는 비디오 패킷 셰이퍼 (24) 에 의해 생성될 비디오 패킷의 최소 사이즈를 나타낸다. 실제로, 최소 비디오 패킷 사이즈는 비디오 패킷 사이즈의 입도 (granularity) 및 대역폭 효율성을 제어한다. 더 작은 최소 비디오 패킷 사이즈값의 경우, 비디오 패킷 셰이핑은 오디오를 수용하는 점에서 더욱 효과적이고, 이에 의해 오디오 지연을 피하지만, 대역폭이 덜 효율적이다. 더 큰 최소 비디오 패킷 사이즈값의 경우, 비디오 패킷 셰이핑은 오디오 지연을 피하는데 덜 효과적이지만, 더 큰 대역폭 효율성을 제공한다.
추가적인 구현예의 상세한 설명을 예시 목적으로 설명한다. 다시 한번, 이러한 상세한 설명은 예시적으로 간주되며, 본 명세서에서 넓게 구현되고 설명된 기술을 제한하려는 것이 아니다. cdma2000 1×EV-DO Rel.0 구현예의 경우, RL 스루풋은 채널 상태에 따라 추정될 수 있다. 3GPP2 Specification C.S0024-A (TIA IS-856-A로도 지칭됨), 페이지 11-143, 표 11.9.6.1 은, Kbps로 된 송신 레이 트로 표현된 상이한 채널 상태가 주어지면 MAC RLP 패킷에 대한 바이트로 된 최소 및 최대 페이로드 사이즈를 특정한다. 표 11.9.6.1 은 이하로 재생성된다.
[표]
Figure 112008037955393-PCT00004
상기 표의 각 송신 레벨이 인덱스값으로 표현되면, 오디오 및 비디오 모두를 포함하는 각 MAC RLP 패킷의 최대 페이로드 사이즈는 다음과 같다.
최대 페이로드 사이즈=2인덱스 +4-3
상기 표현식의 경우, 인덱스값 1, 2, 3, 4, 및 5는 각각 9.6, 19.2, 38.4, 76.8 및 153.6 Kbps의 송신 레이트 레벨에 할당된다.
오디오 프레임 및 비디오 프레임이 패킷화되고 MAC RLP 패킷에 포함된다. MAC RLP 패킷 각각은 연관된 RL 송신 레이트를 가지고, 이들 송신 레이트에 대응하는 상이한 최대 페이로드 사이즈를 운반할 수 있다. 예를 들어, 어떤 MAC RLP 패킷은 38.4 Kbps의 RL 송신 레이트를 가질 수도 있고 각각 125 바이트의 최대 페이로드 사이즈를 운반할 수 있다. 다른 MAC RLP 패킷은 76.8 Kbps의 RL 송신 레이트를 가질 수도 있고 253 바이트의 최대 페이로드 사이즈를 운반할 수 있다. 또 다른 MAC RLP 패킷은 19.2 Kbps의 RL 송신 레이트를 가질 수도 있고 각각 61 바이트의 최대 페이로드 사이즈를 운반할 수 있다.
예시적인 실시형태에서, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기의 동작은 유사 코드의 알고리즘으로서 표현될 수 있다. 알고리즘은 다음의 입력: RA 비트, PA 제한, RL 레이트, RLPQueueSize, AudioPacketSize, 및 MACPredNumberPlus에 의존한다. AudioPacketSize 는 비디오 패킷 셰이퍼 (24) 에 적용된 오디오 패킷 타이머로부터 도출될 수도 있다. 이전에 언급한 바와 같이, 결합된 RA 비트는 기지국 활성의 상태를 지시하는 리버스 활성 비트이고, PA 제한은 전력 요건에 의해 강제되는 송신 전력 헤드룸 제한을 나타내고 채널 상태가 저하된 경우를 지시하고, RL 레이트는 RL의 송신 레이트이고, RLPQueueSize 는 RLP 큐 (28) 의 충만도를 지시하며, AudioPacketSize 는 현재 오디오 패킷, 즉, 다음으로 이용가능한 MAC RLP 패킷에 추가될 오디오 패킷의 사이즈를 지시한다. MACPredNumberPlus 는 오디오 패킷 대 비디오 패킷에 따르는 상대 우선순위를 지시한다. 알고리즘의 출력은 VideoPayloadSize 이다.
알고리즘의 초기화의 경우, 값 MACPredNumber 는 다음과 같이 설정된다.
Figure 112008037955393-PCT00005
MACPredNumber 는 단일 오디오 프레임 또는 번들 오디오 프레임의 세트를 포함하는 패킷을 운반하는데 필요한 MAC RLP 패킷의 수를 나타낸다. AudioFrameInterval 은 오디오 프레임들 사이의 시간 간격을 나타낸다. 값 26.67 은 각 MAC RLP 패킷에 대해 할당된 시간이다. 따라서, 3 개의 오디오 프 레임이 묶음이고 오디오 프레임 간격이 20 ms이고, MacPredNumberPlus가 높은 오디오 우선순위를 지시하는 0 이면, MACPredNumber 는 3 이다. 이는 비디오 페이로드 사이즈가 추정될 MAC RLP 패킷의 예상수가 3 인 것을 의미한다.
모든 번들 오디오 패킷의 경우, 번들 오디오 패킷을 전송한 후에, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 MAC 오디오 스루풋 결정을 한다. MAC 스루풋 결정은 다음의 유사 코드에 의해 지시된 바와 같이 진행될 수도 있다.
Figure 112008037955393-PCT00006
상기 MAC 스루풋 결정에서, MACThroughput 은 오디 송신에 대한 필수 스루풋값이고, MACRateIncrease 는 MAC RL 레이트가 리버스 활성에 기초하여 증가할지 여부를 지시하고, CurRate 는 MAC RL 레이트이고, MACPredRate 는 인덱스값으로 표현된 MAC RL 레이트의 증가량이다. 상기에서 나타낸 바와 같이, MACThroughput 은 3 개의 예상된 MAC RLP 패킷의 각각에 이용가능한 최대 페이로드 사이즈이다.
각 MAC RLP 패킷에 대한 최대 페이로드 사이즈 MACThroughput 이 주어지면, 비디오 페이로드 사이즈 추정기는 다음과 같이 최대 비디오 페이로드 사이즈 (VidoePayloadSize) 를 추정한다.
Figure 112008037955393-PCT00007
여기서, RLPQueueSize 는 RLP 큐 (28) 의 충만도를 지시하고, AudioPacketSize 는 다음 MAC RLP 패킷에 추가될 오디오 패킷의 사이즈를 나타낸다. 값 45 는 RTP/UDP/IP/PPP 변환 모듈 (26) 에 의해 도입된 헤더 정보의 RTP/UDP/IP/PPP 오버헤드를 설명하는 바이트로 된 고정 수이다. 이 고정 오버헤드 수의 값은 다른 구현예에서는 상이할 수 있다.
채널 상태의 범위에 걸친 채널-적응형 비디오 패킷 셰이핑의 경우, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 RL 송신 레이트에 의해 부분적으로 나타낸 바와 같이, 채널 조건을 변경시켜, RLP 큐 (28) 의 컨텐츠로부터 MAC 계층 모듈 (30) 에 의해 발생된 MAC RLP 패킷에 통합하기 위해 제시된 비디오 패킷 페이로드의 사이즈를 조절하도록 구성된다. 일 실시예에서, 오디오 프레임은 60 ms의 간격으로 발생된다. 이러한 경우에, 다음 3 개의 MAC RLP 패킷에서 이용가능한 페이로드 사이즈에 관한 결정이 매 60 ms 마다 이루어진다.
제 1 결정 포인트에서, 현재 MAC RL 레이트가 3 에서 인덱스되어, 38.4 Kbps 를 나타내고, RA 비트는 0 으로 설정되고, PA 제한은 4와 동일하고, RLP 큐는 X1 바이트를 포함한다. 이러한 경우에, 상기 공식에 따르면, 다음 3 개의 MAC RLP 패킷의 각각에 대한 스루풋은 253 바이트로 추정된다. 따라서, 다음 3 개의 MAC RLP 패킷에 걸친 전체 스루풋은 253 + 253 + 253 바이트 마이너스, RLP 큐 (28) 에 이미 위치한 컨텐츠 X1 이다. 따라서, 제 1 결정 포인트 50 에서 MACThroughput 값은 253 + 253 + 253 - X1 바이트이다.
60 ms 이후인 제 2 결정 포인트에서, 현재 RL 레이트는 다시 3 에서 인덱스되고, PA 제한은 4 이지만, RA 비트는 0 대신에 1 로 설정된다. 이러한 경우에, RA 비트는 기지국이 바쁘다는 것을 지시하고, 다음 3 개의 MAC RLP 패킷에 걸쳐 감소된 스루풋을 예상한다. 특히, 추정된 스루풋 MACThroughput 은 125 + 125 + 125 - X2 바이트이고, 여기서 X2 는 제 2 결정 포인트 80 의 시점에서 RLP 큐 (28) 의 컨텐츠를 나타낸다.
제 2 결정 포인트의 60 ms 이후인 제 3 결정 포인트에서, RA 비트는 0 이지만, RL 레이트는 2의 인덱스값 (19.2 Kbps) 로 드롭되었고 PA 제한은 2 의 인덱스값으로 드롭되었다. 결과적으로, 다음 3 개의 MAC RLP 패킷에 걸친 전체 스루풋 MACThroughput 은 61 + 61 + 61 - X3 바이트로 감소되며, 여기서 X3 은 제 3 결정 포인트 82의 시점에서 RLP 큐 (28) 의 컨텐츠를 나타낸다.
MACThroughput 이 감소되는 경우, 비디오 패킷에 이용가능한 공간은 또한 오디오 패킷의 우선시의 결과로서 감소된다. 이러한 경우에, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 패킷화를 위해 비디오 페이로드의 추정된 사이즈를 감소시킨다. 그러나, MACThroughput 이 증가하는 경우, 페이로드 사이즈 추정기는 추정된 비디오 페이로드 사이즈를 증가시킴으로써 응답한다. 이러한 방식으로, 비디오 패킷 셰이퍼 (24) 는 오디오 패킷을 우선시할 뿐만 아니라, 대역 폭이 효율적인 비디오 패킷화를 지원한다.
이러한 실시예에서, 동시에 3 개의 MAC RLP 패킷에 대해 결정이 이루어진다. 그러나, 다른 실시형태에서, 더 많은 공격적인 결정 프로세스가 적용될 수도 있다. 예를 들어, MACThroughput의 추정에 대한 결정이 매 20 ms 마다 이루어질 수도 있다. 첫번째 20 ms 간격에서, 3 개의 MAC RLP 패킷에 대해 결정이 이루어질 수도 있다. 이후, 두번째 20 ms 간격에서, 3 개의 연속적인 MAC RLP 패킷의 세트에서 나머지 2 개의 MAC RLP 패킷에 대해 결정이 이루어질 수도 있다. 마지막으로, 다음 20 ms 간격 동안에 3 개의 패킷 세트에서 최종 MAC RLP 패킷에 대해 결정이 이루어질 수도 있다. 이러한 경우에, 60 ms 간격의 도중에 결정이 이루어지고, 채널 상태 또는 RLP 큐 충만도에서 발생했었을 수도 있는 임의의 변경에 대해 매 20 ms 마다 업데이트된다. 60 ms 후에, 프로세스는 다음 60 ms 및 다음 3 개의 MAC RLP 패킷 동안 반복되고, 되풀이하여 계속된다.
일단 MACThroughput 이 추정되면, 비디오 페이로드 사이즈 추정기는 상기 설명한 바와 같이, MACThroughput 값이 주어지면 수용될 수 있는 비디오 페이로드 사이즈를 추정한다. 이후, 대역폭이 효율적인 패킷타이저는 추정된 비디오 페이로드 사이즈 및 최소 비디오 패킷 사이즈값을 이용하여 RTP/UDP/IP/PPP 변환 모듈 (26) 에의 제시를 위해 비디오 패킷을 발생시킨다. 비디오 패킷 셰이퍼 (24) 의 대역폭이 효율적인 패킷타이저를 이후 상세히 설명한다.
일반적으로, 비디오 패킷화는, MPEG4 비디오 인코딩이 이용되면 2000년 11월자인 Network Working Group Request for Comment (RFC) 3016 에 적합하고, ITU H.263 비디오 인코딩이 이용되면 1997년 9월자인 RFC 2190, 또는 1998년 10월자인 RFC 2429 에 적합한다. RFC3016 은 MPEG4 스트림에 대한 RTP 페이로드 포맷을 개관한다. RFC2429 는 ITU H.263 스트림의 1998 버전에 대한 RTP 페이로드 포맷을 개관하고, RFC 2190 은 ITU H.263 스트림의 오리지널 버전에 대한 RTP 포맷을 개관한다.
RFC 3016 은, 비디오 패킷이 (a) 비디오 객체 평면 (VOP; video object plane) 헤더 또는 비디오 패킷 (VP) 헤더 중 임의의 것이 존재하면, 이들과 시작하여야 하고, (b) 이전 규칙이 만족하면, 하나의 VP 헤더보다 많이 포함할 수 있고, (c) 그 내부에 임의의 VOP 및 VP 헤더가 없는 비디오 데이터만을 포함할 수 있고, (d) 2 개의 비디오 프레임에 걸친 데이터를 함유할 수 없다고 특정한다. RFC 2190 은 비디오 패킷이 (a) 화상 시작 코드 (PSC; picture start code) 또는 GOB (group of block) 로 시작하여야 하고, (b) GOB 헤더 또는 완전 GOB 를 가질 필요도 없고, (c) GOB 바이트 정렬될 필요도 없다고 특정한다. RFC2429 는 비디오 패킷이 (a) 바이트 정렬된 PSC, GOB 헤더, 슬라이스 헤더, 및 EOS (end of slice) 마커로 시작할 수 있고, (b) 임의의 동기화 코드로 시작하지 않지만 비디오 패킷 도중에 동기화 코드를 허용하는 개발 단계의 (Follow-on) 패킷일 수 있다고 특정한다.
상기 요건이 주어지면, 비디오 인코더 (20) 는 MPEG4 용 VOP 및 VP, 또는 H.263 용 PSC, GOB, 및 SSC의 형태로 비디오 버퍼 (52) 에 비디오 데이터를 삽입하도록 구성될 수도 있다. MPEG4 대응 인코더 (MPEG4-compliant encoder) 는 VOP 또는 VP 의 단위로 데이터를 발생시킨다. H.263 인코더는 GOB 바이트 정렬하여, PSC, GOB 또는 SSC 의 단위로 데이터를 발생시킨다. RFC 2190 이 이용되는 경우, 모드 A 는 디폴트이다.
예시적인 실시형태에서, 비디오 패킷 셰이퍼 (24) 의 대역폭이 효율적인 패킷타이저의 동작은 다음의 입력: VideoDataInBuffer, EstimatedVideoPayloadSize, minVPSize 를 이용하는 알고리즘으로서 표현될 수 있다. VideoDataInBuffer 는 비디오 버퍼 (52) 에서의 비디오의 사이즈를 나타낸다. EstimatedVideoPayloadSize 는 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기에 의해 결정된 추정된 비디오 페이로드 사이즈를 나타낸다. 값 minVPsize 는 비디오 패킷 셰이퍼 (24) 에 의해 생성될 최소 비디오 패킷 사이즈이고, 입도 및 대역폭 효율성을 제어하는 역할을 한다. 대역폭이 효율적인 패킷화 알고리즘의 출력은 RTP/UDP/IP/PPP 변환 모듈 (26) 에의 제시를 위한 하나 이상의 비디오 패킷이다. 예시적인 실시형태에서, 대역폭이 효율적인 패킷타이저의 동작은 다음의 유사 코드에 의해 나타낸다.
Figure 112008037955393-PCT00008
Figure 112008037955393-PCT00009
상기 유사 코드에 의해 나타낸 바와 같이, 비디오 패킷 셰이퍼 (24) 의 대역폭이 효율적인 패킷타이저는 페이로드 사이즈 추정기에 의해 제공된 EstimatedVideoPayloadSize 및 minVPSize 에 기초하여 비디오 패킷을 생성한다. RemainingVideoPayloadSize 는 비디오 패킷 발생 중 임의의 시점에서 여전히 이용가능한 페이로드의 양을 나타낸다. 초기에, RemainingVideoPayloadSize 는 비디오 페이로드 사이즈 추정기에 의해 제공된 전체 EstimatedVideoPayloadSize 와 동일하다. VideoPayloadSize 는 패킷에서의 비디오 페이로드의 실제 사이즈를 나타내고, 초기에 0 으로 설정된다. VideoPayloadData[] 는 비디오 버퍼 (52) 에서의 비디오 데이터 세그먼트의 어레이를 식별한다.
대역폭이 효율적인 패킷타이저는 먼저 RemainingVideoPayloadSize가 minVPsize/2 미만인지 여부를 결정한다. 미만이면, 값 RemainingVideoPayloadSize 는 0 으로 설정된다. 다른 방법으로는, RemainingVideoPayloadSize 가 minVPSize 미만이면, RemainingVideoPayloadSize 의 값은 minVPSize 와 동일하게 설정된다. 이후, RemainingVideoPayloadSize 가 0 과 동일하거나 또는 VideoDataInBuffer 가 널이면, 프로세스는 다음으로 이용가능한 MAC RLP 패킷에 잔존하는 공간이 없거나 또는 비디오 버퍼 (52) 에 잔존하는 비디오가 없는 것으로 재설정한다.
VideoInBuffer 의 사이즈가 값 RemainingVideoPayloadSize 플러스 minVPSize 이상이면, 대역폭이 효율적인 패킷타이저는 다음으로 RemainingVideoPayloadSize 가 minVPsize/2 이상인지 여부를 결정한다. 이상이면, 대역폭이 효율적인 패킷타이저는 RFC3016 또는 RFC2429 가 적용가능한지 여부를 결정한다. RFC3016 도 RFC2429 도 적용되지 않으면, 대역폭이 효율적인 패킷타이저는 RFC2190 이 적용가능한지 여부, 즉, ITU H.263 의 오리지널 버전에 대한 RTP 페이로드 포맷이 적용되는지 여부를 결정한다.
RFC3016 또는 RFC2429 가 적용되면, 대역폭이 효율적인 패킷타이저는, 비디오 버퍼 (52) 로부터 비디오를 시작 어드레스 VideoPayloadData 및 오프셋 VideoPayloadSize 에 의해 결정되는 바와 같이, VideoDataInBuffer 에 의해 식별되는 입력 버퍼로 카피 (memcpy) 한다. 초기에, VideoPayloadSize 는 0 으로 설정된다. 비디오 버퍼 (52) 로부터 카피된 비디오의 양은 초기에 EstimatedVideoPayloadSize 로 설정된 RemainingVideoPayloadSize 와 동일하다. 대역폭이 효율적인 패킷타이저는 이후 VideoPayloadSize 를 조절하여 RemainingVideoPayloadSize 와 동일하게 한다. 다음으로, 대역폭이 효율적인 패킷타이저는 입력 버퍼로부터 비디오 데이터를 RemainingVideoPayloadSize 에 의해 결정된 양으로 오프셋 RemainingVideoPayloadSize 에 의해 식별된 어드레스로 카피한다. VideoDataInBuffer 의 컨텐츠는 이후 패킷화를 위해 단편화된다.
RFC2190 이 적용되면, 대역폭이 효율적인 패킷타이저는 비디오 버퍼 (52) 로부터 비디오를 시작 어드레스 VideoPayloadData 및 오프셋 VideoPayloadSize 에 의해 결정되는 바와 같이, VideoDataInBuffer 에 의해 식별된 입력 버퍼로 카피 (memcpy) 한다. 다시, VideoPayloadSize 는 초기에 0 으로 설정된다. 비디오 버퍼 (52) 로부터 카피된 비디오의 양은 VideoDataInBuffer 의 사이즈와 동일하다. VideoPayloadSize 는 이후 VideoDataInBuffer 의 사이즈와 동일하게 된다.
RFC3016/RFC2429 동작 또는 RFC2190 동작 중 하나를 종료하는 때에, 대역폭이 효율적인 패킷타이저는 다음으로 VideoPayloadSize 의 현재 값과 동일한 페이로드 사이즈로 VideoPayloadData 로부터 VideoPacket 을 발생시킨다. 값 RemainingVideoPayloadSize 는 이후 0으로 설정된다. 이 시점에서, 비디오 패킷은 RTP/UDP/IP/PPP 변환 모듈 (26) 에 제시하기 위해 대역폭이 효율적인 패킷타이저에 의해 발생되었다. RemainingVideoPayloadSize 가 minVPsize 이상이고, RemainingVideoPayloadSize 가 0 과 동일하지 않고, VideoDataInBuffer 가 널이 아니며, VideoDataInBuffer 의 사이즈가 RemainingVideoPayloadSize + minVPSize 이 하이면, 대역폭이 효율적인 패킷타이저는 버퍼 (52) 로부터 데이터를 어드레스 VideoPayloadData 플러스 VideoPayloadSize 의 오프셋을 이용하여 VideoDataInBuffer 로 카피한다. 이러한 경우에, 카피된 데이터의 양은 VideoPayloadSize 와 동일하다. 이후, 대역폭이 효율적인 패킷타이저는 VideoPayloadSize 를 VideoDataInBuffer 의 사이즈와 동일하게 설정한다.
비디오 패킷 셰이퍼 (24) 의 대역폭이 효율적인 패킷타이저는 다음으로 RemainingVideoPayloadSize 를 Remainig VideoPayloadSize 마이너스 VideoBufferSize 와 0 중 최소값과 동일하게 설정한다. VideoBufferSize 는 비디오 버퍼 (52) 의 사이즈를 나타낸다. 비디오 버퍼 (52) 에 더 이상의 데이터가 없거나, 또는 현재 타임스탬프 (TS) 가 다음 TS 와 동일하지 않거나, 또는 RemainingVideoPayloadSize 가 0 과 동일하거나, 또는 VideoDataInBuffer 가 단편화되면, 대역폭이 효율적인 패킷타이저는 VideoPayloadSize 의 페이로드 사이즈로 VideoPayloadData 로부터 하나의 VideoPacket 을 발생시키고, VideoPayloadSize 를 0 으로 설정한다. 이와 달리, 대역폭이 효율적인 패킷타이저는, 비디오 버퍼에 임의의 데이터가 있으면, VideoDataInBuffer 를 비디오 버퍼 (52) 에서의 다음 프레임, GOB, 또는 슬라이스 유닛을 획득하게 설정하거나, 또는 비디오 버퍼에 더 이상 데이터가 없으면, 널로 설정한다.
채널-적응형 비디오 패킷 셰이핑의 실시예로서, 오디오 버퍼 (62) 가 오디오 패킷을 발생시키는 것으로 가정한다. RTP/UDP/IP/PPP 모듈 (26) 은 오디오 패킷을 RLP 큐 (28) 에 추가한다. 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 RLP 큐 사이즈, 오디오-비디오 우선순위값, 및 채널 상태를 결정한다. 이들 결정에 기초하여, 비디오 패킷 셰이퍼 (24) 의 페이로드 사이즈 추정기는 발생될 다음 비디오 패킷의 페이로드 사이즈를 추정한다. 대역폭이 효율적인 패킷타이저는 비디오 패킷을 발생시키고, 추정된 페이로드 사이즈 및 최소 비디오 패킷 사이즈에 기초하여 비디오 패킷을 사이즈화한다. 대역폭이 효율적인 패킷타이저는 비디오 패킷을 RLP 패킷 (28) 에 추가한다. MAC 계층 모듈 (30) 은 RLP 큐 (28) 의 컨텐츠로부터 MAC RLP 패킷을 발생시킨다.
본 명세서에서 설명된 기술은 범용 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA), 또는 다른 동등한 로직 디바이스 내에서 구현될 수도 있다. 예를 들어, 비디오 인코더 시스템 (12), 비디오 디코더 시스템 (14), 및 관련된 컴포넌트 및 모듈은 인코딩 프로세스, 또는 디지털 신호 프로세서 (DSP) 또는 다른 프로세싱 디바이스 상에서 실행되는 코딩/디코딩 (CODEC) 프로세스의 일부로서 구현될 수도 있다. 따라서, 모듈로서 설명된 컴포넌트는 이러한 프로세스, 또는 개별 프로세스의 프로그램가능 피쳐들을 형성할 수도 있다.
비디오 인코더 시스템 (12) 은 전용 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합뿐만 아니라, 명령 및 데이터를 저장하는 전용 메모리를 가질 수도 있다. 소프트웨어로 구현되면, 기술은 하나 이상의 프로세서에 의해 실행가능한 명령으로서 구체화될 수도 있다. 명령은 RAM (random access memory), ROM (read-only memory), NVRAM (non-volatile random access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 메모리, 자기 또는 광학 데이터 저장 디바이스 등과 같은 컴퓨터-판독가능 매체 상에 저장될 수도 있다. 명령은 하나 이상의 프로세서가 본 명세서에서 설명한 기능성의 일정한 양태를 수행하게 한다.
다양한 실시형태를 설명하였다. 이들 실시형태 및 다른 실시형태는 다음의 청구범위의 범위 내에 있다.

Claims (44)

  1. 인코딩된 비디오를 물리 비디오 버퍼에 추가하는 단계;
    채널을 통한 송신을 위해 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 패킷을 제거하는 단계;
    타겟 인코딩 레이트에 대한 상기 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지하는 단계; 및
    상기 물리 비디오 버퍼의 충만도 및 상기 가상 비디오 버퍼의 충만도에 기초하여 상기 인코딩된 비디오의 실제 인코딩 레이트를 제어하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 채널은 변화하는 채널 상태를 표시하고,
    상기 방법은 상기 변화하는 채널 상태에 응답하여 시간에 따라 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 변화하는 양을 제거하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 실제 인코딩 레이트를 제어하는 단계는, 상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 스킵핑 임계값 이상이면 비디오 프레임의 인코딩을 스킵하는 단계를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 상기 스킵핑 임계값 미만이면 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하는 단계, 및
    상기 프레임 버짓에 기초하여 상기 실제 인코딩 레이트를 제어하는 단계를 더 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 프레임 버짓을 추정하는 단계는, 타겟 비트 레이트, 타겟 프레임 레이트, 상기 물리 비디오 버퍼의 충만도, 상기 가상 비디오 버퍼의 충만도, 및 상기 스킵핑 임계값에 기초하여 인코딩 비트의 수를 추정하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서,
    실질적으로 다음의 수학식,
    Wn=max(Wn-1 + Bn-1 - R/F, 0)
    [식 중, Wn 은 비디오 프레임 n에 대한 가상 비디오 버퍼의 충만도, Wn-1 은 비디오 프레임 n-1 에 대한 가상 비디오 버퍼의 충만도, Bn-1 은 비디오 프레임 n-1 에 할당된 실제 코딩 비트, R 은 타겟 비트 레이트, 및 F 는 타겟 프레임 레이 트]
    에 기초하여 상기 가상 비디오 버퍼의 충만도를 결정하는 단계; 및
    실질적으로 다음의 수학식,
    Xn = max(w*Vn, Wn), 및
    Bn = R/F - Δ
    [식 중, Xn>Z*M 이면, Δ= Xn/F 이고, Xn<=Z*M 이면, Δ= Xn-Z*M 이고, Vn 은 비디오 프레임 n에 대한 물리 비디오 버퍼의 충만도, w는 양의 정수, M 은 스킵핑 임계값, 및 Z 은 계수]
    에 따라 상기 실제 인코딩 레이트를 결정하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 스킵핑 임계값 미만이면, 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하는 단계, 및
    상기 프레임 버짓에 기초하여 상기 실제 인코딩 레이트를 제어하는 단계를 더 포함하는, 방법.
  8. 제 7 항에 있어서,
    상기 프레임 버짓을 추정하는 단계는, 타겟 비트 레이트, 타겟 프레임 레이트, 상기 물리 비디오 버퍼의 충만도, 상기 가상 비디오 버퍼의 충만도, 및 상기 스킵핑 임계값에 기초하여 상기 인코딩 비트의 수를 추정하는 단계를 포함하는, 방법.
  9. 제 8 항에 있어서,
    실질적으로 다음의 수학식,
    Wn=max(Wn-1 + Bn-1 - R/F, 0)
    [식 중, Wn 은 비디오 프레임 n에 대한 가상 비디오 버퍼의 충만도, Wn-1 은 비디오 프레임 n-1 에 대한 가상 비디오 버퍼의 충만도, Bn-1 은 비디오 프레임 n-1 에 할당된 실제 코딩 비트, R 은 타겟 비트 레이트, 및 F 는 타겟 프레임 레이트]
    에 기초하여 상기 가상 비디오 버퍼의 충만도를 결정하는 단계; 및
    실질적으로 다음의 수학식,
    Xn = max(w*Vn, Wn), 및
    Bn = R/F - Δ
    [식 중, Xn>Z*M 이면, Δ= Xn/F 이고, Xn<=Z*M 이면, Δ= Xn-Z*M 이고, Vn 은 비디오 프레임 n에 대한 물리 비디오 버퍼의 충만도, w는 양의 정수, M 은 스킵핑 임계값, 및 Z 은 계수]
    에 따라 상기 실제 인코딩 레이트를 결정하는 단계를 더 포함하는, 방법.
  10. 제 1 항에 있어서,
    상기 채널은 무선 채널이고,
    상기 방법은,
    상기 무선 채널의 스루풋을 추정하는 단계; 및
    상기 추정된 스루풋에 기초하여 결정된 비디오 패킷 사이즈로 상기 물리 비디오 버퍼로부터 비디오 패킷을 발생시키는 단계를 더 포함하는, 방법.
  11. 제 10 항에 있어서,
    오디오 패킷을 발생시키는 단계를 더 포함하며,
    상기 비디오 패킷 사이즈는 상기 추정된 스루풋 및 상기 오디오 패킷의 사이즈에 기초하여 결정되는, 방법.
  12. 제 11 항에 있어서,
    상기 오디오 패킷 및 상기 비디오 패킷에 기초하여 물리 계층 패킷을 발생시키는 단계, 및
    이동 무선 비디오 전화 컨퍼런스를 지원하기 위해 원격 디바이스에 상기 물리 계층 패킷을 송신하는 단계를 더 포함하는, 방법.
  13. 제 12 항에 있어서,
    상기 물리 계층 패킷은 실질적으로 cdma2000 1×EV-DO, Release 0, 표준에 적합한, 방법.
  14. 제 1 항에 있어서,
    상기 실제 인코딩 레이트에 기초하여 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하는 단계; 및
    상기 프레임 버짓에 기초하여 상기 프레임 내의 매크로블록에 rho 도메인값을 할당하는 단계를 더 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 rho 도메인값을 대응하는 양자화 파라미터 (QP) 값에 맵핑하여 상기 매크로블록의 각각에 인코딩 비트의 수를 할당하는 단계를 더 포함하는, 방법.
  16. 제 1 항에 있어서,
    상기 인코딩된 비디오의 일부가 임계값을 초과하는 시간의 주기 동안 상기 물리 비디오 버퍼에 있었던 경우에, 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 적어도 일부를 드롭핑하는 단계를 더 포함하는, 방법.
  17. 비디오 인코더;
    상기 비디오 인코더에 의해 인코딩된 비디오를 저장하는 물리 비디오 버퍼;
    채널을 통한 송신을 위해 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오를 제거하는 패킷 셰이퍼;
    타겟 인코딩 레이트에 대한 상기 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼; 및
    상기 물리 비디오 버퍼의 충만도 및 상기 가상 비디오 버퍼의 충만도에 기초하여 상기 인코딩된 비디오의 실제 인코딩 레이트를 제어하는 컨트롤러를 포함하는, 시스템.
  18. 제 17 항에 있어서,
    상기 채널은 변화하는 채널 상태를 표시하고,
    상기 패킷 셰이퍼는 상기 변화하는 채널 상태에 응답하여 시간에 따라 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 변화하는 양을 제거하는, 시스템.
  19. 제 17 항에 있어서,
    상기 컨트롤러는 상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 스킵핑 임계값 이상이면 비디오 프레임의 인코딩을 스킵핑하는, 시스템.
  20. 제 19 항에 있어서,
    상기 컨트롤러는,
    상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 상기 스킵핑 임계값 미만이면 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하고,
    상기 프레임 버짓에 기초하여 상기 실제 인코딩 레이트를 제어하는, 시스템.
  21. 제 20 항에 있어서,
    상기 컨트롤러는, 타겟 비트 레이트, 타겟 프레임 레이트, 상기 물리 비디오 버퍼의 충만도, 상기 가상 비디오 버퍼의 충만도, 및 상기 스킵핑 임계값에 기초하여 상기 프레임 버짓을 추정하는, 시스템.
  22. 제 21 항에 있어서,
    실질적으로 다음의 수학식,
    Wn=max(Wn-1 + Bn-1 - R/F, 0)
    [식 중, Wn 은 비디오 프레임 n에 대한 가상 비디오 버퍼의 충만도, Wn-1 은 비디오 프레임 n-1 에 대한 가상 비디오 버퍼의 충만도, Bn-1 은 비디오 프레임 n-1 에 할당된 실제 코딩 비트, R 은 타겟 비트 레이트, 및 F 는 타겟 프레임 레이트]
    에 기초하여 상기 가상 비디오 버퍼의 충만도를 결정하는 단계; 및
    실질적으로 다음의 수학식,
    Xn = max(w*Vn, Wn), 및
    Bn = R/F - Δ
    [식 중, Xn>Z*M 이면, Δ= Xn/F 이고, Xn<=Z*M 이면, Δ= Xn-Z*M 이고, Vn 은 비디오 프레임 n에 대한 물리 비디오 버퍼의 충만도, w는 양의 정수, M 은 스킵핑 임계값, 및 Z 은 계수]
    에 따라 상기 실제 인코딩 레이트를 결정하는 단계를 더 포함하는, 시스템.
  23. 제 17 항에 있어서,
    상기 컨트롤러는, 상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 상기 스킵핑 임계값 미만이면 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하고,
    상기 프레임 버짓에 기초하여 상기 실제 인코딩 레이트를 제어하는, 시스템.
  24. 제 23 항에 있어서,
    상기 컨트롤러는 타겟 비트 레이트, 타겟 프레임 레이트, 상기 물리 비디오 버퍼의 충만도, 상기 가상 비디오 버퍼의 충만도, 및 스킵핑 임계값에 기초하여 상기 프레임 버짓을 추정하는, 시스템.
  25. 제 24 항에 있어서,
    상기 컨트롤러는,
    실질적으로 다음의 수학식,
    Wn=max(Wn-1 + Bn-1 - R/F, 0)
    [식 중, Wn 은 비디오 프레임 n에 대한 가상 비디오 버퍼의 충만도, Wn-1 은 비디오 프레임 n-1 에 대한 가상 비디오 버퍼의 충만도, Bn-1 은 비디오 프레임 n-1 에 할당된 실제 코딩 비트, R 은 타겟 비트 레이트, 및 F 는 타겟 프레임 레이트]
    에 기초하여 상기 가상 비디오 버퍼의 충만도를 결정하고;
    실질적으로 다음의 수학식,
    Xn = max(w*Vn, Wn), 및
    Bn = R/F - Δ
    [식 중, Xn>Z*M 이면, Δ= Xn/F 이고, Xn<=Z*M 이면, Δ= Xn-Z*M 이고, Vn 은 비디오 프레임 n에 대한 물리 비디오 버퍼의 충만도, w는 양의 정수, M 은 스킵핑 임계값, 및 Z 은 계수]
    에 따라 상기 실제 인코딩 레이트를 결정하는, 시스템.
  26. 제 17 항에 있어서,
    상기 채널은 무선 채널이고,
    상기 패킷 셰이퍼는, 상기 무선 채널의 스루풋을 추정하고, 상기 추정된 스루풋에 기초하여 결정된 비디오 패킷 사이즈로 상기 물리 비디오 버퍼로부터 상기 비디오 패킷을 발생시키는, 시스템.
  27. 제 26 항에 있어서,
    오디오 패킷을 발생시키는 오디오 인코더를 더 포함하며,
    상기 비디오 패킷 사이즈는 상기 추정된 스루풋 및 상기 오디오 패킷의 사이즈에 기초하여 결정되는, 시스템.
  28. 제 27 항에 있어서,
    상기 오디오 패킷 및 상기 비디오 패킷에 기초하여 물리 계층 패킷을 발생시키고, 이동 무선 비디오 전화 컨퍼런스를 지원하기 위해 원격 디바이스에 상기 물리 계층 패킷을 송신하는 물리 계층 모듈을 더 포함하는, 시스템.
  29. 제 28 항에 있어서,
    상기 물리 계층 패킷은 실질적으로 cdma2000 1×EV-DO, Release 0, 표준에 적합한, 시스템.
  30. 제 17 항에 있어서,
    상기 컨트롤러는,
    상기 실제 인코딩 레이트에 기초하여 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하고;
    상기 프레임 버짓에 기초하여 상기 프레임 내의 매크로블록에 rho 도메인값을 할당하는, 시스템.
  31. 제 30 항에 있어서,
    상기 컨트롤러는 상기 rho 도메인값을 대응하는 양자화 파라미터 (QP) 값에 맵핑하여 상기 매크로블록의 각각에 인코딩 비트의 수를 할당하는, 시스템.
  32. 제 17 항에 있어서,
    상기 물리 비디오 버퍼는, 상기 인코딩된 비디오의 일부가 임계값을 초과하는 시간의 주기 동안 상기 물리 비디오 버퍼에 있었던 경우에, 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 적어도 일부를 드롭핑하는, 시스템.
  33. 비디오를 인코딩하는 수단;
    상기 인코딩된 비디오를 저장하는 물리 비디오 버퍼 수단;
    채널을 통한 송신을 위해 상기 물리 비디오 버퍼 수단으로부터의 상기 인코딩된 비디오로부터 비디오 패킷을 발생시키는 패킷 셰이핑 수단;
    타겟 인코딩 레이트에 대한 상기 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지하는 가상 버퍼 수단; 및
    상기 물리 비디오 버퍼의 충만도 및 상기 가상 비디오 버퍼의 충만도에 기초하여 상기 인코딩된 비디오의 실제 인코딩 레이트를 제어하는 컨트롤 수단을 포함하는, 시스템.
  34. 제 33 항에 있어서,
    상기 채널은 변화하는 채널 상태를 표시하고,
    상기 패킷 셰이핑 수단은 상기 변화하는 채널 상태에 응답하여 시간에 따라 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디오의 변화하는 양을 제거하는, 시스템.
  35. 제 33 항에 있어서,
    상기 컨트롤 수단은, 상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 스킵핑 임계값 이상이면 비디오 프레임의 인코딩을 스킵핑하는 수단을 포함하는, 시스템.
  36. 제 35 항에 있어서,
    상기 컨트롤 수단은, 상기 물리 비디오 버퍼의 충만도와 상기 가상 비디오 버퍼의 충만도 중 최대값이 상기 스킵핑 임계값 미만이면 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하는 수단, 및
    상기 프레임 버짓에 기초하여 상기 실제 인코딩 레이트를 제어하는 수단을 포함하는, 시스템.
  37. 제 36 항에 있어서,
    상기 프레임 버짓을 추정하는 수단은, 타겟 비트 레이트, 타겟 프레임 레이트, 상기 물리 비디오 버퍼의 충만도, 상기 가상 비디오 버퍼의 충만도, 및 상기 스킵핑 임계값에 기초하여 인코딩 비트의 수를 추정하는 수단을 포함하는, 시스템.
  38. 제 33 항에 있어서,
    상기 채널은 무선 채널이고,
    상기 패킷 셰이핑 수단은 상기 무선 채널의 스루풋을 추정하는 수단, 및 상기 추정된 스루풋에 기초하여 결정된 비디오 패킷 사이즈로 상기 물리 비디오 버퍼로부터 비디오 패킷을 발생시키는 수단을 포함하는, 시스템.
  39. 제 38 항에 있어서,
    오디오 패킷을 발생시키는 수단을 더 포함하며,
    상기 패킷 셰이핑 수단은 상기 추정된 스루풋 및 상기 오디오 패킷의 사이즈에 기초하여 상기 비디오 패킷 사이즈를 결정하는, 시스템.
  40. 제 38 항에 있어서,
    상기 오디오 패킷 및 상기 비디오 패킷에 기초하여 물리 계층 패킷을 발생시키는 수단, 및
    이동 무선 비디오 전화 컨퍼런스를 지원하기 위해 원격 디바이스에 상기 물리 계층 패킷을 송신하는 수단을 더 포함하는, 시스템.
  41. 제 40 항에 있어서,
    상기 물리 계층 패킷은 실질적으로 cdma2000 1×EV-DO, Release 0, 표준에 적합한, 시스템.
  42. 제 33 항에 있어서,
    상기 컨트롤러는,
    상기 실제 인코딩 레이트에 기초하여 상기 인코딩된 비디오의 프레임에 이용가능한 인코딩 비트의 수를 정의하는 프레임 버짓을 추정하는 수단;
    상기 프레임 버짓에 기초하여 상기 프레임 내의 매크로블록에 rho 도메인값을 할당하는 수단; 및
    상기 rho 도메인값을 대응하는 양자화 파라미터 (QP) 값에 맵핑하여 상기 매크로블록의 각각에 인코딩 비트의 수를 할당하는 수단을 포함하는, 시스템.
  43. 제 33 항에 있어서,
    상기 인코딩된 비디오의 일부가 임계값을 초과하는 시간의 주기 동안 상기 물리 비디오 버퍼 수단에 있었던 경우에 상기 물리 비디오 버퍼 수단으로부터 상기 인코딩된 비디오의 적어도 일부를 드롭핑하는 수단을 더 포함하는, 시스템.
  44. 하나 이상의 프로세서로 하여금,
    인코딩된 비디오를 물리 비디오 버퍼에 추가하고;
    채널을 통한 송신을 위해 상기 물리 비디오 버퍼로부터 상기 인코딩된 비디 오의 패킷을 제거하고;
    타겟 인코딩 레이트에 대한 상기 인코딩된 비디오의 양을 나타내는 가상 비디오 버퍼를 유지하며; 그리고
    상기 물리 비디오 버퍼의 충만도 및 상기 가상 비디오 버퍼의 충만도에 기초하여 상기 인코딩된 비디오의 실제 인코딩 레이트를 제어하게 하는 명령들을 포함하는, 컴퓨터-판독가능 매체.
KR1020087012751A 2005-10-27 2006-10-27 비디오 전화용 비디오 소스 레이트 제어 KR100961420B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US73161405P 2005-10-27 2005-10-27
US60/731,614 2005-10-27
US11/314,428 2005-12-20
US11/314,428 US8548048B2 (en) 2005-10-27 2005-12-20 Video source rate control for video telephony

Publications (2)

Publication Number Publication Date
KR20080067360A true KR20080067360A (ko) 2008-07-18
KR100961420B1 KR100961420B1 (ko) 2010-06-09

Family

ID=37964865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087012751A KR100961420B1 (ko) 2005-10-27 2006-10-27 비디오 전화용 비디오 소스 레이트 제어

Country Status (5)

Country Link
US (1) US8548048B2 (ko)
EP (1) EP1941739A2 (ko)
JP (1) JP2009514448A (ko)
KR (1) KR100961420B1 (ko)
WO (1) WO2007051156A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081091A (ko) * 2015-11-09 2018-07-13 톰슨 라이센싱 기본 스트림들로부터 디코딩된 비디오 콘텐츠를 디스플레이의 특성들에 적응시키기 위한 방법 및 디바이스

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US7975062B2 (en) 2004-06-07 2011-07-05 Sling Media, Inc. Capturing and sharing media content
US8346605B2 (en) 2004-06-07 2013-01-01 Sling Media, Inc. Management of shared media content
US7917932B2 (en) 2005-06-07 2011-03-29 Sling Media, Inc. Personal video recorder functionality for placeshifting systems
US8099755B2 (en) * 2004-06-07 2012-01-17 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
US9998802B2 (en) 2004-06-07 2018-06-12 Sling Media LLC Systems and methods for creating variable length clips from a media stream
CN103037254B (zh) 2004-06-07 2016-07-13 斯灵媒体公司 个人媒体广播系统
US7769756B2 (en) 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
EP1899814B1 (en) 2005-06-30 2017-05-03 Sling Media, Inc. Firmware update for consumer electronic device
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8548048B2 (en) 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
CN100415020C (zh) * 2005-10-31 2008-08-27 上海华为技术有限公司 一种高速物理下行共享信道的码资源分配方法
US8665967B2 (en) * 2006-02-15 2014-03-04 Samsung Electronics Co., Ltd. Method and system for bit reorganization and packetization of uncompressed video for transmission over wireless communication channels
US20070230461A1 (en) * 2006-03-29 2007-10-04 Samsung Electronics Co., Ltd. Method and system for video data packetization for transmission over wireless channels
US8175041B2 (en) * 2006-12-14 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of audiovisual data having data size adaptation
CN101578842B (zh) 2007-01-10 2014-03-05 高通股份有限公司 用于多媒体电话的依赖于内容和链路的编码自适应
US9686044B2 (en) * 2007-03-27 2017-06-20 Qualcomm Incorporated Rate matching with multiple code block sizes
US8477793B2 (en) 2007-09-26 2013-07-02 Sling Media, Inc. Media streaming device with gateway functionality
US8699808B2 (en) * 2007-10-15 2014-04-15 Chih-Ta Star Sung Method and apparatus of temporary image frame compression
US8295344B2 (en) 2007-10-22 2012-10-23 Broadcom Corporation Adaptive rate control for encoding of variable frame rate video sources
US8350971B2 (en) 2007-10-23 2013-01-08 Sling Media, Inc. Systems and methods for controlling media devices
NZ585905A (en) * 2007-12-05 2013-05-31 Ol2 Inc Witholding transmission of a streaming video frame to avoid exceeding maximum communication data rate
US8060609B2 (en) 2008-01-04 2011-11-15 Sling Media Inc. Systems and methods for determining attributes of media items accessed via a personal media broadcaster
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
US8176524B2 (en) * 2008-04-22 2012-05-08 Samsung Electronics Co., Ltd. System and method for wireless communication of video data having partial data compression
US8667279B2 (en) 2008-07-01 2014-03-04 Sling Media, Inc. Systems and methods for securely place shifting media content
US8001260B2 (en) 2008-07-28 2011-08-16 Vantrix Corporation Flow-rate adaptation for a connection of time-varying capacity
US20100027524A1 (en) * 2008-07-31 2010-02-04 Nokia Corporation Radio layer emulation of real time protocol sequence number and timestamp
US8381310B2 (en) 2009-08-13 2013-02-19 Sling Media Pvt. Ltd. Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
US8667163B2 (en) 2008-09-08 2014-03-04 Sling Media Inc. Systems and methods for projecting images from a computer system
KR100990041B1 (ko) * 2008-09-23 2010-10-29 한국전자통신연구원 단말 대 단말 간의 채널 용량 예측 장치 및 방법
US9191610B2 (en) 2008-11-26 2015-11-17 Sling Media Pvt Ltd. Systems and methods for creating logical media streams for media storage and playback
US8438602B2 (en) 2009-01-26 2013-05-07 Sling Media Inc. Systems and methods for linking media content
US20100226444A1 (en) * 2009-03-09 2010-09-09 Telephoto Technologies Inc. System and method for facilitating video quality of live broadcast information over a shared packet based network
US20100226428A1 (en) * 2009-03-09 2010-09-09 Telephoto Technologies Inc. Encoder and decoder configuration for addressing latency of communications over a packet based network
US8171148B2 (en) 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
US7975063B2 (en) 2009-05-10 2011-07-05 Vantrix Corporation Informative data streaming server
US8406431B2 (en) 2009-07-23 2013-03-26 Sling Media Pvt. Ltd. Adaptive gain control for digital audio samples in a media stream
US9479737B2 (en) 2009-08-06 2016-10-25 Echostar Technologies L.L.C. Systems and methods for event programming via a remote media player
US9565479B2 (en) 2009-08-10 2017-02-07 Sling Media Pvt Ltd. Methods and apparatus for seeking within a media stream using scene detection
US8799408B2 (en) 2009-08-10 2014-08-05 Sling Media Pvt Ltd Localization systems and methods
US8532472B2 (en) 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
US9525838B2 (en) 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media
US8966101B2 (en) 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US8314893B2 (en) 2009-08-28 2012-11-20 Sling Media Pvt. Ltd. Remote control and method for automatically adjusting the volume output of an audio device
US9015225B2 (en) 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
US8799485B2 (en) 2009-12-18 2014-08-05 Sling Media, Inc. Methods and apparatus for establishing network connections using an inter-mediating device
US8626879B2 (en) 2009-12-22 2014-01-07 Sling Media, Inc. Systems and methods for establishing network connections using local mediation services
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US8312164B2 (en) * 2010-04-14 2012-11-13 Adobe Systems Incorporated Media quality enhancement among connected media communication devices
ES2703005T3 (es) 2010-05-07 2019-03-06 Nippon Telegraph & Telephone Método de control de codificación de imágenes animadas, aparato de codificación de imágenes animadas y programa de codificación de imágenes animadas
RU2527740C2 (ru) * 2010-05-12 2014-09-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ управления кодированием видео, устройство кодирования видео и программа кодирования видео
US20120243602A1 (en) * 2010-09-23 2012-09-27 Qualcomm Incorporated Method and apparatus for pipelined slicing for wireless display
US8838680B1 (en) 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
US8520523B2 (en) * 2011-02-11 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) Devices and methods for managing quality of service for bearers depending on utilization
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US8730930B2 (en) * 2011-05-31 2014-05-20 Broadcom Corporation Polling using B-ACK for occasional back-channel traffic in VoWIFI applications
US9137551B2 (en) * 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
US8989277B1 (en) * 2011-11-03 2015-03-24 Xilinx, Inc. Reducing artifacts within a video processing system
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
CN103856543B (zh) * 2012-12-07 2019-02-15 腾讯科技(深圳)有限公司 一种视频处理方法、移动终端及服务器
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
KR101993418B1 (ko) * 2013-02-04 2019-06-26 삼성전자주식회사 휴대 단말기의 무선 통신 채널 운용 방법 및 시스템
KR20140117995A (ko) * 2013-03-27 2014-10-08 한국전자통신연구원 다중 사용자 영상 전송 장치 및 방법
US9407563B2 (en) 2013-08-12 2016-08-02 Qualcomm Incorporated Methods and apparatuses for adapting application uplink rate to wireless communications network
US9451489B2 (en) * 2013-11-07 2016-09-20 Qualcomm Incorporated Method and apparatus for LTE uplink throughput estimation
TWI496456B (zh) 2013-11-19 2015-08-11 Ind Tech Res Inst 畫面間成本計算方法及畫面間成本計算裝置
KR20150128151A (ko) * 2014-05-08 2015-11-18 삼성전자주식회사 비디오 스트리밍 방법 및 이를 지원하는 전자 장치
KR102274747B1 (ko) 2014-11-24 2021-07-07 삼성전자주식회사 코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템
US10127398B2 (en) 2015-09-18 2018-11-13 Rovi Guides, Inc. Methods and systems for implementing parental controls
US9992252B2 (en) * 2015-09-29 2018-06-05 Rgb Systems, Inc. Method and apparatus for adaptively compressing streaming video
US10069748B2 (en) 2015-12-14 2018-09-04 Mellanox Technologies Tlv Ltd. Congestion estimation for multi-priority traffic
US10523939B2 (en) * 2015-12-31 2019-12-31 Facebook, Inc. Dynamic codec adaption
US10069701B2 (en) 2016-01-13 2018-09-04 Mellanox Technologies Tlv Ltd. Flexible allocation of packet buffers
US10250530B2 (en) 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10353758B2 (en) * 2016-03-18 2019-07-16 Samsung Electronics Co., Ltd. Data coding methods for a communication between semiconductor chips
US10084716B2 (en) 2016-03-20 2018-09-25 Mellanox Technologies Tlv Ltd. Flexible application of congestion control measures
US10205683B2 (en) * 2016-03-28 2019-02-12 Mellanox Technologies Tlv Ltd. Optimizing buffer allocation for network flow control
US10387074B2 (en) 2016-05-23 2019-08-20 Mellanox Technologies Tlv Ltd. Efficient use of buffer space in a network switch
US10601714B2 (en) 2016-06-28 2020-03-24 Mellanox Technologies Tlv Ltd. Adaptive flow prioritization
GB201614356D0 (en) 2016-08-23 2016-10-05 Microsoft Technology Licensing Llc Media buffering
CN108093292B (zh) 2016-11-21 2020-09-11 阿里巴巴集团控股有限公司 用于管理缓存的方法、装置及系统
US10904591B2 (en) * 2016-12-28 2021-01-26 Google Llc Scheme for zero-copy adaptive bitrate video streaming
US10389646B2 (en) 2017-02-15 2019-08-20 Mellanox Technologies Tlv Ltd. Evading congestion spreading for victim flows
US10601946B2 (en) * 2017-02-23 2020-03-24 The Directv Group, Inc. Edge cache segment prefetching
US10645033B2 (en) 2017-03-27 2020-05-05 Mellanox Technologies Tlv Ltd. Buffer optimization in modular switches
US10425683B2 (en) * 2017-05-31 2019-09-24 Netflix, Inc. Temporal placement of a rebuffering event
GB2573484B (en) 2017-10-09 2022-08-03 Displaylink Uk Ltd Compensating for interruptions in a wireless connection
GB2568037B (en) * 2017-10-27 2022-08-03 Displaylink Uk Ltd Compensating for interruptions in a wireless connection
US10979744B2 (en) 2017-11-03 2021-04-13 Nvidia Corporation Method and system for low latency high frame rate streaming
US10320705B1 (en) * 2018-02-28 2019-06-11 Verizon Patent And Licensing Inc. Identifying video data included in network packets
EP3720133B1 (en) * 2019-04-05 2023-07-19 Nokia Solutions and Networks Oy Apparatus and method for real-time streaming of video
US11005770B2 (en) 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
US10999221B2 (en) 2019-07-02 2021-05-04 Mellanox Technologies Tlv Ltd. Transaction based scheduling
US11470010B2 (en) 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
CN112712817B (zh) * 2020-12-24 2024-04-09 惠州Tcl移动通信有限公司 一种声音过滤方法、移动设备及计算机可读存储介质
CN113630619A (zh) * 2021-08-12 2021-11-09 三星电子(中国)研发中心 节目录制方法和装置
CN114189712B (zh) * 2021-12-10 2024-01-16 眸芯科技(上海)有限公司 视频监控中支持解码帧率控制的虚拟vdp装置及应用
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device
CN116916113B (zh) * 2023-09-06 2023-12-22 联通(江苏)产业互联网有限公司 一种基于5g视频客服的数据流平滑处理方法

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774587A (en) 1987-06-02 1988-09-27 Eastman Kodak Company Still video transceiver processor
US5341374A (en) 1991-03-01 1994-08-23 Trilan Systems Corporation Communication network integrating voice data and video with distributed call processing
JP2861518B2 (ja) 1991-09-03 1999-02-24 日本電気株式会社 適応多重化方式
JP3002348B2 (ja) 1992-11-30 2000-01-24 シャープ株式会社 画像通信システム
US5367523A (en) 1993-08-26 1994-11-22 International Business Machines Corporation Adaptive rate-based congestion and flow control in packet communications networks
KR100330292B1 (ko) 1993-09-21 2002-03-27 이데이 노부유끼 데이타 기록 매체
US5541919A (en) 1994-12-19 1996-07-30 Motorola, Inc. Multimedia multiplexing device and method using dynamic packet segmentation
US5784362A (en) 1995-04-17 1998-07-21 Telefonaktiebolaget Lm Ericsson Temporary frame identification for ARQ in a reservation-slotted-ALOHA type of protocol
US5802068A (en) 1995-06-30 1998-09-01 Nippon Steel Corporation Multiplexing apparatus of a plurality of data having different bit rates
US5768533A (en) 1995-09-01 1998-06-16 National Semiconductor Corporation Video coding using segmented frames and retransmission to overcome channel errors
JP3068002B2 (ja) 1995-09-18 2000-07-24 沖電気工業株式会社 画像符号化装置、画像復号化装置及び画像伝送システム
TW305043B (ko) 1995-09-29 1997-05-11 Matsushita Electric Ind Co Ltd
US6002802A (en) 1995-10-27 1999-12-14 Kabushiki Kaisha Toshiba Video encoding and decoding apparatus
US5790538A (en) 1996-01-26 1998-08-04 Telogy Networks, Inc. System and method for voice Playout in an asynchronous packet network
TW358277B (en) 1996-05-08 1999-05-11 Matsushita Electric Ind Co Ltd Multiplex transmission method and system, and audio jitter absorbing method used therein
WO1998002002A1 (en) 1996-07-05 1998-01-15 Nippon Telegraph And Telephone Corporation Image communication system and method
US5838678A (en) 1996-07-24 1998-11-17 Davis; Joseph W. Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back
US6366614B1 (en) 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
DE19648077C2 (de) 1996-11-20 1998-12-03 Nokia Mobile Phones Ltd Verfahren zur Einstellung der Zugriffsbeharrlichkeit einer Mobilstation in einem zellularen Mobilfunknetz
US6633609B1 (en) 1996-12-24 2003-10-14 Intel Corporation Method and apparatus for bit rate control in a digital video environment for arbitrary bandwidth
US5969764A (en) * 1997-02-14 1999-10-19 Mitsubishi Electric Information Technology Center America, Inc. Adaptive video coding method
US6404776B1 (en) 1997-03-13 2002-06-11 8 × 8, Inc. Data processor having controlled scalable input data source and method thereof
DE69841717D1 (de) 1997-04-17 2010-07-22 Ntt Docomo Inc Mobiles Kommunikationssystem, Basisstation und Mobilstation
CA2262894C (en) 1997-06-19 2004-08-03 Kabushiki Kaisha Toshiba Information data multiplexing transmission system, multiplexer and demultiplexer used therefor, and error correcting encoder and decoder
US6377809B1 (en) 1997-09-16 2002-04-23 Qualcomm Incorporated Channel structure for communication systems
US6154489A (en) 1998-03-30 2000-11-28 Motorola, Inc. Adaptive-rate coded digital image transmission
US6385345B1 (en) * 1998-03-31 2002-05-07 Sharp Laboratories Of America, Inc. Method and apparatus for selecting image data to skip when encoding digital video
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
TW376497B (en) 1998-05-26 1999-12-11 Koninkl Philips Electronics Nv Transmission system for transmitting a main signal and an auxiliary signal
CA2238795A1 (en) 1998-05-28 1999-11-28 Newbridge Networks Corporation Er information acceleration in abr traffic
US6584509B2 (en) 1998-06-23 2003-06-24 Intel Corporation Recognizing audio and video streams over PPP links in the absence of an announcement protocol
JP2000023240A (ja) 1998-06-30 2000-01-21 Matsushita Electric Ind Co Ltd 無線通信装置及び無線通信方法
US6389034B1 (en) 1998-09-04 2002-05-14 Nortel Networks Limited System for providing stream based and packet based services
US6263021B1 (en) * 1998-09-18 2001-07-17 Sarnoff Corporation Treating non-zero quantized transform coefficients as zeros during video compression processing
US6108795A (en) 1998-10-30 2000-08-22 Micron Technology, Inc. Method for aligning clock and data signals received from a RAM
US6629318B1 (en) 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
CA2257007A1 (en) 1998-12-24 2000-06-24 Newbridge Networks Corporation Explicit rate flow control for multicast connections
JP2000324171A (ja) 1999-05-14 2000-11-24 Namco Ltd データ転送装置及びデータ転送方法、並びにデータ配布方法
JP3841256B2 (ja) 2000-02-15 2006-11-01 三菱電機株式会社 通信システム及び通信方法及び送信端末
JP2001238256A (ja) 2000-02-21 2001-08-31 Hitachi Kokusai Electric Inc 可変速度符号化システム
DE60017356T2 (de) 2000-03-02 2005-06-02 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragung über ein unzuverlässiges Netz
KR100833222B1 (ko) 2000-03-29 2008-05-28 삼성전자주식회사 멀티미디어 송수신 장치 및 방법
US6694469B1 (en) 2000-04-14 2004-02-17 Qualcomm Incorporated Method and an apparatus for a quick retransmission of signals in a communication system
US6747991B1 (en) 2000-04-26 2004-06-08 Carnegie Mellon University Filter and method for adaptively modifying the bit rate of synchronized video and audio streams to meet packet-switched network bandwidth constraints
JP3669281B2 (ja) 2000-04-27 2005-07-06 三菱電機株式会社 符号化装置および符号化方法
CN1322759C (zh) 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
US6999432B2 (en) 2000-07-13 2006-02-14 Microsoft Corporation Channel and quality of service adaptation for multimedia over wireless networks
US6862298B1 (en) 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US6891822B1 (en) 2000-09-08 2005-05-10 Sharewave, Inc. Method and apparatus for transferring isocronous data within a wireless computer network
WO2002032082A1 (fr) 2000-10-13 2002-04-18 Sony Corporation Systeme de commande de la vitesse de communication de donnees, appareil emetteur et appareil recepteur
US7304951B2 (en) 2000-11-21 2007-12-04 North Carolina State University Methods and systems for rate-based flow control between a sender and a receiver
US7006510B2 (en) 2001-01-17 2006-02-28 Optibase Ltd. Method of clock mismatch and drift compensation for packet networks
GB2398975B (en) 2001-02-01 2005-02-23 Fujitsu Ltd Communications systems
US7058085B2 (en) 2001-03-14 2006-06-06 Nortel Networks Limited Method and apparatus for transmitting data over a network within a specified time limit
KR100425253B1 (ko) 2001-04-18 2004-03-30 주식회사 현대시스콤 무선통신 시스템에서의 순방향 패킷 송수신 방법
US7054316B2 (en) 2001-04-25 2006-05-30 Nokia Corporation Method and system for interlayer control between re-sequencing and retransmission entities
US7342901B1 (en) 2001-05-01 2008-03-11 Nortel Networks Limited Medium access control (MAC) protocol for a wireless communication system
US6920598B2 (en) 2001-05-21 2005-07-19 Lucent Technologies Inc. System and method for error recovery using NAKs
JP2002354141A (ja) 2001-05-25 2002-12-06 Matsushita Electric Ind Co Ltd ビデオフォンおよび遠隔医療装置
US7193966B2 (en) 2001-06-25 2007-03-20 Telefonakitebolaget Lm Ericsson (Publ) Triggered packet data rate change in a communication system
US7269139B1 (en) 2001-06-27 2007-09-11 Cisco Technology, Inc. Method and apparatus for an adaptive rate control mechanism reactive to flow control messages in a packet switching system
US6741603B2 (en) 2001-07-09 2004-05-25 Overture Networks, Inc. Use of a circular buffer to assure in-order delivery of packets
US7068086B2 (en) 2001-07-27 2006-06-27 Advantest Corp. Phase correction circuit
US7206285B2 (en) 2001-08-06 2007-04-17 Koninklijke Philips Electronics N.V. Method for supporting non-linear, highly scalable increase-decrease congestion control scheme
US6865374B2 (en) 2001-09-18 2005-03-08 Koninklijke Philips Electronics N.V. Video recovery system and method
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US20050013244A1 (en) 2001-12-14 2005-01-20 Parlos Alexander G System for actively controlling distributed applications
JP3606259B2 (ja) 2002-01-16 2005-01-05 ソニー株式会社 通信装置とその方法、ならびにプログラムとその記録媒体
JP4467984B2 (ja) 2002-01-18 2010-05-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオのコード化
EP1335289A1 (en) 2002-02-07 2003-08-13 Siemens Aktiengesellschaft Method for software downloads in a radio communications system
JP3900413B2 (ja) 2002-02-14 2007-04-04 Kddi株式会社 映像情報伝送方式およびプログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
JP3490425B2 (ja) 2002-03-14 2004-01-26 松下電器産業株式会社 受信装置及び受信方法
US7496086B2 (en) 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
JP4029670B2 (ja) 2002-06-11 2008-01-09 日本電気株式会社 無線アクセスにおける輻輳制御方法並びにシステム
JP3730974B2 (ja) 2002-06-14 2006-01-05 松下電器産業株式会社 メディア伝送方法及びその送信装置
KR20030095995A (ko) 2002-06-14 2003-12-24 마츠시타 덴끼 산교 가부시키가이샤 미디어 전송방법 및 그 송신장치 및 수신장치
GB0229396D0 (en) 2002-12-17 2003-01-22 British Telecomm Signal processing
US20060233201A1 (en) 2002-12-18 2006-10-19 Hartmut Wiesenthal Adaptive encoding of digital multimedia information
JP2004208001A (ja) 2002-12-25 2004-07-22 Sharp Corp 無線通信システム、無線通信方法、無線通信プログラム及びプログラム記録媒体
JP2004253883A (ja) 2003-02-18 2004-09-09 Nec Corp 音声・画像リアルタイム通信におけるビットレート制御を実行するデータ通信装置
US7551588B2 (en) 2003-03-06 2009-06-23 Nortel Networks Limited Autonomous mode transmission from a mobile station
SE0301048D0 (sv) 2003-04-07 2003-04-07 Ericsson Telefon Ab L M RLC window reconfiguration
JPWO2004093446A1 (ja) 2003-04-17 2006-07-13 富士通株式会社 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法
JP3943558B2 (ja) 2003-05-14 2007-07-11 株式会社エヌ・ティ・ティ・ドコモ パケット通信方法及びパケット通信システム。
US7477604B2 (en) 2003-05-14 2009-01-13 Ntt Docomo, Inc. Packet communications system
JP2004350227A (ja) 2003-05-26 2004-12-09 Ntt Communications Kk ビデオ会議システムにおける会議クライアント装置及びそのプログラム
US20040252761A1 (en) 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
US7050397B2 (en) 2003-07-02 2006-05-23 Nokia Corporation Apparatus, and associated method, for facilitating retransmission of data packets in a packet radio communication system that utilizes a feedback acknowledgement scheme
US7263067B2 (en) 2003-07-15 2007-08-28 Nokia Siemans Networks Oy Method and apparatus for accelerating throughput in a wireless or other telecommunication system
JP4176576B2 (ja) 2003-08-01 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ データ流入量制御方法、基地局及び制御局
US7684408B2 (en) 2003-09-30 2010-03-23 Mitsubishi Denki Kabushiki Kaisha Communication mode control method, mobile communication system, base station control apparatus, base station, and mobile communication terminal
EP1679910A4 (en) 2003-10-17 2011-09-14 Nec Corp SIGNALING METHOD, SYSTEM, BASE STATION AND MOBILE STATION
US20050249231A1 (en) 2003-11-25 2005-11-10 Asif Khan Methods and systems for reliable distribution of media over a network
US7376083B2 (en) 2003-12-09 2008-05-20 International Business Machines Corporation Apparatus and method for modeling queueing systems with highly variable traffic arrival rates
US7197026B2 (en) 2003-12-23 2007-03-27 Nokia Corporation Method and system for RLP optimization
JP2005192073A (ja) 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd マルチメディアデータ通信方法および装置
US20050152320A1 (en) 2004-01-08 2005-07-14 Interdigital Technology Corporation Wireless communication method and apparatus for balancing the loads of access points by controlling access point transmission power levels
US7453938B2 (en) 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
JP4562402B2 (ja) 2004-02-20 2010-10-13 アルパイン株式会社 音声データの非同期通信システムおよびその通信方法
WO2005089158A2 (en) 2004-03-16 2005-09-29 Snowshore Networks, Inc. Jitter buffer management
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
KR100550567B1 (ko) 2004-03-22 2006-02-10 엘지전자 주식회사 무선 네트워크망을 통해 통신하는 서버 시스템 및 그동작방법
JP3950865B2 (ja) 2004-03-30 2007-08-01 Necアクセステクニカ株式会社 Atm通信システム
KR101071816B1 (ko) 2004-04-02 2011-10-11 엘지전자 주식회사 무선 패킷 통신 시스템에서의 업링크 패킷 스케쥴링 방법
JP4526294B2 (ja) 2004-04-15 2010-08-18 シャープ株式会社 ストリームデータ送信装置、受信装置、プログラムを記録した記録媒体、およびシステム
US7424026B2 (en) 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
EP1751956B1 (en) 2004-05-13 2011-05-04 Qualcomm, Incorporated Delivery of information over a communication channel
CN103037254B (zh) 2004-06-07 2016-07-13 斯灵媒体公司 个人媒体广播系统
KR20050121067A (ko) 2004-06-21 2005-12-26 삼성전자주식회사 무선 채널에 의한 무선 통신 시스템 및 그의 무선 통신 방법
US7606427B2 (en) * 2004-07-08 2009-10-20 Qualcomm Incorporated Efficient rate control techniques for video encoding
KR100608061B1 (ko) 2004-07-12 2006-08-02 삼성전자주식회사 전송 스트림 생성을 위한 다중화 방법 및 그 장치
US7551647B2 (en) 2004-07-19 2009-06-23 Qvidium Technologies, Inc. System and method for clock synchronization over packet-switched networks
EP1628446B1 (en) 2004-08-18 2007-11-14 Infineon Technologies AG Method for transmitting information through a communication link and respective transmitting device and communication system
MX2007002483A (es) 2004-08-30 2007-05-11 Qualcomm Inc Memoria intermedia sin oscilacion adaptiva para voz sobre ip.
US7606303B2 (en) 2004-09-28 2009-10-20 General Instrument Corporation Method and apparatus to detect anchor frames from digital video streams
JP2006115354A (ja) 2004-10-15 2006-04-27 Ntt Docomo Inc 移動端末、制御装置及び移動通信方法
US7925271B2 (en) 2004-11-09 2011-04-12 Spyder Navigations L.L.C. Apparatus and method for arbitrary data rate ramp up after overload on wireless interface
JP2006222822A (ja) 2005-02-14 2006-08-24 Hitachi Ltd ハンドオーバシステム
US7492710B2 (en) 2005-03-31 2009-02-17 Intel Corporation Packet flow control
US7894489B2 (en) 2005-06-10 2011-02-22 Symmetricom, Inc. Adaptive play-out buffers and adaptive clock operation in packet networks
US20070019931A1 (en) 2005-07-19 2007-01-25 Texas Instruments Incorporated Systems and methods for re-synchronizing video and audio data
US7701851B2 (en) 2005-07-20 2010-04-20 Vidyo, Inc. System and method for the control of the transmission rate in packet-based digital communications
CN101366306B (zh) 2005-09-21 2012-07-11 Lg电子株式会社 用于在多载波无线网络中复用多个反向反馈信道的方法和装置
US8102878B2 (en) 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8548048B2 (en) 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8406309B2 (en) 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8514711B2 (en) 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8842555B2 (en) 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
JP4891392B2 (ja) 2006-04-13 2012-03-07 ドルビー ラボラトリーズ ライセンシング コーポレイション 無線処理システム装置のキュー長の推定および無線ネットワークにおける信号受信品質の推定
US8848618B2 (en) 2006-08-22 2014-09-30 Qualcomm Incorporated Semi-persistent scheduling for traffic spurts in wireless communication
US20080056125A1 (en) 2006-09-06 2008-03-06 Nokia Corporation Congestion control in a wireless network
CN101578842B (zh) 2007-01-10 2014-03-05 高通股份有限公司 用于多媒体电话的依赖于内容和链路的编码自适应
KR100787314B1 (ko) 2007-02-22 2007-12-21 광주과학기술원 미디어내 동기화를 위한 적응형 미디어 재생 방법 및 장치
JP5339697B2 (ja) 2007-08-14 2013-11-13 キヤノン株式会社 送信装置、送信方法、及びコンピュータプログラム
US8797850B2 (en) 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081091A (ko) * 2015-11-09 2018-07-13 톰슨 라이센싱 기본 스트림들로부터 디코딩된 비디오 콘텐츠를 디스플레이의 특성들에 적응시키기 위한 방법 및 디바이스
US11711569B2 (en) 2015-11-09 2023-07-25 Interdigital Vc Holdings, Inc. Method and device for adapting the video content decoded from elementary streams to the characteristics of a display

Also Published As

Publication number Publication date
WO2007051156A2 (en) 2007-05-03
EP1941739A2 (en) 2008-07-09
WO2007051156A3 (en) 2007-11-01
JP2009514448A (ja) 2009-04-02
US8548048B2 (en) 2013-10-01
US20070097257A1 (en) 2007-05-03
KR100961420B1 (ko) 2010-06-09

Similar Documents

Publication Publication Date Title
KR100961420B1 (ko) 비디오 전화용 비디오 소스 레이트 제어
JP5661678B2 (ja) テレビ電話のためのビデオパケット整形
CA2651513C (en) Video rate adaptation to reverse link conditions
JP3900413B2 (ja) 映像情報伝送方式およびプログラム
CA2565977C (en) Delivery of information over a communication channel
EP2415234B1 (en) Adaptive bitrate management for streaming media over packet networks
US7729391B2 (en) Transmitting device with discard control of specific media data
JP2005526455A (ja) 仮想的な受信バッファを使用してチャネル伝送レートの変動を吸収する伝送方法
WO2007078358A2 (en) Wireless video transmission system
KR100924309B1 (ko) 시간확장성과 버퍼상태판단을 통한 품질 적응적 멀티미디어 데이터 스트리밍 방법 및 시스템
CN101341756A (zh) 用于视频电话的视频源速率控制
Semsarzadeh et al. An adaptive rate control for faster bitrate shaping in x264 based video conferencing
JP2003116133A (ja) 動画像圧縮符号化伝送品質制御方式および方法
Shih et al. An integrated rate control scheme for TCP-friendly MPEG-4 video transmission
KR100698174B1 (ko) 네트워크 상에서 데이터의 유효 전송율 추정 방법 및데이터 전송 시스템
KR20040047010A (ko) 영상 전화 시스템의 비트율 조절방법
KR20040046896A (ko) 영상 전화 시스템의 패킷 단위 비트율 조절방법

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
LAPS Lapse due to unpaid annual fee