logo
이철성's Blog
이과장의 프로그래밍이야기


보통 인코딩이라 함은 트랜스코딩을 말합니다.

즉 A 포맷에서 B 포맷으로 변환하는 것이죠.

이때 아래와 같은 상황이 벌어집니다.


1. A 포맷을 디코딩        -------->            2. B 포맷으로 인코딩


이 각각에 대해 하드웨어 가속기능이 제공되고요.

특히 하드웨어 디코딩 관련된 프로그램은 많이 나와있습니다.


익스프레션 인코더에서 고화질 영상의 트랜스코딩을 위해

디코딩과정에 coreavc 의 cuda 기능을 이용하여

하드웨어 가속을 이용해 봤습니다.

참고로 말씀드리면 아래 스크린샷은 하드웨어 가속을 사용하지 않는

ffdshow 를 이용하여 이번 테스트에서 사용한 burne.mkv 파일을 재생했을때의 모습입니다.

cpu 가 30-40% 대에서 놀고 있습니다.

(참고로 테스트에 사용되었던 컴퓨터는 q6600 (2.4G, 쿼드코어), 메모리8기가, nVidia 9600GT 입니다.



이것을 Coreavc 코덱을 설치하여(1.9.5) 재생하면

cpu 점유율이 6-7 % 대가 됩니다.

즉 gpu 가 많은 일을 대신해주고 있다는 뜻이 됩니다.

(참고로 coreavc 는 1.9.0 버전부터 gpgpu 기술인 cuda 를 이용합니다.)



오늘의 테스트 주인공파일입니다.

재생시간은 7분정도이고 약 700 메가 용량을 가진 파일입니다.



테스트는 Expression Encoder 2 SP1 을 기준으로 이루어졌으며

어댑티브 스트리밍을 프로파일로 삼았습니다.




이제 인코딩해보겠습니다.(트랜스코딩이라 해야겠지만 아무래도 익숙치 않은 분들이 많으므로)



CPU 점유율이 상당히 높게 나옵니다.

4개 코어 모두 잘 쓰고 있습니다.(좋은 모습)


인코딩 끝나고 확인해보면 30분정도가 걸렸다는 것을 알 수 있습니다.

자 이제 옵션에서 필요한 코덱을 제외하고 모두 사용하지 않는것으로 세팅합니다.

( 사실 이부분에서 개인적으로 좀 고난이 있었지만 실험이 중요하므로 언급하진 않겠습니다.)



아래 그림을 보시면 CPU 를 잘 먹고 있다는 것을 아실 수 있습니다.( 아주 바람직한 모습입니다.)


우측 하단을 보시면 cuda 를 쓰고 있다고 아주 잘 나오고 있습니다.





결과는 ???









28분정도 걸렸습니다. -_-;;

하드웨어 가속 안한것과 2분밖에 차이가 나지 않다니

디코딩쪽보다는 인코딩쪽에 시간이 많이 걸리나 봅니다.

분명한 속도차이가 있을거라 믿었는데

꼬박 이틀 투자한것 치고는 성과가 없군요 ㅜ.ㅜ;


ps : 생각해보니 비트레이트별로 네 단계나 인코딩을 해야하니 그런가봅니다.

smooth streaming 이 아니라면 더 빠를 수도 있겠다는 생각이 드네요..
저작자 표시 비영리 변경 금지
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

TRACKBACK :: http://www.feelmind.com/trackback/156 관련글 쓰기

댓글을 달아 주세요

  1. BlogIcon 이철성  댓글주소  수정/삭제  댓글쓰기

    어댑티브 스트리밍은 1개의 소스를 4가지 혹은 그 이상의 형태로 만드는것이므로

    실제 1:1 로 인코딩하는 일반적인 상황에서는 확실히 성능향상이 있을것 같습니다.

    하지만 이 실험의 목적은 회사에서 써먹기 위한것이었으므로

    더 이상 해보진 않겠습니다. ㅜ.ㅜ

    2009/04/03 16:36
  2. BlogIcon cdmanii  댓글주소  수정/삭제  댓글쓰기

    2분이면 작은 차이는 아닌듯해요 다만 프로세서 우선순위를 최우선으로 두고 했으면 어느정도 까지 벌어졌을지 궁금해지네요
    좋은글 잘봤습니다 ^^

    2009/04/03 16:58
  3. BlogIcon joongs  댓글주소  수정/삭제  댓글쓰기

    고생많으셨네요.

    2009/04/07 16:06
  4. 이철웅  댓글주소  수정/삭제  댓글쓰기

    내용 잘 보았습니다. 그런데 질문 한가지 드리겠습니다.
    어댑티브 스트리밍 옵션을 주게되면 4단계로 트랜스코딩 한다고 하셨는데 최종 파일크기도 증가하게 되나요?
    예를 들어 1450, 1050, 600, 350kbps로 각각 인코딩된 파일을 합쳐 놓은 것이 최종 파일 크기가 되는지요?
    궁금해서 염치 불구하고 질문드립니다.

    2009/05/04 20:45
  5. 햇냥  댓글주소  수정/삭제  댓글쓰기

    CPU를 85%이상 점유하게 될 때는... 웹 서버(파일 업로드)와 인코딩 서버를 하나의 서버로 할 수 없을 것 같다는 생각이 드는데요.. 제가 생각하는 게 맞을까요? 보통은 인코딩 서버를 따로 두고 쓰나요?
    그리고 질문이 또 있습니다. 혹시 멀티 인코딩이나 인코딩 스케쥴러를 따로 개발하여 사용하시는지 궁금합니다.
    어디에 질문을 해야할지 몰라 헤매다가 이과장님 블로그에 와서 올리게 되었습니다^^;; 혹시 MS에 Encoder관련한 질문을 할 수 있는 분이 계시나요?

    2009/12/18 16:50

1  ... 34 35 36 37 38 39 40 41 42  ... 188 

카테고리

분류 전체보기 (188)
JAVA 프로그래밍 (0)
.NET 프로그래밍 (126)
상식 (5)
생활 (30)
Silverlight 강좌 (20)
재미로보는 동영상 (2)
유용한 프로그램 (3)
경영학 (2)

달력

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31