BD-J

BD-J

BD-J 또는 블루레이 디스크 자바(Blu-ray Disc Java)는 블루레이 디스크의 고급 콘텐츠 및 GEM(Global Executive MHP)의 패키지 미디어 프로필에 대한 Java ME(특히 연결된 장치 구성 또는 CDC의 개인 기본 프로필) Xlet을 지원하는 규격이다.

BD-J는 블루레이 디스크 타이틀의 보너스 콘텐츠를 네트워크 액세스, 사진 촬영, 확장 로컬 스토리지 액세스 등 표준 DVD가 제공하는 보너스 콘텐츠보다 훨씬 정교하게 만들 수 있다. 집합적으로 이러한 기능(인터넷 접속 이외의 기능)을 「보너스 뷰」라고 하며, 인터넷 접속의 추가는 「BD Live」라고 한다. BD-J는 블루레이 디스크 협회에 의해 개발되었다. 비디오 콘텐츠를 지원하는 모든 블루레이 디스크 플레이어는 BD-J를 지원하도록 명세서에 의해 요구되며,[1] 2007년 10월 31일부터 모든 신규 플레이어는 "Bonus View" 기능에 대한 하드웨어 지원을 요구받지만 플레이어는 이 기능을 활성화하기 위해 향후 펌웨어 업데이트가 필요할 수 있다. BD 플레이어의 경우 "BD Live" 지원은 항상 선택 사항이다.[2]

소니의 플레이스테이션 3는 BD-J의 준수와 지원에서 사실상 선두주자가 되었다.[citation needed] 플레이스테이션3는 펌웨어 업그레이드와 함께 블루레이 프로필 1.1 지원을 추가했으며, 지난 1월 CES 2008에서 BD-Live를 선보이는 데 사용되었다.

