560 likes | 797 Views
Be ahead of MobileJAVA !!! . 디지털방송과 JavaTV. 심형섭. 목 차. 디지털방송의 발전 추이 디지털방송의 특징 디지털방송과 타 서비스와의 비교 디지털방송의 서비스 내역 디지털방송 표준화 동향 디지털방송 관련 시장 및 기술 동향 디지털방송 사례 JavaTV Overview DVB-Java Application Sample 그 밖의 알아두어야 할 것들 참고자료. I. 디지털방송의 발전 추이. II. 디지털방송의 특징.
E N D
Be ahead of MobileJAVA !!! 디지털방송과 JavaTV 심형섭
목 차 • 디지털방송의 발전 추이 • 디지털방송의 특징 • 디지털방송과 타 서비스와의 비교 • 디지털방송의 서비스 내역 • 디지털방송 표준화 동향 • 디지털방송 관련 시장 및 기술 동향 • 디지털방송 사례 • JavaTV Overview • DVB-Java Application • Sample • 그 밖의 알아두어야 할 것들 • 참고자료
Enhanced Service • (종속서비스 또는 • 연동/연계형 서비스)
Enhanced Service(비종속서비스 또는 독립형서비스)
V. 디지털방송의 표준화 동향 • 비표준화 디지털 양방향 방송 서비스 동향
전세계 디지털 양방향 방송 표준화 동향 * 북미는 ATSC-DASE에 케이블만 OpenCable로 결정
유럽 및 북미지역 셋탑 시장의 디지털 방송용 장비 점유율 *출처 : ConTeSt consultancy, IFA2001, 2001. 8. • 위성방송용 셋탑은 주요 지역의 아날로그 대비 시장 점유율이 높음 • 케이블용은 상대적으로 점유율이 낮음 • 따라서 아날로그 케이블 셋탑에 대한 대체 수요가 많음 • 디지털 케이블 방송 부분의 표준은 MHP를 기반으로 한 OpenCable이 대세임
비표준 장비의 유럽 지역 디지털 방송 시장 점유율 *출처 : ConTeSt consultancy, IFA2001, 2001. 8. • 이 분야는 특정 기업 솔루션을 기반으로 하는 폐쇄 시장임 • 따라서 제휴 관계를 갖고 있는 메이저 기업 외에는 진입 불가능
VIII. JavaTV Overview • What is Java TV API? The Java TV API is a set of extensions to the PersonalJava application environment to enable TV-centric application and service. Providers DTV-specific APIs Developed through Java Community Process initiative Adopted in worldwide standards
Application for the Java TV API Television Enhancement and Interaction (Video-synchronized, data-driven, user-interactive Adaptive presentation, animation and stream control) Premium Video Service Control (PPV, Video-on-demand) Electronic Program Guide(EPGs) (General purpose, service-specific, event-specific) General Applications (E-mail, web browsing, e-commerce)
Service Context Service Context 1 Service Context 2 Xlet Context Xlet Context Xlet Context Java Media Player Xlet A Xlet B Xlet C Application Manager
IX. DVB-Java Application Broadcast Data : java.io • DSMCC object carousels appear as a (read-only) file system • Classloader search path is initialised based on broadcast signalling before an application is started. • Normal File classes from java.io work fine. • e.g. new java.io.FileInputStream("my_data.dat") • Classes building on java.io.File work fine. • e.g. Toolkit.getImage(“background.jpg”) • Overall behaviour very like a standalone Java application - it is not very similar to Applet(it doesn’t use URLs)
Broadcast Data : org.dvb.dsmcc • The org.dvb.dsmcc package extends java.io. It supports asynchronous functions for broadcast file systems. • DSMCCObject.asynchronousLoad() • DSMCCObject.addObjectChangeEvent() • DSMCCStreamEvent.subscribe() • Use ServiceDomain.attach() to attach to another object carousel • For early development, treat DSMCC as a normal file system. Use extended API when you need fine control over your broadcast data.
User Interface : org.dvb.ui • DVB Extensions to AWT : • org.dvb.ui.DVBColor provides alpha (i.e. transparency through graphics to video) • org.dvb.ui.DVBGraphics - supports alpha composition. • org.dvb.ui.DVBBufferedImage - a writeable buffer of image data - good for double buffering and effects. • org.dvb.ui.DVBTextLayoutManager allows simple display of formatted text • These extensions are similar to parts of Java 2 AWT - you can prototype on JDK 1.3, but be aware of the differences. Also consider the performance cost of alpha.
User Interface : org.havi.ui • Widget set more graphically oriented than java.awt (e.g. icons, animations) • HLook interface allows pluggable look&feel. • HNavigable.setFocusTraversal() allows applications to describe a focus navigation map(up/down/left/right) • Device framework • HScreenDevice & sub-classes allow applications to access a model of the graphics, video & background devices in a system, and request a configuration. • Extra key codes for remote controls • org.havi.ui.event.HRcEvent
User Interface : Getting the root container • Your application can get its top level UI container in 2 ways. • javax.tv.graphics.TVContainer.getRootContainer() • Returns an invisible {0,0} size container • Size & position the container by hand • Methods on org.havi.ui.HSceneFactory • Allow applications to be more expressive about what they really want. Returns an HScene object.
HSceneTemplate User Interface : Configuring the scene • Each Xlet has an HScene representing a region of the TV display. • Create from the HSceneFactory using an HSceneTemplate with the desired properties Application creates getBestScenetemplate) creates HScene HSceneFactory • Similar model used for HScreenDevice
Controlling Media : javax.media • Applications can have basic control of video and audio with the Java Media Framework. • Based on JMF 1.0 • Use org.davic.net.dvb.DVBLocator to select what to show: dvb://<original network ID>.<transport stream ID>. <service id>[.<event ID>] [;<component tag>] • Applications can obtain running JMF players. • Needed for applications running as part of a TV service to get access to already running A/V. • See javax.tv.service.selection.ServiceMediaHandler
Controlling Media : javax.tv.media • MHP provides a number of extra JMF controls • For video scaling... • javax.tv.media.AWTVideoSizeControl(simple) • org.dvb.media.BackgroundVideoPresentationControl (flexible) • Platforms aren't required to support unlimited video scaling • Control and monitoring of subtitles, service components • Fine control over audio playback from memory • org.davic.media.MediaTimePositionControl • Notification of changes in incoming TV signals • video size, aspect ratio, ...
Synchronising with Media • DSMCC stream events • org.dvb.dsmcc.DSMCCStreamEvent.subscribe() • org.davic.media.StreamEventControl.subscribeStreamEvent() • Use media time(NPT) • org.davic.media.MediaTimeEventControl • Use a private section • org.davic.mpeg.sections • Choice really determined by the broadcaster - the data needs to be injected at the right time in the right format.
EPGs : Service Information • There are some APIs that are only useful for non-service bound applications(e.g. Electronic Program Guides) • i.e. the application is signalled on all services. • Access to broadcast service information • DVB-SI API - org.dvb.si • Gives access to all the low level detail of DVB-SI for those who know how to use that. • JavaTV SI API - javax.tv.service, javax.tv.service.guide • A high level abstract view • Beware: many broadcast networks don't follow the DVB-SI specification very well or very completely.
EPGs : Service Selection • Previewing a TV service • Get ServiceContentHandler objects to access JMF. • Using JMF, an EPG can preview a TV service without starting any associated applications. • Really selecting a TV service (incl. applications) • Get ServiceContext from ServiceContextFactory • Use javax.tv.service.selection.ServiceContext.select() • This kills locally signalled Xlets. Don’t use unless you really ‘own’ the service context.
XI. 그 밖의 알아두어야 할 것들 • Return Channel의 대역폭 *출처 : Authur Andersen • Return Channel의 대역폭은 양방향 서비스의 질을 결정 • 케이블을 이용할 경우 일반적인 타 Return Channel에 비해 높은 대역폭을 제공 • 특히 가장 서비스 이용 욕구가 큰 VoD는 케이블의 킬러 어플리케이션으로 거론됨
XII. 참고자료 • 참고서적