SYSTEM FOR ADAPTIVE VIDEO/AUDIO TRANSPORT OVER A NETWORKA system for adaptively transporting video over networks wherein the available bandwidth varies with time. The system comprises a video/audio codec that functions to compress, code, decode and decompress video streams that are transmitted over networks having available banwidths that vary with time and location. Depending on the channel bandwidth, the system adjusts the compression ratio to accomodate a plurality of bandwidths ranging from 20 Kbps for POTS to several Mbps for switched LAN and ATM environments. Bandwidth adjustability is provided by offering a trade off between video resolution, frame rate and individual frame quality. The system generates a video data stream comprised of Key, P and B frames from a raw source of video. Each frame type is further comprised of multiple levels of data representing varying degrees of quality. In addition, several video server platforms can be utilized in tandem to transmit video/audio information with each video server platform transmitting information for a single compression/resolution level.A method of transporting video over a network channel, comprising the steps of: compressing a raw video source into a plurality of frames, each frame comprising a plurality of levels, each level corresponding to a particular degree of compression; estimating the bandwidth of the network channel; selecting one of said plurality of levels of each frame to transmit over the network channel in accordance with said bandwidth estimate whereby the level selected optimizes the use of the bandwidth of the network channel; and sending said selected level of each frame over the network channel.
네트웍을 통한 적합한 비디오/오디오의 전송을 위한 시스템이 발명은 시간에 따라 변하는 사용가능한 대역폭을 가진 네트웍상에서 비디오를 적합하게 전달하는 시스템이다. 이 발명은 인터넷이나 다른 TCP/IP 네트웍 같은 인터넷 프로토콜(Internet Protocol:IP)을 이용하는 것을 포함하는 어느 타입의 네트웍에 대한 어플리케이션을 지니고 있다.이 시스템은 시간과 지역에 따라 변하는 사용가능한 대역폭을 가진 네트웍 상에서 전송되는 비디오 스트림을 압축(compress), 코드(code), 디코드(decode), 압축해제(decompress) 하는 기능을 갖는 비디오/오디오 코덱(codec) 또는 코더(coder)/디코더(decoder)를 포함한다.채널 대역폭에 의존하여, 시스템은 평범한 구식 전화 서비스(plain old telephone service:POTS)용 20Kbps에서 스위치된 LAN과 ATM 환경용 수 Mbps까지 범위의 복수의 대역폭들을 수용하기(accommodate) 위한 압축율을 조정한다. 대역폭 조정은 비디오 해상도(예를 들어, 160X120, 320X240, 640X480), 프레임 율(예를 들어 30fps, 15 fps, 7.5 fps) 그리고 개인적인 프레임 품질(quality) 사이의 균형을 제공(offering)함으로써 공급된다. 이 유연성은 갖가지의 요구를 강조(stress)하는 다른 어플리케이션들에 있어서 유용하다.시스템은 생(raw) 비디오 소스로부터 여러 레벨을 포함하는 우선순위가 정해진(prioritized) 비디오 데이타 스트림을 생성하는 기능을 한다. 이 비디오 스트림은 파일 안에 저장되고 클라이언트에 제공할 때 비디오 서버에 의해 억세스 된다. 작동시, 비디오 클라이언트는 단지 레벨들의 부분(subset)만 수신한다. 이 레벨들은 네트웍 접속과 어울리는 적합한 데이타 내용을 갖도록 선택되어진다. 이는 소모된 네트웍 대역폭과 비디오 이미지 품질 사이에 보다 나은 적합(fit)을 허용한다. 레벨들의 각각은 이전 레벨들의 상위에 세워지고, 더 높은 레벨들은 이전의 레벨들에 표현되지 않은 추가적인 정보를 제공한다. 이것은 대역폭이 클라이언트 엔드(end) 또는 인코더/서버 쪽 상에서 낭비되지 않음을 보증한다. 시스템은 클라이언트쪽으로 그렇게 전송되서 네트웍상의 어느 개별적인 패킷의 손실도 클라이언트 쪽의 한결같은 낮아진(degraded) 품질을 발생하지 않는 비디오 스트림을 발생한다.시스템에 의해 수행되는 확장가능한(scaleable) 압축은 상당한 다양성(diversity)와 이질성(heterogeneity)으로 특징지어진 인터넷 환경 안에서 투명한(transparent) 비디오에 적합하다. 시스템은 전송되고 있는 비디오 데이타의 이미지 품질을 이용가능한 네트웍 대역폭의 넓은 변화와 조화시키는 기능을 한다. 또한 시스템은 클라이언트 컴퓨터 시스템 상의 이용가능한 계산력(computing power)의 차이를 조화시키는 비디오 데이타를 조정할 수 있다. 시스템, 인터넷 상에서 찾아진 것과 같은 '최선의 노력(best effort)' 프로토콜들을 이용한, 은 이용가능한 대역폭의 시간에 따라 변하는 특성(nature)에 적응시킨다.그러므로 생 비디오 소스를 복수의 레벨들로 구성되고 그 각각의 레벨은 압축의 특정한 정도에 일치하는 그러한 복수의 플레임들로 압축하는 단계, 네트웍 채널의 대역폭을 평가(estimate)하는 단계, 대역폭 평가 - 그것에 의하여 선택된 레벨이 네트웍 채널의 대역폭의 사용을 최적화 시키는 - 에 따라서 네트웍 채널을 통해 전송할 각각의 프레임의 복수의 레벨들의 하나를 선택하는 단계, 그리고 네트웍 채널을 통해 각각의 프레임의 선택된 레벨을 전송하는 단계로 구성된, 이 발명에 따라 제공되는 네트웍 채널을 통한 비디오를 전송하는 방법이 있다.압축단계는 생 비디오 소스를 각 형태가 다른 양의 비디오 내용 정보를 포함하고, 복수의 사진 그룹(plurality of group of pictures:GOP) 순서들로 구성된 비디오 스트림을 형성하도록 그룹지어진 복수의 다른 형태의 프레임들로 압축하는 단계를 포함한다. 압축단계는 생 비디오 소스를 복수의 사진 그룹(GOP) 순서들로 구성된 비디오 스트림을 형성하도록 생성된 키(Key), P, 그리고 B 형태(type) 프레임들로 압축하는 단계를 포함한다.또한 생 비디오 소스로부터 특정한 프레임 형태를 갖고, 그 형태가 비디오 내용 정보의 특정한 양을 포함하고, 각 레벨이 압축의 특정 정도와 일치하는 그러한 복수의 레벨들로 구성된 그러한 각각의 프레임에 있어서, 복수의 그러한 프레임들을 생성하도록 데이타를 압축하는 단계, 네트웍 채널의 대역폭을 평가하는 단계, 비디오 클라이언트에 표시되어지도록 대기하는 비디오 정보의 양을 결정하는 단계, 대역폭 평가 - 그것에 의하여 선택된 레벨이 네트웍 채널의 대역폭의 사용을 최적화 시키는 - 에 따라서 네트웍 채널을 통해 전송할 각각의 프레임의 복수의 레벨 중의 하나를 선택하는 단계, 비디오 클라이언트에서 표시되어지도록 대기하는 비디오 정보의 양에 따라서 네트웍 채널을 통해 전송할 특정한 프레임 형태를 갖는 어떤 프레임을 선택하는 단계, 그리고 특정한 프레임 타입을 갖고 선택된 레벨의 선택된 프레임들을 네트웍 채널을 통하여 전송하는 단계를 포함하는, 발명에 따라서 제공된 네트웍 채널을 통해서 비디오 서버로 부터 비디오 클라이언트로 비디오를 전송하는 방법이 있다.더 나아가서, 발명에 따라서 이 비디오 데이타의 프레임 - 각 프레임은 복수의 압축 레벨들로 구성되고 특정한 형태로 되어 있다 - 의 복수로 구성된 데이타 소스로부터 비디오 클라이언트로 네트웍 채널을 통해 전송하는, 다음과 같은 수단들을 포함하는 비디오 서버가 있다. 비디오 소스로부터 비디오 데이타의 입력 프레임을 위한 수신수단(receiving means)들. 프레임 안의 압축 레벨과 네트웍 채널의 측정된 이용가능한 대역폭에 따라서 전송할 특별한 형태를 갖는 프레임을 결정하고, 비디오 데이타의 프레임들을 네트웍 채널을 통한 전송을 위한 복수의 패킷들로 추상화(encapsulating)하는, 수신수단과 결합된 송신수단(sending means)들. 그리고 수신 수단들과 송신수단들의 작용을 관리하기 위한 제어기(controller)-그 안에서 송신 수단들의 전송 비율이 네트웍 채널의 이용가능한 대역폭을 조화하도록 유지되는-. 또한, 네트웍 채널의 이용가능한 대역폭을 측정하기 위한 비율 제어 단위(unit), 수신 수단들에 의한 비디오 프레임 데이타 출력을 입력하기 위한 프레임 선택기(selector), 비율 제어 장치에 의해 측정된 대역폭에 따른 특별한 압축 레벨의 프레임을 출력하는 프레임 선택기, 프레임 선택기에 의한 비디오 프레임 데이타 출력을 입력하기 위한 패킷 생성기(generator), 비디오 프레임 데이타를 전송을 위한 복수의 패킷들로 추상화하기 위한 패킷 생성기, 특정한 형태를 지니는 어떤 프레임들이 전송되어질지를 결정하는 패킷 생성기, 네트웍 채널로 패킷 생성기에 의한 복수의 패킷 출력을 위치하는(placing) 패킷 전송기(transmitter), 그리고 그것에 의하여 받은 패킷들에 대한 응답으로 네트웍 채널을 통하여 비디오 클라이언트에 의해 보내어 지는 수신 통지(receiving acknowledgments)들로 구성되는 송신수단이 있다.게다가, 특정한 바이트들의 수를 산출(yield)하기 위해 복수의 패킷들을 네트웍 채널을 통해 수신기(receiver)로 온라인으로 전송하는 송신기(sender), 수신기에 의해 패킷들의 수신에 대한 응답으로 송신기에 통지를 보내고, 수신 대역폭의 증가 비율이 예정된 선(threshold)안으로 적어질 때까지 바디으 온라인의 수를 증가하고, 수신기에서의 수신 대역폭이 되는 네트웍 채널의 대역폭을 측정하는 수신기를 포함하는, 발명에 따라 제공된 송신기를 수신기와 접속하는 네트웍 채널의 대역폭을 평가하는 방법이 있다.또한, 발명에 따라 제공되는 , 이전의(previous) 송신된 패킷과 최후로(last) 송신된 패킷에 관계하는 송신기 관련 데이타를 사용하는 수신기에 송신된 바이트의 수(BytesSent)를 결정하는 단계, 이전의 수신된 패킷과 마지막으로 수신된 패킷에 관계하는 수신기 관련 데이타를 사용하는 수신기에 의해 수신된 바이트의 수(BytesRec)를 결정하는 단계, 다음의 방정식에 따라서 송신률(SendRate)를 계산하는 단계,다음의 방정식에 따라서 수신률(RecRate)을 계산하는 단계,송신률을 수신률과 비교하는 단계, 만약 송신률이 수신률보다 작거나 동등하면 송신률을 증가하는 단계, 그리고 송신률이 수신률보다 높으면 송신률을 감소하는 단계를 포함하는 단계를 구성하는, 특정한 이용가능한 대역폭을 갖는 송신기를 수신기에 연결한 네트웍 채널 상에서 바이트 온라인의 최대 수(maximum number)를 유지하는 방법이 있다.생 비디오 소스인 데이타로부터 특정한 압축 정도에 부합하는 각 레벨의 복수를 구성하고, 각각이 특정한 양의 비디오 내용 정보를 포함하는 특정한 프레임 형태로 된 각각의 프레임의 복수를 생성하도록 압축을 하는 단계, 네트웍 채널의 대역폭을 평가하는 단계, 비디오 클라이언트에서 표시되도록 대기하는 비디오 정보의 양을 결정하는 단계, 대역폭 평가 - 그것에 의해 선택된 레벨은 네트웍 채널의 대역폭의 사용을 최적화 한다 - 에 따라서 네트웍 채널 상에서 전송할 각 프레임의 복수의 레벨들 중의 하나를 선택하는 단계, 비디오 클라이언트에서 표시되도록 대기하는 비디오 정보의 양에 따라 네트웍 채널 상에서 전송할 특별한 프레임 형태를 갖는 어느 프레임을 선택하는 단계, 신뢰할 수 있는 통신 프로토콜을 사용하는 네트웍 채널을 통하여 많은 양의 비디오 데이타 내용과 선택된 레벨을 포함한 형태의 선택된 프레임들을 전송하는 단계, 그리고 신뢰할 수 없는 통신 프로토콜을 사용하는 네트웍 채널을 통하여 낮은 양의 비디오 데이타 내용과 선택된 레벨을 포한하는 형태의 선택된 프레임들을 전송하는 단계로 구성된, 발명에 따라서 제공되는 네트웍 채널을 통하여 비디오 서버에서 비디오 클라이언트로 비디오를 전송하는 방법이 있다.추가적으로, 발명에 따라서 제공되는 네트웍 채널을 통하여 복수의 비디오 소스들로...다음과 같은 단계를 포함하는, 네트웍 채널을 통하여 비디오를 전송하는 방법. 생(raw) 비디오 소스를 특정한 정도의 압축에 일치하는 각 레벨의 복수를 포함하는 각 프레임의 복수로 압축하는 단계; 네트웍 채널의 대역폭을 평가하는 단계; 선택된 레벨이 네트웍 채널의 대역폭의 사용을 최적화하는 상기 대역폭 평가에 따라서 네트웍 채널을 통하여 전송할 상기 각 프레임의 레벨들의 복수중의 하나를 선택하는 단계;그리고 네트웍 채널을 통하여 상기 각 프레임의 선택된 레벨을 송신하는 단계.