BRONZE
BRONZE 등급의 판매자 자료

[멀티미디어] 주어진 동영상파일(TXT ASCII CODE)을 버퍼링을 이용하여 스트리밍을 구현하라. (VC/WIN32API)

압축파일
최초등록일 2007.02.01 최종저작일 2006.11
[멀티미디어] 주어진 동영상파일(TXT ASCII CODE)을 버퍼링을 이용하여 스트리밍을 구현하라. (VC/WIN32API)
  • 미리보기

    소개

    멀티미디어 과목의 과제인 주어진 동영상파일(TXT ASCII CODE)을 버퍼링을 이용하여 스트리밍을 구현하는 과제입니다.
    DirectX를 사용하지 않고 Win32 API를 이용한 Low-Level Programming를 이용하여 아스키값으로 구성되어진 텍스트 파일을 읽고 화면에 뿌려서 스트리밍 전송 하는 예입니다.
    버퍼 사이즈에 따른 화면 차이를 볼 수 있으며, 어렵지 않은 예제입니다.

    이 문제는 쓰레드를 이용하여 생산자/소비자 문제를 구현하였으며, 스트리밍을 하는 핵심 알고리즘을 구현하는 것이 목적입니다.



    요구 사항
    1. 주어진 동영상파일(TXT ASCII CODE)을 버퍼링을 이용하여 스트리밍을 구현하라.
    - 입력 데이터 : ASCII파일로 된 연속된 부호 없는 8비트의 상수값
    - 출력 데이터 : 화면상의 동영상 (GrayScale)
    - ** DirectX를 사용하지 않고 Win32 API를 이용한 Low-Level Programming

    사용 방법
    1. 작업 환경은 Visual Studio C++ 6.0 SP6으로 하였으므로 폴더 내 워크스페이스 파일은 다음과 같다.
    Streaming_Thread_20012548.dsw (VC 6.0 워크스페이스 파일)
    2. 기본 환경은 다음과 같다.
    UI Framework는 MFC를 이용하였습니다.
    화면 출력 함수는 Win32 API를 이용하여 출력하였습니다.
    실제 스트리밍을 위한 버퍼매니져는 C로 작성하였습니다.
    3. 메인 프로세스 내에는 다음과 같은 쓰레드가 존재합니다.
    - 송신자 쓰레드 : 실제 일정 간격을 두고 버퍼매니져에 데이터를 전송합니다. (Enqueue)
    - 수신자 스레드 : 정확한 FPS를 위해 멀티미디어 타이머를 이용하여 구현되어 있으며, 버퍼에서 데이터를 Dequeue하여 화면에 출력합니다.
    - FPS 계산 타이머 : 초당 Framerate를 위해 500ms 단위로 FPS를 계산하여 출력합니다.
    4. 쓰레드 관리가 아직 미흡하여 간혹 쓰레드가 종료 안되는 경우가 있습니다.

    결론 및 어려운 점
    스트리밍을 위한 버퍼 구현은 생산자-소비자 문제와 연관이 되는데 이는 Circular Queue를 통해 해결하였으며, 동시에 일어나는 작업이므로 쓰레드를 이용하였다.
    실제 구현해 본 결과 전송 속도가 높지 않아 fps세팅을 높여도 30정도밖에 되지 않는다. 이는 시스템 환경에 따라 많이 달리짐을 알 수 있으며, 근본적인 원인은 쓰레드 루프내에서 파일을 한 프레임단위로 fscanf을 하는데서 많이 지연된다. ASCII 데이터이므로 바이너리 모드도 아닌 fscanf로 읽었으며, 무엇보다 한번에 메모리에 올리는 것이 아니라 버퍼링을 테스트 하는 것이므로, 매 프레임단위로 읽기에 생각보다 많이 느림을 알 수 있다. 또한 주어진 데이터에 라는 스트링이 들어있어 화면에 하얗게 나오는 곳에서 상당히 애를 먹었다. 미리 파일 포멧에 대해 알려주었으면 하는 생각이 들었다.
    ** 현재 레포트 내에 소스코드는 첨부하지 않았습니다.

    컴파일 실행환경

    개발 환경
    O/S : Windows XP Professional SP2
    Tool & Compiler : Microsoft Visual C++ 6.0 SP6
    Language : C++ (MFC, Win32API)

    참고자료

    · MSDN 사이트 - http://msdn.microsoft.com
    · (참고로 페이지 수는 소스코드 제외한 프로그램 설명 및 실행 페이지수)
  • 자료후기

    Ai 리뷰
    지식판매자의 이 자료는 과제를 작성하는 데 필요한 정보를 완벽하게 충족시켜주었습니다. 덕분에 과제 제출 기한을 맞출 수 있어 정말 감사했습니다.
    왼쪽 화살표
    오른쪽 화살표
  • 자주묻는질문의 답변을 확인해 주세요

    해피캠퍼스 FAQ 더보기

    꼭 알아주세요

    • 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
      자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
      저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
    • 해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.
      파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
      파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
문서 초안을 생성해주는 EasyAI
안녕하세요. 해피캠퍼스의 방대한 자료 중에서 선별하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 목차부터 본문내용까지 자동 생성해 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 캐시를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2025년 05월 14일 수요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
12:36 오후