Upload
brenda-wood
View
221
Download
0
Embed Size (px)
Citation preview
VOD
(Delivery Multimedia Integration Framework)
2000 년 12 월 11 일전 현 경
2
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
3
What is DMIF?
Delivery Multimetia
Integration
Framework
Delivery of Multimedia Content + Integration Framework
단순한 file 전송이 아닌 Multimedia 자료 전송 : QoS Management
기존의 전송기술을 통합하여 사용할 수 있는 방법 제시
4
DMIF Goals
Compression Layer
Systems Layer
Delivery Layer
ESI(Elementary Stream Interface)
DAI(DMIF-Application Interface)
Media awareDelivery unaware
Media unawareDelivery aware
Media unawareDelivery unaware
Goal– Hiding the delivery technology details from the DMIF user– Ensuring interoperability in the control plane between end-
systems
Generic MPEG4 terminal architecture
– 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)
5
DMIF Communication Architecture(I)
DMIF addresses the delivery integration of three major industries
DMIFThe multimedia content delivery integration framework
CableSatellite, etc.
Internet, ATM, Etc.
CD, DVD, etc.
Broadcast Industry
Interactive Network Industry Disk Industry
6
DMIF Communication Architecture(II)
LocalApp
Flows between independent systems
Flows internal to a single system
Local DMIFfor
Broadcast
Local DMIFfor Remote sr
v
Local DMIFfor Local
Files
Remote DMIF
(emulated)
Remote DMIF(emulated)
Network
DNI
Broadcastsource
DM
IF F
ilter
Sigmap
Remote App.(emulated)
Remote App.
(emulated)
DAI
Sigmap
remote DMIF(real)
RemoteApp
DNI DAI
LocalStorage
7
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
8
DMIF Computational Model(II)
High-level view of a service activation and data exchange
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
Originating terminalTarget terminal
App
DMIF DMIF
App1
1
2
3
4
App2
9
DMIF Computational Model(III)
Target DMIF representing a Service Domain
A Network Session shared by multiple Service Session
Originating terminal
App
DMIF
DMIF
App1
App2
Target terminal
Originating terminal
App A
DMIF DMIF
App1
App2
Target terminal
App B
10
DMIF in the MPEG-4 Architecture
Generic Layered Architecture for the Data Plane of MPEG-4
AL AL AL AL AL AL AL AccessUnit Layer
FlexMux FlexMux FlexMux
(RTP)UDPIP
Protection sL Protection sL
Mux subLayer
(PES)MPEG2
TS
AAL2ATM
H223PSTN
DABmux
…
…
FlexMux Layer
TransMux Layer
DMIF-Application Interface ISO
/IEC
14496-1
(MP
EG
-4 S
yste
ms)
ISO
/IEC
14496-6
(MP
EG
-4 D
MIF
)
FlexMux Channel
TransMux Channel
AL-Packed Streams
FlexMux Streams
TransMux Streams
Elementary Streams
DMIF Application Interface
12
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
13
Service Channel Data User command
Attach Add Data CommandAttachCallback AddCallback DataCallback CommandCallbackDetach DeleteDetachCallback DeleteCallback
•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 로 구분되는 서비스가 종료되었음을 알려줌
DAI primitives(I)
14
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)
15
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,...)
Indication Parameters from DMIF layer to ApplicationResponse Parameters from Application to DMIF layer
Application
Local DMIF
4.(OU
T:uuDataO
utBuffer)
(IN:uuD
ataInBuffer)
1.D
A_prim
itive
Application
Local DMIF
(IN:uuD
ataInBuffer)
3.(OU
T:uuDataO
utBuffer)
2.DA_prim
itiveCallBack
Network
1.R
eq
uest
2.C
on
form
4.R
esp
on
se
3.In
dic
atio
n
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
16
DAI Primitive Sequence
DA_primitive
(IN:parameters)
1
Application
Application
DAIDAI Org. DNI + Network + Target DNI
Originating DMIF Terminal Target DMIF Terminal
the application initiates
the service
the application running the
service replies
DA_primitive CallBack
(IN:parameters)
(OUT:parameters)
(OUT:parameters)
2
34
DMIF Network Interface
18
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 mechan
ism
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)
19
DNI Primitive Semantics
•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); OUTloop)(response))
•DN_TransMuxConfig[Callback](IN:networkSessionId, loop(TAT, ddDataInBuffer, ddDataInLen); OUT:(loop(response, ddDataOutBuffer, ddDataOutLen))
•DN_ChannelReady[Callback](IN:networkSessionId, loop(CAT))
Session Service TransMux ChannelSetup Attach Setup AddRequestRelease Detach Release AddIndication
Config DeleteReady
20
Fixed Syntax Element
QoS Descriptor
DMIF_Descriptor DMIF to DMIF data
– ddData() DMIF peer 들 간에 전송되는 정보를 포함하는 메시지
Resource_Descriptor– 리소스를 요구할 때 사용하는 메시지에 포함됨
StreamPriority 1QoS_QualifierCount 1for(i=0; i< QoS_QualifierCount; i++) {
QoS_QualifierTag 1QoS_QualifierDataLength 1QoS_QualifierData QoS_QualifierDataLength
}
QoS metric•MAX_DELAY
스트림에 허용되는 absolute max delay
•PREF_MAX_DELAY스트림에 허용되는 preferred max delay
•LOSS_PROBAccess Unit 의 최대로 허락된 loss 확률
•MAX_GAP_LOSS최대로 허락된 consecutively lost AU 수
•MAX_AU_SIZE•AVG_AU_SIZE•MAX_AU_RATE•PRIORITY
스트림의 우선순위
21
DMIF Signalling Message
DNI primitives are mapped into DMIF signalling messages Relation between DNI and DS messages
DS_SessionSetupRequest() {
dsmccMessageHeader()
networkSessionId
compatibilityDescriptor()
ddData()
}
DN_<xxx>[CallBack](IN:<yyy>; OUT:<zzz>)
DN_<xxx>Request(){<yyy>}DN_<xxx>Confirm(){<zzz>}
DN_SessionSetup[Callback](IN:networkSessionId, calledAddress, callingAddress, compatibilityDescriptor; OUT:response)
DS_SessionSetupConfirm() {
dsmccMessageHeader()
response
compatibilityDescriptor()
ddData()
}
Ex.
Information Flows for DMIF
23
DA_ServiceAttach
(IN: DMIF_URL, uuData)
DN_SessionSetup
(IN: nsId, CallingAddr, CalledAddr, CapDescr)
(OUT: rsp)
DN_ServiceAttach
(IN: nsId, serviceId, serviceName, ddData)
(OUT: ddData, rsp)
DA_ServiceAttach
(IN: ssId, serviceName, uuData)
(OUT: rsp, uuData)
(OUT: ssId, uuData, rsp)
attach to the
service
the applicationrunning
the service replies
1
2
3
4
5
678
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Originating DMIF Terminal Target DMIF Terminal
determinewhether a
new networksession
is needed
the application initiates
the service
Connect to the
applicationrunning
the service
Initiation of a Service in a Remote Interactive DMIF
24
the applicationrequests
a new channel DA_ChannelAdd(IN: ssId, loop ([qos],dir,sAdd,rA
dd, uuData))
DN_TransMuxSetup(IN: nsId,TAT)
(OUT: rsp)
DA_ChannelReady
(IN: nsId, serviceId, loop(CAT, dir, [qos], ddData)
)
(OUT: loop(rsp, TAT,ddData,rsp))
DA_ChannelAdd(IN: ssId, loop (chId, dir,sAdd,rAd
d, uuData))
(OUT: loop (qos,rsp))
(OUT: loop (chId, rsp))
determinewhether a
new networkconnectionis needed
request thechannel
Notify theapplication
runningthe service
the applicationrunning
the service replies
1
6
5
2
3
4
7
8
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Local DMIF Terminal Target DMIF Terminal
[DN_ChannelAddRequest]
9 10
11
12
DN_ChannelAddRequest
DN_ChannelReady DA_ChannelReady
DA_DataDA_Data
Addition of Channel in a Remote Interactive DMIF (Downstream)
(IN:chID, streamData, errorFlag) (IN:chID, streamData)
(IN:loop(chId)) (IN:loop(CAT)) (IN:loop(chId))
25
Addition of Channel in a Remote Interactive DMIF (Upstream)
the applicationrequests
a new channelDA_ChannelAdd
(IN: ssId, loop (dir, [qos], uuData
))
DN_TransMuxSetup(IN: nsId, TAT))
(OUT:rsp)
1
3
2
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Local DMIF Terminal Target DMIF Terminal
8 7 6
DA_ChannelAdd
DA_DataDA_Data
DN_ChannelAddIndicationCreate the
channel
9
4
5
Determine whether a
new network
connectionis needed
Notify theapplication
runningthe service
The applicationrunning
the service
(IN: nsId, loop(chId, dir, sAdd,rAdd,
uuData))
(IN: nsId, serviceId,loop(CAT,dir,sAdd,rAdd,TAT,ddD
ata))
(OUT:loop(ddData.rsp))(OUT:loop(chId. rs
p))
(IN:chId, streamData) (IN:chId, streamData,errorFlag)
(OUT:loop([qos],rsp)
26
Channel release controlled by the Local DMIF peer
the applicationdelete
a channel DA_ChannelDelete(IN:loop(chId, re
ason))
DN_ChannelDeleteRequest
(IN: nsId, loop(CAT,reason))
1
3
2
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Local DMIF Terminal Target DMIF Terminal
4
DA_ChannelDelete
DN_TransMuxRelease
The applicationrunning
the service
Notify theapplication
runningthe service
(OUT:loop(rsp)) 56
7
8(OUT:rsp)
Determinewhether anetwork
connectioncan be
released
Request the
channeldeletion
(OUT:loop(rsp))(OUT:loop(rsp))
(IN:nsId, TAT)
(IN:loop(chId, reason))
27
Channel release controlled by the Remote DMIF peer
the applicationdelete
a channel DA_ChannelDelete
DN_ChannelDeleteIndication(IN: nsId, loop(TAT, dir,
qos, resources))
1
3
2
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Local DMIF Terminal Target DMIF Terminal
4
DA_ChannelDelete
DN_TransMuxRelease
56
7
8
(IN:loop(chId, reason))
Request the channeldeletion
(OUT:loop(rsp))
Notify theapplication
runningthe service
The applicationrunning
the service(OUT:loop(rsp))
(IN:loop(chId, reason))
(OUT:loop(rsp))
Determinewhether anetwork
connectioncan be
released
(OUT:rsp)
(IN:nsId, TAT)
28
Termination of a Service in a Remote Interactive DMIF
DA_ServiceDetach(IN: ssId, reason
)
DN_ServiceDetach(IN: nsId, serviceId, reas
on)
(OUT:rsp)
1
3
2
Application
Application
DAIDAI DMIF Layer
DMIF Layer
DNI + Network + DNI
Local DMIF Terminal Target DMIF Terminal
4
DA_ServiceAttach
DN_SessionRelease
(OUT:rsp) 56
7
8(OUT:rsp)
The applicationrunning
the servicereplies
the applicationterminatesthe service
Detachthe service
(IN: ssId, reason)
(OUT:rsp)
Determinewhether
thenetwork
session can be released
(IN: nsId, reason)
29
Initiation of a Service in a Broadcast DMIF
the applicationinitiates
the service DA_ServiceAttach(IN:DMIF_URL. u
uData)1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated)
Application
DMIF Terminal Broadcast Network
Get knowledge of the list of services
Tune on the requested service and get specific Information
(e.g. for MPEG-4: First OD, table for ES-ID to CAT mapping
reply
Service Guide
Service Specific Configuration Information
2
(OUT:ssId, uuData.rsp)
30
Addition of Channels in a Broadcast DMIF
the applicationrequest
a new channel DA_ChannelAdd(IN:ssId, loop([qos],dirsAdd,rAdd
,uuData))
1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated)
Application
DMIF Terminal Broadcast Network
Tune on the requested channels(e.g. for MPEG-4 based on
the table for ES-ID to CAT mapping)
Start getting data on those channels
2
(OUT:loop(chID,rsp) reply
DA_ChannelReady
Data
DA_Data
(IN:chID, streamData, errorFlag)
(IN:loop(chId))
31
Deletion of Channels in a Broadcast DMIF
the applicationdeletes
channels DA_ChannelDelete(IN:loop(chId, re
ason))1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated)
Application
DMIF Terminal Broadcast Network
Stop getting data on those channels
2(OUT:loop(rsp))
DA_ServiceDetach
(IN:ssId, reason)1Stop getting any data for that
service
2(OUT:rsp)
Termination of a Service in a Broadcast DMIFthe application
terminatesthe service
32
Initiation of a Service in a Local Storage DMIF
the applicationinitiates
the service DA_ServiceAttach(IN:DMIF_URL. u
uData)1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated)
Application
DMIF Terminal Local File System
Read the list of services
Read the specific configuration information for the requested
service(e.g. for MPEG-4:First OD, table for ES-Id to CAT mapping)
reply
2
(OUT:ssId, uuData, rsp)
File System
read
Service directory
read
Service specific Configuration Information
33
Addition of Channels in a Broadcast DMIF
the applicationrequest
a new channel DA_ChannelAdd(IN:ssId, loop([qos],dir,sAdd,rAd
d,uuData))
1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated Application)
DMIF Terminal Local File System
Open the appropriate files(e.g. for MPEG-4 based on the table for ES-
ID to CAT mapping)
Start getting data on those channels
2
(OUT:loop(chID,rsp)
reply
DA_ChannelReady
Data
DA_Data
(IN:chID, streamData, errorFlag)
open
Ack
read3
4
File System
34
Deletion of Channels in a Broadcast DMIF
the applicationdeletes
channels DA_ChannelDelete(IN:loop(chId, re
ason))1
Application
DAI DMIF Layer+ Remote (emulated) DMIF Layer + Remote (emulated
Application)
DMIF Terminal Broadcast Network
Close the appropriate files
2(OUT:loop(rsp))
the applicationterminateschannels
DA_ServiceDetach
(IN:ssId, reason)1Close all files related to that
service
2(OUT:rsp)
Termination of a Service in a Broadcast DMIF
close
Ack
File System
close
Ack
35
Conclusion
The application is written once (DAI); by simply plugging in more DMIF instances and by using different URL
s, 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
36
참고 :DMIF Network Architecture
Generic DMIF Network Architecture Model
TRANSPORTNETWORKS
DMIF Receiver Peer role (Client )
Application(MPEG-4)
DMIF
DMIF Sender Peer role (Server, Broadcast, Local Storage )
DMIFSRM
= Not present in case of pure broadcast= Invoked on demand
Application(MPEG-4)
DMIF
SRM = Session and Resource Management function
37
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