KR20170055878A - 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법 - Google Patents

비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법 Download PDF

Info

Publication number
KR20170055878A
KR20170055878A KR1020150159201A KR20150159201A KR20170055878A KR 20170055878 A KR20170055878 A KR 20170055878A KR 1020150159201 A KR1020150159201 A KR 1020150159201A KR 20150159201 A KR20150159201 A KR 20150159201A KR 20170055878 A KR20170055878 A KR 20170055878A
Authority
KR
South Korea
Prior art keywords
container
item
frame
frame index
real
Prior art date
Application number
KR1020150159201A
Other languages
English (en)
Other versions
KR101752362B1 (ko
Inventor
박정선
손형재
Original Assignee
주식회사 코난테크놀로지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코난테크놀로지 filed Critical 주식회사 코난테크놀로지
Priority to KR1020150159201A priority Critical patent/KR101752362B1/ko
Publication of KR20170055878A publication Critical patent/KR20170055878A/ko
Application granted granted Critical
Publication of KR101752362B1 publication Critical patent/KR101752362B1/ko

Links

Images

Classifications

    • H04N13/0003
    • H04N13/0007
    • H04N13/004
    • H04N13/0217

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치로, 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성하여 출력하는 아이템 풀과, 상기 아이템 풀로부터 출력된 아이템을 프레임 인덱스 별로 콘테이너에 통합하고, 하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬하여 영상 데이터를 순차적으로 출력하는 프레임 통합부와, 상기 프레임 통합부로부터 전달되는 영상 데이터를 사용자 접근에 따라 전달하는 영상 스트림 관리부를 포함한다.

Description

비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법{Apparatus and Method for real-time integrating high quality multi-view images based on asynchronous multi threading}
본 발명은 고화질 다 시점 영상의 실시간 생성 기술에 관한 것으로, 특히 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합하기 위한 장치 및 방법에 관한 것이다.
고화질 다 시점 영상의 실시간 생성 시스템은 다수의 컴퓨터를 이용한 분산 처리를 기반으로 한다. 촬영 및 영상 처리 작업을 여러 대의 노드 PC에 나누어서 처리하고, 네트워크망을 사용한 데이터 송수신을 통해 작업 결과물을 하나의 서버에서 통합한 후 다 시점 디스플레이를 통해 재생한다.
이러한 통합 및 재생 과정에서 주의 깊게 고려되어야 할 이슈가 서버 내에 수집된 영상 프레임들의 동기화와 영상 스트림 데이터의 관리이다. 이러한 이슈들은 일반적으로 사용되는 단일 영상 전송 기법만으로는 해결하기 어렵다.
즉, 일반적인 단일 시점 영상의 전송에서는 단순 큐나 원형 큐(Circular queue)를 사용한 순차 저장 방법이 많이 이용되는데, 이러한 단순 구조만으로는 위와 같은 문제 상황 발생에 대처하기 어렵다.
또한, 고화질 다시점 영상의 실시간 생성을 위한 분산 시스템은 네트워크망을 이용한 데이터 송수신 시의 전송 지연과 시스템 내부의 병목 현상 등으로 다양한 문제가 발생할 수 있다. 즉, 노드별 분산 처리 작업 시간의 차이 및 네트워크 전송 지연으로 인해 서버 측의 데이터 수신이 비순차적으로 이루어질 수 있다. 또한, 서버 내부의 병목 현상이나 처리 지연에 따른 데이터 누적으로 인해 메모리 오버플로우가 발생하거나 작성 중인 버퍼를 덮어쓸 수 있다. 그리고, 카메라 촬영을 도중에 중단한 후 재촬영을 수행할 경우 이전 촬영시의 프레임과 재촬영시의 프레임이 섞여서 정렬될 수 있다. 이러한 문제로 인해 영상의 순서가 뒤바뀌거나 앞서 촬영하였던 전혀 다른 영상이 섞이는 등의 이상 증상이 나타난다.
본 발명은 서버 내부의 병목 현상이나 처리 지연에 따른 데이터 누적으로 인해 메모리 오버플로우가 발생을 방지할 수 있는 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법을 제공한다.
본 발명은 프레임간 동기화 및 정렬을 통해 영상 데이터를 순차적으로 처리할 수 있는 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법을 제공한다.
본 발명은 다중 버퍼를 운용함으로써 끊임없이 유입되는 영상 스트림 데이터에 사용자가 실시간으로 접근할 수 있도록 관리하는 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법을 제안한다.
본 발명은 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치로, 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성하여 출력하는 아이템 풀과, 상기 아이템 풀로부터 출력된 아이템을 프레임 인덱스 별로 콘테이너에 통합하고, 하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬하여 영상 데이터를 순차적으로 출력하는 프레임 통합부와, 상기 프레임 통합부로부터 전달되는 영상 데이터를 사용자 접근에 따라 전달하는 영상 스트림 관리부를 포함한다.
본 발명은 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법으로, 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성하는 단계와, 상기 아이템을 프레임 인덱스 별로 콘테이너에 통합하는 단계와, 하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬하는 단계와, 상기 정렬된 영상 데이터를 사용자 접근에 따라 전달하는 단계를 포함한다.
이러한 본 발명을 사용하여 분산 시스템을 통해 얻어진 다시점 영상 데이터를 실시간으로 통합 및 관리할 수 있으며, 필요한 경우 출력된 데이터를 다시 다른 시스템으로 전송함으로써 계층화된 분산 처리 시스템을 구성할 수도 있다.
도 1은 본 발명의 일 실시 예에 따른 고화질 다시점 영상의 실시간 생성을 위한 분산 시스템의 구성도이다.
도 2는 본 발명의 일 실시 예에 따른 아이템 풀을 설명하기 위한 도면이다.
도 3a 및 도 3b는 본 발명의 일 실시 예에 따른 프레임 통합부의 동작을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시 예에 따른 비디오 스트림 관리부의 버퍼 상태를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 비디오 스트림 관리부의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 따른 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치에 의해 생성된 영상의 일 예이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 고화질 다시점 영상의 실시간 생성을 위한 분산 시스템의 구성도이다.
도 1을 참조하면, 고화질 다시점 영상의 실시간 생성을 위한 분산 시스템은 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치(이하 '장치'로 기재함)(100)가 다양한 시점으로 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 수신부(1)를 통해 입력됨에 따라, 영상 데이터의 동기화를 위해 통합 및 정렬하여 사용자에게 송신부(2)를 통해 제공한다. 일 실시 예에 따라, 수신부(1)에서는 입력된 영상 데이터에 컬러 변환과 같은 전처리 프로세싱을 수행한 후, 장치(100)에 전달할 수도 있다.
장치(100)는 상세하게는 아이템 풀(Item Pool)(110), 콘테이너(Container) 제공부(120), 프레임 통합부(Frame Integrator)(130) 및 비디오 스트림 관리부(Video Stremm Managner)(140)를 포함한다.
아이템 풀(110)은 수신부(1)에 의해 입력되는 영상 데이터에 프레임 정보 헤더를 부가한 아이템의 형태로 저장하고, 저장된 아이템을 프레임 통합부(130)에 출력한다. 여기서, 프레임 정보 헤더에는 프레임이 촬영된 시점을 나타내는 프레임 인덱스 및 촬영 시점 정보가 포함될 수 있다.
아이템 풀(110)은 다수의 노드들로부터 촬영된 다시점 영상 데이터를 각각 병렬로 처리할 수 있도록, 다중 쓰레드를 이용한 병렬 처리 프로세싱을 지원한다. 그런데, 다중 쓰레드를 이용한 병렬 처리 프로세싱에 있어서 매우 중요한 요소 중 하나가 쓰레드 간의 데이터 전달 방법이다. 일반적인 시스템에서는 각 쓰레드마다 할당된 개별적인 버퍼에 직접 데이터를 복사함으로써 쓰레드 간 데이터 전달을 수행한다. 이 경우 시스템이 사용 가능한 CPU 자원은 한정적이기 때문에, 메모리 접근과 데이터 복사에 소요되는 자원만큼 시스템 내에서 운용되는 다른 작업들의 성능이 저하된다는 문제가 있다. 따라서, 제한된 하드웨어 성능 안에서 최대한의 퍼포먼스를 얻기 위해 설계 단계에서부터 많은 고민이 필요하다. 최근에는 하드웨어 기술의 발달로 인해 이러한 문제들이 어느 정도 해결되었으나, 고화질 다시점 영상 실시간 생성 시스템에서는 대용량의 데이터의 끊임없는 I/O가 이루어지기 때문에 이를 처리하기 위한 CPU 점유율 증가로 인해 여전히 시스템의 성능 저하가 발생한다. 그 밖에도 쓰레드 간 데이터 전달 시간이 누적될수록 촬영된 영상과 디스플레이에 출력된 영상 사이의 딜레이가 발생한다. 본 발명은 쓰레드 간의 데이터 전달 속도를 극대화하고 데이터 복사로 인한 CPU 자원의 소모를 최소화하기 위한 아이템 풀 운용을 제안하는데, 이에 대한 상세한 설명은 도 2를 참조하여 후술하기로 한다.
콘테이너 제공부(120)는 프레임 통합부(130)의 요청에 따라, 아이템이 포함되지 않은 신규 콘테이너를 제공하거나, 아이템이 포함된 콘테이너가 프레임 통합부(130)로부터 폐기됨에 따라, 아이템을 아이템 풀(110)에 반환하고 빈 콘테이너를 신규 콘테이너로 재사용한다.
프레임 통합부(130)는 프레임 간 동기화 및 인덱스 정렬 작업들을 수행함으로써 분산 시스템의 다수의 노드들로부터 획득된 영상을 통합한다. 고화질 다시점 영상의 실시간 생성을 위한 분산 시스템에서 네트워크망을 이용한 데이터 송수신 시의 전송 지연과 시스템 내부의 병목 현상 등으로 발생하는 문제점을 극복하기 위해, 본 발명의 일 실시 예에 따라, 프레임 통합부(130)는 아이템 콘테이너를 운용히는데, 1개의 콘테이너에 동일한 프레임 인덱스를 가지는 하나 이상의 아이템을 통합하고, 콘테이너를 프레임 인덱스에 따라 정렬한다. 또한, 프레임 통합부(130)는 통합이 완료된 콘테이너를 순차적으로 비디오 스트림 관리부(140)로 전달한다.
이를 위해, 프레임 통합부(130)는 map, set, queue 세 가지의 자료 구조를 사용하여 통합 및 관리를 수행한다. 여기서, map은 프레임 인덱스를 key, 콘테이너의 포인터를 value로 하여 실제 콘테이너 목록을 가지고 있는 자료구조이다. set과 queue에는 프레임 인덱스가 삽입되는데, set은 기본적으로 정렬 기능을 가진 자료 구조이므로 콘테이너 정렬에 사용되며, queue는 FIFO 특성을 가지므로, 콘테이너의 생성 순서를 판별하는 데 사용된다. 그러나, 이는 자료 구조의 일 예일뿐 본 발명이 이에 한정되지 않는다.
또한, 프레임 통합부(130)는 촬영 시각을 서로 상이한 촬영으로부터 획득된 동일한 인덱스를 가진 프레임을 구분하는 데 사용할 수 있다. 예컨대, 프레임 인덱스가 동일한데, 촬영 시각이 보다 이전이라면, 현재 촬영 중인 영상의 데이터가 아닌 이전 촬영 시의 영상 데이터이므로 동기화 대상에서 제외하여야 한다.
이러한 프레임 통합부(130)의 상세한 동작에 대한 설명은 도 3a 및 도 3b를 참조하여 후술하기로 한다.
프레임 통합부(130)가 분산 처리된 영상 데이터의 통합과 정렬을 수행하므로, 시스템이 정상적으로 동작한다면 촬영된 영상들은 실시간으로 서버 측에 입력 될 것이다. 이렇게 계속하여 유입되는 영상 데이터를 영상 스트림(Video Stream)이라고 한다. 사용 가능한 하드웨어 자원은 한정적이기 때문에, 매초 수 기가 바이트의 데이터가 입력 되는 고화질 다시점 영상 실시간 생성 시스템에서는 수집된 영상 데이터를 사용자에게 실시간으로 제공함과 동시에 불필요해진 데이터를 삭제 또는 저장하여 메모리 자원을 다시 확보하는 관리 기능이 필수적이다.
따라서, 비디오 스트림 관리부(140)는 적어도 세 개의 버퍼들로 구성되는 다중 버퍼를 이용하여, 매프레임마다 촬영을 통해 끊임없이 유입되는 이러한 영상 스트림 데이터를 실시간으로 관리한다. 이에 대한 상세한 설명은 도 4 및 도 5를 참조하여 후술하기로 한다.
도 2는 본 발명의 일 실시 예에 따른 아이템 풀을 설명하기 위한 도면이다.
도 2를 참조하면, 아이템 풀(110)에는 시스템이 구동될 때 하나의 아이템(210) 형태로 정의된 버퍼가 동적 할당을 통해 필요한 개수만큼 생성되고, 생성된 아이템의 포인터를 관리하는 큐(Queue)(220)를 포함한다. 여기서, 큐(220)는 FIFO(First-In-First-Out) 특성을 갖는다.
아이템(210)은 영상 데이터에 대한 정보를 나타내기 위한 및 프레임 정보 헤더(Frame Info Header)(211) 및 영상 데이터인 데이터 블록(Data Block)(212)를 가지고 있다. 여기서, 프레임 정보 헤더(211)에는 프레임이 촬영된 시점을 나타내는 프레임 인덱스 및 촬영 시점 정보가 포함될 수 있다.
아이템 풀(110)은 영상 데이터가 입력됨에 따라, 팝(pop) 명령을 통해 큐(220)로부터 1개의 포인터를 획득하고, 획득된 포인터가 가리키는 메모리 공간에 입력된 데이터를 기록하고, 이를 필요로 하는 쓰레드에게 해당 포인터를 전달한다. 일반적인 쓰레드 간 데이터 전달 방법은 데이터를 전달하기 위해 데이터 사이즈만큼의 복사 작업을 수행하여야 하나, 본 발명에 따르면 쓰레드 간 데이터 전달을 우해 포인터만을 넘겨줌으로써 데이터 크기에 관계없이 항상 4 bytes(64-bit OS의 경우 8 bytes)의 복사 작업만으로 데이터 전달을 완료할 수 있다. 이는 전달되는 데이터의 사이즈를 예상할 수 있을 때, 필요한 만큼의 버퍼를 미리 동적 할당 해두고 그 포인터만을 전달하는 프로그래밍 기법의 응용을 통해 구현될 수 있다.
또한, 아이템 풀(110)은 필요한 프로세스가 종료되어 불필요해진 아이템에 할당된 메모리를 해제하여 삭제하는 것이 아니라, 그 포인터를 다시 푸쉬(push) 명령을 통해 아이템 풀의 큐(220)에 반환함으로써 재사용이 가능하도록 한다. 또한, 시스템 종료시, 각 쓰레드들은 현재 사용하고 있는 아이템의 포인터를 아이템 풀(110)로 반환하고, 최종적으로 아이템 풀(110)에서 동적 할당되었던 아이템 들의 할당 해제를 수행하여 사용하였던 메모리를 정상적으로 반환한다.
이와 같이 아이템 풀(110)에 따른 버퍼 관리를 통해 쓰레드 간 데이터 전달 시 매초 수 기가 바이트의 처리를 요하는 고화질 다시점 영상 실시간 생성 시스템을 빠르고 안정적으로 운용할 수 있게 한다.
도 3a 및 도 3b는 본 발명의 일 실시 예에 따른 프레임 통합부의 동작을 설명하기 위한 순서도이다.
도 3a를 참조하면, 프레임 통합부(130)는 아이템이 입력(S311)됨에 따라, 입력된 아이템의 프레임 인덱스에 상응하는 콘테이너가 이미 존재하는지를 판단한다(S312).
S312의 판단 결과 입력된 아이템에 상응하는 콘테이너가 이미 존재할 경우, 프레임 통합부(130)는 아이템을 해당 콘테이너에 추가한다(S313).
반면, S312의 판단 결과 입력된 아이템에 상응하는 콘테이너가 존재하지 않을 경우, 프레임 통합부(130)는 콘테이너 제공부(120)에 신규 콘테이너를 요청한다(S313). 그런데, 콘테이너는 메모리 자원을 점유하는 버퍼의 일종으로, 무한정 생성하면 메모리 오버 플로우가 발생될 수 있다. 따라서, 본 발명에서는 콘테이너 제공부(120)는 메모리 오버 플로우 발생을 방지하기 위해 소정 갯수 이상의 콘테이너 이상을 제공하지 않는다. 따라서, 프레임 통합부(130)는 신규 콘테이너를 요청에 따라, 신규 콘테이너 획득에 실패할 수도 있다.
즉, 프레임 통합부(130)는 신규 콘테이너 획득 성공하지 못할 경우(S314), 즉, 네트워크 전송 지연이나 시스템 내부의 병목 발생으로 인해 처리가 완료되지 않은 데이터가 과도하게 누적될 경우, 중요도가 낮은 데이터는 버리고 점유하고 있던 버퍼를 반환해주어야 한다. 여기서, 중요도의 판정 기준으로 프레임 인덱스와 촬영 시각을 고려할 수 있다. 프레임 인덱스는 한 번의 촬영 중에 각각의 프레임이 촬영된 시점(time)을 나타낸다. 프레임 인덱스가 낮을수록 오래전에 촬영된 영상이므로 중요도가 낮다고 할 수 있다.
따라서, 프레임 통합부(130)는 콘테이너 리스트에서 가장 오래된 콘테이너를 추출(S315)하고, 추출된 콘테이너에 포함된 아이템을 아이템 풀(110)로 반환한다(S316). 즉, 프레임 통합부(130)는 프레임 인덱스가 저장된 queue를 이용하여 콘테이너 목록 중 가장 오래된 것을 찾아 이를 비우고 재사용한다.
그러면, 콘테이너에는 아이템이 전혀 포함되지 않은 신규 콘테이너와 동일하게 사용될 수 있다.
따라서, 프레임 통합부(130)는 아이템을 콘테이너에 부가하고(S317), 콘테이너를 콘테이너 리스트에 추가한다(S318). 이때 프레임 통합부(130)는 신규 콘테이너를 콘테이너 리스트에 추가할 때, map, set, queue 3가지에 동시에 추가한다.전술한 도 3a에 도시된 바와 같은 과정을 통해 아이템 입력에 따라 콘테이너에 추가하는 과정이 완료되어 적어도 하나의 콘테이너가 아이템으로 가득 찬 상태가 될 경우, 하기의 도 3b의 도시된 과정이 수행된다. 즉, 도 3a가 메모리 운용과 통합에 관한 프로세스라면 도 3b는 통합된 결과를 정상적으로 출력하기 위한 과정이다.
도 3b를 참조하면, 프레임 통합부(130)는 콘테이너 리스트에서 가장 작은 프레임 인덱스를 가진 콘테이너를 추출한다(S321). 이때, 프레임 통합부(130)는 set을 이용하여 가장 작은 프레임 인덱스를 획득한다.
그리고, 프레임 통합부(130)는 추출된 콘테이너가 가득찬 상태인지를 판단한다(S322). S322의 판단 결과, 추출된 콘테이너가 가득찬 상태일 경우, 콘테이너를 다음 쓰레드로 전달한다(S323). 이는 분산 처리와 전송이 지연없이 정상적으로 수행되었을 경우에 해당한다.
반면, S322의 판단 결과, 추출된 콘테이너가 가득찬 상태가 아닐 경우, 프레임 통합부(130)는 아이템을 아이템풀로 반환하고 해당 콘테이너를 폐기(S324)한 후, S321로 진행하여 추출(S321) 및 검사(S322)를 반복 수행한다. 이는 트러블로 인해 해당 구간에서 지연이 발생하였을 경우에 해당한다. 예컨대, 이러한 경우는 영상이 그 프레임 인덱스가 1번, 2번 및 3번으로 순차적으로 촬영 및 전송되었는데, 프레임 인덱스가 1번 및 2번인 콘테이너는 가득 채워지지 않았는데, 프레임 인덱스가 3번인 콘테이너가 먼저 가득 채워진 상황일 수 있다.
이럴 경우, 도 3b의 추출(S321) 및 검사(S322)의 반복 수행을 통해, 프레임 인덱스가 1번 및 2번인 콘테이너들에 존재하는 아이템을 아이템풀에 반환한 후, 해당 콘테이너들은 폐기하게 되고, 프레임 인덱스가 3번인 콘테이너만이 다음 스레드(비디오 스트림 관리부)로 전달된다.
이러한 도 3b에 도시된 과정들은 다음과 같은 문제점들을 극복하여 사용자가 올바른 순서로 출력된 영상을 제공받게 된다. 즉, 만일 프레임 통합이 완료되는 순서대로 출력을 수행한다면 전술한 바와 같은 경우, 사용자는 프레임 인덱스가 3번, 1번, 2번 순서로 데이터를 전달받게 되는데, 사용자가 수행하고자 하는 작업이 동영상 재생이라면, 비정상적인 형태로 재생이 될 수 있다. 또한, 인덱스가 낮은 프레임이 완성될 때까지 대기하였다가 순차적으로 출력을 수행한다면, 지연이 발생하는 만큼 대기 시간이 길어지며, 그 동안 계속적으로 입력되는 데이터로 인해 메모리 오버플로우 또는 메모리 고갈 현상이 발생될 수 있다. 또한, 만일 단순한 지연이 아니라 촬영 및 전송 과정에서 데이터가 아예 누락된 것이라면, 프레임 통합부(130)는 대기 상태에서 빠져나오지 못하게 된다. 도 4는 본 발명의 일 실시 예에 따른 비디오 스트림 관리부의 버퍼 상태를 설명하기 위한 도면이다.
도 4를 참조하면, 비디오 스트림 관리부(140)는 적어도 세 개의 버퍼들로 동작할 수 있어, 매초 수 기가 바이트의 데이터가 처리되는 고화질 다시점 영상 실시간 생성 시스템에서 상대적으로 적은 메모리만으로도 안정적으로 동작한다. 즉, 비디오 스트림 관리부(140)에 포함된 버퍼는 쓰기 가능(Writable)(410), 쓰기 중(Writing)(420), 읽기 가능(Readable)(430) 및 읽기 중(Reading)(440)의 4가지 상태로 구분될 수 있다. 본 발명은 그래픽스 등의 분야에서 디스플레이 갱신을 위해 일반적으로 사용되는 더블 버퍼(Double Buffer)와 달리 읽기로 인한 버퍼 점유 시간이 길어져도 시스템의 전체적인 처리 성능에 영향을 주지 않는다는 장점이 있다. 또한, 버퍼의 수는 가변적이며, 쓰기 가능 상태인 버퍼가 남아있지 않은 상태에서 새로운 데이터가 입력될 경우 읽기 가능 상태에 있는 가장 오래된 버퍼가 쓰기 가능 상태로 전환된다. 또한, 읽기 수행 시 버퍼를 장시간 동안 읽기 중 상태로 점유하고 있어도 시스템 처리 성능에 큰 영향을 주지 않기 때문에 최종적으로 생성된 출력 데이터를 다른 쓰레드나 사용자에게 전달할 때 별도의 버퍼에 복사할 필요가 없으며, 버퍼를 점유하고 있는 대상이 이를 실시간으로 처리 후 반환하지 않더라도 독립적인 운용이 가능하다.
도 5는 본 발명의 일 실시 예에 따른 비디오 스트림 관리부의 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 비디오 스트림 관리부(140)는 영상 데이터가 입력됨에 따라, pop 요청을 통해 쓰기 가능 버퍼를 꺼내어 영상 데이터를 쓰기 가능 버퍼에 기록한다(510). 그런 후, 쓰기 가능 버퍼는 읽기 가능 버퍼의 큐로 푸쉬된다(520). 사용자 요청에 따라, 읽기 가능 버퍼의 영상 데이터는 읽기 중 상태로 전환(530)되고, 사용자에 의해 읽기 완료된 버퍼는 다시 쓰기 가능 버퍼로 전환되어 쓰기 가능 버퍼의 큐에 푸쉬된다(540). 그런 후, 영상 데이터가 다시 입력에 따라 쓰기 가능 버퍼의 큐로부터 하나의 쓰기 가능 버퍼가 출력되어(550)에 영상 데이터가 쓰기 가능 버퍼에 기록된다.
도 6은 본 발명의 일 실시 예에 따른 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 장치(100)는 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력(S610)됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성한다(S620).
그리고, 장치(100)는 아이템을 프레임 인덱스 별로 콘테이너에 통합(S630)하고, 하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬한다(S640). 상세하게는, 장치(100)는 프레임 인덱스에 상응하는 콘테이너를 검색하여, 검색된 콘테이너에 아이템을 부가하되, 프레임 인덱스에 해당하는 콘테이너가 검색되지 않을 경우, 신규 콘테이너에 상기 아이템을 부가한다. 또한, 신규 콘테이너의 획득에 실패할 경우, 가장 오래된 콘테이너에 저장된 아이템을 반환하고, 가장 오래된 콘테이너를 상기 신규 콘테이너로 사용한다. 이에 대한 상세한 설명은 전술한 도 3a 및 도 3b와 동일하므로, 여기서는 그 상세한 설명을 생략하기로 한다.
그러면, 장치(100)는 정렬된 영상 데이터를 사용자 접근에 따라 사용자에게 전달한다(S650). 여기서, 장치(100)는 적어도 세 개 이상의 버퍼들을 포함하여, 각 버퍼들이 쓰기 가능, 쓰기 중, 읽기 가능 및 읽기 중의 4가지 상태로 전환하면서 영상 데이터를 사용자에게 전달한다. 이에 대한 상세한 설명은 전술한 도 4 및 도 5와 동일하므로, 여기서는 그 상세한 설명을 생략한다.
다음으로, 분산 시스템을 통해 실시간으로 촬영된 고화질 다시점 영상에 대해, 네트워크 통신이나 시스템 일부의 프로세스가 비실시간으로 동작할 경우 원형 큐만을 이용하면 어떤 문제가 발생하는지를 보이고, 제안된 솔루션을 적용한 결과와 비교한다.
도 7은 본 발명의 따른 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치에 의해 생성된 영상의 일 예이다.
도 7의 (a)는 처리가 지연되는 구간을 건너뛰고 기록하는 방식으로 원형 큐를 운용하였을 때의 결과 영상이다. 네트워크를 이용한 영상 데이터 전송이나 서버 내부 및 출력단의 처리에서 지연이 발생할 경우, 원형 큐만을 이용한 시스템에서는 지연 누적량이 원형 큐의 크기보다 커지면 앞선 처리가 완료될 때까지 그 다음에 입력되는 데이터가 큐에 기록되지 못하고 대기하거나, 또는 큐에서 처리가 지연되는 구간을 건너뛰고 그 다음 메모리 영역에 기록을 수행한다.
도 7의 (b)는 본 발명을 적용하였을 때의 결과 영상으로, 도 7의 (a)와 비교하였을 때, 동일한 시스템 환경에서도 프레임 동기화를 통해 깨끗한 결과 영상을 얻을 수 있다.
이를 통해, 본 발명이 네트워크 망이나 시스템 내부에서 발생하는 기본적인 문제들에 대해 기존의 원형 큐를 이용한 방법보다 좋은 해결책이 될 수 있음을 보인다.

Claims (9)

  1. 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성하여 출력하는 아이템 풀과,
    상기 아이템 풀로부터 출력된 아이템을 프레임 인덱스 별로 콘테이너에 통합하고, 하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬하여 영상 데이터를 순차적으로 출력하는 프레임 통합부와,
    상기 프레임 통합부로부터 전달되는 영상 데이터를 사용자 접근에 따라 전달하는 영상 스트림 관리부를 포함함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  2. 제 1항에 있어서, 상기 아이템 풀은
    아이템의 포인터를 관리하는 큐를 포함하여, 영상 데이터가 입력됨에 따라, 팝 명령을 통해 큐로부터 1개의 포인터를 획득하고, 획득된 포인터에 상응하는 메모리에 데이터를 기록하고, 기록된 데이터를 필요로 하는 쓰레드에게 상기 포인터를 전달함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  3. 제 1항에 있어서, 상기 아이템 풀은
    사용된 아이템에 상응하는 포인터를 푸쉬 명령을 통해 아이템 풀의 큐에 반환함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  4. 제 1항에 있어서,
    소정 개수의 콘테이너를 보유하여, 상기 프레임 통합부의 요청에 따라 콘테이너를 제공하는 콘테이너 제공부를 더 포함하고,
    상기 프레임 통합부는
    프레임 인덱스를 키값으로 하는 하나 이상의 콘테이너 리스트를 포함하되,
    아이템이 입력됨에 따라, 프레임 인덱스에 상응하는 콘테이너를 상기 콘테이너 리스트에서 검색하여, 검색된 콘테이너에 아이템을 부가하되, 상기 프레임 인덱스에 해당하는 콘테이너가 검색되지 않을 경우, 상기 콘테이너 제공부로부터 신규 콘테이너를 획득하여, 상기 아이템을 부가함과 아울러 상기 신규 콘테이너를 상기 콘테이너 리스트에 추가함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  5. 제 4항에 있어서, 상기 콘테이너 통합부는
    상기 신규 콘테이너의 획득에 실패할 경우, 상기 콘테이너 리스트에서 가장 오래된 콘테이너에 저장된 아이템을 상기 아이템 풀로 반환하고, 상기 가장 오래된 콘테이너를 상기 신규 콘테이너로 사용함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  6. 제 1항에 있어서, 상기 비디오 스트림 관리부는
    적어도 세 개 이상의 버퍼들을 포함하여, 각 버퍼들이 쓰기 가능, 쓰기 중, 읽기 가능 및 읽기 중의 4가지 상태로 전환됨을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 장치.
  7. 다시점 영상 촬영을 수행하는 다수의 노드에서 촬영된 영상 데이터가 입력됨에 따라, 영상 데이터에 촬영 시점을 나타내는 프레임 인덱스가 표시되는 아이템의 형태로 생성하는 단계와,
    상기 아이템을 프레임 인덱스 별로 콘테이너에 통합하는 단계와,
    하나 이상의 콘테이너들을 프레임 인덱스에 따라 정렬하는 단계와,
    상기 정렬된 영상 데이터를 사용자 접근에 따라 전달하는 단계를 포함함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법.
  8. 제 7항에 있어서, 정렬하는 단계는
    프레임 인덱스에 상응하는 콘테이너를 검색하여, 검색된 콘테이너에 아이템을 부가하되, 상기 프레임 인덱스에 해당하는 콘테이너가 검색되지 않을 경우, 상기 신규 콘테이너에 상기 아이템을 부가함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법.
  9. 제 8항에 있어서, 상기 정렬하는 단계는
    상기 신규 콘테이너의 획득에 실패할 경우, 가장 오래된 콘테이너에 저장된 아이템을 반환하고, 상기 가장 오래된 콘테이너를 상기 신규 콘테이너로 사용함을 특징으로 하는 비동기식 멀티스레딩 기반의 고화질 다시점 영상 실시간 통합 방법.
KR1020150159201A 2015-11-12 2015-11-12 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법 KR101752362B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150159201A KR101752362B1 (ko) 2015-11-12 2015-11-12 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150159201A KR101752362B1 (ko) 2015-11-12 2015-11-12 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170055878A true KR20170055878A (ko) 2017-05-22
KR101752362B1 KR101752362B1 (ko) 2017-07-03

Family

ID=59050182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150159201A KR101752362B1 (ko) 2015-11-12 2015-11-12 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101752362B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190075034A (ko) * 2019-06-20 2019-06-28 주식회사 아이닉스 차량용 영상 생성 장치 및 방법
CN112364201A (zh) * 2021-01-13 2021-02-12 北京电信易通信息技术股份有限公司 一种视频数据检索方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190075034A (ko) * 2019-06-20 2019-06-28 주식회사 아이닉스 차량용 영상 생성 장치 및 방법
CN112364201A (zh) * 2021-01-13 2021-02-12 北京电信易通信息技术股份有限公司 一种视频数据检索方法及系统

Also Published As

Publication number Publication date
KR101752362B1 (ko) 2017-07-03

Similar Documents

Publication Publication Date Title
EP0674414B1 (en) Apparatus and computer-implemented process for providing real-time multimedia data transport in a distributed computing system
US7460126B2 (en) Scalable method and system for streaming high-resolution media
US7280566B2 (en) Multi-format transport stream decoder
CN107527317B (zh) 基于图像处理的数据传输系统
KR910019369A (ko) 미디어 액세스제어/호스트 시스템 인터페이스를 수행하기 위한 방법 및 장치
CN102200927B (zh) 使用多线程架构的视觉和图形数据处理
JP2015511790A (ja) メッセージ処理方法及び装置
KR101752362B1 (ko) 비동기식 멀티 스레딩 기반의 고화질 다시점 영상 실시간 통합 장치 및 방법
JPH05258556A (ja) 適合fifoメモリ・コントローラ
AU2014368914B2 (en) Multiple views recording
CN112422832B (zh) 图像数据的传输方法、移动终端及存储介质
US6466939B1 (en) System and method for communicating video data in a digital media device
CN111405347B (zh) 画面显示方法、装置、电子设备及可读存储介质
WO2023160484A1 (zh) 一种图像处理的方法及相关装置和系统
CN115361579B (zh) 视频送显方法、装置、电子设备及存储介质
EP1773043A1 (en) Method and system for storing data packets
CN111343404B (zh) 成像数据处理方法及装置
US20080313268A1 (en) Sending content from multiple content servers to clients at time reference points
EP0969356A2 (en) System and method for managing buffers using free pointer FIFOs containing pointers to empty buffers
US6791556B1 (en) Multiframe rendering of video data on a general purpose computer
CN102541660B (zh) 一种红外实时成像系统的帧缓存调度装置及调度方法
CN110996057B (zh) 媒体数据处理方法、装置、计算机设备和存储介质
CN116055680A (zh) 一种视频传输系统
JPH10507294A (ja) ビデオ画像の転送用の単一集中メモリアーキテクチャ
CN215871605U (zh) 一种具备自适应缓存的多目成像电路

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant