KR101080237B1 - 클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체 - Google Patents

클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체 Download PDF

Info

Publication number
KR101080237B1
KR101080237B1 KR1020047008811A KR20047008811A KR101080237B1 KR 101080237 B1 KR101080237 B1 KR 101080237B1 KR 1020047008811 A KR1020047008811 A KR 1020047008811A KR 20047008811 A KR20047008811 A KR 20047008811A KR 101080237 B1 KR101080237 B1 KR 101080237B1
Authority
KR
South Korea
Prior art keywords
computer
video stream
network
parameters
modifying
Prior art date
Application number
KR1020047008811A
Other languages
English (en)
Other versions
KR20040074997A (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 KR20040074997A publication Critical patent/KR20040074997A/ko
Application granted granted Critical
Publication of KR101080237B1 publication Critical patent/KR101080237B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number

Landscapes

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

Abstract

비디오 서버(VS)(100)는 파라미터들의 값들에 따라 비디오 스트림을 인코드하고 이 비디오 스트림을 네트워크(200)를 거쳐, 사용자에게로의 프리젠테이션을 위해 수신된 비디오 스트림을 디코드하는 비디오 클라이언트(VC)시스템(300)으로 전송한다. 비디오 스트림이 수신됨에 따라, VC 시스템(300)은 계속해서 이 데이터를 VS(100)에 보내는 적어도 네트워크(200)의 조건에 관한 데이터를 모은다. VS(100)는 VC 시스템(300)으로부터 수신된 데이터에 기초한 파라미터들의 값들을 수정하고, 한편 VC 시스템(300)은 비디오 스트림의 인코딩을 수정한다.

Description

클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체{SYSTEM AND METHOD FOR MODIFYING A VIDEO STREAM BASED ON A CLIENT OR NETWORK ENVIRONMENT, SYSTEM AND METHOD FOR FACILITATING A VIDEO STREAM AND A COMPUTER USABLE MEDIUM}
본 출원은 2001년 12월 15일자로 출원된 미국 가출원 60/341,672호의 우선권을 주장하는 것으로, 여기에 본 출원의 참조로서 병합되어 있다.
여기에 기재된 본 발명은 비디오 스트림을 데이터 통신 네트워크를 거쳐 공급하는 시스템 및 방법에 관한 것이다.
네트워크를 통해 수신된 비디오 스트림에 기초한 비디오의 클라이언트 디바이스에서의 프리젠테이션의 품질은, 상기 네트워크에서 이용 가능한 대역폭에 의해 제한될 수 있다. 네트워크가 혼잡하면 네트워크에 의해 운반된 데이터 전송으로부터 데이터가 누락될 수 있다. 따라서, 네트워크가 혼잡하게 되면, 네트워크에 의해 운반되는 비디오 스트림은 프레임 손실을 겪을 수 있고, 이로 인해 상기 비디오 스트림에 기초하여 나타난 비디오 품질이 저하된다.
또한, 네트워크를 통해 수신된 비디오 스트림에 기초한 비디오의 클라이언트 디바이스에서의 프리젠테이션의 품질은 비디오 스트림을 디코드하는 클라이언트 디바이스의 능력에 의해 제한될 수 있다. 클라이언트 디바이스가 수신되는 비디오 스 트림을 충분히 디코드하는 능력이 결여되면, 사용하지 않은 데이터는 낭비된 네트워크 대역폭에 대응하게 된다.
본 발명은 하나 또는 그 이상의 파라미터들에 따라 인코드되고, 네트워크를 통해 인코딩 프로세스 동안 상기 네트워크의 상태들에 기초하여 동적으로 수정될 컴퓨터에 전송되는 비디오 스트림과 상기 비디오 스트림을 디코드하는 컴퓨터의 능력을 제공한다. 본 발명은 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고 네트워크를 통해 공급되는 비디오 스트림을 수정하는 방법, 시스템, 및 컴퓨터 프로그램 산물을 제공한다. 먼저, 적어도 비디오 스트림을 전달하는 네트워크의 능력에 관련된 데이터가 획득된다. 그 다음, 비디오 스트림이 인코드될 때 사용되는 하나 또는 그 이상의 파라미터들의 값들이 상기 획득된 데이터에 기초하여 수정된다.
본 발명의 일 실시예에서, 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는 비디오 스트림은 네트워크를 통해 컴퓨터에 공급된다. 적어도 비디오 스트림을 전달하는 네트워크의 능력과, 이 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터가 획득된다. 그 다음, 비디오 스트림이 인코드되는 하나 또는 그 이상의 파라미터들의 값들은 상기 획득된 데이터에 기초하여 수정된다.
본 발명의 일 실시예에 따르면, 비디오 스트림이 인코드될 때 사용되는 하나 또는 그 이상의 파라미터들은 획득된 데이터를 기초로 하여 수정되는 프레임 해상도를 포함한다.
본 발명의 또다른 실시예에 따르면, 비디오 스트림이 인코드될 때 사용되는 하나 또는 그 이상의 파라미터들은 획득된 데이터를 기초로 하여 수정되는 프레임 속도(rate)를 포함한다.
본 발명의 또다른 실시예에 따르면, 비디오 스트림을 컴퓨터에 전달하는 네트워크의 능력에 관련되고 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터는 컴퓨터로부터 수신된 RTCP 패킷들을 통해 획득된다.
본 발명의 일 실시예에서, 비디오 스트림을 컴퓨터에 전달하는 네트워크의 능력에 관련되고 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터는, 컴퓨터에 공급되는 비디오 스트림을 디코드하기 위해 컴퓨터에서 이용 가능한 컴퓨터 프로세서 성능(power)을 나타내는 수치를 포함한다.
본 발명의 또다른 실시예에서, 비디오 스트림을 컴퓨터에 전달하는 네트워크의 능력에 관련되고 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터는 컴퓨터에 네트워크를 통해 비디오 스트림을 공급하는 것과 연관된 패킷 손실을 나타내는 수치를 포함한다.
본 발명의 또다른 실시예에서, 비디오 스트림을 컴퓨터에 전달하는 네트워크의 능력에 관련되고 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터는 컴퓨터에 네트워크를 통해 비디오 스트림을 공급하는 것과 연관된 송신된 바이트와 수신된 바이트들을 나타내는 수치를 포함한다.
본 발명의 또다른 실시예에 따르면, 비디오 스트림을 컴퓨터에 전달하는 네트워크의 능력에 관련되고, 비디오 스트림을 디코드하는 컴퓨터의 능력에 관련된 데이터는 컴퓨터에 네트워크를 통해 비디오 스트림을 공급하는 것과 연관된 비트 에러율을 나타내는 수치를 포함한다.
본 발명은 한정적이 아닌 예시적인 의도를 가진 첨부 도면들의 그림으로 설명되고, 여기서 동일한 참조 부호들은 동일하거나 대응하는 부분들을 가리킨다.
도 1은 본 발명의 일 실시예와 본 발명의 일 실시예가 동작하는 환경을 도시하는 블록도.
도 2는 미리 한정된 데이터 범위들과 대응하는 파라미터 값들의 예를 도시하는 표.
도 3은 본 발명의 동작 실시예를 도시하는 흐름도; 및
도 4는 본 발명의 또다른 동작 실시예를 도시하는 흐름도.
본 발명에 따른 방법, 시스템, 및 소프트웨어 프로그램들을 포함하는 제조물의 바람직한 실시예를 도면을 참조하여 설명한다.
도 1에 도시된 바와 같이, 비디오 서버("VS") 시스템(100)은 네트워크(200)를 통해 비디오 클라이언트("VC") 시스템(300)과 통신한다. VS 시스템(100)은 (a)하나 또는 그 이상의 파라미터들에 따라 비디오 스트림을 인코드하는 것, (b)네트워크를 통해 또다른 컴퓨터에 인코드된 스트림을 전송하는 것, (c) 네트워크와 다른 컴퓨터에서의 조건들에 관한 데이터를 수신하는 것, 및 (d) 수신된 데이터에 기초하여 하나 또는 그 이상의 파라미터들을 수정하고, 이를 통해 비디오 스트림의 인코딩을 수정하는 것을 할 수 있는 임의의 컴퓨터 시스템을 포함한다. VS 시스템(100)은 상기 기능들을 수행하는 컴퓨터 코드를 포함할 수 있다.
본 발명의 일 실시예에서, VS 시스템(100)은 비디오 인코딩 및 전송("VET") 시스템(110)과 비디오 인코딩 제어("VEC") 시스템(120)을 포함한다. VET 시스템(100)은 전술한 인코딩 및 전송 기능들을 수행할 수 있는 임의의 컴퓨터 시스템을 포함하고, 그 기능들을 수행하기 위한 컴퓨터 코드를 포함할 수 있다. 예를 들어, VET 시스템(100)은 예를 들어 프레임 해상도와 프레임 속도를 포함하는 하나 또는 그 이상의 파라미터들에 따라, MPEG과 H.263과 같은 임의의 알려진 포맷의 비디오 스트림을 인코드하고, 실시간 스트리밍(Streaming) 프로토콜(RTSP), 실시간 전달(Transport) 프로토콜(RTP), 및 실시간 제어(Control) 프로토콜(RTCP)과 같은 스트리밍 데이터의 전달에 관련된 프로토콜과 함께 IP, TCP/IP 및 UDP 프로토콜들과 같은 알려진 기술들을 이용하여 네트워크를 통해 비디오 스트림을 전송할 수 있는 임의의 컴퓨터 시스템을 포함할 수 있다. 전술한 하나 또는 그 이상의 파라미터들은, 예를 들어 메모리에 저장될 수 있어, VEC 시스템(120)과 같은 다른 컴퓨터 시스템에 의해 수정되고 액세스될 수 있다.
VEC 시스템(120)은 전술한 수신 및 수정 기능들을 수행할 수 있는 임의의 컴퓨터 시스템을 포함하고, 그 기능들을 수행하기 위한 컴퓨터 코드를 포함할 수 있다. 예를 들어, VEC 시스템(120)은 전송된 비디오 스트림이 통과되는 네트워크의 상태와 상기 비디오 스트림을 수신하는 컴퓨터로부터 수신된 RTCP 패킷들 내에 포함된 애플리케이션 특정 데이터로서 상기 비디오 스트림을 수신하는 컴퓨터의 상태 들에 관한 데이터를 수신하고, 비디오 스트림이 수신된 데이터에 대한 상기 미리 정해진 범위들과 미리 정해진 범위들에 대응하는 미리 정해진 파라미터 값들의 표에 기초하여 인코드될 때 사용되는 하나 또는 그 이상의 파라미터들을 수정할 수 있는 임의의 컴퓨터 시스템을 포함할 수 있다.
도 2는 수신된 데이터에 대한 미리 정해진 범위들과 상기 미리 정해진 범위들에 대응하는 미리 정해진 파라미터 값들의 예시적인 표를 도시하고 있다. 도 2의 예에서, 표의 제 1 열은 더 아래에 기술된 미리 정해진 백분율 범위들과 같은 이용 가능한 CPU 성능을 나타낸다. 표의 제 2 열은 이용 가능한 미리 정해진 CPU 성능의 백분율 범위들에 대응하는 미리 정해진 프레임 해상도를 나타낸다. 따라서, 더 아래에 기술된 바와 같이, 예를 들어 60%의 이용 가능한 CPU 성능을 수신된 데이터가 가리킨다면, VEC 시스템(120)은 352×288의 프레임 해상도가 수신된 데이터를 포함하는 미리 정해진 범위에 대응하는지를 결정하기 위해 도 2의 표를 참고할 수 있다. VET 시스템(110)이 비디오 스트림을 인코드하고 있는 현재 프레임 해상도가 상이하다면, VEC 시스템(120)은 프레임 해상도 파라미터를 352×288로 수정하여 VET 시스템(110)으로 하여금 그 프레임 해상도로 비디오 스트림을 인코드하게 한다.
하기에 추가로 기술된 바와 같이, VEC 시스템(120)에 의해 수신된 데이터의 다른 타입들과 관련하여 유사한 표들이 사용될 수 있는 점을 이해해야 한다. 또한, 도 2의 도시된 값들은 단지 예시적인 것으로, 이 표에서의 값들은, 이용 가능한 CPU 성능 이외에 VEC 시스템(120)에 의해 수신된 다른 타입의 데이터와 관련된 유사한 표들에서 사용될 수 있는 값들과 함께, 단순히 예시적인 것이고 본 발명의 사 용자와 구현자에 있어서의 설계 선택 문제로서 변동될 수 있는 점을 이해해야 한다.
네트워크(200)는 비디오 스트림과, 관련된 제어 데이터를 전달할 수 있는 임의의 통신 네트워크를 포함한다. 예를 들어, 네트워크(200)는 LAN, WAN 또는 인터넷을 포함할 수 있다.
VC 시스템(300)은 (a) 네트워크를 통해 비디오 스트림을 수신하고 사용자에게로의 프리젠테이션을 위해 수신된 비디오 스트림을 디코딩하는 것, (b) (ⅰ) 비디오 스트림이 수신되는 네트워크에서의 조건들과 (ⅱ) 수신되고 있는 비디오 스트림을 디코드하기 위해, VC 시스템(300) 내에서 이용 가능한 자원들에 관한 데이터를 모으는 것, 및 (c) VC 시스템(300)에 의해 수신되고 있는 비디오 스트림을 전송하는 컴퓨터 시스템에 상기 모여진 데이터를 전송하는 것을 할 수 있는 임의의 컴퓨터 시스템을 포함한다. VC 시스템(300)은 상기 기능들을 수행하는 컴퓨터 코드를 포함할 수 있다.
본 발명의 일 실시예에서, VC 시스템(300)은 비디오 수신 및 디코딩("VRD") 시스템(310)과 조건 보고("CR") 시스템(320)을 포함한다. VRD 시스템(310)은 네트워크를 통해 비디오 스트림들을 수신하고, 사용자로의 프리젠테이션을 위해 수신된 비디오 스트림들을 디코드할 수 있는 임의의 컴퓨터 시스템을 포함한다. 예를 들어, VRD 시스템(310)은 RealNetwork사의 RealOneTM 플레이어 또는 마이크로소프트사의 Windows Media PlayerTM 와 같은 알려진 비디오 스트리밍 클라이언트 소프트웨어를 포함할 수 있다.
CR 시스템(320)은 비디오 스트림이 수신되고, 수신되는 비디오 스트림을 디코드하기 위해 VC 시스템(300) 내에서 이용 가능한 자원들이 수신되는 네트워크에서의 조건들에 관한 데이터를 모으고, VC 시스템(300)에 의해 수신되고 있는 비디오 스트림을 전송하는 컴퓨터 시스템에 상기 모여진 데이터를 전송할 수 있는 임의의 컴퓨터 시스템을 포함한다. CR 시스템(320)은 임의의 알려진 방법 또는 기술에 따르는 컴퓨터 시스템 내에서 이용 가능한 자원들에 관한 데이터뿐만 아니라, 네트워크에서의 조건들에 관한 데이터를 모으기 위한 컴퓨터 코드를 포함할 수 있다. 네트워크에서의 조건들에 관한, CR 시스템(320)에 의해 모여진 데이터의 유형들은, 예를 들어 현재 수신되고 있는 비디오 스트림의 네트워크를 통한 수신에 관련된 수치들, 예를 들어 패킷 손실, 송신된/수신된 바이트, 및 네트워크를 통해 현재 수신되고 있는 비디오 스트림과 연관된 비트 에러율을 나타내는 수치들을 포함할 수 있다. 수신된 비디오 스트림을 디코드하기 위해 VC 시스템(300) 내에서 이용 가능한 자원들에 관한 CR 시스템(320)에 의해 모여진 데이터의 유형들은, 예를 들어 수신된 비디오 스트림을 디코드하기 위해 이용 가능한 메모리와 CPU 성능을 나타내는 수치들을 포함할 수 있다.
또한, CR 시스템(320)은 모여진 데이터를, VC 시스템(300)에 의해 수신되고 있는 비디오 스트림을 전송하는 컴퓨터 시스템에, 전송하는 기능을 수행하기 위한 컴퓨터 코드를 포함할 수 있다. 예를 들어, CR 시스템(320)은 실행될 때, VC 시스템(300)에 의해 수신되고 있는 비디오 스트림을 전송하는 컴퓨터 시스템으로 CR 시 스템(320)이 보내는 RTCP 패킷들 형태의 애플리케이션 특정 데이터로서 상기 모여진 데이터를 CR 시스템(320)이 전송하게 하는 컴퓨터 코드를 포함할 수 있다.
여기서의 "컴퓨터 시스템"이라는 용어는 광범위하게 사용되고 컴퓨터 하드웨어와 컴퓨터 소프트웨어를 포함하거나 또는 컴퓨터 소프트웨어만을 포함한다. 예를 들어, VET 시스템(110)과 VEC 시스템(120)은 각각 VS 시스템(100)의 동일한 컴퓨터 하드웨어 상에 상주하는 컴퓨터 코드를 포함할 수 있다. 대안적으로, VET 시스템(110)과 VEC 시스템(120)은 각각 별개의 컴퓨터 하드웨어로 구현될 수 있다.
도 3과 도 4는 본 발명이 동작할 수 있는 한가지 방식을 도시하는 흐름도로서, 도 3은 VS 시스템(100)에서 수행된 동작들을 도시하고, 도 4는 VC 시스템(300)에서 수행된 동작들을 도시한다. 먼저, 도 3을 참조하면, 블록(1000)으로 나타난 바와 같이, VC 시스템(300)과의 통신이 확립된다. 예를 들어, VS 시스템(100)은 VC 시스템(300)과 통신하여 인코드된 비디오가 VC 시스템(300)으로 전송될 수 있는 RTP/UDP 연결과 진단 정보가 VC 시스템(300)으로부터 수신될 수 있는 RTCP/UDP 연결을 확립할 수 있다.
다음에, 블록(1050)으로 표시된 바와 같이, 인코드되어 비디오 스트림의 부분으로서 전송하여야 할 남아 있는 소스 데이터가 있는지 여부에 대한 결정이 이루어질 수 있다. 예를 들어, 소스 데이터가 라이브 비디오라면, VET 시스템(110)은 라이브 비디오를 인코딩하는 절차가 지속될지를 결정할 수 있고, 소스 데이터가 VS 시스템(100)에 의해 트랜스코드되고 있는 저장된 파일로부터의 비디오 데이터라면, VET 시스템(110)은 트랜스코드될 데이터가 상기 저장된 비디오 파일에 남아 있는지 를 결정할 수 있다.
블록(1050)으로 표시된 동작들로부터의 결정이 부정적이라면, 과정은 VS 시스템(100)에서 끝난다. 반면에, 블록(1050)으로 표시된 동작들로부터의 결정이 긍정적이라면, 블록(1100, 1200, 및 1300)으로 표시된 동작들이 수행된다.
블록(1100)으로 표시된 바와 같이, 비디오 스트림이 인코드될 때 사용되는 하나 또는 그 이상의 파라미터들에 대한 저장된 값들은 검색된다(retrieved). 예를 들어, VET 시스템(110)은 각 파라미터와 연관된 저장 위치로부터 하나 또는 그 이상의 파라미터들 각각에 대한 값들을 검색할 수 있다. 그 다음, 소스 데이터는 블록(1200)으로 표시된 바와 같이, 하나 또는 그 이상의 파라미터들에 대한 검색된 값들에 따라 비디오 스트림으로 인코드된다. 예를 들어, VET 시스템(110)은 프레임 해상도와 프레임 속도와 같은 이전에 설명된 하나 또는 그 이상의 파라미터들에 대해서 검색된 값들에 따라, MPEG 또는 H.263과 같은 알려진 비디오 압축 알고리듬에 따라 소스 데이터를 인코드할 수 있다. 그 다음, 인코드된 비디오 스트림이 블록(1300)으로 표시된 것처럼 전송된다. 예를 들어, VET 시스템(110)은 네트워크(200)를 거쳐 VC 시스템(300)으로 인코드된 비디오 스트림을 전송할 수 있다. 그 다음, 절차는 블록(1050)으로 표시된 동작들로 복귀한다.
도 3에 도시된 바와 같이, 블록(1050)으로 표시된 동작들로부터의 결정이 긍정적이면, 블록(1100, 1200, 및 1300)으로 표시된 동작들 외에도, 블록(1400, 1500, 및 1600)으로 표시된 동작들도 수행된다. 블록(1400, 1500, 및 1600)으로 표시된 동작들은 블록(1100, 1200, 및 1300)으로 표시된 동작들과는 동시에, 그리고 독립적으로 수행될 수 있다.
블록(1400)으로 표시된 바와 같이, 네트워크(200) 또는 VC 시스템(300)에서의 조건들에 관한 데이터가 VC 시스템(300)으로부터 수신되었는지 여부에 관한 결정이 이루어진다. 예를 들어, VS 시스템(100)의 VEC 시스템(120)은, 네트워크(200)에서의 조건들과 VC 시스템(300)으로부터 수신된 RTCP 패킷들의 애플리케이션 특정 부분에서의 비디오 스트림을 디코드하는 능력에 관한 VC 시스템(300)에서의 조건들에 관해서 VC 시스템(300)으로부터 데이터가 수신되었는지를 결정하기 위해, 확립된 RTCP/UDP 연결을 통해 VC 시스템(300)으로부터 수신된 RTCP 패킷들을 검사할 수 있다. 블록(1400)으로 표시된 동작들로부터의 결정이 부정적이면, 절차는 블록(1050)으로 표시된 동작들로 복귀한다.
블록(1400)으로 표시된 동작들로부터의 결정이 긍정적이면, 절차는 블록(1500)으로 표시된 동작들로 계속 진행되고, 여기서 수신된 데이터에 대응하는 각각의 하나 또는 그 이상의 파라미터들에 대한 값들이 결정된다. 예를 들어, VEC 시스템(120)은 VC 시스템(300)으로부터 수신된 데이터와, 도 2와 관련하여 앞서 설명된 바와 같이 수신된 데이터의 유형에 관한 미리 정해진 범위들과 각각의 미리 정해진 범위에 대한 각각의 하나 또는 그 이상의 파라미터들에 관한 대응하는 값들을 명시하는 표를 비교할 수 있다. 예를 들어, VC 시스템(300)으로부터 수신된 데이터가 VS 시스템(100)으로부터 VC 시스템(300)으로 현재 전송되고 있는 비디오 스트림을 디코드하기 위해 VC 시스템(300)에서 이용 가능한 CPU 성능의 수치를 나타내면, VEC 시스템(120)은 VC 시스템(300)으로부터 수신된 데이터를, 수신된 데이터 를 포함하는 미리 정해진 범위와 이 범위에 대응하는 프레임 해상도 파라미터에 관한 값을 결정하기 위해, 도 2의 표와 비교할 수 있다. 예를 들어, VC 시스템(300)으로부터 수신된 데이터가 VS 시스템(100)에 의해 VC 시스템(300)으로 전송되는 비디오 스트림을 디코드하기 위해 VC 시스템(300)에서 이용 가능한 CPU 성능의 60%의 수치를 가리킨다면, VEC 시스템(120)은 352×288를 이 수신된 데이터에 대응하는 프레임 해상도 파라미터에 관한 적절한 값으로 결정할 것이다. 유사한 방식으로, VEC 시스템(120)은 VC 시스템(300)으로부터 수신된 데이터에 대응하는 하나 또는 그 이상의 파라미터들의 각각의 값을 결정할 수 있다.
그 다음, 블록(1600)으로 표시된 바와 같이, 필요하다면 하나 또는 그 이상의 파라미터들의 값들이 수정된다. 예를 들면, VEC 시스템(120)은 블록(1500)으로 표시된 동작들로부터 각각의 하나 또는 그 이상의 파라미터들에 관해 결정된 값들을 각각의 하나 또는 그 이상의 파라미터들에 관해 저장된 값들과 비교할 수 있다. 결정된 값들 중 어떤 것이 임의의 파라미터에 관해 저장된 값과 다르다면, VEC 시스템(120)은 해당 파라미터와 관련된 저장 영역에 상기 결정된 값을 저장한다. 그 다음, 절차는 블록(1050)으로 표시된 동작들로 되돌아 간다.
동시에, VS 시스템(100)이 비디오 스트림을 인코드하고 전송할 때, VC 시스템(300)은 네트워크(200)를 통해 상기 비디오 스트림을 수신하고 그것을 VC 시스템(300)을 동작시키는 사용자에게 표현하기 위해 디코드한다. 도 4에 도시된 바와 같이, 블록(2000)으로 표시된 것처럼, 먼저 VS 시스템(100)과의 통신이 확립된다. 예를 들면, 도 3의 블록(1000)으로 표시된 동작들과 유사하게, 여기서는 VC 시스템(300)이 VS 시스템(100)과 통신하여 인코드된 비디오가 VS 시스템(300)으로부터 수신될 수 있는 RTP/UDP 연결과, 진단 정보가 VS 시스템(100)으로 전송될 수 있는 RTCP/UDP 연결이 확립할 수 있다. 그 다음, VRD 시스템(310)이 VS 시스템(100)으로부터 전송된 비디오 스트림을 수신하고 디코드하는 절차를 시작하고 지속한다. VRD 시스템(310)이 수신 및 디코딩 절차에 있는 동안, CR 시스템(320)은 계속해서 도 4에 도시된 블록(2050, 2100, 및 2200)으로 표시된 동작들을 수행한다.
일단, VS 시스템(100)으로부터 수신된 비디오 스트림의 디코딩 절차가 시작되면, 블록(2050)으로 표시된 바와 같이, 이 수신 및 디코딩 절차가 VRD 시스템(310)에서 지속하는지를 결정함으로써, CR 시스템(320)이 이 절차의 감시를 시작한다. 이 결정이 부정적이라면, CR 시스템(320)에서 절차가 종결된다.
이 결정이 긍정적이라면, 비디오 스트림을 디코드하기 위해 네트워크(200)에서의 조건들에 관한 데이터와 VC 시스템(300)에서 이용 가능한 자원들이 모여지는, 블록(2100)으로 표시된 동작들로 절차가 이어진다. 예를 들어, 네트워크(200)에서의 조건들에 관해서, CR 시스템(320)은 예를 들어, (a) 네트워크(200)를 통해 VS 시스템(100)으로부터 VC 시스템(300)으로 비디오 스트림을 공급하는 것과 관련된 패킷 손실, (b) 네트워크(200)를 통해 VS 시스템(100)으로부터 VC 시스템(300)으로 비디오 스트림을 공급하는 것과 관련된 VS 시스템(100)에 의해 전송된 바이트들의 개수와 VC 시스템(300)에 의해 수신된 바이트들의 개수, (c) 네트워크(200)를 통해 VS 시스템(100)으로부터 VC 시스템(300)으로 비디오 스트림을 공급하는 것과 관련 된 비트 에러율을 나타내는 수치들을 포함하는 데이터를 획득하기 위해 알려진 기술들을 사용할 수 있다. 또한, 비디오 스트림을 디코드하기 위해 VC 시스템(300)에서 이용 가능한 자원들에 관해서, CR 시스템은 예를 들어, VS 시스템(100)으로부터 수신되고 있는 비디오 스트림을 디코드하기 위해 VC 시스템(300)에서 이용 가능한 메모리와 이용 가능한 CPU 성능을 나타내는 수치들을 포함하는 데이터를 획득하기 위해 알려진 기술들을 사용할 수 있다. 이용 가능한 메모리와 CPU 성능은, 예를 들어 다른 애플리케이션 프로그램들이 VC 시스템(300)에서 개방되거나 폐쇄되는 것과 같은 다른 목적을 위해, VC 시스템(300)에서 이들 자원들이 사용되고 배포되는 경우 변동될 수 있다는 점을 주목해야 한다. 또한, 전술한 데이터(예를 들면, 패킷 손실, 송신된/수신된 바이트들, 비트 에러율, 이용 가능한 메모리, 이용 가능한 CPU 성능)는, CR 시스템(320)에 의해 사용된 수치의 표준이 VEC 시스템(120)에 의해 사용된 동일한 표준인 한{예를 들어, 도 2의 표에 도시된 것과 같은 VEC 시스템(120)뿐만 아니라 CR 시스템(320)에 의한 총 CPU 성능의 백분율로 표시된 이용 가능한 CPU 성능}, 임의의 알려진 방식으로 측정될 수 있다는 점을 주목해야 한다.
그 다음, 모여진 데이터는 블록(2200)으로 표시된 바와 같이, VS 시스템(100)으로 전송된다. 예를 들어, CR 시스템(320)은 비디오 스트림을 확립된 RTCP/UDP 연결을 거쳐 VS 시스템(100)으로 다시 전송되는 RTCP 패킷들의 애플리케이션 특정 데이터로서 디코드하기 위해, 네트워크(200)에서의 조건들과 VC 시스템(300)에서 이용 가능한 자원들에 관해 모여진 데이터를 전송할 수 있다. 그 다음, 절차는 블록(2050)에서의 동작들을 지속한다.
따라서, VS 시스템(100)이 비디오 스트림을 인코드하고 인코드된 스트림을 VC 시스템(300)으로 전송하는 절차 동안, VC 시스템(300)은 계속해서 네트워크(200)와 VC 시스템(300)에서의 조건들에 관한 데이터를 모아서, 이 데이터를 비디오 스트림의 인코딩을 조정하는데 사용하도록 VS 시스템(100)으로 보낼 수 있다. 그러므로, 네트워크(200)에서의 혼잡이 증가하거나 수신된 비디오 스트림의 디코딩을 위해 이용 가능한 VC 시스템(300)에서의 자원들이 감소함에 따라, VS 시스템(100)에서 수신된 데이터는, VS 시스템(100)으로 하여금 예를 들어 인코드되고 있는 비디오 스트림의 프레임 해상도를 감소시키도록 할 수 있다. 역으로, 네트워크(200)에서의 혼잡이 개선되거나 VC 시스템(300)에서 수신된 스트림의 비디오 디코딩을 위해 자원들이 관련되고 이용 가능하게 되면, VS 시스템(100)에서 수신된 데이터는, VS 시스템(100)으로 하여금 예를 들어 비디오 스트림이 인코드되는 프레임 해상도를 증가시키도록 할 수 있다.
본 발명이 바람직한 실시예와 연관되어 설명되고 예시되었지만, 당업자들에게 있어서는, 본 발명의 취지와 범위를 벗어나지 않으면서 많은 변형과 수정이 이루어질 수 있음이 명백할 것이고, 따라서 본 발명은 방법론의 엄밀한 상세한 사항이나 이러한 변형과 수정이 본 발명의 범위 내에 포함되는 것으로 의도되는 바와 같은 전술한 구성 세트에 한정되지 아니한다.
본 발명은 비디오 스트림을 데이터 통신 네트워크를 거쳐 공급하는 시스템에 적용할 수 있으며, 네트워크에 의해 운반되는 비디오 스트림의 프레임 손실을 방지함으로써, 상기 비디오 스트림에 기초하여 나타난 비디오 품질을 개선할 수 있다.

Claims (36)

  1. 비디오 서버 시스템에 의해 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고 네트워크를 통해 공급되는 비디오 스트림을 수정하는 방법으로서,
    상기 비디오 서버 시스템이 적어도 상기 비디오 스트림을 전달하는 네트워크의 능력에 관련된 데이터를 획득하는 단계와,
    상기 비디오 서버 시스템이 상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 단계로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  2. 비디오 서버 시스템에 의해 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고 네트워크를 통해 컴퓨터에 공급되는 비디오 스트림을 수정하는 방법으로서,
    상기 비디오 서버 시스템이 상기 비디오 스트림을 상기 컴퓨터에 전달하는 네트워크의 능력과 상기 비디오 스트림을 디코드하는 상기 컴퓨터의 능력에 관련된 데이터를 획득하는 단계와,
    상기 비디오 서버 시스템이 상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 단계로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  3. 제 2항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 해상도를 포함하고,
    상기 수정하는 단계는 상기 획득된 데이터에 기초하여 상기 프레임 해상도 값을 수정하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  4. 제 2항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 속도를 포함하고,
    상기 수정하는 단계는 상기 획득된 데이터에 기초하여 상기 프레임 속도 값을 수정하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  5. 제 2항에 있어서, 상기 획득하는 단계는 상기 컴퓨터로부터 수신된 RTCP 패킷들에서 상기 컴퓨터 또는 상기 네트워크와 관련된 데이터를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  6. 제 5항에 있어서, 상기 획득하는 단계는 상기 컴퓨터로부터 수신된 상기 RTCP 패킷들의 애플리케이션 특정 부분에서 상기 컴퓨터 또는 상기 네트워크와 관련된 데이터를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  7. 제 2항에 있어서, 상기 획득하는 단계는 상기 컴퓨터에 공급되는 상기 비디오 스트림을 디코드하기 위해 상기 컴퓨터에서 이용 가능한 자원들을 나타내는 수치를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  8. 제 7항에 있어서, 상기 획득하는 단계는 상기 컴퓨터에 공급되는 상기 비디오 스트림을 디코드하기 위해 상기 컴퓨터에서 이용 가능한 컴퓨터 프로세서 성능(power)을 나타내는 수치를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  9. 제 2항에 있어서, 상기 획득하는 단계는 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 패킷 손실을 나타내는 수치를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  10. 제 2항에 있어서, 상기 획득하는 단계는 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 전송된 바이트들과 수신된 바이트들을 나타내는 수치를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  11. 제 2항에 있어서, 상기 획득하는 단계는 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 비트 에러율을 나타내는 수치를 획득하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  12. 제 2항에 있어서, 상기 획득하는 단계는
    상기 컴퓨터에서 상기 데이터를 모으는 단계와,
    상기 컴퓨터로부터 상기 모여진 데이터를 수신하는 단계를 포함하는, 비디오 스트림을 수정하는 방법.
  13. 하나 또는 그 이상의 파라미터들의 값에 따라 제 1 컴퓨터에 의해 인코드되고, 상기 제 1 컴퓨터에 의해 네트워크를 통해 제 2 컴퓨터에 전송되는 비디오 스트림의 수정을 용이하게 하는 방법으로서,
    상기 비디오 스트림을 상기 제 2 컴퓨터에 전송하는 네트워크의 능력과, 상기 비디오 스트림을 디코드하는 상기 제 2 컴퓨터의 능력과 관련된 데이터를 상기 제 2 컴퓨터에서 모으는 단계와,
    상기 제 1 컴퓨터가 상기 비디오 스트림을 인코딩할 때 따르는 상기 하나 또는 그 이상의 파라미터들의 값을 수정 가능하게 하도록 상기 모여진 데이터를 상기 제 1 컴퓨터로 전송하는 단계를 포함하는, 비디오 스트림의 수정을 용이하게 하는 방법.
  14. 제 13항에 있어서, 상기 전송하는 단계는 상기 제 1 컴퓨터에 보내지는 RTCP 패킷들의 애플리케이션 특정 부분에서 상기 모여진 데이터를 전송하는 단계를 포함하는, 비디오 스트림의 수정을 용이하게 하는 방법.
  15. 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고, 네트워크를 통해 공급되는 비디오 스트림을 수정하는 시스템으로서,
    적어도 상기 비디오 스트림을 전송하는 상기 네트워크의 능력에 관련된 데이터를 획득하는 수단과,
    상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 수단으로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  16. 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고, 네트워크를 통해 컴퓨터에 공급되는 비디오 스트림을 수정하는 시스템으로서,
    상기 비디오 스트림을 상기 컴퓨터에 전송하는 상기 네트워크의 능력과, 상기 비디오 스트림을 디코드하는 상기 컴퓨터의 능력에 관련된 데이터를 획득하는 수단과,
    상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 수단으로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  17. 제 16항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 해상도를 포함하고,
    상기 수정하는 수단은 상기 획득된 데이터에 기초하여 상기 프레임 해상도 값을 수정하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  18. 제 16항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 속도를 포함하고,
    상기 수정하는 수단은 상기 획득된 데이터에 기초하여 상기 프레임 속도 값을 수정하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  19. 제 16항에 있어서, 상기 획득하는 수단은 상기 컴퓨터로부터 수신된 RTCP 패킷들에서 상기 컴퓨터 또는 상기 네트워크와 관련된 데이터를 획득하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  20. 제 16항에 있어서, 상기 획득하는 수단은 상기 컴퓨터에 공급되는 상기 비디오 스트림을 디코드하기 위해 상기 컴퓨터에서 이용 가능한 컴퓨터 프로세서 성능을 나타내는 수치를 획득하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  21. 제 16항에 있어서, 상기 획득하는 수단은 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 패킷 손실을 나타내는 수치를 획득하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  22. 제 16항에 있어서, 상기 획득하는 수단은 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 전송된 바이트들과 수신된 바이트들을 나타내는 수치를 획득하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  23. 제 16항에 있어서, 상기 획득하는 수단은 상기 비디오 스트림을 상기 네트워크를 통해 상기 컴퓨터에 공급하는 것과 연관된 비트 에러율을 나타내는 수치를 획득하는 수단을 포함하는, 비디오 스트림을 수정하는 시스템.
  24. 하나 또는 그 이상의 파라미터들의 값에 따라 제 1 컴퓨터에 의해 인코드되고, 네트워크를 통해 제 1 컴퓨터에 의해 제 2 컴퓨터로 전송되는 비디오 스트림의 수정을 용이하게 하는 시스템으로서,
    상기 비디오 스트림을 상기 제 2 컴퓨터에 전달하는 상기 네트워크의 능력과, 상기 비디오 스트림을 디코드하는 상기 제 2 컴퓨터의 능력과 관련된 데이터를 상기 제 2 컴퓨터에서 모으는 수단과,
    상기 제 1 컴퓨터가 상기 비디오 스트림을 인코드할 때 따르는 상기 하나 또는 그 이상의 파라미터들의 값의 수정을 가능하게 하도록 상기 모여진 데이터를 상기 제 1 컴퓨터에 전송하는 수단을 포함하는, 비디오 스트림의 수정을 용이하게 하는 시스템.
  25. 제 24항에 있어서, 상기 전송하는 수단은 상기 제 1 컴퓨터에 보내지는 RTCP 패킷들의 애플리케이션 특정 부분에서 상기 모여진 데이터를 전송하는 수단을 포함하는, 비디오 스트림의 수정을 용이하게 하는 시스템.
  26. 구현된 컴퓨터 판독 가능한 코드를 갖고, 기록된 컴퓨터 프로그램 제품을 갖는 컴퓨터 사용 가능한 매체로서, 상기 컴퓨터 판독 가능한 코드는, 실행될 때 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고 네트워크를 통해 공급되는 비디오 스트림을 수정하는 방법을 컴퓨터가 수행하도록 하는, 컴퓨터 사용 가능한 매체에 있어서, 상기 방법은
    적어도 상기 비디오 스트림을 전달하는 상기 네트워크의 능력에 관련된 데이터를 획득하는 단계와,
    상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 단계로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  27. 구현된 컴퓨터 판독 가능한 코드를 갖고, 기록된 컴퓨터 프로그램 제품을 갖는 컴퓨터 사용 가능한 매체로서, 상기 컴퓨터 판독 가능한 코드는, 실행될 때 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되고 네트워크를 통해 컴퓨터에 공급되는 비디오 스트림을 수정하는 방법을 컴퓨터가 수행하도록 하는, 컴퓨터 사용 가능한 매체에 있어서, 상기 방법은
    상기 비디오 스트림을 상기 컴퓨터에 전달하는 상기 네트워크의 능력과, 상기 비디오 스트림을 디코드하는 상기 컴퓨터의 능력에 관련된 데이터를 획득하는 단계와,
    상기 하나 또는 그 이상의 파라미터들의 값을 상기 획득된 데이터에 기초하여 수정하는 단계로서, 상기 비디오 스트림은 상기 하나 또는 그 이상의 파라미터들의 값에 따라 인코드되는, 파라미터들의 값을 수정하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  28. 제 27항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 해상도를 포함하고,
    상기 구현된 방법에서, 상기 수정하는 단계는 상기 획득된 데이터에 기초하여 프레임 해상도 값을 수정하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  29. 제 27항에 있어서, 상기 비디오 스트림이 인코드될 때 따르는 상기 하나 또는 그 이상의 파라미터들은 프레임 속도를 포함하고,
    상기 구현된 방법에서, 상기 수정하는 단계는 상기 획득된 데이터에 기초하여 상기 프레임 속도 값을 수정하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  30. 제 27항에 있어서, 상기 구현된 방법에서, 상기 획득하는 단계는 상기 컴퓨터로부터 수신된 RTCP 패킷들에서 상기 컴퓨터 또는 상기 네트워크에 관련된 데이터를 획득하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  31. 제 27항에 있어서, 상기 구현된 방법에서, 상기 획득하는 단계는 상기 컴퓨터에 공급되는 상기 비디오 스트림을 디코드하기 위해 상기 컴퓨터에서 이용 가능한 컴퓨터 프로세서 성능을 나타내는 수치를 획득하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  32. 제 27항에 있어서, 상기 구현된 방법에서, 상기 획득하는 단계는 상기 네트워크를 통해 상기 컴퓨터로 상기 비디오 스트림을 공급하는 것과 연관된 패킷 손실을 나타내는 수치를 획득하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  33. 제 27항에 있어서, 상기 구현된 방법에서, 상기 획득하는 단계는 상기 네트워크를 통해 상기 컴퓨터로 상기 비디오 스트림을 공급하는 것과 연관된, 송신된 바이트와 수신된 바이트들을 나타내는 수치를 획득하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  34. 제 27항에 있어서, 상기 구현된 방법에서, 상기 획득하는 단계는 상기 네트워크를 통해 상기 컴퓨터로 상기 비디오 스트림을 공급하는 것과 연관된 비트 에러율을 나타내는 수치를 획득하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  35. 구현된 컴퓨터 판독 가능한 코드를 갖고, 기록된 컴퓨터 프로그램 제품을 갖는 컴퓨터 사용 가능한 매체로서, 상기 컴퓨터 판독 가능한 코드는, 실행될 때 하나 또는 그 이상의 파라미터들의 값에 따라 제 1 컴퓨터에 의해 인코드되고, 네트워크를 통해 제 1 컴퓨터에 의해 제 2 컴퓨터에 전송되는, 비디오 스트림의 수정을 용이하게 하는 방법을, 컴퓨터가 수행하도록 하는, 컴퓨터 사용 가능한 매체에 있어서, 상기 방법은
    상기 비디오 스트림을 상기 제 2 컴퓨터에 전달하는 상기 네트워크의 능력과, 상기 비디오 스트림을 디코드하는 상기 제 2 컴퓨터의 능력에 관련된 데이터를 제 2 컴퓨터에서 모으는 단계와,
    상기 제 1 컴퓨터가 상기 비디오 스트림을 인코드할 때 따르는 상기 하나 또는 그 이상의 파라미터들의 값을 수정가능하게 하도록 상기 제 1 컴퓨터에 상기 모여진 데이터를 전송하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
  36. 제 35항에 있어서, 상기 구현된 방법에서, 상기 전송하는 단계는 상기 제 1 컴퓨터에 보내지는 RTCP 패킷들의 애플리케이션 특정 부분에서 상기 모여진 데이터를 전송하는 단계를 포함하는, 컴퓨터 사용 가능한 매체.
KR1020047008811A 2001-12-15 2002-12-13 클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체 KR101080237B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US34167201P 2001-12-15 2001-12-15
US60/341,672 2001-12-15
PCT/US2002/039919 WO2003053040A2 (en) 2001-12-15 2002-12-13 System and method for modifying a video stream based on a client or network environment

Publications (2)

Publication Number Publication Date
KR20040074997A KR20040074997A (ko) 2004-08-26
KR101080237B1 true KR101080237B1 (ko) 2011-11-08

Family

ID=23338551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047008811A KR101080237B1 (ko) 2001-12-15 2002-12-13 클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체

Country Status (7)

Country Link
EP (1) EP1454250A4 (ko)
JP (1) JP2005513876A (ko)
KR (1) KR101080237B1 (ko)
CN (1) CN1316398C (ko)
AU (1) AU2002361665A1 (ko)
MX (1) MXPA04005740A (ko)
WO (1) WO2003053040A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4789401B2 (ja) 2003-06-25 2011-10-12 トヨタ自動車株式会社 コンテンツ配信システム
KR100526183B1 (ko) 2003-07-15 2005-11-03 삼성전자주식회사 모바일 애드 혹 네트워크 환경에서 효율적인 데이터송수신을 위한 네트워크 장치 및 데이터 전송 방법
US20070024705A1 (en) * 2005-08-01 2007-02-01 Richter Roger K Systems and methods for video stream selection
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
CN100588249C (zh) * 2006-07-27 2010-02-03 腾讯科技(深圳)有限公司 调节视频质量的方法、系统及终端
CN101282141B (zh) * 2007-04-05 2012-06-06 华为技术有限公司 一种传输数据和接收数据的方法、装置和系统
JP2009152952A (ja) * 2007-12-21 2009-07-09 Nec Corp 配信システム、配信方法及びプログラム
CN101215118B (zh) * 2008-01-14 2010-06-09 张建荣 共聚型聚羧酸类减水剂及其制备方法
CN101365125B (zh) * 2008-09-27 2012-03-21 腾讯科技(深圳)有限公司 多路视频通信方法与系统
CN101552913B (zh) * 2009-05-12 2011-07-06 腾讯科技(深圳)有限公司 多路视频通讯系统及处理方法
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8806050B2 (en) * 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US20120082209A1 (en) * 2010-10-05 2012-04-05 Ruijia Li Method and apparatus for dynamically adjusting video quality
KR101744355B1 (ko) * 2011-01-19 2017-06-08 삼성전자주식회사 상호 계층 최적화를 이용한 멀티미디어 데이터 패킷을 송신하는 방법 및 장치
WO2012154157A1 (en) * 2011-05-06 2012-11-15 Google Inc. Apparatus and method for dynamically changing encoding scheme based on resource utilization
JP5660983B2 (ja) 2011-06-28 2015-01-28 トヨタ自動車株式会社 コンテンツ配信システム
CN103313095A (zh) * 2012-03-16 2013-09-18 腾讯科技(深圳)有限公司 视频传输方法、播放方法、终端和服务器
WO2014122693A1 (ja) * 2013-02-08 2014-08-14 三菱電機株式会社 クライアント装置、サーバ装置、画面伝送システム
US20140347376A1 (en) * 2013-05-24 2014-11-27 Nvidia Corporation Graphics server and method for managing streaming parameters
US20150117516A1 (en) * 2013-10-30 2015-04-30 Vered Bar Bracha Dynamic video encoding based on channel quality
CN104935971B (zh) * 2015-06-02 2018-08-07 阔地教育科技有限公司 一种在线课堂中的视频传输动态调整方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970703677A (ko) * 1994-06-07 1997-07-03 이데이 노브유끼 동기화 그룹을 사용하는 멀티-캐스트 디지탈 비디오 데이터서버(multi-cast digital video data server using synchronization groups)
KR19990067760A (ko) * 1998-01-02 1999-08-25 포만 제프리 엘 네트워크를 통해 전송되는 저우선순위 비디오 프레임 패킷을 감소시키기 위한 속도 감쇠 시스템과 그 방법 및 컴퓨터 프로그램 제품

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0867003A2 (en) * 1995-12-12 1998-09-30 The Board of Trustees for the University of Illinois Method of and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
JPH10126771A (ja) * 1996-10-15 1998-05-15 Toshiba Corp 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法
US6006241A (en) * 1997-03-14 1999-12-21 Microsoft Corporation Production of a video stream with synchronized annotations over a computer network
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
JPH11266229A (ja) * 1998-03-18 1999-09-28 Matsushita Electric Ind Co Ltd スペクトラム拡散通信方式によるデータ伝送装置
JP2955561B1 (ja) * 1998-05-29 1999-10-04 株式会社ディジタル・ビジョン・ラボラトリーズ ストリーム通信システム及びストリーム転送制御方法
SG77650A1 (en) * 1998-09-07 2001-01-16 Victor Company Of Japan A scalable delivery scheme of compressed video
JP2000228676A (ja) * 1998-11-30 2000-08-15 Matsushita Electric Ind Co Ltd データ送信方法
US6529475B1 (en) * 1998-12-16 2003-03-04 Nortel Networks Limited Monitor for the control of multimedia services in networks
JP2000270330A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd 映像配信システム及び映像配信方法
JP2000295597A (ja) * 1999-04-09 2000-10-20 Oki Electric Ind Co Ltd メディアデータ受信および送信装置
JP2001025013A (ja) * 1999-07-12 2001-01-26 Matsushita Electric Ind Co Ltd 送受信方法及びその装置
US20010047517A1 (en) * 2000-02-10 2001-11-29 Charilaos Christopoulos Method and apparatus for intelligent transcoding of multimedia data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970703677A (ko) * 1994-06-07 1997-07-03 이데이 노브유끼 동기화 그룹을 사용하는 멀티-캐스트 디지탈 비디오 데이터서버(multi-cast digital video data server using synchronization groups)
KR19990067760A (ko) * 1998-01-02 1999-08-25 포만 제프리 엘 네트워크를 통해 전송되는 저우선순위 비디오 프레임 패킷을 감소시키기 위한 속도 감쇠 시스템과 그 방법 및 컴퓨터 프로그램 제품

Also Published As

Publication number Publication date
JP2005513876A (ja) 2005-05-12
AU2002361665A8 (en) 2003-06-30
EP1454250A4 (en) 2010-08-25
EP1454250A2 (en) 2004-09-08
WO2003053040A2 (en) 2003-06-26
CN1316398C (zh) 2007-05-16
MXPA04005740A (es) 2004-12-06
CN1605075A (zh) 2005-04-06
KR20040074997A (ko) 2004-08-26
WO2003053040A3 (en) 2003-12-18
AU2002361665A1 (en) 2003-06-30

Similar Documents

Publication Publication Date Title
KR101080237B1 (ko) 클라이언트 또는 네트워크 환경에 기초한 비디오 스트림을 수정하는 시스템 및 방법, 비디오 스트림의 수정을 용이하게 하는 시스템 및 방법, 및 컴퓨터 사용가능한 매체
US8352991B2 (en) System and method for modifying a video stream based on a client or network environment
JP3740113B2 (ja) ネットワークに適応したリアルタイムマルチメディアストリーミングシステム及びその方法
KR101449710B1 (ko) 데이터 통신시스템, 데이터 송신장치, 데이터 송신방법 및패킷 사이즈 및 용장도 결정방법
KR101429773B1 (ko) 내손실성 멀티미디어 멀티캐스팅 방법 및 시스템
EP1271830B1 (en) Negotiated dynamic error correction for streamed media
US7936815B2 (en) Methods in transmission and searching of video information
US7068601B2 (en) Codec with network congestion detection and automatic fallback: methods, systems & program products
US7616661B2 (en) Apparatus for transmitting/receiving a bit stream in a network and method therefor
US7855966B2 (en) Network congestion detection and automatic fallback: methods, systems and program products
US7764708B2 (en) Data transmission system, header-information adding device, data-format converting device, and data transmission method
WO2002093866A2 (en) Transcoding multimedia information within a network communication system
EP1187416B1 (en) Method and apparatus for transmitting data packets
JP2001177573A (ja) データ通信システム並びにデータ受信端末及びデータ送信端末
US7072291B1 (en) Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
WO2007040291A1 (en) System and method for controlling transmission of moving image data over network
WO2008052443A1 (fr) Procédé et système de surveillance des performances d'un service multimédia
WO2012161652A1 (en) Methods for transmitting and receiving a digital signal, transmitter and receiver
JP2004007480A (ja) マルチメディアストリーミングサービスのためのパケット転送装置及びその方法
US20090268730A1 (en) Data transmitting apparatus and method and program for controlling transmission rate
JP2009296164A (ja) データ送信装置、その制御方法及びプログラム
JP5234719B2 (ja) 映像サーバ装置
US20020174437A1 (en) Method and apparatus for controlling image quality by culling transmitted image information
KR101955690B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
US20150063103A1 (en) Bandwidth-dependent compressor for robust header compression and method of use thereof

Legal Events

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

Payment date: 20141006

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 6