BD-J Xlet 기능

  • BD-J Xlet의 호출은, 예를 들어 필름 제목 선택이나 새 디스크 삽입에 의해, 그들 주변에서 일어나는 사건들에 의해 촉발된다. Xlet은 차례로 다른 Xlet을 불러올 수 있다.
  • BD-J의 보안은 자바 플랫폼 보안 모델을 기반으로 한다. 즉, JARs의 서명된 애플리케이션은 로컬 스토리지에 대한 읽기/쓰기 액세스, 네트워크 액세스, BD-ROM 디스크의 다른 타이틀 선택, 실행 중인 다른 BD-J 애플리케이션의 제어와 같이 서명되지 않은 것보다 더 많은 작업을 수행할 수 있다.
  • Xlet(CDC Personal Basis Profile의 일부로)에는 GUI(즉, 다음과 같은 AWT 위젯 없음)가 없음 java.awt.Button)) 따라서 애니메이션과 GUI를 생성하기 위해 추가 클래스를 재생한다. BD-J는 원격 제어용으로 Havi UI 장치 모델과 위젯 세트를 사용하지만, BD 지원 해상도와 BD 지원 A/V 제어를 허용하도록 확장된다.
  • BD-J는 사용자가 필름의 특정 프레임에 정확하게 동기화할 수 있는 클래스를 가지고 있다.
  • 허용되는 비디오 동기화에는 콜백 방법을 사용하고 이벤트의 여러 프레임 내에서 정확한 "루즈 동기화"라는 두 가지 유형이 있다. org.bluray. 엄격한 동기화를 통해 애플리케이션은 패키지의 타임코드를 사용하여 정확한 프레임에 정확하게 동기화할 수 있음 javax.media.Time JMF(Java Media Framework)의 제품이다.
  • BD-J 애플리케이션의 GUI는 필수 키 집합과 선택적 포인팅 장치가 있는 리모컨으로 작동할 수 있다. 필수 키 집합에는 최소한 HDMV[expand acronym] 애플리케이션에서 사용자 작업을 지원하는 데 필요한 키가 포함된다.
  • BD-J의 GUI 프레임워크는 GEM이 위임한 HAVi(6) UI 프레임워크를 포함하고 있으며, Swing이나 AWT와 같은 데스크톱 GUI 프레임워크가 아니다. GUI 프레임워크는 PBP가 지정한 AWT의 핵심을 기반으로 하지만, 위젯 세트에는 GEM의 원격 제어 탐색 메커니즘과 HAVi의 외관과 느낌을 쉽게 사용자 정의할 수 있는 메커니즘이 포함되어 있다.
  • BD-J는 BD-ROM 디스크와 관련된 미디어 콘텐츠의 재생을 위해 JMF와 유사한 미디어 프레임워크를 포함한다. BD-ROM 디스크가 미디어 파일의 주요 소스가 될 것으로 추정되지만, 이것만이 아닐 것이며, 다른 소스는 스튜디오의 웹 서버와 로컬 스토리지일 수 있다.
  • BD-J에는 JFIF(JPEG), PNG 및 기타 영상 형식의 영상을 디코딩하고 표시하기 위한 표준 자바 라이브러리가 포함되어 있다. 이 영상들은 표준 자바 그래픽 기능을 사용하여 자바 그래픽 평면에 표시할 수 있다. BD-J 특정 패키지를 사용하여 배경 평면에서 이미지를 렌더링할 수도 있다.
  • 텍스트는 표준 자바 텍스트 함수를 사용하여 렌더링할 수 있다. 이러한 텍스트 렌더링 기능은 BD-J UI 프레임워크와 통합되는 고급 텍스트 레이아웃 관리자로 확장된다. 텍스트는 디스크, 플레이어(기본 글꼴) 또는 네트워크에서 다운로드한 벡터 기반 글꼴을 사용하여 렌더링된다.
  • HDMV[expand acronym] 버튼 사운드는 자바 UI 프레임워크에서도 사용할 수 있다. 사운드 파일은 키를 누르는 사용자에 대한 반응 또는 필름과 관련된 표시된 이벤트에 대한 반응 또는 BD-J 애플리케이션에서 생성된 이벤트에 대한 반응으로 로드 및 렌더링할 수 있다.
  • 인증된 애플리케이션은 (서명한) 권한 요청 파일을 사용하여 BD-J 샌드박스를 넘어서는 권한을 획득할 수 있다. 다음에 대한 권한을 취득할 수 있다.
    • 로컬 및 시스템 스토리지에 읽기 및 쓰기
    • 네트워크 연결 사용(정의된 서버에 연결)
    • BD-ROM 디스크의 파일 시스템 액세스
    • BD-ROM 디스크의 기타 제목 선택
    • 실행 중인 다른 BD-J 응용 프로그램 제어
  • BD-J 애플리케이션은 패키지를 사용하여 인터넷 상의 서버에 연결할 수 있다. 물리적 연결은 예를 들어 구현마다 다를 수 있다. 이더넷, 전화선 등 네트워크 레벨에서는 TCP/IP가 지원되며 HTTP 프로토콜을 사용할 수 있다. 더욱이, 보안 접속을 위한 자바 패키지는 BD-J 플랫폼의 일부로 (JSSE) 포함되어 있다. BD-J 애플리케이션이 네트워크 연결을 사용할 수 있기 전에, 네트워크 연결을 인증하고 네트워크를 사용할 수 있는 적절한 권한을 가져야 한다.
  • 응용 프로그램이 진행되는 웹 사이트는 콘텐츠 공급자의 완전한 통제 하에 있다. 이 제어는 다음과 같은 두 가지 방법으로 보장된다.
    • 디스크를 재생할 때 인증된 BD-J 응용 프로그램만 실행할 수 있다. 애플리케이션은 네트워크 연결의 사용을 제어한다.
    • 또한 디스크에 정의된 사용 권한은 특정 사이트에 대한 (TCP/IP) 네트워크 연결의 사용을 제한할 수 있다.
  • BD-J는 저장 지원을 포함할 것이다. 필수 시스템 스토리지와 선택적 로컬 스토리지라는 두 가지 종류의 스토리지가 포함되어 있다. 모든 스토리지는 Java IO 패키지의 메소드를 사용하여 액세스한다. 로컬 스토리지의 경로는 [GEM]에 의해 지정된다.
  • 시스템 스토리지는 모든 BD-J 플레이어에 존재할 스토리지다. 이 시스템 저장소의 필요한 최소 크기는 설정, 고점 등과 같은 응용 프로그램 데이터의 저장을 허용한다. 다운로드한 AV 자료를 저장할 수 있을 만큼 크지는 않을 것이다. 이를 위해 로컬 스토리지(옵션)를 사용할 수 있다. 일반적으로 시스템 스토리지는 플래시 메모리를 사용하여 구현되며 선택적 로컬 스토리지는 HDD에 구현된다.
  • 저장소는 플레이어에서 재생되는 모든 디스크 사이의 공유 리소스이므로 Java 액세스 제어는 BD-J의 일부분이다. BD-J 애플리케이션은 저장 공간의 특정 부분에만 액세스할 수 있으며 다른 디스크에 속하는 부분에는 액세스할 수 없다.

