최근에 VC-1 코덱을 사용하면 라이선스 비용때문에 도입을 못하겠다… 그래서 H.264를 선택했다…라는 얘기를 들었는데요, 저도 라이선스 관련은 제대로 모르지만 여튼 VC-1과 H.264모두 MPEG LA라는 곳에서 라이선스를 계약해야 하는 걸로 알고 있었거든요. 암튼 그간 실버라이트 하면서 VC-1과 H.264의 기술적 차이나 특성은 많이 봤지만 정작 중요한 라이선스 비용에 대한 정확한 얘기는 못 본 것 같아서 자료를 좀 찾아봤어요.
…아뿔싸 그런데 역시나 한글 자료는 없더군요 =_= 
후우… 또 삽질 정신을 발휘하여 발번역 및 眞요약본 나갑니다. 
이게 법적인 용어들과 경제 용어가 난무하다 보니 농담이 아니고 진짜 발번역인데다가 같은 말을 여러 번 반복하는 부분은 과감하게 생략한 부분도 많으니 혹시 실무에 사용하시려는 분은 꼭, 반드시 제대로 된 검토를 거치시길 바라고 번역상 심각하게 문제가 있는 부분은 알려주세요.

▼VC-1 코덱 라이선스 발번역 보기

아오 빡세… 근데 원문을 봐도 번역문을 봐도 솔직히 복잡하긴 마찬가지에요. 그래서 진짜 초 간단하게 표로 요약해 봤고요, 대략적인 비용 계산은 이 표를 이용해도 될 것 같아요.

 

두둥~~

아니 어째 이렇게 정리가 되는 내용을 베베꼬아 놨대요 그래. 일단 표로 만들고 주석을 다는게 훨씬 보기 좋구만…

어쨌든, 우리의 관심사는 실버라이트로 미디어 서비스를 제공할 때 비용이 어떡게 되느냐…겠죠? 그리고 궁극적인 답은 공짜로 쓸 수 있느냐 없느냐고요. 결론적으로는 ‘제한적으로’ 가능하다 에요. 위의 표에 따라 VC-1 코덱을 사용한 미디어로 서비스 할 때 무료로 이용할 수 있는 조건은 다음과 같이 정리할 수 있겠네요.

  • 사용자에게 한 건당 요금을 받지만 영상이 12분 이하일 때.
  • 사용자에게 기간 한정 또는 개수 한정으로 요금을 받지만 서비스 가입자가 10만명 이하일 때.
  • 사용자에게 직접적으로 요금을 받지 않는 인터넷 서비스일 때. 
    (※단, 이 경우 광고 등의 수익 모델은 가능하며 2012년까지 한시적으로 적용됨)

네 사실 이 세 문장을 보기 위해 저런 캐삽질을 한 거죠.

그럼 H.264는 어떨까요? 이쪽도 해봐야 겠죠? 그.런.데. 진짜 하나하나 거의 다 똑같은 문구로 되어 있고 결정적으로 라이선스 비용도 완전히 동일해요. 제가 결코 귀찮아서 번역이랑 요약을 안하는게 아니고요. 핫핫!

한 가지 다른 점이 있다면 현재 VC-1의 라이선스 기간(주기)가 2012년까지인데 반해 H.264의 경우 2010년까지라는 거죠. 만약 인터넷으로 무료 서비스를 한다면 H.264의 경우 당장 내년 이후에는 라이선스 갱신을 고려해야 하고요, VC-1의 경우는 그럭저럭 2012년까지는 버틸 수 있다는 거죠. 물론 조항에 보면 ‘근거있는’ 조건으로 라이선스 조항이 변경될 가능성도 있지만요.

여튼 전적으로 제 해석에 따른 결론은 VC-1과 H.264의 ‘실제 서비스 비용’은 완전히 동일하다 이고요. 오류 지적은 웰컴 베리 쌩유~

'dev > Media' 카테고리의 다른 글

YUV 4:2:0 메모리 배열 구조  (0) 2010.11.09

  • 영상 관련 프로그래밍을 하다보면 YUV 4:2:2 포맷이나 YUV 4:2:0 포맷을 RGB 로 변환해야 할 경우가 종종 생긴다.
  • YUV 4:2:2 포맷은 흔히 접하는 포맷이고, 컨버팅 소스도 여러군데 있기 때문에 별로 어려움이 없다. 하지만 YUV 4:2:0 포맷의 경우는 흔히 접하기 힘든 포맷들이고,
  • 또한 컨버팅 소스도 별로 없어서 좀 힘이 든다. 나름대로 여러 사이트들을 돌아다녀보면서 삽질을 해 본 결과 YUV 4:2:0 의 4가지 정도 포맷을 RGB로 변환하는데 무리가 없게 되었다.
  • FourCC.org 보다는 MSDN 의 글이 좀 더 이해하기가 쉬웠다.
  • 크게 12bit YUV 4:2:0 포맷에는 4가지 종류가 있다. YV12, NV12, IMC2, IMC4 정도이다.
  • 24비트 RGB 표현을 12비트로 표현하는데 YUV 중에서 Y 정보가 8비트, U 가 2비트, V 가 2비트, 이렇게 평면상에서 블록단위로 구성된다.
  • 이중에서 가장 자주 접할 수 있는 것이 YV12 혹은 NV12 이다. 주로 MPEG2 영상에서 많이 쓴다.
  • yuv_00

  • YV12 메모리 구성도는 그중에서 가장 쉽다. 메모리 순서대로 Y, V, U 로 블럭이 잡혀 있다. 다만 Stride 정보라고 해서 라인당 여분 메모리가 조금씩 붙어있는 경우가 있다.
  • 이럴때는 제대로 변환하기 위해서 Stride 정보를 버려줘야 할 경우도 생긴다.
  • yuv_01

  • NV12 는 YV12 보다는 좀 복잡한데, 처음 블럭은 Y 만 있고, 그다음에는 U1V1U2V2 이런식으로 한바이트씩 메모리가 배열된다. DXVA 지원을 위해서 권장되는 포맷이라고 한다.

  • yuv_02

  • IMC2 포맷은 거의 경험해 보지 못한 포맷인데, Intel 계열의 그래픽에서 사용되지 않을까 조심스럽게 추측(?) 해본다.
  • 일단 Y 블럭은 처음에 독립적으로 존재하고, 다음에 한 라인을 반으로 갈라서 V , U 가 존재한다.
  • 예를 들어 한 라인이 480 바이트라면 240 바이트는 V , 나머지 240 바이트는 U 로 구성된다는 말이다. 그렇게 라인이 이미지 Height 만큼 이어진다.
  • yuv_03

  • IMC4 포맷은 IMC2 와 거의 동일하다. 다만 V 와 U 의 위치가 바뀌어있다.
  • 이렇게 Y, U, V 정보를 추출하는데 성공하면, YUV 4:2:0 -> YUV 4:2:2 -> RGB 혹은 YUV 4:2:0 -> RGB 변환 공식을 통하여서 일반 비트맵으로 변환하게 된다.

  • 변환 과정에서 floating 연산이 들어가게 되므로 상당한 시간이 소비되는데, 이를 테이블 참조 방식으로 진행하는 방법도 있다고 한다.
  • 출처 : http://praise4.egloos.com/1742236

'dev > Media' 카테고리의 다른 글

[펌] VC-1 코덱과 H.264 코덱의 라이선스  (0) 2010.11.09
1

+ Recent posts