KR101240808B1 - 결정론적 패킷 누락에 대한 방법 및 시스템 - Google Patents
결정론적 패킷 누락에 대한 방법 및 시스템 Download PDFInfo
- Publication number
- KR101240808B1 KR101240808B1 KR1020117016032A KR20117016032A KR101240808B1 KR 101240808 B1 KR101240808 B1 KR 101240808B1 KR 1020117016032 A KR1020117016032 A KR 1020117016032A KR 20117016032 A KR20117016032 A KR 20117016032A KR 101240808 B1 KR101240808 B1 KR 101240808B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- frame
- data stream
- data segments
- frame type
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
-
- 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 통신 네트워크에서 데이터 스트림을 관리하는 방법(200) 및 시스템(502)를 제공한다. 본 방법은 하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림을 수신하는(204) 단계를 포함한다. 각각의 데이터 세그먼트는 복수의 프레임 타입들 중 하나의 프레임 타입에 해당한다. 본 방법은 적어도 하나의 소정의 파라미터에 기초해서, 통신 네트워크에서 각각의 프레임 타입에 대해서 전송될 데이터 세그먼트들의 수를 판정(206)하는 단계를 더 포함한다. 또한, 본 방법은 복수의 프레임 타입들 간의 또한 하나 이상의 데이터 세그먼트들 간의 기능적인 의존성 및 각각의 프레임 타입에 대해 전송될 데이터 세그먼트들의 수에 기초해서, 적어도 하나의 프레임 타입에 대한 적어도 하나의 데이터 세그먼트를 누락(208)시키는 단계를 포함한다. 본 방법은 또한, 데이터 세그먼트들의 누락에 기초해서, 수신된 패킷화된 데이터 스트림을 리패킷화(210)하는 단계를 포함한다.
Description
본 발명은 일반적으로, 비디오 스트림들의 처리에 관한 것으로서, 특히, 대역폭 제한요소와 비디오 시멘틱에 기초하여, 전송될 데이터 패킷들을 지능적으로 누락함으로써, 비디오 스트림들을 처리하는 방법 및 시스템에 관한 것이다.
통신기술의 발전과 함께, 비디오 스트리밍의 사용이 인터넷 사용자들의 일상 생활 중의 없어서는 안되는 부분이 되었다. 비디오 스트리밍은 또한 실시간 감시, 비디오 회의, 등에서 대중화되었다. 비디오 스트리밍의 인기의 증가와 함께, 주로 대역폭 제한요소의 결과로서, 각종 비디오 성능과 관련된 문제들이 떠올랐다. 이러한 성능과 관련된 문제들의 통상적인 예는 요구되는 오디오 또는 비디오 품질을 획득하지 않고 인터넷상에서 스트리밍 비디오를 시청하는 사용자일 수 있다.
MPEG 비디오에서 낮은 비디오 품질에 대한 이유들 중 하나는 스트리밍된 비디오 GoP들(Group of Pictures)에서 랜덤 패킷 손실이다. GoP는 비디오 프레임의 시퀀스 중 논리적인 분할이다. 통상적인 GoP는 세가지 타입의 픽쳐들 또는 프레임들, 즉, 인트라 코딩된 픽쳐들(I-frames), 예측된 픽쳐들(P-frames) 및 양방향 예측 픽쳐들(B-frames)을 포함한다. GoP는 또한, 키 또는 기준 프레임이라 지칭하는 I-프레임으로 시작한다. I-프레임이 인트라-코딩되면, 이는 픽셀블록들의 이산 코사인 변환(DCT)계수가 다른 프레임들의 픽셀 블록들에 대한 참조 없이 인코딩되는 것을 의미한다. P-프레임은 움직이는 보상 및 예측을 사용하여 인코딩된다. P-프레임은 이전 기준 프레임에서의 그 위치에 대해서 특정 픽셀 블록이 공간으로 이동하는 범위를 지정하는 모션 벡터들을로 구성된다. P-프레임에 대한 기준은 I-프레임 또는 이전의 P-프레임일 수 있다. I-프레임 및 P-프레임과는 달리, B-프레임은 양방향 예측된 블록들을 포함한다. 그러므로, B-프레임을 디코딩하기 위하여는, 과거 및 미래의 기준 프레임들이 필요하다.
통상적으로, 대역폭 제한요소가 있을 때마다, I-프레임 또는 P-프레임 또는 B-프레임이 누락되는지 여부에 상관없이, 랜덤 패킷 손실이 발생한다. 상기에 언급된 대로, P-프레임은 I-프레임 및 가능하다면 다른 P-프레임들에 의존한다. 그러므로, 랜덤 패킷 누락 중에, I-프레임 데이터를 포함하는 패킷들이 누락되면, 그 GoP 내의 후속하는 모든 P-프레임들이 적절히 디코딩하지 못하게 된다. 다른 P-프레임들에 관한 그들의 의존성을 고려하지 않고, P-프레임들이 랜덤하게 누락된다면, 동일한 문제가 발생한다.
랜덤 패킷 누락을 피하는 하나의 방법은 패킷 누락이 일어나지 않도록, 충분한 네트워크 레벨 리소스들을 예약하는 것이다. 예약된 네트워크 레벨 리소스가 수요가 폭증할 때는 적절하지 않을 수 있기 때문에, 비디오를 스트리밍하는데 대한 수요가 변동하는 경우, 이 방법은 맞지 않는다.
또 다른 접근법은, 네트워크가 패킷들 중의 우선순위에 관해서 결정한 사항을 이용하여, 비디오 스트림에서 패킷들을 태깅(tag)하는 것이다. 높은 우선순위를 갖는 패킷들만이 이런 경우에 전송이 허용된다. 이러한 접근법에 대한 근본적인 문제는 비디오 스트림에서 비디오 프레임들의 플로우를 자동적으로 태깅하는 장치에 대한 필요성이다. 또한, 이 접근법은 대역폭 제한요소가 있고, 비디오들을 스트리밍하는데 대한 수요가 동적으로 변하는 경우, 맞지 않는다.
상기의 견지에서, 비디오 스트림에서, 결정론적으로 패킷들을 누락시키는 시스템 및 방법에 대한 필요성이 있다고 하겠다. 방법과 시스템은 대역폭 제한요소의 상황에서 작동이 잘 되어야 하고 패킷들은 랜덤하게 누락되지 않아야 한다.
개별 도면들을 통해서 유사한 참조 번호들이 동일 또는 기능적으로 유사한 구성요소들을 지칭하며, 이하의 상세한 설명과 함께 본 명세서에 포함되어, 그 일부를 이루는 첨부도면들은, 모두 본 발명에 따른, 다양한 실시예들을 더 예시하며, 다양한 원리들과 장점들을 설명하는 역할을 한다.
도 1은 본 발명의 실시예에 따른 일례의 네트워크 라우터의 블록도이다.
도 2는 본 발명의 실시예에 따른, 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다.
도 3 및 도 4는 본 발명의 또 다른 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다.
도 5는 본 발명의 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 데이터 스트림 관리자의 블록도이다.
도 6은 본 발명의 실시예에 따른 데이터 스트림의 처리 중, 정보를 저장하는 일례의 상태 머신의 블록도이다.
도 7 및 도 8은 본 발명의 실시에에 따른 데이터 스트림의 처리 중, 정보를 저장하는 방법을 나타내는 흐름도를 나타낸다.
당업자라면, 도면들의 구성요소들은 간결하고 명확하게 도시된 것으로, 반드시 스케일하여 도시된 것은 아니라는 것을 이해할 수 있을 것이다. 예를 들면, 도면들의 구성요소들 중 일부의 치수들은 본 발명의 실시예들의 이해를 돕기 위해 다른 구성요소들에 비하여 과장되어 있을 수 있다.
도 1은 본 발명의 실시예에 따른 일례의 네트워크 라우터의 블록도이다.
도 2는 본 발명의 실시예에 따른, 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다.
도 3 및 도 4는 본 발명의 또 다른 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다.
도 5는 본 발명의 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 데이터 스트림 관리자의 블록도이다.
도 6은 본 발명의 실시예에 따른 데이터 스트림의 처리 중, 정보를 저장하는 일례의 상태 머신의 블록도이다.
도 7 및 도 8은 본 발명의 실시에에 따른 데이터 스트림의 처리 중, 정보를 저장하는 방법을 나타내는 흐름도를 나타낸다.
당업자라면, 도면들의 구성요소들은 간결하고 명확하게 도시된 것으로, 반드시 스케일하여 도시된 것은 아니라는 것을 이해할 수 있을 것이다. 예를 들면, 도면들의 구성요소들 중 일부의 치수들은 본 발명의 실시예들의 이해를 돕기 위해 다른 구성요소들에 비하여 과장되어 있을 수 있다.
일 실시예에 있어서, 통신 네트워크에서 데이터 스트림을 관리하는 방법이 제공된다. 본 방법은 하나 이상의 데이터 세그먼트를 포함하는 패킷화된 데이터 스트림을 수신하는 단계를 포함한다. 하나 이상의 데이터 세그먼트들 중 각각의 데이터 세그먼트는 복수의 프레임 타입 중 하나의 프레임 타입에 해당한다. 또한, 본 방법은 적어도 하나의 소정의 파라미터에 기초해서, 통신 네트워크에서 복수의 프레임 타입 중 각각의 프레임 타입에 대해 전송될 다수의 데이터 세그먼트들을 판정하는 단계를 포함한다. 또한, 본 방법은, 하나 이상의 데이터 세그먼트들 사이의 기능적인 의존성, 복수의 프레임 타입들 사이의 기능적인 의존성, 및 각각의 프레임 타입에 대한 전송될 데이터 세그먼트들의 수에 기초해서, 복수의 프레임 타입들 중 적어도 하나의 프레임 타입에 대한 적어도 하나의 데이터 세그먼트를 누락시키는 단계를 포함한다. 본 방법은 또한 적어도 하나의 데이터 세그먼트의 누락에 기초해서, 수신된 패키화된 데이터 스트림을 리패킷화(re-packetizing) 하는 단계를 포함한다.
또 다른 실시예에 있어서, 통신 네트워크에서 데이터 스트림을 관리하는 시스템이 제공된다. 본 시스템은 수신기, 프로세서, 및 리패킷타이저를 포함한다. 수신기는 하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림을 수신하도록 구성된다. 또한, 하나 이상의 데이터 세그먼트의 각각의 데이터 세그먼트는 복수의 프레임 타입의 각각의 타입에 해당한다. 또한, 적어도 하나의 소정의 파라미터에 기초하여, 통신 네트워크 내의 복수의 프레임 타입 중, 각각의 프레임 타입에 대하여 전송될 다수의 데이터 세그먼트를 판정하고, 복수의 프레임 타입 중 적어도 하나의 프레임 타입에 대한 적어도 하나의 데이터 세그먼트를 누락시키도록 프로세서가 구성된다. 적어도 하나의 데이터 세그먼트를 누락시키는 것은 각각의 프레임 타입에 대하여 전송될 데이터 세그먼트들의 수, 하나 이상의 데이터 세그먼트들 사이의 기능적인 의존성, 및 복수의 프레임 타입들 사이의 기능적인 의존성에 기초한다. 또한, 리패킷타이저는 적어도 하나의 데이터 세그먼트의 누락에 기초해서, 수신된 패킷화된 데이터 스트림을 리패킷화 하도록 구성된다.
본 발명의 다양한 실시예에 따른, 통신 네트워크에서 데이터 스트림을 관리하는 시스템 및 방법을 상세하게 설명하기 전에, 본 발명은 주로, 통신 네트워크에서 데이터 스트림들을 관리하는 방법에 관련된 방법 단계들의 조합에 있다는 점을 알기 바란다. 따라서, 그런 본 명세서의 설명의 이익을 갖는 당업자에게 용이하게 명백하게 되는 세부사항들로 본 개시물을 불명확하게 하지 않도록 시스템 성분들 및 방법 단계들은 적절한 경우, 본 발명의 이해에 적합한 구체적인 세부사항들만을 나타내는 도면들에서 통상적인 기호에 의해 나타내었다.
본 문서에서, "포함한다, 구비한다(comprise, comprising)"라는 용어 또는 그것의 임의의 다른 변형은, 구성요소들의 목록을 포함하는 프로세스, 방법, 물건, 또는 장치가 그러한 구성요소만을 포함하는 것이 아니라, 명시적으로 기재되지 않았거나, 이러한 프로세스, 방법, 물건, 또는 장치에 고유한 다른 구성요소들을 포함할 수도 있도록, 비배타적인 포함(non-exclusive inclusion)을 포괄하고자 의도한 것이다. "포함한다(comprise...a )" 다음의 구성 요소는, 더 이상의 제약없이도, 구성요소를 포함하는 프로세스, 방법, 물건, 또는 장치 내의 추가의 동일한 구성요소의 존재를 배제하는 것은 아니다. 본 문서에서 사용되는 바와 같은, "또 다른(another)"라는 용어는 적어도 두번째 또는 그 이상으로서 정의된다. 본 문서에서 사용되는 바와 같은, "포함하다(include)" 및/또는 "가지다(having)"라는 용어는 "구비한다(comprising)"로 정의된다. 본 문서에서 사용되는 바와 같은, "또 다른"이라는 용어는 적어도 두번째 또는 그 이상으로서 정의된다.
도 1은 본 발명의 실시예에 따른 일례의 네트워크 라우터(102)를 나타낸다. 본 도면에서 나타내고 있는 것처럼, 네트워크 라우터(102)는 하나 이상의 데이터 세그먼트들을 포함하는, 패킷화된 데이터 스트림을 수신한다. 예를 들면, 패킷화된 데이터 스트림은 MPEG-2(Motion Picture Experts Group-2) 또는 MPEG-4 트랜스포트 스트림에서, GoP들(Group of Pictures)일 수 있다. GoP는 오디오 프레임들과 다중화될 수 있고, 또는 오디오 프레임들 없이도 다중화 될 수 있다.
전술한 바와 같이, GoP는 다수의 데이터 세그먼트들을 포함한다. 각각의 데이터 세그먼트는 특정 픽처 또는 프레임 타입에 해당한다. 픽쳐 또는 프레임 타입의 예로서는, 인트라 코딩된 픽쳐들(I-frames), 예측된 픽쳐들(P-frames), 및 양방향 예측 픽쳐들(B-frames)이 있다. 당업자들은 이런 프레임들이 기능적으로 서로 의존(interdependent)할 수 있다는 것을 알고 있다. 예를 들면, 하나의 I-프레임은 인트라 코딩되고 임의의 다른 프레임들에 의존하지 않으며, 특정 P-프레임은 I-프레임, 또는 특정 P-프레임에 선행하는 P-프레임에 의존할 수 있고, B-프레임은 B-프레임에 대해서 과거 또는 미래의 프레임들에 의존할 수 있다.
GoP가 네트워크 라우터(102)에 의해서 수신될 때, 네트워크 라우터는 GoP에서 특정 데이터 세그먼트들을 선택적으로 누락시키고, GoP의 나머지 데이터 세그먼트들을 전송한다. GoP를 전송하기 전에, 네트워크 라우터(102)는 데이터 세그먼트들의 선택적인 누락에 기초해서 GoP를 리패킷화한다. 데이터 세그먼트들을 선택적으로 누락시키는 전체적인 방법과 시스템을 나머지 도면들과 함께 상세하게 설명한다.
본 발명을 MPEG-2 트랜스포트 스트림 또는 비디오 시맨틱과 결합해서 아래에 설명하지만, 본 발명은 또한 MPEG-4(Motion Picture Experts Group-4) 트랜스포트 스트림 또는 비디오 시맨틱들에도 잘 맞는다는 것을 주목하기 바란다.
도 2는 본 발명의 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다. 도 2에서 나타내는 방법을 설명하기 위해서, 도 1에 대하여 참조하지만, 당업자라면, 본 발명의 임의의 다른 실시예로 본 방법이 적용될 수 있다는 것이 명백할 것이다.
단계(202)에서, 통신 네트워크에서 데이터 스트림을 관리하는 방법이 시작된다. 예를 들어, 하나의 데이터 스트림은 MPEG-2(Motion Picture Experts Group-2) 트랜스포트 스트림 또는 MPEG-4(Motion Picture Experts Group-4) 트랜스포트 스트림내의 GoP(Group of Picture)일 수 있다. 단계(204)에서, 하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림이 수신된다. 도 1에서 이미 언급된 대로, 각각의 데이터 세그먼트들은 인트라 코딩된 픽쳐들(I-frames), 예측된 픽쳐들(P-frames), 또는 양방향 예측 픽쳐들(B-frames)이다.
본 발명의 일 실시예에 따르면, 수신된 패킷화된 데이터 스트림은 오디오 프레임들과 다중화되기도 하고, 또는 오디오 프레임들 없이 다중화되기도 한다. 데이터 스트림이 오디오 프레임들과 다중화되는 경우, 전술된 데이터 세그먼트들은 또한 I-프레임들, P-프레임들, 및 B-프레임들과 함께 오디오 프레임들일 수 있다.
단계(206)에서, 통신 네트워크내의 복수의 프레임 타입들 중 각각의 프레임 타입에 대해서 전송될 데이터 세그먼트들의 수가 판정된다. 전송될 데이터 세그먼트들의 수는 적어도 하나의 소정의 파라미터들에 기초해서 판정된다. 소정의 파라미터의 하나의 예로서는 통신 네트워크에서 수신되는 데이터 스트림의 전송에 대한 활용가능한 대역폭이 될 수 있다. 예를 들면, 활용가능한 대역폭이 400 바이트이고 수신된 데이터 스트림이 600 바이트의 크기를 가진다면, 400 바이트의 크기에 해당하는 데이터 세그먼트들만이 전송되도록 선택된다. 이 예시에서, 각각의 데이터 세그먼트가 50 바이트의 크기를 가진다면, 8개의 데이터 세그먼트들만이 통신 네트워크에서 전송되도록 선택된다. 본 발명의 일 실시예에 따르면, 데이터 스트림의 활용가능한 대역폭은 이전 데이터 스트림내의 각각의 프레임 타입에 대한 데이터 크기에 기초해서 판정된다.
데이터 크기는 데이터 스트림내의, 데이터 세그먼트의 타입에 의존하고, 데이터 크기가 I-프레임, P-프레임, B-프레임 순으로 감소한다는 점에 주목하기 바란다. "50 바이트"의 크기는 이 도면의 설명을 가능하게 하기 위한 하나의 예시로서 상기에서 선택된 것이며, 데이터 세그먼트의 실제 크기를 나타내지는 않는다.
상기에서 소정의 파리미터의 또 다른 예로서는 수신된 데이터 스트림의 타입일 수 있다. 예를 들면, 비디오 프레임들 뿐만 아니라, 오디오 프레임들을 포함하는 데이터 스트림이 수신된다면, 모든 비디오 프레임들은 전송되고 모든 오디오 프레임들은 전송이 허용되지 않는 상황이 있을 수 있다. 통상의 예시로서는 인터넷에서 축구 경기의 비디오 스트리밍일 수 있다. 이 경우, 대역폭 제약이 있다면, 모든 오디오 프레임들이 전송될 수 없을 것이고, 비디오 프레임들만이 전송될 수 있다. 이는 비디오 스트리밍을 시청하는 사용자가 해설을 듣는 것보다, 경기를 볼 때 더 흥미로워 할 수 있기 때문이다.
소정의 파라미터의 또 다른 예시는 이전에 수신된 데이터 스트림내의 각각의 프레임 타입에 대해서 수신되는 데이터 세그먼트들의 수가 될 수 있다. 이 파라미터를 사용하는 동안에, 데이터 스트림 내에 수신되는 각각의 프레임 타입에 대한 데이터 세그먼트들의 수가 다양한 데이터 스트림들에 걸쳐 거의 동일하게 남아 있는 것으로 가정한다. 예를 들면, 이전에 수신된 데이터 스트림이 하나의 I-프레임과 4개의 P-프레임 및 7개의 B-프레임들을 가졌다면, 다음 데이터 스트림은 동일한 데이터 세그먼트들 수와 배열을 갖는 것으로 가정한다. 이 파라미터의 사용은 다음의 예시에 의해 더 잘 이해된다.
활용가능한 대역폭이 400 바이트이고 이전에 수신된 데이터 스트림이 하나의 I-프레임, 4개의 P-프레임 및 7개의 B-프레임들을 가진다면, 현재의 데이터 스트림에 대해서 전송될 데이터 세그먼트들의 수가 계산된다. 하나의 I-프레임의 평균 크기가 100 바이트이고, 하나의 P-프레임의 평균 크기가 50 바이트이고, 하나의 B-프레임의 평균 크기가 40 바이트라면, 전송될 I-프레임들의 수는 하나의 I-프레임, 4개의 P-프레임들 및 2개의 B-프레임들인 것으로 계산될 수 있다. I-프레임은 그 크기에 상관없이 통신 네트워크에서 항상 전송된다는 것을 주목하기 바란다.
또 다른 예로서, MPEG 비디오는 오직 I-프레임만을 포함한다. 본 발명은, 이 시나리오에서도 잘 맞는다. I-프레임들이 누락되는 경우에서, 다음 I-프레임까지, 모든 P-프레임들 및 B-프레임들 또한 누락된다. 그러므로, 본 발명은 또한 I-프레임들을 누락하는 것을 허용한다. 또 다른 예로서, 본 발명은 또한 필수적인 수의 GoP들의 누락도 허용할 수 있다.
단계(208)에서, 복수의 프레임 타입들 중 적어도 하나의 프레임 타입에 대한 적어도 하나의 데이터 세그먼트가 수신된 데이터 스트림에서부터 누락된다. 하나 이상의 데이터 세그먼트들 사이에서 기능적인 의존성, 복수의 프레임 타입들 사이에서 기능적인 의존성, 및 각각의 프레임 타입에 대해서 전송될 데이터 세그먼트들의 판정된 수에 기초해서, 누락될 데이터 세그먼트가 결정된다. 본 발명의 일 실시예에 따르면, 하나 이상의 데이터 세그먼트들 및, 복수의 프레임 타입들 사이에서 기능적인 의존성은 MPEG-2(Motion Picture Experts Group-2) 또는 MPEG-4(Motion Picture Experts Group-4) 비디오 시맨틱들에 기초한다.
단계(208)는 이하의 예에 의해 더 잘 이해된다. 하나의 I-프레임, 3개의 P-프레임, 및 5개의 B-프레임들을 가지는 데이터 스트림을 수신하였으며, 그 프레임들의 배열이 "IPBBPBPBB"인 상황을 고려한다. 이제, 또한, 단계(206)에서, 전송될 데이터 세그먼트들의 수가 하나의 I-프레임, 2개의 P-프레임들, 및 3개의 B-프레임들로 판정되는 것으로 가정한다. 이 경우, 하나의 P-프레임이 누락되게 되며, 2개의 B-프레임들이 누락되게 된다. 3개의 P-프레임들 중 어느 것이 누락되게 되며, B-프레임들 중 어떤 2개가 누락되게 되는지는 데이터 세그먼트들 및 프레임 타입들의 기능적인 의존성에 기초해서 판정된다. 그것에 의존해서 더 많은 프레임들을 가지는 것이 그들에 의존해서 더 적은 프레임들을 가지는 그런 P-프레임들보다 더 "중요성"을 가진다는 것이 당업자들에게 알려져 있다. 그러므로, 데이터 스트림 내의 마지막 P-프레임이 첫번째 P-프레임보다 데이터 스트림에서 덜 중요성을 가진다. 그러므로, 이 경우, 마지막 P-프레임이 누락되도록 선택될 수 있다. B-프레임들의 경우에서, 의존성이 없으므로, 소정의 조건에 기초해서 B-프레임들이 누락된다. 예를 들면, 수신된 데이터 스트림에서 모든 교번하는 B-프레임이 누락되는 것으로 설정될 수 있다.
이하, 어느 프레임 타입의 어느 데이터 세그먼트가 누락되는지를 결정하기 위한 통상적인 예를 설명한다. 기재된 알고리즘은 사실상 일례이고, 본 발명은 또한 임의의 다른 알고리즘의 사용에도 잘 맞는다는 것을 주목하기 바란다. 특히, 기재된 알고리즘은 대역폭 파라미터에 의해서 제약되는 전송될 데이터 세그먼트들의 최적의 수의 판정을 위한 0/1 냅색(knapsack) 솔루션의 구현 예이다. 당업자라면, 본 방법은 제한요소들이 대역폭 제한요소 이외의 것인 임의의 실시예에 적합하다는 것을 이해할 수 있다.
본 발명의 일 실시예에 따르면, 이익치는 프레임 타입들의 각각에 관련될 수 있으며, 특정 프레임 타입를 전송하는 동안에 발생된 비용(초당 바이트)이 판정된다. 비용은 특정 타입의 모든 프레임들에 대해서 동일한 것으로 가정한다. 이는 각각의 프레임 타입에 대한 비용으로서, 평균 프레임 대역폭을 할당함으로써 성취될 수 있다. 각각의 프레임에 할당된 이익은, 전술한 바와 같이, 프레임 의존성에 기초한다. 그러므로, I-프레임들은 가장 높은 이익치를 할당받는다. 프레임이 B-프레임에 의존하지 않으므로, 모든 B-프레임들은 같은 이익치를 할당받는다. 그리고 P-프레임들은 데이터 스트림내의 P-프레임의 위치에 따라 감소하는 이익치를 할당받는다.
데이터 스트림내의 프레임들의 수를 N이라 하고, 활용가능한 대역폭을 B라 하자. 집합 C = {c1, c2, .... cn } 및 P = {p1, p2, .... pn }는 특정 데이터 스트림에 관련된 비용 및 이익이라 하자. 정규화된 이익치들을 집합 PC(여기서, pci = pi/ci)라고 하자. PC의 원소들이 내림차순으로 분류되고 A = {a1, a2, .... an } 값들의 목록으로 배열된다고 하자. 일반성의 손실 없이, i<j이고 ai가 집합 PC내에 있다면, ai >= aj라 하자. 함수 f를 f(ai) = cj라 하고, 함수 g를 g(ai) = pj라고 가정하면, 알고리즘의 태스크는 다음과 같이 s를 찾는 것이다:
여기서,
전술된 수식의 최적 솔루션은 다음과 같다
여기서,
적분 범위를 정하면, 다음의 관계가 얻어진다:
|z`(C(KP))|를 선택하는 것은 xsg(as)과 동등한 값에 의해서 최적치보다 낮은 이익을 초래한다.
단계(210)에서, 수신된 데이터 스트림은 적어도 하나의 데이터 세그먼트의 누락에 기초해서 리패킷화된다. 본 발명의 일 실시예에 따르면, 수신된 패킷화된 데이터 스트림은 데이터 세그먼트들의 누락 후에, UDP(User Datagram Protocol) 포멧에 따라 리패킷화된다. 그 후에, 리패킷화된 데이터 스트림이 통신 네트워크에서 전송된다.
통신 네트워크에서 데이터 스트림을 관리하는 방법에서 또 다른 단계(도시 생략)는 이전 데이터 스트림 및 현재 수신된 데이터 스트림에서 수신되는 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트를 저장하는 것이다. 카운트는 다음 데이터 스트림에 대해서, 전송될 데이터 스트림들의 수가 이전에 수신된 데이터 스트림에 기초해서 판정되도록, 저장된다. 단계(212)에서, 통신 네트워크에서 데이터 스트림을 관리하는 방법이 종료된다.
도 3 및 도 4는 본 발명의 또 다른 실시예에 따른, 통신 네트워크에서 데이터 스트림을 관리하는 방법을 나타내는 흐름도이다. 도 3 및 도 4에서 나타낸 방법을 설명하기 위해서, 도 1 및 도 2가 참조되지만, 본 방법이 본 발명의 임의의 다른 실시예에 적용될 수 있다는 것이 당업자들에게 명백할 것이다.
단계(302)에서, 통신 네트워크에서 데이터 스트림을 관리하는 방법이 시작된다. 단계(304)에서, 패킷화된 데이터 스트림이 수신된다. 도 2에서 이미 전술한 바와 같이, 데이터 스트림은 오디오 프레임 또는 I-프레임, P-프레임 또는 B-프레임들에 해당하는 하나 이상의 데이터 세그먼트들을 포함한다. 본 발명의 일 실시예에 따르면, 수신된 데이터 스트림이 MPEG-2 트랜스포트 스트림내의 GoP이다.
단계(306)에서, 수신된 데이터 스트림에서 GoP 시작 코드가 판정된다. 하나의 GoP 시작 코드는 새로운 GoP의 시작을 나타낸다. 통상적으로, 데이터 스트림의 첫 4 바이트가 GoP 시작 코드를 나타낸다. 단계(308)에서, 각각 프레임에 대해 전송될 데이터 세그먼트들의 수가 새로운 GoP에 대해서 판정된다. 전송될 데이터 세그먼트들의 수를 판정하기 위한 전체적인 방법은 이미 도 2와 연계하여 설명되었다.
단계(310)에서, 수신된 데이터 세그먼트의 프레임 타입을 판정하기 위해서 데이터 스트림 내의 수신된 데이터 세그먼트들의 픽쳐 코드가 식별된다. 예를 들면, GoP 시작 코드가 판정된 후에, I-프레임이 첫번째 프레임으로 수신된다. 통상적으로, GoP 시작 코드의 4 바이트 후에, 다음 4 바이트가 하나의 I-프레임에 대한 픽쳐 코드를 나타낸다. I-프레임의 수신이 종료되는 때에, 또 다른 픽쳐 코드가 판정된다. I-프레임 후에, 다음 데이터 세그먼트가 B-프레임 또는 P-프레임이 될 수 있다. 통상적으로, 새로운 픽쳐 코드는 마지막 데이터 세그먼트의 종료와 새로운 데이터 세그먼트의 시작을 나타낸다.
본 발명의 일 실시예에 따르면, 픽쳐 시작 코드들이 두 개의 비연속 데이터 스트림들 및 두개의 비연속 데이터 세그먼트들에 걸쳐 분할될 수 있다. 이 경우에서, 데이터 세그먼트의 마지막 3 바이트가 버퍼링되고, 다음 데이터 세그먼트의 첫 바이트에 첨부된다. 이와 같이, 유효한 4-바이트 식별자가 형성된다. 이 접근법은 데이터 세그먼트들 및 데이터 스트림들에 걸쳐 프레임 타입들을 식별할 때 도움이 된다.
단계(312)에서, 특정 프레임 타입에 대하여 전송될 데이터 세그먼트들의 최대 수가 이미 전송되었는지를 판정하기 위한 검사가 수행된다. 예를 들면, 픽쳐 코드가 수신된 데이터 세그먼트가 P-프레임 타입임을 제안한다면, 전송될 P-프레임들의 최대 수가 이미 전송되었는지 여부를 검사한다. 도 4를 참조하면, 데이터 세그먼트들의 최대 수가 단계(402)에서, 특정 프레임 타입에 대해 전송되지 않았다면, 수신된 데이터 세그먼트가 리패킷화를 위하여 전달된다.
데이터 세그먼트들의 최대 수가 특정 프레임 타입에 대해 전송되었다면, 단계(404)에서 수신된 데이터 세그먼트가 누락된다. 그 후에, 단계(402) 및 단계(406) 각각이 단계(406)로 진행하여 현재 GoP가 종료하였는지 여부를 판정한다. 본 발명의 하나의 실시예에 따르면, 새로운 GoP 시작 코드가 마지막 GoP의 종료를 나타낸다.
현재 GoP가 종료되지 않은 것으로 판정되면, 단계(310)이 다시 수행된다. 즉, 또 다른 픽쳐 코드가 검출되고 상기에 명시된 대로 전체 방법이 반복된다. 본 발명의 일 실시예에 따르면, 현재 GoP가 끝났다는 것이 판정되면, 단계(408)에서 평균 프레임 통계가 계산된다. 그 후에, 단계(410)에서, 최적화 알고리즘을 사용해서, 다음 GoP 기간에서 얼마나 많은 I-프레임, P-프레임 및 B-프레임들이 전송될 수 있는지가 판정된다. 단계(412)에서, 통신 네트워크에서 데이터 스트림을 관리하는 방법이 종료된다.
도 5는 본 발명의 실시예에 따른 통신 네트워크에서 데이터 스트림을 관리하는 데이터 스트림 관리자(502)의 블록도이다. 당업자라면, 데이터 스트림 관리자(502)가 도 5에서 나타낸 모든 또는 몇 개의 성분들을 포함할 수 있다는 것을 이해할 것이다. 당업자라면, 데이터 스트림 관리자(502)가 도시 생략된 발명의 배치들에 따라서, 데이트 스트림 관리자(502)의 동작에 속하지 않은 추가적인 요소들을 포함할 수 있다는 것을 또한 이해할 것이다. 비록 데이터 스트림 관리자(502)가 임의의 다른 적합한 환경 또는 네트워크에서 사용될 수 있다는 것이 이해되지만, 데이터 스트림 관리자(502)는 도 2, 도 3, 및 도 4에서 설명되는 방법들을 실행하며, 바람직하게는, 네트워크 라우터(102)에서 구현된다.
도 5에 도시된 바와 같이, 데이터 스트림 관리자(502)는 수신기(504), 프로세서(506), 리패킷타이저(508) 및 메모리(510)을 포함한다. 수신기(504)는 하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림을 수신한다. 이전 도면과 함께 이미 전술한 대로, 패킷화된 데이터 스트림은 오디오 프레임들과 함께 다중화되거나 또는 없이 다중화되는 MPEG-2 트랜스포트 스트림내의 GoP이며, 각각의 데이터 세그먼트는 복수의 프레임 타입들 중의 하나의 프레임 타입에 해당한다. 예를 들면, 데이터 세그먼트는 GoP 또는 오디오 프레임의 I-프레임, P-프레임 또는 B-프레임일 수 있다.
통상적으로, 수신기(504)는 GoP의 GoP 시작 코드를 판정함으로써 새로운 GoP가 수신되는 것으로 판정한다. 전술한 바와 같이, GoP 시작 코드는 GoP의 시작을 나타내며, 보통 수신된 GoP의 첫 4 바이트이다. 수신기(504)가 GoP를 수신 한 후에, 하나 이상의 소정의 파라미터들에 기초해서, 프로세서(506)는 통신 네트워크내의 각각의 프레임 타입에 대해 전송될 데이터 세그먼트들의 수를 판정한다. 도 2와 연계하여 이미 설명한 바와 같이, 예를 들면, 소정의 파라미터들로서는, 이전 데이터 스트림에서 수신된 각각의 프레임 타입에 대한 데이터 세그먼트들의 수, 수신된 패킷화된 데이터 스트림의 타입, 또는 통신 네트워크내의 데이터 스트림의 전송에 대한 활용가능한 대역폭일 수 있다. 전술한 파라미터들을 이용하여, 통신 네트워크에서 전송될 데이터 세그먼트들의 수를 판정하는 전체적인 프로세스가 이미 도 2와 연계하여 설명되었다.
프로세서(506)는 각각의 프레임 타입에 대하여 전송될 데이터 세그먼트들의 수를 판정할 때, 수신된 데이터 세그먼트의 프레임 타입을 식별한다. 통상적으로, 프로세서(506)는 데이터 세그먼트의 픽쳐 코드를 판정함으로써, 데이터 세그먼트의 프레임 타입을 식별한다. 픽쳐 코드는 보통 4 바이트 크기이고, 데이터 세그먼트가 수신되기 전에 수신된다. 본 발명의 일 실시예에 따르면, 프로세서(506)는 또한 비연속 데이터 세그먼트들 및 비연속 데이터 스트림들에 걸쳐 데이터 세그먼트들의 프레임 타입을 식별할 수 있다.
프로세서(506)가 수신된 데이터 세그먼트의 프레임 타입을 식별할 때, 프로세서(506)는 데이터 세그먼트를 누락시키거나, 데이터 세그먼트를 리패킷화 하기 위한 리패킷타이저(508)로 전송한다. 패킷을 누락시키기 위한 결정은 데이터 세그먼트들 사이에서 기능적인 의존성, 및 프레임 타입들 사이에서 기능적인 의존성, 각각 프레임에 대하여 전송될 데이터 세그먼트들의 판정된 수에 기초한다. 전술한 바와 같이, 기능적인 의존성은 MPEG-2(Motion Picture Experts Group-2) 비디오 시멘틱 또는 MPEG-4(Motion Picture Experts Group-4) 비디오 시맨틱에 기초한다. 데이터 세그먼트들을 누락시키는 프로세스는 이미 도 2와 연계해서 설명하였다.
프로세서(506)가 데이터 세그먼트를 리패키타이저(508)로 보낼 때, 데이터 스트림의 시멘틱들이 변경되지 않는 방식으로 및, 데이터 세그먼트들의 누락에 기초해서, 리패키타이저(508)가 데이터 스트림을 리패킷화한다. 본 발명의 일 실시예에 따르면, 데이터 스트림이 MPEG-2 프랜스포트 스트림 포멧으로 코딩되고 UDP 헤더가 그에 첨부되도록 UDP(User Datagram Protocol) 포멧에 기초해서, 리패키타이저(508)가 데이터 스트림을 리패킷화한다.
데이터 스트림 관리자(502)는 또한 이전의 데이터 스트림내의 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트, 및 수신된 패킷화된 데이터 스트림에서 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트를 저장하기 위한 메모리(510)를 포함한다. 메모리(510)은 데이터 세그먼트들의 상기의 카운트를 저장하기 위해서, 상태 머신을 사용한다. 상태 머신의 일례의 실시예가 도 6에서 설명된다.
도 6은 본 발명의 실시예에 따른 데이터 스트림의 처리 중, 정보를 저장하기 위한 일례의 상태 머신을 나타낸다. 도면은 패킷 헤더 필드 및 데이터를 가지는 데이터 스트림을 나타낸다. 패킷 헤더 필드는 보통 UDP 헤더이고 데이터는 I-프레임들, P-프레임들, 및 B-프레임들과 같은 다양한 데이터 세그먼트들을 포함한다.
본 발명의 일 실시예에 따르면, 데이터 스트림이 수신될 때, 데이터 스트림이 우선순위 흐름에 속하는지 아닌지를 판정하기 위한 검사가 수행된다. 데이터 스트림이 우선순위 흐름에 속하는 경우에만, 데이터 스트림이 상태 머신에서의 처리를 위하여 보내진다. 통상, 데이터 스트림이 우선순위 흐름에 속하는지 아닌지를 판정하기 위해서, 모든 우선순위 흐름 비디오들에 대한 주소들을 포함하는, 룩업테이블에 대조하여, 데이터 스트림의 UDP 헤더에 포함된 주소가 검사된다.
도면에 도시된 바와 같이, 패킷 헤더 필드는 능동 흐름 CAM(Content Addressable Memory) 테이블로 해싱된다. 그 후에, 소오스 주소, 목적지 주소, 소오스 포트 및 목적지 포트가 이 테이블에서 "키"로서 역할을 한다. 특정 키에 대한 흐름 테이블 엔트리가 발견되지 않는다면, 데이터 스트림이 우선순위 흐름에 속하지 않는 것으로 가정한다. 데이터 스트림이 우선순위 흐름에 속하지 않을 때, 그 데이터 파싱을 시작한다. 그 후에, 현재 및 이전 데이터 스트림들에 대하여, 현재 데이터 스트림, 오디오 또는 비디오 통계에 해당하는 상태 변수들이 상태 머신에 저장된다.
도 7 및 도 8은 본 발명의 일 실시예에 따른, 데이터 스트림의 처리 중 정보를 저장하기 위하여 데이터 관리자(502)에 의해서 수행되는 방법을 나태내는 흐름도이다. 도 7 및 도 8에서 나타내어진 방법을 설명하기 위해서, 도 1, 도 2, 도 3 및 도 4가 참조되지만, 당업자라면 본 방법을 본 발명의 다른 임의의 실시예에 적용가능하다는 것이 명백할 것이다.
단계(702)에서, 데이터 스트림의 처리 중에, 정보를 저장하는 방법이 시작된다. 단계(704)에서, 데이터 스트림의 시작 코드가 검출된다. 전술한 바와 같이, 시작 코드의 검출은 새 데이터 스트림의 시작을 나타낸다. 단계(706)에서, 데이터 스트림의 픽쳐 시작 코드가 검출된다. 데이터 스트림의 픽쳐 시작 코드는 새 데이터 세그먼트의 시작을 나타낸다. 픽쳐 시작 코드는 또한 현재 데이터 세그먼트의 프레임 타입의 정보를 포함할 수 있다. 데이터 세그먼트는 I-프레임, P-프레임, 또는 B-프레임일 수 있다. 단계(708)에서, 현재 데이터 세그먼트가 하나의 I-프레임인지 여부가 검사된다.
현재 데이터 세그먼트가 I-프레임인 것으로 판정된다면, 단계(710)에서, 현재 프레임 상태를 저장하는 상태 변수가 I-프레임으로 설정된다. 상태 변수가 I-프레임으로 설정된 후에, 이전의 프레임 통계가 단계(712)에서 업데이트된다. 예를 들면, P-프레임이 전송되었고 픽쳐 시작코드가 검출되고 그 픽쳐 시작 코드에 대한 데이터 세그먼트가 I-프레임으로 판정된 것으로 가정한다. 이 경우, 전송된 P-프레임(이전 프레임)의 카운트가 1씩 감소된다.
현재 데이터 세그먼트가 I-프레임이 아니라면, 단계(714)에서, 현재 데이터 세그먼트가 P-프레임인지 아닌지 검사한다. 현재 데이터 세그먼트가 P-프레임이라고 판정된다면, 단계(716)에서, 현재 프레임 타입을 저장하는 상태 변수가 P-프레임으로 설정된다. 상태 변수가 P-프레임으로 설정된 후에, 상기한 바와 같이, 이전의 프레임 통계가 단계(712)에서 업데이트된다.
단계(714)에서, 현재 데이터 세그먼트가 P-프레임이 아닌 것으로 판정되면, 단계(718)에서, 현재 프레임 타입을 저장하는 상태 변수가 B-프레임으로 설정된다. 상태 변수가 B-프레임으로 설정된 후에, 전술한 바와 같이, 이전의 프레임 통계가 단계(712)에서 갱신된다.
단계(712)에서부터, 흐름도가 GoP 수신의 종료 여부를 판정하는 단계(802)로 진행한다. GoP 수신이 종료하지 않았다면, 단계(706)의 전방으로 반복된다. 본 발명의 일 실시예에 따르면, 현재 GoP가 종료된 것으로 판정되면, 평균 프레임 통계가 단계(804)에서 계산된다. 그 후에, 단계(806)에서 최적화 알고리즘을 사용하여, 다음 GoP 기간에서 얼마나 많은 I-프레임, P-프레임, B-프레임들이 전송될 수 있는지가 판정된다. 단계(808)에서, 데이터 스트림의 처리 중에 정보를 저장하는 방법이 종료된다.
전술한 바와 같이, 다양한 실시예들에서는 통신 네트워크에서 데이터 스트림을 관리하는 방법, 및 시스템을 제공한다. 기재된 발명은 대역폭 제한요소들의 상황들에서 소망하는 품질을 성취하기 위해서 랜덤 패킷 손실의 약점을 극복하는 장점을 가진다. MPEG가 데이터 스트림내의 그 프레임들의 시퀀스에 관한 기능적인 의존성을 가지므로, 랜덤 손실이 비디오 시멘틱들을 망칠 수 있다. 본 발명은 통신 네트워크에서 전송될 프레임들의 각각의 타입에 대한 패킷들의 수를 계산하는 방법을 구현한다. 그 후에, 상이한 프레임들 간의 기능적인 의존성에 기초해서, 선택된 프레임들이 누락되고 전송되지 않게 된다. 이는 사용자에 의해서 수신된 비디오를 스트리밍하는 비디오 또는 오디오 품질이 두드러지게 악화되지 않는다는 것을 보증한다. 또한, 본 발명은 상이한 프레임들이 누락되었기 때문에, MPEG 비디오 시멘틱들이 그대로 유지되는 것을 보증한다.
본 명세서에서 명시된 본 발명의 실시예들은 본 명세서에서 명시된 본 발명의 실시예의 몇몇, 대부분, 또는 모든 기능들, 특정한 비프로세서 회로들과 조합해서, 구현하기 위한 하나 이상의 프로세서들을 제어하는 고유의 저장된 프로그램 인스트럭션 및 하나 이상의 종래의 프로세서들을 포함할 수 있다는 것을 이해할 수 있을 것이다. 비프로세서 회로들로서는, 이에 한하지 않지만, 라디오 수신기, 라디오 송신기, 신호 드라이버들, 클럭 회로들, 파워 소오스 회로들, 및 사용자 입력 장치들을 포함한다. 이와 같이, 이런 기능들이 통신 장치로부터 응급 상황에 응답하는 방법의 단계들로서, 해석될 수 있다. 대안으로서, 저장되지 않는 프로그램 인스트럭션들을 가지는 상태 머신, 또는 커스텀 로직으로서, 몇몇 기능 및 기능들의 몇몇 중에서 다양한 조합들이 구현되는, 하나 이상의 ASICs(application specific integrated circuits)에서, 몇몇 또는 모든 기능들이 구현될 수 있다. 이러한 접근법들의 조합이 또한 사용될 수 있다. 그러므로, 이런 기능들에 대한 방법들 및 수단들이 본 명세서에서 기재되었다. 프로세서 및 저장된 프로그램 인스트럭션들을 사용해서, 본 발명의 실시예의 기능들이 수행될 수 있는 상황에서, 그런 기능들을 구현하기 위한 수단들 중 하나는 프로그램 인스트럭션들을 저장하는 매체, 즉, 자기 저장장치 또는 파일을 전달하는 신호라는 것을 이해할 수 있을 것이다. 또한, 예를 들면, 활용가능한 시간, 현재 기술, 및 경제성 고려들에 의해서 영감을 받는 많은 설계 선택들 및 가능한 상당한 노력에도 불구하고, 당업자라면 본 명세서에서 개시된 원리들 및 개념들에 의해서 가이드 될 때, 그런 저장된 프로그램 인스트럭션들 및 최소한의 실험을 가지는 IC들을 쉽게 생성할 수 있을 것이라는 것으로 기대한다.
상기의 명세서에서는, 본 발명 및 그의 이점들 및 장점들을 구체적인 실시예들을 참조하여 설명하였다. 그러나, 당업자라면, 이하의 청구범위에 명기된 바와 같이, 본 발명의 범주로부터 일탈하지 않고서, 다양한 개조예 및 변경예들이 이루어질 있다는 것을 이해할 수 있을 것이다. 따라서, 명세서 및 도면들은 한정적인 의미가 아니라 예시적인 의미로 간주되어야 하며, 모든 그런 개조예들은 본 발명의 범위 내에서 포함되는 것으로 의도된 것이다. 이점, 장점, 문제점에 대한 해결책, 임의의 이점, 장점, 또는 해결책이 일어나도록 하거나 더욱 명확하게 되도록 할 수 있는 임의의 구성요소들은, 청구항들 모두 또는 일부의 중요하거나, 요구되거나, 기본적인 특징 또는 구성요소들로서 해석되지 않아야 한다. 본 발명은, 발행된 대로의, 본 출원의 계류 중에 이루어지는 임의의 보정을 포함하는 첨부된 청구항들, 및 그 청구항들의 균등물에 의해서만 한정된다.
독자로 하여금 본 기술적 개시물의 특성을 빠르게 인식하도록 하는 요약서를 요구하고 있는, 미국 특허지침 37 C.F.R §1.72(b)를 준수하도록 개시물의 요약이 제공된다. 이는 청구항들의 범주 또는 의미를 한정하거나 해석하기 위하여 사용되지는 않다는 것으로 이해하여 제출되는 것이다. 또한, 상기 상세한 설명에서는, 개시물을 간소화하기 위하여 하나의 실시예에서 다양한 특징들이 그룹화되는 것을 볼 수 있다. 본 개시물의 방법은 청구된 실시예들은 각각의 청구항에 명시적으로 인용되는 것 이상의 특징을 요구하는 의도를 반영하는 것으로 해석되어서는 안된다. 그렇다기보다는, 이하의 청구항들에서 반영하는 바와 같이, 본 발명의 주제는 하나의 개시된 실시예의 모든 특징들 및 그 이하의 것들에 있다고 하겠다. 그러므로, 이하의 청구항들은 각각의 청구항이 별도의 청구된 주재로서 독립하여, 상세한 설명 부분에 포함되어 있다.
Claims (13)
- 통신 네트워크에서 데이터 스트림을 관리하는 방법으로서,
하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림을 수신하는 단계 - 상기 하나 이상의 데이터 세그먼트들 각각은, 복수의 프레임 타입들 중 하나의 프레임 타입에 해당함 -;
적어도 하나의 소정의 파라미터에 기초하여, 상기 통신 네트워크에서 상기복수의 프레임 타입들 각각에 대하여 전송될 데이터 세그먼트들의 수를 판정하는 단계;
각각의 프레임 타입에 대하여 전송될 데이터 세그먼트들의 수, 상기 하나 이상의 데이터 세그먼트들 간의 기능적인 의존성(functional dependency), 및 상기 복수의 프레임 타입들 간의 기능적인 의존성에 기초하여, 상기 복수의 프레임 타입들 중 적어도 하나의 프레임 타입에 대하여 적어도 하나의 데이터 세그먼트를 누락(dropping)시키는 단계; 및
상기 적어도 하나의 데이터 세그먼트의 누락에 기초하여 상기 수신된 패킷화된 데이터 스트림을 리패킷화(re-packetizing)하는 단계
를 포함하고,
상기 적어도 하나의 소정의 파라미터는,
상기 통신 네트워크 내의 데이터 스트림의 전송을 위한 활용가능한 대역폭;
상기 수신된 패킷화된 데이터 스트림의 타입; 및
이전의 데이터 스트림 내에서 수신된 각각의 프레임 타입에 대한 데이터 세그먼트들의 수
중 하나 이상에 기초하는 데이터 스트림 관리 방법. - 삭제
- 제1항에 있어서,
상기 패킷화된 데이터 스트림은 MPEG-2(Motion Picture Experts Group-2) 및 MPEG-4(Motion Picture Experts Group-4) 트랜스포트 스트림 중 적어도 하나에서의 GoP(Group of Picture)인 데이터 스트림 관리 방법. - 제1항에 있어서,
상기 하나 이상의 데이터 세그먼트들과 상기 복수의 프레임 타입들 사이의 기능적인 의존성은, MPEG-2(Motion Picture Experts Group-2) 및 MPEG-4(Motion Picture Experts Group-4) 비디오 시멘틱들(video semantics) 중 적어도 하나에 기초하는 데이터 스트림 관리 방법. - 제1항에 있어서,
상기 데이터 세그먼트 누락 전에, 데이터 세그먼트의 프레임 타입을 식별하는 단계를 더 포함하는 데이터 스트림 관리 방법. - 제5항에 있어서,
상기 프레임 타입은, 비연속적인 데이터 세그먼트들 및 비연속적인 데이터 스트림들 중 적어도 하나에 걸쳐서 식별되는 데이터 스트림 관리 방법. - 제1항에 있어서,
이전의 데이터 스트림 내의 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트 및 상기 수신된 패킷화된 데이터 스트림 내의 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트 중 적어도 하나를 저장하는 단계를 더 포함하는 데이터 스트림 관리 방법. - 통신 네트워크에서 데이터 스트림을 관리하는 시스템으로서,
하나 이상의 데이터 세그먼트들을 포함하는 패킷화된 데이터 스트림을 수신하도록 구성된 수신기 - 상기 하나 이상의 데이터 세그먼트들 각각은 복수의 프레임 타입들 중 하나의 프레임 타입에 해당함 -;
프로세서 - 상기 프로세서는,
적어도 하나의 소정의 파라미터에 기초하여 상기 통신 네트워크에서 상기 복수의 프레임 타입들 각각에 대해서 전송될 데이터 세그먼트들의 수를 판정하고;
각각의 프레임 타입에 대해서 전송될 데이터 세그먼트들의 수, 상기 하나 이상의 데이터 세그먼트들 간의 기능적인 의존성, 및 상기 복수의 프레임 타입들 간의 기능적인 의존성에 기초하여 상기 복수의 프레임 타입들 중 적어도 하나의 프레임 타입에 대한 적어도 하나의 데이터 세그먼트를 누락시키도록 구성됨 -; 및
상기 적어도 하나의 데이터 세그먼트의 누락에 기초하여 상기 수신된 패킷화된 데이터 스트림을 리패킷화하도록 구성된 리패키타이저(re-packetizer)
를 포함하고,
상기 적어도 하나의 소정의 파리미터는,
상기 통신 네트워크 내의 데이터 스트림의 전송을 위한 활용가능한 대역폭;
상기 수신된 패킷화된 데이터 스트림의 타입; 및
이전의 데이터 스트림에서 수신된 각각의 프레임 타입에 대한 데이터 세그먼트들의 수
중 하나 이상에 기초하는 데이터 스트림 관리 시스템. - 삭제
- 제8항에 있어서,
상기 패킷화된 데이터 스트림은, MPEG-2(Motion Picture Experts Group-2) 및 MPEG-4(Motion Picture Experts Group-4) 트랜스포트 스트림 중 적어도 하나에서의 GoP(Group of Picture)인 데이터 스트림 관리 시스템. - 제8항에 있어서,
이전의 데이터 스트림 내의 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트 및 상기 수신된 패킷화된 데이터 스트림 내의 각각의 프레임 타입에 대한 데이터 세그먼트들의 카운트 중 적어도 하나를 저장하기 위한 메모리를 더 포함하는 데이터 스트림 관리 시스템. - 제8항에 있어서,
상기 기능적인 의존성은 MPEG-2(Motion Picture Experts Group-2) 및 MPEG-4(Motion Picture Experts Group-4) 비디오 시멘틱들 중 적어도 하나에 기초하는 데이터 스트림 관리 시스템. - 제8항에서,
상기 프로세서는 또한, 상기 데이터 세그먼트를 누락시키기 전에 데이터 세그먼트의 프레임 타입을 식별하도록 구성된 데이터 스트림 관리 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2787DE2008 | 2008-12-10 | ||
IN2787/DEL/2008 | 2008-12-10 | ||
PCT/US2009/067045 WO2010068600A2 (en) | 2008-12-10 | 2009-12-08 | Method and system for deterministic packet drop |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110105795A KR20110105795A (ko) | 2011-09-27 |
KR101240808B1 true KR101240808B1 (ko) | 2013-03-11 |
Family
ID=42243290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117016032A KR101240808B1 (ko) | 2008-12-10 | 2009-12-08 | 결정론적 패킷 누락에 대한 방법 및 시스템 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2377277A4 (ko) |
KR (1) | KR101240808B1 (ko) |
WO (1) | WO2010068600A2 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8428023B2 (en) * | 2010-10-22 | 2013-04-23 | Motorola Solutions, Inc. | Method and apparatus for distributing video packets over multiple bearers for providing unequal packet loss protection |
US8649339B2 (en) | 2010-10-22 | 2014-02-11 | Motorola Solutions, Inc. | Method and apparatus for distributing video packets over multiple bearers for providing unequal packet loss protection |
KR101858695B1 (ko) * | 2012-04-09 | 2018-05-16 | 엘지전자 주식회사 | 데이터 관리 방법 |
US11736406B2 (en) * | 2017-11-30 | 2023-08-22 | Comcast Cable Communications, Llc | Assured related packet transmission, delivery and processing |
US10841645B1 (en) * | 2019-12-09 | 2020-11-17 | Western Digital Technologies, Inc. | Storage system and method for video frame segregation to optimize storage |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070147314A1 (en) * | 2005-12-22 | 2007-06-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Network processing node and method for manipulating packets |
US20070276954A1 (en) * | 2006-05-19 | 2007-11-29 | Hong Kong University Of Science And Technology | Low-Delay High Quality Video Streaming Using TCP |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW518844B (en) * | 2001-03-21 | 2003-01-21 | Ind Tech Res Inst | Transmission method of multimedia data packet in network system |
US7860005B2 (en) * | 2004-01-30 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Methods and systems that use information about a frame of video data to make a decision about sending the frame |
EP1825684A1 (en) * | 2004-12-10 | 2007-08-29 | Koninklijke Philips Electronics N.V. | Wireless video streaming using single layer coding and prioritized streaming |
US7965771B2 (en) * | 2006-02-27 | 2011-06-21 | Cisco Technology, Inc. | Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network |
US7898950B2 (en) * | 2006-08-18 | 2011-03-01 | Microsoft Corporation | Techniques to perform rate matching for multimedia conference calls |
US7706384B2 (en) * | 2007-04-20 | 2010-04-27 | Sharp Laboratories Of America, Inc. | Packet scheduling with quality-aware frame dropping for video streaming |
-
2009
- 2009-12-08 EP EP09832432.0A patent/EP2377277A4/en not_active Withdrawn
- 2009-12-08 WO PCT/US2009/067045 patent/WO2010068600A2/en active Application Filing
- 2009-12-08 KR KR1020117016032A patent/KR101240808B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070147314A1 (en) * | 2005-12-22 | 2007-06-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Network processing node and method for manipulating packets |
US20070276954A1 (en) * | 2006-05-19 | 2007-11-29 | Hong Kong University Of Science And Technology | Low-Delay High Quality Video Streaming Using TCP |
Also Published As
Publication number | Publication date |
---|---|
EP2377277A2 (en) | 2011-10-19 |
WO2010068600A3 (en) | 2010-10-14 |
KR20110105795A (ko) | 2011-09-27 |
WO2010068600A2 (en) | 2010-06-17 |
EP2377277A4 (en) | 2013-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8270425B2 (en) | Method and system for multicast video streaming over a wireless local area network (WLAN) | |
US11032575B2 (en) | Random access in a video bitstream | |
US10097846B2 (en) | Signaling change in output layer sets | |
JP4874343B2 (ja) | スケーラブルビデオ符号化における、下位互換性のあるピクチャの集約 | |
US8416859B2 (en) | Signalling and extraction in compressed video of pictures belonging to interdependency tiers | |
US9712833B2 (en) | System and method for indicating temporal layer switching points | |
US8290036B2 (en) | Method, apparatus and system for concurrent processing of multiple video streams | |
KR101620151B1 (ko) | 클라이언트와, 콘텐트 생성기 엔티티 및 미디어 스트리밍을 위한 이들의 방법 | |
US20140362918A1 (en) | Tuning video compression for high frame rate and variable frame rate capture | |
US10491964B2 (en) | Assisted acceleration for video streaming clients | |
US10536708B2 (en) | Efficient frame loss recovery and reconstruction in dyadic hierarchy based coding | |
TW201018231A (en) | Power and computational load management techniques in video processing | |
US11350142B2 (en) | Intelligent video frame dropping for improved digital video flow control over a crowded wireless network | |
KR101240808B1 (ko) | 결정론적 패킷 누락에 대한 방법 및 시스템 | |
US20130089107A1 (en) | Method and Apparatus for Multimedia Queue Management | |
US20190356911A1 (en) | Region-based processing of predicted pixels | |
Burza et al. | Adaptive streaming of MPEG-based audio/video content over wireless networks | |
US20150149593A1 (en) | Virtual desktop infrastructure server, computer implemented video streaming method, and non-transitory computer readable storage medium thereof | |
Nightingale et al. | Priority-based methods for reducing the impact of packet loss on HEVC encoded video streams | |
Go et al. | A systematic reallocation and prioritization scheme for error-resilient transmission of video packets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161229 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180212 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190219 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200211 Year of fee payment: 8 |