KR100988177B1 - 품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템 - Google Patents

품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100988177B1
KR100988177B1 KR1020087021336A KR20087021336A KR100988177B1 KR 100988177 B1 KR100988177 B1 KR 100988177B1 KR 1020087021336 A KR1020087021336 A KR 1020087021336A KR 20087021336 A KR20087021336 A KR 20087021336A KR 100988177 B1 KR100988177 B1 KR 100988177B1
Authority
KR
South Korea
Prior art keywords
data
segments
quality
segment
rate
Prior art date
Application number
KR1020087021336A
Other languages
English (en)
Other versions
KR20080100224A (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 KR20080100224A publication Critical patent/KR20080100224A/ko
Application granted granted Critical
Publication of KR100988177B1 publication Critical patent/KR100988177B1/ko

Links

Images

Classifications

    • 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/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0044Arrangements for allocating sub-channels of the transmission path allocation of payload
    • H04L5/0046Determination of how many bits are transmitted on different sub-channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • H04L5/006Quality of the received signal, e.g. BER, SNR, water filling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/02Channels characterised by the type of signal
    • H04L5/023Multiplexing of multicarrier modulation signals
    • 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/1066Session management
    • H04L65/1101Session protocols
    • 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/70Media network packetisation
    • 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/765Media network packet handling intermediate
    • 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/80Responding to QoS
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/0001Arrangements for dividing the transmission path
    • H04L5/0003Two-dimensional division
    • H04L5/0005Time-frequency
    • H04L5/0007Time-frequency the frequencies being orthogonal, e.g. OFDM(A), DMT
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

일반적으로, 본 발명은, 복수의 인코더 모듈들과 멀티플렉스 모듈 사이에서 정보를 교환하여, 개선된 전체 품질을 갖는 인코더 모듈들로부터의 데이터의 세그먼트들을 결합하는 기술들을 설명한다. 특히, 인코더 모듈들은 품질 및 레이트 정보와 그들 각각의 데이터의 세그먼트들을 관련시키고, 데이터의 세그먼트들과 관련된 적어도 품질 및 레이트 정보를 멀티플렉스 모듈에 전송한다. 멀티플렉스 모듈은 품질 및 레이트 정보를 분석하여, 인코더 모듈들이 현재의 수퍼프레임에 포함하길 원하는 데이터의 세그먼트들이 송신 채널의 이용가능한 대역폭내에 피팅하는지 여부를 판정한다. 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는다고 멀티플렉스 모듈이 결정하면, 멀티플렉스 모듈은 인코더 모듈들로부터 수신된 품질 및 레이트 정보에 기초하여, 리사이징될 세그먼트들 중 하나 이상의 세그먼트들을 선택한다.
RT 서비스, ORT 서비스, 품질 및 레이트 정보, 멀티미디어 콘텐츠

Description

품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템{METHODS AND SYSTEMS FOR RESIZING MULTIMEDIA CONTENT BASED ON QUALITY AND RATE INFORMATION}
본 특허 출원은, 2006년 1월 31일자로 출원된 미국 가출원 제 60/763,995호 [대리인 참조번호 제 060404P1호], 및 2006년 7월 20일자로 출원된 미국 가출원 제 60/832,353호 [제 060782P1호] 를 우선권 주장하며, 이들 각각의 전체 내용은 여기에 참조로서 포함된다.
기술 분야
본 발명은 멀티미디어 인코딩 및 디코딩에 관한 것으로, 더 상세하게는, 효율적인 통계적 멀티플렉싱을 위한 멀티미디어 리사이징에 관한 것이다.
배경
무선 통신 네트워크와 같은 데이터 네트워크는 단일 단말기에 커스터마이즈된 (customize) 서비스들과 많은 수의 단말기들에 제공되는 서비스들 사이에서 트레이드 오프되어야 한다. 예를 들어, 많은 수의 리소스 제한된 휴대용 디바이스들 (가입자들) 로의 멀티미디어 콘텐츠의 분배는 복잡한 문제이다. 따라서, 네트워크 관리자, 콘텐츠 판매자 (retailer) 및 서비스 제공자들이, 네트워크화된 디바이스상에서의 표현을 위해 신속하고 효율적인 방식으로 콘텐츠 및/또는 다른 네트워크 서비스들을 분배하는 방식을 갖는 것이 매우 중요하다.
콘텐츠 전달/미디어 분배 시스템은, 실시간 서비스 및 비-실시간 서비스를 송신 프레임으로 패킹하고, 네트워크를 통해 디바이스로 그 프레임을 전달할 수도 있다. 예를 들어, 통신 네트워크는 네트워크 서버와 하나 이상의 이동 디바이스들 사이에서 통신을 제공하기 위해 직교 주파수 분할 멀티플렉싱 (OFDM) 을 이용할 수도 있다. 이러한 기술은, 분산 네트워크를 통해 전달 및 송신될 서비스들로 패킹되는 데이터 슬롯들을 갖는 송신 프레임을 제공한다.
요약
일반적으로, 본 발명은, 복수의 인코더 모듈들과 멀티플렉스 모듈 사이에서 정보를 교환하여, 개선된 품질로 그 인코더 모듈들로부터의 데이터의 세그먼트들을 결합시키기 위한 기술들을 설명한다. 특히, 인코더 모듈들은, 품질-레이트 커브들 및/또는 품질-레이트 테이블들과 같은 품질 및 레이트 정보와 그들 각각의 데이터의 세그먼트들을 관련시킨다. 인코더 모듈들은 데이터의 세그먼트들과 관련된 적어도 품질 및 레이트 정보를 멀티플렉스 모듈에 전송한다.
멀티플렉스 모듈은, 인코더 모듈들이 송신하길 원하는 데이터의 세그먼트들이 송신 채널의 이용가능한 대역폭 내에 피팅 (fit) 하는지 여부를 판정하기 위해, 적어도 품질 및 레이트 정보를 분석한다. 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는다고 멀티플렉스 모듈이 판정하면, 멀티플렉스 모듈은, 그 인코더 모듈들로부터 수신된 적어도 품질 및 레이트 정보에 기초하여 세그먼트들 중 리사이징될 하나 이상을 선택한다. 멀티플렉스 모듈은, 데이터의 선택된 세그먼트들과 관련된 인코더 모듈들이 감소된 비트 할당에 따라 데이터의 세그먼트들을 리사이징하도록 요청한다.
일 양태에서, 디지털 멀티미디어 데이터의 흐름들을 결합시키기 위한 방법은, 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 단계, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 단계, 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 복수의 세그먼트들과 관련된 적어도 품질 및 레이트 정보에 기초하여 데이터의 복수의 세그먼트들 중 리사이징될 하나 이상을 선택하는 단계, 및 그 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성하기 위해 데이터의 하나의 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 단계를 포함한다. 그 품질 및 레이트 정보는, 데이터의 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하며, 여기서, 그 품질-레이트 테이블들 각각은 대응하는 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타낸다.
또 다른 양태에서, 디지털 멀티미디어 데이터의 흐름들을 결합하기 위한 장치는, 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 데이터 수집 모듈, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 할당 모듈, 및 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는 경우, 그 데이터의 복수의 세그먼트들과 관련된 적어도 품질 및 레이트 정보에 기초하여 데이터의 복수의 세그먼트들 중 리사이징될 하나 이상을 선택하고, 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성하기 위해 데이터의 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 선택 모듈을 포함한다. 품질 및 레이트 정보는 그 데이터의 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하며, 여기서, 그 품질-레이트 테이블들 각각은, 대응하는 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타낸다.
또 다른 양태에서, 디지털 멀티미디어 데이터의 흐름들을 결합하기 위한 장치는, 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 수단, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 수단, 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 복수의 세그먼트들과 관련된 적어도 품질 및 레이트 정보에 기초하여 데이터의 복수의 세그먼트들 중 리사이징될 하나 이상을 선택하는 수단, 및 그 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성하기 위해 데이터의 하나의 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 수단을 포함한다. 그 품질 및 레이트 정보는, 데이터의 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하며, 여기서, 그 품질-레이트 테이블들 각각은 대응하는 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타낸다.
또 다른 양태에서, 디지털 비디오 데이터를 프로세싱하기 위한 프로세서는, 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하고, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하고, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는 경우, 그 데이터의 복수의 세그먼트들과 관련된 적어도 품질 및 레이트 정보에 기초하여 그 데이터의 복수의 세그먼트들 중 리사이징될 하나 이상을 선택하며, 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성하기 위해 그 데이터의 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하도록 구성된다. 그 품질 및 레이트 정보는, 데이터의 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하며, 여기서, 그 품질-레이트 테이블들 각각은 대응하는 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타낸다.
여기에 설명된 기술들은, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기술들은, 프로세서에 의해 실행될 경우 여기에 설명된 하나 이상의 방법들을 수행하는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 전체로 또는 부분적으로 실현될 수도 있다. 따라서, 디지털 비디오 데이터를 프로세싱하기 위한 컴퓨터-프로그램 제품은 적어도 하나의 컴퓨터로 하여금, 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하고, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하고, 그 데이터의 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하지 않는 경우, 그 데이터의 복수의 세그먼트들과 관련된 적어도 품질 및 레이트 정보에 기초하여 그 데이터의 복수의 세그먼트들 중 리사이징될 하나 이상을 선택하며, 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성하기 위해 그 데이터의 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체를 포함하는 것으로 본 발명은 또한 고려한다. 그 품질 및 레이트 정보는, 데이터의 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하며, 여기서, 그 품질-레이트 테이블들 각각은 대응하는 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타낸다.
또 다른 양태에서, 디지털 멀티미디어 데이터의 흐름을 인코딩하기 위한 방법은, 적어도 품질 및 레이트 정보와 그 흐름의 데이터의 세그먼트를 관련시키는 단계, 및 멀티플렉스 프로세싱을 위하여 그 데이터의 세그먼트와 관련된 적어도 품질 및 레이트 정보를 전송하는 단계를 포함한다. 그 품질 및 레이트 정보는, 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타내는 그 데이터의 세그먼트와 관련된 품질-레이트 테이블을 포함한다.
또 다른 양태에서, 디지털 멀티미디어 데이터의 흐름을 인코딩하기 위한 장치는, 적어도 품질 및 레이트 정보와 그 흐름의 데이터의 세그먼트를 관련시키는 콘텐츠 분류 모듈, 및 멀티플렉스 프로세싱을 위하여 그 데이터의 세그먼트와 관련 된 적어도 품질 및 레이트 정보를 전송하는 인코딩 모듈을 포함한다. 그 품질 및 레이트 정보는, 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타내는 그 데이터의 세그먼트와 관련된 품질-레이트 테이블을 포함한다.
또 다른 양태에서, 디지털 멀티미디어 데이터의 흐름을 인코딩하기 위한 장치는, 적어도 품질 및 레이트 정보와 그 흐름의 데이터의 세그먼트를 관련시키는 수단, 및 멀티플렉스 프로세싱을 위하여 그 데이터의 세그먼트와 관련된 적어도 품질 및 레이트 정보를 전송하는 수단을 포함한다. 그 품질 및 레이트 정보는, 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타내는 그 데이터의 세그먼트와 관련된 품질-레이트 테이블을 포함한다.
또 다른 양태에서, 디지털 비디오 데이터를 프로세싱하기 위한 프로세서는, 적어도 품질 및 레이트 정보와 흐름의 데이터의 세그먼트를 관련시키고, 멀티플렉스 프로세싱을 위해 그 데이터의 세그먼트와 관련된 적어도 품질 및 레이트 정보를 전송하도록 구성된다. 그 품질 및 레이트 정보는, 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타내는 그 데이터의 세그먼트와 관련된 품질-레이트 테이블을 포함한다.
또 다른 양태에서, 디지털 비디오 데이터를 프로세싱하기 위한 컴퓨터-프로그램 제품은, 적어도 하나의 컴퓨터로 하여금, 적어도 품질 및 레이트 정보와 흐름 의 데이터의 세그먼트를 관련시키고, 멀티플렉스 프로세싱을 위해 그 데이터의 세그먼트와 관련된 적어도 품질 및 레이트 정보를 전송하게 하는 명령들을 포함한 컴퓨터 판독가능 매체를 포함한다. 그 품질 및 레이트 정보는, 데이터의 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트의 사이즈들을 나타내는 그 데이터의 세그먼트와 관련된 품질-레이트 테이블을 포함한다.
하나 이상의 양태들의 세부사항들은 첨부한 도면 및 아래의 설명에서 설명된다. 다른 특성들, 목적들, 및 이점들은 설명 및 도면으로부터 및 청구항으로부터 명백할 것이다.
도면의 간단한 설명
도 1은 예시적인 멀티플렉싱 시스템을 포함하는 네트워크를 도시한다.
도 2는 멀티플렉서 시스템에서의 사용을 위한 예시적인 서버를 도시한다.
도 3은 멀티플렉싱 시스템에서의 사용을 위한 MLC의 슬롯 할당을 도시한 예시적인 프레임을 도시한다.
도 4는 멀티플렉싱 시스템에서의 사용을 위한 다양한 MLC 할당 형상들을 포함하는 예시적인 프레임을 도시한다.
도 5는, 선택된 MLC 할당에 대한 최대 슬롯 높이값과 송신 모드 파라미터 사이의 관계를 나타내는 테이블을 도시한다.
도 6은 멀티플렉싱 시스템에서의 사용을 위한 상이한 MLC 슬롯 할당들을 도시한 예시적인 프레임을 도시한다.
도 7은 멀티플렉싱 시스템에서 예시적인 할당 알고리즘 사용을 제공하기 위한 방법을 도시한다.
도 8은 멀티플렉싱 시스템에서의 사용을 위해 제 1 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법을 도시한다.
도 9는 멀티플렉싱 시스템에서의 사용을 위해 제 2 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법을 도시한다.
도 10은 여분의 4개의 블록 서비스들을 할당하기 위한 예시적인 멀티플렉싱 시스템의 동작을 예시하는 프레임을 도시한다.
도 11은 멀티플렉싱 시스템에서의 사용을 위해 제 3 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법을 도시한다.
도 12는 여분의 3개의 블록 서비스들을 할당하기 위한 예시적인 멀티플렉싱 시스템의 동작을 예시하는 프레임을 도시한다.
도 13은 멀티플렉싱 시스템에서의 사용을 위해 제 4 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법을 도시한다.
도 14는 여분의 6개의 블록 서비스들을 할당하기 위한 예시적인 멀티플렉싱 시스템의 동작을 예시하는 프레임을 도시한다.
도 15는, 멀티플렉싱 시스템에서의 사용을 위해 2개의 RT 서비스들을 송신 프레임으로 패킹하기 위한 예시적인 할당 알고리즘의 동작을 예시하는 프레임을 도시한다.
도 16은, 미사용 슬롯들이 2개의 영역들에서 그룹화되는 방식으로 RT 서비스 들을 패킹하기 위한 예시적인 할당 알고리즘의 동작을 예시하는 프레임을 도시한다.
도 17은 멀티플렉싱 시스템에서의 사용을 위해 RT 서비스들 및 ORT 서비스들에 대한 영역들로 분할되는 예시적인 프레임을 도시한다.
도 18은, ORT 서비스 영역이 상이한 높이의 블록들로 분할되는 예시적인 프레임을 도시한다.
도 19는 멀티플렉싱 시스템에서의 사용을 위해 슬롯들을 ORT 서비스에 할당하기 위한 예시적인 방법을 도시한다.
도 20은, 멀티플렉싱 시스템에서의 사용을 위해, 슬롯 할당, 리사이징, 및 혼잡 제어를 제공하기 위한 예시적인 방법을 도시한다.
도 21은 멀티플렉싱 시스템에서의 사용을 위해 실시간 서비스들의 리사이징을 제공하기 위한 예시적인 방법을 도시한다.
도 22는 멀티플렉싱 시스템에서의 사용을 위해 혼잡 제어를 제공하기 위한 예시적인 방법을 도시한다.
도 23은 예시적인 멀티플렉싱 시스템을 도시한다.
도 24는 여기에 설명된 기술들에 따라 멀티미디어 데이터를 인코딩하는 예시적인 멀티미디어 인코딩 디바이스를 도시한 블록도이다.
도 25는 여기에 설명된 기술들에 따라 멀티미디어 데이터를 인코딩하는 예시적인 멀티미디어 인코딩 디바이스를 도시한 블록도이다.
도 26은 본 발명의 기술들에 따라 기능하는 예시적인 인코더 모듈을 도시한 블록도이다.
도 27은 본 발명의 기술들에 따라 비트 할당을 관리하는 예시적인 멀티플렉스 모듈을 도시한 블록도이다.
도 28은 본 발명의 기술들에 따라 멀티미디어 데이터를 인코딩하는 인코더 모듈의 예시적인 동작을 도시한 흐름도이다.
도 29는 본 발명의 기술들에 따라 비트 할당을 관리하는 멀티플렉스 모듈의 예시적인 동작의 흐름도이다.
도 30은 데이터의 세그먼트들과 관련된 품질-레이트 테이블들을 사용하여 데이터의 리사이징될 세그먼트들을 선택하는 멀티플렉스 모듈의 예시적인 동작을 도시한 흐름도이다.
상세한 설명
본 발명의 하나 이상의 양태에서, 데이터 네트워크를 통한 송신을 위해 송신 프레임으로 콘텐츠 흐름들을 멀티플렉싱하도록 동작하는 멀티플렉싱 시스템이 제공된다. 예를 들어, 멀티플렉싱된 콘텐츠 흐름들은, 디바이스로의 송신을 위해 실시간 및/또는 비-실시간 서비스들의 특정 배열, 시퀀스, 믹싱 (mixing), 및/또는 선택을 포함한다. 그 시스템은 특히 무선 네트워크 환경에서의 사용에 매우 적합하지만, 통신 네트워크, 인터넷과 같은 공용 네트워크, 가상 사설 네트워크 (VPN) 와 같은 사설 네트워크, 로컬 영역 네트워크, 와이드 영역 네트워크, 롱 홀 (long haul) 네트워크, 또는 데이터 네트워크의 임의의 다른 타입을 포함하지만 이에 제한되지는 않는 임의의 타입의 네트워크 환경에서 사용될 수도 있다.
이러한 설명을 위해, 네트워크 서버와 하나 이상의 이동 디바이스들 사이에 통신을 제공하도록 직교 주파수 분할 멀티플렉싱 (OFDM) 을 이용하는 통신 네트워크에 관하여, 멀티플렉싱 시스템의 하나 이상의 양태들이 여기에서 설명된다. 예를 들어, OFDM 시스템에서, 시간 분할 멀티플렉스 (TDM) 파일럿 신호들, 주파수 분할 멀티플렉스 (FDM) 파일럿 신호들, 오버헤드 정보 심볼들 (OIS) 및 다른 데이터 심볼들을 포함하는 수퍼프레임이 정의된다. 데이터 슬롯은 하나의 OFDM 심볼 시간에 걸쳐 발생하는 데이터 심볼들의 세트를 포함한다. 일 예로서, 데이터 슬롯은 500개의 데이터 심볼들의 세트를 포함할 수도 있다. 또한, 수퍼프레임에서의 OFDM 심볼 시간은 데이터의 다중 슬롯들, 예를 들어, 7개의 슬롯들을 운송할 수도 있다.
멀티플렉싱 시스템의 하나 이상의 양태들을 설명하기 위해 다음의 정의가 여기에서 사용된다.
흐름 서비스의 엘리먼트, 예를 들어, 서비스는 2개의 흐름들, 즉, 오디오 흐름 및 비디오 흐름을 가질 수도 있다.
서비스 하나 이상의 흐름들을 가질 수 있는 미디어 콘텐츠.
MLC 데이터 또는 제어 정보에 이용되는 미디어 로지컬 채널 ("채널").
리사이즈 서비스들이 송신을 위해 더 낮은 대역폭을 요구하도록 리사이징되는 절차.
오버헤드 정보 심볼 (OIS) 수퍼프레임에서의 다양한 MLC의 위치에 관한 정보를 운송하는 수퍼프레임에서의 심볼들.
슬롯 OFDM 심볼에 걸쳐 MLC에 할당된 대역폭의 최소 유닛.
도 1은 멀티미디어 인코딩 및 디코딩 시스템 (100) 을 도시한다. 시스템 (100) 은, 서버 (104) 와 같은 멀티미디어 인코딩 디바이스, 이동 디바이스 (102) 와 같은 멀티미디어 디코딩 디바이스, 및 데이터 네트워크 (106) 를 포함한다. 이러한 설명을 위해, 데이터 네트워크 (106) 가 OFDM 기술을 사용하여 하나 이상의 휴대용 디바이스들과 통신하도록 동작한다고 가정할 것이지만, 멀티플렉서 시스템은, 이동 통신을 위한 글로벌 시스템 (GSM), CDMA2000, 광대역 CDMA (W-CDMA), CDMA 1xEV-DO, 또는 다양한 IEEE 801.11x 표준들에 의해 정의된 무선 네트워킹을 용이하게 하도록 개발된 광범위한 계열의 표준들과 같은 임의의 다양한 무선 액세스 기술들과 같은 다른 송신 기술들에 의한 사용에 또한 적합하다.
일 양태에서, 서버 (104) 는, 네트워크 (106) 와 통신하여 이동 디바이스 (102) 와 같은 하나 이상의 디바이스들로 서비스들을 제공하도록 동작한다. 예를 들어, 그 디바이스들은 서버 (104) 에 의해 제공된 서비스들에 가입할 수도 있다. 서버 (104) 는 통신 링크 (108) 를 통해 네트워크 (106) 에 커플링된다. 통신 링크 (108) 는, 서버 (104) 가 네트워크 (106) 와 통신하게 하도록 동작하는 유선 및/또는 무선 링크와 같은 임의의 적절한 통신 링크를 포함한다. 네트워크 (106) 는, 서비스들이 네트워크 (106) 와 통신하여 서버 (104) 로부터 디바이스 (102) 와 같은 디바이스들로 전달되게 하는 유선 및/또는 무선 네트워크들의 임의의 조합을 포함한다.
네트워크 (106) 가 본 발명의 범위 내에서 임의의 수 및/또는 타입의 휴대용 디바이스들과 통신할 수도 있음을 유의해야 한다. 간략화를 위해 단일 멀티미디어 디코딩 디바이스 (102) 가 도 1에 도시되어 있다. 예를 들어, 멀티플렉서 시스템에서의 사용에 적합한 다른 디바이스들은, 개인 휴대 정보 단말기 (PDA), 이메일 디바이스, 페이저, 노트북 또는 랩탑 컴퓨터, 데스크탑 컴퓨터, mp3 플레이어와 같고 "iPod" 상표로 판매되는 것과 같은 디지털 음악 및 비디오 디바이스, 셀룰러, 위성 또는 지상-기반 무선 전화기와 같은 무선 전화기를 포함하지만 이에 제한되지는 않는다. 무선 링크 (110) 는 OFDM 기술에 기초한 무선 통신 링크를 포함하지만, 그 무선 링크는 디바이스들이 네트워크 (106) 와 통신하게 하도록 동작하는 임의의 적절한 무선 기술을 포함할 수도 있다.
도 1에 도시된 디바이스 (102) 는 무선 링크 (110) 를 통해 네트워크 (106) 와 통신하는 이동 전화기를 포함한다. 몇몇의 경우, 디바이스 (102) 는, 그 디바이스 (102) 가 네트워크 (106) 를 통해 서비스들을 수신하도록 가입하게 하는 활성화 프로세스에 가입한다. 그 활성화 프로세스는 서버 (104) 로 수행될 수도 있다. 그러나, 그 활성화 프로세서는 또 다른 서버, 서비스 제공자, 콘텐츠 판매자, 또는 다른 네트워크 엔티티로 또한 수행될 수도 있다. 이러한 설명을 위해, 디바이스 (102) 가 서버 (104) 로 활성화 프로세스를 수행하고, 서버 (104) 로부터의 서비스들에 가입 및 그 서비스들을 이제 수신할 준비가 되어 있다고 가정할 것이다. 도 1에 도시된 예가 서비스들에 가입하는 것의 관점으로 설명되지만, 디바이스 (102) 는 가입을 요구하지 않는 서비스들을 네트워크 (106) 를 통해 수신할 수도 있다.
서버 (104) 는, 하나 이상의 실시간 (RT) 서비스들 (112) 포함하는 콘텐츠를 포함하거나 그 콘텐츠에 대한 액세스를 갖는 실시간 미디어 서버 (RTMS; 126) 와 통신한다. 또한, 서버 (104) 는, 하나 이상의 ORT (other than real time) 또는 비 실시간 (NRT) 서비스들 (120) 을 포함하거나 그 서비스들에 대한 액세스를 갖는 비 실시간 미디어 서버 (NRTMS) 와 통신할 수도 있다. 예를 들어, 서비스들 (112, 120) 은, 뉴스, 스포츠, 날씨, 경제 정보, 영화를 포함하는 멀티미디어 콘텐츠, 및/또는 애플리케이션, 프로그램, 스크립트, 또는 임의의 다른 타입의 적절한 콘텐츠 또는 서비스를 포함한다. 따라서, 서비스들 (112, 120) 은, 임의의 적절한 포맷으로 포맷팅된 비디오, 오디오 또는 다른 정보를 포함할 수도 있다. 서버 (104) 가 RT 서비스 및/또는 ORT 서비스를 포함하거나 그 서비스들에 대한 액세스를 갖는 하나 이상의 다른 미디어 서버들과 또한 통신할 수도 있음을 유의해야 한다. 서비스들 (112, 120) 은, 대역폭, 품질 및 레이트 정보, 우선순위, 레이턴시 (latency), 서비스 타입, 및/또는 임의의 다른 타입의 전달 요건을 포함할 수도 있지만 이에 제한되지는 않는 관련 전달 요건들을 갖는다.
또한, 서버 (104) 는, 전달 요건들에 기초하여, 송신 프레임으로 서비스들 (112, 120) 중 하나 이상을 효율적으로 멀티플렉싱하도록 동작하는 멀티플렉서 (MUX; 114) 를 포함한다. 경로 (118) 에 의해 나타낸 바와 같이, 서버 (104) 는 네트워크 (106) 를 통해 송신 프레임을 디바이스 (102) 로 송신한다. MUX (114) 의 더 상세한 설명은 본 명세서의 또 다른 섹션에서 제공된다. MUX (114) 의 동작 결과로서, 서비스들 (112, 120) 은 송신 프레임 (122) 에 최적으로 패킹되어, 그 서비스들 (112, 120) 의 전달 요건들 (대역폭, 우선순위, 레이턴시, 서비스 타입 등) 이 충족되고 송신 프레임 (122) 의 송신 대역폭이 효율적으로 이용되며, 수신 디바이스 (102) 에서의 전력이 보존된다. 예를 들어, 이용가능한 대역폭을 효율적으로 이용함으로써, 이동 디바이스는 송신된 서비스들을 짧은 시간 간격에 걸쳐 수신할 수 있으며, 그에 의해 배터리 전력을 보존한다.
MUX (114) 는, RT 서비스들 (112) 및/또는 ORT 서비스들 (120) 이 리사이징되는 방법을 제어하도록 동작하는 리사이즈 제어기 (116) 를 포함할 수도 있다. 예를 들어, 송신 프레임 (122) 으로 멀티플렉싱될 선택된 RT 서비스들 (112) 이 송신 프레임 (122) 의 이용가능한 대역폭으로 피팅하지 않으면, 리사이즈 제어기 (116) 는, 그러한 서비스들이 그들의 대역폭 요건들을 감소시키도록 리사이징 (또는 리-인코딩 (re-encode)) 되는 방법을 제어하도록 동작한다. 여기에 상세히 설명될 바와 같이, 리사이즈 제어기 (116) 는, 어느 RT 서비스들을 리사이징할지를 결정하기 위해 RT 서비스들과 관련된 품질 및 레이트 정보를 분석할 수도 있고, 선택된 RT 서비스들의 선택된 리사이징을 요청하기 위해 RTMS (126) 와 통신할 수도 있다. 또한, 리사이즈 제어기 (116) 는, 선택된 ORT 서비스들 (120) 이 리사이징되는 방법을 제어하기 위해 NRTMS (128) 와 통신하도록 유사한 방식으로 동작한다. 리사이즈 제어기 (116) 의 동작 결과로서, 리사이징된 RT 및 ORT 서비스들은 송신 프레임 (122) 의 이용가능한 대역폭내에 피팅할 것이다. 리사이즈 제어기 (116) 의 더 상세한 설명이 본 명세서의 또 다른 섹션에서 제공된다.
디바이스 (102) 는, 송신된 서비스들 (112, 120) 을 획득하기 위해 송신 프 레임 (122) 을 디-멀티플렉싱하도록 동작하는 디-멀티플렉서 (DE-MUX) 로직 (124) 을 포함할 수도 있다. 그 서비스들이 송신 프레임 (122) 에 효율적으로 멀티플렉싱되기 때문에, 네트워크 대역폭이 보존되고 디바이스 (102) 는 송신된 서비스들을 수신하기 위해 더 낮은 전력을 이용한다.
따라서, 멀티플렉싱 시스템은, 송신 프레임으로의 RT 및 ORT 서비스들의 효율적인 멀티플렉싱을 제공하기 위해 다음의 기능들 중 하나 이상을 수행하도록 동작한다.
1. 네트워크를 통한 송신을 위해 하나 이상의 RT 및/또는 ORT 서비스들을 수신하거나 그 서비스들에 대한 액세스를 획득함.
2. RT 및/또는 ORT 서비스들이 송신 프레임의 이용가능한 대역폭으로 피팅할 것인지 여부를 판정함.
3. RT 및/또는 ORT 서비스들이 송신 프레임으로 피팅하지 않으면, 하나 이상의 선택된 RT 및/또는 ORT 서비스들을 리사이징하여 그들의 대역폭 요건들을 감소시킴.
4. 원래의 및/또는 리사이징된 RT 서비스들, 및 원래의 및/또는 리사이징된 ORT 서비스들로 송신 프레임을 어셈블리하여 그 프레임이 효율적으로 패킹되도록 할당 알고리즘을 이용함.
5. 네트워크를 통해 그 송신 프레임을 하나 이상의 수신 디바이스들로 송신함.
따라서, 멀티플렉싱 시스템은 하나 이상의 RT 및/또는 ORT 서비스들을 효율 적으로 멀티플렉싱하고 데이터 네트워크를 통해 디바이스들로 송신하도록 동작한다. 멀티플렉싱 시스템이 도 1을 참조하여 설명된 구현에 제한되지 않고 다른 구현들이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 2는 멀티플렉싱 시스템에서의 사용을 위한 예시적인 서버 (200) 를 도시한다. 예를 들어, 서버 (200) 는 도 1의 서버 (104) 로서 사용될 수도 있다. 서버 (200) 는, 프로세싱 로직 (202), 메모리 (204), 및 트랜시버 로직 (206) 을 포함하며, 이들 모두는 데이터 버스 (208) 에 커플링된다. 또한, 서버 (200) 는 멀티플렉서 (MUX) 로직 (210) 및 리사이즈 제어기 (212) 를 포함하며, 이들 또한 데이터 버스 (208) 에 커플링된다. 서버 (200) 가 단지 하나의 구현을 나타낼 뿐이고 다른 구현들이 본 발명의 범위내에서 가능함을 유의해야 한다.
프로세싱 로직 (202) 은, CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트, 가상 머신, 소프트웨어, 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함할 수도 있다. 따라서, 일반적으로, 프로세싱 로직 (202) 은, 머신-판독가능 명령들을 실행하고, 데이터 버스 (208) 를 통해 서버 (200) 의 하나 이상의 다른 기능 엘리먼트들을 제어하기 위한 로직을 포함한다.
트랜시버 로직 (206) 은, 서버 (200) 가 원격 디바이스들 또는 시스템들에 대한 데이터 및/또는 다른 정보를 통신 채널 (214) 을 통해 송신 및 수신하게 하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 통신 채널 (214) 은, 서버 (200) 가 다른 서버들과 직접 통신하거나 하나 이상의 데이터 네트워크들 및/또는 그러한 데이터 네트워크들에 커플링된 디바이스들과 통신하게 하는 임의의 적절한 타입의 무선 또는 유선 통신 링크 또는 이들의 조합을 포함할 수도 있다.
메모리 (204) 는, 서버 (200) 가 정보 파라미터들을 저장하게 하는 임의의 적절한 타입의 저장 디바이스 또는 엘리먼트를 포함한다. 예를 들어, 메모리 (204) 는, 임의의 타입의 랜덤 액세스 메모리 (RAM), 플래시 메모리, 하드 디스크, 또는 임의의 다른 타입의 저장 디바이스를 포함할 수도 있다.
프로세싱 로직 (202) 은 트랜시버 로직 (206) 및 채널 (214) 을 통해 하나 이상의 콘텐츠 제공자들과 통신하도록 동작할 수도 있다. 프로세싱 로직 (202) 은, RT 서비스들 (216) 을 수신하기 위해 RTMS와 통신하고, ORT 서비스들 (218) 을 수신하기 위해 NRTMS와 통신한다. 예를 들어, RT 서비스들 (216) 및 ORT 서비스들 (218) 은, 네트워크를 통해 디바이스들로 전달될 하나 이상의 콘텐츠 흐름들을 포함한다. 또한, RT 서비스들 (216) 및 ORT 서비스들 (218) 은, 품질 및 레이트 정보, 대역폭, 우선순위, 레이턴시, 서비스 타입, 및/또는 임의의 다른 타입의 전달 요건을 포함하지만 이에 제한되지는 않는 관련 전달 요건들을 갖는다. 본 발명의 일 양태에서, 프로세싱 로직 (202) 은, RT 서비스들 (216) 과 관련된 적어도 품질 및 레이트 정보를 수신하여, 송신 프레임 (122) 내에 포함된 RT 서비스들 (216) 의 사이즈를 모니터링하는 것을 돕고, RT 서비스들 (216) 중 리사이징될 하나 이상을 선택하는 것을 돕는다. 또한, 프로세싱 로직 (202) 이 송신 프레임내에 ORT 서비스들 (218) 을 포함하고 있다면, 프로세싱 로직 (202) 은 ORT 서비스들 (218) 과 관련된 전달 요건들, 예를 들어, 우선순위 및 레이턴시 정보를 수신 하여, 송신 프레임 (122) 내에 포함된 ORT 서비스들의 사이즈를 모니터링할 수도 있다.
MUX 로직 (210) 은, CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트, 가상 머신, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어, 및 펌웨어의 임의의 조합을 포함할 수도 있다. MUX 로직 (210) 은, 트랜시버 로직 (206) 및 채널 (214) 을 사용하여 디바이스들로의 송신을 위해, 전달 요건들에 기초하여 RT 서비스들 (216) 및/또는 ORT 서비스들 (218) 중 하나 이상을 송신 프레임으로 멀티플렉싱하도록 동작한다. 예를 들어, MUX 로직 (210) 은, 선택된 ORT 서비스들 (218), RT 서비스들 (216), 및 베스트 에포트 (Best Effort) 서비스들 (미도시) 이 (그들의 전달 요건들에 관하여) 송신 프레임의 이용가능한 대역폭 내에 피팅하는지 여부를 판정하도록 동작한다. 일 양태에서, MUX 로직 (210) 은 RT 서비스들 (216), ORT 서비스들 (218) 및 베스트 에포트 서비스들 (미도시) 과 관련된 전달 요건들을 분석하여, 서비스들 (216, 218) 이 송신 프레임의 이용가능한 대역폭내에 피팅하는지 여부를 판정한다. RT 서비스들 (216) 에 관하여, 예를 들어, MUX 로직 (210) 은 RT 서비스들 (216) 각각과 관련된 적어도 품질 및 레이트 정보를 분석하여, RT 서비스들 (216) 이 송신 프레임 또는 RT 서비스들 (216) 을 송신하기 위한 송신 프레임의 적어도 일부의 이용가능한 대역폭내에 피팅하는지 여부를 판정할 수도 있다. 유사하게, ORT 서비스들 (218) 에 관하여, MUX 로직 (210) 은 우선순위 및 레이턴시 요건들과 같은 다른 전달 요건들을 분석하여, ORT 서비스들 (218) 이 송신 프레임의 이용가능한 대역폭내에 피팅하는지 여부를 판정할 수도 있다. 예를 들어, 베스트 에포트 서비스들은, 송신될 필요가 있는 임의의 타입의 데이터 또는 정보를 포함한다. 상기 흐름들이 이용가능한 대역폭내에 피팅하면, MUX 로직 (210) 은 여기에 설명된 하나 이상의 할당 알고리즘에 따라 그 서비스들을 송신 프레임으로 패킹하도록 동작한다.
선택된 RT 서비스들 (216) 및/또는 ORT 서비스들 (218) 이 송신 프레임에 피팅하지 않으면, MUX 로직 (210) 은 리사이즈 제어기 (212) 를 시그널링한다. 리사이즈 제어기 (212) 는, 이러한 서비스들이 송신 프레임의 이용가능한 대역폭에 피팅하도록 리사이징되는 방법을 제어하도록 동작한다. 본 발명의 일 양태에서, 리사이즈 제어기 (212) 는, 서비스들 (216, 218) 중 리사이징될 하나 이상을 선택하기 위해 그 서비스들과 관련된 전달 요건들을 분석한다. 예를 들어, 리사이즈 제어기 (212) 는 RT 서비스들 (216) 과 관련된 적어도 품질 및 레이트 정보, 및 ORT 서비스들 (218) 과 관련된 우선순위 및 레이턴시 요건들을 분석하여, 리사이징될 서비스들을 선택할 수도 있다. 이러한 방식으로, 리사이즈 제어기 (212) 는, 얼마나 많은 "리사이징한" 특정 서비스가 그의 송신 대역폭 요건들을 감소시키는데 필요한지를 결정하도록 동작한다. 그 후, 리사이즈 제어기 (212) 는 그 서비스와 관련된 미디어 서버로 송신되는 리사이즈 요청을 어셈블리한다. 예를 들어, 리사이즈 요청은 통신 링크 (214) 를 사용하여 트랜시버 로직 (206) 에 의해 송신된다. 그 후, 미디어 서버는, 여기에 설명된 기술들에 따라 요청된 바와 같이 서비스를 리사이징하도록 동작한다. 서비스들이 그들의 대역폭 요건들을 감소시키도록 리사이징된 이후, MUX 로직 (210) 은 송신 프레임으로 원래 의 서비스들 및 임의의 리사이징된 서비스들을 효율적으로 패킹할 수 있다. MUX 로직 (210) 에 의해 제공된 할당 알고리즘들의 더 상세한 설명은 본 명세서의 또 다른 섹션에서 제공된다.
리사이즈 제어기 (212) 는, CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트, 가상 머신, 소프트웨어, 및/또는 하드웨어 및 소프트웨어의 임의의 조합을 포함할 수도 있다. 리사이즈 제어기 (212) 는, RT 서비스 (216) 및 ORT 서비스들 (218) 의 흐름들 중 하나 이상이 그 서비스들과 관련된 전달 요건들에 기초하여 리사이징되어 그 흐름들이 송신 프레임의 이용가능한 대역폭에 피팅하는 방법을 제어하도록 동작한다. 따라서, 리사이즈 제어기 (212) 는, 하나 이상의 서비스들을 리사이징하여 그것의 관련 전달 요건들을 조정하도록 동작한다. 예를 들어, 서비스는, 그 서비스를 송신하는데 충분한 대역폭이 존재하지 않는 경우 그 서비스의 대역폭 요건들이 감소되도록 다운사이징될 수도 있거나, 여분의 이용가능한 대역폭이 존재하는 경우 그 서비스의 대역폭 요건들이 증가되도록 업사이징될 수도 있다. 리사이즈 제어기 (212) 는 MUX 로직 (210) 의 일부일 수도 있다. 리사이즈 제어기 (212) 의 더 상세한 설명은 본 명세서의 또 다른 섹션에서 제공된다.
멀티플렉싱 시스템은, 적어도 하나의 프로세서, 예를 들어, 프로세싱 로직 (202) 에 의해 실행될 때 여기에 설명된 멀티플렉싱 시스템의 기능들을 제공하는, 컴퓨터-판독가능 매체에 저장된 하나 이상의 프로그램 명령들 ("명령들") 을 갖는 컴퓨터 프로그램을 포함할 수도 있다. 예를 들어, 플로피 디스크, CDROM, 메모 리 카드, 플래시 메모리 디바이스, RAM, ROM, 또는 임의의 다른 타입의 메모리 디바이스 또는 서버 (200) 에 인터페이스하는 컴퓨터-판독가능 매체와 같은 컴퓨터-판독가능 매체로부터 서버 (200) 로 명령들이 로딩될 수도 있다. 다른 방법으로, 트랜시버 로직 (206) 를 통해 서버 (200) 로 인터페이스하는 네트워크 리소스 또는 외부 디바이스로부터 서버 (200) 로 명령들이 다운로딩될 수도 있다. 프로세싱 로직 (202) 에 의해 실행될 때, 그 명령들은 여기에 설명된 바와 같은 멀티플렉싱 시스템의 하나 이상의 양태들을 제공한다.
따라서, 서버 (200) 는, 네트워크를 통한 디바이스들로의 송신을 위해 RT 서비스들 (216) 및 ORT 서비스들 (218) 과 관련된 흐름들을 송신 프레임으로 효율적으로 멀티플렉싱하기 위한 멀티플렉싱 시스템을 제공하도록 동작한다.
송신 프레임 슬롯 할당 알고리즘
다음의 설명은 멀티플렉싱 시스템에서의 사용을 위한 슬롯 할당 알고리즘을 설명한다. 그 슬롯 할당 알고리즘은, 이용가능한 RT 및 ORT 서비스들과 관련된 콘텐츠 흐름들에 송신 프레임에서의 슬롯들을 할당하도록 동작할 수도 있다. 할당 알고리즘은 효율적인 대역폭 이용을 달성하도록 동작하여, 그에 의해 수신 디바이스가 전력을 보존하게 한다. 할당 알고리즘은, MUX 로직 (210) 의 제어에 의해 및/또는 그 제어 하에서 수행될 수도 있다.
이러한 설명을 위해, 송신 프레임은 수퍼프레임으로서 이하 지칭될 것이다. 수퍼프레임이 단지 하나의 구현일 뿐이고 멀티플렉싱 시스템이 다른 타입의 송신 프레임 구현에 적합하다는 것을 유의해야 한다.
예를 들어, 수퍼프레임은, 대역폭 할당에 이용되는 데이터 심볼 부분을 포함할 수도 있다. 수퍼프레임의 데이터 심볼 부분은, 이하 "프레임들" 로 지칭되는 4개의 동등한 부분으로 분할될 수도 있다. 일 양태에서 리드 솔로몬 (Reed Solomon; RS) 블록들에 존재하는, 송신될 서비스들로부터의 데이터는 4개의 프레임들에 걸쳐 동등하게 분배된다. 따라서, 수퍼프레임 상에서의 슬롯 할당 알고리즘의 동작은 프레임 상에서의 슬롯 할당 알고리즘의 동작의 반복이다. 따라서, 다음의 설명은 프레임 상에서의 슬롯 할당을 설명하지만, 전체 수퍼프레임에 동등하게 적용가능하다. 또한, 설명된 슬롯 할당 알고리즘은, 실시간 서비스들, 비 실시간 서비스들, 및 IP 데이터 캐스트를 포함하지만 이에 제한되지 않는 모든 타입의 서비스들에 대해 슬롯들을 할당하기 위해 사용될 수도 있다.
채널 할당
하나 이상의 양태에서, 미디어 로지컬 채널 (MLC) 은 동일한 서비스의 하나 이상의 흐름들을 운송한다. 따라서, 모든 서비스는, 하나 이상의 MLC들을 가질 수 있으며, 그 MLC들은 OIS에서 설명된 프레임에 위치된다. 특정한 MLC를 수신하길 원하는 디바이스는 OIS로부터 그 MLC의 위치를 획득한다. 프레임에서의 MLC의 위치는 다음을 사용하여 OIS에서 설명된다.
- 시작 심볼
- 시작 슬롯
- 최저의 슬롯
- 최고의 슬롯
- 총 슬롯
도 3은 멀티플렉싱 시스템에서의 사용을 위한 MLC의 슬롯 할당을 도시한 프레임 (300) 의 일 예를 도시한다. 프레임 (300) 은 7개의 슬롯들 각각에 대해 "N" 개의 OFDM 심볼들을 포함한다. MLC의 슬롯 할당은 도면부호 (302) 에 일반적으로 나타낸 음영 영역이다. 슬롯 할당을 설명하기 위해 2개의 변수들, 즉, 길이 및 높이가 사용된다. 그 길이는 OFDM 심볼 단위이고, 그 높이는 슬롯 단위이다.
할당 형상들
도 4는 멀티플렉싱 시스템에서의 사용을 위한 다양한 MLC 할당 형상들을 포함하는 프레임 (400) 의 일 예를 도시한다. 예를 들어, MLC 할당은 도면부호 (402, 404, 406, 및 408) 에 일반적으로 나타낸 음영 영역들이다. 일 예에서, 고정되어 있는 제한된 수의 데이터 필드들을 사용하여 할당 형상들이 프레임 (400) 의 OIS에서 설명될 수도 있도록, 그 할당 형상들이 선택된다.
할당의 높이
도 5는, 선택된 MLC 할당에 대한 최대 슬롯 높이값과 송신 모드 파라미터 사이의 관계를 예시하는 테이블 (500) 을 도시한다. 수신 디바이스에서의 터보 디코더의 피크 출력 레이트는, 단일 OFDM 심볼에서 디코딩될 수 있는 터보 패킷들의 수를 제한한다. 그 결과, MLC 할당의 높이가 제한될 수도 있다. 최대 슬롯 높이 ("maxSlotHeight") 로서 지칭된 변수는 소정의 송신 모드에 대한 MLC 할당의 최대 슬롯 높이를 나타내기 위해 사용된다. 예를 들어, 테이블 (500) 로 부터, 4의 송신 모드가 3의 maxSlotHeight 를 갖는 MLC 할당을 지원하고, 1의 송신 모드가 7의 maxSlotHeight 를 갖는 MLC 할당을 지원한다.
할당 알고리즘
일 양태에서, 선택된 서비스의 모든 MLC들은 함께 그룹화되어, 그들의 할당이 프레임에서 시간적으로 근접한다. 이것은, 수신 디바이스가 서비스의 상이한 MLC들을 수신하기 위해 "웨이크-업" 할 필요가 있는 횟수를 감소시킨다. 따라서, 수신 디바이스의 전력 소비는 감소되거나 보존된다.
수신 디바이스의 전력 소비에 관하여, MLC 할당의 높이가 그의 maxSlotHeight 인 것이 바람직하다. 이것은, 그 디바이스가 MLC를 수신하는 가능한 "온-타임 (on time)" 을 최소화한다. 그러나, 패킹의 용이함을 위해, 서비스의 모든 그룹화된 MLC는 동일한 높이로 할당된다. 따라서, "서비스의 maxSlotHeight" 의 개념은, 그 서비스에 대해 그룹화된 모든 MLC들의 maxSlotHeight 파라미터들의 최소 또는 가장 작은 것으로서 정의된다. 본 발명의 나머지에 있어서, 서비스의 높이는 그 서비스의 모든 MLC 할당의 공통 높이를 의미할 것이다.
도 6은 멀티플렉싱 시스템에서의 사용을 위한 상이한 MLC 슬롯 할당들을 예시하는 프레임 (600) 의 일 예를 도시한다. 프레임 (600) 은 상이한 높이의 블록을 갖는 MLC 할당으로 분할된다. 일 예에서, 블록 높이는 서비스가 취할 수 있는 가능한 maxSlotHeight 에 대응한다. 도 5에 도시된 테이블 (500) 로부터, 4개의 가능한 maxSlotHeight (즉, 3, 4, 6 또는 7) 이 존재한다고 결정될 수 있다. 일 예에서, 슬롯 할당 알고리즘은, maxSlotHeight 파라미터에 기초하여 상이한 블록 할당으로 서비스들을 패킹하도록 동작한다. 예를 들어, 가능한 maxSlotHeight (즉, 3, 4, 6 또는 7) 에 기초한 할당들은, 각각, 도면부호 (602, 604, 606, 및 607) 에 도시되어 있다.
할당 알고리즘 동작
다음은 멀티플렉싱 시스템에서의 사용을 위한 예시적인 할당 알고리즘의 설명이다. MUX 로직 (210) 은 후술될 기능들을 수행하기 위해 할당 알고리즘을 구현하도록 동작할 수도 있다.
할당 알고리즘에 대한 입력은 다음과 같다.
1. 서비스의 각각의 채널이 프레임에 대해 갖는 데이터의 슬롯들의 수.
2. 서비스의 각각의 채널의 송신 모드에 의해 결정된 그 채널의 maxSlotHeight.
알고리즘의 출력은 다음과 같다.
1. 패킹이 가능한지의 여부를 나타내는 판정. 패킹이 가능하면, 알고리즘은 MLC 할당의 위치를 제공한다.
2. 패킹이 가능하지 않으면, 슬롯 할당 알고리즘은 리사이즈 제어기 (212) 로부터 서비스들의 리사이징을 요청한다. 일 양태에서, 리사이즈 제어기 (212) 는 어느 서비스들이 리사이징되는지 및 얼마의 레이트로 리사이징되는지를 결정한다. 리사이즈 제어기 (212) 의 동작의 설명은 본 명세서의 또 다른 섹션에서 제공된다.
도 7은 멀티플렉싱 시스템에서의 사용을 위한 할당 알고리즘을 제공하는 예시적인 방법 (700) 을 도시한다. 예를 들어, 방법 (700) 은 하나 이상의 RT 서비스들에 슬롯들을 할당하도록 동작한다. 일 양태에서, MUX 로직 (210) 은 후술된 바와 같은 방법 (700) 의 기능들을 제공하도록 동작한다.
블록 702에서, 프레임에서 멀티플렉싱될 모든 RT 서비스들에 의해 요구되는 슬롯들의 총 수가 이용가능한 슬롯들의 수보다 더 큰지의 여부를 판정하기 위한 테스트가 수행된다. 예를 들어, MUX 로직 (210) 이 이러한 판정을 행한다. 일 양태에서, 이용가능한 슬롯들의 수는 "프레임 당 심볼들의 수" (numOfdmSymbolsPerFrm) 의 7배의 값을 갖는다. 슬롯들의 요구된 수가 이용가능한 슬롯들보다 크면, 방법은 블록 718으로 진행한다. 슬롯들의 요구된 수가 이용가능한 슬롯들의 수 이하이면, 방법은 블록 704로 진행한다.
블록 718에서, 패킹 실패가 결정된다. 예를 들어, 일 양태에서, MUX 로직 (210) 은 서비스들을 패킹하는데 불충분한 이용가능한 슬롯들이 존재한다고 결정하며, 그 후, 방법은 블록 716에서 종료한다.
블록 704에서, 각각의 RT 서비스에 대한 maxSlotHeight 파라미터가 계산된다. 예를 들어, 일 양태에서, MUX 로직 (210) 이 이러한 계산을 수행하도록 동작한다. maxSlotHeight 는 각각의 RT 서비스에 허용가능한 심볼 당 슬롯들의 최대 수를 나타낸다.
블록 706에서, 멀티플렉싱될 RT 서비스들은, 그들의 maxSlotHeight 파라미터들에 기초하여, "3개의 블록 서비스들" (threeBlkSrves), "4개의 블록 서비스들" (fourBlkSrves), "6개의 블록 서비스들" (sixBlkSrves), 및 "7개의 블록 서비스들" (sevenBlkSrves) 로 그룹화된다. 일 양태에서, MUX 로직 (210) 은 서비스들의 슬롯 요건들에 의해 그 서비스들을 그룹화하도록 동작한다.
블록 708에서, 각각의 그룹에서의 RT 서비스들은 데이터 슬롯들의 감소하는 수에 의해 분류된다. 예를 들어, RT 서비스들은 요구된 데이터 슬롯들에 관해 가장 큰 것으로부터 가장 작은 것으로 분류된다.
블록 710에서, 길이 변수들 L7, L6, L4 및 L3 가 계산된다. 예를 들어, sevenBlkSrves 의 길이는 "L7" 이고, sixBlkSrves 의 길이는 "L6" 이고, fourBlkSrves 의 길이는 "L4" 이며, threeBlkSrves 의 길이는 "L3" 이다. 예를 들어, 모든 sevenBlkSrves 의 길이는,
L7=ceil(모든 sevenBlkSrvc 의 총 데이터 슬롯들/7)
로서 정의되며, 여기서, ceil(x) 는 x보다 큰 최소의 정수이다. 일 양태에서, MUX 로직 (210) 은 길이 파라미터들 (L7, L6, L4 및 L3) 을 계산하도록 동작한다.
블록 712에서, 하나 이상의 부등식 체크들이 수행된다. 예를 들어, 각각이 참 또는 거짓인지의 여부를 판정하기 위해 다음의 부등식들이 체크된다.
L7+L3+L6<=numOfdmSymbolsPerFrm
L7+L4+L6<=numOfdmSymbolsPerFrm
상기 부등식들의 결과로서, 4개의 부등식 조건들이 결정된다. 제 1 부등식 (1) 은, 이하 (1T, 1F) 로 지칭되는 참 및 거짓 결과들을 갖는다. 제 2 부등식 (2) 은, 이하 (2T, 2F) 로 지칭되는 참 및 거짓 결과들을 갖는다. 상기 2개의 부등식들은, 멀티플렉싱 시스템의 하나 이상의 양태들에 따라 슬롯들을 할당하는데 사용되는 4개의 부등식 조건들 (즉, 1T2T, 1T2F, 1F2T, 1F2F) 을 제공한다.
블록 714에서, 4개의 부등식 조건들 중 하나에 기초하여 슬롯들이 RT 서비스들에 할당된다. 예를 들어, 블록 712에서 수행된 부등식 체크들의 결과들은 슬롯들을 RT 서비스들에 할당하기 위해 사용된다. 4개의 조건들 각각은, 본 명세서의 다음의 섹션에서 설명되는 할당 방법에서 설명된 바와 같은 할당을 결정한다.
방법 (700) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (700) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 8은 멀티플렉싱 시스템에서의 사용을 위해 제 1 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법 (800) 을 도시한다. 예를 들어, 방법 (800) 은 (1T2T) 에 의해 설명된 제 1 부등식 조건과 관련된 슬롯 할당을 제공한다. 일 양태에서, MUX 로직 (210) 은, 후술된 바와 같은 방법 (800) 의 기능들을 제공하도록 동작한다.
블록 802에서, 제 1 부등식의 상태가 참 (즉, 1T) 인지의 여부를 판정하기 위해 테스트가 수행된다. 제 1 부등식 (1) 의 상태가 1T가 아니라면, 방법은 블록 804로 진행한다. 제 1 부등식 (1) 의 상태가 1T라면, 방법은 블록 806으로 진행한다.
블록 804에서, 방법은 제 2 부등식 조건을 테스트하도록 진행한다. 예를 들어, 제 1 부등식 (1) 의 상태가 1T가 아니기 때문에, 방법은 방법 (900) 으로 진행하여 제 2 부등식 조건 (1T2F) 을 테스트한다.
블록 806에서, 제 2 부등식 (2) 의 상태가 참 (즉, 2T) 인지의 여부를 판정하기 위해 테스트가 수행된다. 제 2 부등식 (2) 의 상태가 2T가 아니라면, 방법은 블록 804로 진행한다. 제 2 부등식 (2) 의 상태가 2T라면, 방법은 블록 808으로 진행한다.
블록 808에서, 방법은 최종 동작으로 진행한다. 양자의 상태들 (1T2T) 이 존재하기 때문에, 방법은 최종 동작 (후술됨) 으로 진행하여 슬롯 할당을 완료한다.
방법 (800) 이 단지 하나의 구현일 뿐이고, 방법 (800) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 9는 멀티플렉싱 시스템에서의 사용을 위해 제 2 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법 (900) 을 도시한다. 예를 들어, 방법 (900) 은 (1T2F) 에 의해 설명된 제 2 부등식 조건과 관련된 슬롯 할당을 제공한다. 일 양태에서, MUX 로직 (210) 은 후술된 바와 같은 방법 (900) 의 기능들을 제공하도록 동작한다.
블록 902에서, 제 1 부등식 (1) 의 상태가 참 (즉, 1T) 인지 여부를 판정하기 위해 테스트가 수행된다. 제 1 부등식 (1) 의 상태가 1T가 아니라면, 방법은 블록 904로 진행한다. 제 1 부등식 (1) 의 상태가 1T라면, 방법은 블록 906으로 진행한다.
블록 904에서, 방법은 제 3 부등식 조건을 테스트하도록 진행한다. 예를 들어, 제 1 부등식 (1) 의 상태가 1T가 아니기 때문에, 방법은 방법 (1100) 으로 진행하여 제 3 부등식 조건 (1F2T) 을 테스트한다.
블록 906에서, 제 2 부등식 (2) 의 상태가 거짓 (즉, 2F) 인지의 여부를 판정하기 위해 테스트가 수행된다. 제 2 부등식 (2) 의 상태가 2F가 아니라면, 방법은 블록 904로 진행한다. 제 2 부등식 (2) 의 상태가 2F라면, 방법은 블록 908로 진행하여, 4개의 블록 서비스들을 프로세싱한다.
도 10은 여분의 4개의 블록 서비스들을 할당하기 위한 멀티플렉싱 시스템의 일 양태의 동작을 예시한 프레임 (1000) 을 도시한다. 예를 들어, 할당 블록은, threeBlk (1002), fourBlk (1004), sixBlk (1006), 및 sevenBlk (1008) 을 포함한다. 또한, 할당 블록들은 reg2Blk (1010) 을 포함한다. 프레임 (1000) 은, fourblk (1004), threeblk (1002) 및 reg2blk (1010) 할당 블록들에 여분의 4개의 블록 서비스들 (fourBlkSrve; 1012) 을 할당하기 위해 방법 (900) 이 어떻게 동작하는지를 나타낸다. 일 양태에서, 방법 (900) 은 도 10에 도시된 프레임 (1000) 에 RT 서비스들을 할당하도록 동작한다.
도 9를 다시 참조하면, 블록 908에서, 4개의 블록 서비스들이 프로세싱된다. 예를 들어, 일 양태에서, MUX 로직 (210) 은, 도 10에 도시된 프레임 (1000) 을 참조하여 아래에 설명된 바와 같이 4개의 블록 서비스들을 프로세싱하도록 동작한다.
a. 상기 방법 (800) 을 참조하여 설명된 제 1 부등식 조건을 만족하도록 fourBlk (1004) 가 보유할 수 있는 fourBlkSrvc 를 찾는다. 그 후, 여분의 fourBlkSrvc 없이 fourBlk (1004) 를 업데이트한다.
b. 여분의 fourBlkSrvc 를 threeBlk (1002) 및 reg2Blk (1010) 으로 이동시킨다. Reg2Blk (1010) 은 도 10에 도시된 바와 같이 높이 1의 블록이다.
c. 여분의 fourBlkSrvc 를 이동시키는 동안, 또한, 연속하는 서비스들이 fourBlk (1004) 자체에 피팅할 수 있는지 여부를 체크한다.
d. 다음의 조건 부등식들이 참인 경우에만 이동을 완료한다.
((L7+L3+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm)
블록 910에서, 여분의 4개의 블록 서비스들이 상술된 바와 같이 이동될 수 있는지 여부를 판정하기 위해 테스트가 수행된다. 여분의 fourBlkSrvc 가 블록 908에서의 조건 부등식들을 만족시키기 위해 threeBlk (1002) 또는 reg2Blk (1010) 중 어느 하나로 이동될 수 없다면, 방법은 블록 914로 진행하여, 패킹 실패가 결정되고 방법은 중지한다. 여분의 fourBlkSrvc 가 이동될 수 있다면, 방법은 블록 912로 진행한다.
블록 912에서, 방법은 최종 동작으로 진행한다. 여분의 fourBlkSrvc 가 성공적으로 이동될 수 있었기 때문에, 방법은 최종 동작으로 진행하여 슬롯 할당을 완료한다.
방법 (900) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (900) 의 변경, 부 가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 11은 멀티플렉싱 시스템에서의 사용을 위해 제 3 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법 (1100) 을 도시한다. 예를 들어, 방법 (1100) 은, 제 3 부등식 조건 (1F2T) 이 존재하는 경우 할당을 제공한다. 일 양태에서, MUX 로직 (210) 은 후술된 바와 같은 방법 (1100) 의 기능들을 제공하도록 동작한다.
블록 1102에서, 제 1 부등식 (1) 의 상태가 거짓 (즉, 1F) 인지의 여부를 판정하기 위해 테스트가 수행된다. 제 1 부등식 (1) 의 상태가 1F가 아니라면, 방법은 블록 1104로 진행한다. 제 1 부등식 (1) 의 상태가 1F라면, 방법은 블록 1106으로 진행한다.
블록 1104에서, 방법은 제 4 부등식 조건을 프로세싱하도록 진행한다. 예를 들어, 제 1 부등식 (1) 의 상태가 1F가 아니기 때문에, 방법은 방법 (1300) 으로 진행하여, 제 4 부등식 조건이 남아있는 유일한 조건이기 때문에 이제 존재해야만 하는 그 제 4 부등식 조건을 프로세싱한다.
블록 1106에서, 제 2 부등식 (2) 의 상태가 참 (즉, 2T) 인지의 여부를 판정하기 위해 테스트가 수행된다. 제 2 부등식 (2) 의 상태가 2T가 아니라면, 방법은 블록 1104로 진행한다. 제 2 부등식 (2) 의 상태가 2T라면, 방법은 블록 1108로 진행한다.
도 12는 여분의 3개의 블록 서비스들을 할당하기 위한 멀티플렉싱 시스템의 일 양태의 동작을 예시한 프레임 (1200) 을 도시한다. 예를 들어, 할당 블록들 은, threeBlk (1202), fourBlk (1204), sixBlk (1206), reg2Blk (1208), 및 reg1Blk (1210) 을 포함한다. 프레임 (1200) 은, threeBlk (1202), reg1Blk (1210) 및 reg2Blk (1208) 할당 블록들에 여분의 3개의 블록 서비스들 (threeBlkSrvc) 을 할당하기 위해 방법 (1100) 이 어떻게 동작하는지를 나타낸다.
도 11을 다시 참조하면, 블록 1108에서 3개의 블록 서비스들 (threeblkSrvc) 이 프로세싱된다. 예를 들어, 일 양태에서, MUX 로직 (210) 은 다음과 같이 threeblkSrvc 를 프로세싱하도록 동작한다.
a. 상기 방법 (800) 을 참조하여 설명된 제 1 부등식 조건을 만족하도록 threeBlk (1202) 가 보유할 수 있는 threeBlkSrvc 를 찾는다. 그 후, 여분의 threeBlkSrvc 없이 threeBlk (1202) 를 업데이트한다.
b. 여분의 threeBlkSrvc 를 reg1Blk (1210) 및 Reg2Blk (1208) 로 이동시킨다. Reg1Blk (1210) 은 도 12에 도시된 바와 같이 높이 3의 블록이다.
c. 이동시키는 동안, 또한 연속하는 서비스들이 threeBlk (1202) 자체에 피팅할 수 있는지 여부를 체크한다.
d. 다음의 조건 부등식들이 참인 경우에만 이동을 완료한다.
((L7+L3+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+Lreg1+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm)
블록 1110에서, 여분의 3개의 블록 서비스들이 이동될 수 있는지 여부를 판정하기 위해 테스트가 수행된다. 여분의 threeBlkSrvc 가 블록 1108에서의 조 건 부등식들을 만족시키기 위해 reg1Blk (1210) 또는 reg2Blk (1208) 중 어느 하나로 이동될 수 없다면, 방법은 블록 1112로 진행하여, 패킹 실패가 결정되고 방법은 중지한다. 여분의 3개의 블록 서비스들이 이동될 수 있다면, 방법은 블록 1114로 진행한다.
블록 1114에서, 방법은 최종 동작으로 진행한다. 여분의 threeBlkSrvc 가 성공적으로 이동될 수 있었기 때문에, 방법은 최종 동작으로 진행하여 슬롯 할당을 완료한다.
방법 (1100) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (1100) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 13은 멀티플렉싱 시스템에서의 사용을 위해 제 4 부등식 조건에 기초하여 슬롯들을 RT 서비스들에 할당하기 위한 예시적인 방법 (1300) 을 도시한다. 방법 (1300) 은, 제 1, 제 2, 및 제 3 부등식 조건이 존재하지 않는 경우 할당을 제공한다. 이러한 경우, 부등식들의 상태는 (1F2F) 으로서 설명될 수 있다. 일 양태에서, MUX 로직 (210) 은 후술된 바와 같은 방법 (1300) 의 기능들을 제공하도록 동작한다.
도 14는 여분의 6개의 블록 서비스들을 할당하기 위한 멀티플렉싱 시스템의 일 양태의 동작을 예시하는 프레임 (1400) 을 도시한다. 예를 들어, 프레임 (1400) 은, threeBlk (1402), fourBlk (1404), reg2Blk (1406), 및 sixBlk (1408) 할당 블록들을 포함한다. 프레임 (1400) 은, 여분의 6개의 블록 서비스들 (sixBlkSrvc; 1410) 이 어떻게 할당되는지를 나타낸다.
도 13을 다시 참조하면, 블록 1302에서, 6개의 블록 서비스들이 프로세싱된다. 예를 들어, 일 양태에서, MUX 로직 (210) 은 다음과 같이 6개의 블록 서비스들을 프로세싱하도록 동작한다.
a. 상기 방법 (800) 을 참조하여 설명된 제 1 부등식 조건을 만족하도록 fourBlk (1404) 및 sixBlk (1408) 가 보유할 수 있는 sixBlkSrvc 를 찾는다. 그 후, 여분의 서비스들 없이 sixBlk (1408) 를 업데이트한다.
b. 여분의 sixBlkSrvc 를 threeBlk (1402), fourblk (1404) 및 reg2Blk (1406) 로 이동시킨다.
c. 이동시키는 동안, 또한 연속하는 서비스들이 sixBlk (1408) 자체에 피팅할 수 있는지 여부를 체크한다.
d. 다음의 조건 부등식들이 참인 경우에만 이동을 완료한다.
((L7+L3+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+L6)<=numOfdmSymbolsPerFrm) &&
((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm)
블록 1304에서, 여분의 6개의 블록 서비스들이 이동될 수 있는지 여부를 판정하기 위해 테스트가 수행된다. 여분의 6개의 블록 서비스들이, 블록 1302에서의 조건 부등식들을 만족시키기 위해, fourblk (1404), threeblk (1402), 또는 reg2Blk (1406) 으로 이동될 수 없다면, 방법은 블록 1306으로 진행하여, 패킹 실패가 결정되고 방법은 중지한다. 여분의 6개의 블록 서비스들이 이동될 수 있 다면, 방법은 블록 1308로 진행한다.
블록 1308에서, 방법은 최종 동작으로 진행한다. 여분의 sixBlkSrvc 가 성공적으로 이동될 수 있었기 때문에, 방법은 최종 동작으로 진행하여 슬롯 할당을 완료한다.
방법 (1300) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (1300) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
최종 동작
따라서, 상기 수행된 동작들로부터, 각각의 RT 서비스들이 어느 블록에 할당되는지에 관한 정보가 획득된다. 또한, RT 서비스의 각각의 채널이 프레임에 대해 갖는 데이터의 슬롯들의 수가 그 때에 공지된다. 이러한 정보는 모든 채널 할당의 위치에 도달하기에 충분하다. 일 양태에서, 슬롯들은, 블록의 최대 높이 제한에 관하여 그 블록내에서 채널들에 인접하여 할당될 수도 있다.
패킹 예
도 15는 멀티플렉싱 시스템에서의 사용을 위해 송신 프레임으로 2개의 RT 서비스들을 패킹하기 위한 할당 알고리즘의 양태들의 동작을 예시한 프레임 (1500) 을 도시한다. 이러한 예에서, 2개의 RT 서비스들, 즉, 서비스 A 및 서비스 B는 프레임 (1500) 의 fourblk 영역으로 패킹된다. 예시를 위해, 이전의 동작들은 양자의 RT 서비스들이 fourBlk 영역에 존재한다고 결정한다는 것을 가정할 것이다. 또한, 이러한 RT 서비스들 양자가 2개의 채널들, 즉, 채널 1 및 채널 2 를 갖는 다고 가정할 것이다. 또한, 각각의 채널에 대한 데이터 슬롯들의 수가 다음과 같다고 가정할 것이다.
서비스 A의 채널 1 = 9
서비스 A의 채널 2 = 9
서비스 B의 채널 1 = 8
서비스 B의 채널 2 = 7
프레임 (1500) 에서 도시된 바와 같이, RT 서비스들은 다음의 파라미터들에 따라 fourblk 영역으로 패킹된다.
채널 1 서비스 A (1502)
시작 심볼 = 5
시작 슬롯 = 6
최저의 슬롯 = 4
최고의 슬롯 = 7
총 슬롯 = 9
채널 2 서비스 A (1504)
시작 심볼 = 7
시작 슬롯 = 7
최저의 슬롯 = 4
최고의 슬롯 = 7
총 슬롯 = 9
채널 1 서비스 B (1506)
시작 심볼 = 10
시작 슬롯 = 4
최저의 슬롯 = 4
최고의 슬롯 = 7
총 슬롯 = 8
채널 2 서비스 B (1508)
시작 심볼 = 12
시작 슬롯 = 4
최저의 슬롯 = 4
최고의 슬롯 = 7
총 슬롯 = 7
알고리즘 요약
하나 이상의 양태에서, 할당 알고리즘은 프레임으로의 흐름들의 효율적인 패킹을 제공하며, 그에 의해, 수신 디바이스의 "웨이크-업" 주파수 및 "온-타임" 을 최소화한다. 예를 들어, 서비스의 채널들을 함께 그룹화하는 것은 웨이크-업 주파수를 감소시키지만, 서비스를 그의 maxSlotHeight 에서 송신하는 것은 온-타임을 감소시킨다.
일 양태에서, 알고리즘에 의해 제공된 슬롯 할당이 4개의 부등식 조건들 중 하나 때문에 실패하면, 그 알고리즘은 서비스들이 리사이징되는 방법을 제어하는 리사이징 제어기 (212) 에 지시들을 전달한다. 리사이징 제어기 (212) 가 이러한 지시들에 기초하여 리사이징된 서비스들을 가지면, 패킹 솔루션이 보장된다.
도 16은, 미사용 슬롯들이 2개의 영역들로 그룹화되는 방식으로 RT 서비스들을 패킹하기 위한 할당 알고리즘의 일 양태의 동작을 예시하는 프레임 (1600) 을 도시한다. 더 적은 영역에서 미사용 슬롯들을 수집하는 것은, 할당 알고리즘으로 입력되었던 서비스들보다 더 낮은 우선순위의 서비스들에 의한 이러한 슬롯들의 더 양호한 이용을 보장한다. 일 양태에서, ORT 서비스들은 이러한 영역들로 패킹될 수도 있다. 예를 들어, 프레임 (1600) 에서, 미사용 슬롯들은 영역들 (1602 및 1604) 에서 그룹화된다.
실-시간 서비스 리사이징 알고리즘
하나 이상의 양태에서, 리사이즈 제어기 (116) 는 서비스들이 프레임으로 패킹될 수도 있도록 그 서비스들이 리사이징되는 방법을 제어하도록 동작한다. 예를 들어, 서비스들은 그들의 관련 전달 요건들을 조정하도록 리사이징된다. 일 양태에서, 하나 이상의 서비스들은 관련 대역폭 요건들을 감소시키도록 리사이징되지만, 리사이즈 제어기 (116) 는, 임의의 관련 전달 요건들을 조정하기 위해 서비스들을 리사이징하도록 동작한다. 다음의 설명은, RT 서비스들에서 컴포넌트 스트림들을 리사이징하도록 동작하는 리사이징 알고리즘을 설명한다. 또한, RT 서비스들의 리사이징을 초래하는 조건들이 제공된다. 일 양태에서, 리사이즈 제어기 (116) 는 리사이징 파라미터들을 결정하는 리사이징 알고리즘을 구현하도록 동작한다. 그 후, 이러한 파라미터들은, 리사이징 요청에서의 RT 서비스 들과 관련된 RTMS 에 송신된다. 그 후, RTMS 는 리사이징 요청에서의 파라미터들에 따라, 식별된 RT 서비스들을 리사이징하도록 동작한다.
또한, 리사이즈 제어기 (116) 가 임의의 ORT 서비스를 리사이징하도록 동작함을 또한 유의해야 한다. 예를 들어, 리사이즈 제어기 (116) 는, 하나 이상의 ORT 서비스들이 리사이징되는 방법을 결정하고, 그 결정된 리사이징을 구현하기 위해 임의의 NRTMS와 통신하도록 동작가능하다. 그 결과, 이러한 서비스들과 관련된 전달 요건들이 조정될 것이다. 예를 들어, 리사이즈 제어기 (116) 는 ORT 서비스의 대역폭 요건을 감소시키기 위해 NRTMS 와 통신할 수도 있으며, 그에 의해 그 서비스의 전달 요건을 조정한다. 따라서, RT 서비스들을 리사이징하는 것을 참조하여 여기에 설명된 양태들이 또한 ORT 서비스들에 동등하게 적용가능하다.
도 1에 도시된 바와 같이, MUX (114) 는, RTMS (126) 및 NRTMS (128) 로부터 콘텐츠 흐름 데이터, 및 관련 시그널링 데이터를 수신한다. 매 수퍼프레임마다, MUX (114) 는 모든 활성 실시간 서비스들에 대해 RTMS (126) 와 데이터 대역폭을 협의하고, 옵션적으로, ORT 서비스들에 대해 NRTMS (128) 와 협의한다. 일 양태에서, 대역폭 협의는 다음의 동작들의 시퀀스를 포함한다.
a. MUX (114) 는, 수퍼프레임에서 전송될 RT 서비스들에 대한 데이터 사이즈들을 요청하기 위해, GetDataSize.Request 메시지를 RTMS (126) 에 전송한다.
b. RTMS (126) 는, 수퍼프레임에서 전송될 RT 서비스들에 대한 데이터 사이즈들을 특정하는 GetDataSize.Response 메시지를 MUX (114) 에 전송한다.
c. MUX (114) 는, RTMS (126) 뿐만 아니라 다른 소스들로부터의 모든 수신 데이터 사이즈들에 기초하여 콘텐츠 스케줄링 (할당) 을 수행한다.
d. MUX (114) 는 RT 서비스 흐름 데이터에 대한 업데이트된 사이즈들을 UpdateDataSize.Notification 메시지의 일부로서 RTMS (126) 에 전송한다.
일 양태에서, MUX (114) 는 상술된 슬롯 할당 알고리즘의 양태들을 포함하는 콘텐츠 스케줄링 기능을 제공하도록 동작한다. 리사이즈 제어기 (116) 는 리사이징 알고리즘의 양태들을 제공한다. 슬롯 할당 알고리즘은, 수퍼프레임에서 모든 미디어 서비스들에 할당되는 슬롯들 (레이트) 을 피팅하는 것을 담당한다. 특정한 시스템 제한들 (예를 들어, 디바이스상의 터보 디코더의 피크 스루풋은, 단일 OFDM 심볼에서 특정한 미디어 서비스에 할당될 수 있는 슬롯들의 수를 제한한다) 은, 슬롯 할당 절차로 하여금, 수퍼프레임에서 총 이용가능한 슬롯들 이하인 총 할당된 슬롯들에 관계없이 실패하게 할 수 있다. 또한, 공중-링크 리소스들에 대한 요구를 지배하도록 기대되는 실-시간 서비스 컴포넌트는 비디오 콘텐츠이다. 이러한 콘텐츠는, 크게 가변하는 비트-레이트 흐름을 초래하는 소스 코딩을 사용하여 압축된다. 최종적으로, 실시간 서비스들의 송신에 이용가능한 수퍼프레임 당 용량은, 다른 공존하는 미디어 서비스들의 요건들로 인해 변할 수도 있다. 이러한 인자들은 발생할 다음의 할당 조건들 중 하나를 유도한다.
1. RT 서비스들에 의해 요청되는 모든 데이터의 합산은 이용가능한 용량 이하이고, 슬롯 할당 알고리즘이 성공한다.
2. RT 서비스들에 의해 요청되는 모든 데이터의 합산은 이용가능한 용량 이하지만, 슬롯 할당 알고리즘이 실패한다.
3. RT 서비스들에 의해 요청되는 모든 데이터의 합산은 이용가능한 용량 초과이다.
할당 조건 2 및 할당 조건 3은 RT 서비스 흐름들에 의해 요청되는 데이터 양의 할당의 실패를 야기한다. 이러한 시나리오들에서, MUX (114) 는 리사이즈 제어기 (116) 를 호출하여, RT 서비스들을 리사이징하기 위해 리사이즈 알고리즘을 수행한다. 다음의 섹션은, 실시간 서비스들에 대한 품질의 개념 및 리사이즈 알고리즘의 양태들의 목적을 설명한다.
실시간 서비스 품질 및 리사이즈 알고리즘 목적
품질이 개념은 실시간 스트리밍 미디어 서비스내의 비디오 흐름들과 관련된다. 실-시간 서비스의 품질 (Q) 은 서비스 흐름들에 할당된 비트 레이트 (r) 의 함수이고,
Q=f(r)
과 같이 표현된 품질 함수에 의해 모델링된다.
매 프레임 마다, RTMS (126) 는 MUX (114) 가 이러한 기능을 평가하는 것을 돕는 정보를 제공한다. 이것은 GetDataSize.Response 메시지에서 MUX (114) 에 전송된다. 다음의 섹션에서 설명된 바와 같이, MUX (114) 는, 리사이즈 절차를 용이하게 하는 실시간 서비스의 품질 추정에 대한 이러한 정보를 사용한다. 또한, 임의의 선택된 품질 측정치 또는 특성이 품질 추정을 위하여 MUX (114) 에 의해 사용될 수 있음을 유의해야 한다.
리사이즈 알고리즘은, 슬롯 할당 알고리즘이 성공적이기 위하여 총 할당된 레이트가 RT 서비스들에 이용가능한 용량 이하이도록, 실시간 서비스들에 (물리층 패킷들 (PLP) 의 단위로) 레이트들을 할당한다. 따라서, 일 양태에서, RT 서비스들에 대한 레이트 할당은 RT 서비스 비디오 흐름들의 품질 함수가,
(Qi/Qj)=(Wi/Wj)
에 따른 그 서비스들의 가중치에 비례하도록 존재해야 하며, 여기서, Qi(Wi) 및 Qj(Wj) 는 임의의 RT 서비스들 i, j 에 대한 품질 함수 (흐름 가중치) 이다. 품질 함수는 상기 수학식 (3) 을 사용하여 추정된다. 흐름과 관련된 가중값은, 다른 RT 비디오 흐름들 중에서 그 흐름의 상대적인 중요성의 척도를 제공한다. 일 양태에서, MUX (114) 는, 분산 네트워크와 관련된 서비스 계획 및 관리 기능을 또한 담당할 수도 있는 가입 및 공급 (Subscription and Provisioning) 서브-시스템으로부터 이러한 흐름 가중값을 획득한다.
리사이즈 알고리즘
이 섹션은 RT 서비스 리사이즈 알고리즘의 양태들을 설명한다. 그 알고리즘은, RT 서비스들에서의 비디오 컴포넌트 스트림들 (흐름들) 에 대한 레이트 할당으로 수렴하는 반복 접근법을 사용한다. 그 알고리즘은 각각의 비디오 스트림에 의해 요청된 PLP (레이트) 의 수로 시작한다. 그 알고리즘의 반복들의 각각은 레이트 감소를 위한 후보 서비스를 식별하는 것을 수반한다. 후보 스트림 은 레이트 감소에 최소로 민감한 스트림이고, 다른 스트림들과 비교하여 품질에 있어서 바람직하지 않은 감소를 경험하지 않는다. 일 양태에서, 리사이즈 알고리즘의 기능들은 도 2에 도시된 리사이즈 제어기 (212) 에 의해 제공된다.
후보 스트림이 식별된 후, 그 스트림에 할당된 레이트가 감소된다. 예를 들어, 그 레이트는 2개의 리드-솔로몬 (Reed-Solomon) 코드 블록에 대응하는 양만큼 감소될 수도 있다. 네트워크는, 하나의 리드-솔로몬 블록에 대응하는 PLP의 수에 의해 정의된 입도 (granularity) 를 갖는 모든 서비스들에 레이트들을 할당한다. 비디오 스트림들이 기본 및 확장 (enhancement) 비디오 컴포넌트를 갖는 네트워크의 계층화된 송신 모드들 중 하나를 사용하여 송신된다고 가정한다. 또한, 시스템은 2개의 비디오 컴포넌트들에서의 데이터가 동일하도록 제한한다. 따라서, 2개의 리드-솔로몬 블록들이 레이트 감소의 단위로서 선택된다. 그러나, 임의의 다른 선택된 양만큼 스트림의 레이트를 감소시키는 것은 본 발명의 양태들의 범위내에 있음을 유의해야 한다.
상수들
리사이즈 기능을 제공하기 위한 멀티플렉싱 시스템의 양태들에서 다음의 상수 파라미터들이 사용된다.
rateReductionBnd
임의의 실시간 비디오 스트림에 대한 레이트에서의 부분적 감소의 상한. 그 상한은 스트림들에 의해 요청된 레이트들을 참조한다. 일 양태에서 0.5의 값이 사용된다.
sysMin
스트림의 품질에 대한 최소값. 레이트 감소 한계에 도달한 스트림들을 레이트에서의 추가적인 감소로부터 방지하기 위해 사용된다.
payloadPLP
약 968 비트인 PLP에 대한 유효 페이로드.
알고리즘 입력들
리사이즈 기능을 제공하기 위한 멀티플렉싱 시스템의 양태들에서 다음의 입력들이 사용된다.
maxRTSOFDMSym
실시간 서비스들에 이용가능한 수퍼프레임 당 OFDM 심볼들의 수에서의 용량.
numRTS
이용가능한 용량을 공유하는 실시간 서비스들의 수.
numVStreams
실시간 서비스들에서의 비디오 컴포넌트 스트림들의 총 수. 예를 들어, VStream은 각각의 실시간 비디오 컴포넌트 스트림을 설명하는 구조들의 리스트이다.
_weight
스트림에 대한 상대적인 가중값을 보유한다.
requestedPLPs
스트림에 의해 요청된 수퍼프레임 당 PLP의 수를 보유한다. requestedPLP × payloadPLP (968 비트) 로서 요청된 비트들의 원래의 수를 추정하는 것이 가능하다.
rsCodeParameterK
리드 솔로몬 (N, K) 코드에 대한 파라미터 K.
변수들
리사이즈 기능을 제공하기 위한 멀티플렉싱 시스템의 양태들에서 다음의 변수들이 사용된다.
reqPLPs [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는, VStream 구조의 requestedPLP 멤버에 의해 나타낸 바와 같이 이러한 스트림에 의해 요청된 수퍼프레임 당 PLP의 수를 보유한다.
assgnPLP [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는 이러한 스트림에 할당된 수퍼프레임 당 PLP의 수를 보유한다.
tempPLPs [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는 비디오 컴포넌트 스트림에 할당된 수퍼프레임 당 PLP의 수를 보유한다. 이것은 알고리즘에 의해 내부적으로 사용되는 임시 변수이다.
weight [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는 VStream 구조의 _weight 멤버에 의해 나타낸 스트림의 상대적인 가중값을 보유한다.
effQuality [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는 실시간 서비스 스트림에 대한 추정된 품질을 보유한다.
PLPsPerRSBlk [numVStreams]
비디오 컴포넌트 스트림을 식별하는 수 (0 내지 numVStreams-1) 에 의해 인덱스된 어레이. 그 어레이는, VStream 구조의 rsCodeParameterK 멤버에 의해 나타낸 바와 같이 리드-솔로몬 코드 블록 당 데이터 PLP의 수를 보유한다.
알고리즘 출력들
리사이즈 기능을 제공하기 위한 멀티플렉싱 시스템의 양태들에서 다음의 출력들이 사용된다.
successFlag
리사이즈 알고리즘이 제한들을 만족하는 레이트 할당에 수렴하는 것에 성공하면, 플래그는 1로 설정된다. 그렇지 않으면, successFlag 는 0으로 설정된다.
리사이즈 알고리즘에 의해 호출된 내부 절차들
다음은 멀티플렉싱 시스템의 양태들에서 리사이즈 알고리즘에 의해 호출된 내부 절차이다.
reducePLPs ()
레이트 감소에 대한 비디오 스트림을 식별하고 그 스트림에 할당된 데이터의 양을 감소시키는 절차. 이러한 절차는 메인 (main) 루틴에 대해 정의된 변수 공간을 공유한다.
리-인코딩 알고리즘에 의해 호출된 외부 알고리즘
다음은 멀티플렉싱 시스템의 양태들에서 리사이즈 알고리즘에 의해 호출된 외부 절차이다.
slotAllocation
슬롯 할당 알고리즘은, 수퍼프레임에서 모든 미디어 서비스들에 할당된 슬롯들 (레이트) 을 피팅하는 것을 담당한다. 리사이즈 알고리즘은, 모든 미디어 서비스들에 대한 할당된 데이터 (레이트) 를 포함하는 요청된 입력 독립변수 (input argument) 로 슬롯 할당 알고리즘을 호출한다.
알고리즘
다음은 멀티플렉싱 시스템의 양태들에서의 사용을 위한 리사이즈 알고리즘의 일 양태의 설명이다. 일 양태에서, 리사이즈 제어기 (212) 는 리사이즈 알고리즘을 구현하고 다음의 함수들 중 하나 이상을 수행한다.
a. VStream 구조 데이터를 사용하여, 어레이들, reqPLPs[], qualityIndex[], PLPsPerRSBlk[], 및 weight[] 를 상주시킨다.
b. reqPLPs[] 에서의 대응하는 엘리먼트로 어레이 assgnPLPs[] 의 모든 엘리먼트들을 초기화시킨다.
c. algorithmFlag=1, 및 successFlag=0 으로 초기화시킨다.
d. 다음의 함수들을 수행한다.
while algorithm Flag=1
reducePLPs()
if reduction>0
slotAllocation Algorithm 을 호출함
if slotAllocation Algorithm 이 성공
algorithmFlag=0
successFlag=1
endif
else
/* 이러한 조건은, rateReductionBnd 한계를 고려하는 동안 리사이징하는 것의 실패를 나타낸다. */
endif
endwhile
다음의 함수들은 reducePLPs() 절차의 일부로서 수행된다.
for i=0 to numVStreams
tempPLPs[i]=assgnPLPs[i]
tempPLPs[i]=tempPLPs[i]-2×PLPsPerRSBlk[i]
/* 스트림에 할당된 PLP는 2개의 리드-솔로몬 블록들에 대응하는 양만큼 감소된다. 일 양태에서, 하나의 RS 블록이 기본 및 확장 컴포넌트들 양자로부터 제거된다. 시스템은 동일한 기본 및 확장 비디오 컴포넌트들에서 데이터를 제한한다. */
if tempPLPs[i]/reqPLPs[i]>=rateReductionBnd
effQuality[i]=f(tempPLPs[i]×payloadPLP)/weight[i]
else
effQuality[i]=sysMin
endif
endfor
/* 여기서, f() 는 품질을 평가하는데 사용될 수도 있는 임의의 적절한 함수이다. */
e. 어레이 effQuality[] 에 의해 제공된 최대 효율 품질을 갖는 서비스의 인덱스를 식별한다. _index 파라미터를 그 값으로 설정한다.
f. 다음의 함수들을 수행한다.
if effQuality[_index]=sysMin
/* 이러한 조건은, rateReductionBnd 한계를 고려하는 동안 리사이징하는 것의 실패를 나타낸다. */
reduction=-1
else
reduction=2×PLPsPerRSBlk[_index]
assgnPLPs[_index]=tempPLPs[_index]
endif
따라서, 리사이즈 제어기 (212) 는, 멀티플렉싱 시스템의 양태들에서 서비스들을 리사이징하기 위해 상기 함수들을 제공하도록 동작한다. 예를 들어, RT 서비스의 레이트는, 상술된 할당 알고리즘의 양태들에 의해 제공된 바와 같이, 그 서비스가 수퍼프레임의 이용가능한 슬롯들에 할당되게 하도록 감소된다.
ORTS (Other than Real Time Services)
다양한 제한들을 고려하는 슬롯 할당 알고리즘의 양태들이 상술되었으며, OFDM 심볼에서 서비스에 대해 전송된 터보 패킷들의 수가 디바이스에 의해 디코딩가능하다는 것을 보장한다. 이러한 알고리즘은, 디바이스가 임의의 시간에 하나의 RT 서비스만을 수신하도록 요구되므로, RT 서비스들에 대해 바람직하다. 그러나, 디바이스는 수퍼프레임에서 다중의 ORT 서비스들을 수신하고 있을 수도 있다. 동일한 알고리즘이 사용되면, OFDM 심볼에서 디바이스에 의해 가입된 모든 ORT 서비스들에 대한 패킷들의 총 수는 디바이스 제한보다 더 크게 될 수도 있다. 이는 "터보 패킷 충돌" 로 지칭된다. 터보 패킷 충돌은 ORT 서비스 데이터의 손실을 초래한다. 손실의 크기는 일반적으로 사용자의 가입 패턴에 의존한다. 따라서, 터보 패킷 충돌들을 완전하게 제거할 ORT 서비스들에 대한 슬롯 할당 알고리즘들의 부가적인 양태들이 아래에서 제공 및 설명된다.
도 17은 멀티플렉싱 시스템에서의 사용을 위해 RT 서비스들 및 ORT 서비스들에 대한 영역들로 분할되는 예시적인 프레임 (1700) 을 도시한다. 제 1 영역 (1702) 은 RT 서비스들에 대해 제공되고, 제 2 영역 (1704) 은 ORT 서비스들에 대해 제공된다. 이러한 영역들로 프레임을 파티셔닝하는 것은, RT 서비스들과 ORT 서비스들 사이에 터보 패킷 충돌이 존재하지 않다는 것을 보장할 것이다. RT 영역 (1702) 과 ORT 영역 (1704) 사이의 파티션은 "소프트" 파티션이다 (즉, 그 파티션은, 수퍼프레임에서 이용가능한 RT 및 ORT 서비스 데이터에 의존하여 수퍼프레임에 따라 변한다). 상술된 슬롯 할당 알고리즘 및 리사이즈 알고리즘 중 하나를 사용하여, RT 서비스들은 RT 서비스 영역 (1702) 에서 슬롯 할당된다. 후술될 ORT 서비스 알고리즘들 중 하나를 사용하여, ORT 서비스들은 ORT 서비스 영역 (1704) 에서 슬롯 할당된다. 하나 이상의 양태에서, ORT 서비스들은 이용가능한 대역폭으로 피팅하도록 또한 리사이징된다. ORT 서비스들에 적용된 리사이징의 더 상세한 설명이 아래에 제공된다.
ORT 서비스 슬롯 할당
수신 디바이스의 전력 소비에 관하여, MLC 할당의 높이가 그 MLC의 maxSlotHeight 인 것이 바람직하다. 이것은, 그 MLC를 수신하는 디바이스에 대한 가능한 "온-타임" 을 최소화한다. 그러나, 패킹의 용이함을 위해, 서비스의 모든 그룹화된 MLC는 동일한 높이로 할당된다. 따라서, ORT 서비스들에 있어서도, "서비스의 maxSlotHeight" 의 개념은, 그 서비스에 대해 그룹화된 모든 MLC들의 maxSlotHeight 파라미터들의 최소 또는 가장 작은 것으로서 정의된다. 본 설명의 나머지에 있어서, 서비스의 높이는 그 서비스의 모든 MLC 할당의 공통 높이를 의미할 것이다.
서비스의 채널들이 함께 그룹화됨
일 양태에서, 서비스의 모든 채널들은 함께 그룹화되어, 그들의 할당이 프레임에서 시간적으로 근접한다. 이러한 접근법은, 디바이스가 서비스의 상이한 채널들을 수신하기 위해 "웨이크-업" 할 필요가 있는 횟수를 감소시키므로, 이것은 디바이스가 전력 소비를 감소시키게 돕는다.
ORTS 영역이 블록들로 분할됨
도 18은, ORTS 영역이 상이한 높이들의 블록들로 분할되는 예시적인 프레임 (1800) 을 도시한다. 일 양태에서, 블록 높이들은 서비스가 취할 수 있는 가능한 maxSlotHeight들에 대응한다. 테이블 (500) 으로부터, 4개의 maxSlotHeight들 (즉, 3, 4, 6, 및 7) 이 존재함을 관측할 수 있다. 따라서, 프레임 (1800) 은, 관련 서비스들을 할당하는데 사용되는 threeBlk (1802), fourBlk (1804), sixBlk (1806), 및 sevenBlk (1808) 영역을 도시한다. 그 후, ORT 서비스 슬롯 할당 알고리즘은 maxSlotHeight 에 기초하여 상이한 블록들로 서비스들을 패킹하도록 동작한다.
블록이 또 다른 블록위에 존재하지 않음
일 양태에서, 블록이 또 다른 블록위에 존재하지 않도록 블록들이 프레임 (1800) 에서 배열된다. 이것은, 2개의 ORT 서비스들이 터보 패킷 충돌을 갖지 않는 것을 보장한다.
ORT 서비스 슬롯 알고리즘
하나 이상의 양태에서, 다음의 파라미터들은 ORT 서비스 슬롯 할당 알고리즘으로의 입력들을 나타낸다.
a. 서비스의 각각의 MLC가 프레임에 대해 갖는 데이터의 슬롯들의 수.
b. 서비스의 각각의 MLC의 송신 모드에 의해 결정된 그 MLC의 maxSlotHeight.
c. ORT 서비스에 이용가능한 심볼들의 총 수 (numAvailOrtsSymPerFrm).
하나 이상의 양태에서, 다음의 파라미터들은 ORT 서비스 슬롯 할당 알고리즘으로부터의 출력들을 나타낸다.
a. 패킹이 가능한지의 여부에 대한 판정.
b. 패킷이 성공적이면, ORT 서비스에 의해 점유된 심볼들의 수 (numOccuOrtsSymPerFrm).
도 19는 멀티플렉싱 시스템에서의 사용을 위해 ORT 서비스들에 슬롯들을 할당하기 위한 예시적인 방법 (1900) 을 도시한다. 일 양태에서, MUX 로직 (210) 은 후술된 바와 같은 방법 (1900) 의 기능들을 제공하도록 동작한다.
블록 1902에서, 각각의 ORT 서비스의 maxSlotHeight 의 계산이 수행된다. 일 양태에서, MUX 로직 (210) 이 이러한 계산을 수행한다.
블록 1904에서, 각각의 서비스에 대한 maxSlotHeight 파라미터들에 기초하여 ORT 서비스들은 블록들로 그룹화된다. 예를 들어, 서비스들은, threeBlkSrvc, fourBlkSrvc, sixBlkSrvc, 및 sevenBlkSrvc 로 그룹화된다. 일 양태에서, MUX 로직 (210) 이 이러한 동작을 수행한다.
블록 1906에서, 길이 변수들 L7, L6, L4 및 L3 가 계산된다. 예를 들어, L7=ceil(모든 sevenBlkSrvc/7 의 총 슬롯들) 이며, 여기서, ceil(x) 는 x보다 큰 최소의 정수이다. 일 양태에서, MUX 로직 (210) 이 이러한 동작을 수행한다.
블록 1908에서, 요구된 심볼들의 수가 이용가능한 심볼들의 수보다 큰지의 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, 다음의 부등식이 평가된다.
(L7+L6+L4+L3<=numAvailOrtsSymbolsPerFrm)
일 양태에서, MUX 로직 (210) 이 이러한 동작을 수행한다. 상기 부등식이 거짓이면, 방법은 블록 1910으로 진행한다. 상기 부등식이 참이면, 방법은 블록 1912로 진행한다.
블록 1910에서, 패킹 실패가 결정되고 방법은 블록 1914에서 중지한다.
블록 1912에서, 패킹이 성공적이며, 점유된 심볼들의 수가 다음의 수학식으로부터 결정된다.
numOccuOrtsSymPerFrm=L7+L6+L4+L3
일 양태에서, MUX 로직 (210) 이 이러한 동작을 수행한다. 일단 패킹이 성공적이면, 각각의 서비스가 속하는 블록이 공지되므로, 모든 MLC 할당의 위치에 도달하는 것이 용이하다.
방법 (1900) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (1900) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한 다.
슬롯 할당과 리사이즈 알고리즘들 사이의 상호작용들
이전의 섹션에서, 슬롯 할당 및 리사이즈 알고리즘들의 양태들이 설명되었다. 다음의 섹션은 멀티플렉싱 시스템의 양태들에서의 사용을 위한 이러한 알고리즘들의 전체 상호작용의 설명을 제공한다.
도 20은 멀티플렉싱 시스템에서의 사용을 위해 슬롯 할당, 리사이징, 및 혼잡 제어를 제공하기 위한 예시적인 방법 (2000) 을 도시한다. 예를 들어, 서버 (200) 는 후술된 기능들을 제공하도록 동작한다.
블록 2002에서, 높은 우선순위 ORT 서비스 및 중간 우선순위 ORT 서비스가 슬롯 할당된다. 예를 들어, 매 수퍼프레임 마다, MUX (114) 는, GetDataSize.Response 명령을 사용하여, RTMS (126) 및 NRTMS (128) 과 같은 콘텐츠 엔티티들로부터 다양한 흐름 데이터의 양 및 그들의 상대적인 특성들을 획득한다. 이러한 정보를 사용하여, 높은 우선순위 ORT 서비스 및 중간 우선순위 ORT 서비스에 대한 슬롯 할당이 수행된다. 예를 들어, 일 양태에서, MUX 로직 (210) 은, 상기 알고리즘들에 따라 높은 우선순위 ORT 서비스 및 중간 우선순위 ORT 서비스의 슬롯 할당을 수행하도록 동작한다.
블록 2004에서, 높은 및 중간 우선순위 ORT 서비스 슬롯 할당이 성공적이었는지 여부를 판정하기 위해 테스트가 수행된다. 할당이 성공적이었다면, 방법은 블록 2006으로 진행한다. 할당이 성공적이지 않았다면, 방법은 블록 2018로 진행한다.
블록 2018에서, 혼잡 제어가 수행된다. 높은 우선순위 ORT 서비스 및 중간 우선순위 ORT 서비스 슬롯 할당이 성공적이지 않았기 때문에, 시스템은 해결될 필요성이 있는 혼잡을 경험한다. 일 양태에서, MUX 로직 (210) 은 도 22를 참조하여 설명되는 혼잡 제어 알고리즘을 수행한다. 혼잡 제어로부터 복귀할 시에, 방법은 블록 2028로 진행한다.
블록 2006에서, ORT 서비스 슬롯 할당의 성공에 기초하여, RT 서비스들에 이용가능한 심볼들의 수가 계산되고 반복 파라미터가 0으로 설정된다. 예를 들어, 일 양태에서, MUX 로직 (210) 이 이러한 기능들을 수행한다.
블록 2008에서, RT 서비스의 슬롯 할당이 프레임에서의 나머지 심볼들로 수행된다. 예를 들어, 상술된 슬롯 할당 알고리즘의 양태들이 슬롯들을 RT 서비스들에 할당하기 위해 사용된다.
블록 2010에서, RT 서비스들이 성공적으로 할당되었는지의 여부를 판정하기 위해 테스트가 수행된다. 할당이 성공적이지 않았다면, 방법은 블록 2014로 진행한다. 할당이 성공적이었다면, 방법은 블록 2012로 진행한다.
블록 2012에서, 이용가능한 심볼들의 수가 감소되고 반복 파라미터가 증가된다. 예를 들어, 일 양태에서, MUX 로직 (210) 이 이러한 기능들을 수행한다. 그 후, 방법은 블록 2008로 진행하여, RT 서비스들을 슬롯 할당한다.
블록 2014에서, 반복 파라미터가 0보다 큰지의 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, 일 양태에서, MUX 로직 (210) 이 이러한 기능들을 수행한다. 반복 파라미터가 0보다 크면, 방법은 블록 2016으로 진행한다. 반 복 파라미터가 0보다 크지 않으면, 방법은 블록 2020으로 진행한다.
블록 2016에서, RT 서비스 슬롯 할당이 numRTSymbols 플러스 1을 사용하여 수행된다. 예를 들어, 증가된 numRTSymbols 값을 사용하여 MUX 로직 (210) 이 RT 서비스들에 대한 슬롯 할당을 수행한다. 그 후, 방법은 블록 2024로 진행한다.
블록 2020에서, 선택된 RT 서비스들이 리사이징된다. 일 양태에서, RT 서비스 슬롯 할당이 성공적일 수 있도록 하나 이상의 흐름의 레이트를 리사이징하기 위해 리사이즈 알고리즘이 사용된다. 예를 들어, 리사이즈 제어기 (212) 가 여기에 설명된 리사이즈 알고리즘들 중 하나를 수행하도록 동작한다. 리사이즈 알고리즘으로부터 복귀할 시에, 방법은 블록 2022로 진행한다.
블록 2022에서, RT 서비스들의 리사이즈가 성공적이었는지의 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, 수용가능한 하한 비디오 품질 또는 하한 리사이즈 비율을 갖는 슬롯 할당을 달성하는데 리사이즈 알고리즘이 실패하는 상황이 존재할 수도 있다. 리사이즈가 성공적이었다면, 방법은 블록 2024로 진행한다. 리사이즈가 성공적이지 않았다면, 그 상황은 시스템이 혼잡하다는 것을 의미하므로, 방법은 블록 2018로 진행하여 혼잡 제어를 수행한다.
블록 2024에서, 낮은 우선순위 ORT 서비스들이 랭크의 오름차순으로 슬롯 할당된다. 예를 들어, MUX 로직 (210) 이 이러한 기능을 수행한다.
블록 2026에서, 베스트 에포트 ORT 서비스 또는 데이터가 슬롯 할당된다. 예를 들어, MUX 로직 (210) 이 이러한 기능을 수행한다. 그 후, 방법 (2000) 은 블록 2028에서 종료한다.
따라서, 방법 (2000) 의 완료시에, MUX (114) 는, 현재의 수퍼프레임에서 전송될 수 있는 다양한 흐름들의 여분의 데이터 사이즈들에 대한 정보를 갖는다. 이러한 정보는, UpdateDataSize.Notification 메시지를 사용하여, RTMS (126) 및 ORTMS (128) 로 역으로 운반된다.
방법 (2000) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (2000) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 21은 멀티플렉싱 시스템에서의 사용을 위해 리사이징을 제공하기 위한 예시적인 방법 (2100) 을 도시한다. 예를 들어, 방법 (2100) 은 도 20의 블록 2020 으로서의 사용에 적합하다. 일 양태에서, 리사이즈 제어기 (212) 는 후술될 기능들을 제공하도록 동작한다.
블록 2102에서, 요청된 슬롯들의 수가 평가되고 파라미터 n이 계산된다. 일 양태에서, n은 서비스에 대해 요청된 슬롯들의 수와 이용가능한 슬롯들의 수 사이의 비율을 나타낸다. 예를 들어, 리사이즈 제어기 (212) 가 이러한 계산을 수행한다.
블록 2104에서, 리사이징될 흐름들의 품질이 평가된다. 예를 들어, 각각의 흐름에 대한 MLC들을 n개의 코드 블록들 만큼 감소시킨 이후, 품질 평가가 행해진다. 예를 들어, 서비스의 품질 (Q) 은 서비스 흐름들에 할당된 비트 레이트 (r) 의 함수이며, 상기 표현된 품질 함수에 의해 모델링된다. 예를 들어, 리사 이즈 제어기 (212) 가 이러한 품질 결정을 수행한다.
블록 2106에서, 결과적인 최대 품질을 갖는 흐름이 결정된다 (후보). 예를 들어, 리사이즈 제어기 (212) 는, 블록 2104에서 코드 블록들의 감소를 수행한 이후 생성하는 최대 품질을 갖는 흐름을 결정한다.
블록 2018에서, 최대 품질이 시스템 최소 품질 요건보다 더 큰지의 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, 리사이즈 제어기 (212) 는 이러한 테스트의 결과를 결정한다. 최대 품질이 시스템 최소 품질 요건보다 크지 않으면, 방법은 블록 2116으로 진행한다. 최대 품질이 시스템 최소 품질 요건보다 크면, 방법은 블록 2110으로 진행한다.
블록 2110에서, 최대 품질을 갖는 흐름이 리사이징되고 슬롯 할당이 수행된다. 예를 들어, 최대 품질을 갖는 흐름은 n개의 코드 블록만큼 감소되며, 슬롯 할당이 수행된다. 예를 들어, 리사이즈 제어기 (212) 는 흐름을 리사이징하고, MUX 로직 (210) 이 슬롯 할당을 수행하도록 요청한다.
블록 2112에서, 슬롯 할당이 성공적이었는지 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, 리사이즈 제어기 (212) 는, 블록 2110에서 수행된 슬롯 할당이 성공적이었는지의 여부를 나타내는 표시자를 MUX 로직 (210) 으로부터 수신한다. 슬롯 할당이 성공적이었다면, 방법은 블록 2114로 진행한다. 슬롯 할당이 성공적이지 않았다면, 방법은 블록 2102로 진행한다.
블록 2114에서, 리사이즈가 성공적이었다고 결정되며, 블록 2116에서 리사이즈가 실패한 것으로 결정된다. 예를 들어, 리사이즈 제어기 (212) 가 이러한 결정을 수행한다. 그 후, 방법은 블록 2118로 진행하여, 방법은 도 20의 블록 2020 으로 복귀한다.
따라서, 방법 (2100) 은 멀티플렉싱 시스템에서의 사용을 위해 리사이징을 제공하도록 동작한다. 방법 (2100) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (2100) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 22는 멀티플렉싱 시스템에서의 사용을 위해 혼잡 제어를 제공하기 위한 예시적인 방법 (2200) 을 도시한다. 예를 들어, 방법 (2200) 은, 도 20에서의 블록 2018로서의 사용에 적합하다. 일 양태에서, MUX (210) 는 후술될 기능들을 제공하도록 동작한다.
블록 2202 에서, 높은 우선순위 ORT 서비스가 슬롯 할당된다. 예를 들어, MUX (210) 가 여기에 설명된 할당 알고리즘의 양태들에 따라 이러한 할당을 수행한다.
블록 2204에서, 블록 2202에서 수행된 할당이 성공적이었는지 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, MUX (210) 는 이러한 기능을 수행한다. 할당이 성공적이었다면, 방법은 블록 2208로 진행한다. 할당이 성공적이지 않았다면, 방법은 블록 2206으로 진행한다.
블록 2206에서, 높은 우선순위 ORT 서비스들이 그들의 랭크의 오름차순으로 할당된다. 예를 들어, MUX (210) 이 여기에 설명된 할당 알고리즘의 양태들에 따라 이러한 할당을 수행한다. 그 후, 방법 (2200) 은 도면부호 2218에서 종료 한다.
블록 2208에서, 모든 가능한 RT 서비스 흐름들이 선택된 양만큼 감소되며, 이러한 흐름들의 슬롯 할당이 수행된다. 예를 들어, 리사이즈 제어기 (212) 및 MUX (210) 가 여기에 설명된 양태들에 따라 이러한 동작들을 수행한다. 선택된 양은 시스템에 공지된 레이트 감소 파라미터에 기초한다.
블록 2210에서, 블록 2208에서의 RT 서비스 슬롯 할당이 성공적이었는지 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, MUX (210) 가 이러한 기능을 수행한다. 할당이 성공적이었다면, 방법은 블록 2212로 진행한다. 할당이 성공적이지 않았다면, 방법은 블록 2214로 진행한다.
블록 2212에서, 중간 우선순위 ORT 서비스들이 랭크의 오름차순으로 슬롯 할당된다. 예를 들어, MUX (210) 가 여기에 설명된 할당 알고리즘의 양태들에 따라 이러한 할당을 수행한다. 그 후, 방법 (2200) 은 도면부호 (2218) 에서 종료한다.
블록 2214에서, 다음의 가장 낮게 랭크된 서비스를 배제하는 RT 서비스 슬롯 할당이 수행된다. 예를 들어, MUX (210) 가 여기에 설명된 할당 알고리즘의 양태들에 따라 이러한 할당을 수행한다.
블록 2216에서, 블록 2214에서의 할당이 성공적이었는지 여부를 판정하기 위해 테스트가 수행된다. 예를 들어, MUX (210) 가 이러한 기능을 수행한다. 할당이 성공적이었다면, 방법은 블록 2212로 진행한다. 할당이 성공적이지 않았다면, 방법은 다시 블록 2214로 진행하여, 또 다른 서비스를 배제하고 슬롯 할당 을 다시 시도한다.
따라서, 방법 (2200) 은 멀티플렉싱 시스템에서의 사용을 위해 혼잡 제어를 제공하도록 동작한다. 방법 (2200) 이 단지 하나의 구현을 나타낼 뿐이고, 방법 (2200) 의 변경, 부가, 삭제, 조합 또는 다른 변형이 본 발명의 범위내에서 가능함을 유의해야 한다.
도 23은 예시적인 멀티플렉싱 시스템 (2300) 을 도시한다. 멀티플렉싱 시스템 (2300) 은 데이터를 수신하는 수단 (2302), 대역폭을 결정하는 수단 (2304), 데이터를 할당하는 수단 (2306), 및 데이터를 리사이징하는 수단 (2308) 을 포함한다. 일 양태에서, 수단들 (2302 내지 2308) 은, 여기에 설명된 바와 같은 멀티플렉싱 시스템의 양태를 제공하기 위한 컴퓨터 프로그램을 실행하는 적어도 하나의 프로세서에 의해 제공된다.
도 24는 여기에 설명된 기술들에 따라 멀티미디어 데이터를 인코딩하는 또 다른 예시적인 멀티미디어 인코딩 디바이스 (2400) 를 도시한 블록도이다. 멀티미디어 인코딩 디바이스 (2400) 는, 멀티미디어 데이터의 하나 이상의 채널들을 브로드캐스팅하는데 사용되는 브로드캐스트 네트워크 컴포넌트의 일부를 형성할 수도 있다. 멀티미디어 인코딩 디바이스 (2400) 는, 예를 들어, 무선 기지국, 서버, 또는 이동 디바이스 (102; 도 1) 와 같은 하나 이상의 무선 디바이스들에 인코딩된 멀티미디어 데이터의 하나 이상의 채널들을 브로드캐스팅하는데 사용되는 임의의 인프라구조 노드의 일부를 형성할 수도 있다. 예를 들어, 멀티미디어 인코딩 디바이스 (2400) 는 도 1의 서버 (104) 를 나타낼 수도 있다.
멀티미디어 인코딩 디바이스 (2400) 는, 멀티미디어 데이터의 하나 이상의 흐름들을 포함하는 복수의 서비스들을 인코딩하고, 그 인코딩된 흐름들을 결합하며, 송신 채널 (2402) 을 통해 멀티미디어 디코딩 디바이스로 그 결합된 흐름들을 송신한다. 본 발명의 일 양태에서, 멀티미디어 인코딩 디바이스 (2400) 는, 시간의 주기에 걸쳐 수신된 데이터의 흐름들의 일부들을 인코딩, 결합, 및 송신한다. 일 예로서, 멀티미디어 인코딩 디바이스 (2400) 는 매 초당 흐름들에 관해 동작할 수도 있다. 즉, 멀티미디어 인코딩 디바이스 (2400) 는, 복수의 흐름들의 데이터의 1-초 세그먼트들을 인코딩하고, 그 데이터의 1-초 세그먼트들을 결합하여 데이터의 수퍼프레임을 형성하며, 송신기 (2408) 를 통해 송신 채널 (2402) 상에서 그 수퍼프레임을 송신한다. 여기에 사용된 바와 같이, "수퍼프레임" 이라는 용어는, 1초의 시간 주기 또는 윈도우와 같은 시간 주기 또는 윈도우에 걸쳐 수집된 데이터의 세그먼트들의 그룹을 지칭한다. 데이터의 세그먼트들은 데이터의 하나 이상의 프레임들을 포함할 수도 있다. 본 발명의 기술들이 데이터의 1-초 세그먼트들의 콘텍스트에서 설명되었지만, 또한, 기술들은, 고정된 시간 주기일 수도 있거나 고정된 시간 주기가 아닐 수도 있는 상이한 시간 주기, 또는 개별 프레임들 또는 데이터의 프레임들의 세트 동안 수신된 데이터의 세그먼트들에 대한 것과 같이, 데이터의 다른 세그먼트들을 결합 및 송신하기 위해 사용될 수도 있다. 즉, 수퍼프레임들은, 1-초 주기보다 더 크거나 더 작은 시간 간격 또는 심지어 가변 시간 주기를 커버링하도록 정의될 수 있다.
송신 채널 (2402) 은 임의의 유선 또는 무선 매체, 또는 이들의 조합을 포함 할 수도 있다. 일 양태에서, 송신 채널 (2402) 은 고정된 대역폭 채널이다. 이러한 경우, 멀티미디어 인코딩 디바이스 (2400) 가 송신 채널 (2402) 을 통해 송신할 수도 있는 데이터의 비트들의 수는 고정된 대역폭 채널의 사이즈에 제한된다. 멀티미디어 인코딩 디바이스 (2400) 는, 타겟 품질 레벨에서 데이터의 흐름들 각각을 출력하는 것을 시도한다. 비트 레이트를 결정하는데 사용된 타겟 품질 레벨은, 미리-선택되거나, 사용자에 의해 선택되거나, 사용자로부터 또는 또 다른 프로세스로부터의 입력을 요구하는 반자동 프로세스 또는 자동 프로세스를 통해 선택되거나, 소정의 기준에 기초하여 인코딩 디바이스 또는 시스템에 의해 동적으로 선택될 수 있다. 타겟 품질 레벨은, 예를 들어, 인코딩 애플리케이션의 타입, 또는 멀티미디어 데이터를 수신하고 있는 클라이언트 디바이스의 타입에 기초하여 선택될 수 있다. 타겟 품질 레벨에서 데이터의 흐름들 각각을 출력하는데 필요한 비트들의 수가 송신 채널 (2402) 상에서 이용가능한 비트들의 양을 초과하면, 멀티미디어 인코딩 디바이스 (2400) 는, 본 발명의 기술들에 따라 복수의 흐름들에 대한 최고의 전체 품질을 보존하려는 시도로, 흐름들 사이에서의 비트 할당을 관리한다.
도 24에 도시된 바와 같이, 멀티미디어 인코딩 디바이스 (2400) 는, 인코더 모듈 (2404A 내지 2404N) (총괄적으로, "인코딩 모듈들 (2404)"), 멀티플렉스 모듈 (2406) 및 송신기 (2408) 를 포함한다. 인코더 모듈들 (2404) 은 하나 이상의 소스들로부터 디지털 멀티미디어 데이터의 흐름들을 수신한다. 인코더 모듈들 (2404) 은, 예를 들어, 인코더 모듈들 (2404) 에 커플링된 이미지 캡쳐 디바이스 또는 메모리로부터 멀티미디어 데이터의 흐름들을 수신할 수도 있다. 멀티미디어 데이터의 흐름들은, 인코딩되어 브로드캐스트로서 송신될 생방송의 실-시간 비디오, 오디오, 또는 비디오 및 오디오 흐름들을 포함할 수도 있거나, 코딩되어 브로드캐스트로서 또는 요구시에 송신될 미리-레코딩된 및 저장된 비디오, 오디오, 또는 비디오 및 오디오 흐름들을 포함할 수도 있다. 또한, 본 발명의 기술들은 비-실시간 서비스들, 또는 실시간 서비스들과 비-실시간 서비스들의 조합에 적용될 수도 있다. 즉, 멀티미디어 인코딩 디바이스 (2400) 는 ORT 서비스들을 생성하는 하나 이상의 ORT 모듈들을 포함할 수도 있다. 그러나, 간략화를 위해, 도 24는 단지 인코더 모듈들 (2404) 만을 도시한다.
인코더 모듈들 (2404) 은 적어도 품질 및 레이트 정보를 데이터의 수신된 흐름들과 관련시킬 수도 있다. 더 상세히 설명될 바와 같이, 인코더 모듈들 (2404) 은 그 흐름들의 콘텐츠를 분석하여, 품질-레이트 커브, 콘텐츠 분류 커브 또는 품질-레이트 테이블과 같은 각각의 품질 및 레이트 정보를 그 흐름들과 관련시킬 수도 있다. 품질 및 레이트 정보는, 다른 것들 중에서, 인코더 모듈들 (2404) 이 현재의 수퍼프레임에서 포함하길 원하는 데이터의 세그먼트들에 대한 상이한 품질 레벨에서 데이터의 세그먼트들의 사이즈를 나타낸다. 인코더 모듈들 (2404) 은 데이터의 세그먼트들과 관련된 적어도 품질 및 레이트 정보를 멀티플렉스 모듈 (2406) 로 전송한다. 인코더 모듈들 (2404) 은 그 품질 및 레이트 정보를 제어 채널들을 통해 멀티플렉스 모듈 (2406) 로 전송할 수도 있다. 예를 들어, 인코더 모듈들 (2404) 은 멀티플렉스 모듈 (2406) 로부터 수신된 요청들에 응답하여 제어 채널들을 통해 그 품질 및 레이트 정보를 전송할 수도 있다. 멀티플렉스 모듈 (2406) 및 인코더 모듈들 (2404) 은 다수의 상이한 통신 프로토콜을 사용하여 통신할 수도 있다. 일 양태에서, 멀티플렉스 모듈들 (2406) 은, 하부 전송 메커니즘으로서 메시지 전송층 (MTL) 을 이용하는 프로토콜들을 사용하여 통신할 수도 있다.
멀티플렉스 모듈 (2406) 은 품질 및 레이트 정보를 수신한다. 몇몇 경우, 멀티플렉스 모듈 (2406) 은 전달 요건들, 예를 들어, 하나 이상의 ORT 서비스들과 관련된 우선순위 및 레이턴시 요건들을 또한 수신할 수도 있다. 멀티플렉스 모듈 (2406) 은, 인코더 모듈들 (2404) 이 현재의 수퍼프레임에서 포함하길 원하는 데이터의 세그먼트들이 송신 채널 (2402) 의 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해 하나 이상의 전달 요건들을 분석한다. 멀티플렉스 모듈 (2406) 은, 예를 들어, 멀티미디어 인코딩 디바이스 (2400) 의 타겟 품질 레벨과 데이터의 세그먼트들과 관련된 각각의 품질-레이트 커브들 사이의 교점에 대응하는 사이즈들을 사용하여, 데이터의 세그먼트들이 현재의 수퍼프레임내에 피팅하는지 여부에 관한 초기 판정을 수행할 수도 있다. 또 다른 예로서, 멀티플렉스 모듈 (2406) 은, 데이터의 세그먼트들과 관련된 품질-레이트 테이블에 특정된 최고의 품질 레벨에 대응하는 사이즈들을 사용하여, 데이터의 세그먼트들이 현재의 수퍼프레임내에 피팅하는지 여부에 관한 초기 판정을 수행할 수도 있다.
데이터의 세그먼트들이 송신 채널 (2402) 의 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 멀티플렉스 모듈 (2406) 은, 품질 레벨들 중 선택된 하나에 대응하는 사이즈들에서 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스의 양들을 결정하고, 그 데이터의 세그먼트들을 전송하는데 필요한 송신 채널 리소스의 양들을 합산하며, 데이터의 세그먼트들을 전송하는데 충분한 송신 채널 리소스들이 존재하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 송신 채널 리소스들의 총 합산을 이용가능한 송신 채널 리소스들의 양과 비교할 수도 있다. 무선 콘텍스트에서, 송신 채널 리소스들은 공중-링크 또는 공중-인터페이스 리소스들을 포함할 수도 있다. 일 양태의 예에서, 멀티플렉스 모듈 (2406) 은, 충분한 송신 채널 리소스들이 존재하는지 여부를 판정하기 위해, 상술된 슬롯 할당 알고리즘들 중 하나와 같은 슬롯 할당 알고리즘을 수행할 수도 있다. 더 상세히 상술된 바와 같이, 멀티플렉스 모듈 (2406) 은, 모든 서비스들/세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 인코더 모듈들 (2404) 의 데이터의 세그먼트들과 관련된 품질 및 레이트 정보와 함께 ORT 서비스들의 전달 요건을 또한 설명할 수도 있다.
데이터의 복수의 세그먼트들이 이용가능한 대역폭내로 피팅하지 않는다고 멀티플렉스 모듈 (2406) 이 결정하면, 예를 들어, 슬롯 할당 알고리즘이 실패하거나 필요한 송신 채널 리소스들의 총 합이 이용가능한 송신 채널 리소스들을 초과하면, 멀티플렉스 모듈 (2406) 은, 인코더 모듈들 (2404) 로부터 수신된 품질 및 레이트 정보에 기초하여 세그먼트들 중 리사이징될 하나 이상을 선택한다. 멀티플렉스 모듈 (2406) 은, 대응하는 감소된 사이즈에서 품질에서의 최소량의 영향을 갖는 데이터의 리사이징될 세그먼트들을 선택하는 것을 시도한다. 더 상세히 후술될 바와 같이, 멀티플렉스 모듈 (2406) 은 세그먼트들에 할당된 비트들의 수의 감소 이후에 데이터의 세그먼트들 각각에 대한 품질 영향을 결정하기 위해 품질 및 레이트 정보를 분석하고, 감소된 사이즈에서 최고의 품질 레벨을 갖는 데이터의 세그먼트들 중 하나 이상을 선택한다. 이러한 방식으로, 멀티플렉스 모듈은 인코더 모듈들 (2404) 의 실-시간 서비스들 사이에서 중재할 수도 있다. 그러나, 몇몇의 경우, 멀티플렉스 모듈 (2406) 은 하나 이상의 ORT 서비스들의 관련 전달 요건들에 기초하여 리사이징될 그 하나 이상의 ORT 서비스들을 또한 선택하며, 그에 따라, ORT 서비스들 뿐만 아니라 인코더 모듈들 (2404) 의 실-시간 서비스들 사이에서 대역폭을 할당할 수도 있다. 또한, 여기에서의 기술들은 예시적인 목적을 위해 실-시간 서비스들의 콘텍스트에서 설명된다. 멀티플렉스 모듈 (2406) 은 상술된 기술들에 따라 ORT 서비스들을 여전히 분석 및 리사이징할 수도 있다. 따라서, 다음의 도면에서 설명된 기술들은 실-시간 서비스들을 리사이징하는 것에 더 적용가능하다.
멀티플렉스 모듈 (2406) 은 데이터의 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 에게 감소된 비트 할당에 따라 디지털 멀티미디어 데이터의 흐름들을 리사이징하도록 요청한다. 몇몇 경우에서, 멀티플렉스 모듈 (2406) 은, 서비스를 송신하는데 충분한 대역폭이 존재하지 않는 경우 데이터의 선택된 세그먼트들을 다운사이징하도록 인코더 모듈들 (2404) 에게 요청할 수도 있다. 다른 경우, 멀티플렉스 모듈 (2406) 은, 여분의 이용가능한 대역폭이 존재하는 경우 데이터의 선택된 세그먼트들을 업사이징하도록 인코더 모듈들 (2404) 에게 요청할 수도 있 다. 멀티플렉스 모듈 (2406) 은 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 로 리사이즈 요청을 제어 채널을 통해 전송할 수도 있다. 그 리사이즈 요청은 데이터의 선택된 세그먼트에 대해, 예를 들어, 비트 단위의 사이즈를 특정할 수도 있다.
데이터의 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 은, 데이터의 각각의 세그먼트들과 관련된 리사이즈 요청들을 수신하고, 멀티미디어 데이터의 세그먼트들을 리사이징한다. 인코더 모듈들 (2404) 은 다수의 상이한 방식으로 데이터의 세그먼트들을 리사이징할 수도 있다. 데이터의 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 은, 리사이즈 요청에서 특정된 최대 사이즈 이하로 데이터의 세그먼트들의 사이즈를 감소시키기 위해 하나 이상의 인코딩 변수들을 조정할 수도 있다. 예를 들어, 인코더 모듈들 (2404) 은 더 높은 양자화 파라미터 (QP) 를 사용하여 데이터의 세그먼트들을 리-인코딩할 수도 있다. 또 다른 예로서, 인코더 모듈들 (2404) 은 감소된 인코딩 레이트로 데이터의 세그먼트들을 리-인코딩할 수도 있다. 다른 방법으로 또는 추가적으로, 인코더 모듈들 (2404) 은 인코딩될 정보의 양을 감소시킬 수도 있으며, 따라서, 데이터의 세그먼트들의 사이즈를 감소시킨다. 몇몇 경우, 인코더 모듈들 (2404) 은, 리사이즈 요청에서 특정된 사이즈로 데이터의 세그먼트들의 사이즈를 증가시키기 위해 하나 이상의 인코딩 변수들을 조정할 수도 있다. 예를 들어, 인코더 모듈들 (2404) 은, 더 낮은 QP를 사용하여 데이터의 세그먼트들을 리-인코딩하거나, 증가된 인코딩 레이트로 데이터의 세그먼트들을 리-인코딩할 수도 있다.
멀티플렉스 모듈 (2406) 은, 멀티플렉스 모듈 (2406) 이 현재의 수퍼프레임을 생성할 준비가 되어 있는 경우, 데이터의 인코딩된 세그먼트들을 수집한다. 멀티플렉스 모듈 (2406) 은, 예를 들어, 인코더 모듈들 (2404) 에 전달 요청들을 제어 채널을 통해 전송할 수도 있다. 그 요청들에 응답하여, 인코더 모듈들 (2404) 은 멀티미디어 데이터의 인코딩된 세그먼트들을 멀티플렉스 모듈 (2406) 에 전송한다. 멀티플렉스 모듈 (2406) 은 수퍼프레임을 형성하기 위해 멀티미디어 데이터의 흐름들을 결합하고, 송신 채널 (2402) 을 통한 하나 이상의 디코딩 디바이스들로의 송신을 위해 그 수퍼프레임을 송신기 (2408) 에 전송한다. 이러한 방식으로, 멀티플렉스 모듈 (2406) 은, 데이터의 복수의 흐름들의 최고의 전체 품질을 보존하면서, 고정된 대역폭 채널 (2402) 로 데이터의 모든 세그먼트들을 가장 효율적으로 피팅하기 위해 흐름들 사이에서 비트 할당을 관리한다.
멀티미디어 인코딩 디바이스 (2400) 에서의 컴포넌트들은 여기에 설명된 기술들을 구현하는데 적용가능한 컴포넌트들의 예시이다. 그러나, 멀티미디어 인코딩 디바이스 (2400) 는, 원한다면, 많은 다른 컴포넌트들을 포함할 수도 있다. 또한, 본 발명의 기술들은, 도 24의 시스템과 유사한 시스템 또는 브로드캐스트 시스템에서의 사용에 제한될 필요는 없다. 그 기술들은, 제한된 대역폭을 갖는 송신 채널을 통한 송신을 위해 멀티미디어 데이터의 복수의 흐름들을 인코딩하는데 인코딩 기술들이 사용되는 임의의 멀티미디어 인코딩 환경에서의 애플리케이션을 발견할 수도 있다. 멀티미디어 인코딩 디바이스 (2400) 의 도시된 컴포넌트들은 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다. 송신기 (2408) 는, 인코더 또는 CODEC 이외의 상이한 컴포넌트 또는 칩상에 형성될 수도 있다.
멀티미디어 인코딩 디바이스 (2400) 에서의 컴포넌트들은, 하나 이상의 프로세서, 디지털 신호 프로세서, 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 별개의 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 또한, 멀티미디어 인코딩 디바이스 (2400) 는, MPEG-4 (Moving Picture Experts Group), ITU-T (International Telecommunication Union Standardization Sector), 예를 들어, H.263 또는 H.264와 같은 멀티미디어 코딩 표준, 또는 또 다른 코딩 표준, 또는 이들의 조합에 부합할 수도 있다. 특히, 멀티플렉스 모듈 (2406) 과 통신하는 인코더 모듈들 (2404) 각각은, 중재하기 위하여 멀티플렉스 모듈 (2406) 에 의해 사용된 품질 및 레이트 정보가 인코더 모듈들 (2404) 각각에 대해 독립적으로 생성될 수 있다는 사실 때문에 상이한 멀티미디어 코딩 표준과 부합할 수도 있다.
상이한 특성들의 모듈들로서의 서술은 멀티미디어 인코딩 디바이스 (2400) 의 상이한 기능적 양태들을 강조하도록 의도되며, 그러한 모듈들이 별개의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 암시할 필요는 없다. 대신, 하나 이상의 모듈들과 관련된 기능은 공통 또는 별개의 하드웨어 또는 소프트웨어 컴포넌트 내에 통합될 수도 있다. 따라서, 본 발명은 멀티미디어 인코딩 디바이스 (2400) 의 예로 제한되어야 하지는 않는다.
도 25는, 복수의 흐름들의 최고의 전체 품질을 보존하면서, 수퍼프레임내로 흐름들을 가장 효율적으로 피팅하려는 시도에서 그 복수의 흐름들 사이에서 비트 할당을 관리하는 또 다른 예시적인 멀티미디어 인코딩 디바이스 (2500) 를 도시한 블록도이다. 멀티미디어 인코딩 디바이스 (2500) 는 도 24의 멀티미디어 인코딩 디바이스 (2400) 에 실질적으로 부합하지만, 멀티미디어 데이터의 선택된 세그먼트들의 리사이징은 그 데이터의 선택된 세그먼트들과 관련된 리사이징 모듈들 (2502A 내지 2502N) (총괄적으로, "리사이징 모듈들 (2502)") 에 의해 수행된다.
따라서, 도 24의 인코더 모듈들 (2404) 의 기능은 인코더 모듈들 (2504) 과 리사이징 모듈들 (2502) 사이에서 분할된다. 즉, 인코더 모듈들 (2504) 은, 데이터의 세그먼트들에 이용가능한 대역폭을 할당하고 그 할당이 실패할 경우 데이터의 세그먼트들 중 리사이징될 하나 이상을 선택할 시에 사용을 위해, 그 데이터의 세그먼트들 각각과 관련된 품질 및 레이트 정보를 멀티플렉스 모듈 (2506) 에 제공한다. 리사이징 모듈들 (2502) 은 데이터의 세그먼트들을 리사이징하기 위해 멀티플렉스 모듈 (2506) 로부터 요청들을 수신하고, 멀티플렉스 모듈 (2506) 로부터 수신된 리사이즈 요청에 따라 그 데이터의 세그먼트들을 리사이징한다.
도 26은 본 발명의 기술들에 따라 기능하는 예시적인 인코더 모듈 (2600) 을 도시한 블록도이다. 인코더 모듈 (2600) 은, 예를 들어, 도 24의 인코딩 디바이스 (2400) 의 인코더 모듈들 (2404) 중 임의의 하나를 나타낼 수도 있다. 인코더 모듈 (2600) 은, 멀티플렉스 모듈 인터페이스 (2602), 콘텐츠 분류 모듈 (2604), 품질-레이트 정보 생성 모듈 (2606), 및 인코딩 모듈 (2608) 을 포함한다. 인코딩 모듈 (2608) 은 리사이징 모듈 (2612) 을 더 포함한다. 리사이징 모듈 (2612) 은 도 1의 리사이즈 제어기 (116) 를 나타낼 수도 있다.
인코더 모듈 (2600) 은 멀티미디어 데이터의 하나 이상의 흐름들을 소스로부터 수신한다. 인코더 모듈 (2600) 은, 예를 들어, 인코더 모듈 (2600) 에 커플링된 이미지 캡쳐 디바이스 또는 메모리로부터 멀티미디어 데이터의 흐름들을 수신할 수도 있다. 멀티미디어 데이터의 흐름들은, 코딩되어 브로드캐스트로서 송신될 생방송의 실-시간 비디오, 오디오 또는 비디오 및 오디오 흐름들을 포함할 수도 있거나, 코딩되어 브로드캐스트로서 또는 요구시에 송신될 미리-레코딩된 및 저장된 비디오, 오디오 또는 비디오 및 오디오 흐름들을 포함할 수도 있다. 또한, 본 발명의 기술들은 비-실시간 서비스들, 또는 실시간 서비스들과 비-실시간 서비스들의 조합에 적용될 수도 있다.
상술된 바와 같이, 인코더 모듈 (2600) 은, 데이터의 콘텐츠와 관계없이, 데이터의 흐름들에 대해 일정한 인식된 품질 메트릭을 유지하는 것을 시도할 수도 있다. 즉, 인코더 모듈 (2600) 은 타겟 품질 레벨로 데이터의 모든 흐름들을 출력하는 것을 시도할 수도 있다. 일정한 또는 유사한 인식된 품질 레벨을 유지하기 위해, 인코더 모듈 (2600) 은 상이한 콘텐츠를 갖는 데이터의 세그먼트들에 대한 상이한 비트 레이트들을 선택할 수도 있다. 이러한 목적으로, 콘텐츠 분류 모듈 (2604) 은 데이터의 세그먼트들의 콘텐츠에 기초하여 그 데이터의 세그먼트들을 분류한다. 콘텐츠 분류 모듈 (2604) 은, 그 데이터의 세그먼트의 복잡도 (예를 들어, 공간 복잡도 및/또는 시간 복잡도) 에 기초하여 그 데이터의 세그먼트를 분류할 수도 있다. 적절한 콘텐츠 분류 방법은, 발명의 명칭이 "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING" 으로 2006년 3월 10일자로 출원된, 공통-계류중이고 공동으로 양도된 미국 특허 출원 제 11/373,577호 [대리인 참조번호 제 050253호] 에 설명되어 있으며, 상기 출원의 전체 내용은 여기에 참조로서 포함된다. 예를 들어, 콘텐츠 분류 모듈 (2604) 은, (x-축 상에) "높은", "중간", 및 "낮은" 의 카테고리로 모션 정보를 분류하고, (y-축 상에) "높은", "중간", 및 "낮은" 의 카테고리로 텍스트 정보를 분류하며, 콘텐츠 분류는 교점에서 표시된다. 이러한 분류는, 예를 들어, 특정한 품질-레이트 커브와 관련될 수도 있다.
콘텐츠 분류 모듈 (2604) 은, 그 분류들에 기초하여 품질 및 레이트 정보를 데이터의 세그먼트들과 관련시킨다. 일 양태에서, 콘텐츠 분류 모듈 (2604) 은 데이터의 세그먼트들을 각각의 품질-레이트 커브들에 관련시킨다. 품질-레이트 커브들은 피크 신호 대 잡음 비 (PSNR) 와 같은 품질 메트릭을 비트 레이트의 함수로서 모델링한다. 품질-레이트 커브들은, 예를 들어,
Q=a*ln(R)+b
와 같은 형태의 로그 함수를 사용하여 모델링될 수도 있으며, 여기서, Q는 품질 메트릭이고, R은 비트 레이트이며, a 및 b는 다수의 샘플 데이터 포인트들을 사용하여 계산된 상수들이다. 인코더 모듈 (2600) 은 가변 콘텐츠를 갖는 데이터의 흐름들에 대한 품질-레이트 특성을 나타내는 복수의 품질-레이트 커브들을 유지할 수도 있다. 일 예로서, 인코더 모듈 (2600) 은 흐름들의 콘텐츠에서의 모션 및 텍스트의 가변 레벨들, 예를 들어, 모션 및 텍스트의 가변 레벨들과 관련된 8개의 상이한 클래스들에 대한 품질-레이트 커브들을 유지할 수도 있다. 일정한 PSNR 이 반드시 일정한 인식된 품질을 의미할 필요는 없다는 사실을 설명하기 위해, 인코더 모듈 (2600) 은 평균 평가점 (mean opinion score; MOS) 과 같은 PSNR 이외의 품질 메트릭을 사용하는 품질-레이트 커브들을 유지할 수도 있다. 다른 방법으로, 인코더 모듈 (2600) 은, 일정한 PSNR이 일정한 인식된 품질을 의미할 필요는 없다는 사실을 설명하기 위해, 품질-레이트 커브들을 조정할 수도 있다. 예를 들어, 인코더 모듈 (2600) 은, 발명의 명칭이 "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING" 로 2006년 3월 10일자로 출원되고, 전체 내용이 여기에 참조로서 포함된, 공동-계류중이고 공동으로 양도된 미국 특허 출원 제 11/373,577호 [대리인 참조번호 제 050253호] 에서 상세히 설명된 바와 같이, 오프셋에 의해 종래의 품질-레이트 커브들을 조정할 수도 있다.
다른 방법으로, 인코더 모듈 (2600) 은, 각각의 콘텐츠 커브와 관련된 타겟 품질 레벨을 오프셋에 의해 조정할 수도 있다. 높은 모션, 높은 텍스트 콘텐츠를 포함하는 데이터의 세그먼트들은, 예를 들어, 타겟 품질 레벨에 관해 약간 더 낮은 품질로 인코딩될 수도 있지만, 낮은 모션, 낮은 텍스트 콘텐츠를 포함하는 데이터의 세그먼트들은 타겟 품질 레벨에 관해 약간 더 높은 품질로 인코딩될 수도 있다. 각각의 콘텐츠 클래스가 전체 타겟 품질 레벨에 관해 자신만의 조정된 품질 레벨을 가지기 때문에, 인코더 모듈 (2600) 은 각각의 콘텐츠 클래스에 대한 품질 레벨을 정규화하여, 인코더 모듈 (2600) 에서 현재의 품질 레벨을 측정할 수도 있다. 인코더 모듈 (2600) 은,
Qnorm=Qr-Qk
와 같은 선형 수학식에 따라 이러한 정규화를 달성할 수도 있으며, 여기서, Qnorm 는 정규화된 품질 레벨이고, Qr 는 레코딩된 품질 레벨이며, Qk 는 커브 k에 대한 품질 레벨에서의 조정 오프셋이다. 품질 정규화가 선형 함수가 아니면, 랭크 결정이 품질 정규화 이후에 수행되어야 한다.
본 발명의 또 다른 양태에서, 콘텐츠 분류 모듈 (2604) 은, 세그먼트들과 관련된 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 세그먼트의 사이즈들을 나타내는 미리-계산된 품질-레이트 테이블들을 데이터의 세그먼트들과 관련시킬 수도 있다. 그렇게 함으로써, 콘텐츠 분류 모듈 (2604) 은, 품질-레이트 테이블들 중 특정한 하나에 대응하는 품질-레이트 커브를 데이터의 세그먼트와 관련시킬 수도 있다. 품질-레이트 커브들, 조정된 품질-레이트 커브들, 및 미리-계산된 품질-레이트 테이블들은 메모리 (미도시) 내에 보유될 수도 있으며, 필요한 경우 콘텐츠 분류 모듈 (2604) 에 의해 액세스될 수도 있다.
몇몇 경우, 인코더 모듈 (2600) 은, 미리-계산된 품질-레이트 정보를 저장하지 않거나, 품질-레이트 정보의 일부만을 미리-계산한다. 품질-레이트 정보 생성 모듈 (2606) 은, 예를 들어, 콘텐츠 분류에서의 사용을 위해 복수의 품질-레이트 커브들 또는 조정된 품질-레이트 커브들을 미리-계산할 수도 있다. 품질-레이트 커브 및 콘텐츠 분류 커브들을 생성하기 위한 일 예시적인 기술은, 발명의 명칭이 "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING" 로 2006년 3월 10일자 로 출원되고, 전체 내용이 참조로서 포함된, 공동-계류중이고 공동 양도된 미국 특허 출원 제 11/373,577호 [대리인 참조번호 제 050253호] 에 설명되어 있다.
그러나, 품질-레이트 정보 생성 모듈 (2606) 은, 그 분류에 기초하여, 세그먼트 기반으로 데이터의 세그먼트들 각각에 대한 품질-레이트 테이블을 생성할 수도 있다. 예를 들어, 품질-레이트 정보 생성 모듈 (2606) 은 랭크 및 사이즈 쌍을 리스트하는 테이블을 생성할 수도 있다. 랭크들은 특정 품질 레벨과 부합한다. 각각의 랭크는, 예를 들어, 품질 메트릭에서의 특정 드롭 (drop) 과 부합한다. 예시적인 품질 메트릭으로서 PSNR을 사용하여, 랭크들 각각은 PSNR에서의 0.05dB 드롭에 대응한다. 특히, 랭크 0은 베스트 에포트 품질 레벨에 대응할 수도 있지만, 랭크 1은 최고의 품질 레벨과 부합하고, 랭크 2는 이전의 품질 레벨보다 0.05dB 낮은 품질 레벨과 부합하는 등이다. 일 양태에서, 최고의 품질과 부합하는 랭크 (예를 들어, 랭크 1, 2 및 3) 는 타겟 품질 레벨보다 큰 품질 레벨에 사실상 대응할 수도 있다.
더 상세히 후술될 바와 같이, 품질-레이트 정보 생성 모듈 (2606) 은 품질-레이트 커브들 중 대응하는 하나를 사용하여 랭크를 결정할 수도 있다. 일 양태에서, 품질-레이트 정보 생성 모듈 (2606) 은 복수의 품질 레벨들 및 대응하는 랭크들을 계산하고, 대응하는 품질-레이트 커브를 사용하여 품질 레벨들 각각에서 데이터의 각각의 세그먼트의 사이즈를 결정할 수도 있다. 본 발명의 또 다른 양태에서, 품질-레이트 정보 생성 모듈 (2606) 은 인코더 모듈 (2600) 이 제공할 수 있는 데이터의 세그먼트들의 사이즈들을 계산할 수도 있으며, 그 후, 그 사이즈 들 각각에서 품질 레벨 및 대응하는 랭크를 계산할 수도 있다. 예를 들어, 인코더 모듈 (2600) 은 고정된 양, 예를 들어, 송신 채널의 최소 송신 유닛 사이즈 만큼 사이즈를 증분적으로 감소시킬 수도 있고,
Rank=CEILING((Ak-S)/xk)
와 같은 수학식을 사용하여 원하는 사이즈들 각각에 대응하는 랭크를 계산할 수도 있으며, 여기서, RANK는 원하는 사이즈에 대한 대응하는 랭크값이고, Ak는 k번째 품질-레이트 커브에 대한 조정된 타겟 품질 레벨이고, S는 원하는 사이즈에 대응하는 품질 레벨 (즉, 원하는 사이즈와 k번째 품질-레이트 커브의 교점에 대응하는 품질 레벨) 이고, xk는 랭크당 증분적인 품질 드롭이며, CEILING(x) 는 x 이상인 최소의 정수값을 출력하는 ceiling 함수이다.
인코더 모듈 (2600) 은, 멀티플렉스 모듈 (2406, 2506) 이 현재의 수퍼프레임의 사이즈를 모니터링하고 데이터의 어떤 세그먼트들이 리사이징될지를 결정하는 것을 돕기 위해, 데이터의 세그먼트들 각각과 관련된 적어도 품질 및 레이트 정보를 멀티플렉스 모듈 (2406, 2506) 에 전송한다. 인코더 모듈 (2600) 은, 예를 들어, 현재의 수퍼프레임에 포함될 데이터의 세그먼트들과 관련된 품질 및 레이트 정보를 전송할 수도 있다. 인코더 모듈 (2600) 은, 멀티플렉스 모듈 (2406, 2506) 로부터의 요청에 응답하여 적어도 품질 및 레이트 정보를 멀티플렉스 모듈 (2406, 2506) 에 전송할 수도 있다. 인코더 모듈 (2600) 은, 예를 들어, 데이 터의 세그먼트와 관련된 품질-레이트 커브 또는 품질-레이트 테이블을 전송할 수도 있다.
인코더 모듈 (2600) 과 관련된 데이터의 세그먼트들 중 임의의 세그먼트가 리사이징될 필요가 있다면, 멀티플렉스 모듈 (2406, 2506) 은 리사이즈 요청을 인코더 모듈 (2600) 로 전송한다. 그 리사이즈 요청에 응답하여, 리사이징 모듈 (2612) 은 멀티미디어 데이터의 세그먼트를 리사이징한다. 일 예에서, 리사이징 모듈 (2612) 은 데이터의 세그먼트의 사이즈를 증가시킬 수도 있고, 즉, 데이터의 세그먼트를 업사이징할 수도 있다. 또 다른 예에서, 리사이징 모듈 (2612) 은 데이터의 세그먼트의 사이즈를 감소시키고, 즉, 데이터의 세그먼트를 다운사이징한다. 데이터의 세그먼트의 다운사이징은, 데이터의 세그먼트의 품질 레벨이 타겟 품질 레벨 아래로 떨어지게 할 수도 있다. 그러나, 리사이징된 데이터의 세그먼트의 품질 레벨이 최소 품질 레벨 아래로 떨어지면, 리사이징 모듈 (2612) 은 단지 최소 품질 레벨 이상인 사이즈로 데이터의 세그먼트를 리사이징할 수도 있다. 멀티플렉스 모듈 (2406, 2506) 로부터의 리사이즈 요청은 데이터의 세그먼트에 대한 사이즈, 예를 들어, 최대 사이즈를 포함할 수도 있으며, 리사이징 모듈 (2612) 은 리-인코딩된 요청에서 특정된 사이즈를 달성하기 위해 하나 이상의 인코딩 변수들을 조정할 수도 있다. 리사이징 모듈 (2612) 은, 예를 들어, 데이터의 세그먼트를 리사이징하기 위해 조정된 비트 레이트로 그 데이터의 세그먼트를 리-인코딩할 수도 있고, 예를 들어, 리사이즈 요청에 특정된 최대 사이즈 이하로 데이터의 세그먼트를 리사이징하기 위해 감소된 비트 레이트로 그 데이터의 세그먼 트를 리-인코딩할 수도 있다. 또 다른 예로서, 리사이징 모듈 (2612) 은 조정된 양자화 파라미터를 사용하여 데이터의 세그먼트를 리-인코딩할 수도 있다.
인코더 모듈 (2600) 은, 현재의 수퍼프레임내에 포함될 데이터의 인코딩된 세그먼트들을 전송하기 위해 멀티플렉스 모듈 (2406, 2506) 로부터 요청을 수신한다. 그 멀티플렉스 모듈 (2406, 2506) 로부터의 요청에 응답하여, 인코더 모듈 (2600) 은 데이터의 인코딩된 세그먼트들을 멀티플렉스 모듈 (2406, 2506) 로 전송한다. 상술된 바와 같이, 인코더 모듈 (2600) 은, 구성된 타겟 품질로 리사이징하기 위해 선택되지 않았던 데이터의 세그먼트들을 전송한다. 그러나, 인코더 모듈 (2600) 은 감소된 품질로 리사이징하기 위해 선택되었던 데이터의 세그먼트들을 전송한다.
인코더 모듈 (2600) 의 컴포넌트들은 여기에 설명된 기술들을 구현하는데 적용가능한 컴포넌트들의 예시이다. 그러나, 원한다면, 인코더 모듈 (2600) 은 많은 다른 컴포넌트들을 포함할 수도 있다. 인코더 모듈 (2600) 의 컴포넌트들은, 하나 이상의 프로세서, 디지털 신호 프로세서, ASIC, FPGA, 별개의 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 또한, 인코더 모듈 (2600) 은, MPEG-4, ITU-T H.263, ITU-T H.264 와 같은 멀티미디어 코딩 표준 또는 또 다른 코딩 표준에 부합할 수도 있다. 상이한 특성들의 모듈들로서의 서술은 인코더 모듈 (2600) 의 상이한 기능적 양태들을 강조하도록 의도되며, 그러한 모듈들이 별개의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 암시할 필요는 없다. 대신, 하나 이상의 모듈들과 관 련된 기능은 공통 또는 별개의 하드웨어 또는 소프트웨어 컴포넌트 내에 통합될 수도 있다. 따라서, 본 발명은 인코더 모듈 (2600) 의 예로 제한되어야 하지는 않는다.
도 27은 본 발명의 기술들에 따라 비트 할당을 관리하는 예시적인 멀티플렉스 모듈 (2700) 을 도시한 블록도이다. 특히, 멀티플렉스 모듈 (2700) 은 인코더 모듈들 (2404; 도 24) 과 같은 각각의 인코더 모듈들로부터 데이터의 복수의 세그먼트들을 수신하며, 그 데이터의 세그먼트들을 전송하는데 필요한 공중-링크 리소스가 이용가능한 공중-링크 리소스를 초과하지 않는 것을 보장하기 위해, 그 데이터의 세그먼트들 중 하나 이상의 리사이징을 요청한다. 멀티플렉스 모듈 (2700) 은, 예를 들어, 도 24의 멀티플렉스 모듈 (2406) 또는 도 25의 멀티플렉스 모듈 (2506) 을 나타낼 수도 있다. 멀티플렉스 모듈 (2700) 은, 인코더 모듈 인터페이스 (2702), 데이터 수집 모듈 (2706), 및 비트 관리 모듈 (2704) 을 포함한다. 비트 관리 모듈 (2704) 은, 이용가능한 대역폭을 할당하는 할당 모듈 (2708), 및 대역폭 할당이 성공적이지 않은 경우 데이터의 어떤 세그먼트들이 리사이징될지를 결정하는 선택 모듈 (2710) 을 더 포함한다.
상술된 바와 같이, 멀티플렉스 모듈 (2700) 은 인코더 모듈 인터페이스 (2702) 를 통해 인코더 모듈들 (2404) 로부터 데이터의 인코딩된 세그먼트들을 수신하고, 그 데이터의 인코딩된 세그먼트들을 수퍼프레임으로 결합하며, 도 1의 이동 디바이스 (102) 와 같은 하나 이상의 디코딩 디바이스들로 그 수퍼프레임을 송신한다. 본 발명의 기술들이 데이터의 1-초 수퍼프레임들의 콘텍스트에서 설명 되었지만, 또한, 기술들은, 시간의 상이한 주기 동안 수신된 데이터의 세그먼트들에 대한 또는 데이터의 개별 프레임들에 대한 것과 같이 데이터의 다른 세그먼트들을 송신하기 위해 사용될 수도 있다.
비트 관리 모듈 (2704) 은, 수퍼프레임들을 전송하는데 필요한 송신 채널 리소스들 (예를 들어, 공중-링크 리소스들) 이 송신 채널 (2402) 상의 이용가능한 송신 채널 리소스들을 초과하지 않는 것을 보장하기 위해, 생성된 수퍼프레임들 각각의 사이즈를 모니터링한다. 비트 관리 모듈 (2704) 이 수퍼프레임들의 사이즈들을 모니터링하는 것을 돕기 위해, 데이터 수집 모듈 (2706) 은 인코더 모듈들 (2404) 각각으로부터 품질 및 레이트 정보를 수집한다. 데이터 수집 모듈 (2706) 은, 예를 들어, 인코더 모듈들 (2404) 이 현재의 수퍼프레임에 포함하길 원하는 데이터의 각각의 세그먼트와 관련된, 품질 및 레이트 정보와 같은 전달 요건들을 요청하는 인코더 모듈들 (2404) 각각에 요청을 전송할 수도 있다. 품질 및 레이트 정보는 비트 레이트 또는 데이터 사이즈의 함수로서 데이터의 세그먼트에 대한 적어도 품질 메트릭을 나타낸다. 예를 들어, 데이터 수집 모듈 (2706) 은, 데이터의 각각의 세그먼트들에 대한 비트 레이트의 함수로서 PSNR과 같은 품질 메트릭을 모델링하는 세그먼트들에 대응하는 품질-레이트 커브들을 수신할 수도 있다. 또 다른 예에서, 데이터 수집 모듈 (2706) 은 데이터의 세그먼트들과 관련된 품질-레이트 테이블들을 수신한다. 상술된 바와 같이, 품질-레이트 테이블들은 다양한 랭크들 (또는 품질 레벨들) 및 상이한 랭크들 각각과 관련된 사이즈들을 나타낼 수도 있다. 따라서, 품질 및 레이트 정보는, 다른 것들 중에서, 인 코더 모듈들 (2404) 이 현재의 수퍼프레임에서 송신하길 원하는 데이터의 세그먼트들에 대한 상이한 품질 레벨들에서의 데이터의 세그먼트들의 사이즈를 설명한다.
비트 관리 모듈 (2704) 은, 데이터의 복수의 세그먼트들이 송신 채널 (2402) 의 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해 적어도 품질 및 레이트 정보를 분석한다. 비트 관리 모듈 (2704) 은 품질 및 레이트 정보 이외에 다른 전달 요건들을 분석할 수도 있다. 예를 들어, 비트 관리 모듈 (2704) 은 ORT 서비스들과 관련된 레이턴시 요건들 및 우선순위를 분석할 수도 있다. 비트 관리 모듈 (2704) 은, 데이터의 세그먼트들 사이에 이용가능한 대역폭을 할당하는 것을 시도하는 할당 모듈 (2708) 을 포함할 수도 있다. 할당 모듈 (2708) 은, 예를 들어, 상술된 할당 알고리즘들 중 하나를 사용하여 이용가능한 대역폭을 할당하는 것을 시도할 수도 있다. 이용가능한 대역폭을 할당하는 그 모듈의 제 1 시도에서, 할당 모듈 (2708) 은, 데이터의 세그먼트들과 관련된 각각의 품질-레이트 커브들과 타겟 품질 레벨 사이의 교점에 대응하는 사이즈들을 사용하여 대역폭을 할당하는 것을 시도할 수도 있다. 또 다른 예로서, 멀티플렉스 모듈 (2406) 은, 데이터의 세그먼트들과 관련된 품질-레이트 테이블에서 특정된 최고의 품질 레벨에 대응하는 사이즈들을 사용하여, 그 데이터의 세그먼트들이 현재의 수퍼프레임내에 피팅하는지 여부에 관한 초기 판정을 수행할 수도 있다. 할당 모듈 (2708) 이 데이터의 세그먼트들 사이에 대역폭을 할당하는 것을 성공한다면, 예를 들어, 충분한 송신 채널 리소스들이 존재하고 데이터의 세그먼트들을 전송하는데 여분의 송신 채널 리소스들이 존재하지 않으면, 리사이징은 필요하지 않다.
그러나, 타겟 품질 레벨 또는 최상의 품질 레벨과 관련된 사이즈 정보를 사용하여 할당 모듈 (2708) 이 이용가능한 대역폭을 성공적으로 할당하는 것을 실패하면, 비트 관리 모듈 (2704) 은 데이터의 세그먼트들 중 리사이징될 하나 이상을 선택한다. 예를 들어, 비트 관리 모듈 (2704) 은, 불충분한 송신 채널 리소스들이 존재할 경우 데이터의 세그먼트들 중 리사이징될 하나 이상을 선택할 수도 있다. 또 다른 예로서, 비트 관리 모듈 (2704) 은, 여분의 송신 채널 리소스들의 양이 임계값을 초과할 경우 데이터의 세그먼트들 중 리사이징될 하나 이상을 선택할 수도 있다. 특히, 비트 관리 모듈 (2704) 은, 리사이징을 위해 데이터의 하나 이상의 세그먼트들을 선택하기 위하여 인코더 모듈들 (2404) 로부터 수신된 적어도 품질 및 레이트 정보를 분석하는 선택 모듈 (2710) 을 포함한다. 선택 모듈 (2710) 이 다운사이징을 위해 데이터의 하나 이상의 세그먼트들을 선택하는 경우, 선택 모듈 (2710) 은, 분석에 기초하여 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택할 수도 있다. 데이터의 세그먼트의 품질 (Qv) 은 데이터의 세그먼트에 할당된 비트 레이트 (r) 의 함수이고,
Qv=kln(r)
과 같은 품질 함수로 주어지며, 여기서, k는 멀티미디어 세그먼트에 특정된 상수이고 인코더 모듈들 (2404) 에 의해 제공된다.
선택 모듈 (2710) 은,
Figure 112008061907533-pct00001
Figure 112008061907533-pct00002
와 같이 나타낸 최적화 문제에 따라 데이터의 세그먼트들 모두의 전체 품질을 최대화하는 것을 시도하며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 대역폭이고,
Figure 112008061907533-pct00003
는 데이터의 i번째 세그먼트와 관련된 품질이고,
Figure 112008061907533-pct00004
는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위이다.
선택 모듈 (2710) 은, 존재한다면, 데이터의 세그먼트와 관련된 결과적인 품질들이 그들의 할당된 우선순위들에 비례하는 방식으로, 그 비트 레이트들 및 그에 따른 사이즈들을 데이터의 세그먼트들에 할당한다. 상기 최적화 문제는, 라그랑주 승수법 (Lagrange multiplier method) 및 쿤 터커 조건 (Kuhn Tucker Conditions) 을 사용함으로써 풀 수 있다. 최적화 문제를 표준 형식 (최대화 및 ≤제한) 으로 변환하여 다음을 획득한다.
Figure 112008061907533-pct00005
Figure 112008061907533-pct00006
라그랑주 함수는,
Figure 112008061907533-pct00007
와 같이 정의되며, 여기서, δ, (i=1, ... (n-1) 에 대해) λi 및 (i=1, ... n 에 대해) μi 는 라그랑주 승수이다.
다음은 쿤 터커 조건의 세트이다.
Figure 112008061907533-pct00008
Figure 112008061907533-pct00009
Figure 112008061907533-pct00010
Figure 112008061907533-pct00011
Figure 112008061907533-pct00012
Figure 112008061907533-pct00013
실시간 비디오 흐름들로의 비트 레이트들의 바람직한 할당은 수학식들 (10 내지 15) 을 만족해야 한다. 선택 모듈 (2710) 은, 표준 비선형 프로그래밍 기술들 중 임의의 기술을 사용하여 이들 수학식들의 세트를 풀 수도 있다.
아래는, 데이터의 2개의 세그먼트들 (즉, n=2) 에 대한 레이트들, 및 다음의 파라미터 값들의 스케줄링의 예이다.
Figure 112008061907533-pct00014
상기 파라미터들에 기초하여, 선택 모듈 (2710) 은 4800kbps 의 비트 레이트를 제 1 멀티미디어 세그먼트에 할당하고, 200kbps 의 비트 레이트를 제 2 멀티미디어 세그먼트에 할당할 것이다. 데이터의 1-초 세그먼트들의 경우, 데이터의 제 1 세그먼트의 최대 사이즈는 4800 킬로비트이고, 데이터의 제 2 세그먼트의 최대 사이즈는 200 킬로비트이다. 선택 모듈 (2710) 은, 품질 및 레이트 정보에서 나타낸 데이터의 세그먼트들의 추정된 사이즈들을 계산된 최대 사이즈들과 비교하고, 데이터의 세그먼트들 중 관련 최대 사이즈를 초과하는 임의의 세그먼트를 리사이징될 세그먼트로서 선택한다.
또 다른 예에서, 멀티플렉스 모듈 (2700) 은, 인코더 모듈들 (2404) 로부터 수신된 품질-레이트 테이블들을 사용하여 데이터의 리사이징될 하나 이상의 세그먼트들을 선택할 수도 있다. 상술된 바와 같이, 초기 대역폭 할당 동안, 할당 모 듈 (2708) 은, 최고의 품질 레벨과 관련된 랭킹에 대응하는 사이즈 정보를 사용하여 대역폭을 할당하는 것을 시도한다. 선택된 랭킹의 사이즈에서의 데이터의 세그먼트들로의 대역폭의 할당이 성공적이지 않은 경우, 선택 모듈 (2710) 은 다음의 최고의 전체 품질을 갖는 데이터의 세그먼트들에 대한 랭킹들의 조합을 선택한다. 아래의 테이블 1은 흐름 1 내지 흐름 4와 관련된 데이터의 4개의 세그먼트들에 대응하는 품질-레이트 테이블의 일부를 나타낸다. 특히, 테이블 1은, 흐름 1 내지 흐름 4와 관련된 데이터의 4개의 세그먼트들에 대해, 현재의 랭크값, 현재의 랭크에서의 데이터의 세그먼트의 사이즈, 다음의 랭크값, 및 다음의 랭크에서의 데이터의 세그먼트의 사이즈를 나타낸다. 테이블 1에 대한 참조는, 선택 모듈 (2710) 의 선택 프로세스의 예시를 돕는데 사용될 것이다.
테이블 1
Figure 112008061907533-pct00015
선택 모듈 (2710) 은, 최고의 품질 레벨과 관련된 다음의 랭킹을 갖는 데이터의 세그먼트들 중 하나 이상을 식별하기 위해 품질-레이트 테이블을 분석한다. 테이블 1에 나타낸 경우에서, 최소의 값을 갖는 다음의 랭킹은 최고의 품질 레벨에 대응한다. 테이블 1을 참조하면, 선택 모듈 (2710) 은, 최소의 다음 랭킹을 갖는 흐름 1 및 흐름 3과 관련된 세그먼트들을 식별한다. 테이블 1에 나타낸 바와 같이, 흐름 1 및 흐름 3과 관련된 데이터 세그먼트들 양자는 다음의 랭킹값 5를 갖지만, 흐름 2 및 흐름 4와 관련된 데이터의 세그먼트들은 각각 다음의 랭킹값 6 및 8을 가지며, 이는 최악의 품질 레벨에 대응한다. 이러한 방식으로, 선택 모듈 (2710) 은, 다음의 최상 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 품질-레이트 테이블을 분석한다.
선택 모듈 (2710) 은 데이터의 식별된 세그먼트들 중 리사이징할 적어도 하나를 선택한다. 데이터의 식별된 세그먼트들 중에서, 선택 모듈 (2710) 은, 현재의 랭크와 관련된 가장 큰 사이즈를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다. 테이블 1을 참조하면, 흐름 3과 관련된 데이터의 세그먼트의 현재의 사이즈가 40,000 바이트와는 대조적으로 45,000 바이트이기 때문에, 선택 모듈 (2710) 은 그 세그먼트를 선택한다. 다른 방법으로, 선택 모듈 (2710) 은, 현재의 랭크에서의 세그먼트의 사이즈와 다음의 랭크에서의 세그먼트의 사이즈 사이의 가장 큰 차이를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다. 테이블 1을 다시 참조하면, 선택 모듈 (2710) 은, 흐름 3과 관련된 세그먼트에 대해 5,000 바이트의 차이인 것과 대조적으로 10,000 바이트의 차이를 갖는 흐름 1과 관련된 데이터의 세그먼트를 선택한다.
선택 모듈 (2710) 이 데이터의 세그먼트들 중 하나 이상을 선택한 이후, 할당 모듈 (2708) 은, 데이터의 선택된 세그먼트들에 대한 감소된 랭킹 또는 품질과 관련된 사이즈를 사용하여 이용가능한 대역폭을 할당하는 것을 시도한다. 할당 알고리즘이 여전히 성공적이지 않으면, 선택 모듈 (2710) 은 데이터의 리사이징될 부가적인 세그먼트들 또는 훨씬 더 감소된 품질로 리사이징될 동일한 세그먼트들을 선택한다.
할당 모듈 (2708) 이 이용가능한 대역폭을 데이터의 세그먼트들 사이에 성공적으로 할당한 이후, 비트 관리 모듈 (2704) 은, 데이터의 모든 세그먼트들이 송신 채널의 이용가능한 대역폭 내에 피팅한다는 것을 보장하기 위해, 데이터의 선택된 세그먼트들 각각의 리사이징을 요청한다. 비트 관리 모듈 (2704) 은, 예를 들어, 멀티미디어 데이터의 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 에 리사이즈 요청들을 전송할 수도 있다. 비트 관리 모듈 (2704) 은 데이터의 세그먼트의 수용가능한 최대 사이즈를 특정할 수도 있다. 상세히 상술된 바와 같이, 인코더 모듈들 (2404) 은 그 리사이즈 요청들에 포함된 정보에 기초하여 데이터를 리-인코딩한다.
할당 모듈 (2708) 및 선택 모듈 (2710) 은 데이터의 세그먼트들에 대한 비트 할당을 수행하고, 유사한 방식으로 데이터의 업사이징될 하나 이상의 세그먼트들을 선택할 수도 있다. 예를 들어, 데이터의 선택된 세그먼트들과 관련된 품질-레이트 테이블을 사용하여, 할당 모듈은 먼저 타겟 품질 레벨과 관련된 랭킹에 대응하는 사이즈 정보를 사용하여 대역폭을 할당하는 것을 시도할 수도 있다. 타겟 품질 레벨에 대응하는 사이즈에서의 데이터의 세그먼트들로의 대역폭의 할당이 성공적이지 않은 경우, 즉, 여분의 대역폭의 양이 임계값을 초과하는 경우, 선택 모듈 (2710) 은 더 양호한 전체 품질을 갖는 데이터의 세그먼트들에 대한 랭킹들의 신규한 조합을 선택한다.
특히, 선택 모듈 (2710) 은, 다음의 최고의 품질 레벨과 관련된 다음의 최고의 랭킹을 갖는 데이터의 세그먼트들 중 하나 이상을 식별하기 위해 품질-레이트 테이블을 분석할 수도 있다. 선택 모듈 (2710) 은 데이터의 식별된 세그먼트들 중 업사이징할 적어도 하나를 선택한다. 데이터의 식별된 세그먼트들 중에서, 선택 모듈 (2710) 은 현재의 랭크에 대응하는 최소 사이즈를 갖는 데이터의 식별된 세그먼트를 선택한다. 다른 방법으로, 선택 모듈 (2710) 은, 현재의 랭크에서의 세그먼트의 사이즈와 다음의 최고의 랭크에서의 세그먼트의 사이즈 사이에서 최소의 차이를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다.
어느 경우에서든, 데이터 수집 모듈 (2706) 은, 그 모듈이 데이터의 세그먼트들을 수퍼프레임으로 결합할 준비가 된 경우, 데이터 요청을 전송한다. 데이터 수집 모듈 (2706) 은 커맨드들에 응답하여 데이터의 인코딩된 세그먼트들을 수신한다. 멀티플렉스 모듈 (2700) 은 멀티미디어 데이터의 인코딩된 세그먼트들을 결합함으로써 수퍼프레임을 어셈블리한다. 그 후, 멀티플렉스 모듈 (2700) 은, 송신을 위해 송신기 (2408; 도 24) 에 그 수퍼프레임을 제공하거나, 송신기 (2408) 가 그 수퍼프레임을 요청할 때까지 그 수퍼프레임을 버퍼링할 수도 있다.
멀티미디어 멀티플렉스 모듈 (2700) 의 컴포넌트들은 여기에 설명된 기술들을 구현하는데 적용가능한 컴포넌트들의 예시이다. 그러나, 원한다면, 멀티플렉스 모듈 (2700) 은 많은 다른 컴포넌트들을 포함할 수도 있다. 멀티플렉스 모듈 (2700) 의 컴포넌트들은, 하나 이상의 프로세서, 디지털 신호 프로세서, ASIC, FPGA, 별개의 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 또한, 멀티플렉스 모듈 (2700) 은, MPEG-4, ITU-T H.263, ITU-T H.264 와 같은 멀티미디어 코딩 표준 또는 또 다른 코딩 표준에 부합할 수도 있다. 상이한 특성들의 모듈들로서의 서술은 멀티플렉스 모듈 (2700) 의 상이한 기능적 양태들을 강조하도록 의도되며, 그러한 모듈들이 별개의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 암시할 필요는 없다. 대신, 하나 이상의 모듈들과 관련된 기능은 공통 또는 별개의 하드웨어 또는 소프트웨어 컴포넌트 내에 통합될 수도 있다. 따라서, 본 발명은 멀티플렉스 모듈 (2700) 의 예로 제한되어야 하지는 않는다.
도 28은, 본 발명의 기술들에 따라 멀티미디어 데이터를 인코딩하는, 도 26의 인코더 모듈 (2600) 과 같은 인코더 모듈의 예시적인 동작을 도시한 흐름도이다. 인코더 모듈 (2600) 은 소스로부터 멀티미디어 데이터의 하나 이상의 흐름들을 수신한다 (2800). 인코더 모듈 (2600) 은, 예를 들어, 인코더 모듈들 (2404) 에 커플링된 이미지 캡쳐 디바이스 또는 메모리로부터 멀티미디어 데이터의 흐름들을 수신할 수도 있다. 멀티미디어 데이터의 흐름들은, 생방송의 실-시간 콘텐츠, 비-실시간 콘텐츠, 또는 실-시간 콘텐츠와 비-실시간 콘텐츠의 조합을 포함할 수도 있다.
인코더 모듈 (2600) 은 데이터의 세그먼트들의 콘텐츠에 기초하여 그 데이터의 세그먼트들을 분류한다 (2802). 콘텐츠 분류 모듈 (2604; 도 26) 은, 예를 들어, 세그먼트의 데이터의 복잡도 (예를 들어, 공간 복잡도 및/또는 시간 복잡도) 에 기초하여 데이터의 수신된 세그먼트들을 분류할 수도 있다.
콘텐츠 분류 모듈 (2604) 은, 그 분류에 기초하여 품질 및 레이트 정보를 데이터의 세그먼트들과 관련시킨다 (2804). 일 예로서, 콘텐츠 분류 모듈 (2604) 은 데이터의 세그먼트들을 복수의 품질-레이트 커브들 중 하나와 관련시킬 수도 있다. 상술된 바와 같이, 품질-레이트 커브들은 미리-계산될 수도 있고, 메모리에 저장될 수도 있다. 또 다른 예로서, 콘텐츠 분류 모듈 (2604) 은 복수의 미리-계산된 품질-레이트 테이블들 중 하나를 데이터의 세그먼트들과 관련시킬 수도 있다.
인코더 모듈 (2600) 은 데이터의 세그먼트들에 대한 부가적인 품질 및 레이트 정보를 생성할 수도 있다 (2806). 예를 들어, 품질 및 레이트 정보 생성 모듈 (2606) 은 데이터의 세그먼트들 각각에 대한 품질-레이트 테이블을 생성할 수도 있다. 상술한 바와 같이, 품질-레이트 테이블은, 데이터의 세그먼트들과 관련된 하나 이상의 품질 레벨들 및 그 품질 레벨들 각각에서의 데이터의 세그먼트들의 사이즈들을 나타낸다. 일 예로서, 품질 및 레이트 정보 생성 모듈 (2606) 은, 데이터의 세그먼트들과 관련된 품질-레이트 커브들을 사용하여 랭크 및 사이즈 쌍을 리스트하는 테이블을 생성할 수도 있다.
인코더 모듈 (2600) 은 데이터의 세그먼트와 관련된 품질 및 레이트 정보를 멀티플렉스 모듈로 전송한다 (2808). 인코더 모듈 (2600) 은, 예를 들어, 멀티플렉스 모듈로부터의 요청에 응답하여 데이터의 세그먼트와 관련된 품질 및 레이트 정보를 전송할 수도 있다. 인코더 모듈 (2600) 은, 예를 들어, 데이터의 세그 먼트와 관련된 품질-레이트 커브 및/또는 품질-레이트 테이블을 전송할 수도 있다. 상세히 상술된 바와 같이, 멀티플렉스 모듈은 품질 및 레이트 정보를 사용하여, 현재의 수퍼프레임의 사이즈를 모니터링하고, 그 멀티플렉스 모듈이 데이터의 어떤 세그먼트들이 리사이징될 필요가 있는지를 결정하는 것을 돕는다.
인코더 모듈 (2600) 과 관련된 데이터의 세그먼트들 중 임의의 세그먼트가 리사이징될 필요가 있다면, 인코더 모듈 (2600) 은 멀티플렉스 모듈로부터 리사이즈 요청을 수신한다 (2810). 멀티플렉스 모듈로부터의 리사이즈 요청은 데이터의 세그먼트에 대한 사이즈, 예를 들어, 비트 단위의 최대 사이즈를 포함할 수도 있다. 리사이즈 요청에 응답하여, 리사이징 모듈 (2612) 은 데이터의 인코딩된 세그먼트를 리사이징하여, 리사이즈 요청에서 특정된 사이즈 제한을 충족시킨다 (2812). 본 발명의 일 양태에서, 리사이징 모듈 (2612) 은 하나 이상의 인코딩 변수들을 조정하여 데이터의 세그먼트의 사이즈를 감소시킨다. 리사이징 모듈 (2612) 은, 예를 들어, 감소된 비트 레이트에서 또는 조정된, 예를 들어, 더 높은 양자화 파라미터를 사용하여 데이터의 세그먼트를 리-인코딩할 수도 있다. 다른 방법으로 또는 추가적으로, 리사이징 모듈 (2612) 은 인코딩될 정보의 양을 조정할 수도 있다. 예를 들어, 리사이징 모듈 (2612) 은 모션 정보를 인코딩하기 위해 사용된 비트들의 수를 감소시켜, 데이터의 세그먼트의 사이즈를 감소시킬 수도 있다. 본 발명의 또 다른 양태에서, 리사이징 모듈 (2612) 은 데이터의 세그먼트의 사이즈를 증가시키기 위해 하나 이상의 인코딩 변수들을 조정할 수도 있다. 리사이징 모듈 (2612) 은, 예를 들어, 증가된 비트 레이트에서 또는 더 낮 은 양자화 파라미터를 사용하여 데이터의 세그먼트를 리-인코딩할 수도 있다.
인코더 모듈 (2600) 은, 현재의 수퍼프레임내에 포함될 데이터의 세그먼트들의 인코딩된 콘텐츠를 전송하기 위해 멀티플렉스 모듈로부터 요청을 수신한다 (2814). 멀티플렉스 모듈로부터의 요청에 응답하여, 인코더 모듈 (2600) 은 데이터의 세그먼트의 인코딩된 콘텐츠를 멀티플렉스 모듈로 전송한다 (2816). 상술된 바와 같이, 인코더 모듈 (2600) 은, 원래의 사이즈로 리사이징하기 위해 선택되지 않았던 데이터의 세그먼트들을 전송하고, 감소된 사이즈로 리사이징하기 위해 선택되었던 데이터의 세그먼트들을 전송한다.
도 29는 본 발명의 기술들에 따라 비트 할당을 관리하는 멀티플렉스 모듈 (2700) 의 예시적인 동작의 흐름도이다. 데이터 수집 모듈 (2706) 은 인코더 모듈들 (2404) 각각으로부터 적어도 품질 및 레이트 정보를 요청한다 (2900). 데이터 수집 모듈 (2706) 은 품질 및 레이트 정보 이외에 인코더 모듈들 (2404) 로부터 다른 전달 요건 정보를 요청할 수도 있다. 또한, 데이터 수집 모듈 (2706) 은, 멀티플렉스 모듈 (2700) 이 현재의 수퍼프레임내에 포함할 ORT 서비스들과 관련된 하나 이상의 전달 요건들을 요청할 수도 있다. 데이터 수집 모듈 (2706) 은, 인코더 모듈들 (2404) 각각이 현재의 수퍼프레임에 포함하길 원하는 데이터의 세그먼트들과 관련된 적어도 품질 및 레이트 정보를 수신한다 (2902). 상술된 바와 같이, 품질 및 레이트 정보는, 다른 것들 중에서, 데이터의 세그먼트들에 대한 품질 메트릭을 비트 레이트 또는 데이터 사이즈의 함수로서 나타낸다. 품질 및 레이트 정보는, 예를 들어, 데이터의 세그먼트들과 관련된 품질-레이트 커브, 또는 데이터의 세그먼트들과 관련된 품질-레이트 테이블을 포함할 수도 있다. 상술된 바와 같이, 또한, 데이터 수집 모듈 (2706) 은, 데이터의 세그먼트들에 대한 품질 및 레이트 정보 이외의 전달 요건들 뿐만 아니라, ORT 서비스들과 관련된 하나 이상의 전달 요건들을 수신할 수도 있다.
할당 모듈 (2708) 은 데이터의 세그먼트들 사이에 이용가능한 대역폭을 할당하는 것을 시도한다 (2904). 할당 모듈 (2708) 은, 예를 들어, 상술된 할당 알고리즘들 중 하나를 사용하여 이용가능한 대역폭을 할당하는 것을 시도할 수도 있다. 이용가능한 대역폭을 할당하는 제 1 시도에서, 할당 모듈 (2708) 은, 데이터의 세그먼트들의 최상의 원하는 품질과 관련된 사이즈들을 사용하여 대역폭을 할당하는 것을 시도할 수도 있다. 예를 들어, 품질 레이트 정보가 품질-레이트 테이블들을 포함하면, 할당 모듈 (2708) 은 랭크값 1과 관련된 사이즈들을 사용하여 대역폭을 할당하는 것을 시도한다. 품질 및 레이트 정보가 품질-레이트 커브들을 포함하면, 할당 모듈 (2708) 은, 품질-레이트 커브들 각각과 타겟 품질 레벨의 교점에 대응하는 사이즈들을 사용하여 대역폭을 할당하는 것을 시도할 수도 있다. 또한, 상세히 상술된 바와 같이, 할당 모듈 (2708) 은 데이터의 세그먼트들과 ORT 서비스들 사이에 이용가능한 대역폭을 할당할 수도 있다.
할당 모듈 (2708) 은, 이용가능한 대역폭의 할당이 성공적인지의 여부를 판정한다 (2906). 할당 모듈 (2708) 이 대역폭을 성공적으로 할당하지 못하면, 선택 모듈 (2710) 은, 데이터의 세그먼트들과 관련된 품질 및 레이트 정보에 기초하여 데이터의 세그먼트들 중 리사이징될 적어도 하나를 선택한다 (2908). 일 양태에서, 선택 모듈 (2710) 은, 서비스를 송신하는데 충분한 대역폭이 존재하지 않는 경우 데이터의 다운사이징될 하나 이상의 세그먼트들을 선택할 수도 있다. 특히, 선택 모듈 (2710) 은, 대응하는 감소된 사이즈에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택한다. 예를 들어, 선택 모듈 (2710) 은, 다음의 최상의 품질 레벨에 대응하는 다음의 랭크들을 갖는 데이터의 하나 이상의 세그먼트들을 식별할 수도 있다. 데이터의 2개 이상의 세그먼트들이 동일한 다음의 랭크를 가지면, 선택 모듈 (2710) 은 현재의 랭크와 관련된 가장 큰 사이즈를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다. 다른 방법으로, 선택 모듈 (2710) 은, 현재의 랭크에서의 세그먼트의 사이즈와 다음의 랭크에서의 세그먼트의 사이즈 사이의 가장 큰 차이를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다. 또 다른 양태에서, 선택 모듈 (2710) 은, 여분의 이용가능한 대역폭의 양이 임계값을 초과할 경우 데이터의 업사이징될 하나 이상의 세그먼트들을 선택할 수도 있다. 몇몇의 경우, 선택 모듈 (2710) 은 리사이징될 하나 이상의 ORT 서비스들을 또한 선택할 수도 있다.
할당 모듈 (2708) 은, 데이터의 선택된 세그먼트들의 감소된 사이즈들을 사용하여 이용가능한 대역폭을 할당하는 것을 재-시도한다. 할당 알고리즘이 여전히 성공적이지 않으면, 선택 모듈 (2710) 은, 데이터의 리사이징될 부가적인 세그먼트들, 또는 훨씬 더 감소된 품질로 리사이징될 동일한 세그먼트들을 선택한다.
할당 모듈 (2708) 이 데이터의 세그먼트들 사이에 이용가능한 대역폭을 성공적으로 할당한 이후, 멀티플렉스 모듈 (2700) 은 데이터의 선택된 세그먼트들 각각 의 리사이징을 요청하여, 복수의 세그먼트들에 대한 이용가능한 대역폭을 달성한다 (2910). 멀티플렉스 모듈 (2700) 은, 예를 들어, 데이터의 선택된 세그먼트들과 관련된 인코더 모듈들 (2404) 각각에 리사이즈 요청들을 전송할 수도 있다. 그 리사이즈 요청들은 데이터의 세그먼트의 최대 수용가능한 사이즈 또는 감소된 비트 레이트를 특정할 수도 있다. 상세히 상술된 바와 같이, 인코더 모듈들 (2404) 은 리사이즈 요청에 포함된 정보에 기초하여 데이터를 리사이징한다.
데이터 수집 모듈 (2706) 은, 데이터의 세그먼트들의 인코딩된 콘텐츠의 전달을 인코더 모듈들 (2404) 에게 요청한다 (2912). 데이터 수집 모듈 (2706) 은, 예를 들어, 수퍼프레임으로 데이터를 결합할 준비가 되어 있는 경우 인코더 모듈들 (2404) 로 데이터 요청들을 송신할 수도 있다. 데이터 수집 모듈 (2706) 은 커맨드들에 응답하여 데이터의 인코딩된 세그먼트들을 수신한다 (2914). 멀티플렉스 모듈 (2700) 은 멀티미디어 데이터의 인코딩된 세그먼트들을 결합함으로써 수퍼프레임을 어셈블리한다 (2916). 그 후, 멀티플렉스 모듈 (2700) 은 송신을 위해 그 수퍼프레임을 송신기 (2408) 로 전송할 수도 있다 (2918). 몇몇 경우에서, 멀티플렉스 모듈 (2700) 은 송신기 (2408) 가 수퍼프레임을 요청할 때까지 그 수퍼프레임을 버퍼링할 수도 있다.
도 30은, 데이터의 세그먼트들과 관련된 품질-레이트 테이블을 사용하여 데이터의 리사이징될 세그먼트들을 선택하는 멀티플렉스 모듈 (2700) 의 예시적인 동작을 도시한 흐름도이다. 먼저, 선택 모듈 (2710) 은 임의의 다른 가능한 랭크 조합들이 존재하는지 여부를 판정한다 (3000). 선택 모듈 (2710) 은, 최악의 랭크에 있지 않는 데이터의 임의의 세그먼트들이 존재하는지 여부를 판정하기 위해 품질-레이트 테이블을 분석할 수도 있다. 상술된 예에서, 최악의 랭크는 최고의 넘버링된 랭크에 대응할 수도 있다. 다른 가능한 랭크 조합이 존재하지 않으면, 즉, 데이터의 세그먼트들 각각이 그의 최악의 랭크에 있으면, 선택 모듈 (2710) 은 수퍼프레임으로부터 제거하기 위해 데이터의 하나 이상의 세그먼트들을 선택하길 시작한다 (3001). 선택 모듈 (2710) 은, 예를 들어, 상술된 혼잡 제어 알고리즘을 사용하여 수퍼프레임으로부터 제거되는 하나 이상의 세그먼트들을 선택할 수도 있다.
다른 가능한 랭크 조합이 존재하면, 선택 모듈 (2710) 은 다음의 최상의 품질 레벨에 대응하는 다음의 랭크를 갖는 데이터의 하나 이상의 세그먼트들을 식별한다 (3002). 예를 들어, 선택 모듈 (2710) 은, 품질-레이트 테이블이 상술된 바와 같이 생성될 경우 최소의 다음 랭크를 갖는 데이터의 세그먼트들을 식별할 수도 있다. 이러한 방식으로, 선택 모듈 (2710) 은 품질-레이트 테이블을 분석하여, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨을 갖는 하나 이상의 스트림들을 식별한다.
선택 모듈 (2710) 은 데이터의 식별된 세그먼트들 중 리사이징될 하나를 선택한다 (3004). 데이터의 하나의 세그먼트만이 최소의 다음 랭크값을 가지면, 멀티플렉스 모듈 (2700) 은 그 세그먼트를 선택한다. 데이터의 2개 이상의 세그먼트들이 동일한 다음 랭크를 가지면, 선택 모듈 (2710) 은 현재의 랭크와 관련된 가장 큰 사이즈를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다. 다 른 방법으로, 선택 모듈 (2710) 은, 현재의 랭크에서의 세그먼트의 사이즈와 다음 랭크에서의 세그먼트의 사이즈 사이의 가장 큰 차이를 갖는 데이터의 식별된 세그먼트를 선택할 수도 있다.
선택 모듈 (2710) 은 데이터의 선택된 세그먼트와 관련된 랭크를 다음 랭크로 설정한다 (3006). 선택 모듈 (2710) 이 데이터의 세그먼트들 중 하나 이상을 선택한 이후, 할당 모듈 (2708) 은, 데이터의 선택된 세그먼트에 대한 감소된 랭크와 관련된 사이즈들을 사용하여 이용가능한 대역폭을 할당하는 것을 재-시도한다. 할당 알고리즘이 여전히 성공적이지 않으면, 선택 모듈 (2710) 은, 데이터의 리사이징될 부가적인 세그먼트들, 또는 상술된 바와 유사한 방식으로 훨씬 더 감소된 품질로 리사이징될 동일한 세그먼트들을 선택한다.
여기에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어로 구현될 경우, 기술들은 디지털 하드웨어, 아날로그 하드웨어 또는 이들의 조합을 사용하여 실현될 수도 있다. 소프트웨어로 구현될 경우, 기술은, 컴퓨터-판독가능 매체상의 하나 이상의 저장된 또는 송신된 명령들 또는 코드에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터-판독가능 매체는, 컴퓨터 저장 매체, 통신 매체, 또는 그 양자를 포함할 수도 있으며, 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함할 수도 있다. 저장 매체는, 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다.
제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체는, 동기적인 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 RAM, 판독-전용 메모리 (ROM), 비-휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래머블 판독-전용 메모리 (EEPROM), 플래시 메모리, CD-ROM, 또는 다른 광 디스크 저장부, 자성 디스크 저장부 또는 다른 자성 저장부 디바이스, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 수행 또는 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 유형의 매체를 포함할 수 있다.
또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절하게 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 쌍 꼬임 (twisted pair), 디지털 가입자 라인 (DSL), 또는 적외선, 무선, 및 마이크로웨이브와 같은 무선 기술을 사용하여, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 쌍 꼬임, 또는 적외선, 무선, 및 마이크로웨이브와 같은 무선 기술은 매체의 정의에 포함된다. 여기에서 사용된 바와 같이, 디스크 (Disk) 및 디스크 (disc) 는, 컴팩 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다용성 디스크 (DVD), 플로피 디스크, 및 디스크 (disk) 들이 일반적으로 데이터를 자성적으로 복제하지만, 디스크 (disc) 들이, 예를 들어, 레이저로 데이터를 광학적으로 복제하는 블루-레이 디스크를 포함한다. 또한, 상기의 조합들은 컴퓨터-판독가능 매체의 범위내에 포함되어야 한다.
여기에 설명된 바와 같이, 컴퓨터 프로그램 제품은, 컴퓨터-판독가능 매체뿐만 아니라, 그 컴퓨터-판독가능 매체내에 패키징된 패키징 재료들을 포함하는 그 컴퓨터-판독가능 매체와 관련된 임의의 재료를 포함한다. 컴퓨터 프로그램 제 품의 컴퓨터-판독가능 매체와 관련된 코드는, 컴퓨터, 예를 들어, 하나 이상의 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, ASIC, FPGA, 또는 다른 동등한 집적 또는 별개의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 몇몇 양태에서, 여기에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들내에서 제공될 수도 있거나, 결합된 CODEC 에 포함될 수도 있다.
다양한 양태들이 설명되었다. 이들 및 다른 양태들은 다음의 청구항의 범위내에 있다.

Claims (89)

  1. 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 단계로서, 상기 품질 및 레이트 정보는 데이터의 상기 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하고, 상기 품질-레이트 테이블들 각각은, 데이터의 대응하는 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들, 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 상기 수신하는 단계;
    데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅 (fit) 하는지 여부를 판정하는 단계;
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 적어도 상기 품질 및 레이트 정보에 기초하여 데이터의 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하는 단계; 및
    상기 복수의 세그먼트들에 대한 상기 이용가능한 대역폭을 달성하기 위해, 데이터의 상기 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  2. 제 1 항에 있어서,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 단계는,
    상기 품질 레벨들 중 선택된 품질 레벨에 대응하는 사이즈들로 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스들의 양을 결정하는 단계;
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 양들을 합산하는 단계; 및
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 상기 송신 채널 리소스들의 총합을 이용가능한 송신 채널 리소스들의 양과 비교하는 단계를 더 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  3. 제 2 항에 있어서,
    상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하는 단계는, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 큰 경우 상기 복수의 세그먼트들 중 다운사이징될 하나 이상의 세그먼트들을 선택하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  4. 제 2 항에 있어서,
    상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하는 단계는, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총 합이 상기 이용가능한 대역폭의 양보다 작은 경우 상기 복수의 세그먼트들 중 업사이징될 하나 이상의 세그먼트들을 선택하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  5. 제 1 항에 있어서,
    상기 데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하는 단계는,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하는 단계;
    현재의 품질 레벨들에서 데이터의 상기 식별된 세그먼트들의 사이즈들을 결정하기 위해 상기 품질-레이트 테이블들을 분석하는 단계; 및
    상기 현재의 품질 레벨에서 가장 큰 추정된 사이즈를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  6. 제 5 항에 있어서,
    상기 후속 품질 레벨에서의 데이터의 상기 선택된 세그먼트의 사이즈를 사용하여, 데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부 를 판정하는 단계; 및
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 리사이징될 하나 이상의 부가적인 세그먼트들을 선택하는 단계를 더 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  7. 제 1 항에 있어서,
    상기 데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하는 단계는,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하는 단계;
    데이터의 세그먼트들 각각에 대하여, 현재의 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈와 상기 후속 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈 사이의 차이를 계산하는 단계; 및
    가장 큰 계산된 차이를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  8. 제 1 항에 있어서,
    데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하는 단계는,
    데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보를 분석하는 단계; 및
    상기 분석에 기초하여, 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  9. 제 8 항에 있어서,
    상기 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하는 단계는 다음의 수학식을 최대화하는 단계를 포함하며, 상기 수학식은,
    Figure 112008061907533-pct00016
    Figure 112008061907533-pct00017
    이며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모 든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 비트 레이트이고,
    Figure 112008061907533-pct00018
    는 데이터의 i번째 세그먼트와 관련된 품질이고,
    Figure 112008061907533-pct00019
    는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위인, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  10. 제 1 항에 있어서,
    상기 데이터의 상기 선택된 세그먼트들의 리사이징을 요청하는 단계는 데이터의 상기 선택된 세그먼트들에 대한 적어도 최대 사이즈들을 특정하는 단계를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  11. 제 1 항에 있어서,
    시간의 주기에 걸쳐 데이터의 상기 세그먼트들의 멀티미디어 데이터를 결합시키는 단계를 더 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  12. 제 1 항에 있어서,
    리사이징을 위해 선택된 데이터의 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하는 단계;
    데이터의 상기 복수의 세그먼트들 중 데이터의 나머지 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하는 단계; 및
    상기 요청들에 응답하여 데이터의 상기 복수의 세그먼트들 각각에 대한 콘텐츠를 수신하는 단계를 더 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 방법.
  13. 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 데이터 수집 모듈로서, 상기 품질 및 레이트 정보는 데이터의 상기 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하고, 상기 품질-레이트 테이블들 각각은, 데이터의 대응하는 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들, 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 상기 데이터 수집 모듈;
    데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 할당 모듈; 및
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우 데이터의 상기 복수의 세그먼트들과 관련된 적어도 상기 품질 및 레이트 정보에 기초하여 데이터의 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하고, 상기 복수의 세그먼트들에 대한 상기 이용가능한 대역폭을 달성하기 위해 데이터의 상기 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 선택 모듈을 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  14. 제 13 항에 있어서,
    상기 할당 모듈은,
    상기 품질 레벨들 중 선택된 품질 레벨에 대응하는 사이즈들에서 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스들의 양을 결정하고,
    데이터의 세그먼트들을 전송하는데 필요한 송신 채널 리소스들의 양을 합산하며, 그리고,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 상기 송신 채널 리소스들의 총합을 이용가능한 송신 채널 리소스들의 양과 비교하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  15. 제 14 항에 있어서,
    상기 선택 모듈은, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 큰 경우 상기 복수의 세그먼트들 중 다운사이징될 하나 이상의 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  16. 제 14 항에 있어서,
    상기 선택 모듈은, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 작은 경우 상기 복수의 세그먼트들 중 업사이징될 하나 이상의 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  17. 제 13 항에 있어서,
    상기 선택 모듈은,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    현재의 품질 레벨들에서 데이터의 상기 식별된 세그먼트들의 사이즈들을 결정하기 위해 상기 품질-레이트 테이블들을 분석하며, 그리고,
    상기 현재의 품질 레벨에서 가장 큰 추정된 사이즈를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  18. 제 17 항에 있어서,
    상기 할당 모듈은, 상기 후속 품질 레벨에서의 데이터의 상기 선택된 세그먼트의 사이즈를 사용하여, 데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내 에 피팅하는지 여부를 판정하며,
    상기 선택 모듈은, 데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 리사이징될 하나 이상의 부가적인 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  19. 제 13 항에 있어서,
    상기 선택 모듈은,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    데이터의 세그먼트들 각각에 대하여, 현재의 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈와 상기 후속 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈 사이의 차이를 계산하며, 그리고,
    가장 큰 계산된 차이를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  20. 제 13 항에 있어서,
    상기 선택 모듈은,
    데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보를 분석하며, 그리고,
    상기 분석에 기초하여, 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  21. 제 20 항에 있어서,
    상기 선택 모듈은 다음의 수학식을 최대화함으로써 데이터의 상기 하나 이상의 세그먼트들을 선택하며, 상기 수학식은,
    Figure 112008061907533-pct00020
    Figure 112008061907533-pct00021
    이며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 비트 레이트이고,
    Figure 112008061907533-pct00022
    는 데이터의 i번째 세그먼트와 관련된 품질이고,
    Figure 112008061907533-pct00023
    는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위인, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  22. 제 13 항에 있어서,
    상기 선택 모듈은, 리사이징을 요청할 경우 데이터의 상기 선택된 세그먼트들에 대한 적어도 최대 사이즈들을 특정하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  23. 제 13 항에 있어서,
    데이터의 상기 세그먼트들은 시간의 주기에 걸친 상기 흐름들의 일부를 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  24. 제 13 항에 있어서,
    상기 데이터 수집 모듈은,
    리사이징을 위해 선택된 데이터의 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하고,
    데이터의 상기 복수의 세그먼트들 중 데이터의 나머지 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하며, 그리고,
    상기 요청들에 응답하여 데이터의 상기 복수의 세그먼트들 각각에 대한 콘텐츠를 수신하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  25. 디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 적어도 품질 및 레이트 정보를 수신하는 수단으로서, 상기 품질 및 레이트 정보는 데이터의 상기 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하고, 상기 품질-레이트 테이블들 각각은, 데이터의 대응하는 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들, 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 상기 수신하는 수단;
    데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하는 수단;
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하는 수단; 및
    상기 복수의 세그먼트들에 대한 상기 이용가능한 대역폭을 달성하기 위해, 데이터의 상기 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하는 수단을 포함하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  26. 제 25 항에 있어서,
    상기 판정 수단은,
    상기 품질 레벨들 중 선택된 품질 레벨에 대응하는 사이즈들로 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스들의 양을 결정하고,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 양들을 합산하며, 그리고,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 상기 송신 채널 리소스들의 총합을 이용가능한 송신 채널 리소스들의 양과 비교하는. 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  27. 제 26 항에 있어서,
    상기 선택 수단은, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 큰 경우 상기 복수의 세그먼트들 중 다운사이징될 하나 이상의 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  28. 제 26 항에 있어서,
    상기 선택 수단은, 데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 작은 경우 상기 복수의 세그먼트들 중 업사이징될 하나 이상의 세그먼트들을 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  29. 제 25 항에 있어서,
    상기 선택 수단은,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    현재의 품질 레벨들에서 데이터의 상기 식별된 세그먼트들의 사이즈들을 결정하기 위해 상기 품질-레이트 테이블들을 분석하며, 그리고,
    상기 현재의 품질 레벨에서 가장 큰 추정된 사이즈를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  30. 제 25 항에 있어서,
    상기 선택 수단은,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    데이터의 세그먼트들 각각에 대하여, 현재의 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈와 상기 후속 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈 사이의 차이를 계산하며, 그리고,
    가장 큰 계산된 차이를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하는, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  31. 제 25 항에 있어서,
    상기 선택 수단은, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보를 분석하고, 다음의 수학식을 최대화함으로써 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하며, 상기 수학식은,
    Figure 112008061907533-pct00024
    Figure 112008061907533-pct00025
    이며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 비트 레이트이고,
    Figure 112008061907533-pct00026
    는 데이터의 i번째 세그먼트와 관련된 품질이고,
    Figure 112008061907533-pct00027
    는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위인, 디지털 멀티미디어 데이터의 흐름들을 결합시키는 장치.
  32. 디지털 비디오 데이터를 프로세싱하는 프로세서로서,
    디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 품질 및 레이트 정보를 수신하고,
    데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하고,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하며, 그리고,
    상기 복수의 세그먼트들에 대한 상기 이용가능한 대역폭을 달성하기 위해, 데이터의 상기 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하도록 구성되며,
    상기 품질 및 레이트 정보는 데이터의 상기 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하고, 상기 품질-레이트 테이블들 각각은, 데이터의 대응하는 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들, 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 프로세서.
  33. 제 32 항에 있어서,
    상기 품질 레벨들 중 선택된 품질 레벨에 대응하는 사이즈들로 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스들의 양을 결정하고,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 양들을 합산하며, 그리고,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 상기 송신 채널 리소스들의 총합을 이용가능한 송신 채널 리소스들의 양과 비교하도록 구성되는, 프로세서.
  34. 제 33 항에 있어서,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 큰 경우 상기 복수의 세그먼트들 중 다운사이징될 하나 이상의 세그먼트들을 선택하도록 구성되는, 프로세서.
  35. 제 33 항에 있어서,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 작은 경우 상기 복수의 세그먼트들 중 업사이징될 하나 이상의 세그먼트들을 선택하도록 구성되는, 프로세서.
  36. 제 32 항에 있어서,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    현재의 품질 레벨들에서 데이터의 상기 식별된 세그먼트들의 사이즈들을 결정하기 위해 상기 품질-레이트 테이블들을 분석하며, 그리고,
    상기 현재의 품질 레벨에서 가장 큰 추정된 사이즈를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하도록 구성되는, 프로세서.
  37. 제 36 항에 있어서,
    상기 후속 품질 레벨에서의 데이터의 상기 선택된 세그먼트의 사이즈를 사용하여, 데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하고, 그리고,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 리사이징될 하나 이상의 부가적인 세그먼트들을 선택하도록 구성되는, 프로세서.
  38. 제 32 항에 있어서,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하고,
    데이터의 세그먼트들 각각에 대하여, 현재의 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈와 상기 후속 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈 사이의 차이를 계산하며, 그리고,
    가장 큰 계산된 차이를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하도록 구성되는, 프로세서.
  39. 제 32 항에 있어서,
    데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보를 분석하며, 그리고,
    상기 분석에 기초하여, 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하도록 구성되는, 프로세서.
  40. 제 39 항에 있어서,
    다음의 수학식을 최대화하도록 구성되며, 상기 수학식은,
    Figure 112008061907533-pct00028
    Figure 112008061907533-pct00029
    이며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 비트 레이트이고,
    Figure 112008061907533-pct00030
    는 데이터의 i번째 세그먼트와 관련된 품질이고,
    Figure 112008061907533-pct00031
    는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위인, 프로세서.
  41. 제 32 항에 있어서,
    데이터의 상기 선택된 세그먼트들에 대한 적어도 최대 사이즈들을 특정하도록 구성되는, 프로세서.
  42. 제 32 항에 있어서,
    시간의 주기에 걸쳐 데이터의 상기 세그먼트들의 멀티미디어 데이터를 결합시키도록 구성되는, 프로세서.
  43. 제 32 항에 있어서,
    리사이징을 위해 선택된 데이터의 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하고,
    데이터의 상기 복수의 세그먼트들 중 데이터의 나머지 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하며, 그리고,
    상기 요청들에 응답하여 데이터의 상기 복수의 세그먼트들 각각에 대한 콘텐츠를 수신하도록 구성되는, 프로세서.
  44. 적어도 하나의 컴퓨터로 하여금,
    디지털 멀티미디어 데이터의 흐름들과 관련된 데이터의 복수의 세그먼트들에 대한 품질 및 레이트 정보를 수신하게 하는 명령들로서, 상기 품질 및 레이트 정보는 데이터의 상기 복수의 세그먼트들과 관련된 품질-레이트 테이블들을 포함하고, 상기 품질-레이트 테이블들 각각은, 데이터의 대응하는 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들, 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 상기 수신하게 하는 명령들;
    데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하게 하는 명령들;
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하게 하는 명령들; 및
    상기 복수의 세그먼트들에 대한 상기 이용가능한 대역폭을 달성하기 위해, 데이터의 상기 하나 이상의 선택된 세그먼트들 각각의 리사이징을 요청하게 하는 명령들을 포함하는, 디지털 비디오 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
  45. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    상기 품질 레벨들 중 선택된 품질 레벨에 대응하는 사이즈들로 데이터의 세그먼트들 각각을 전송하는데 필요한 송신 채널 리소스들의 양을 결정하게 하는 명령들;
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 양들을 합산하게 하는 명령들; 및
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하는지 여부를 판정하기 위해, 데이터의 모든 세그먼트들에 의해 요구되는 상기 송신 채널 리소스들의 총합을 이용가능한 송신 채널 리소스들의 양과 비교하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  46. 제 45 항에 있어서,
    상기 컴퓨터로 하여금 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 큰 경우 상기 복수의 세그먼트들 중 다운사이징될 하나 이상의 세그먼트들을 선택하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  47. 제 45 항에 있어서,
    상기 컴퓨터로 하여금 상기 복수의 세그먼트들 중 리사이징될 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 세그먼트들을 전송하는데 필요한 상기 송신 채널 리소스들의 총합이 상기 이용가능한 대역폭의 양보다 작은 경우 상기 복수의 세그먼트들 중 업사이징될 하나 이상의 세그먼트들을 선택하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  48. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하게 하는 명령들;
    현재의 품질 레벨들에서 데이터의 상기 식별된 세그먼트들의 사이즈들을 결정하기 위해 상기 품질-레이트 테이블들을 분석하게 하는 명령들; 및
    상기 현재의 품질 레벨에서 가장 큰 추정된 사이즈를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  49. 제 48 항에 있어서,
    상기 컴퓨터로 하여금,
    상기 후속 품질 레벨에서의 데이터의 상기 선택된 세그먼트의 사이즈를 사용하여, 데이터의 상기 복수의 세그먼트들이 이용가능한 대역폭내에 피팅하는지 여부를 판정하게 하는 명령들; 및
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보에 기초하여 데이터의 리사이징될 하나 이상의 부가적인 세그먼트들을 선택하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  50. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 상기 복수의 세그먼트들이 상기 이용가능한 대역폭내에 피팅하지 않는 경우, 다음의 최상의 품질 레벨에 대응하는 후속 품질 레벨들을 갖는 데이터의 하나 이상의 세그먼트들을 식별하기 위해 상기 품질-레이트 테이블들을 분석하게 하는 명령들;
    데이터의 세그먼트들 각각에 대하여, 현재의 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈와 상기 후속 품질 레벨에서의 데이터의 상기 식별된 세그먼트의 사이즈 사이의 차이를 계산하게 하는 명령들; 및
    가장 큰 계산된 차이를 갖는, 데이터의 상기 식별된 세그먼트들 중 적어도 하나의 세그먼트를 선택하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  51. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 데이터의 상기 복수의 세그먼트들 중 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 상기 복수의 세그먼트들과 관련된 상기 품질 및 레이트 정보를 분석하게 하는 명령들; 및
    상기 분석에 기초하여, 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  52. 제 51 항에 있어서,
    상기 컴퓨터로 하여금 상기 대응하는 감소된 사이즈들에서 품질에서의 최소량의 영향을 갖는 데이터의 하나 이상의 세그먼트들을 선택하게 하는 상기 명령들은, 상기 컴퓨터로 하여금 다음의 수학식을 최대화하게 하는 명령들을 포함하며, 상기 수학식은,
    Figure 112010039820568-pct00032
    Figure 112010039820568-pct00033
    이며, 여기서, n은 데이터의 세그먼트들의 총 수이고, QTotal 은 데이터의 모든 세그먼트들의 전체 품질이고, ki는 데이터의 i번째 세그먼트와 관련된 상수이고, ri는 데이터의 i번째 세그먼트와 관련된 비트 레이트이고, R은 총 이용가능한 비트 레이트이고,
    Figure 112010039820568-pct00034
    는 데이터의 i번째 세그먼트와 관련된 품질이고,
    Figure 112010039820568-pct00035
    는 데이터의 i번째 세그먼트와 관련된 최소 품질이며, wi는 데이터의 i번째 세그먼트와 관련된 우선순위인, 컴퓨터 판독가능 매체.
  53. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 데이터의 상기 선택된 세그먼트들의 리사이징을 요청하게 하는 상기 명령들은, 상기 컴퓨터로 하여금 데이터의 상기 선택된 세그먼트들에 대한 적어도 최대 사이즈들을 특정하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  54. 제 44 항에 있어서,
    상기 컴퓨터로 하여금 시간의 주기에 걸쳐 데이터의 상기 세그먼트들의 멀티미디어 데이터를 결합하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  55. 제 44 항에 있어서,
    상기 컴퓨터로 하여금,
    리사이징을 위해 선택된 데이터의 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하게 하는 명령들;
    데이터의 상기 복수의 세그먼트들 중 데이터의 나머지 세그먼트들에 대한 인코딩된 콘텐츠의 전달을 요청하게 하는 명령들; 및
    상기 요청들에 응답하여 데이터의 상기 복수의 세그먼트들 각각에 대한 콘텐츠를 수신하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  56. 디지털 멀티미디어 데이터의 흐름을 인코딩하는 방법으로서,
    적어도 품질 및 레이트 정보를 상기 흐름의 데이터의 세그먼트와 관련시키는 단계; 및
    멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는 단계를 포함하며,
    상기 품질 및 레이트 정보는, 데이터의 상기 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 데이터의 상기 세그먼트와 관련된 품질-레이트 테이블을 포함하는, 인코딩 방법.
  57. 제 56 항에 있어서,
    데이터의 상기 세그먼트의 콘텐츠를 분석하는 단계;
    상기 콘텐츠의 상기 분석에 기초하여 데이터의 상기 세그먼트에 대한 복수의 품질-레이트 커브들 중 하나의 품질-레이트 커브를 선택하는 단계; 및
    상기 선택된 품질-레이트 커브를 사용하여, 데이터의 상기 세그먼트와 관련된 상기 품질-레이트 테이블을 생성하는 단계를 더 포함하는, 인코딩 방법.
  58. 제 57 항에 있어서,
    상기 품질-레이트 테이블을 생성하는 단계는,
    데이터의 상기 세그먼트가 인코딩될 수 있는 사이즈들을 계산하는 단계; 및
    상기 선택된 품질-레이트 커브를 사용하여 상기 사이즈들 각각과 관련된 품질 레벨들을 결정하는 단계를 포함하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨과 분리되어 있는, 인코딩 방법.
  59. 제 57 항에 있어서,
    상기 품질-레이트 테이블을 생성하는 단계는,
    데이터의 상기 세그먼트가 인코딩될 수 있는 복수의 품질 레벨들을 계산하는 단계로서, 상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨들과 분리되어 있는, 상기 계산하는 단계; 및
    상기 선택된 품질-레이트 커브를 사용하여, 상기 품질 레벨들 각각에서 데이터의 상기 세그먼트의 사이즈를 결정하는 단계를 포함하는, 인코딩 방법.
  60. 제 56 항에 있어서,
    데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하기 위한 요청을 수신하는 단계; 및
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는 단계를 더 포함하는, 인코딩 방법.
  61. 제 56 항에 있어서,
    데이터의 상기 세그먼트를 리사이징하기 위한 요청을 수신하는 단계; 및
    상기 요청에 응답하여 데이터의 상기 세그먼트를 리사이징하는 단계를 더 포함하는, 인코딩 방법.
  62. 제 61 항에 있어서,
    데이터의 상기 리사이징된 세그먼트에 대한 콘텐츠를 전달하기 위한 요청을 수신하는 단계; 및
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 리사이징된 세그먼트에 대한 상기 콘텐츠를 전송하는 단계를 더 포함하는, 인코딩 방법.
  63. 디지털 멀티미디어 데이터의 흐름을 인코딩하는 장치로서,
    적어도 품질 및 레이트 정보를 상기 흐름의 데이터의 세그먼트와 관련시키는 콘텐츠 분류 모듈; 및
    멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는 인코딩 모듈을 포함하며,
    상기 품질 및 레이트 정보는, 데이터의 상기 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 데이터의 상기 세그먼트와 관련된 품질-레이트 테이블을 포함하는, 인코딩 장치.
  64. 제 63 항에 있어서,
    상기 콘텐츠 분류 모듈은, 데이터의 상기 세그먼트의 콘텐츠를 분석하고, 상기 콘텐츠의 상기 분석에 기초하여 데이터의 상기 세그먼트에 대한 복수의 품질-레이트 커브들 중 하나의 품질-레이트 커브를 선택하며,
    상기 인코딩 장치는,
    상기 선택된 품질-레이트 커브를 사용하여, 데이터의 상기 세그먼트와 관련된 상기 품질-레이트 테이블을 생성하는 품질 및 레이트 정보 생성 모듈을 더 포함하는, 인코딩 장치.
  65. 제 64 항에 있어서,
    상기 품질 및 레이트 정보 생성 모듈은, 데이터의 상기 세그먼트가 인코딩될 수 있는 사이즈들을 계산하고, 상기 선택된 품질-레이트 커브를 사용하여 상기 사 이즈들 각각과 관련된 품질 레벨들을 결정하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨과 분리되어 있는, 인코딩 장치.
  66. 제 64 항에 있어서,
    상기 품질 및 레이트 정보 생성 모듈은, 데이터의 상기 세그먼트가 인코딩될 수 있는 복수의 품질 레벨들을 계산하고, 상기 선택된 품질-레이트 커브를 사용하여 상기 품질 레벨들 각각에서 데이터의 상기 세그먼트의 사이즈를 결정하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨들과 분리되어 있는, 인코딩 장치.
  67. 제 63 항에 있어서,
    상기 인코딩 모듈은,
    데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하기 위한 요청을 수신하고, 상기 요청에 응답하여 멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는, 인코딩 장치.
  68. 제 63 항에 있어서,
    데이터의 상기 세그먼트를 리사이징하기 위한 요청을 수신하고, 상기 요청에 응답하여 데이터의 상기 세그먼트를 리사이징하는 리사이징 모듈을 더 포함하는, 인코딩 장치.
  69. 제 68 항에 있어서,
    상기 인코딩 모듈은,
    데이터의 상기 리사이징된 세그먼트에 대한 콘텐츠를 전달하기 위한 요청을 수신하고, 상기 요청에 응답하여 멀티플렉스 프로세싱을 위해 데이터의 상기 리사이징된 세그먼트에 대한 상기 콘텐츠를 전송하는, 인코딩 장치.
  70. 디지털 멀티미디어 데이터의 흐름을 인코딩하는 장치로서,
    적어도 품질 및 레이트 정보를 상기 흐름의 데이터의 세그먼트와 관련시키는 수단; 및
    멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는 수단을 포함하며,
    상기 품질 및 레이트 정보는, 데이터의 상기 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 데이터의 상기 세그먼트와 관련된 품질-레이트 테이블을 포함하는, 인코딩 장치.
  71. 제 70 항에 있어서,
    상기 관련시키는 수단은, 데이터의 상기 세그먼트의 콘텐츠를 분석하고, 상기 콘텐츠의 상기 분석에 기초하여 데이터의 상기 세그먼트에 대한 복수의 품질-레이트 커브들 중 하나의 품질-레이트 커브를 선택하며,
    상기 인코딩 장치는,
    상기 선택된 품질-레이트 커브를 사용하여, 데이터의 상기 세그먼트와 관련된 상기 품질-레이트 테이블을 생성하는 수단을 더 포함하는, 인코딩 장치.
  72. 제 71 항에 있어서,
    상기 생성하는 수단은, 데이터의 상기 세그먼트가 인코딩될 수 있는 사이즈들을 계산하고, 상기 선택된 품질-레이트 커브를 사용하여 상기 사이즈들 각각과 관련된 품질 레벨들을 결정하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨과 분리되어 있는, 인코딩 장치.
  73. 제 71 항에 있어서,
    상기 생성하는 수단은, 데이터의 상기 세그먼트가 인코딩될 수 있는 복수의 품질 레벨들을 계산하고, 상기 선택된 품질-레이트 커브를 사용하여 상기 품질 레벨들 각각에서 데이터의 상기 세그먼트의 사이즈를 결정하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨들과 분리되어 있는, 인코딩 장치.
  74. 제 70 항에 있어서,
    데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하기 위한 요청을 수신하는 수단을 더 포함하며,
    상기 전송하는 수단은, 상기 요청에 응답하여 멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하는, 인코딩 장치.
  75. 제 70 항에 있어서,
    데이터의 상기 세그먼트를 리사이징하기 위한 요청을 수신하는 수단; 및
    상기 요청에 응답하여 데이터의 상기 세그먼트를 리사이징하는 수단을 더 포함하며,
    상기 전송하는 수단은 멀티플렉스 프로세싱을 위해 데이터의 상기 리사이징된 세그먼트에 대한 콘텐츠를 전송하는, 인코딩 장치.
  76. 디지털 비디오 데이터를 프로세싱하는 프로세서로서,
    품질 및 레이트 정보를 흐름의 데이터의 세그먼트와 관련시키고,
    데이터의 상기 세그먼트와 관련된 상기 품질 및 레이트 정보를 멀티플렉스 장치로 전송하도록 구성되며,
    상기 품질 및 레이트 정보는, 데이터의 상기 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 데이터의 상기 세그먼트와 관련된 품질-레이트 테이블을 포함하는, 프로세서.
  77. 제 76 항에 있어서,
    데이터의 상기 세그먼트의 콘텐츠를 분석하고,
    상기 콘텐츠의 상기 분석에 기초하여 데이터의 상기 세그먼트에 대한 복수의 품질-레이트 커브들 중 하나의 품질-레이트 커브를 선택하며, 그리고,
    상기 선택된 품질-레이트 커브를 사용하여, 데이터의 상기 세그먼트와 관련된 상기 품질-레이트 테이블을 생성하도록 구성되는, 프로세서.
  78. 제 77 항에 있어서,
    데이터의 상기 세그먼트가 인코딩될 수 있는 사이즈들을 계산하고,
    상기 선택된 품질-레이트 커브를 사용하여 상기 사이즈들 각각과 관련된 품질 레벨들을 결정하도록 구성되며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨과 분리되어 있는, 프로세서.
  79. 제 77 항에 있어서,
    데이터의 상기 세그먼트가 인코딩될 수 있는 복수의 품질 레벨들을 계산하 고,
    상기 선택된 품질-레이트 커브를 사용하여 상기 품질 레벨들 각각에서 데이터의 상기 세그먼트의 사이즈를 결정하도록 구성되며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨들과 분리되어 있는, 프로세서.
  80. 제 76 항에 있어서,
    데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하기 위한 요청을 수신하고,
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하도록 구성되는, 프로세서.
  81. 제 76 항에 있어서,
    데이터의 상기 세그먼트를 리사이징하기 위한 요청을 수신하고,
    상기 요청에 응답하여 데이터의 상기 세그먼트를 리사이징하도록 구성되는, 프로세서.
  82. 제 81 항에 있어서,
    데이터의 상기 리사이징된 세그먼트에 대한 콘텐츠를 전달하기 위한 요청을 수신하고,
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 리사이징된 세그먼트에 대한 상기 콘텐츠를 전송하도록 구성되는, 프로세서.
  83. 적어도 하나의 컴퓨터로 하여금,
    품질 및 레이트 정보를 흐름의 데이터의 세그먼트와 관련시키게 하는 명령들; 및
    데이터의 상기 세그먼트와 관련된 상기 품질 및 레이트 정보를 멀티플렉스 장치로 전송하게 하는 명령들로서, 상기 품질 및 레이트 정보는, 데이터의 상기 세그먼트와 관련된 적어도 하나 이상의 품질 레벨들 및 상기 품질 레벨들 각각에서의 데이터의 상기 세그먼트의 사이즈들을 나타내는, 데이터의 상기 세그먼트와 관련된 품질-레이트 테이블을 포함하는, 상기 데이터의 상기 세그먼트와 관련된 상기 품질 및 레이트 정보를 멀티플렉스 장치로 전송하게 하는 명령들을 포함하는, 디지털 비디오 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
  84. 제 83 항에 있어서,
    상기 컴퓨터로 하여금,
    데이터의 상기 세그먼트의 콘텐츠를 분석하게 하는 명령들;
    상기 콘텐츠의 상기 분석에 기초하여 데이터의 상기 세그먼트에 대한 복수의 품질-레이트 커브들 중 하나의 품질-레이트 커브를 선택하게 하는 명령들; 및
    상기 선택된 품질-레이트 커브를 사용하여, 데이터의 상기 세그먼트와 관련된 상기 품질-레이트 테이블을 생성하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  85. 제 84 항에 있어서,
    상기 컴퓨터로 하여금 상기 품질-레이트 테이블을 생성하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 상기 세그먼트가 인코딩될 수 있는 사이즈들을 계산하게 하는 명령들; 및
    상기 선택된 품질-레이트 커브를 사용하여 상기 사이즈들 각각과 관련된 품질 레벨들을 결정하게 하는 명령들을 포함하며,
    상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨과 분리되어 있는, 컴퓨터 판독가능 매체.
  86. 제 84 항에 있어서,
    상기 컴퓨터로 하여금 상기 품질-레이트 테이블을 생성하게 하는 상기 명령들은, 상기 컴퓨터로 하여금,
    데이터의 상기 세그먼트가 인코딩될 수 있는 복수의 품질 레벨들을 계산하게 하는 명령들로서, 상기 품질 레벨들 각각은 품질 증분만큼 이웃 품질 레벨들과 분리되어 있는, 상기 계산하게 하는 명령들; 및
    상기 선택된 품질-레이트 커브를 사용하여, 상기 품질 레벨들 각각에서 데이터의 상기 세그먼트의 사이즈를 결정하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  87. 제 83 항에 있어서,
    상기 컴퓨터로 하여금,
    데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하기 위한 요청을 수신하게 하는 명령들; 및
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 세그먼트와 관련된 적어도 상기 품질 및 레이트 정보를 전송하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  88. 제 83 항에 있어서,
    상기 컴퓨터로 하여금,
    데이터의 상기 세그먼트를 리사이징하기 위한 요청을 수신하게 하는 명령들; 및
    상기 요청에 응답하여 데이터의 상기 세그먼트를 리사이징하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  89. 제 88 항에 있어서,
    데이터의 상기 리사이징된 세그먼트에 대한 콘텐츠를 전달하기 위한 요청을 수신하게 하는 명령들; 및
    상기 요청에 응답하여, 멀티플렉스 프로세싱을 위해 데이터의 상기 리사이징된 세그먼트에 대한 상기 콘텐츠를 전송하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
KR1020087021336A 2006-01-31 2007-01-31 품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템 KR100988177B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US76399506P 2006-01-31 2006-01-31
US60/763,995 2006-01-31
US83235306P 2006-07-20 2006-07-20
US60/832,353 2006-07-20

Publications (2)

Publication Number Publication Date
KR20080100224A KR20080100224A (ko) 2008-11-14
KR100988177B1 true KR100988177B1 (ko) 2010-10-18

Family

ID=38255433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087021336A KR100988177B1 (ko) 2006-01-31 2007-01-31 품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US20070201388A1 (ko)
EP (1) EP1980110A2 (ko)
JP (1) JP2009525704A (ko)
KR (1) KR100988177B1 (ko)
TW (1) TW200735668A (ko)
WO (1) WO2007090176A2 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653085B2 (en) 2005-04-08 2010-01-26 Qualcomm Incorporated Methods and apparatus for enhanced delivery of content over data network
US7974193B2 (en) * 2005-04-08 2011-07-05 Qualcomm Incorporated Methods and systems for resizing multimedia content based on quality and rate information
US8582905B2 (en) 2006-01-31 2013-11-12 Qualcomm Incorporated Methods and systems for rate control within an encoding device
US20080212599A1 (en) * 2007-03-01 2008-09-04 Qualcomm Incorporated Methods and systems for encoding data in a communication network
US8582647B2 (en) * 2007-04-23 2013-11-12 Qualcomm Incorporated Methods and systems for quality controlled encoding
US20090046644A1 (en) * 2007-08-17 2009-02-19 Qualcomm Incorporated Service set manager for ad hoc mobile service provider
US9398453B2 (en) 2007-08-17 2016-07-19 Qualcomm Incorporated Ad hoc service provider's ability to provide service for a wireless network
US9392445B2 (en) 2007-08-17 2016-07-12 Qualcomm Incorporated Handoff at an ad-hoc mobile service provider
FR2936926B1 (fr) * 2008-10-06 2010-11-26 Thales Sa Systeme et procede de determination de parametres de codage
KR100956385B1 (ko) * 2008-10-20 2010-05-07 삼성전기주식회사 플라즈마 디스플레이 패널용 스위칭 모드 파워 서플라이 회로
JP5272863B2 (ja) * 2009-04-14 2013-08-28 ソニー株式会社 伝送装置、撮像装置及び伝送方法
US9729467B2 (en) 2009-05-12 2017-08-08 Qualcomm Incorporated Method and apparatus for managing congestion in a wireless system
US9179367B2 (en) 2009-05-26 2015-11-03 Qualcomm Incorporated Maximizing service provider utility in a heterogeneous wireless ad-hoc network
US9002881B2 (en) * 2009-10-29 2015-04-07 Microsoft Technology Licensing, Llc Assembling streamed content for on-demand presentation
KR101452269B1 (ko) * 2010-05-25 2014-10-22 (주)주인네트 콘텐트 가상 세그멘테이션 방법과, 이를 이용한 스트리밍 서비스 제공 방법 및 시스템
HUE039252T2 (hu) * 2010-12-10 2018-12-28 Deutsche Telekom Ag Eljárás és berendezés videojel minõségének megállapítására a videojel kódolása és átvitele folyamán
EP2541935A1 (en) * 2011-06-29 2013-01-02 British Telecommunications Public Limited Company Video coding with quality control and rate control
US9185709B2 (en) * 2012-01-18 2015-11-10 Harris Corporation Long term evolution wireless communication system and related methods
US9125073B2 (en) 2012-08-03 2015-09-01 Intel Corporation Quality-aware adaptive streaming over hypertext transfer protocol using quality attributes in manifest file
US9930082B2 (en) 2012-11-20 2018-03-27 Nvidia Corporation Method and system for network driven automatic adaptive rendering impedance
US10616086B2 (en) 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
US20140241445A1 (en) * 2013-02-28 2014-08-28 Univerza V Ljubljani, Fakulteta Za Elektrotehniko Method for providing quality of service in a multiuser orthogonal frequency division multiplex (OFDM) system
US9338450B2 (en) 2013-03-18 2016-05-10 Ecole De Technologie Superieure Method and apparatus for signal encoding producing encoded signals of high fidelity at minimal sizes
US9661331B2 (en) * 2013-03-18 2017-05-23 Vantrix Corporation Method and apparatus for signal encoding realizing optimal fidelity
US10609405B2 (en) 2013-03-18 2020-03-31 Ecole De Technologie Superieure Optimal signal encoding based on experimental data
EP2804329A1 (en) * 2013-05-15 2014-11-19 Alcatel Lucent Method and transmitter apparatus for generating and transmitting channel feedback and method and receiver apparatus for receiving and retrieving channel feedback
JP2014229985A (ja) * 2013-05-20 2014-12-08 富士通株式会社 通信システム、通信制御方法、移動局、及び、制御装置
US9819604B2 (en) 2013-07-31 2017-11-14 Nvidia Corporation Real time network adaptive low latency transport stream muxing of audio/video streams for miracast
JP6426901B2 (ja) * 2014-03-14 2018-11-21 富士通クライアントコンピューティング株式会社 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム
EP2978225B1 (en) * 2014-07-23 2017-11-08 Wildmoka Method for obtaining in real time a user selected multimedia content part
US20160037509A1 (en) * 2014-07-30 2016-02-04 Onavo Mobile Ltd. Techniques to reduce bandwidth usage through multiplexing and compression
CN107211300A (zh) * 2015-01-26 2017-09-26 诺基亚通信公司 分析和分类信令集合或呼叫
US9560393B2 (en) * 2015-02-20 2017-01-31 Disney Enterprises, Inc. Media processing node
US10602153B2 (en) * 2015-09-11 2020-03-24 Facebook, Inc. Ultra-high video compression
JP6487953B2 (ja) * 2017-02-13 2019-03-20 Kddi株式会社 通信端末装置、及び管理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000049059A (ko) * 1996-10-11 2000-07-25 러셀 비. 밀러 디지털 비디오 압축을 위한 적응성 레이트 제어 방법 및 장치
WO2002007447A1 (en) 2000-07-14 2002-01-24 Sony United Kingdom Limited Data encoding apparatus with multiple encoders
US20040213466A1 (en) 2003-02-17 2004-10-28 Taku Kodama Image processing apparatus, image compression apparatus, image processing method, image compression method, program, and recording medium
US20040220966A1 (en) 2003-05-02 2004-11-04 Justin Ridge Method and apparatus for providing a multimedia data stream

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4700642A (en) * 1985-04-24 1987-10-20 Young Engineering Inc. Joining continuous lengths of web materials
US5426463A (en) * 1993-02-22 1995-06-20 Rca Thomson Licensing Corporation Apparatus for controlling quantizing in a video signal compressor
US5686963A (en) * 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
US5764632A (en) * 1996-04-01 1998-06-09 Nokia Mobile Phones Limited Mobile terminal having improved paging channel acquisition in a system using a digital control channel
US6115420A (en) * 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
EP0935369B1 (en) * 1997-07-23 2012-05-02 NTT DoCoMo, Inc. Multiplex transmission system and band control method
US6185253B1 (en) * 1997-10-31 2001-02-06 Lucent Technology, Inc. Perceptual compression and robust bit-rate control system
US6256423B1 (en) * 1998-09-18 2001-07-03 Sarnoff Corporation Intra-frame quantizer selection for video compression
EP1703643B1 (en) * 1998-11-09 2019-01-16 Samsung Electronics Co., Ltd. Devices and methods for power control in a rsma (reservation multiple access) mobile communication system
BR0006848A (pt) * 1999-06-28 2001-07-03 Samsung Electronics Co Ltd Aparelho e método para controle de potência de link avançado quando no modo de transmissão contìnua em um sistema de comunicação móvel
US6639942B1 (en) * 1999-10-21 2003-10-28 Toshiba America Electronic Components, Inc. Method and apparatus for estimating and controlling the number of bits
AU4338800A (en) * 1999-12-22 2001-07-03 General Instrument Corporation Video compression for multicast environments using spatial scalability and simulcast coding
US6574279B1 (en) * 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
US6542546B1 (en) * 2000-02-02 2003-04-01 Mitsubishi Electric Research Laboratories, Inc. Adaptable compressed bitstream transcoder
US6493331B1 (en) * 2000-03-30 2002-12-10 Qualcomm Incorporated Method and apparatus for controlling transmissions of a communications systems
EP1338125A2 (en) * 2000-11-03 2003-08-27 AT & T Corp. Tiered contention multiple access (tcma): a method for priority-based shared channel access
DE10055422A1 (de) * 2000-11-09 2002-05-29 Alcatel Sa Verfahren, Vorrichtungen und Programm-Module zur Datenübertragung mit gesicherter Dienstqualität
US6928285B2 (en) * 2000-12-05 2005-08-09 Denso Corporation Minimum interference multiple-access method and system for connection rescue
US7010319B2 (en) * 2001-01-19 2006-03-07 Denso Corporation Open-loop power control enhancement for blind rescue channel operation
US6977915B2 (en) * 2001-01-30 2005-12-20 Nortel Networks Limited Method and system for controlling device transmit power in a wireless communication network
KR100387044B1 (ko) * 2001-02-01 2003-06-12 삼성전자주식회사 무선통신 시스템에서 패킷 호 서비스의 제공방법
US7042856B2 (en) * 2001-05-03 2006-05-09 Qualcomm, Incorporation Method and apparatus for controlling uplink transmissions of a wireless communication system
US6526031B1 (en) * 2001-06-21 2003-02-25 Motorola, Inc. Forward power control determination in spread spectrum communications systems
AU2002317073A1 (en) * 2001-06-27 2003-03-03 Nortel Networks Limited Mapping information in wireless communications systems
WO2003010984A1 (en) * 2001-06-27 2003-02-06 Nortel Networks Limited Communication of control information in wireless communication systems
US20030040315A1 (en) * 2001-08-20 2003-02-27 Farideh Khaleghi Reduced state transition delay and signaling overhead for mobile station state transitions
US7302102B2 (en) * 2001-09-26 2007-11-27 Reynolds Jodie L System and method for dynamically switching quality settings of a codec to maintain a target data rate
KR100830491B1 (ko) * 2001-10-31 2008-05-21 엘지전자 주식회사 순방향 공통 전력 제어 채널의 전력 제어 방법
US7277415B2 (en) * 2001-11-02 2007-10-02 At&T Corp. Staggered startup for cyclic prioritized multiple access (CPMA) contention-free sessions
US7245605B2 (en) * 2001-11-02 2007-07-17 At&T Corp. Preemptive packet for maintaining contiguity in cyclic prioritized multiple access (CPMA) contention-free sessions
US7180905B2 (en) * 2001-11-02 2007-02-20 At & T Corp. Access method for periodic contention-free sessions
US7248600B2 (en) * 2001-11-02 2007-07-24 At&T Corp. ‘Shield’: protecting high priority channel access attempts in overlapped wireless cells
US7280517B2 (en) * 2001-11-02 2007-10-09 At&T Corp. Wireless LANs and neighborhood capture
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US20030112366A1 (en) * 2001-11-21 2003-06-19 General Instrument Corporation Apparatus and methods for improving video quality delivered to a display device
US20030185369A1 (en) * 2002-03-29 2003-10-02 Oliver Neal C. Telephone conference bridge provided via a plurality of computer telephony resource algorithms
US7659907B1 (en) * 2002-03-29 2010-02-09 Graphics Properties Holdings, Inc. System and method for providing dynamic control of a graphics session
AU2003280512A1 (en) * 2002-07-01 2004-01-19 E G Technology Inc. Efficient compression and transport of video over a network
US20040028139A1 (en) * 2002-08-06 2004-02-12 Andre Zaccarin Video encoding
US7453837B2 (en) * 2002-08-15 2008-11-18 Zteit Usa, Inc. Trunking system for CDMA wireless communication
KR100651541B1 (ko) * 2003-07-30 2006-11-28 삼성전자주식회사 직교 주파수 분할 다중 접속 방식을 사용하는 이동 통신시스템에서 레인징 방법
KR100779054B1 (ko) * 2003-08-27 2007-11-27 인터디지탈 테크날러지 코포레이션 다중 직교 주파수 분할 다중화(ofdm) 시스템에서실시간 서비스를 위한 부반송파와 비트 할당
US20050063330A1 (en) * 2003-09-20 2005-03-24 Samsung Electronics Co., Ltd. Method for uplink bandwidth request and allocation based on a quality of service class in a broadband wireless access communication system
US6857727B1 (en) * 2003-10-23 2005-02-22 Hewlett-Packard Development Company, L.P. Orifice plate and method of forming orifice plate for fluid ejection device
US20050120128A1 (en) * 2003-12-02 2005-06-02 Wilife, Inc. Method and system of bandwidth management for streaming data
KR100550567B1 (ko) * 2004-03-22 2006-02-10 엘지전자 주식회사 무선 네트워크망을 통해 통신하는 서버 시스템 및 그동작방법
US7415241B2 (en) * 2004-06-02 2008-08-19 Motorola, Inc. Method and apparatus for regulating a delivery of a broadcast-multicast service in a packet data communication system
US8005139B2 (en) * 2004-06-27 2011-08-23 Apple Inc. Encoding with visual masking
US8406293B2 (en) * 2004-06-27 2013-03-26 Apple Inc. Multi-pass video encoding based on different quantization parameters
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
JP2006191253A (ja) * 2005-01-05 2006-07-20 Matsushita Electric Ind Co Ltd レート変換方法及びレート変換装置
US7974193B2 (en) * 2005-04-08 2011-07-05 Qualcomm Incorporated Methods and systems for resizing multimedia content based on quality and rate information
US7623458B2 (en) * 2005-09-30 2009-11-24 The Boeing Company System and method for providing integrated services across cryptographic boundaries in a network
US8582905B2 (en) * 2006-01-31 2013-11-12 Qualcomm Incorporated Methods and systems for rate control within an encoding device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000049059A (ko) * 1996-10-11 2000-07-25 러셀 비. 밀러 디지털 비디오 압축을 위한 적응성 레이트 제어 방법 및 장치
WO2002007447A1 (en) 2000-07-14 2002-01-24 Sony United Kingdom Limited Data encoding apparatus with multiple encoders
US20040213466A1 (en) 2003-02-17 2004-10-28 Taku Kodama Image processing apparatus, image compression apparatus, image processing method, image compression method, program, and recording medium
US20040220966A1 (en) 2003-05-02 2004-11-04 Justin Ridge Method and apparatus for providing a multimedia data stream

Also Published As

Publication number Publication date
WO2007090176A2 (en) 2007-08-09
TW200735668A (en) 2007-09-16
US20070201388A1 (en) 2007-08-30
KR20080100224A (ko) 2008-11-14
WO2007090176A9 (en) 2007-10-11
EP1980110A2 (en) 2008-10-15
WO2007090176A3 (en) 2008-02-07
JP2009525704A (ja) 2009-07-09

Similar Documents

Publication Publication Date Title
KR100988177B1 (ko) 품질 및 레이트 정보에 기초하여 멀티미디어 콘텐츠를 리사이징하기 위한 방법 및 시스템
KR101151924B1 (ko) 품질 및 레이트 정보에 기초하여 멀티미디어 컨텐츠를 리사이징하는 방법 및 시스템
US7653085B2 (en) Methods and apparatus for enhanced delivery of content over data network
US8792555B2 (en) Methods and systems for resizing multimedia content
CN107534969A (zh) 增强编解码引擎控制
JP5006917B2 (ja) モバイルiptvサービスを提供する方法及びこれのためのシステム
CN112543508A (zh) 面向5g网络切片的无线资源分配方法及网络架构
CN102740367A (zh) 数据流的传输方法及装置
Haghani et al. A quality-driven cross-layer solution for MPEG video streaming over WiMAX networks
Koutsakis et al. Video scene identification and classification for user-tailored QoE in GEO satellites

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
LAPS Lapse due to unpaid annual fee