콘텐츠 개발

컨텐츠 작성자는 NetBeans 또는 Eclipse와 같은 전통적인 IDE(Integrated Development Environment)의 사용, Macromedia Director와 유사한 비프로그래밍 그래픽 환경 또는 HTML, XML 또는 SVG와 같은 표준 데이터 형식을 사용하는 렌더링 엔진을 사용하는 등 다양한 개발 전략을 이용할 수 있다. 모든 블루레이 디스크 플레이어에서 사용할 수 있는 완전한 프로그래밍 환경을 갖추면 개발자들은 표준 DVD의 제한에 얽매이지 않는 콘텐츠 유형을 만들 수 있는 플랫폼을 제공한다. 표준 BD-J API 외에도 개발자들은 기존 Java 라이브러리 및 애플리케이션 프레임워크가 BD-J 플랫폼의 제약조건 이외의 기능을 사용하지 않는다고 가정하고 Java ME가 Java 버전 1.3 클래스 파일만 지원한다는 것을 포함할 수 있다.

자바 개발자가 BD-J를 통합한 완전한 디스크 이미지를 제작할 수 있도록 자유롭게 이용할 수 있는 툴 세트는 HD Cookbook Project에서 이용할 수 있다.[3] 일반적인 개발 환경(MS Windows)에서 콘텐츠를 테스트하려면 플레이스테이션 3 또는 Windows용 타사 소프트웨어 플레이어가 필요하며 플레이어가 BD-J를 지원하는지 플레이어 버전에 주의를 기울여야 한다.[4][5][6]

관련된 많은 다른 표준과 구성요소들 때문에, BD-J에 통일된 문서를 작성하는 것은 어려운 과제임이 입증되었다.[7][8][9]

샘플코드

BD-J 환경은 Xlet을 비-비-비-비-비-비-비-비-비-비-비-비-비-비-javax.* Java TV에 의해 정의된 것 이상으로 이 플랫폼의 특정 기능을 이용할 수 있는 패키지.

FirstBDJApp와 같은 간단한 예라도 말이다.[10]

개발자가 사용하지 않는 것을 선택할 수 있음 javax.* 패키지 대신 다음을 사용하십시오.

  1. 패키지 트리의 HAVi 클래스 org.havi.*: 예를 들어, 얻을 수 있는 대체 클래스 org.havi.ui.HScene 에 의해 제공되는 것을 훨씬 넘어서. javax.tv.graphics.TVContainer (둘 다 의 연장이다. java.awt.Container)
  2. 패키지 트리의 DVB(디지털 비디오 방송) 클래스 org.dvb.*: 예를 들어, 에 대한 대체 클래스 org.dvb.event.UserEventListener 보다 인터페이스 java.awt.event.KeyListener 인기 있는 CDC 장치 전용 키 누름 및 키 코드 지원.
  3. 패키지 트리의 블루레이 디스크 클래스 org.bluray.*: DAVIC 및 DVB 클래스는 팝업 메뉴와 같은 BD-J 플랫폼 고유의 추가 이벤트를 인식하고 블루레이 디스크에서 미디어를 찾는데 의존한다.
  4. 패키지 트리의 DAVIC API 클래스 org.davic.*: HAVi, DVB 및 Blu-ray 클래스는 로케이터 및 전문 예외(예: 콘텐츠 인증)에 사용되는 인터랙티브 TV 특유의 다른 네트워크 및 미디어 리소스를 감싸거나 확장하는 소량의 클래스.

