Transcript VOD

VOD
(Delivery Multimedia Integration Framework)
2000년 12월 11일
전현경
DMIF
 What is DMIF?
 DMIF Goal
 DMIF Communication Architecture
 DMIF Computational Model
 DMIF in MPEG-4
 DAI(DMIF Application Interface)
 DNI(DMIF Network Interface)
 Information Flows for DMIF
2
What is DMIF?
Delivery
Multimetia
Integration
Framework
Delivery of Multimedia Content + Integration Framework
단순한 file 전송이 아닌 Multimedia
자료 전송 : QoS Management
기존의 전송기술을
통합하여 사용할 수 있는
방법 제시
3
DMIF Goals
 Goal
–
–
Hiding the delivery technology details from the DMIF user
Ensuring interoperability in the control plane between end-systems
 Generic MPEG4 terminal architecture
Media aware
Delivery unaware
Compression Layer
Media unaware
Delivery unaware
Systems Layer
Media unaware
Delivery aware
–
–
–
ESI(Elementary Stream Interface)
DAI(DMIF-Application Interface)
Delivery Layer
Compression Layer :MPEG-4 media encoding and decoding into
elementary Streams
Systems Layer :Manage Elementary Streams and their synchronization and
hierarchical relations
Delivery Layer : ensure transparent access to MPEG-4 content irrespective
of delivery technology(Transport network technology(ex. Internet, ATM infrastructure),
Broadcast technology, Local storage technology)
4
DMIF Communication Architecture(I)
 DMIF addresses the delivery integration of three major industries
DMIF
The multimedia content delivery integration framework
Broadcast Industry
Cable
Satellite, etc.
Interactive Network Industry
Internet, ATM,
Etc.
Disk Industry
CD, DVD, etc.
5
DMIF Filter
DMIF Communication Architecture(II)
Local
App
Local DMIF
for
Broadcast
Remote DMIF
(emulated)
Remote App.
(emulated)
Local DMIF
for Local
Files
Remote DMIF
(emulated)
Remote App.
(emulated)
Local DMIF
for Remote
srv
DAI
Sig
ma
p
Broadcast
source
Local
Storage
Network
DNI
Remote
App
remote DMIF
(real)
Sig
ma
p
DNI
DAI
Flows between independent systems
Flows internal to a single system
6
DMIF Computational Model(I)
 Service Session
Application request the activation of a service, it uses the Service
primitives of the DAI, and actually creates a service session
– Local meaning
 Network Session
– DMIF implementation the contacts its corresponding peer and
creates a network session with it
– Network-wide significance
 Channel
– Channel primitives of the DAI
–
7
DMIF Computational Model(II)
 High-level view of a service activation and data exchange
Target terminal
Originating terminal
App
1
DMIF
App1
4
3
2
App2
DMIF
1. Originating Application request the activation of a service to its local DMIF
A Service Session is created between the application and its local DMIF in the control plane
2. A Network Session is created between the DMIF peers in the control plane
3. The target DMIF identifies the Target Application and creates a Service Session
4. Through the path 1, 2, and 3, the applications create channels in the user plane
Channel 4 will carry the actual data exchanged by the Application
8
DMIF Computational Model(III)
 Target DMIF representing a Service Domain
Originating terminal
Target terminal
App1
App
DMIF
DMIF
App2
 A Network Session shared by multiple Service Session
Originating terminal
App A
DMIF
App B
Target terminal
App1
DMIF
App2
9
 Generic Layered Architecture for the Data Plane of MPEG-4
Elementary Streams
AL AL AL
AL AL
FlexMux Channel
FlexMux
AL
AL
AL-Packed Streams
FlexMux
TransMux Channel
DMIF-Application Interface
FlexMux
FlexMux Layer
FlexMux Streams
Protection sL Protection sL
Mux subLayer
AccessUnit Layer
ISO/IEC 14496-1
(MPEG-4 Systems)
DMIF in the MPEG-4 Architecture
(RTP) (PES)
UDP MPEG2
IP
TS
AAL2
ATM
H223
PSTN
DAB
mux
…
TransMux Layer
…
TransMux Streams
10
DMIF Application Interface
DMIF Application Interface
 For development of applications irrespective of delivery technology
 Semantic API
No syntax, nor programming language
 Minimum semantics in specification
– should be extended in implementations(more functions and
parameters)
 Designed for generic use
– Non MPEG-4 application can use DAI
 Comprised of the following classes of primitives
– Service primitives
 Deal with control plane, management of service session
– Channel primitives
 Deal with control plane, management of channels
– Data primitives
 Deal with data plane, data transfer through channel
