KR20010033572A - 네트워크로의 데이터 출력 속도 제어 시스템 - Google Patents

네트워크로의 데이터 출력 속도 제어 시스템 Download PDF

Info

Publication number
KR20010033572A
KR20010033572A KR1020007007082A KR20007007082A KR20010033572A KR 20010033572 A KR20010033572 A KR 20010033572A KR 1020007007082 A KR1020007007082 A KR 1020007007082A KR 20007007082 A KR20007007082 A KR 20007007082A KR 20010033572 A KR20010033572 A KR 20010033572A
Authority
KR
South Korea
Prior art keywords
network
data
output
amount
bandwidth
Prior art date
Application number
KR1020007007082A
Other languages
English (en)
Other versions
KR100742106B1 (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 KR20010033572A publication Critical patent/KR20010033572A/ko
Application granted granted Critical
Publication of KR100742106B1 publication Critical patent/KR100742106B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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
    • 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
    • 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/234318Processing 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 decomposing into objects, e.g. MPEG-4 objects
    • 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/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5636Monitoring or policing, e.g. compliance with allocated rate, corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5664Support of Video, e.g. MPEG

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

네트워크로 출력되는 데이터를 제어하는 본 발명의 시스템은 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고, 실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득한다. 이후, 시스템은 그 차이에 기초하여 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력한다. 소정의 기간 내에 네트워크로 출력될 최종 데이터 패킷에 대해, 시스템은 데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제 1 비트수를 결정하고, 데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제 2 비트수를 결정하고, 제 1 비트수가 제 2 비트수보다 적은 경우에 데이터 패킷을 출력한다.

Description

네트워크로의 데이터 출력 속도 제어 시스템{System for controlling data output rate to a network}
현존하는 네트워크 시스템은 상이한 노드들 사이에 시청각 데이터로 구성된 실시간 비디오 데이터를 전송하는 능력을 갖는다. 인터넷은 특히 최근 들어 그것을 통해 통과되는 비디오의 양에 있어서 현저한 증가를 경험하고 있다. 그러나, 네트워크로된 비디오(특히, 인터넷 비디오)를 경험한 자라면 누구나 그것은 미진한 점이 많음을 인식하고 있다. 예를 들면, 그러한 비디오에서 동작은 종종 부드럽지 않고 과장되게 보인다. 마찬가지로, 이미지 동작 및 오디오 데이터는 일치하지 않음으로써, 비디오 화질을 추가로 저하시킨다.
네트워크 비디오와 관련한 상기 문제점들에 관하여 수많은 이유가 있고, 그중 하나는 네트워크를 통해 이동하는 데이터의 흐름 제어에 관한 것이다. 예로써, 인터넷을 들면, 인터넷은 "스트리밍" 어플리케이션, 즉, 비디오 데이터의 "스트림"을 인터넷으로 출력하는 멀티미디어 어플리케이션으로부터 데이터를 처리하는 데 있어서 사용자 데이터그램 프로토콜("UDP")을 사용한다. 그런, UDP는 고유 흐름 제어를 갖고 있지 않고, 이는 그것이 네트워크 상의 현재 데이터의 양과 무관하게 비디오 데이터를 출력하는 것을 의미한다. 네트워크가 이미 최대한의 용량으로 가동된 경우, 이는 비디오 데이터의 손실을 초래할 수 있으므로써, 상기한 바와 같이 비디오 데이터의 화질을 감소시킨다. 다른 한편, 네트워크 상에 과도한 용량이 존재하는 경우, 이는 비디오 데이터에서 갭을 초래할 수 있고, 생성된 비디오는 마찬가지로 비디오의 화질을 감소시킨다.
특히 UDP-지향된 멀티미디어 애플리케이션에서 고유의 흐름 제어의 결여로 추가적인 문제점들이 발생하기도 한다. 보다 상세하게는, 이들 애플리케이션은 네트워크의 현재 용량과 무관하게 비디오 데이터를 출력함으로써, 수송 제어 프로토콜("TCP") 등의 보다 사회적으로 지향된 프로토콜(atop more socially-minded protocols)을 실행하는 ftp, 텔넷 등의 현존하는 애플리케이션에 위협적일 수 있다. 사실상, 불량하게 설계된 UDP 멀티미디어 애플리케이션의 확산은 인터넷을 혼잡하게 하여 가장 극단적인 경우에는 그의 혼잡 와해를 초래할 수 있다.
종래의 개발자는 네트워크로부터 데이터를 판독하는 수신기의 오퍼레이션과 데이터를 네트워크로 출력하는 송신기의 오퍼레이션을 동조시킴으로써 당업계의 상기 문제점들을 다루어 왔다. 예를 들면, 네트워크 상의 오디오-회의를 위해 매사추세츠 주립대학에서 개발한 네트워크 음성 터미널("NeVoT") 애플리케이션은 입력 장치(예, 마이크로폰)로부터 네트워크로, 또는 네트워크로부터 출력 장치(예, 스피커)로의 오디오 데이터의 전송을 제어하기 위해 단일 오디오 샘플링 클록을 사용한다. 즉, 입력 장치가 애플리케이션에 오디오의 전체 블록을 전달할 때마다. 오디오의 하나의 동일한 기간 블록은 네트워크 상의 플레이아웃 버퍼로부터 출력 장치로 복사된다.
상기 해결책은 입력 타이밍과 출력 타이밍을 결합시킴으로써 버퍼 오버플로우 및 언더플로우를 감소시키지만, 중간 네트워크의 특성을 고려하지 않았다는 사실로 기인한 여려가지 결점을 갖는다. 예를 들면, 상기 종래의 흐름 제어 방법에 있어서, 데이터는 네트워크의 대역폭과 무관하게 네트워크 인터페이스가 처리할 수 있는 정도의 고속으로 네트워크로 전송된다. 네트워크가 큰 비트 전송율을 다룰 수 없는 대역폭을 갖는 경우, 이는 네트워크에 혼잡을 유도하여 데이터 손실을 유발하고, 네트워크 성능을 저하시킬 것이다.
따라서, 네트워크 혼잡 및 버퍼 오버플로우 및 언더플로우로부터 기인하는 열화 효과 모두를 감소시키기 위해 인터넷 등의 네트워크로 데이터의 흐름을 제어하는 시스템에 대한 필요성은 여전히 남아 있다.
본 발명은 데이터가 네트워크로부터 판독되는 속도에 기초하여 데이터의 네트워크로의 흐름 제어 시스템에 관한 것이다. 본 발명은 데이터 오버플로우, 데이터 언더플로우 및 네트워크 혼잡을 감소시킴으로써, 비디오 화질을 증진시키는, 네트워크 상으로 비디오 데이터를 전송하는 것과 연관된 특정 용도를 갖는다.
도 1은 본 발명이 실행될 수 있는 네트워크 시스템을 보여주고,
도 2는 도 1의 네트워크 시스템 상의 비디오 데이터 전송 및 수신 노드를 위한 연산 장치의 근접도를 나타내며,
도 3은 도 2의 연산 장비에 포함된 PC의 아키텍춰를 나타내고,
도 4는 멀티미디어 애플리케이션과 네트워크 간의 데이터 스트림에서 본 발명의 흐름 제어기의 위치를 나타내며,
도 5는 본 발명을 실행시키는 처리 단계를 나타내고,
도 6은 각각 상이한 대역폭을 갖는 도 1에 나타낸 네트워크의 여러 가지 세그먼트를 나타내며,
도 7은 어느 대역폭이 도 6에 나타낸 세그먼트를 위한 최소량의 유효 대역폭인지, 본 발명의 목적상 네트워크의 유효 대역폭을 나타낸다.
본 발명은 소정의 기간 내에 네트워크(예, 인터넷)로부터 판독된 데이터의 양을 결정하고, 이어서 동일한 소정의 기간 내에 동일한 양의 데이터를 네트워크로 순차로 출력함으로써 상기 필요성을 다룬다. 이러한 방식으로 데이터가 네트워크로 출력되는 비율을 제어함으로써, 본 발명은 시스템으로의 실질적인 버퍼 오버플로우 및(또는) 언더플로우의 도입 없이 네트워크 혼잡을 감소시킬 수 있다.
따라서, 일 국면에 따라, 본 발명은 네트워크로의 데이터 출력을 제어하는 시스템(즉, 그 방법, 장치, 및 컴퓨터-실행 가능한 공정 단계)이다. 이 시스템은 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고, 이어서 네트워크로 실질적으로 출력되는 데이터의 양과 최대량 간의 차이점을 얻는다. 이후, 이 시스템은 그 차이점에 기초한 데이터 패킷의 양을 네트워크로 소정의 가간 내에 출력한다.
바람직한 실시예에서, 이들 데이터 패킷은 비디오의 예측("P") 프레임 및(또는) 양방향("B") 프레임과 함께 비디오의 인트라("I") 프레임을 포함한다. 이들 실시예에서, 인트라 프레임들은 네트워크로 출력되고, 그 동안 예측 프레임 및(또는) 양방향 프레임의 적어도 일부는 출력되지 않는다. 예측 프레임 및(또는) 양방향 프레임이 출력되는지 여부는 네트워크의 대역폭에 의존하여 변화한다. 본 발명의 이들 특징에 의해, 네트워크의 대역폭이 모든 프레임을 수용하는 데 충분치 못할 때 가장 중요한 프레임(즉, 인트라 프레임)을 보존할 수 있다. 이는 항상은 아니지만 가변-대역폭 네트워크의 경우에 흔히 발생한다.
본 발명의 다른 바람직한 실시예에서, 소정의 기간 동안 네트워크로 출력될 최종 데이터 패킷에 대해, 시스템은 데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제1 비트수를 결정하고, 데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제2 비트수를 결정하고, 제1 비트수가 제2 비트수보다 큰 경우가 아니라, 제1 비트수가 제2 비트수보다 적은 경우에 데이터 패킷을 출력한다. 이들 특징에 의해, 본 발명은 네트워크의 용량에 가장 근접하게 대응하는 양의 데이터를 네트워크로 출력할 수 있다. 따라서, 본 발명은 실질적인 버퍼 오버플로우 및(또는) 언더플로우 없이, 그러한 상황 하에 가능한 한 큰 데이터 처리량을 유지할 수 있다.
또 다른 바람직한 실시예에서, 본 발명은 최소량의 유효 대역폭을 갖는 네트워크 세그먼트에 의해 다루어질 수 있는 최대량의 데이터에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정한다. 즉, 이러한 경우에, "병목(bottleneck)"(즉, 최소량의 유효 대역폭을 갖는 네트워크 부분)은 데이터가 네트워크로 출력될 수 있고, 네트워크로부터 판독될 수 있는 최대 속도를 규정할 것이다. 이에 순응하기 위해, 본 발명은 병목의 대역폭이 네트워크로 및 그로부터 데이터의 흐름을 제어하게 한다. 이는 네트워크 혼잡의 변화 및 병목으로 기인하는 버퍼 오버플로우 및 언더플로우를 감소시킨다.
다른 국면에 따라, 본 발명은 비디오 데이터의 흐름이 네트워크 상의 데이터 혼잡을 감소시키도록 제어되는 네트워크 시스템이다. 이 네트워크 시스템은 비디오 데이터를 코딩하고, 코딩된 비디오 데이터를 네트워크에 출력하는 송신기를 포함한다. 이 시스템에는 코딩된 비디오 데이터를 네트워크로부터 소정의 속도(예를 들면 네트워크의 병목의 대역폭으로 규정됨)로 판독하고, 코딩된 비디오 데이터를 디코딩하고, 디코딩된 비디오 데이터에 기초하여 이미지를 형성하는 수신기가 포함되기도 한다. 본 발명에 따라, 송신기는 수신기가 코딩된 비디오 데이터를 네트워크로부터 판독하는 것과 실질적으로 동일한 속도로 코딩된 비디오 데이터를 네트워크로 출력한다. 수신기가 코딩된 비디오 데이터를 네트워크로부터 판독하는 것과 실질적으로 동일한 속도로 코딩된 비디오 데이터를 네트워크로 출력함으로써, 본 발명은 네트워크 혼잡을 감소시킬 수 있고, 게다가 실질적인 버퍼 오버플로우 및 언더플로우의 발생을 감소시킬 수 있다.
본 발명의 특성이 신속히 이해될 수 있도록 간단한 요약서가 제공되었다. 본 발명의 보다 완전한 이해는 첨부된 도면과 연관된 그의 바람직한 실시예의 보다 상세한 설명에 의해 얻어질 수 있다.
도 1은 본 발명이 실행될 수 있는 네트워크 시스템(1)의 일 예를 나타낸다. 도 1에 나타낸 바와 같이, 네트워크 시스템(1)은(2 및 4) 등의 복수개의 노드 및 네트워크 매체(5)를 포함한다. 네트워크 매체(5)는 예를 들면 비디오 데이터(즉, 시청각 데이터)로 구성된 데이터 패킷 및 기타 정보가 여러 노드 간에 전송되는 이더넷 케이블, 무선 링크 또는 이들의 조합일 수 있다. 이러한 점에서, 네트워크(1)는 근거리 통신망("LAN"), 광역 통신망("WAN"), 가변 대역폭 통신망, ATM 통신망, 인터넷 등의 임의의 유형의 네트워크를 포함할 수 있다.
본 발명의 목적 상, 노드(2)는 디지털 비디오 카메라 등(도시하지 않음)의 입력 장치로부터 비디오 데이터를 수신하고, 비디오 데이터를 코딩하고, 코딩된 비디오 데이터를 네트워크로 출력하는 송신기를 포함한다. 대안으로, 노드(2)는 미리 기억된 코딩된 데이터를 포함할 수 있고, 이는 네트워크로 출력된다. 예를 들면, 본 발명의 목적 상, 노드(4)는 코딩된 비디오 데이터를 수신하는 수신기를 포함한다. 작동 중에, 노드(4)는 소정의 속도로 코딩된 비디오 데이터를 네트워크로부터 판독하고, 코딩된 비디오 데이터를 디코딩하고, 디코딩된 비디오 데이터에 기초한 이미지를 디스플레이 스크린 등의 출력 장치 상에 형성한다. 아래 보다 상세히 기재하는 바와 같이, 흐름 제어는 노드(4)(수신기)가 코딩된 비디오 데이터를 네트워크로부터 판독하는 것과 실질적으로 동일한 속도로 코딩된 비디오 데이터를 출력함으로써 실행된다.
노드(2 및 4)는 임의의 유형의 디지털 데이터 송신 장치 및 수신 장치를 포함한다. 이들 장치는 1998년 4월 20일자로 출원된 "비디오 시퀀스에서 디스플레이하기 위해 이미지를 선택하는 디지털 텔레비전 시스템(Digital Television System Which Selects Images For Display In A Video Sequence)"이라는 표제의 미합중국 특허 출원 제09/062,939호에 기재된 것 등의 비디오 회의 장비 및 디지털 텔레비전 시스템(예, 송신기 및 디지털 텔레비전 및(또는) 셋톱 박스)을 포함하지만, 이들로만 제한되지 않으며, 그의 내용을 본 명세서에 완전히 기재된 대로 본 출원에 참고 문헌으로 기재한다. 그러나, 간단히 할 목적 상, 본 발명은 각각 본 명세서에 기재된 방식으로 네트워크에 비디오 데이터를 전송하고, 그로부터 비디오 데이터를 판독할 능력을 갖는 2개의 네트워크로 연결된 컴퓨터의 문맥으로 기재할 것이다.
도 2는 노드(2 및 4)를 포함하는 네트워크로 연결된 컴퓨터를 위한 연산 장비(6)의 대표적인 예를 나타낸다. 도 2에 도시된 바와 같이, 개인용 컴퓨터("PC")(7)는 비디오 데이터를 PC(7)에 입력하는 디지털 비디오 카메라(도시하지 않음) 등의 기타 장치와 네트워크를 인터페이스로 접속시키기 위한 팩스/모뎀 접속부(10) 및 네트워크(5)에 인터페이스로 접속하기 위한 네트워크 접속부(9)를 포함한다. PC(7)는 정보(비디오를 포함함)를 사용자에게 디스플레이하기 위한 디스플레이 스크린(11), 텍스트 및 사용자 명령을 입력하기 위한 키보드(12), 커서를 디스플레이 스크린(11) 상에 배치시키고, 사용자 명령을 입력하기 위한 마우스(14), 내부에 설치된 플로피 디스크로부터 판독하고 그에 기입하기 위한 디스크 드라이브(15), 및 DVD 상에 기억된 비디오를 입력하고 액세스하기 위한 디지털 비디오 디스크("DVD") 드라이브(16)를 포함한다. PC(7)는 프린터(17) 등과 같이 그에 접속된 1개 이상의 주변 장치를 포함할 수도 있다.
도 3은 PC(7)의 내부 구조를 나타낸다. 도 3에 나타낸 바와 같이, PC(7)는 컴퓨터 하드 디스크 및(또는) RAID("저렴한 디스크의 과다한 어레이") 등의 컴퓨터-판독 가능한 매체를 포함하는 메모리(19)를 포함한다. 메모리(19)는 데이터(20), 애플리케이션(21), 프린트 드라이버(22) 및 운영 시스템(24)을 저장한다. 본 발명의 바람직한 실시예에서, 본 발명은 다른 운영 시스템과 마찬가지로 사용될 수 있지만, 이 운영 시스템(24)은 마이크로소프트윈도우즈 98과 같은 윈도우 운영 시스템이다. 애플리케이션 중에 메모리(19)에 기억된 것은 멀티미디어 애플리케이션(25), 비디오 코더(26), 비디오 디코더(27) 및 흐름 제어기(29)이다.
간단히 말하자면, 멀티미디어 애플리케이션(25)은 비디오의 처리, 조망 및 편집을 위한 많은 공지된 멀티미디어 애플리케이션 중의 임의의 것을 포함할 수 있다. 도 4에 나타낸 바와 같이, 비디오 코더(26)는 멀티미디어 애플리케이션(25)으로부터 출력된 비디오 데이터를 인코딩하는 비디오 인코딩 애플리케이션을 포함한다. DVB, MPEG-1, MPEG-2 및 MPEG-4를 포함하는 임의의 많은 공지된 코딩 기술이 사용될 수 있지만, 이들로만 제한되지 않는다. 비디오 디코더(27)는 예를 들면 이들 기술중 하나에 따라 코딩된 비디오 데이터를 디코딩하는 비디오 디코딩 애플리케이션을 포함한다. 흐름 제어기(29)는 아래 상세히 기재된 바와 같이 코딩된 비디오 데이터의 네트워크(5)로의 출력을 제어함으로써 본 발명을 실행한다. 이러한 점에서, 본 발명의 바람직한 실시예는 코딩된 비디오 데이터의 흐름을 제어하는 것과 연관되어 사용되지만, 본 발명은 코딩되지 않은 비디오(또는 비디오 아닌) 데이터의 흐름을 마찬가지로 제어하기 위해 사용될 수 있다.
도 3으로 돌아가서, PC(7)는 디스플레이 인터페이스(30), 키보드 인터페이스(31), 마우스 인터페이스(32), 디스크 드라이브 인터페이스(34), DVD 드라이브 인터페이스(35), 컴퓨터 버스(36), RAM(37), 프로세서(39), 및 프린터 드라이브(40)를 포함하기도 한다. 프로세서(39)는 RAM(37)에서 벗어나 상기한 바와 같이 애플리케이션을 실행하기 위한 마이크로프로세서 등을 포함하는 것이 바람직하다. 멀티미디어 애플리케이션(25), 비디오 코더(26), 비디오 디코더(27) 및 흐름 제어기(29)를 포함하는 그러한 애플리케이션은 메모리(19)(상기한 바와 같음) 또는 대안으로 디스크 드라이브(15) 내의 플로피 디스크 또는 DVD 드라이브(16) 등의 DVD 상에 기억될 수 있다. 프로세서(39)는 디스크 드라이브 인터페이스(34)를 통해 플로피 디스크 상에 기억된 애플리케이션(또는 기타 데이터)에 액세스하고 DVD 드라이브 인터페이스(35) 상에 기억된 애플리케이션(또는 기타 데이터)에 액세스한다.
PC(7)의 애플리케이션 실행 및 기타 업무는 키보드(12) 또는 마우스(14)를 사용하여 개시될 수 있고, 그로부터 명령은 키보드 인터페이스(31) 및 마우스 인터페이스(32) 각각을 통해 처리기(39)에 전송된다. PC(7) 상에서 진행되는 애플리케이션으로부터 출력 결과는 디스플레이 인터페이스(30)에 의해 처리될 수 있고, 이어서 디스플레이(11) 상으로 사용자에게 디스플레이되거나, 또는 대안으로 네트워크 접속부(9)를 통해 네트워크(5)에 출력될 수 있다. 예를 들면, 멀티미디어 애플리케이션(25)에 의해 처리되고 이어서 비디오 코더(26)에 의해 코딩된 입력 비디오 데이터는 도 4에 도시된 바와 같이 흐름 제어기(29)에 의해 네트워크 접속부(9)를 통해 전형적으로 출력된다. 다른 한편, 네트워크로부터 수신된 코딩된 비디오 데이터는 비디오 디코더(27)에 의해 디코딩되고, 이어서 멀티미디어 애플리케이션을 사용하여 디스플레이(11) 상에 디스플레이된다. 이 때문에, 디스플레이 인터페이스(30)는 컴퓨터 버스936) 상의 처리기939)에 의해 제공된 디코딩된 비디오 데이터에 기초하여 비디오 이미지를 형성하고, 이들 이미지를 디스플레이(11)에 출력하기 위한 디스플레이 처리기를 포함하는 것이 바람직하다. PC(7) 상에서 진행되는 워드 프로세싱 프로그램 등의 기타 애플리케이션으로부터 출력 결과는 프린터 인터페이스(40)(또는 대안으로 네트워크(5) 상의 프린터-도시되지 않음)를 통해 프린터(17)에 제공될 수 있다. 프로세서(39)는 프린터로의 전송 전에 프린트 잡 등의 적절한 포매팅을 수행하도록 프린터 드라이버(22)를 실행시킨다.
흐름 제어기(29)로 돌아가서, 이러한 애플리케이션은 코딩된 비디오(또는 기타) 데이터를 네트워크로 전송하기 위해 송신기(2)에 의해 실행된다. 간단히 말하자면, 흐름 제어기(29)는 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고, 이어서 실제로 네트워크로 출력되는 데이터의 양과 최대량 간의 차이를 획득함으로써 네트워크로의 데이터 출력을 제어하기 위한 컴퓨터-실행 가능한 코드(즉, 처리 단계)를 포함한다. 이후, 흐름 제어기(29)는 그 차이에 기초한 데이터 패킷의 양을 네트워크로 소정의 시간 내에 출력한다. 소정의 기간 내에 네트워크로 출력될 최종 데이터 패킷에 대해, 흐름 제어기(29)는 데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제1 비트수를 결정하고, 데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제2 비트수를 결정하고, 제1 비트수가 제2 비트수보다 적은 경우에 데이터 패킷을 출력한다. 그렇지 않으면, 데이터 패킷은 네트워크로 출력되지 않는다.
보다 상세하게는, 도 5는 흐름 제어기(29)를 실행시키는 처리 단계를 나타낸다. 첫째로, 단계(S501)는 네트워크(예 네트워크(5))의 버퍼 용량을 결정한다. 이러한 점에서, 데이터 패킷은 네트워크 상에 존재하고, 네트워크는 버퍼로서 효과적으로 작동하는 동안, 그의 용량은 네트워크의 대역폭 및 네트워크 지연에 기초한다. 이러한 점에서, 네트워크 지연은 클라이언트로부터 서버까지 네트워크 상의 한 방향으로 이동하도록 데이터 패킷이 취하는 시간을 포함한다. 버퍼의 용량을 산출하기 위해 사용된 대역폭은 다른 네트워크 사용자들 뿐만 아니라 용량 등의 네트워크에 속하는 기타 인자를 고려하여 취한 네트워크 상의 최소 유효 대역폭이다. 이러한 최소 유효 대역폭은 본 명세서에서 "병목" 대역폭이라 칭한다. 이러한 점에서, 본 발명은 각각 상이한 대역폭을 갖는 복수개의 상이한 세그먼트로 구성된 네트워크에 의해 사용될 수 있다. 따라서 최소량의 유효 대역폭을 갖는 세그먼트가 네트워크의 버퍼 용량을 결정하기 위해 사용되는 한편, 나머지 대역폭들은 무시된다. 다른 대역폭보다 오히려 최소량의 유효 대역폭을 사용하는 이유는 네트워크가 실질적인 양의 데이터의 손실 없이 다루어질 수 있고(있거나) 부적절하게 혼잡해지지 않을 수 있는 최대 비트 전송율을 병목 대역폭이 규정한다는 것이다.
따라서, 도 6에 나타낸 바와 같이, 네트워크(5)는 대역폭(B1, B2및 B3)을 갖는 복수개의 세그먼트를 포함할 수 있다. 이러한 경우에, 대역폭(B2)은 네트워크 상의 최소량의 유효 대역폭 및 따라서 병목 대역폭을 포함한다. 따라서, 본 발명의 목적 상, 네트워크(5)는 도 7에 나타낸 바와 같이 요약될 수 있다. 즉, 네트워크(5)는 단일 대역폭(B2)을 갖는 것으로서 생각될 수 있다. 일단 병목 대역폭이 결정되면, 단계(S501)는 병목 대역폭을 사용한 네트워크(5)의 버퍼 용량 및 네트워크(5)에 대한 네트워크 지연을 결정한다. 보다 상세하게는, 네트워크(5)의 버퍼 용량은 다음과 같이 결정된다.
용량 = B2* 네트워크 지연
상기한 바와 같이, 네트워크 지연은 클라이언트로부터 서버에 이르기까지 네트워크 상의 한 방향으로, 즉, 라운드 트립과 반대 방향으로 데이터 패킷이 이동하기 위해 취하는 시간을 포함한다.
단계(S501)에 이어, 처리가 단계(S502)로 진행된다. 단계(S502)에서, 본 발명은 네트워크의 버퍼 용량에 실질적으로 대응하는 양의 데이터를 네트워크(5)로 출력한다. 예를 들면, 출력되는 데이터의 양은 버퍼 용량 이상과 그 이하의 소정의 범위에 속할 수 있다. 데이터의 양이 네트워크의 버퍼 용량을 초과하는 경우에, 초과된 데이터는 네트워크의 각각의 노드에 존재하는 버퍼에 의해 흡수될 수 있다. 본 발명의 바람직한 실시예에서, 단계(S502)는 DVB, MPEG-1, MPEG-2, MPEG-4 등의 임의의 많은 공지된 기술에 따라 비디오 디코더(26)에 의해 코딩된 비디오 데이터의 패킷을 출력한다.
배경 기술로서, MPEG 코딩은 각각 그와 연관된 별개의 양자화 스케일 값을 갖는 16x16 화소들의 마크로블록으로 프레임을 분할함으로써 비디오 데이터의 프레임 상에서 수행된다. 이어서, 모션 추정은 각각의 프레임 중에 객체에 대한 모션 벡터(즉, 동화상)를 발생시키도록 마크로블록 상에서 수행되고, 그로 인해 전송되어야 하는 데이터의 양을 감소시킨다. 이어서, 마크로블록은 8x8 화소들의 개개의 블록으로 분할된다. 이들 8x8 화소 블록들은 각각 내부에 64 화소들 각각에 대한 DCT 계수를 발생시키는 이산 코사인 변환(이하 "DCT")에 적용된다. 8x9 화소 블록에서 DCT 계수는 대응하는 코딩 파라메터, 즉, 양자화 중량에 의해 분할된다. 이후, 추가의 연산은 무엇보다도 양자화 스케일 값을 고려하기 위해 DCT 계수에 대해 실행된다. 가변 길이 코딩은 프레임에 대해 코딩된 비디오 데이터를 발생시키도록 DCT 계수 상에서 수행된다. MPEG 코딩의 보다 완전한 설명은 1998년 6월 15일자로 출원된 "하프-펠 보간에 사용하기 위한 화소 데이터 기억 시스템(Pixel Data Storage System For Use In Half-Pel Interpolation)"이라는 표제 하의 미합중국 특허 출원 제09/094,828호에 제공되어 있으며, 그의 내용을 본 출원의 참고 문헌으로 기재한다.
상기 모션 벡터는 존재하는 프레임들로부터 비디오의 프레임들을 재구축하기 위해 사용된다. 이러한 점에서, MPEG은 인트라(또는 "I") 프레임이라 칭하는 베이스 프레임을 코딩하고, 모션 벡터를 사용하여 선행하는 I 또는 P 프레임으로부터 예측된 프레임들을 포함하는 예측(또는 "P") 프레임 및 선행하는 I 또는 P 프레임 및 후속하는 I 또는 P 프레임으로부터 보간되는 양방향(또는 "B") 프레임에 대한 데이터를 코딩하기도 한다. I 프레임들은 대부분의 데이터를 포함하기 때문에 비디오 재구축을 정확히 하기 위한 열쇠이다. 본 발명은 단계(S502)에서 네트워크 상에서 비디오 전송의 모든 프레임을 수용하기에 충분한 대역폭인 경우를 결정함으로써 이를 인식한다. 충분한 대역폭이 존재하는 경우, 본 발명은 P 및 B 프레임으로 시작하여 순응될 수 없는 프레임들은 낙하시킨다. 임의의 I 프레임들은 최종적으로 낙하됨으로써, 가능한 한 많은 I 프레임이 그러한 상황 하에 네트워크에 출력되도록 보장한다.
다음으로, 단계(S503)에서, 기간 "t"의 시간 주기/간격이 설정된다. 이와 동일한 단계에서, 본 발명은 수신기가 데이터를 네트워크로부터 판독하는 동안 하나의 그러한 시간 주기를 대기한다. 일단 이러한 데이터가 판독되면, 본 발명은 아래 상세히 기재하는 바와 같이 보다 많은 데이터를 네트워크로 출력할 수 있다. 단계(S503)에서, 시간 주기는 메모리로부터 자동으로 검색될 수 있다. 대안으로, 시간 주기는 송신기의 키보드 또는 마우스를 통해 수동으로 설정되고(되거나) 변화될 수 있다. 이러한 점에서, 시간 주기를 감소시킴으로써, 비디오 입도(즉, 해상도)의 증가를 제공할 수 있다. 즉, 아래 보다 상세히 기재하는 바와 같이, 본 발명은 각각의 시간 주기에 네트워크 버퍼를 충족시키도록 코딩된 비디오 데이터를 네트워크에 출력한다. 시간 주기의 지속 기간을 감소시킴으로써, 본 발명이 충족시키는 버퍼의 주파수는 증가된다(즉, 버퍼를 충족시키는 동안 보다 많은 간격이 존재함). 이는 증가된 비디오 입도를 초래한다.
단계(S503)에 이어, 단계(S504)는 송신기가 네트워크로 출력할 수 있는 최대량의 데이터를 결정한다. 구체적으로, 네트워크로 출력될 수 있는 데이터의 최대량, "ET(i)"는 송신기가 "i번째(즉, 현재) 시간 주기에 이르기까지 네트워크로 출력할 수 있는 데이터의 양에 대응한다. 이러한 최대량의 데이터 ET(i)는 i번째 시간 주기 동안 수신기에 의해 네트워크로부터 판독될 수 있는 데이터의 양(예, 비트 수)에 기초한다. 이러한 점에서, 시간 주기당 판독될 수 있는 데이터의 양은 다음과 같이 결정된다.
판독된 양 = B2* t
여기서, B2는 네트워크의 병목 대역폭을 포함하고, "t"는 현재 시간 간격 "i"의 기간을 포함한다. 따라서, 송신기에 의해 출력될 수 있는 최대량의 데이터에 대응하는 ET(i)는 다음에 의해 결정된다.
ET(i) = ET(i-1) + B2* t
여기서, "ET(i-1)"은 송신기가 "i-1st" 시간 주기를 통해 네트워크로 출력할 수 있는 데이터의 양에 대응한다. 따라서, 식(3)으로부터 분명하듯이, 데이터가 네트워크로 출력될 수 있는 최대 속도(즉, 현재 시간 주기 동안 출력될 수 있는 데이터의 최대량)는 데이터가 네트워크로부터 판독될 수 있는 속도에 대응한다. 이는 네트워크 혼잡 및(또는) 버퍼 오버플로우 및 언더플로우를 피하기 위해 본 발명에 의해 그러한 것으로 설정된다.
단계(S504)에 이어, 처리는 단계(S505)로 진행된다. 단계(S505)는 시간 주기 "i"의 시작으로서 네트워크로 실제로 출력된 데이터의 양 "CT(i-1)"을 결정한다. 이 값은 현재 시간 주기에 이르기까지 네트워크로 출력된 모든 패킷에서 비트 수를 합산함으로써 산출된다. 일단 CT(i-1)이 결정되면, 단계(S506)는 단계(S504)로부터 네트워크로 출력될 수 있는 데이터의 최대량과 단계(S505)로부터 네트워크로 실제로 출력되는 데이터의 양 간의 차이를 획득한다. "Q(i)"라 칭하는 이러한 차이는 시간 주기 "i" 동안 송신기에 의해 네트워크로 출력될 수 있는 데이터의 몫(즉, 데이터 소스)을 포함한다. 수학적인 용어에 있어서, Q(i)는 다음과 같이 정의된다.
Q(i) = ET(i) - CT(i-1)
단계(S506)에 이어, 처리는 단계(S507)로 진행된다. 단계(S507)에서, 송신기는 단계(S506)에서 결정된 차이에 기초하여 N(N≥1)데이터 패킷을 출력한다. 즉, 네트워크로 출력될 수 있는 데이터의 최대량과 실제로 출력된 양 간의 상기 차이를 산출함으로써, 본 발명은 네트워크의 현재의 초과 용량 및 그에 따라 네트워크가 다룰 수 있는 추가 데이터의 양을 획득한다. 이어서, 이 값은 송신기로 통과되오, 네트워크의 초과 용량 이하인 데이터의 양(즉, N 데이터 패킷)을 출력한다. 이 단계에 이어, 처리는 단계(S508)로 진행된다.
단계(S508)는 N 패킷의 데이터의 양(즉, N 패킷의 크기 "T(i)")이 네트워크의 초과 용량(즉, 단계(S506)에서 얻어진 차이)과 동일한지 여부를 결정한다. 그러한 경우에, 처리는 단계(S509)로 진행되고, 여기서 타이머는 증가되고, 실제로 출력된 데이터의 양 CT(i)은 다음과 같이 갱신된다.
CT(i) = CT(i-1) + T(i)
이어서, 처리는 단계(S510)로 진행되고, 여기서 전송될 임의의 나머지 데이터가 존재하는지 여부를 결정한다. 전송될 어떠한 나머지 데이터도 존재하지 않는 경우, 처리가 종료된다. 다른 한편, 전송될 데이터가 남아있는 경우, 처리는 단계(S504)로 복귀되거나 또는 타이머 간격의 변화가 필요한 경우 단계(S503)로 진행되고, 이후 상기 단계들이 반복된다.
다른 한편, 단계(S508)는 N 패킷의 데이터의 양이 네트워크의 초과 용량과 동일하지 않은 경우(즉, T(i)가 단계(S506)에서 얻어진 차이와 동일하지 않은 경우), 네트워크는 추가의 데이터 패킷을 수용할 수 없다. 따라서, 이러한 경우의 처리는 단계(S511 내지 S514)로 진행되고, 여기서 추가의 패킷이 그러한 상황 하에 출력될 수 있는지 여부를 결정한다.
먼저, 단계(S511)는 단계(S506)에서 결정된 차이(즉, 네트워크 용량)가 또 다른(즉, N+1st) 데이터 패킷이 출력되는 경우를 초과함으로써 제1 비트수 D1을 결정한다. 보다 상세하게는, D1은 N+1st데이터 패킷, 즉 P(N+1)에서 데이터의 양(즉, 비트수)을 단계(S507)에서 출력된 N 패킷을 포함하는 비트수, 즉 T(i)에 부가하고, 이러한 합으로부터 네트워크 용량, 즉 Q(i)를 감산함으로써 결정된다. 이는 다음과 같이 표현된다.
D1= T(i) + P(N+1)·Q(i)
이후, 단계(S512)는 또 다른(즉, N+1st) 데이터 패킷이 출력되지 않는 경우 초과량의 데이터 용량에 대응하는, 제2 비트수 D2를 결정한다. 다시 말해, D2는 네트워크 상의 데이터의 양이 N+1st데이터 패킷이 출력되지 않는 경우의 네트워크 용량에서 부족하게 됨으로써 비트수와 동일해진다. 보다 상세하게는 D2는 단계(S507)에서 출력된 N 패킷을 포함하는 비트수, 즉 T(i)를 네트워크 용량, 즉Q(i)로부터 감산함으로써 결정된다. 수학적인 용어로서, 이는 다음과 같이 표현된다.
D2= Q(i) - T(i)
다음으로, 단계(S513)는 D1이 D2보다 적은지 여부를 결정한다. D1이 D2보다 적은 경우, 이는 N+1st데이터 패킷이 네트워크의 용량을 초과하는 양이 N+1st가 출력되지 않은 경우의 용량에서 데이터 패킷이 부족한 양보다 더 적음을 의미한다. 따라서, 출력되는 N+1st데이터 패킷이 네트워크가 N+1st데이터 패킷을 출력하지 않는 경우보다 그의 용량에 보다 근접하게 한 경우, 단계(S514)는 N+1st데이터 패킷을 출력한다. 네트워크의 용량을 초과하는 데이터의 양은 네트워크의 노드에서 버퍼에 저장될 수 있다. 이후, 단계(S509)는 타이머를 증가시키고, 실제로 출력되는 데이터의 양, CT을 다음과 같이 갱신한다.
CT(i) = CT(i-1) + P(N+1) + T(i)
처리는 단계(S510)로 진행되고, 여기서 전송될 임의의 나머지 데이터가 존재하는지 여부를 결정한다. 전송될 어떠한 데이터도 남아있지 않은 경우, 처리는 종료된다. 다른 한편, 전송될 데이터가 남아있는 경우, 처리는 단계(S504)로 복귀되거나, 또는 대안으로 타이머 간격의 변화가 필요한 경우에 단계(S503)로 진행된다. 이후, 상기 단계들이 다음 시간 주기에서 새로운 데이터에 대해 반복된다.
단계(S513)로 돌아가서, D1이 D2보다 큰 경우, 이는 N+1st데이터 패킷이 네트워크의 용량을 초과하는 양이 N+1st가 출력되지 않은 경우의 용량에서 데이터 패킷이 부족한 양보다 더 많음을 의미한다. 따라서, 출력되지 않은 N+1st데이터 패킷은 네트워크가 출력되는 N+1st데이터 패킷보다 그의 용량에 보다 근접하게 하기 때문에, N+1st데이터 패킷은 출력되지 않는다. 이후, 처리는 단계(S509)로 진행되고, 여기서, 실제로 출력되는 데이터의 양, CT은 다음과 같이 갱신된다.
CT(i) = CT(i-1) + T(i)
이러한 경우에 추가의 패킷은 출력되지 않기 때문에 P(N+1)에 대한 값은 식(9)(상기 식(8)과 반대임)에 포함되지 않음에 주의해야 한다. 이어서, 처리는 단계(S510)로 진행되고, 여기서 전송될 임의의 나머지 데이터가 존재하는지 여부가 결정된다. 전송될 어떠한 데이터도 남아있지 않은 경우, 처리는 종료된다. 다른 한편, 전송될 데이터가 남아있는 경우, 처리는 단계(S504)로 진행되거나, 또는 대안으로 시간 간격의 변화가 필요한 경우 단계(S503)로 진행된다. 이 지점에서, 본 발명은 단일 N+1st데이터 패킷을 출력하는 것에 기초하여 그의 결정을 가능케 하지만 그것으로만 제한되지 않음에 주의해야 한다. 즉, 상기 결정은 초기 N 데이터 패킷 이후에 복수개의 데이터 패킷을 출력하는 것에 기초하여 이루어질 수도 있다.
단계(S508 내지 S514)에 의해, 본 발명은 네트워크를 과도하게 혼잡하게 하지 않거나 도는 네트워크 버퍼의 실질적인 언더플로우 또는 오버플로우를 유발하지 않는 용량(또는 그러한 상황 하에 가능한 한 근접하게)으로 네트워크를 유지할 수 있다. 결과적으로, 본 발명은 실질적으로 최고 입도로 가능하게 주어진 양의 유효 네트워크 대역폭을 갖는 비디오를 제공할 수 있다. 상기한 바와 같이, 본 발명은 I, P 및 B 프레임들을 포함하는 MPEG-인코딩된 비디오 데이터를 전송하는 것이 바람직하다. 네트워크의 대역폭이 상기한 바와 같이 비디오 코더(26)에 의해 제공된 모든 데이터를 수용할 수 없는 경우에, 본 발명은 I 프레임들에 대한 대역폭을 보존하기 위해 단계(S502, 2507 및(또는) S514)에서 데이터 패킷들을 출력할 때 P 및(또는) B 프레임들의 일부 또는 전보를 "낙하"시킬 것이다.
이는 본 발명이 일정한 대역폭의 네트워크에 따라 사용될 때 비디오 데이터는 네트워크의 병목에 대해 적절한 비트 전송율로 코딩될 수 있기 때문에 본 발명이 가변-대역폭 네트워크에 의해 사용되는 경우에 흔히(항상은 아님) 발생한다. 가변-대역폭 네트워크( 및 그 문제에 대해 일정한-대역폭 네트워크)의 경우에, 수신기는 송신기로부터 수신하는 초당 비트수를 계수함으로써 네트워크의 병목 대역폭의 적절한 측정치에 다다를 수 있다. 이어서, 이러한 병목 대역폭 측정치는 네트워크(예, RTCP 등)를 통해 송신기로 되 전송될 수 있고, 도 5에 나타낸 처리에 사용된다.
마지막으로, 본 발명의 바람직한 실시예들은 본 발명의 소프트웨어 이행을 나타냈지만, 그의 국면들은 하드웨어에서 마찬가지로 이행될 수 있음에 주의해야 한다. 예를 들면, 비디오 코더, 비디오 디코더, 및 흐름 제어기는 모두 이산적인 하드웨어 소자들을 구성할 수 있다. 흐름 제어기의 경우에, 이는 흐름 제어기가 도 5에 나타낸 기능을 실행하기 위한 가산기, 승산기 등을 포함할 수 있음을 의미한다.
이러한 점에서, 본 발명은 특정 예시된 실시예에 관하여 기재하였다. 본 발명은 상기 실시예 및 그에 대한 변형으로 제한되지 않고, 첨부된 특허 청구의 범위의 정신 및 범위에서 벗어나지 않는 여러 가지 변화 및 변형이 당업계의 통상의 기술을 가진 자들에 의해 이루어질 수 있음을 이해해야 한다.

