출처 - 위키





'Project > Streaming Server' 카테고리의 다른 글

streaming 기술 이해  (0) 2013.04.17
H.264 자료 1  (0) 2012.06.16
Streaming - 인터넷 방송  (0) 2012.06.11
Streaming - iptv  (0) 2012.06.11
컨테이너 포맷  (0) 2012.06.11
Posted by linuxism
,


인터넷방송

스트리밍


상 식&지식편에서는 우선 인터넷상의 방송과 동의어로도 곧잘 사용되는 “스트리밍”에 대해 알아본다 인터넷에서 파일이 작은 조각으로 나뉘어져 연속적으로 전송되는 것을 의미하는 스트리밍이 어떻게 탄생했고 종류로는 무엇이 있는지 살펴보자.

인터넷방송을 즐긴다는 것은 곧 스트리밍을 즐긴다는 의미와 상통하는데 이 스트리밍이라는 용어가 최근 부쩍 많이 사용되고 있다.
실제로는 자사 웹사이트에 스트리밍을 채용한 기업은 미국의 경우 지난 해에 비해 올해 17%증가했고 내년에는 47%증가할 것이라고 한다.
또한 스트리밍을 지원하는 프로그램인 리얼플레이어는 매일 10만회에 이르는 다운로드 횟수를 자랑하고 있다고 한다.
그렇다면 과연 스트리밍이란 무엇인가?여기서는 인터넷방송에 있어서 반드시 알아야 할 상식 또는 지식 중하나로 스트리밍에 대해 살펴보기로 한다.
스트리밍이란? 인터넷 방송에 있어서 스트리밍이라는 개념은 리얼네트웍사가 개발한 스트리밍 멀티미디어라는 기술에서 유래하는데, 이 기술의 원리는 아무리 큰 대용량의 멀티미디어 자료라도 이를 개별적으로 실행할 수 있는 1~2초분량의 작은 조각으로 나눠 시냇물이 흐르듯이 연속적으로 전송함으로써 이를 수신하는 사람은 전체자료가 모두 수신될때까지 기다릴 필요없이 즉석해서 각 조각의 파일들을 재생할 수 있도록 하는 것이다.
이는 마치 TV를 켜자마자 다양한 방송을 시청할 수 있는 것과 같은 효과를 제공한다고 해서 “인터넷방송”이라는 이름을 얻게되었다 그래서 현재 스트리밍이라는 용어는 인터넷상에서의 방송을 의미하며, 웹상에서 미이어 파일을 보는 것을 뜻하게 된다.
스트리밍의 기원과 표준 프로토콜 사실 스트리밍의 원조라고 할 수 있는 것은 뜻밖에도 이메일이다.
이메일 뉴스레터를 생각해보자 이것은 전송해달라고 요구한 것도 아니고 이시간에 도착하도록 예약해놓은 것도 아님에도 불구하고 전송되어 있다.
바로 푸시기술을 이용한것이데 그렇다면 푸시기술이 스트리밍과 무슨 관계가 이있는가?
왜냐하면 푸시기술은 동시다발적으로 미디어나 컨텐츠를 인터넷으로 방송한다는 뜻의 “브로드캐스팅”(Broadcasting)을 의 미하기 때문이다.
따 라서 스트리밍은 브로드캐스팅의 한종류라고 할 수 있다. 한편 스트리밍은 기술적으로 유니캐스트(Unicast)와 멀티캐스트(Multicast)로 방식으로는 주문형(On Demand)과 라이브(Live)로 나뉘게 된다. 그렇다면 스트리밍은 어떤 프로토콜(일종의 계약)을 사용해 유니캐스트와 멀티캐스트를 행할까?
스트리밍 기술이 사용하는 표준 프로토콜은 RTSP(Real Time Streaming Protocol)이며, 이 규격은 지난 “98년, 넷스케이프사와 리얼네트웍사, 컬럼비아대학교가 공동 개발해 IETF(Internet Engineering)에 표준으로 등록한 것이다 참고로 RTSP프로토콜에 대해 좀더 자세하게 알고 싶다면 리얼네트웍사의 http://www.realnetworks.com/devzone/library/rtsp/index.html 를 참고하도록 한다.
한 편 애플은 지난”97년 퀵타임 TV라는 프로젝트명으로 스트리밍에 대한 연구를 진행하였으나 얼마 지나지 않아 프로젝트명으로 스트리밍에 대한 연구를 진행했었으나 얼마 지나지 않아 프로젝트를 중지해버렸고, 리얼네트웍사는 RTPS를 개발하기전까지는 PNM이라는 프로토콜을 사용하였다.
RTSP가 표준이라면 퀵타임이나 윈도우즈 미디어 플레이어도 이규격을 사용할까? 물론 그렇다 퀵타임이나 윈도우즈미디어 플레이어의 액티브 스트리밍 포맷(.asf)은 클라이언트와 서버간의 상호작용을 RTPS에 의존해서 구현하고 있다.


H.323
RTPS와 H.323dms ahen RTP(Real Time Transport Protocol)프로토콜을 사용하므로 둘다 RTP의 하위개념이라고 볼수 있다.
이 중 H.323은 특히 소규모 그룹의 화상회의 에서 주로 사용되는데 RTPS에서처럼‘정지’와 ‘녹화, 재생’같은 비디오 명령은 지원하지 않는다.
참고로 H.323은 ITU(International Telecommuncations Union)에서 인정한 표준이다.