–
12
DAI primitives(I)
Service
Channel
Attach
AttachCallback
Detach
DetachCallback
Add
Data
AddCallback
DataCallback
Delete
DeleteCallback
Data
User command
Command
CommandCallback
•DA_ServiceAttach (IN: URL, uuDataInBuffer, uuDataInLen; OUT: response,
serviceSessionId, uuDataOutBuffer, uuDataOutLen)
•DMIF 사용자가 서비스 세션 초기화를 요청할 때 사용
•DMIF_URL : service Name, Source Address, stream Name
•DA_ServiceAttachCallback (IN: serviceSessionId, serviceName, uuDataInBuffer,
uuDataInLen; OUT: response, uuDataOutBuffer, uuDataOutLen)
•Remote DMIF peer가 serviceName 필드를 통해 구별되는 적합한 remote
application을 호출
•DA_ServiceDetach (IN: serviceSessionId, reason; OUT: response)
•serviceSessionId에 의해 구분되는 서비스를 종료하기 위해 사용
•DA_ServiceDetachCallback (IN: serviceSessionId, reason; OUT: response)
•Remote DMIF layer가 remote DMIF user에게 reason때문에
serviceSessionId로 구분되는 서비스가 종료되었음을 알려줌
13
DAI primitives(II)
•DA_ChannelAdd (IN: serviceSessionId, loop(qosDescriptor, direction, uuDataInBuffer,
uuDataInLen); OUT: loop(response, channelHandle, uuDataOutBuffer, uuDataOutLen ))
•DMIF 사용자가 serviceSessionId에 의해 구분되는 서비스에서 하나 이상의 채널의 추가를
요청할 때 사용
•DA_ChannelAddCallback (IN: serviceSessionId, loop(channelHandle, qosDescriptor,
direction, uuDataInBuffer, uuDataInLen); OUT: loop(response, uuDataOutBuffer,
uuDataOutLen))
•Remote DMIF layer가 serviceSessionId에 의해 구분되는 remote DMIF 사용자에게
remote DMIF 사용자가 채널 추가를 요청받았다는 것을 알려줌
•DA_ChannelDelete (IN: loop(channelHandle, reason); OUT: loop(response))
•DMIF 사용자는 channelHandle에 의해 구분되는 하나 이상의 채널을 삭제할 때 호출
•DA_ChannelDeleteCallback (IN: loop(channelHandle, reason); OUT: loop(response))
•DA_UserCommand (IN: loop(serviceSessionId, uuDataInBuffer, uuDataInLen))
•DMIF layer는 serviceSessionId에 의해 구분되는 remote DMIF user 에 uuData를 제공
•DA_UserCommandCallback (IN: loop(channelHandle, uuDataInBuffer, uuDataInLen))
•DMIF 사용자는 serviceSessionId에 의해 구분되는 remote peer에 uuData를 보냄
•DA_Data (IN: channelHandle, streamDataBuffer, streamDataLen)
•DMIF 사용자는 channelHandle에 의해 구분되는 채널에 streamData를 보냄
•DA_DataCallback (IN: channelHandle, streamDataBuffer, streamDataLen, errorFlag)
14
Structure of the DAI Primitives

DA_ServiceAttach (IN: URL, ...; OUT: ..., serviceSessionId...)
Confirm Parameters from DMIF layer to Application
Request Parameters from Application to DMIF layer

DA_ServiceAttachCallback (IN: serviceSessionId, ...; OUT:
response,...)
Response Parameters from Application to DMIF layer
Indication Parameters from DMIF layer to Application
Application
3.Indication
2.DA_primitiveCallBack
(IN:uuDataInBuffer)
Network
3.(OUT:uuDataOutBuffer)
4.Response
2.Conform
4.(OUT:uuDataOutBuffer)
1.DA_primitive
(IN:uuDataInBuffer)
1.Request
Local DMIF
Application
Prefix uu: The parameter is
transparently transported
between DMIF users through
DMIF, i.e, opaque data
structure.
Therefore, uuData exist as a
pair in the primitive and
callback primitive
Local DMIF
15
DAI Primitive Sequence
Originating DMIF Terminal
Application
the application
initiates
the service
DAI
Target DMIF Terminal
Org. DNI + Network + Target DNI
DAI
Application
DA_primitive
1
(IN:parameters)
DA_primitive CallBack
2
(IN:parameters)
(OUT:parameters)
(OUT:parameters)
4
the application
running the
service replies
3
16
DMIF Network Interface
DMIF Network Interface
 Only for interactive network scenario
 Semantic API for the control plane
 Abstract the signalling between DMIF peers irrespectively of the
