KR20010033572A - 네트워크로의 데이터 출력 속도 제어 시스템 - Google Patents
네트워크로의 데이터 출력 속도 제어 시스템 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 18
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 239000000872 buffer Substances 0.000 description 23
- 238000013139 quantization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234318—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44004—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5636—Monitoring or policing, e.g. compliance with allocated rate, corrective actions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5664—Support 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
현존하는 네트워크 시스템은 상이한 노드들 사이에 시청각 데이터로 구성된 실시간 비디오 데이터를 전송하는 능력을 갖는다. 인터넷은 특히 최근 들어 그것을 통해 통과되는 비디오의 양에 있어서 현저한 증가를 경험하고 있다. 그러나, 네트워크로된 비디오(특히, 인터넷 비디오)를 경험한 자라면 누구나 그것은 미진한 점이 많음을 인식하고 있다. 예를 들면, 그러한 비디오에서 동작은 종종 부드럽지 않고 과장되게 보인다. 마찬가지로, 이미지 동작 및 오디오 데이터는 일치하지 않음으로써, 비디오 화질을 추가로 저하시킨다.
네트워크 비디오와 관련한 상기 문제점들에 관하여 수많은 이유가 있고, 그중 하나는 네트워크를 통해 이동하는 데이터의 흐름 제어에 관한 것이다. 예로써, 인터넷을 들면, 인터넷은 "스트리밍" 어플리케이션, 즉, 비디오 데이터의 "스트림"을 인터넷으로 출력하는 멀티미디어 어플리케이션으로부터 데이터를 처리하는 데 있어서 사용자 데이터그램 프로토콜("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)
- 네트워크로 데이터 출력을 제어하는 방법에 있어서,소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 단계(S504),실제로 네트워크로 출력된 양과 최대량 간의 차이점을 획득하는 단계(S506), 및그 차이점에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하는 단계(S507, S514)를 포함하는 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서,소정의 기간 내에 네트워크로 출력될 최종 데이터 패킷에 대해, 상기 출력 단계는,데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제 1 비트수를 결정하는 단계(S511),데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제 2 비트수를 결정하는 단계(S512), 및제 1 비트수가 제 2 비트수보다 적은 경우에 데이터 패킷을 출력하는 단계(S513, S514)를 포함하는 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서, 상기 결정 단계 전에,네트워크의 데이터 용량을 결정하는 단계(S501), 및네트워크의 데이터 용량에 실질적으로 대응하는 양의 데이터를 네트워크로 출력하는 단계(S502)를 추가로 포함하는 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서,상기 네트워크는 각각의 네트워크 세그먼트가 상이한 대역폭을 갖는 복수개의 네트워크 세그먼트를 포함하고,상기 결정 단계는 최소량의 유효 대역폭을 갖는 네트워크 세그먼트에 의해 다루어질 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 단계인(S504) 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서,상기 데이터 패킷은 예측(P) 프레임 및 양방향(B) 프레임 중 적어도 하나와 함께 비디오의 인트라(I) 프레임을 포함하고,상기 출력 단계(S507, S514)는 인트라 프레임을 출력하는 단계 및 예측 프레임 및(또는) 양방향 프레임 중의 적어도 일부를 출력하지 않는 단계를 포함하는 단계인 네트워크로의 데이터 출력 제어 방법.
- 제 5 항에 있어서,상기 네트워크로 출력될 수 있는 데이터의 최대량은 부분적으로 네트워크의 대역폭에 기초하여 결정되고,상기 네트워크의 대역폭은 시간이 경과함에 따라 변화하고,상기 출력 단계(S504, S514)는 네트워크의 대역폭에 기초하여 예측 프레임 및(또는) 양방향 프레임을 출력할지 여부를 결정하는 단계인, 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서,상기 데이터 패킷은 MPEG-1, MPEG-2 및 MPEG-4 중 하나를 사용하여 코딩된 비디오를 포함하고,상기 네트워크(5)는 인터넷을 포함하는 네트워크로의 데이터 출력 제어 방법.
- 제 1 항에 있어서,상기 네트워크로 출력된 데이터 패킷은 네트워크의 대역폭에 실질적으로 대응하는 비트 전송율로 코딩되는 네트워크로의 데이터 출력 제어 방법.
- 네트워크(5)로의 데이터 출력을 제어하는 장치에 있어서,컴퓨터-실행 가능한 처리 단계들(29)을 기억하는 메모리(19), 및(i) 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고,(ii) 실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하고,(iii) 그 차이에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하도록 메모리(19)에 기억된 처리 단계들(29)을 실행시키는 처리기(39)를 포함하는 네트워크(5)로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,소정의 기간 내에 네트워크(5)로 출력될 최종 데이터 패킷에 대해, 상기 처리기(39)는,(i) 데이터 패킷이 네트워크로 출력되는 경우에 어느 만큼의 양의 데이터가 그 차이를 초과할 것인지에 의해 제 1 비트수를 결정하고,(ii) 데이터 패킷이 네트워크로 출력되지 않는 경우에 어느 만큼의 양의 데이터가 그 차이에 부족할 것인지에 의해 제 2 비트수를 결정하고,(iii) 제 1 비트수가 제 2 비트수보다 적은 경우에 데이터 패킷을 출력하는 네트워크로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,최대량의 데이터를 결정하기 전에, 상기 처리기(39)는,(i) 네트워크(5)의 데이터 용량을 결정하고,(ii) 네트워크(5)의 데이터 용량에 실질적으로 대응하는 양의 데이터를 네트워크로 출력하는 네트워크로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,상기 네트워크(5)는 각각의 네트워크 세그먼트가 상이한 대역폭을 갖는 복수개의 네트워크 세그먼트를 포함하고,상기 처리기(39)는 최소량의 유효 대역폭을 갖는 네트워크 세그먼트에 의해 다루어질 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하는 네트워크로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,상기 데이터 패킷은 예측(P) 프레임 및 양방향(B) 프레임 중 적어도 하나와 함께 비디오의 인트라(I) 프레임을 포함하고,출력하는 동안, 상기 처리기(39)는 인트라 프레임을 출력하고, 예측 프레임 및(또는) 양방향 프레임 중의 적어도 일부를 출력하지 않는 네트워크로의 데이터 출력 제어 장치.
- 제 13 항에 있어서,상기 네트워크로 출력될 수 있는 데이터의 최대량은 부분적으로 네트워크의 대역폭에 기초하여 결정되고,상기 네트워크(5)의 대역폭은 시간이 경과함에 따라 변화하고,상기 처리기(39)는 네트워크(5)의 대역폭에 기초하여 예측 프레임 및 양방향 프레임을 출력할지 여부를 결정하는 네트워크로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,상기 데이터 패킷은 MPEG-1, MPEG-2 및 MPEG-4 중 하나를 사용하여 코딩된 비디오를 포함하고,상기 네트워크(5)는 인터넷을 포함하는 네트워크로의 데이터 출력 제어 장치.
- 제 9 항에 있어서,상기 네트워크(5)로 출력된 데이터 패킷은 네트워크의 대역폭에 실질적으로 대응하는 비트 전송율로 코딩되는 네트워크로의 데이터 출력 제어 장치.
- 컴퓨터-판독 가능한 매체 상에 기억된 컴퓨터-실행 가능한 처리 스텝에 있어서,제 1 항 내지 제 8 항중 어느 한 항에 청구된 방법의 단계들을 수행하기 위해, 소정의 기간 동안 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하기 위한 코드(29, S504),실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하기 위한 코드(29, S506), 및상기 차이에 기초한 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력하기 위한 코드(29, S507, S514)를 포함하는 컴퓨터-판독 가능한 매체 상에 기억된 컴퓨터-실행 가능한 처리 스텝.
- 네트워크 상의 데이터 혼잡을 감소시키도록 비디오 데이터의 흐름이 제어되는 네트워크 시스템에 있어서,비디오 데이터를 코딩하고, 코딩된 비디오 데이터를 네트워크(5)에 출력하는 송신기(2), 및코딩된 비디오 데이터를 네트워크로부터 소정의 속도로 판독하고, 코딩된 비디오 데이터를 디코딩하고, 디코딩된 비디오 데이터에 기초하여 이미지를 형성하는 수신기(4)를 포함하고,여기서, 상기 송신기(2)는 수신기(4)가 코딩된 비디오 데이터를 네트워크로부터 판독하는 것과 실질적으로 동일한 속도로 코딩된 비디오 데이터를 네트워크(5)로 출력하는 비디오 데이터의 흐름이 제어되는 네트워크 시스템.
- 제 18 항에 있어서, 상기 송신기(2)는,(i) 소정의 기간 동안 수신기에 의해 네트워크로부터 판독될 수 있는 데이터의 양에 기초하여 네트워크로 출력될 수 있는 데이터의 최대량을 결정하고,(ii) 실제로 네트워크로 출력된 양과 최대량 간의 차이를 획득하고,(iii) 그 차이에 기초하여 코딩된 데이터 패킷의 양을 네트워크로 소정의 기간 내에 출력시킴으로써 코딩된 비디오 데이터를 네트워크(5)로 출력하는 네트워크 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 | ||
US09/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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100770906B1 (ko) * | 2006-02-10 | 2007-10-26 | 삼성전자주식회사 | 비디오 패킷의 출력 비트레이트 조절 방법 및 장치 |
Families Citing this family (12)
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 |
US9003461B2 (en) * | 2002-12-10 | 2015-04-07 | Ol2, Inc. | Streaming interactive video integrated with recorded video segments |
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 | 华为技术有限公司 | 数据传输速率的自适应调整方法、装置及*** |
US10198376B2 (en) * | 2015-08-03 | 2019-02-05 | Marvell World Trade Ltd. | Methods and apparatus for accelerating list comparison operations |
Family Cites Families (12)
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 |
-
1998
- 1998-10-23 US US09/177,962 patent/US6412013B1/en not_active Expired - Lifetime
-
1999
- 1999-10-22 KR KR1020007007082A patent/KR100742106B1/ko not_active IP Right Cessation
- 1999-10-22 JP JP2000578995A patent/JP2004522325A/ja not_active Withdrawn
- 1999-10-22 WO PCT/EP1999/008232 patent/WO2000025518A1/en not_active Application Discontinuation
- 1999-10-22 EP EP99957973A patent/EP1046299A1/en not_active Withdrawn
-
2000
- 2000-02-15 TW TW089102513A patent/TW512635B/zh not_active IP Right Cessation
Cited By (2)
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 |
US6412013B1 (en) | 2002-06-25 |
JP2004522325A (ja) | 2004-07-22 |
WO2000025518A1 (en) | 2000-05-04 |
EP1046299A1 (en) | 2000-10-25 |
KR100742106B1 (ko) | 2007-07-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 | |
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 | |
KR100742106B1 (ko) | 네트워크로의 데이터 출력 레이트 제어 시스템 | |
US20080170630A1 (en) | System and a method for controlling one or more signal sequences characteristics | |
US20050074061A1 (en) | Signaling buffer fullness | |
JP5724879B2 (ja) | 品質制御装置、動画送信システム、品質制御方法および記録媒体 | |
JP3668110B2 (ja) | 画像伝送システムおよび画像伝送方法 | |
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 |