포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

Packet Video(PV)라는 회사는 미국 샌디에이고에 있습니다.
멀티미디어 관련 솔루션으로는 능력도 뛰어나고 이 바닥에서는 매우 유명한 회사입니다.

PV는 CORE라는 제품을 만들었고, 이는 매우 다양한 기기들의 미디어 프레임웍으로 사용되었죠.
CORE의 성공 이후, 구글과 손잡고 Open Source 버전의 CORE를 Android에 제공했습니다.
PV도 OHA 멤버이지만, 구글의 펀딩도 상당했었으리라 짐작이 됩니다.

하여간 이 OpenCORE는 안드로이드의 미디어 서브시스템을 담당하고 있습니다.
Git상의 최근 버전은 2.03인듯합니다만, 공식 문서는 2.1 rev1 이네요. 버전 넘버링 오류같군요.

 OpenCORE는 Khronos의 OpenMAX 스펙을 지원합니다. 참고로 크로노스는 OpenGL로 유명한 단체입니다.
최근 릴리즈는 디코딩과 엔코딩을 모두 구현하여 3G폰의 화상통화나 HD급 캠코더 기능도 가능하도록 개선되었습니다.

하드웨어 가속 비디오 코덱을 OpenCORE에 추가하기 위해서는 다소 복잡한 과정이 필요한것 같습니다.
우선 http://www.khronos.org/openmax/를 참고하여 OpenMAX IL (Intergration Layer API)를 알아야 합니다.
OpenCORE는 MS의 D-show filter형태나 Gstreamer의 PlugIn 코덱과 유사한 구조로 런타임시 교체가 가능한 구성입니다.
사실 Codec뿐아니라 Parser,Demuxer에서부터 AV Renderer/Mixer까지 모두 plugin 구조를 권장합니다.

기본적인 plugin 구성 규칙과 각 코덱의 상이한 API를 일반화시키는 Wrapper의 형태를 파악하는 것이 주로 해야할일 같습니다.
PV OpenCORE framework과 OpenMAX IL 1.1을 준수하는 AV 코덱들의 실제 구성은 아래 링크 PDF를 참고하세요.
http://android.git.kernel.org/?p=platform/external/opencore.git;a=blob_plain;f=doc/omx_core_integration_guide.pdf;hb=master

저도 아직은 수박 겉핥기식이라 대충 흐름만 파악하고 깊이있는 내용은 잘 모릅니다.
다만 완성도 높은 안드로이드 장치를 만든다는 것이 대단히 험난하고 어려운 일이라고만 어렴풋이 알것 같습니다.
읽어야할 문서가 너무 많아 엄두가 나질 않습니다. 봐야할 코드는 그 보다 훨씬 더 많습니다.
안드로이드의 개념은 안드로메다로 떠난지 오래 되었습니다....

블러그도 아닌곳에 블러그 글을 남기고~~
화창한 주말에 여행을 떠납니다. 개념찾으러~~


유형목

2009.04.19 09:48:11
*.131.98.102

패킷 비디오는 미국에 수출되는 핸드폰이라면 어쩔수 없이 탑재해야 되는 녀석중의 하나입니다.
미국의 버라이즌에 공급되는 단말기라면 거의 필수적으로 들어있습니다.

삼성이나 엘지도 예전에 핸드폰 단말기에 이거 탑재하느라고 미국에 여러명 개발자들을 보내서 호텔방에서
몇개월씩 삽질을 하곤 했습니다.

구글이 패킷 비디오의 오픈버전을 안드로이드에 탑재하게 만들었다는 사건 하나만으로도
미국시장은 거의 안드로이드로 도배질 될것으로 봐도 무방합니다.

그만큼 구글이 노리는 속셈은 스케일이 크다고 할수 있겠습니다.
언제나 그랬지만 모든 사업의 규모가 글로벌하게 움직입니다.

게다가 아이폰이 폐쇄적인 구조를 계속 유지하고 있는데 반해
안드로이드는 거의 모든게 공개되어 있다 시피합니다.

그렇기 때문에 안드로이드가 차후의 핸드셋 단말기 시장에 미칠 파장은
크다고 볼수 밖에 없겠죠.

장석원

2009.04.19 20:38:28
*.186.65.152

두분 다 좋은 정보 감사드립니다 ...
멀티미디어 코덱 설계일이 한가지가 마무리 단계이고
멀티미디어 코덱관련 업계동향도 항상 주시하고 있었는데 ...
좋은 정보 다시한번 감사드립니다 ...

박윤선

2009.08.03 20:48:58
*.136.171.59