각 클래스 트리의 일부 특징을 사용하는 프로그램의 작업 예로는 자바 ME 3.0 SDK에 예시된 BdjGunBunny Xlet(토끼가 저격수로, 거북이가 표적으로 사용하는 매우 간단한 버전의 Space Invider)이 있다.

수입하다 javax.tv.xlet.XletContext;  수입하다 org.havi.ui.HScene; 수입하다 org.havi.ui.HSceneFactory;  수입하다 자바.와트컨테이너; 수입하다 javax.tv.properties.TVContainer;  // 화면용 컨테이너를 구하는 것은  공중의 공허하게 하다 initXlet(XletContext 문맥) {  // Java TV와 호환되는 Java TV API TVContainer 장면 = TVContainer.getRootContainer(문맥);  // 또는 BD-J의 경우 Java TV에서 사용할 수 없는 HAVi 기능을 활용 HScene 장면 = HSceneFactory.getInstance().getDegetDefaultHScene();  // 아니면 더 일반적으로... 컨테이너 컨테이너 = 무효의; 부울 리얼BDJ = 진실의; 만일 (리얼BDJ)  컨테이너 = HSceneFactory.getInstance().getDegetDefaultHScene(); 다른  컨테이너 = TVContainer.getRootContainer(문맥); ... } 

다른 비-비-비-비-비-비-비-비-비-비javax.* 꾸러미 마찬가지로 동영상을 재생하려고 할 때 일반 JMF를 사용하는 대신 블루레이와 DAVIC 유틸리티를 호출할 수 있다.

수입하다 자바스.미디어플레이어; 수입하다 org.bluray.net.BDLocator; 수입하다 조직.데이비시.미디어.미디어로케이터;     미디어로케이터 별들 = 새로운 미디어로케이터(새로운 BDLocator("bd://0.PLAYlist:00003"));    플레이어 선수 = 관리자.createPlayer(별들);  // 전통적인 JMF보다는 휴대성이 뛰어나지만 보다 제한적인 순수 JMF  수입하다 java.net.URL; 수입하다 자바스.미디어관리자; 수입하다 자바스.미디어플레이어;      플레이어 미디어플레이어 = 관리자.createRealizedPlayer( 새로운 URL("파일:/mymovie.movie" )); 

관련출판

  • HD DVD블루레이 디스크 프로그래밍 Michael Zink, Philip C의 HD Cookbook(2008) 스타너, 빌 풋 - ISBN978-0-07-149670-4 - 도서 웹사이트

참고 항목

참조

  1. ^ "Blu-ray BD-J Application Development using Java ME". Archived from the original on 2008-09-11. Retrieved 2008-10-21.
  2. ^ "Blu-ray Disc Assn. promotes new Bonus View".
  3. ^ BD-J용 HDCookbook
  4. ^ "Blu-ray Disc Java and GEM/MHP/OCAP Authoring Notes and Guidelines". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  5. ^ (BD-J) PC Player 소프트웨어 Wayback Machine보관된 2008-12-24 - 플레이의 특별한 "개발자 버전"이 필요할 수 있다고 언급
  6. ^ HelloWorld BD-J 애플리케이션: Wayback Machine보관차세대 DVD 2009-02-07을 위한번째 컵 - PC 플레이어로 원격 디버깅 또는 로깅을 활성화하는 방법에 대한 참고 사항 포함
  7. ^ 이제 BD-J를 위한 통합 개발자 문서화 가능
  8. ^ Blu-ray 디스크 응용 프로그램 개발을 위한 Javadoc API 참조 문서 구축
  9. ^ "Getting a BD-J Platform Definition". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  10. ^ Java ME를 통한 블루레이 디스크 애플리케이션 개발, 1부: 첫 번째 애플리케이션 작성, 2008년 9월

외부 링크