Claims (19)

  1. 네트워크로 데이터 출력을 제어하는 방법에 있어서,
    소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 단계(S504),
    실제로 네트워크로 출력된 양과 최대량 간의 차이점을 획득하는 단계(S506), 및
    그 차이점에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하는 단계(S507, S514)를 포함하는 네트워크로의 데이터 출력 제어 방법.
  2. 제 1 항에 있어서,
    소정의 기간 내에 네트워크로 출력될 최종 데이터 패킷에 대해, 상기 출력 단계는,
    데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제 1 비트수를 결정하는 단계(S511),
    데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제 2 비트수를 결정하는 단계(S512), 및
    제 1 비트수가 제 2 비트수보다 적은 경우에 데이터 패킷을 출력하는 단계(S513, S514)를 포함하는 네트워크로의 데이터 출력 제어 방법.
  3. 제 1 항에 있어서, 상기 결정 단계 전에,
    네트워크의 데이터 용량을 결정하는 단계(S501), 및
    네트워크의 데이터 용량에 실질적으로 대응하는 양의 데이터를 네트워크로 출력하는 단계(S502)를 추가로 포함하는 네트워크로의 데이터 출력 제어 방법.
  4. 제 1 항에 있어서,
    상기 네트워크는 각각의 네트워크 세그먼트가 상이한 대역폭을 갖는 복수개의 네트워크 세그먼트를 포함하고,
    상기 결정 단계는 최소량의 유효 대역폭을 갖는 네트워크 세그먼트에 의해 다루어질 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 단계인(S504) 네트워크로의 데이터 출력 제어 방법.
  5. 제 1 항에 있어서,
    상기 데이터 패킷은 예측(P) 프레임 및 양방향(B) 프레임 중 적어도 하나와 함께 비디오의 인트라(I) 프레임을 포함하고,
    상기 출력 단계(S507, S514)는 인트라 프레임을 출력하는 단계 및 예측 프레임 및(또는) 양방향 프레임 중의 적어도 일부를 출력하지 않는 단계를 포함하는 단계인 네트워크로의 데이터 출력 제어 방법.
  6. 제 5 항에 있어서,
    상기 네트워크로 출력될 수 있는 데이터의 최대량은 부분적으로 네트워크의 대역폭에 기초하여 결정되고,
    상기 네트워크의 대역폭은 시간이 경과함에 따라 변화하고,
    상기 출력 단계(S504, S514)는 네트워크의 대역폭에 기초하여 예측 프레임 및(또는) 양방향 프레임을 출력할지 여부를 결정하는 단계인, 네트워크로의 데이터 출력 제어 방법.
  7. 제 1 항에 있어서,
    상기 데이터 패킷은 MPEG-1, MPEG-2 및 MPEG-4 중 하나를 사용하여 코딩된 비디오를 포함하고,
    상기 네트워크(5)는 인터넷을 포함하는 네트워크로의 데이터 출력 제어 방법.
  8. 제 1 항에 있어서,
    상기 네트워크로 출력된 데이터 패킷은 네트워크의 대역폭에 실질적으로 대응하는 비트 전송율로 코딩되는 네트워크로의 데이터 출력 제어 방법.
  9. 네트워크(5)로의 데이터 출력을 제어하는 장치에 있어서,
    컴퓨터-실행 가능한 처리 단계들(29)을 기억하는 메모리(19), 및
    (i) 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고,
    (ii) 실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하고,
    (iii) 그 차이에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하도록 메모리(19)에 기억된 처리 단계들(29)을 실행시키는 처리기(39)를 포함하는 네트워크(5)로의 데이터 출력 제어 장치.
  10. 제 9 항에 있어서,
    소정의 기간 내에 네트워크(5)로 출력될 최종 데이터 패킷에 대해, 상기 처리기(39)는,
    (i) 데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제 1 비트수를 결정하고,
    (ii) 데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제 2 비트수를 결정하고,
    (iii) 제 1 비트수가 제 2 비트수보다 적은 경우에 데이터 패킷을 출력하는 네트워크로의 데이터 출력 제어 장치.
  11. 제 9 항에 있어서,
    최대량의 데이터를 결정하기 전에, 상기 처리기(39)는,
    (i) 네트워크(5)의 데이터 용량을 결정하고,
    (ii) 네트워크(5)의 데이터 용량에 실질적으로 대응하는 양의 데이터를 네트워크로 출력하는 네트워크로의 데이터 출력 제어 장치.
  12. 제 9 항에 있어서,
    상기 네트워크(5)는 각각의 네트워크 세그먼트가 상이한 대역폭을 갖는 복수개의 네트워크 세그먼트를 포함하고,
    상기 처리기(39)는 최소량의 유효 대역폭을 갖는 네트워크 세그먼트에 의해 다루어질 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 네트워크로의 데이터 출력 제어 장치.
  13. 제 9 항에 있어서,
    상기 데이터 패킷은 예측(P) 프레임 및 양방향(B) 프레임 중 적어도 하나와 함께 비디오의 인트라(I) 프레임을 포함하고,
    출력하는 동안, 상기 처리기(39)는 인트라 프레임을 출력하고, 예측 프레임 및(또는) 양방향 프레임 중의 적어도 일부를 출력하지 않는 네트워크로의 데이터 출력 제어 장치.
  14. 제 13 항에 있어서,
    상기 네트워크로 출력될 수 있는 데이터의 최대량은 부분적으로 네트워크의 대역폭에 기초하여 결정되고,
    상기 네트워크(5)의 대역폭은 시간이 경과함에 따라 변화하고,
    상기 처리기(39)는 네트워크(5)의 대역폭에 기초하여 예측 프레임 및 양방향 프레임을 출력할지 여부를 결정하는 네트워크로의 데이터 출력 제어 장치.
  15. 제 9 항에 있어서,
    상기 데이터 패킷은 MPEG-1, MPEG-2 및 MPEG-4 중 하나를 사용하여 코딩된 비디오를 포함하고,
    상기 네트워크(5)는 인터넷을 포함하는 네트워크로의 데이터 출력 제어 장치.
  16. 제 9 항에 있어서,
    상기 네트워크(5)로 출력된 데이터 패킷은 네트워크의 대역폭에 실질적으로 대응하는 비트 전송율로 코딩되는 네트워크로의 데이터 출력 제어 장치.
  17. 컴퓨터-판독 가능한 매체 상에 기억된 컴퓨터-실행 가능한 처리 스텝에 있어서,
    제 1 항 내지 제 8 항중 어느 한 항에 청구된 방법의 단계들을 수행하기 위해, 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하기 위한 코드(29, S504),
    실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하기 위한 코드(29, S506), 및
    상기 차이에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하기 위한 코드(29, S507, S514)를 포함하는 컴퓨터-판독 가능한 매체 상에 기억된 컴퓨터-실행 가능한 처리 스텝.
  18. 네트워크 상의 데이터 혼잡을 감소시키도록 비디오 데이터의 흐름이 제어되는 네트워크 시스템에 있어서,
    비디오 데이터를 코딩하고, 코딩된 비디오 데이터를 네트워크(5)에 출력하는 송신기(2), 및
    코딩된 비디오 데이터를 네트워크로부터 소정의 속도로 판독하고, 코딩된 비디오 데이터를 디코딩하고, 디코딩된 비디오 데이터에 기초하여 이미지를 형성하는 수신기(4)를 포함하고,
    여기서, 상기 송신기(2)는 수신기(4)가 코딩된 비디오 데이터를 네트워크로부터 판독하는 것과 실질적으로 동일한 속도로 코딩된 비디오 데이터를 네트워크(5)로 출력하는 비디오 데이터의 흐름이 제어되는 네트워크 시스템.
  19. 제 18 항에 있어서, 상기 송신기(2)는,
    (i) 소정의 기간 동안 수신기에 의해 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고,
    (ii) 실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하고,
    (iii) 그 차이에 기초하여 코딩된 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력시킴으로써 코딩된 비디오 데이터를 네트워크(5)로 출력하는 네트워크 시스템.