지금 OpenCORE 에 대해 공부를 하고 있었는데 두 분의 이야기에 많은 도움을 받았습니다.
궁금한것이 한가지 있는데 현재 Android 에서 사용하는 Multimiedia framework 인 OpenCORE 와 OpenMAX 사이의 인터페이스가 OpemMAX IL 인 것으로 알고있습니다. 만약 기존의 소프트웨어적인 비디오 디코더/인코더 를 사용하지 않고 하드웨어를 사용하기 위해서는 안드로이드에 잇는 OpenMAX 를 사용하지 않고 OpemMAX IL 인터페이스 맞춰서 새로운 OpemMAX Module 을 만들어 줘야 하는지 궁금해서 이렇게 질문을 드립니다. 혹시 이렇게 적용된 모델이나 소스가 있는지 아시면 알려주시면 고맙겠습니다. 그럼 수고하십시오.


김승범

2009.08.04 19:28:17
*.106.104.61

조금 잘못된 곳을 수정해 드립니다.
openmax(이하 omx) 원래 크로노스에서 스팩을 정할때 DL, IL, AL로 나눠서 만들었구요.
DL은 HW, IL은 Codec, AL은 App이정도로 이해 하시면 됩니다. 자세한건 크로노스에 가면.......
그중 가장 많이 쓰이는것이 IL입니다. (뭐 회사마다 다른 Codec Api를 하나로 통합시키는 부분이니 많이 쓰이죠)
opencore에서도 쓰는데요........ opencore는 각각 기능을 가진 노드와 그 노드들을 연결/운용하는 엔진으로 구성되어 있습니다.
그 노드중에 오디오/비디오(dec/enc)노드 만이 omx를 사용합니다.
그리고 opencore 노드와 omx의 연결을 위해서는 pv_omx_interface를 만들어야 합니다.
또한 omx IL은 omx IL component와 omx IL core(pv opencore 아님!!!!!!!), omx IL client로 구성되는데..... omx IL client는 omx IL을 사용 하는놈으로 opencore의 노드로 보면 됨......
즉 portting을 위해서는 omx IL component, omx IL core, pv_omx_interface를 개발 해야 합니다.
추가적으로 pv opencore는 omx IL v1.1을 지원 한다고는하나..... IL의 모든 스팩을 지원하는 것은 아니구요....
IL의 중요 기능은 거의 지원하지 않아서..... 조금만 수고하시면(open source 참조) omx IL component, omx IL core를 만들수 있을겁니다.

푸른꿈

2010.04.09 02:19:35
*.82.66.119

궁굼해서 문의 드립니다. 저기 opencore로 개발된 것은

1) 어떻게 컴파일 하는지?

2) 안드로이드에 어떻게 끼워넣는지?

3) 코덱 추가는 어떻게 하는지?

4) 그후 안드로이드 응용프로그램은 어떤식으로 개발하나요?

이렇게 궁굼한데...조금이라도 아시는 분은 조언부탁드립니다. 감사~~~

List of Articles
번호 제목 글쓴이 날짜 조회 수
24 Google Android 커널 버전별 Testing Report [2] 김재훈 2009-05-17 11493
23 Android 동작시 Battery 관련 /sys 파일 에러 & Power off ... [2] 2009-05-09 11010
22 Android 커널 2.6.27~28버젼에서 CONFIG_SUSPEND옵션시 죽는 문... [3] 2009-05-08 10026
21 S3C6410 target으로의 Android porting에 대하여(1) [3] 고현철 2009-04-23 20133
20 Android 초보도 가능한 Touch 잡기. [1] 2009-04-23 12229
19 touch calibrate 방법 file [1] 전병환 2009-04-23 10442
18 Android에서의 Linux Network 환경 설정 방법 [1] 김재훈 2009-04-21 20514
» PV와 Android [5] 이제현 2009-04-19 18163
16 OpenGL ES와 Android [3] 이제현 2009-04-18 22839
15 Android에서 yaffs2 image 만들때 oobfree 따르도록 수정 file [1] 2009-04-16 11896
14 안드로이드 6410 보드 관련 s3c-ts touch 잡기 [5] 김한철 2009-04-16 13738
13 Android yaffs image 흠..oob가 이상합니다. 2009-04-16 10888
12 File System 관련 문제 및 power off 문제 해결 [3] 김한철 2009-04-14 10202
11 Google Android Kernel-2.6.29 file 관리자 2009-04-14 12085
10 aesop-6410용 android 2.6.24 source file [12] 고현철 2009-04-12 12131
9 android를 6410에 포팅하면서... [7] 전병환 2009-04-10 18227
8 Android Debug Bridge(ADB) 사용 가이드 김재훈 2009-04-09 18864
7 Android Initialization Process 최종환 2009-04-09 24638
6 Android 부팅 및 초기화 절차 김재훈 2009-04-09 17000
5 Android용 root filesystem으로 cramfs 구성 할 때의 주의사항 [7] 김영문 2009-04-09 21375

사용자 로그인