스트리밍의 종류 앞서 스트리밍 방송은 방식으로는 주문형과 라이브로 나뉘고, 기술적으로는 유니캐스터와 멀티캐스터로 구분된다고 했다.
주문형 스트리밍과 라이브 스트리밍 흔히 접할 수 있는 인터넷방송은 두가지다.
첫 번째 주문형 스트리밍, 즉 미리 준비되어있는 미디어 파일을 스트리밍해 보는 방식으로 애플의 아이맥 광고 사이트(http://apple.com/imac/theater.html)에 가보면 주문형 스트리밍 방식의 광고 무비들을 볼수 있다.
이 무비들을 보기 위해서는 우선 해당파일을 클릭한 후 그 파일의 구동신호를 받을때까지 기다려야 한다.
물론 모두 받기전에 무비가 실행되기도 하는데 그것은 무비가 끝나는 시간에 맞춰서 실행시간을 조정해
놓았기 때문이다.
이 방식은 전화모뎀을 사용하건 ADSL을 사용하건 상관없이 미리 준비되어있는 파일을 보는 것이기 때문에 영상의 질에는 변함이 없다.
단 회선 속도의 차이로 인해 다운로드 시간이 달라질 수는 있다.
두번째 방식은 바로 라이브 스트리밍이다.
이방식은 해당하는 곳을 클릭하면 곧바로 스트리밍을 지원하는 플레이어(퀵타임 플레이어, 리얼 플레이어, 윈도우즈 미디어 플레이어 등) 가 나타나면 영상 또는 음향을 보내주게 된다.
이 방식에서는 되도록 빠른 통신선을 갖고 있는 것이 중요한데 전송속도가 음질이나 화질에 큰 영향을 주기 때문이다.
만약 데이터가 필요 이상으로 많이 들어오게 되면 일시적으로 버퍼에 저장되며 데이터가 필요 한것보다 적게 들어오게 되면 음질이나 화질이 떨어진다.
유니캐스트와 멀티캐스트 스트리밍은 기술적으로 유니캐스트와 멀티캐스트로 나뉜다.
우 선 유니캐스트와 멀티캐스트의 정의에 대해 알아보자. 유니캐스트는 정보를 하나의 IP에 보내는 방식이다 (참고로 브로드캐스팅은 불특정 다수에게 동시에 컨텐츠를 보내는 것이고, 멀티캐스트는 정해진 그룹에게 동시에 컨텐츠를 보내는 것이다) 얼핏 들어보면 현재의 스트리밍 방식은 모두 멀티캐스트가 아닌가 하는 생각이 들겠지만 아직까지 주류를 이루고 있는 스트리밍들은 모두 유니캐스트방식을 취하고 있다.
구체적으로 유니캐스트의 방식은 이러하다 어떤 사람이 ‘A’라고 하는 방송을 보고 싶어한다고 가정했을때, 웹페이지에서 ‘A’방송에 대한 링크를 클릭하면 클릭한 그 사람에레 해당 방송 컨텐츠가 전송된다.
또 다른 사람이 같은 시간에 같은 ‘A’방송을 보려고 한다면 또다시 ‘A’방송은 그 사람에게 1대1로 전송된다. 그렇다면 그 좋다는 멀티캐스트가 왜 아직 실행이 안되는 것일까? 멀티캐스트 자체는 퀵타임과 리얼 윈도우즈 미디어 플레이어가 모두 지원하고 있지만 소프트웨어의 지원만으로는 이용하기가 힘들다.
현재의 인터넷 하부구조와 하드웨어들이 대다수 유니캐스트쪽에 맞춰져 있기 때문에 라우터와 허브, 게이트웨이 등의 네트웍 하드웨어들도 멀티캐스트를 지원해야 비로소 진정한 멀티캐스트 스트리밍을 할 수 있는 것이다.

인터넷방송

코 덱

오디오든 비디오든 간에 인터넷 방송용 컨텐츠는 방송으로 내보낼수 있는 적합한 형태로 가공해야 하는데, 그 과정에서 특히 중요한것이 코덱이다 스트리밍을 보는 사람 입장에서는 같은 미디어 파일이라도 코덱에 따라 그방송을 볼수 있기도 하고 볼수 없게 되기도 하기 때문이다.
그럼 여기서는 코덱에 대해 살펴보자.

인터넷방송국 구축을 위한 기본적인 준비물, 즉 하드웨어와 소프트웨어를 갖췄다면 이제 방송국의 컨셉에 맞는 컨텐츠를 준비해야 한다.
방송용 컨텐츠는 크게 음성(Voice)와 음악(Music), 무비 또는 오디오와 비디오로 나뉜다.
이러한 컨텐츠자체의 제작과정은 기존 미디어의 그것과 다름없겠지만 이 파일들을 어떤 형태로 준비해둬야 방송에 적합할지에 대해서는 좀더 살펴 봐야할 것이다.
먼저 방송에서 사용되는 컨텐츠의 분류에 따라 어떠한 파일형식과 기술적인 내용들을 갖춰야 하는지를 살펴보자.
인터넷방송국에서 사용되는 컨텐츠는 앞서 말했듯이 크게 3가지 (음성/음악/무비)로 구분해서 생각할 수 있다. 우선 음성/음악과 같은 오디오 부분에서의 파일형식은 큰 문제가 없을 것이다.
파일형식및 규격이 거의 몇가지 형태로 통일되는 추세를 보이고 있는데다가 실제 압축코덱이나 규격등에 있어서 맥이나 PC간 의 플랫폼 문제가 거의 없기 때문이다.
하지만 무비의 경우에는 비디오 코덱과 압축 하드웨어 압축방식 등 다양한 형태가 난립하고 있어 여러가지 면에서 고려해야 할 부분이 많다물론 사운드의 경우도 파일을 만든 후 사용 대역폭을 고려해줘야 하는것은 비디오와 동일하다.
참고로 퀵타임에서 지원하는 파일포맷을 확인하려면 퀵타임의 Export메뉴의 대화상자에서 파일지원부분을 보면 된다.
그럼 여기에서는 코덱이 무엇인지 알아본후 오디오와 비디오에서의 구체적인 코덱에 대해 살펴보자.

코덱이란? 코덱(Codec)은 비디오나 오디오 파일을 압축하고 해제하는 방식을 이컫는 용어다.
코더와 디코더의 합성어로 코더는 정보를 부호화하고 디코더는 부호화된 정보를 원래의형태로 복원해주는 역할을 담당한다.
압 축유틸리티와 같이 파일을 압축하고 해제하는 역할을 하는 것이 코덱이라고 생각하면 이해하기 쉬울것이다. 특히 비디오의 경우 매우 다양한 형태의 코덱이 사용되고 있는데 인텔의 Indeo와 MS의 RLE, 레디우스에서 개발한 CinePak그리고 최근 무비와 사운드에 가장 많이 사용되고 있는 MPEG파일 형식을 사용하는 규격등이 있다.
그런데 이러한 코덱의 차이로 인해 사용자가 자신의 시스템에 서비스를 볼 수 없는 경우도 생긴다.
따라서 가자 범용적으로 사용되는 코덱을 사용하는 것이 좋다 맥사용자의 경우 대부분 퀵타임을 기본으로 설치하고 있으므로 퀵타임에서 제공하는 코덱을 사용할 경우 큰 무리가 없다.
그러나 맥 뿐만 아니라 다른 플랫폼도 대상으로 한다면 보다 범용적인 코덱을 사용하는 것이 좋다.
오디오 파일 방송을 위한 오디오 파일은 크게 음성과 음악으로 구분할 수 있는데 각 내용에 적합한 파일 포맷 또는 파일의 질을 고려해서 작업해야 한다.
물론 사용자의 대역폭을 고려해야 한다는 점도 잊어서는 안된다.
컨 텐츠 준비를 위한 오디오 파일 제작시 기본적으로 aiff나 퀵타임의 mov또는 wav파일을 사용할 수 있으나 맥에서 운영되는 파일은 퀵타임 포맷을 사용하는 것이 좋다사실 오디오 파일을 준비하는데 있어서는 파일의 형태보다 어떠한 코덱을 사용하는가가 더 중요한 요소이다.
코덱은 컨텐츠의 내용뿐만 아니라 사용자의 인터넷 회선 속도에도 큰영향을 주게 되므로 정확한 코덱의 용도와 사용자의 컴퓨터 사용환경에 대한 충분한 이해가 있어야 한다.
예 를들어 28.8Kbps의 모뎀 사용자를 대상으로 고음질을 송출하는 것은 그 사용자가 들을수 없는 사운드를 내보내는 것이나 마찬가지 이다. 그래서 대부분 인터넷방송국의 경우 사용자의 대역폭에 맞는 여러개의 컨텐츠를 제공해 이러한 문제를 해결하고 있다.
즉 저속의 사용자부터 고속 케이블모뎀 ADSL,LAN 사용자에 이르기까지 다양한 사용자층을 고려한 컨텐츠를 제공하는 것이다.
방 송용 오디오 파일을 준비하는 전체과정을 정리하면 일단 오디오 파일을 사운드 에딧이나 레코더등을 이용해 퀵타임으로 제작해 어떤 코덱을 사용할 것인지를 결정한 후 사용자의 회선 속도에 맞춘 몇 가지 데이터를 준비한다퀵타임의 프로버전에서 사운드 세팅 부분을 통해 퀵타임에서 제공하는 코덱과 각 코덱의 다양한 옵션을 선택할 수 있다.
추천 오디어 코덱 퀵타임에서 제공하는 오디어 코덱으로 24-bit Integer와32-bit Floating Point, 64-bit Floating Point, Alaw 2:1 , IMA 4:1, MACE 3:1, MACE 6:1, QDesign Music 2, Qualcomm Purevoice, μLaw2:1등이 있다.
이 가운데 맥에서 실시간 오디오 스트리밍을 위한 파일 포맷에 사용되는 코덱은 크게 3가지가 있다.
바 로 Qualcomm Purevoice와 QDesign Music, IMA 가 그것이다 앞서도 말했듯이 컨텐츠의 용도가에 맞춰 적절하게 코덱을 선택해야 하므로, 여기서는 이 3가지 코덱들이 어떤 개별적인 특징과 압축률 등을 갖고 있는지 살펴보기로 한다.
- Qualcomm Purevoice: 이것은 음성 전용 코덱으로 낮은 주파수 대역의 음성에 적합하다 즉 초당 6.7Kbits/8Khz의 저음질/고압축을 지원하는데 전화회선의 음질이 6Khz정도임을 감안하면 이 코덱은 음성만을 이용한 서비스에 알맞다고 볼수 있다.
CPU에 부담이 적어 저 사양의 시스템에서도 부담없이 사용할 수 있으며 데이터의 전송률을 특별히 설정할 필요 없이 데이터의 압축률만 설정하면 된다.
전반적으로 뛰어난 음질은 안니지만 들어줄만 하다
- QDesign Music: 이것은 이름처럼 음악을 위한 코덱으로 Qualcomm Purevoice에 비래 좀더 고사양의 컴퓨터를 요구하며 비교적 우수한 음질을 제공한다 비디오와 함께 스트리밍할 경우에는 CPU에 부하가 많이 걸리므로 주의 를 요하고, 가능한 한 오디오 스트리밍만 사용하도록 한다.
- IMA이것은 위의 두 코덱에 비하면 한 단계아래에 있는 오래된 기술을 바탕으로 한 코덱이다.
예전에 시디롬용 사운드 제작에 많이 사용되었고, 그다지 고사양의 컴퓨터를 요구하지 않으며 안정성도 높다 4:1의 단일 비율로만 (압축 효율이 그다지 높지 않다) 압축할 수 있는 등 간단한 것이 특징이다.

비디오 파일 비디오 방송용 파일을 준비할 때는 오디오에 비해 몇가지 더 주의해야 할 점이 있다.
퀵타임에서 제공되는 코덱을 사용하면 압축문제는 크게 신경쓸 것이 없지만 무비를 보여주기위해서는 오디오와 달리 초당 프레임수나 프레임의 크기 코덱을 사용자의 회선 속도에 맞게 설정해 줘야 한다.
스트리밍을 위한 무비 포맷은 퀵타임을 이용할 경우 mov파일 형식을 사용하면 된다.
그러나 PC의 경우 MS의asf포맷이 스트리밍을 위한 파일 포맷의 표준으로 자리잡고 있는데 이 파일 형식은 압축률이 높고 스트리밍도 비교적 안정적이어서 오디오와 비디오를 도시에 서비스하는 경우에 매우 유용하다.
개 인적인 생각이지만 퀵타임 스트리밍을 이용한 방송과 윈도우즈 미디어 플레이어 스트리밍 기술을 이용한 방송과의 단적인 차이를 들라면 오디오 부분과 전체적인 화면의 스트리밍은 퀵타임이 다소 뒤지고 화질면에서 퀵타임이 월등히 뛰어나다고 본다.
물론 어떤 형태의 방송 포맷을 선택하든지 가장 중요한 요소는 사용자의 쇠선 속도로, 이것이 전체 방송의 질을 좌우하게 되므로 서비스를 제공하는 측에서는 사용자의 회선 속도를 충분히 고려해야 한다.
또한 라이브 방송이 아닌 경우라면 영상파일을 압축하여 퀵타임(mov)형태로 서비스를 제공할 수 있지만, 라이브 방송이라면 실시간 코덱을 사용해야 한다.
실시간 코덱으로는 표준 포맷으로 H.263이, 최근 인기를 얻고 있는 포맷으로 소렌슨 비디오 코덱이 주로 이용된다. 두 가지 코덱 모두 실시간에 높은 압축률을 제공하고 프레임률을 자유롭게 조정할 수 있다.
추천비디오 코덱 비디오 코덱으로는 Animation과 BMP, Cinepak, Component Video, DV-NTSC, DV-PAL, Graphics, H.261, H263, Intel Indeo?Video R3.2, Intel Raw, Motion JPEG A, Motion JPEG B, None, Photo - JPEG, Planar RGB, PNG, Sorenson Video, TGA, TIFF, Video가 있는데, 이 가운데 가장 많이 사용되고 있는 실시간 비디오 코덱은 소렌슨 비디오와 H.263이다.
2가지 코덱에 대해 자세하게 살펴본다.
소렌슨 비디오 : 여러 대역폭에서 안정적으로 스트리밍을 지원하지만, 낮은 회선 속도에서 동작이 많은 무비의 경우 화질이 떨어지는 단점이 있고 고성능의 CPU를 필요로 하는 점이 아쉽다.
- H.263 : 가장 보편적인 비디오 코덱 형식으로 엔코딩이 쉽고 소렌슨 비디오에 비해서 다소 저사양의 CPU를 필요로 한다. 그러나 전체적인 화질면에서는 소렌슨 비디오 코덱보다 떨어진다.
하지만 퀵타임에서 기본으로 제공하는 실시간 스트리밍 코덱으로, 안정성과 화질 등 모든 면을 고려할 때 가장 무난한 비디오 코덱이라고 할 수 있다.
무비의 화질 지정하기 퀵타임 무비의 화질은 Quality 항목의 슬라이드 바를 움직여 조절한다.
Best로 지정하면 최고의 화질을 보이지만 압축률이 낮으며, Least로 지정하면 화질은 좋지 않지만 압축률은 최고가 된다.
화질 지정 방식으로는 Spatial과 Temporal 방식이 있다.
Spatial 방식은 모든 프레임을 일일이 압축하는 것으로 Quality 항목의 슬라이드 바로 화질을 조절하는데, 모든 코덱은 Spatial 화질성을 기본으로 지원한다.
Temporal 은 키프레임과 키프레임 사이의 모든 프레임에 적용되는 화질을 설정하는 것으로, 키프레임을 설정하고 마우스 포인터를 Quality 항목안에 위치시킨 후 option을 누르면 항목의 이름이 Temporal로 바뀌면서 화질을 지정할 수 있는 상태가 된다.
프레임률 지정하기 프레임률은 Motion 항목에서 설정하는데, 이 곳의 프레임 팝업 메뉴에는 Best로 지정하면 컴퓨터가 그무비에 맞는 최적의 프레임률을 지정한다예를 들어 방송용 무비를 만들 경우 NTSC는 30프레임, PAL은 25프레임으로 지정한다.
무비를 부드럽게 재생하려면 적당한 프레임수와 프레임크기를 설정해야 한다.
작 은크기의 프레임을 갖고 있는 무비는 프레임수가 적어도 부드러운 이미지를 보여줄 수 있다예를 들어 프레임수가 160×120픽셀과같이 작은 프레임의 무비라면 프레임수가 8~10정도라도 부드럽게 재생되지만 320×240크기의 무비는 15프레임 이상, 640×480크기의 무비는 24프레임 이상이 되어야 부드러운 움직임을 보여줄 수 있다.
데이터전송률지정하기 데이터전송률은 Motion항목의 Limit data rate to입력란에 원하는 값을 입력함으로써 지정할 수 있다.
데이터 전송률을 지정할 수 있는 코텍은 배포용 코덱인 H,263과 Cinepak, Soremson Video 등이다.
무비를 재생할 때는 하드디스크로부터 메모리로 데이터를 로드하는 시간과 압축을 해제하는 비디오 메모리로 전송하는 처리시간을 감안해 데이터전송률을 저장장치의 전송률보다 약간 여유있게 준다.
때 로 데이터의 전송률이 낮고 프레임 크기도 작더라도 무비의 재생이 부드럽게 이뤄지지 않는 경우가 있는데, 이런 현상은 압축해제 시간이 빠른 코덱을 사용하면 풀사이즈의 무비라도 데이터전송률을 낮게 해 맥에서 부드럽게 재생할 수 있다.
현재 맥에서 퀵타임 스트리밍을 이용한 인터넷방송서비스는 국내에서는 많이 볼 수 없지만 외국의 경우 유수의 연애/오락/영화사이트등에서 퀵타임을 통한 인터넷방송을 제공하고 있다.
특 히 영화 관련 사이트의 경우 예전에 리얼 플레이어나 윈도우즈 미디어 플레이어를 통해 볼 수 있었던 화질과는 비교할 수 없을 정도로 좋은 화질의 퀵타임방송을 볼수 있는데 퀵타임의 우수한 화질은 전문가의 시각이 아니더라도 충분히 알 수 있을 정도이다.
아무튼 지금까지 소개한 코덱에 대한 지식을 기반으로 자신의 컨텐츠를 가능한 한 많은 사람들이 원할하게 이용할 수 있도록 만들어 보도록 한다


출처 - http://daummatrix.tistory.com/71

'Project > Streaming Server' 카테고리의 다른 글

H.264 자료 1  (0) 2012.06.16
멀티미디어 압축 형식  (0) 2012.06.13
Streaming - iptv  (0) 2012.06.11
컨테이너 포맷  (0) 2012.06.11
Codec 개요  (0) 2012.06.11
Posted by linuxism
,


[local /wp-content/uploads/aeaa_oua_sequence-01.avi]?

실시간 스트리밍 서비스가 증가하면서 서비스에 따라 전송의 안정성을 보장해주는 기술의 사용화가 절실해 졌다사실 90년대 후반부터 이러한 요구는 계속 있어왔고 연구는 계속해서 진행되어 올해에는 SVC(Scalable Video Codec)라는 네트워크 의존성이 큰 코덱이 표준화가 되기에 이르렀다. QoS(Qulity of Service)를 보장하여 서비스의 성질 또는 대역폭에 따라 영상 재생의 안정성을 극대화할 수 있게 된다하지만아직까지 SVC 코덱을 이용한 서비스가 인터넷망에서 상용화된 사례가 없다. IPv6 시대로 완전히 접어들어야 상용화가 가능할 것으로 보인다결과적으로 본 연구에서는 이와 유사한 메커니즘을 코덱이 아닌 네트워크상의 알고리즘으로 시스템을 구축하였다유무선 통합의 환경이 다가오면서 온라인 컨텐츠 산업의 잠재력은 더욱 더 커지고 있다또한 컨텐츠 시장의 발전으로 인터넷 방송 서비스나 주문형 비디오 서비스와 같은 다양한 스트리밍 서비스들에 대한 니즈는 기하급수적으로 늘어나고 있다.하지만 아직도 그 서비스는 안정화 되지 못하여 클라이언트 측에서의 연속 미디어의 재생이 중지되는 일이 종종 발생하고 서버에서는 다양한 환경의 클라이언트에 맞추어 서비스하고자 하는 동영상 컨텐츠를 갖추어야 하는 어려움을 가지고 있다.따라서 네트워크 적응적으로 전송하는 동영상 adaption 기법이 반드시 필요하다멀티미디어 스트리밍 기술을 이루는 세 축은 압축 기술네트워크 기술, QoS 기술이다이 중 압축기술과 네트워크 기술은 없어서는 안 될 중요한 요소이다. QoS 기술은 초기 스트리밍에서는 고려되지 않았던 것이지만네트워크 환경의 발전이 무선 네트워크에서도 스트리밍 서비스가 가능하게 함으로써 사용자의 서비스의 질적인 향상에 꼭 필요한 기술이 되었다. 원격 교육온라인 경매음악 방송, TV VOD 서비스  여러가지 서비스가 최근에 많이 접하게 되는 것들이다 중에서 최근들어 가장 떠오르고 있는 서비스가 DTV TV 방송을 인터넷망에서 스트리밍으로보는 것이다네트워크 상태가 아주 좋은 PC 상에서의 서비스는  문제가 없을 있지만최적의 화질은 아니며, PDA, PMP, Mobile 같이 낮은 네트워크 환경의클라이언트에서는 안정적으로 수용하기가 쉽지 않았다 연구를 통해 기존 서비스보다 한차원 높은 유연성을 가진 서비스 시스템을 갖출  있다클라이언트환경에 맞추어 영상을 다시 제작하는 시간적공간적 낭비를 줄일  있게  것이다.

1.bmp

???

스트리밍 시스템 동작 원리

스트리밍 서비스는 서버와 클라이언트로 구성된다멀티미디어 데이터는 서버에서 클라이언트로 전송되며 클라이언트는 이를 재생하게 된다아래 그림에서 보는 바와 같이 스트리밍 서비스는 크게 영상이나 음성을 받아 서비스하는 라이브 방송과 이미 저장된 멀티미디어 데이터를 스트리밍하는 주문형 서비스로 구성될 수 있다.인코딩 서버는 캠코더나 마이크 등의 장비로부터 받아들이는 아날로그 데이터를 압축 기술을 사용하여 디지털 데이터로 바꾸는 기능을 한다스트리밍 서버는 미리 저장된 데이터나 인코딩 서버에서 전달된 라이브 데이터를 사용자에게 전송하는 기능을 한다웹서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다이렇게 구성된 스트리밍 서비스 시스템에서 사용자는 웹서버에 요청하고스트리밍 서버는 사용자가 요청한 사항에 대하여 멀티미디어 데이터를 보낸다.사용자 측에서 받은 데이터는 받는 즉시 실시간으로 재생되고 받은 데이터는 삭제하여 불필요한 저장을 피한다.

21.bmp

스트리밍 관점에서의 인터넷

멀티미디어 스트리밍에서 쓰이는 멀티미디어 데이터는 연속적으로 전달되어야 하는 특징이 있다하지만 인터넷은 통신망 구조나 이용되는 프로토콜의 지속적인 연결이 그다지 필요 없는 단속적인 데이터의 전달을 목적으로 개발되어 일정량의 데이터를 연속적으로 전달하기에는 비효율적이다또한 기존의 전화망이나 방송망에서는 최단최적 경로가 초기 설정시 결정되어 변경되지 않는데 반해 인터넷은 데이터 하나(패킷)가 전송될 때마다 전달 경로를 판단하게 된다경로 설정에 대한 시간과 비용은 적게 소모되지만 멀티미디어 데이터를 지속적이고 반복적으로 보내야 하는 스트리밍의 경우에는 그 시간과 비용이 무시할 수 없는 수준에 이르기 때문에 지금의 인터넷은 멀티미디어 스트리밍에는 비효율적이라 하겠다.

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????압축기술 - 스트리밍의 가장 중요한 기술은 멀티미디어 데이터를 압축하고 재생을 위해 해독하는 코덱 기술로여기에는 인코드와 디코드가 있다이 기술은 네트워크 전송률이 적은 무선 인터넷의 스트리밍이 태동하면서 보다 압축률 높은 멀티미디어 데이터의 전송을 위해 나타났다스트리밍으로 전달되는 멀티미디어 데이터는 일반적으로 대용량이라는 속성과 재생 시간 안에 반드시 재생해야 한다는 실시간적인 속성을 갖는다하지만 인터넷은 최신 서비스를 지원하고 있어 대용량의 데이터를 스트리밍의 요구 사항에 맞춰 전달하기에는 어려운 구조로 되어 있다그렇기 때문에 스트리밍에 사용되는 기술로 대용량 데이터의 부피를 줄이기 위한 멀티미디어 압축 기술이 필수적이다멀티미디어 압축 기술에 관한 표준안은ITU(International Telecommunication Union) ITU-T(Telecommunication standardization sector), MPEG(Moving Picture Experts Group) 에서 재정하고 있으며각각은 성립 목적이 다른 만큼 다음과 같은 차별화된 특성을 갖는다. ITU-T H.시리즈는 패킷 망을 대상으로 하는 H.323, H.324등의 프레임워크를 가지고 있으며주로 회의 및VolP(Voice over IP)에 사용되고압축 표준인 MPEG, 네트워크 전송 표준인 RTP 등과 함께 사용된다현재 MPEG-4를 대세로 하는 시류에 따라 H.시리즈에 관한 활동은 소강 상태에 있지만 요즘 무선 인터넷으로의 스트리밍 확장 추세와 H.26L등과 같은 발전된 표준과 맞물려 다시 주목 받고 있다. MPEG의 경우 MPEG-1, MPEG-2에서는 멀티미디어 데이터의 압축에 관한 부분만을 다루고 있었는데, MPEG-4로 넘어오면서 통신에 관한 부분도 다루고 있다이것은 MPEG-4 자체가 멀티미디어 통신을 전제로 만들어졌기 때문이다현재의 멀티미디어 스트리밍 시장에서의 기술은 마이크로소프트사나 리얼네트웍스사에 의해 양분화 되어 있는 실정이며 이들은 독자적인 프로토콜이나 표준을 바탕으로 국제적 표준안을 따르는 중간 단계의 형식을 취하고 있다멀티미디어 영상과 음향을 중심으로 문자도형음성 등의 정보를 디지털 기술에 의해 압축하여 결합한 것이다음성의 경우가 정보를 단순히PCM(Pulse code modulation, 펄스 부호 변조)에 의해 디지털로 표현하면 데이터 양이 방대해 진다전화음성은 64kbps(8KHz 표본화 주파수에 표본당 8비트), 스테레오 음악을 담는 CD 1.5Mbps(44.1MHz 표본화 주파수에 표본당 16비트로 2채널), 고선명HDTV의 경우 스튜디오 규격인 SMPTE 240M에 의하면 휘도 성분은 74.25MHz로 표본화되고두색 성분은 그 절반의 주파수로 표본화 되는데 각각 표본당 8비트이므로 발생하는 데이터 양은 총 1.2Gbps에 이른다멀티미디어 스트리밍은 앞서 언급한 것과 같은 방대한 양의 각종 데이터를 어떻게 압축할 것인가가 핵심 요소 기술이 된다세계적으로 과거부터 현재에 이르기까지 여러 업체들이 이런 막대한 양의 데이터를 갖는 영상음성 등의 정보 형태에 따른 효율적인 데이터 압축 방식을 개발하기 위해 치열한 경쟁을 벌이는 한편국제 표준 데이터 압축 방식의 제정을 위하여 국제표준화 기구(ISO)나 국제전기통신연합(ITU) 등을 통해 공동의 노력을 기울이고 있다.적용된 압축 기술 - 일반적으로 영상을 압축하는 원리는 크게 3가지 정도로 정리할 수 있다첫 번째는 “공간적 중복성(Spatial Redundancy)을 제거”하는 방법이 있고두번째는 “시간의 중복성(Temporal Redundancy)을 제거”하는 방법이다영상에서 인접하는 두 프레임은 거의 유사하다이 원리를 이용하여 다음 프레임의 움직임을 예측하고 보상하는 방식으로 시간의 중복성을 제거할 수 있다인접한 프레임은 당연히 시간의 차이가 있다이전 영상과 다음 영상일 수도 있고그 다음 영상일 수도 있기 때문이다그렇기 때문에 시간상의 차이를 이용하여 중복되는 데이터는 제거할 수 있고중복되지 않은 부분만을 보상하여 이전 프레임의 데이터를 그대로 사용할 수가 있다시간의 중복성을 제거한다는 것은 프레임을 예측(Estimation)하고 보상(Compensation)하는 원리로 가능하게 된다이 때 프레임을 다음과 같은 매크로블록(Macroblock)이라는 단위로 처리를 한다.

31.bmp

매크로블럭은 프레임을 잘게 나누었다면인접한 프레임(Reference Frame)과 매크로블럭 단위로 비교한다비교한 값이 같으면 데이터를 보내지 않고 블록의 위치정보(Vector)만 코딩(부호화)하도록 하는 것이다이 때 찾은 블록의 위치정보를 모션벡터(MV)라고 일컫는다상식적으로도 데이터를 모두 코딩하는 것과 모션벡터만을 코딩하는 것과는 많은 차이가 발생함을 이해할 수 있다모션벡터를 찾는 방법에는 두가지가 있다모든 알고리즘은 공통적으로 매크로블럭의 검색범위를 설정해야 한다전체 프레임을 대상으로 모션 벡터를 찾으면 성능상의 문제가 발생하므로 현재의 매크로블럭을 중심으로 검색범위를 설정하고그 범위 내에서 알고리즘을 수행한다. MPEG H.261, H.263 등은 매크로블럭의 크기를 16:16으로 정하고 있으며매크로블럭의 검색범위는 매크로블럭의 크기에 (2*p)를 더한 값의 제곱이 된다. p값은 임의로 정할 수 있으며일반적으로 6을 사용한다다음 그림은 검색범위에서 모션벡터를 찾는 알고리즘을 수행하는 화면이다.

41.bmp

Exhaustive Search?-? 가장 쉽게 생각할 수 있는 방법으로 검색범위내의 매크로블럭을 라인단위로 일일이 비교하며 코딩하는 방법이다. Full Search라고도 한다아주 단순한 방법이지만오차가 전혀 없이 정확한 모션벡터를 찾을 수 있는 장점을 가지고 있다그러나 복잡도(Complexity)가 검색범위에 비례하므로 Big-O의 제곱이 된다.이는 처리성능상의 문제가 될 수?있다.?????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Tree-Step Search ?- 3단계로 검색 절차를 나눈다. 다음 그림을 보면 먼저 검색 범위 내에 9개의 에상 모션 벡터를 지정한다. 다음으로 9개의 모션벡터 중에 가장 유력하나 벡터값을 선택한다. 선택한 벡터값을 중심으로 8개의 에상 모션벡터를 지정하는 것이 두번째 단계가 된다. 마찬가지로 8개 중에 가장 유력한 벡터값을 찾고, 그 벡터값을 중심으로 8개의 벡터값 만이 남는 것을 확인 할 수 있다.?8개 중에 가장 유력한 벡터값이 실제로 쓰일 모션 벡터 값이 되는 것이다. 유력한 벡터값을 찾는 방법은 SAS, MAD 등을 참고해야 한다. ?Three-Step 알고리즘은 Complexity가 Big-O의 로그이다. 즉, 고속으로 처리가 가능하다는 것이다. 그러나 역시 단점은 있다. 그림에서 확인했겠지만 정확한 모션벡터 값이 아닐 수도 있다는 것이다.

5.bmp

대역폭에 따른 영상전송 알고리즘 - 영상압축의 기본원리는 중복성을 제거하는 것이다위에서도 언급했지만시간축상의 중복성이 존재하고 공간축상으로도 중복성이 존재하게 된다영상을 코딩할 때 이런 원리를 적용해서 중복되는 데이터는 코딩하지 않도록 하여 압축 효율을 높일 수 있게 되는 것이다이것이 곧 MPEG 압축의 핵심원리이다영상을 코딩할 때 원본 프레임을 ‘I’라고 하고다음 영상과의 중복되는 것을 제거한 위치 벡터의 정보만 담은 프레임을 ‘P’라고 하며P’프레임을 이용하여 이전 영상 ‘I’영상과의 시간차를 보상한 프레임을 ‘B’라고 한다,I’프레임은 반드시 필요한 이미지일 것이고P’와 ‘B’는 없어도 상대적으로 전체적인 영상에는 문제가 없을 것이라고 유추해 볼 수 잇다이러한 기본적인 원리를 전제로 한 것이 프레임 폐기 알고리즘이다아래 그림에서 스트리밍 서버는 클라이언트의 네트워크 대역폭을 감지한다감지하는 방법으로는 RTP 프로토콜의 RTCP라는 피드백 프로토콜을 이용하여 가능하게 된다이를 간단하게 설명하자면클라이언트 측에서 수신된 RTP 패킷의 Timestamp Sequence Number를 비교한 값을RTCP를 이용해 스트리밍 서버에 피드백을 주는 방식이다이로써 전송상의 지연(Delay) 여부를 판단할 수 있게 되는 것이다. RTPUDP 방식으로 영상을 전송한다면 RTCP RTSP TCP/IP 기반의 컨트롤 프로토콜로써의 역할을 담당한다.

6.bmp

클라이언트의 네트워크 상태를 판단한 서버는 4단계의 프레임 폐기 패턴 중에 적절한 단계를 선택하여 이를 drop_stage라는 변수에 저장하고네트워크 적응 관리자 모듈에 전달한다. 4단계의 프레임 폐기 패턴 중 네트워크 대여곡이 좋은 것이 0단계이다. 0단계에서는 ‘IPB’ 프레임 모두를 전송하며 고해상도의 화질을 보장할 수 있다다음 단계에서는 ‘B’를 부분적으로 폐기하고마지막 단계의 경우는 ‘B’와 ‘P’를 폐기하고I’프레임만을 전송하게 된다이렇게 간단한 알고리즘만으로도DVD(MPEG2)의 화질을 실시간으로 재생하는데 1Mbps 이하의 경우로도 충분히 가능하게 된다물론 여기에는 트랜스코딩 기법을 통해 최적화된 영상 포맷으로 인코딩하는 과정도 필요하다.

7.bmp

 

본 연구에서는 MPEG-2 비디오를 인터넷 망에서 네트워크 상황에 따라 적응적으로 전송하는 스트리밍 시스템을 설계하고 구현하였다제안된 시스템은 향후 인터넷 망을 이용한 고품질 전송 시스템에 적용 가능할 것으로 기대된다프레임 기반 우선순위화 기반의 전송율 적응에서 현재의 네트워크 이용 가능한 대역폭을 예측하는 것은 아주 중요한 요소로 작용한다이를 위해 적극적 모니터링과 같은 기법이 적용될 수 있을 것이다또한 서버 뿐 아니라 각 클라이언트에도 자체적인 적응 기능을 포함해야 할 것이다.

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 참조 : 2007 미디어 학부 졸업전시회 작품 중 < IP망에서의 방송망 데이터 변환 릴레이 시스템 연구 , 김민 , 변철훈>

?※? IPTV를 공부하고 있는 후배들에게 도움이 될까해서 올려 봅니다.


출처 - http://iptv.commres.org/archives/tag/%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D%EC%84%9C%EB%B9%84%EC%8A%A4



'Project > Streaming Server' 카테고리의 다른 글

멀티미디어 압축 형식  (0) 2012.06.13
Streaming - 인터넷 방송  (0) 2012.06.11
컨테이너 포맷  (0) 2012.06.11
Codec 개요  (0) 2012.06.11
HTTP를 사용하는 라이브 스트리밍  (0) 2012.06.11
Posted by linuxism
,