MHEG


MHEG('엠헥'이라고 읽는다)은 멀티미디어 문서 형식의 국제표준이다.

엠헥 문서는 하나의 파일이며 그 안에 여러 매체 조각들 사이의 동기화 정보를 담고 있다. 각각의 매체 조각들은 별도의 파일로 존재할 수도 있고, 엠헥 파일 안에 포함되어 존재할 수도 있다.

엠헥 파일은 별도의 변환 등을 거치지 않고 모든 시스템에서 사용될 수 있다 (사실 이것이 '표준'이라는 것의 역할이다). 즉 엠헥은 교환형식의 표준이다. 또한 엠헥 파일은 컴파일된 것이기 때문에 보통의 프로그램과 마찬가지로 역공학이 힘들다. 이를 최종형(final form) 또는수정불가(non-revisable)하다 한다. 즉 (프로그래밍에서 말하듯이) 소스레벨 호환성이 아닌 바이너리 레벨 호환성으로 생각하면 된다.

엠헥에서는 각 구성 매체조각, 버튼 등을 객체(object)로 생각한다.
각 매체형 및 관련 루틴 등을 정의하는데 있어 객체지향 프로그래밍의 방법을 사용하는 것이다. 각 클래스들은 상속을 사용하여 정의된다. 모든 클래스의 선조가 되는 클래스는 MH-OBJECT 클래스로서, 거기서는 모든 엠헥 객체가 공통적으로 가져야할 정보 및 기본루틴을 정의해두고 있다. 이를테면 버전, 저작권 정보, 클래스 아이디 등이다.

엠헥 문서는 매체간의 동기화만을 기술한 것이다. 매체 내부 동기화는 하부 시스템에서 자연스럽게 이루어진다고 가정하고 있다.

매체간 동기화는 링크 객체를 사용함으로써 이루어진다. 링크 객체는 "어떤 객체에서 어떤 사건이 일어나면 어떤 객체(들)에게 어떤 메시지를 보낸다."를 명세해놓은 것이다. 어떤 매체조각이 끝나거나 사용자로부터 입력이 들어오거나 매체조각이 시작된지 얼마가 지났을 때 등이 링크를 작동시키는 사건의 예이다.

객체에게 보내는 메시지를 액션 객체라 부르며, 그 종류에는 준비, 작동시작, 정지, 소멸 등이 있다. 객체는 액션객체를 받았을 때 그에 해당하는 자신의 메쏘드를 실행시킨다. 이 메쏘드를 동작(behaviour)라 부른다.

엠헥 문서를 해석하고 구동시켜주는 재생기를 엠헥 엔진(MHEG engine)이라 부른다. 엠헥 엔진은 엠헥 문서를 해석하여 실행시간 이미지를 만들어놓고 실행한다. 주역할은 링크 사건을 추적하여 참이 되면 그에 해당하는 새로운 프로세스(혹은 쓰레드)를 생성하는 일이다.



이전으로


한단계 위


처음으로


다음으로