KR1020007007082A 1998-10-23 1999-10-22 네트워크로의 데이터 출력 레이트 제어 시스템 KR100742106B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/177,962 1998-10-23
US09/177,962 US6412013B1 (en) 1998-10-23 1998-10-23 System for controlling data output to a network
US9/177,962 1998-10-23

Publications (2)

Publication Number Publication Date
KR20010033572A true KR20010033572A (ko) 2001-04-25
KR100742106B1 KR100742106B1 (ko) 2007-07-25

Family

ID=22650637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007007082A KR100742106B1 (ko) 1998-10-23 1999-10-22 네트워크로의 데이터 출력 레이트 제어 시스템

Country Status (6)

Country Link
US (1) US6412013B1 (ko)
EP (1) EP1046299A1 (ko)
JP (1) JP2004522325A (ko)
KR (1) KR100742106B1 (ko)
TW (1) TW512635B (ko)
WO (1) WO2000025518A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100770906B1 (ko) * 2006-02-10 2007-10-26 삼성전자주식회사 비디오 패킷의 출력 비트레이트 조절 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665728B1 (en) * 1998-12-30 2003-12-16 Intel Corporation Establishing optimal latency in streaming data applications that use data packets
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
US7076495B2 (en) * 2001-04-26 2006-07-11 International Business Machines Corporation Browser rewind and replay feature for transient messages by periodically capturing screen images
US7180858B1 (en) * 2001-09-10 2007-02-20 Adara Networks, Inc. Tool for measuring available bandwidth in computer networks
US20030200336A1 (en) * 2002-02-15 2003-10-23 Suparna Pal Apparatus and method for the delivery of multiple sources of media content
US7769900B1 (en) * 2002-03-29 2010-08-03 Graphics Properties Holdings, Inc. System and method for providing interframe compression in a graphics session
US7586938B2 (en) 2003-10-24 2009-09-08 Microsoft Corporation Methods and systems for self-describing multicasting of multimedia presentations
US8045467B2 (en) * 2006-07-28 2011-10-25 Hewlett-Packard Development Company, L. P. Reducing a number of data packets to increase a number of error correcting packets
JP4587053B2 (ja) 2007-08-28 2010-11-24 日本電気株式会社 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム
CN101924603B (zh) * 2009-06-09 2014-08-20 华为技术有限公司 数据传输速率的自适应调整方法、装置及系统
US10474597B2 (en) * 2015-08-03 2019-11-12 Marvell World Trade Ltd. Systems and methods for performing unknown address discovery in a MoChi space

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2038897B1 (es) * 1991-06-07 1995-10-16 Alcatel Espacio Sa Metodo y dispositivo de regulacion de velocidad de salida de datos para compresores de imagenes con velocidad de salida variable.
US5402252A (en) * 1991-06-14 1995-03-28 Matsushita Electric Industrial Co., Ltd. Image reader and image reproducing system both having a line sensor
DE69330661T2 (de) * 1992-04-27 2002-06-27 Nippon Telegraph & Telephone Paketnetzwerk und Verfahren zur Vermeidung von Überlastung eines solchen Netzwerks
JP3187230B2 (ja) * 1993-09-06 2001-07-11 株式会社東芝 ふくそう制御方法及びふくそう制御装置
US5901149A (en) * 1994-11-09 1999-05-04 Sony Corporation Decode and encode system
US5543853A (en) * 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
US5675384A (en) * 1995-10-03 1997-10-07 Nec Usa, Inc. VBR MPEG video encoding for ATM networks with dynamic bandwidth renegotiation
US6002802A (en) * 1995-10-27 1999-12-14 Kabushiki Kaisha Toshiba Video encoding and decoding apparatus
US5751969A (en) * 1995-12-04 1998-05-12 Motorola, Inc. Apparatus and methods for predicting and managing congestion in a network
US5936940A (en) * 1996-08-22 1999-08-10 International Business Machines Corporation Adaptive rate-based congestion control in packet networks
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
SE519917C2 (sv) * 1997-04-16 2003-04-22 Telia Ab Förbättringar av,eller med avseende på,överföring av MPEG-2- data med variabel bithastighet

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100770906B1 (ko) * 2006-02-10 2007-10-26 삼성전자주식회사 비디오 패킷의 출력 비트레이트 조절 방법 및 장치
US7623470B2 (en) 2006-02-10 2009-11-24 Samsung Electronics Co., Ltd. Method and apparatus for adjusting output bit rate of video packet