supported delivery technologies
 DNI Parameters mapped onto network dependent native signalling
mechanism
 Comprised of the following primitives
–
–
–
–
Session primitives : session management(setup & release)
Service primitives : service management(attach & detach)
Transmux primitives : transmux management(setup, release, config)
Channel primitives : channel management(add & delete)
18
DNI Primitive Semantics
Session
Setup
Release
Service
Attach
Detach
TransMux
Setup
Release
Config
Channel
AddRequest
AddIndication
Delete
Ready
•DN_SessionSetup[Callback](IN:networkSessionId, calledAddress, callingAddress, compatibilityDescriptor;
OUT:response)
•DN_SessionRelease[Callback](IN:networkSessionId, reason; OUT:response)
•DN_ServiceAttach[Callback](IN:networkSessionId, serviceId, serviceName, ddDataInBuffer, ddDataInLen; OUT:
response, ddDataOutBuffer, ddDataOutLen)
•DN_ServiceDetach[Callback](IN:networkSessionId, serviceId, reason; OUT:response)
•DN_TransMuxSetup[Callback](IN:networkSessionId, TAT, qosDescriptor; senderAddress, receiverAddress;
OUT:response)
•DN_TransMuxRelease[Callback](IN:networkSessionId, TAT; OUT:response)
•DN_ChannelAddRequest[Callback](IN:networkSessionId, serviceId, loop(CAT, direction, senderAddress,
receiverAddress, ddDataInBuffer, ddDataInLen); OUT:loop(TAT, response, ddDataOutBuffer, ddDataOutLen))
•DN_ChannelAddIndication[Callback](IN:networkSessionId, serviceId, loop(CAT, direction,senderAddress,
receiverAddress, TAT, ddDataInBuffer, ddDataInLen); OUT:loop(response))
•DN_ChannelDelete[Callback](IN:networkSessionId, loop(CAT, reason); OUTloop)(response))
•DN_TransMuxConfig[Callback](IN:networkSessionId, loop(TAT, ddDataInBuffer, ddDataInLen); OUT:(loop(response,
ddDataOutBuffer, ddDataOutLen))
•DN_ChannelReady[Callback](IN:networkSessionId, loop(CAT))
19
Fixed Syntax Element
 QoS Descriptor
StreamPriority
1
QoS_QualifierCount
1
for(i=0; i< QoS_QualifierCount; i++) {
QoS_QualifierTag
1
QoS_QualifierDataLength
1
QoS_QualifierData
QoS_QualifierDataLength
}



QoS metric
•MAX_DELAY
스트림에 허용되는
absolute max delay
•PREF_MAX_DELAY
스트림에 허용되는
preferred max delay
•LOSS_PROB
Access Unit의 최대로
허락된 loss 확률
•MAX_GAP_LOSS
DMIF_Descriptor
최대로 허락된
consecutively lost
DMIF to DMIF data
AU수
•MAX_AU_SIZE
– ddData()
•AVG_AU_SIZE
 DMIF peer들 간에 전송되는 정보를 포함하는 메시지
•MAX_AU_RATE
Resource_Descriptor
•PRIORITY
스트림의 우선순위
– 리소스를 요구할 때 사용하는 메시지에 포함됨
20
DMIF Signalling Message
 DNI primitives are mapped into DMIF signalling messages
 Relation between DNI and DS messages
DN_<xxx>[CallBack](IN:<yyy>; OUT:<zzz>)
DN_<xxx>Request(){<yyy>}
DN_<xxx>Confirm(){<zzz>}
Ex.
DN_SessionSetup[Callback](IN:networkSessionId, calledAddress, callingAddress,
compatibilityDescriptor; OUT:response)
DS_SessionSetupRequest() {
DS_SessionSetupConfirm() {
dsmccMessageHeader()
dsmccMessageHeader()
networkSessionId
response
compatibilityDescriptor()
compatibilityDescriptor()
ddData()
ddData()
}
}
21
Information Flows for DMIF
Initiation of a Service in a Remote Interactive DMIF
Originating DMIF Terminal
Application
the application
initiates
the service
DAI
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
determine
whether a
new network
session
is needed
DN_SessionSetup
DMIF Layer
DAI
Application
DA_ServiceAttach
1 (IN: DMIF_URL,
uuData)
2
(IN: nsId, CallingAddr,
CalledAddr, CapDescr)
(OUT: rsp)
attach to the
service
4
(OUT: ssId,
uuData, rsp)
3
DN_ServiceAttach
(IN: nsId, serviceId,
serviceName, ddData)
Connect to
the
application
running
the service
5
DA_ServiceAttach
the application
running
the service
replies
(IN: ssId,
serviceName,
uuData)
(OUT: ddData, rsp)
8
7
(OUT: rsp,
uuData)
6
23
Addition of Channel in a Remote Interactive DMIF (Downstream)
Local DMIF Terminal
Application
DAI
the application
requests
a new channel DA_ChannelAdd
1 (IN: ssId, loop
([qos],dir,sAdd
,rAdd, uuData))
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
DMIF Layer
DAI
Application
request the
DN_ChannelAddRequest
channel
Notify the
2
(IN: nsId, serviceId,
application
loop(CAT, dir, [qos],
running
ddData))
the service DA_ChannelAdd
3 (IN: ssId, loop
the application
(chId,
running
dir,sAdd,rAdd, the service replies
uuData))
DN_TransMuxSetup
(IN: nsId,TAT)
determine
whether a
new network
connection
is needed
5
(OUT: loop
(qos,rsp))
4
(OUT: rsp)
6
(OUT: loop(rsp,
TAT,ddData,rsp))
(OUT: loop (chId,
rsp))
8
9
DA_ChannelReady
(IN:loop(chId))
DA_Data
7
[DN_ChannelAddRequest]
10
DN_ChannelReady
(IN:loop(CAT))
(IN:chID, streamData, errorFlag)
DA_ChannelReady
11
(IN:loop(chId))
DA_Data
(IN:chID, streamData)
12
24
Addition of Channel in a Remote Interactive DMIF (Upstream)
Local DMIF Terminal
Application
the application
requests
a new channel
1
DAI
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
Determine
whether a
new network
connection
is needed
2
DN_TransMuxSetup
(IN: nsId, TAT))
DMIF Layer
Application
DA_ChannelAdd
(IN: ssId, loop
(dir, [qos],
uuData))
(OUT:rsp)
Create the
channel
3
DN_ChannelAddIndication
4
(IN: nsId,
Notify the
serviceId,loop(CAT,dir,s application
Add,rAdd,TAT,ddData))
running
the service
5
(OUT:loop(chId.
rsp))
9
DAI
(OUT:loop(ddData.rsp))
8
DA_Data
(IN:chId, streamData)
7
DA_ChannelAdd
(IN: nsId,
The application
loop(chId, dir,
running
sAdd,rAdd,uuDat
the service
a))
(OUT:loop([qos] 6
,rsp)
DA_Data
(IN:chId, streamData,errorFlag)
25
Channel release controlled by the Local DMIF peer
Local DMIF Terminal
Application
DAI
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
DMIF Layer
DAI
Application
the application
delete
DA_ChannelDelete
a channel
Request the
1 (IN:loop(chId,
channel
reason))
deletion
DN_ChannelDeleteRequest
2
(OUT:loop(rsp))
(IN: nsId,
loop(CAT,reason))
(OUT:loop(rsp))
6
DN_TransMuxRelease
(IN:nsId, TAT)
8
(OUT:rsp)
Notify the
application
running
the service
DA_ChannelDelete
3 (IN:loop(chId,
The application
running
reason))
the
service
(OUT:loop(rsp))
4
5
Determine
whether a
network
connection
can be
released
7
26
Channel release controlled by the Remote DMIF peer
Local DMIF Terminal
Application
the application
delete
a channel
1
DAI
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
DMIF Layer
DAI
Application
DA_ChannelDelete
(IN:loop(chId, Request the
reason))
channel
deletion
2
(OUT:loop(rsp))
DN_ChannelDeleteIndication
(IN: nsId, loop(TAT,
Notify the
dir, qos, resources))
application
running
the service
(OUT:loop(rsp))
6
Determine
whether a
network
connection
can be
released
7
5
DA_ChannelDelete
3 (IN:loop(chId,
The application
running
reason))
the
service
(OUT:loop(rsp))
4
DN_TransMuxRelease
(IN:nsId, TAT)
(OUT:rsp)
8
27
Termination of a Service in a Remote Interactive DMIF
Local DMIF Terminal
Application
the application
terminates
the service
DAI
DA_ServiceDetach
1
(IN: ssId,
reason)
Target DMIF Terminal
DMIF Layer
DNI + Network + DNI
DMIF Layer
DAI
Application
Detach
the service
2
DN_ServiceDetach
(IN: nsId, serviceId,
reason)
DA_ServiceAttach
(OUT:rsp)
(OUT:rsp)
6
Determine
whether the
network
session can
be released
7
5
3 (IN: ssId, reason) The application
running
the service
(OUT:rsp)
replies
4
DN_SessionRelease
(IN: nsId, reason)
(OUT:rsp)
8
28
Initiation of a Service in a Broadcast DMIF
DMIF Terminal
Application
DAI
Broadcast Network
DMIF Layer+ Remote (emulated)
DMIF Layer + Remote (emulated)
Application
the application
initiates
DA_ServiceAttach
the service
1 (IN:DMIF_URL.
uuData)
Service Guide
Get knowledge of the list of services
Service Specific Configuration Information
Tune on the requested service and
get specific Information
(e.g. for MPEG-4: First OD,
table for ES-ID to CAT mapping
reply
(OUT:ssId,
uuData.rsp)
2
29
Addition of Channels in a Broadcast DMIF
DMIF Terminal
Application
DAI
Broadcast Network
DMIF Layer+ Remote (emulated)
DMIF Layer + Remote (emulated)
Application
the application
request
a new channel DA_ChannelAdd
(IN:ssId,
1
loop([qos],dirs
Add,rAdd,uuDa
ta))
Tune on the requested channels(e.g.
for MPEG-4 based on the table for
ES-ID to CAT mapping)
(OUT:loop(chID
,rsp)
reply
2
DA_ChannelReady
(IN:loop(chId))
Start getting data on those channels
Data
DA_Data
(IN:chID,
streamData,
errorFlag)
30
Deletion of Channels in a Broadcast DMIF
DMIF Terminal
Application
DAI
Broadcast Network
DMIF Layer+ Remote (emulated)
DMIF Layer + Remote (emulated)
Application
the application
deletes
DA_ChannelDelete
channels
1 (IN:loop(chId,
Stop getting data on those channels
reason))
(OUT:loop(rsp))
2
Termination of a Service in a Broadcast DMIF
the application
terminates
the service
DA_ServiceDetach
1
(IN:ssId,
reason)
(OUT:rsp)
Stop getting any data for that service
2
31
Initiation of a Service in a Local Storage DMIF
DMIF Terminal
Application
DAI
Local File System
DMIF Layer+ Remote (emulated)
DMIF Layer + Remote (emulated)
Application
the application
initiates
DA_ServiceAttach
the service
1 (IN:DMIF_URL.
uuData)
Read the list of services
File
System
read
Service directory
Read the specific configuration
information for the requested
service(e.g. for MPEG-4:First OD,
table for ES-Id to CAT mapping)
read
Service specific
Configuration
Information
reply
(OUT:ssId,
uuData, rsp)
2
32
Addition of Channels in a Broadcast DMIF
DMIF Terminal
Application
DAI
DMIF Layer+ Remote (emulated) DMIF
Layer + Remote (emulated Application)
the application
request
a new channel DA_ChannelAdd
(IN:ssId,
1
loop([qos],dir,
sAdd,rAdd,uuD
ata))
(OUT:loop(chID
,rsp)
Local File System
File System
open
Open the appropriate files(e.g. for
MPEG-4 based on the table for ESID to CAT mapping)
Ack
reply
2
DA_ChannelReady
read
3
Start getting data on those channels
Data
DA_Data
(IN:chID,
streamData,
errorFlag)
4
33
Deletion of Channels in a Broadcast DMIF
DMIF Terminal
Application
DAI
Broadcast Network
DMIF Layer+ Remote (emulated)
DMIF Layer + Remote (emulated
Application)
the application
deletes
DA_ChannelDelete
channels
1 (IN:loop(chId,
reason))
File System
close
Close the appropriate files
Ack
(OUT:loop(rsp))
2
Termination of a Service in a Broadcast DMIF
the application
terminates
DA_ServiceDetach
channels
(IN:ssId,
1
reason)
close
Close all files related to that service
Ack
(OUT:rsp)
2
34
Conclusion
 The application is written once (DAI);
by simply plugging in more DMIF instances and by using different
URLs,
the application would run on more delivery technologies.
 The DMIF model provides a framework to find solutions for QoS
management.
 Moreover, it guarantees permanence of multimedia application in
presence of new delivery technologies
35
참고 :DMIF Network Architecture
 Generic DMIF Network Architecture Model
DMIF
SRM
DMIF Sender Peer role
(Server, Broadcast, Local Storage )
DMIF Receiver Peer role
(Client )
Application
(MPEG-4)
DMIF
TRANSPORT
NETWORKS
DMIF
Application
(MPEG-4)
= Not present in case of pure broadcast
= Invoked on demand
SRM = Session and Resource Management function
36
Reference
 Information Technology – Generic coding of moving pictures and
associated audio information- Part 6: Delivery Multimedia Integration
Framework, ISO/IEC JTC1/SC29/WG11, Oct, 1997
37