KR20090018834A - 스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑 - Google Patents

스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑 Download PDF

Info

Publication number
KR20090018834A
KR20090018834A KR1020087031097A KR20087031097A KR20090018834A KR 20090018834 A KR20090018834 A KR 20090018834A KR 1020087031097 A KR1020087031097 A KR 1020087031097A KR 20087031097 A KR20087031097 A KR 20087031097A KR 20090018834 A KR20090018834 A KR 20090018834A
Authority
KR
South Korea
Prior art keywords
frames
frame
transmission queue
frame group
node
Prior art date
Application number
KR1020087031097A
Other languages
English (en)
Other versions
KR100994617B1 (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 KR20090018834A publication Critical patent/KR20090018834A/ko
Application granted granted Critical
Publication of KR100994617B1 publication Critical patent/KR100994617B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • 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/63Control 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/647Control 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/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Abstract

본 발명에 따르면, 네트워크를 통하여 제 1 노드와 제 2 노드 사이에서 전송되며, 하나 이상의 프레임 그룹들을 포함하는 스트리밍 데이터의 품질을 최적화하는 방법들 및 장치들이 제공된다. 또한, 네트워크를 통하여 제 1 노드와 제 2 노드 사이에서 전송된 스트리밍 데이터의 품질을 최적화하는 방법을 실시하기 위한 프로세서 판독가능 명령들을 저장한 프로세서-판독가능 매체가 제공된다.
네트워크, 노드, 프레임 그룹, 스트리밍 데이터

Description

스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑{Predictive frame dropping to enhance quality of service in streaming data}
본 출원은, 2006년 6월22일에 출원되었던 미국특허출원 제11/425,871호의 우선권의 이익을 청구한다.
본 발명의 실시형태들은, 스트리밍 데이터(streaming data)의 QoS(Quality of Service), 특히 대역폭을 제한하는 동안 데이터 스트림(stream)의 품질을 최대로 하기 위한 예측 프레임 드로핑(predictive frame dropping)에 관한 것이다.
스트리밍 데이터 어플리케이션들(applications)은 대역폭 제한에 적응하기 위해 다양한 수단을 사용한다. 그러나, 실시간 스트리밍 비디오와 같은 특정 어플리케이션들에 대해서는, 시스템 상의 실시간 제약으로 인하여 선택할 수 있는 수단들이 적어진다. 실시간 스트리밍 비디오 어플리케이션들에 대하여, 비디오 스트림에 이용가능한 대역폭을 제한하는 QoS 소프트웨어 모듈이 실시될 수 있다. 종종 이러한 대역폭은 QoS 모듈에 의해 또한 관리되는 시스템의 다른 부분들과 공유되어야 한다. 스트림이 대역폭 성능이 다른 수개의 수신기들에 대해 인코딩(encoding)된 경우 발생할 수 있는 것처럼, QoS 모듈이 (품질 또는 비트 속도(bit rate)와 같은) 비디오 스트림의 다른 속성들을 변화시킬 수 없는 경우, 이러한 유형의 대역폭 제 한은, 비디오 스트림 전송 속도가 한계에 도달할 때 느려지게 하는 원인이 된다. 그러나, 비디오 데이터는 시간에 민감하기 때문에, 수신기에 늦게 도착한 비디오 프레임들은 드롭(drop)될 수 있다.
이와 관련하여 본 발명의 실시형태들이 기술될 것이다.
다음의 상세한 설명이 설명을 위하여 많은 구체적 세부사항들을 포함할지라도, 당업자라면 다음의 세부사항들에 대한 많은 변형례들이 본 발명의 범위 내에 있다는 것을 이해할 것이다. 따라서, 이하에서 기술된 본 발명의 예시적 실시형태들은, 청구된 발명의 일반성을 잃지 않고, 청구된 발명에 제한을 두지 않으면서 기술된다.
본 발명의 실시형태들은, 비디오 데이터, 오디오 데이터, 게임 데이터 및 파일 전송 데이터를 포함하며, 이에 제한되지 않는 임의의 형태의 스트리밍 데이터에 적용될 수 있다. 예시를 위하여, 다음의 논의는, 스트리밍 데이터가 스트리밍 비디오 데이터인 상황들을 설명한다.
MPEG2, MPEG4 및 H.264와 같은 현대적 비디오 코더/디코더들(coder/decoders)(코덱들; codecs)은, 일반적으로, 비디오 프레임들을, 각각 I-프레임들, P-프레임들 및 B-프레임들로 칭해지는 인트라-프레임들(Intra-Frames), 예측 프레임들(Predictive Frames) 및 쌍방향 예측 프레임들(Bipredictive Frames)로 공지된 3개의 기본 유형들로 분할한다.
I-프레임은 자신을 제외한 임의의 화상(picture)을 참조하지 않고 코딩된 화상이다. I-프레임들은 랜덤 액세스(random access)에 이용되고, 다른 P-프레임들 또는 B-프레임들의 디코딩(decoding)을 위한 기준들로 이용된다. I-프레임들은, (디코더가 주어진 화상 위치에서 스크래치(scratch)로부터 적절하게 디코딩을 시작할 수 있게 하기 위해) 랜덤 액세스 포인트들(random access points)을 형성하도록 인코더(encoder)에 의해 생성될 수 있다. 이미지 항목들을 구별짓는 것이 효과적인 P 또는 B 프레임들의 생성을 금지할 때, I-프레임들이 생성될 수 있다. I-프레임이 완전한 화상을 포함하기 때문에, I-프레임들은 P-프레임들 또는 B-프레임들보다 더 많은 비트들을 필요로 한다.
P-프레임들은 디코딩되기 위해 일부 다른 화상(들)의 사전 디코딩을 필요로 한다. P-프레임들은 전형적으로 인코딩을 위하여 I-프레임들보다 더 적은 비트들을 필요로 한다. P-프레임은 디코딩 순서에서 이전의 I-프레임에 대한 차이들과 관련된 인코딩된 정보를 포함한다. P-프레임은 전형적으로 화상 그룹에서 선행하는 I-프레임을 참조한다. P-프레임들은, 화상 데이터 및 이동 벡터 변위들 및 이들의 조합들을 포함할 수 있다. (MPEG-2와 같은) 일부 표준 코덱들에서, P-프레임들은, 오직 하나의 이전에 디코딩된 화상을 디코딩 동안의 기준으로서 이용하고, 이러한 화상이 디스플레이 순서에서 P-프레임보다 선행하는 것을 필요로 한다. H.264에서, P-프레임들은, 복수의 이전에 디코딩된 화상들을 디코딩 동안의 기준들로서 사용할 수 있고, 예측을 위하여 이용되는 화상(들)과 관련된 임의의 디스플레이-순서 관계를 가질 수 있다.
B-프레임들은 디코딩되기 위해 I-프레임 또는 P-프레임의 사전 디코딩을 필요로 한다. P-프레임들과 같이, B-프레임들은, 화상 데이터 및 이동 벡터 변위들 및/또는 이들의 결합들을 포함할 수 있다. B-프레임들은, 2개의 다른 사전에 디코딩된 기준 영역들을 이용하여 얻어진 예측들을 평균함으로써 이동 영역(예를 들어, 마크로블록(macroblock) 또는 더 작은 영역과 같은 프레임의 세그먼트(segment))의 예측을 형성하는 일부 예측 모드들을 포함할 수 있다. (MPEG-2와 같은) 일부 코덱들에서, B-프레임들은 다른 화상들의 예측에 대한 기준들로서 이용되지 않는다. 세부사항의 손실은 이후의 화상들에 대한 예측 품질에 해를 끼치지 않기 때문에, (통상적으로 사용되는 것보다 더 적은 비트들의 사용을 일으키는) 저품질 인코딩이 이러한 B 화상들에 이용될 수 있다. H.264와 같은 다른 코덱들에서, B-프레임들은, (인코더의 자유재량으로) 다른 화상들의 디코딩에 대한 기준들로서 이용될 수 있거나 또는 이용될 수 없다. (MPEG-2와 같은) 일부 코덱들은, 정확히 2개의 사전에 디코딩된 화상들을 디코딩 동안의 기준들로서 이용하고, 이러한 화상들 중 하나가 디스플레이 순서에서 B-프레임 화상에 선행하고 다른 화상이 B-프레임 화상의 뒤를 따르는 것을 필요로 한다. H.264와 같은 다른 코덱들에서, B-프레임은, 1개, 2개 또는 3개 이상의 사전에 디코딩된 화상들을 디코딩 동안의 기준들로서 이용할 수 있고, 예측을 위해 이용되는 화상(들)과 관련된 임의의 디스플레이-순서 관계를 가질 수 있다. B-프레임들은 인코딩에 대하여 I-프레임들 또는 P-프레임들보다 더 적은 비트들을 필요로 한다.
본 명세서에서 사용된 것처럼, 용어들 I-프레임, B-프레임 및 P-프레임은, 예를 들어 스트리밍 비디오와 관련하여 이상에서 기술된 것처럼, I-프레임들, B-프레임들 및 P-프레임들과 유사한 특성들을 가진 임의의 스트리밍 데이터 유닛들에 적용될 수 있다.
본 발명의 사상들은 첨부된 도면들과 함께 다음의 실시예를 고려함으로써 용이하게 이해될 수 있다.
도 1a는, 화상 그룹(GoP; group of pictures)의 전송을 도시하는 개략적인 타이밍도(timing diagram)이다.
도 1b는, 트래픽 쉐이핑(traffic shaping)을 이용하는 화상 그룹의 전송을 도시하는 개략적인 타이밍도이다.
도 2a는, 본 발명의 일 실시형태에 따른, 네트워크를 통해 전송된 스트리밍 데이터의 품질을 최적화하는 방법을 도시하는 순서도이다.
도 2b 내지 2c는, 본 발명의 일 실시형태에 따른, 스트리밍 데이터의 프레임들의 전송을 도시하는 개략적인 타이밍도들이다.
도 3은, 본 발명의 일 실시형태에 따른, 네트워크를 통해 전송된 스트리밍 데이터의 품질을 최적화하는 방법을 도시하는 순서도이다.
도 4a 내지 4g는, 본 발명의 일 실시형태에 따른, 네트워크를 통해 전송된 스트리밍 데이터의 품질의 최적화를 도시하는 개략적인 타이밍도들이다.
도 5는, 본 발명의 일 실시형태에 따른, 네트워크를 통해 전송된 스트리밍 데이터의 품질을 최적화하는 장치의 블록도이다.
도 6은, 본 발명의 일 실시형태에 따른, 네트워크를 통해 전송된 스트리밍 데이터의 품질을 최적화하는 장치를 이용하는 네트워크의 개략도이다.
한 세트의 관련된 스트리밍 데이터 프레임들은 일반적으로 본 명세서에서 "프레임 그룹"으로 칭해진다. 프레임 그룹 중 일 예가 스트리밍 비디오와 관련하여 화상 그룹(GoP; Group of Pictures)으로 공지되어 있다. GoP는, I-프레임과 함께 시작되고 다음의 I-프레임까지 계속되는 프레임 유형들의 반복 패턴으로서 정의될 수 있다. GoP가 더 커질수록 더 적은 I-프레임들이 단위 시간당 필요하고, 결과 비디오 스트림은 더 적은 대역폭을 필요로 한다. 예를 들어, 도 1a에 도시된 것처럼, GoP는 이하의 표 1에 표시된 것처럼 배열된 15 개의 프레임들을 가질 수 있다.
프레임 번호 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
프레임 유형 I B B P B B P B B P B B P B B
이러한 GoP에서, P-프레임들 각각은 프레임 번호 0에서 I-프레임을 참조한다. B-프레임들은 인접하여 둘러싸는 I-프레임들 및/또는 P-프레임들을 참조한다. 예를 들어, 프레임들 14 및 15에서의 B-프레임들은 프레임 13에서의 P-프레임 및 다음의 GoP 내의 프레임 0에서의 I-프레임을 참조한다. 도 1a에서 볼 수 있는 것처럼, I-프레임들, P-프레임들 및 B-프레임들은 다른 크기들을 가질 수 있으며, 전송을 위해 다른 분량들의 네트워크 대역폭을 필요로 할 수 있다.
프레임들을 전송하는 네트워크에 대한 대역폭 제한들은 단위 시간당 전송될 수 있는 프레임들의 개수를 제한할 수 있다. 하나의 노드(node)가 많은 노드들에 콘텐츠를 스트리밍(streaming)하는 위상(topology)에서, 대역폭에서의 노드 당 변화들을 수용하기 위해 GoP의 크기 및/또는 프레임 속도를 변화시키는 것은 어렵다. 이러한 변화들과 결부된 디코딩 및 재인코딩은 송신 노드에서의 큰 분량의 처리 능력 또는 잠재적으로 큰 트랜스코딩 서버 인프라스트럭쳐(transcoding server infrastructure)를 필요로 한다. 그러므로, 때때로, QoS 모듈이, 대역폭 제한들을 수용하기 위해 송신기 측의 프레임들을 드롭하는 것이 유용하다. 송신기가 대역폭 제한들로 인하여 전송 속도를 하강시켜야 하기 때문에 뒤처지는 경우, 송신기는 보상을 위하여 프레임들을 드롭시키지 않는다면 더 많이 뒤처질 것이다. 불행하게도, 대역폭 제한들에 대하여 보상하기 위해 프레임들을 드롭시키는 것은, 수신 말단에서의 비디오의 품질에 불리하게 영향을 미칠 수 있다. 수신기 측에서, (예를 들어, I-프레임 또는 P-프레임과 같은) 기준 프레임이 너무 늦어져서 드롭되는 경우, 기준 프레임을 참조하는 모든 프레임들은 쓸모없게 된다. P-프레임이 임의로 드롭되는 경우, 상기 P-프레임을 참조하는 전송된 B-프레임들은 수신기에게 쓸모없게 될 것이다.
도 1b에 도시된 것처럼, B-프레임들과 같은 더 작은 프레임들을 병렬로 전송하는 것이 때때로 가능하다. 도 1b에 도시된 실시예에서, B-프레임들(1 및 2)은 병렬로 전송된다. 유사하게, I-프레임들 또는 P-프레임들과 같은 더 큰 프레임들은 더 긴 시간에 걸쳐서 네트워크 대역폭에 의해 허용된 속도로 전송될 수 있다. 이러한 기술들은 본 명세서에서 "트래픽 쉐이핑"이라고 칭해진다. 이러한 기술들이 유용할지라도, 이용가능한 네트워크 대역폭이 불충분하다면 이들의 유용성은 제한된다.
본 발명의 실시형태들은 스트리밍 데이터 전송의 송신 측에서 프레임들의 예측 드로핑(dropping)을 실시한다. 본 발명의 실시형태들에 따르면, 네트워크를 통해 제 1 노드와 제 2 노드 사이에서 전송되는 스트리밍 데이터의 품질이 최적화될 수 있다. 스트리밍 데이터는 하나 이상의 프레임 그룹들을 포함할 수 있다. 각각의 프레임 그룹은 인트라 프레임(I-프레임)을 포함하는 하나 이상의 프레임들을 가질 수 있다. 프레임 그룹으로부터 하나 이상의 프레임들을 포함하는 전송 큐(transmission queue)는 제 1 노드로부터 제 2 노드로 연속적으로 전송된다. 새로운 I-프레임이 전송을 위하여 큐에 넣어질 때, 아직 전송되지 않은 전송 큐 내의 임의의 프레임들은, 현재 전송 중인 I-프레임을 제외하고 전송 큐로부터 드롭된다.
본 발명의 실시형태들에 따른 방법(200)은 도 2a의 순서도에 도시된 것처럼 실시될 수 있다. 구체적으로, 블록 202에서, 전송 큐는 수신된 프레임 그룹으로부터 생성된다. 전송 큐로부터의 프레임들의 전송은 블록 204에 표시된 것처럼 시작된다. 블록 206에서 이후의 프레임 그룹이 수신된다. 이것은, 수신된 프레임 그룹으로부터의 프레임들이 여전히 전송 중인 동안 일어날 수 있다. 블록 207에서, 선행하는 프레임 그룹으로부터의 큐 내의 모든 프레임들이 전송되었는지 여부가 결정된다. 모든 프레임들이 전송되었다면, 본 방법은, 이후의 프레임 그룹에 대한 전송 큐를 생성하기 위해 블록 202로 복귀한다. 그렇지 않다면, 아직 전송되지 않은 임의의 프레임들은 블록 208에서 (현재 전송 중인 I-프레임을 제외하고) 현재 전송 큐로부터 드롭된다. 본 방법은, 그 후에, 이후의 프레임 그룹에 대한 전송 큐를 생성하기 위해 블록 202로 복귀한다.
일부 상황들에서, 대역폭이 너무 제한되면, I-프레임들만이 전송될 수 있다. I-프레임이 전송을 위해 큐에 넣어지는 경우, 모든 다른, 큐에 넣어진 프레임들이 (현재 전송 중인 I-프레임을 제외하고) 드롭되어 데이터 스트림은 뒤처지지 않고, 수신 측은 디코딩할 수 있는 프레임들을 수신할 것이다. 예를 들어, 도 2b의 타이밍도에 도시된 것처럼, 제 1 I-프레임(IA)이 전송 중인 동안, 제 2 I-프레임(IB)은 시간 t1에서 전송을 위해 큐에 넣어진다. 제 1 I-프레임(IA)의 전송이 완료된 이후에, 제 2 I-프레임(IB)이 전송된다. 일부 상황들에서, 네트워크 대역폭은 I-프레임이 전송되는 것을 방지하도록 감소될 수 있다. 예를 들어, 도 2c에 도시된 것처럼, 제 1 I-프레임(IA)의 전송이 완료되기 전 그리고 제 2 I-프레임(IB)이 t1에서 큐에 넣어진 후에 제 3 I-프레임(IC)이 시간 t2에서 전송을 위해 큐에 넣어질 수 있다. 이러한 경우에, 제 2 I-프레임(IB)은, 제 3 I-프레임(IC)이 더욱 최근의 것이기 때문에 전송 큐로부터 드롭될 수 있다.
본 발명의 실시형태들에서, 도 2a의 블록 202에서 전송 큐를 생성하는 단계는, 이후의 프레임 그룹에 대한 전송 큐로부터 얼마나 많은 그리고/또는 어떤 프레임들이 드롭되는지를 예측하며 결정하는 하나의 프레임 그룹에 대한 전송 큐로부터 드롭되는 프레임들의 개수 및/또는 유형을 이용하는 단계를 포함할 수 있다. 도 3의 순서도는, 도 2a의 블록 202로서 실시될 수 있는 예측 프레임 드로핑을 실시하는 방법(300)의 일 실시예를 도시한다. 프레임 그룹은 I-프레임 및 개수 P의 P-프레임들을 가질 수 있다. 새로운 I-프레임의 큐잉(queuing)으로 인하여 이전의 프레임 그룹(예를 들어, 비디오 데이터 스트림으로부터의 GoP)에 대한 전송 큐로부터 드롭된 P-프레임들의 개수 P는 블록 302에 표시된 것처럼 결정될 수 있다. 이러한 카운트는 블록 304에 표시된 것처럼 저장된 "드롭 카운터(drop counter; DC)"에 추가될 수 있다. 그 다음에, DC의 값과 같은 P-프레임들의 개수는 이후의 프레임 그룹에 대한 전송 큐로부터의 드로핑에 대하여 마킹(marking)된다. 드로핑에 대하여 마킹된 P-프레임을 참조하는 임의의 B-프레임은 드로핑에 대하여 마킹될 수 있다. 드로핑에 대하여 마킹된 프레임들은 전송 큐로부터 버려지고 전송되지 않는다. 이후의 프레임 그룹으로부터의 I-프레임 및 (P-DC) P-프레임들을 포함하는 전송 큐는 그 다음에 블록 306에 표시된 것처럼 전송된다. 다음의 I-프레임의 큐잉은 이상에서 기술된 것처럼 전송을 인터럽트(interrupt)할 수 있다. 그러므로, 블록 308에서, 모든 P-프레임들이 전송되었는지 여부가 결정된다. 모든 P-프레임들이 전송된 경우가 아니라면, 블록 310에서 드롭 카운터(DC)가 증가된다. 예를 들어, 드롭 카운터는 임의의 분량만큼, 예를 들어 1씩, 최대값 P까지 감소될 수 있다. 모든 P-프레임들이 전송된 경우, 블록 312에서, (예를 들어, 임의의 B-프레임들을 포함하는) 전송 큐 내의 모든 프레임들이 전송되었는지 여부가 결정된다. 모든 프레임들이 전송되었다면, 블록 314에서, 드롭 카운터(DC)가 임의의 분량, 예를 들어 1만큼씩 최소값 0까지 감소될 수 있다. 그렇지 않다면, 블록 316에서 드롭 카운트는 똑같이 유지될 것이다. 이러한 과정은 각각의 프레임 그룹에 대하여 반복된다. 이러한 방식으로, 드롭 카운터 값(DC)은 네트워크 트래픽 조건들에서의 변화들로 인한 대역폭에서의 변화들에 대하여 자동적으로 조정될 수 있다.
도 4a 내지 4f는 도 3과 관련하여 이상에서 기술된 방법의 동작의 실시예들을 도시한다. 이러한 실시예들에서, 각각의 프레임 그룹의 프레임들은, 프레임 유형을 표시하는 문자 I, P 또는 B, 프레임이 속하는 프레임 그룹을 식별하는 첨자, 및 프레임 그룹 내의 프레임의 위치를 식별하는 첨자에 의해 식별된다. 구체적으로, 도 4a는, I-프레임(IA 0), P-프레임들(PA 3, PA 6, PA 9 및 PA 12), 및 B-프레임들(BA 1, BA 2, BA 4, BA 5, BA 7, BA 8, BA 10, BA 11, BA 13 및 BA 14)을 포함하는 프레임 그룹에 대한 전송 큐(402)를 도시한다. 이 실시예에서, 드롭 카운터(DC)는 초기에 0이다. 이러한 실시예에서, QoS 대역폭 제한들로 인하여, I-프레임(IA 0), P-프레임(PA 3) 및 B-프레임들(BA 1, BA 3, BA 4)만이, 다음의 프레임 그룹을 시작하는 I-프레임(IB 0)이 도 4b에 도시된 것처럼 큐에 넣어지기 전에 전송된다. 이것은, P-프레임들(PA 6, PA 9 및 PA 12) 및 B-프레임들(BA 5, BA 7, BA 8, BA 10, BA 11, BA 13 및 BA 14)이 드롭되는 것을 일으킨다. 3개의 P-프레임들이 드롭되었기 때문에, 드롭 카운터(DC)는 0으로부터 3까지 증가될 수 있다. 새로운 프레임 그룹이 시작된 이후로, 3개의 P-프레임들 및 종속 B-프레임들이 드로핑에 대하여 마킹될 수 있다. 프레임 그룹에 걸쳐서 드롭된 P-프레임들을 실질적으로 고르게 분배하는 것이 종종 바람직하다. 예를 들어, 실질적으로 고르게 분배된 드롭된 P-프레임들을 가지는 결과 전송 큐(404)는 도 4c에 도시될 수 있다. 이 실시예에서, I-프레임에 가장 가까운 P-프레임들은 바람직하게 드롭될 수 있다. 이 경우에, I-프레임(IB 0) 및 P-프레임(PB 6)만이 전송 큐(404)로 보내진다. 이 실시예에서, 전송 큐(404)는, 다음의 I-프레임(IC)이 전송을 위해 큐에 넣어지기 전에 성공적으로 전송되었다. 결과적으로, 드롭 카운터(DC)는 2의 값으로 감소될 수 있다.
DC = 2이므로, 2개의 P-프레임들만이 다음의 프레임 그룹에 대한 전송 큐(406)로부터 드롭된다. 다시, 프레임 그룹에 걸쳐 드롭된 프레임들을 고르게 분배하는 것이 바람직하다. 예를 들어, 도 4d에 도시된 것처럼, 전송 큐(406)는 I-프레임(IC 0), P-프레임들(PC 3, PC 9) 및 (I-프레임(IC 0) 및 P-프레임(PC 3)을 참조하는) B-프레임들(BC 1, BC 2)을 포함할 수 있다. 이 실시예에서, 다음의 프레임 그룹에 대한 I-프레임(ID 0)이 전송을 위해 큐에 넣어지기 전에, 전체 전송 큐(406)가 성공적으로 전송된다. 결과적으로, 드롭 카운터(DC)는 1의 값으로 감소될 수 있다.
DC = 1이기 때문에, 하나의 P-프레임만이 다음의 프레임 그룹에 대한 전송 큐(408)로부터 드롭된다. 다시, 프레임 그룹에 걸쳐 드롭된 프레임들을 고르게 분배하는 것이 바람직하다. 예를 들어, 도 4e에 도시된 것처럼, 전송 큐(408)는, I-프레임(ID 0), P-프레임들(PD 3, PD 6, PD 12) 및 B-프레임들((I-프레임(ID 0) 및 P-프레임(PD 3)을 참조하는) BD 1, BD 2, (P-프레임들(PD 3 및 PD 6)을 참조하는) BD 4, BD 5, 및 (P-프레임(PD 12) 및 다음의 프레임 그룹에 대한 I-프레임(IE 0)을 참조하는) BD 13, BD 14)을 포함할 수 있다. 이 실시예에서, 다음의 프레임 그룹에 대한 I-프레임(IE 0)은, B-프레임들이 전송될 수 있기 전에, 전송을 위해 큐에 넣어진다. 전송 큐(408) 내의 모든 P-프레임들이 전송되었고 B-프레임들은 모두 전송된 것이 아니기 때문에, 드롭 카운터(DC) 값은 변화하지 않는다.
DC = 1이기 때문에, 하나의 P-프레임만이 다음의 프레임 그룹에 대한 전송 큐(410)로부터 드롭된다. 다시, 프레임 그룹에 걸쳐 드롭된 프레임들을 고르게 분배하는 것이 바람직하다. 예를 들어, 도 4f에 도시된 것처럼, 전송 큐(410)는 I-프레임(IE 0), P-프레임들(PE 3, PE 6, PE 12) 및 B-프레임들( (I-프레임(IE 0) 및 P-프레임(PE 3)을 참조하는) BE 1, BE 2 및 (P-프레임들(PE 3 및 PE 6)을 참조하는) BE 4, BE 5)을 포함할 수 있다. P-프레임(PD 12)을 참조하는 B-프레임들은, 이전의 전송 큐(408) 내의 대응하는 B-프레임들이 전송되지 않았기 때문에, 전송 큐(410)로부터 드롭될 수 있다. 이러한 실시예에서, 다음의 프레임 그룹에 대한 I-프레임(IF 0)은, P-프레임(PE 12)이 전송될 수 있기 전에 전송을 위하여 큐에 넣어진다. 전송 큐(410) 내의 하나의 P-프레임이 전송되지 않았기 때문에, 드롭 카운터(DC) 값은 DC = 2로 증가될 수 있다.
예측하며 드롭하기 위한 프레임들을 선택하기 위해 다양한 방법들이 이용될 수 있다. 예측하며 드롭하기 위한 프레임들의 선택을 조정함으로써, 대역폭 사용이 최대화될 수 있고, 스트리밍 데이터 품질은 최적화될 수 있다. 또한, 보내진 프레임들의 최대 개수까지 "치료(healing)"함으로써, 국소적 일시적 장애들이 처치되고, 최대값 근처에서의 대역폭 이용이 허용된다. 이상에서 기술된 것처럼 예측 프레임 드로핑의 많은 변형례들이 가능하다는 것을 주목한다. 예를 들어, 프레임 그룹에 걸쳐서 드롭된 프레임들을 분배하는 대신에, 프레임들은, 프레임 그룹의 처음 또느 말단으로부터 시작하는 시퀀스(sequence)에서 드롭될 수 있다. 게다가, 다른 예측 대역폭 조정 기술들이 예측 프레임 드로핑과 함께 또는 이에 대한 대안으로서 사용될 수 있다. 예를 들어, 도 4g에 도시된 것처럼, 트래핑 형성이 프레임 드로핑과 함께 이용될 수 있다. 구체적으로, 대역폭 제한(412)이 허용된다면, B-프레임들(B1, B2, B3 및 B5)은, I-프레임(I) 및 P-프레임들(P3 및 P6)이 없는 동안 이전의 프레임 그룹에 대한 전송 큐에 대하여 행해진 조정들에 근거하여 병렬로 전송될 수 있다. 다른 프레임들은 이상에서 기술된 것처럼 예측하며 드롭될 수 있다.
본 발명의 실시형태들은 도 5에 도시된 것처럼 네트워크를 통하여 전송된 스트리밍 데이터의 품질을 최적화하기 위한 장치(500)의 형태로 실시될 수 있다. 장치(500)는 일반적으로 수신기 모듈(502), QoS(Quality of Service) 모듈(504) 및 전송기(506)를 포함할 수 있다. 수신기 모듈은 업스트림 노드(upstream node)로부터 하나 이상의 프레임 그룹들(501)을 수신하도록 채택된 논리를 포함할 수 있다. QoS 모듈(504)은 프레임 그룹(501)으로부터 전송 큐(503)를 생성하도록 채택된 논리(508)를 포함할 수 있다. 전송기(506)는 다운스트림 노드(downstream node; 510)로 전송 큐(503)를 전송하도록 채택될 수 있다.
QoS 모듈(504) 내의 논리(508)는, 예를 들어 도 2a 내지 2c, 3 및 4a 내지 4g와 관련하여 이상에서 기술된 것처럼, 예측 프레임 드로핑 방법들을 실시할 수 있다. 논리는, 하드웨어, 소프트웨어, 펌웨어 또는 이들 중 2개 이상의 조합과 같은 임의의 적합한 방식으로 실시될 수 있다. 특히, QoS 모듈(504) 내의 논리(508)는, 새로운 I-프레임이 제 1 노드로부터 제 2 노드로의 전송을 위해 큐에 넣어질 때 아직 전송되지 않은 프레임들을 전송 큐(503)로부터 드롭하고 그리고/또는 이상에서 기술된 것처럼 이후의 전송 큐들로부터 프레임들을 예측하며 드롭하도록 채택될 수 있다. 논리(508)는 또한 다운스트림 노드로 전송 큐(503)를 보내는 데에 이용가능한 대역폭의 분량을 결정하도록 채택될 수 있다.
도 5에 도시된 유형의 장치는 도 6에 도시된 것처럼 네트워크를 통하여 스트리밍 데이터의 전송을 촉진할 수 있다. 구체적으로, 스트리밍 데이터 신호(601)는 데이터 생성 모듈(602)에 의해 생성될 수 있다. 데이터 생성 모듈(602)은 스트리밍 데이터가 생성될 수 있는 신호의 임의의 소스이다. 이러한 모듈들의 구체적인 실시예들은 디지털 카메라들, 디지털 음원들, 소프트웨어 미디어 플레이어들 및 디코더들, 디지털 미디어 저장 장치들 등을 포함한다. 일부 실시형태들에서, 신호(601)는 코덱에 따라 동작하는 코덱 모듈(604)을 이용하여 스트리밍 데이터(603)로 변환될 수 있다. 예를 들어, 스트리밍 데이터 신호(601)가 비디오 신호라면, 코덱은, MPEG 레이어2(MPEG layer2), MPEG 레이어4 심플 프로파일(MPEG layer4 simple profile), H.263 또는 H.264와 같은 비디오 표준 압축일 수 있다. 코덱 모듈(604)은 도 5와 관련하여 이상에서 기술된 것처럼 구성될 수 있는 복수의 QoS 모듈들(608A, 608B, 608C)로 압축된 스트리밍 데이터(603)를 분배하는 클라이언트-서버(client-server) 또는 피어-투-피어 네트워킹 라이브러리(peer-to-peer networking library; 606)로의 입력으로서 사용될 수 있다. QoS 모듈들은, 다운스트림(downstream; 612A, 612B, 612C)으로의 다른 네트워크 채널들(610A, 610B, 610C)을 통한 전송을 위해 압축된 스트리밍 데이터(603)로부터 전송 큐들을 생성한다.
각각의 네트워크 채널은 네트워크 트래픽에 대하여 다른 대역폭을 가질 수 있다. 예를 들어, 각각의 QoS 모듈(608A, 608B, 608C)은, 새로운 I-프레임이 제 1 노드로부터 제 2 노드로의 전송을 위하여 큐에 넣어질 때 아직 전송되지 않은 프레임들을 전송 큐들로부터 드롭하고 그리고/또는 이후의 전송 큐들로부터 프레임들을 예측하며 드롭하도록 채택된 논리를 포함할 수 있다. QoS 모듈들(608A, 608B, 608C) 내의 이러한 논리는 이상에서 기술된 방법들을 실시하도록 채택될 수 있다. 각각의 QoS 모듈(608A, 608B, 608C)은, 각각 네트워크 채널들(610A, 610B, 610C)을 통하여 전송 큐를 보내도록 이용가능한 대역폭의 분량을 결정하도록 채택될 수 있다.
본 발명의 실시형태들에 따르면, 비디오 스트림에 의한 대역폭 사용은 QoS 부과 한계까지 최대가 될 수 있다. 게다가, 비디오 스트림에서의 간격들(gaps)은 시간에 대하여 고르게 분배될 수 있다. 이와 반대로, 새로운 I-프레임의 GoP의 말단으로부터 프레임들을 드롭하거나 또는 GoP의 처음 또는 말단으로부터 예측하며 드롭한 나이브 프레임-드로핑(naive frame-dropping) 실시형태는, 고르지 않은 "저키(jerky)" 비디오 프레임을 일으킨다. 게다가, 본 발명의 실시형태들은, CPU 부하, 네트워크 혼잡, 또는 QoS 대역폭 제한을 일시적이면서 변칙적으로 낮추는 다른 요소들로 인하여 단기간 프레임 드로핑을 정확하게 처리할 수 있다. 본 발명의 실시형태들은, 문제가 사라질 때 비디오 스트림을 최적 드롭 속도로 되돌려 치료할 수 있다. 본 발명의 실시형태들의 또 다른 장점은, 드롭된 프레임들에 의존하는 예측 또는 쌍방향 예측 프레임들이 전송되지 않는 경우, 모든 전송된 프레임들이 수신 말단에서 디코딩될 수 있다는 것이다. 움직임 추정(motion estimation)을 이용하면, 수신기는 또한, 충분한 정보를 가지고 있는 경우, 쓸모없는 예측 프레임들 내에서 보내졌을 데이터의 추정(estimate)을 합성할 수 있다.
본 발명의 바람직한 실시형태가 이상에서 완벽하게 기술되었을지라도, 다양한 변형례들 및 균등물들을 이용하는 것이 가능하다. 그러므로, 본 발명의 범위는, 이상의 상세한 설명을 참조하지 않고 결정되어야 하며, 균등물들의 전체 범위를 따라 첨부된 청구범위를 참조하여 결정되어야 한다. 본 명세서에 기술된 임의의 특징은, 바람직한지 여부에 상관없이, 본 명세서에 기술된 다른 특징과 결합될 수 있 다. 이하의 청구범위에서는, 부정관사 "A" 또는 "An"은, 다르게 표현되어 있지 않다면, 관사의 뒤를 따르는 아이템(item)의 하나 이상의 분량을 의미한다. 첨부된 청구범위는, "~ 을 위한 수단(means for)"이라는 용어를 사용하여 주어진 청구항에서 명확하게 열거된 경우가 아니라면, 수단-플러스-기능 제한들(means-plus-function limitaiton)을 포함하는 것으로 해석되지 않는다.

Claims (26)

  1. 제 1 노드(first node)와 제 2 노드(second node) 사이에서 네트워크를 통하여 전송된 스트리밍 데이터(streaming data)의 품질을 최적화하는 방법으로서,
    상기 스트리밍 데이터는 하나 이상의 프레임 그룹들(frame groups)을 포함하며, 각각의 프레임 그룹은 인트라 프레임(intra frame; I-프레임)을 포함하는 복수의 프레임들을 가지고, 상기 방법은:
    새로운 I-프레임이, 현재 전송 중인 I-프레임을 제외하고, 프레임 그룹으로부터 하나 이상의 프레임들을 포함하는 전송 큐(transmission queue)로부터, 아직 전송되지 않은 전송 큐 내의 임의의 프레임들을 드롭(drop)하는 전송을 위해 큐(queue)에 넣어질 때, 상기 전송 큐를 상기 제 1 노드로부터 상기 제 2 노드로 연속적으로 전송하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  2. 제 1 항에 있어서, 상기 각각의 프레임 그룹은 상기 I-프레임을 참조하는 하나 이상의 예측 프레임들(predictive frames; P-프레임)을 포함하고, 상기 방법은:
    상기 전송 큐로부터 드롭되었던 P-프레임들의 개수 P를 결정하는 단계; 및
    이후의 프레임 그룹에 대하여, 얼마나 많은 P-프레임들이 상기 이후의 프레임 그룹에 선행하는 프레임 그룹에 대한 전송 큐로부터 드롭되었는지에 근거하여 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭 하는 단계를 더 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  3. 제 2 항에 있어서, 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하는 단계는, 상기 이후의 프레임 그룹 내의 잔존 P-프레임들이 상기 이후의 프레임 그룹에서 실질적으로 같은 간격을 가지도록 하나 이상의 P-프레임들을 선택적으로 드롭하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  4. 제 2 항에 있어서, 상기 각각의 프레임 그룹은, 인접하여 둘러싸는 I-프레임 및/또는 P-프레임을 참조하는 하나 이상의 쌍방향 예측 프레임들(bi-predictive frames; B-프레임들)을 포함하고, 상기 방법은, 상기 전송 큐로부터 드롭되었던 P-프레임을 참조하는 임의의 B-프레임을 상기 전송 큐로부터 드롭하는 단계를 더 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  5. 제 2 항에 있어서, 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하는 단계는, 초기 프레임 그룹에 대한 전송 큐로부터 드롭되었던 상기 초기 프레임 그룹 내의 P-프레임들의 개수와 같은 드롭 카운트(drop count; DC)를 결정하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  6. 제 5 항에 있어서, 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하는 단계는, 상기 이후의 프레임 그룹에 인접하여 선행하는 프레임 그룹에 대한 전송 큐 내의 모든 P-프레임들이 전송된 경우, 상기 드롭 카운트를 감소시키는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  7. 제 5 항에 있어서, 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하는 단계는, 상기 이후의 프레임 그룹에 인접하여 선행하는 프레임 그룹에 대한 전송 큐 내의 P-프레임들 전체 개수보다 적은 개수의 P-프레임들이 전송된 경우, 상기 드롭 카운트를 증가시키는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  8. 제 5 항에 있어서, 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하는 단계는 상기 드롭 카운트(DC)와 같은 개수의 프레임들을 드롭하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  9. 제 1 항에 있어서, 초기 프레임 그룹으로부터의 하나 이상의 프레임들을 포함하는 전송 큐를 상기 제 1 노드로부터 상기 제 2 노드로 연속적으로 전송하는 단계는, 상기 초기 프레임 그룹의 하나 이상의 프레임들을 트래픽 쉐이핑(traffic shaping)하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  10. 제 1 항에 있어서, 초기 프레임 그룹으로부터의 하나 이상의 프레임들을 포함하는 전송 큐를 상기 제 1 노드로부터 상기 제 2 노드로 연속적으로 전송하는 단계는, 현재 전송 중인 I-프레임의 전송을 완료하는 단계 및 가장 최근에 수신된 I-프레임을 연속적으로 전송하는 단계를 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  11. 제 10 항에 있어서, 상기 현재 전송 중인 I-프레임과 상기 가장 최근에 수신된 I-프레임 사이에서 수신된 중간 I-프레임을 전송 큐로부터 드롭하는 단계를 더 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  12. 제 1 항에 있어서, 상기 하나 이상의 프레임 그룹들은, 하나 이상의 화상 그룹들(GoP; groups of pictures)의 비디오 스트림(video stream) 및/또는 하나 이상의 프레임들의 오디오 스트림(audio stream) 및/또는 하나 이상의 프레임들의 게임 스트림(game stream) 및/또는 하나 이상의 프레임들의 파일 전송 스트림(file transfer stream)을 포함하는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 방법.
  13. 제 1 노드와 제 2 노드 사이에서 네트워크를 통해 전송된 스트리밍 데이터의 품질을 최적화하는 장치로서,
    상기 스트리밍 데이터는, 인트라 프레임(I-프레임)을 포함하는 복수의 프레임들을 가지는 프레임 그룹을 포함하고,
    상기 장치는, 상기 프레임 그룹으로부터 전송 큐를 생성하도록 채택된 논리를 포함하는 QoS(Quality of Service) 모듈을 포함하고,
    상기 논리는, 새로운 I-프레임이 상기 제 1 노드로부터 상기 제 2 노드로의 전송을 위해 큐에 넣어질 때 아직 전송되지 않은 모든 프레임들을 상기 전송 큐로부터 드롭하도록 더 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  14. 제 13 항에 있어서, 상기 논리는:
    상기 전송 큐로부터 드롭되었던 예측 프레임들(P-프레임들)의 개수 P를 결정하고;
    이후의 프레임 그룹에 대하여, 얼마나 많은 P 프레임들이, 상기 이후의 프레임 그룹에 선행하는 프레임 그룹에 대한 전송 큐로부터 드롭되었는 지에 근거하여, 상기 이후의 프레임 그룹에 대한 전송 큐로부터 0 내지 P 개의 P-프레임들을 드롭하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  15. 제 14 항에 있어서, 상기 논리는, 상기 이후의 프레임 그룹 내의 잔존 P-프 레임들이 실질적으로 같은 간격을 가지도록 하나 이상의 P-프레임들을 선택적으로 드롭하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  16. 제 14 항에 있어서, 상기 논리는, 상기 전송 큐로부터 드롭된 P-프레임을 참조하는 하나 이상의 쌍방향 예측 프레임들(B-프레임들)을 상기 전송 큐로부터 드롭하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  17. 제 14 항에 있어서, 상기 논리는, 초기 프레임 그룹에 대한 전송 큐로부터 드롭되었던 상기 초기 프레임 그룹 내의 P-프레임들의 개수와 같은 드롭 카운트(DC)를 결정하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  18. 제 17 항에 있어서, 상기 논리는, 상기 이후의 프레임 그룹에 인접하여 선행하는 프레임 그룹에 대한 전송 큐 내의 모든 P-프레임들이 전송된 경우, 상기 드롭 카운트를 감소시키도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  19. 제 17 항에 있어서, 상기 논리는, 상기 이후의 프레임 그룹에 인접하여 선행하는 프레임 그룹에 대한 전송 큐 내의 P-프레임들 전체 개수보다 적은 개수의 P- 프레임들이 전송된 경우, 상기 드롭 카운트를 증가시키도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  20. 제 17 항에 있어서, 상기 논리는, 상기 드롭 카운트(DC)와 같은 프레임들의 개수를 드롭시키도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  21. 제 13 항에 있어서, 상기 논리는 초기 프레임 그룹의 하나 이상의 프레임들을 트래픽 쉐이핑하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  22. 제 13 항에 있어서, 상기 논리는, 현재 전송 중인 I-프레임의 전송을 완료하고 가장 최근에 수신된 I-프레임을 연속적으로 전송하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  23. 제 22 항에 있어서, 상기 논리는, 상기 현재 전송 중인 I-프레임과 상기 가장 최근에 수신된 I-프레임 사이에 수신된 중간 I-프레임을 전송 큐로부터 드롭하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  24. 제 13 항에 있어서, 상기 QoS 모듈에 동작가능하게 결합된 수신기 모듈을 더 포함하고, 상기 수신기 모듈은 업스트림 노드(upstream node)로부터 상기 프레임 그룹을 수신하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  25. 제 13 항에 있어서, 상기 QoS 모듈에 동작가능하게 결합된 송신기 모듈을 더 포함하고, 상기 송신기 모듈은 상기 제 1 노드로부터 상기 제 2 노드로 상기 전송 큐를 전송하도록 채택되는 것을 특징으로 하는, 스트리밍 데이터의 품질을 최적화하는 장치.
  26. 제 1 노드와 제 2 노드 사이에서 네트워크를 통하여 전송된 스트리밍 데이터의 품질을 최적화하는 방법을 실시하기 위한 프로세서 판독가능 명령들을 저장한 프로세서-판독가능 매체로서,
    상기 스트리밍 데이터는 하나 이상의 프레임 그룹들을 포함하며, 각각의 프레임 그룹은 인트라 프레임(I-프레임)을 포함하는 복수의 프레임들을 가지고, 상기 방법은:
    새로운 I-프레임이, 현재 전송 중인 I-프레임을 제외하고, 초기 프레임 그룹으로부터 하나 이상의 프레임들을 포함하는 전송 큐로부터, 아직 전송되지 않은 전송 큐 내의 임의의 프레임들을 드롭하는 전송을 위해 큐에 넣어질 때, 상기 전송 큐를 상기 제 1 노드로부터 상기 제 2 노드로 연속적으로 전송하는 단계를 포함하는 것을 특징으로 하는 프로세서-판독가능 매체.
KR1020087031097A 2006-06-22 2007-06-01 스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑 KR100994617B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/425,871 2006-06-22
US11/425,871 US8296813B2 (en) 2006-06-22 2006-06-22 Predictive frame dropping to enhance quality of service in streaming data

Publications (2)

Publication Number Publication Date
KR20090018834A true KR20090018834A (ko) 2009-02-23
KR100994617B1 KR100994617B1 (ko) 2010-11-15

Family

ID=38834225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087031097A KR100994617B1 (ko) 2006-06-22 2007-06-01 스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑

Country Status (5)

Country Link
US (2) US8296813B2 (ko)
EP (1) EP2030448B1 (ko)
JP (1) JP4857379B2 (ko)
KR (1) KR100994617B1 (ko)
WO (1) WO2007149695A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8970710B2 (en) 2010-11-30 2015-03-03 Thomson Licensing Method and apparatus for measuring quality of video based on frame loss pattern

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296813B2 (en) 2006-06-22 2012-10-23 Sony Computer Entertainment Inc. Predictive frame dropping to enhance quality of service in streaming data
US8483551B2 (en) * 2006-12-04 2013-07-09 Electronics And Telecommunications Research Institute Method for generating double-speed IDR-unit for trick play, and trick play system and method using the same
JP4851976B2 (ja) * 2007-03-28 2012-01-11 富士フイルム株式会社 動画圧縮装置およびその動作制御方法
EP2481555B1 (en) 2007-09-17 2021-08-25 3D Systems, Inc. Region-based supports for parts produced by solid freeform fabrication
US8432804B2 (en) * 2007-11-29 2013-04-30 Hewlett-Packard Development Company, L.P. Transmitting video streams
US8693553B2 (en) * 2007-12-28 2014-04-08 Nokia Corporation Methods, apparatuses, and computer program products for adaptive synchronized decoding of digital video
US8855211B2 (en) 2008-01-22 2014-10-07 At&T Intellectual Property I, Lp Method and apparatus for managing video transport
EP2094014A1 (en) * 2008-02-21 2009-08-26 British Telecommunications Public Limited Company Video streaming
JP5229066B2 (ja) * 2009-03-31 2013-07-03 日本電気株式会社 動画配信装置、動画受信装置、動画配信方法、動画受信方法、および、プログラム
JP5359724B2 (ja) * 2009-09-16 2013-12-04 日本電気株式会社 ストリーミング配信システム、サーバ装置、ストリーミング配信方法及びプログラム
US8483055B2 (en) * 2010-07-02 2013-07-09 Librestream Technologies Inc. Adaptive frame rate control for video in a resource limited system
US8767553B2 (en) * 2010-07-02 2014-07-01 Nec Laboratories America, Inc. Dynamic resource partitioning for long-term fairness to non-elastic traffic on a cellular basestation
US8667166B2 (en) 2010-11-02 2014-03-04 Net Power And Light, Inc. Method and system for resource-aware dynamic bandwidth control
US9807397B2 (en) * 2011-04-11 2017-10-31 Sharp Laboratories Of America, Inc. System for power allocation
US9191413B2 (en) * 2011-11-01 2015-11-17 T-Mobile Usa, Inc. Synchronizing video and audio over heterogeneous transports
US9307021B2 (en) * 2013-02-27 2016-04-05 Comcast Cable Communications, Llc Adaptive media transmission processing
US9578333B2 (en) * 2013-03-15 2017-02-21 Qualcomm Incorporated Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames
US9578342B2 (en) * 2013-06-24 2017-02-21 Dialogic Corporation Rate control algorithm for scalable video encoding with disposable P-frames
CN104270649B (zh) * 2014-10-28 2019-01-22 中磊电子(苏州)有限公司 影像编码装置及影像编码方法
US9628828B2 (en) * 2014-12-15 2017-04-18 Cable Television Laboratories, Inc. Software defined networking in a cable TV system
CN104702968B (zh) * 2015-02-17 2019-06-11 华为技术有限公司 一种视频帧丢帧方法及视频发送装置
US10123040B2 (en) * 2016-08-30 2018-11-06 Qualcomm Incorporated Intra-coded video frame caching for video telephony sessions
WO2018088784A1 (en) 2016-11-09 2018-05-17 Samsung Electronics Co., Ltd. Electronic apparatus and operating method thereof
CN112672152A (zh) * 2017-09-06 2021-04-16 深圳市大疆创新科技有限公司 无线数据传输方法和设备
US10911812B2 (en) * 2017-09-18 2021-02-02 S2 Security Corporation System and method for delivery of near-term real-time recorded video
WO2020101547A1 (en) * 2018-11-14 2020-05-22 Saab Ab Video data burst control for remote towers
US10904161B2 (en) * 2018-12-12 2021-01-26 Intel Corporation Using attribute vector for dynamic content-based attribute QoS for networking and interconnect fabrics
US11350142B2 (en) * 2019-01-04 2022-05-31 Gainspan Corporation Intelligent video frame dropping for improved digital video flow control over a crowded wireless network
US11178205B2 (en) * 2020-01-20 2021-11-16 Ideaforge Technology Pvt. Ltd. System and method for providing live streaming of video data in a low-bandwidth network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4116470B2 (ja) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
CN101107865B (zh) * 2005-01-17 2011-11-16 皇家飞利浦电子股份有限公司 用于发射和接收已排序的视频帧集合的方法和发射机
US8355452B2 (en) * 2006-02-27 2013-01-15 Sharp Laboratories Of America, Inc. Selective frame dropping for initial buffer delay reduction
US8296813B2 (en) 2006-06-22 2012-10-23 Sony Computer Entertainment Inc. Predictive frame dropping to enhance quality of service in streaming data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8970710B2 (en) 2010-11-30 2015-03-03 Thomson Licensing Method and apparatus for measuring quality of video based on frame loss pattern

Also Published As

Publication number Publication date
US20070296854A1 (en) 2007-12-27
EP2030448A2 (en) 2009-03-04
JP4857379B2 (ja) 2012-01-18
WO2007149695A3 (en) 2008-11-27
EP2030448A4 (en) 2014-05-21
US8843979B2 (en) 2014-09-23
JP2009542111A (ja) 2009-11-26
US20130212632A1 (en) 2013-08-15
EP2030448B1 (en) 2016-10-19
KR100994617B1 (ko) 2010-11-15
US8296813B2 (en) 2012-10-23
WO2007149695A2 (en) 2007-12-27

Similar Documents

Publication Publication Date Title
KR100994617B1 (ko) 스트리밍 데이터에서 서비스 품질을 향상시키기 위한 예측 프레임 드로핑
KR100799784B1 (ko) 시간적 스케일러빌러티를 가능하게 하는 하이브리드 비디오압축에서의 프레임 예측 방법 및 장치
US8467457B2 (en) System and a method for controlling one or more signal sequences characteristics
US7860005B2 (en) Methods and systems that use information about a frame of video data to make a decision about sending the frame
US20060088094A1 (en) Rate adaptive video coding
US10116970B1 (en) Video distribution, storage, and streaming over time-varying channels
EP1709783A1 (en) Methods and systems that use information about data packets to determine an order for sending the data packets
US8243789B2 (en) Methods and systems for rate-adaptive transmission of video
US10148990B2 (en) Video streaming resource optimization
US10491964B2 (en) Assisted acceleration for video streaming clients
KR100592547B1 (ko) 스트리밍을 위한 패킷 스케줄링 방법
US20180351868A1 (en) Multicast abr flow prioritization using error detection thresholds in the receiver
US10063902B2 (en) ABR network profile selection engine
Lei et al. Adaptive video transcoding and streaming over wireless channels
Wang et al. Error resilient video coding using flexible reference frames
Babich et al. Video quality estimation in wireless IP networks: Algorithms and applications
TWI416962B (zh) 在併合視訊壓縮中用於框架預測以致動暫時可擴充性之方法、裝置、及電腦可讀取媒體
US8862758B1 (en) System and method for controlling one or more media stream characteristics
Prasad et al. Congestion controlling for streaming media through buffer management and jitter control
Heng et al. Multiple-description video coding through adaptive segmentation
Psannis Dynamic Rate Control Algorithm for Streaming Media over Wireless Channel
Jammeh et al. Smoothing transcoded MPEG-1 video for efficient transmission over best-effort IP networks
Hai-Tao et al. Research On Embedded Streaming Media Real-Time Transmission Synchronization Control Strategy

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141027

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151026

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161025

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171024

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181025

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 10