Also Published As

Publication number Publication date
TW512635B (en) 2002-12-01
EP1046299A1 (en) 2000-10-25
KR100742106B1 (ko) 2007-07-25
WO2000025518A1 (en) 2000-05-04
JP2004522325A (ja) 2004-07-22
US6412013B1 (en) 2002-06-25

Similar Documents

Publication Publication Date Title
US6910079B2 (en) Multi-threshold smoothing
US10321138B2 (en) Adaptive video processing of an interactive environment
US7668170B2 (en) Adaptive packet transmission with explicit deadline adjustment
US8711929B2 (en) Network-based dynamic encoding
US6850564B1 (en) Apparatus and method for dynamically controlling the frame rate of video streams
JP3900413B2 (ja) 映像情報伝送方式およびプログラム
US6269120B1 (en) Method of precise buffer management for MPEG video splicing
US8345754B2 (en) Signaling buffer fullness
US20030233464A1 (en) Priority progress streaming for quality-adaptive transmission of data
EP2612495B1 (en) Adaptive streaming of video at different quality levels
EP3016395B1 (en) Video encoding device and video encoding method
US20080084927A1 (en) Real-time network adaptive digital video encoding/decoding
US20080170630A1 (en) System and a method for controlling one or more signal sequences characteristics
JP5724879B2 (ja) 品質制御装置、動画送信システム、品質制御方法および記録媒体
JP3668110B2 (ja) 画像伝送システムおよび画像伝送方法
KR100742106B1 (ko) 네트워크로의 데이터 출력 레이트 제어 시스템
US20050089092A1 (en) Moving picture encoding apparatus
JP2022516517A (ja) メディアタイトルのバッファ制約バージョンを生成する際の符号化演算の最適化
JP4914400B2 (ja) 品質推定方法、品質推定システム、ユーザ端末、品質管理端末およびプログラム
KR100511034B1 (ko) 화상전송장치및화상전송방법
JP2005322995A (ja) リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
JP2008263443A (ja) 情報処理装置および方法、並びにプログラム
US7533075B1 (en) System and method for controlling one or more signal sequences characteristics
Yunus et al. A rate control model of MPEG-4 encoder for video transmission over Wireless Sensor Network
KR101703133B1 (ko) 실시간 소스-채널 복합부호화 방법 및 그 장치

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: 20120710

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130704

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee