KR101048407B1 - 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체 - Google Patents

디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101048407B1
KR101048407B1 KR1020100072071A KR20100072071A KR101048407B1 KR 101048407 B1 KR101048407 B1 KR 101048407B1 KR 1020100072071 A KR1020100072071 A KR 1020100072071A KR 20100072071 A KR20100072071 A KR 20100072071A KR 101048407 B1 KR101048407 B1 KR 101048407B1
Authority
KR
South Korea
Prior art keywords
token
unit
decoder
functional units
information
Prior art date
Application number
KR1020100072071A
Other languages
English (en)
Other versions
KR20100092407A (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 KR1020100072071A priority Critical patent/KR101048407B1/ko
Publication of KR20100092407A publication Critical patent/KR20100092407A/ko
Application granted granted Critical
Publication of KR101048407B1 publication Critical patent/KR101048407B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 가변 디코딩 장치 및 방법에 관한 것으로서, 토큰으로 표현된 연결정보를 가지는 다수의 기능 유닛을 저장하는 저장부; 적어도 하나의 상기 기능 유닛의 식별자와 상기 토큰으로 구성된 연결관계 정보를 포함하는 디코더 디스크립션(decoder description)를 입력받고, 상기 저장부에서 해당 기능 유닛을 선택하고, 선택된 상기 기능 유닛들을 상기 토큰을 이용하여 상호 연결하여 가변 디코더를 구성하는 구성부를 포함하는 디코딩 장치 및 이를 통해 실현되는 디코딩 방법을 제공한다.
본 발명은 디코더를 구성하는 복수 개의 기능 모듈들 사이의 연결관계를 추상적인 토큰으로 정의함으로써, 다양한 인코딩 방식에 적합한 디코더를 동적으로 신속하게 구성할 수 있으며, 인코딩, 디코딩, 표준화의 각 레벨에서 적합성에 대한 용이한 검증과, 정보의 집중화를 이루어 기술의 발전과 표준화를 촉진할 수 있다.

Description

디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체{decoding apparatus and method and computer-readable storage medium}
본 발명은 디코딩 장치, 디코딩 방법에 관한 것으로서, 구체적으로는 하나의 장치를 이용하여 다양한 방식으로 인코딩된 신호를 디코딩할 수 있는 디코딩 장치 및 디코딩 방법에 관한 것이다.
MPEG에서는 재구성가능 비디오 코딩(Reconfigurable Video Coding; RVC)이라 부르는 영상 부호화 기술 프레임워크에 관한 표준의 제정에 착수하였다. RVC는 다양한 종류의 영상 부호화 및 복호화 기술들을 모듈별로 나누어 수행하도록 하는 코덱 프레임워크에 관한 기술로서, 현재의 영상 부호화 기술 활용에 대한 유연성을 높이며 향후에 개발될 영상 부호화 기술들에 대해서도 용이한 적용이 가능토록 하는 기술이다.
RVC의 기본 개념은 복호화(나아가 부호화) 처리의 각 과정을 수행하는 기능별로 분할된 복수 개의 처리 모듈[FU(Function Unit), 이하, FU라 칭함]을 마련하고, 각 복호 방식에 맞추어 적절한 FU들을 조합하여 복호를 수행하고자 하는 것이다.
그런데, FU 및 이들의 연결관계를 정의하는 디코딩 디스크립터(Decoding Descriptor; 이하 DD라 칭함)와 관련하여 종래에 “ISO/IEC 23002-4 Video Tool Library(VTL)”에서 제안된 표준안은, FU를 정의할 때 입출력 신호(Input/Output, Control-Context)를 바탕으로 정의하고 있어서, 상당한 복잡성을 가진다.
일례로서, 각 FU마다 정의가 제 각각인데, 가령 근본적으로 특정 입력이 상호 동일함에도 불구하고, 어떤 FU에서는 YUV, 다른 FU에서는 YV12라고 명명하는 식이다.
이로 인해 현실적인 이용이 어렵고 또한 FU들간의 연결관계의 적합성 검증이 어렵다. 즉, FU들간의 연결관계를 검증하려면, 모든 데이터 특성, 예컨데 데이터 사이즈(또는 타입), 직/병렬 전송 방식 및 내부 알고리즘 등을 모두 비교한 후에 FU들간의 연결 가능 여부를 알 수 있다.
또한 FU의 기능이나 역할에 대해서뿐만이 아니라 입출력 신호의 크기(size)나 순서(sequence)가 명시되어 있는데, 이처럼 구현-종속적인(Implementation-dependent) 내용이 포함되면서 표준 문서의 분석이 어렵고 분량이 늘어나는 등의 문제를 내포하고 있다.
또한, FU의 정의를 위해 “Internal Algorithm”항목을 두어 FU의 내부 알고리듬을 기술하고 아울러 입출력 신호의 의미를 정의하고 있다. 그러나 이는 구현-종속적인 특성으로서 FU를 제작하는 자에게도 제약을 주는 한편, FU를 사용하고자 하는 자에게는 불필요한 정보가 된다. 이에 따라 입출력 신호를 명확히 제공하지 못하는 문제점을 여전히 내포하고 있다.
이러한 문제점으로 인하여, 표준화 과정에서의 어려움이 수반되는 것은 물론이고, FU의 구현과 FU의 연결관계를 정의하는 DD의 작성이 매우 복잡하고 많은 제약이 수반되며, 이에 따라 현실적 이용에 있어서 어려움이 크다.
따라서, 현재 시점에서 RVC의 활용례는 디코딩 장치의 구현 단계에서 FU들간의 연결관계를 시뮬레이션하고 이를 토대로 FU들을 고정 연결하여 디코딩 로직을 ASIC 형태로 제작하는 정도를 시도해보는 선에 머무르고 있다.
즉, 디코딩 장치의 구현 또는 제작 단계에서 RVC 기술을 적용 시도하고 있을 뿐, 하나의 디코딩 장치가 여러 부호화 방식에 따라 동적으로 디코딩 로직을 가변 재구성할 수 있는 수준에 도달하지 못하며, 입출력 신호 기반으로 FU를 정의하는 현재의 접근 방식으로는 이러한 상용 가능한 수준에 이르지 못할 것으로 예상된다.
본 발명의 목적은, RVC 기술에서 FU의 연결관계를 간단 명료하게 정의할 수 있도록 하여, 이럼으로써 표준화 속도를 가속화하고 상용 가능한 RVC 디코딩 장치 및 방법이 구현 가능하도록 하는 데 있다.
본 발명의 다른 목적은, 다양한 방식으로 인코딩된 영상 각각에 적합하도록, 런-타임시, 동적으로 디코딩 로직에 재구성하는 디코딩 장치 및 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은, 연결 정보를 포함하는 DD를 간단 명료하게 작성할 수 있도록 하여, DD 작성의 유연성을 높이고 난이도를 낮추어 일반인도 자신의 인코딩/디코딩 방식을 용이하게 구현하도록 하며, 콘텐츠의 전송효율을 높이는 데 있다.
본 발명의 또 다른 목적은, FU 연결 구성에 대한 검증이 가능한 장치 및 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은, FU 구현시의 불필요한 제약을 없애, FU 구현자가 자신들의 기술 특성에 최적화된 FU를 구현할 수 있도록 하여, 결과적으로 디코딩 성능을 향상할 수 있는 RVC 체계를 제시하는 데 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 많은 목적들은 아래의 기재로부터 본 발명의 기술분야에 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은, 토큰으로 표현된 연결정보를 가지는 다수의 기능 유닛을 저장하는 저장부와, 적어도 하나의 상기 기능 유닛의 식별자와 상기 토큰으로 구성된 연결관계 정보를 포함하는 디코더 디스크립션(decoder description)를 입력받고, 상기 저장부에서 해당 기능 유닛을 선택하고, 선택된 상기 기능 유닛들을 상기 토큰을 이용하여 상호 연결하여 가변 디코더를 구성하는 구성부를 포함하는 디코딩 장치를 제공한다.
상기 토큰은 상기 기능 유닛 사이에서 입출력 되는 데이터에 각각 대응되는 것으로서, 이름 또는 식별자와 상기 데이터에 대한 기본적 설명을 포함하여 정의되는 것이 바람직하다.
상기 기능 유닛이 복수 개의 입력단을 포함하며, 상기 복수 개의 입력단으로 입력되는 각각 입력되는 복수 개의 데이터의 입력 순서에 종속적으로 동작하는 경우를 대비하여, 상기 입력되는 복수 개의 데이터에 대응하는 토큰 사이의 우선 순위 정보를 더 포함하는 것이 좋다.
기능 유닛 각각은, 상호 연결 가능한 기능 유닛 간에는 상기 데이터의 전달 순서, 사이즈(size), 직/병렬 전송방식이 부합되도록 구현될 것이 요구된다.
본 발명의 다른 면에 따라, 디코딩을 위한 단계별 기능을 수행하는 복수 개의 기능 유닛을 저장하는 제1 저장부; 및 상기 기능 유닛을 연결하는 연결관계 정보를 입력받고, 이에 따라 상기 저장부에서 해당 기능 유닛을 선택하여, 선택된 상기 기능 유닛들을 상호 연결하여 가변 디코더를 구성하는 구성부와, 상기 기능 유닛별 연결정보를 포함하는 제2 저장부를 포함하는 디코딩 장치가 제공된다.
본 발명의 또 다른 면에 따라, 인코딩된 비트스트림과 함께, 적어도 하나의 기능 유닛의 식별자와 상기 기능 유닛 간의 입출력되는 데이터에 대응하는 토큰을 포함하는 디코더 디스크립션(decoder description)을 입력받는 단계; 저장부에서 상기 기능 유닛의 식별자에 대응하는 상기 기능 유닛을 선택하는 단계; 상기 토큰을 이용하여 상기 선택된 기능 유닛을 상호 연결하여 상기 인코딩된 비트스트림을 디코딩할 가변 디코더를 구성하는 단계; 및 상기 인코딩된 비트스트림을 상기 가변 디코더를 통해 디코딩하는 단계를 포함하는 디코딩 방법이 제공된다.
상기 가변 디코더를 구성하는 단계는 상기 디코더 디스크립션에 포함된 파서 디스크립션을 추출하는 단계와, 상기 파서 디스크립션에 따라 파싱 유닛을 생성하는 단계와, 상기 생성된 파싱 유닛과 상기 선택된 기능 유닛을 연결하는 단계를 포함하여 이루어진다.
이와 달리, 디코더 디스크립션에 기재된 기능 유닛의 입력 또는 출력에 관련된 토큰을 확인하는 단계와, 기능 유닛의 연결정보를 정의한 룩업 테이블을 참조하여, 해당 기능 유닛이 상기 확인된 토큰을 입력 또는 출력할 수 있는지를 확인하는 단계와, 상기 확인 결과에 따라 기능 유닛 사이의 연결 관계를 검증하는 단계를 수행하여 상기 가변 디코더를 구성할 수도 있다.
디코딩 하는 단계는 복수 개의 입력단을 가지는 기능 유닛에 대하여, 상기 입력단 각각에 대응하는 토큰들 사이의 우선 순위 정보가 존재하는지를 판단하는 단계와, 그럴 경우, 상기 토큰의 우선 순위 정보에 따라 상기 각 입력단에 입력되는 데이터의 처리 순서를 결정하는 결정하는 단계와, 상기 결정된 처리 순서에 따라 입력 데이터를 처리하는 단계를 포함하는 수행되는 것이 바람직하다.
본 발명의 또 다른 면에 따라, 비트스트림을 인코딩하는 단계와, 상기 인코딩 방식에 대응하는 디코딩을 수행하기 위한 기능 유닛을 기능 유닛 테이블로부터 추출하는 단계와, 상기 기능 유닛 사이의 연결관계를 설정하는 단계와, 상기 추출된 기능 유닛과 기능 유닛 사이의 상기 설정된 연결관계를 기술한 디코더 디스크립션을 생성하는 단계와, 상기 인코딩된 비트스트림과 상기 디코더 디스크립션을 병합하여 전송하는 단계를 포함하는 인코딩 방법에 제공된다.
기능 유닛간 연결관계의 설정은 토큰 테이블을 참조하여, 상기 추출된 기능 유닛의 입력 또는 출력에 가능한 토큰을 추출하는 단계와, 상기 추출된 토큰이 상호 연결하고자 하는 두 개의 기능 유닛들 사이에 공통으로 이용 가능한 것인지를 확인하는 단계와, 이용 가능할 경우 상기 상호 연결하고자 하는 두 개의 기능 유닛의 이름 또는 식별자와 상기 토큰을 이용하여 상기 기능 유닛간의 연결관계를 정의하는 단계를 수행하여 이루어 질 수 있다.
본 발명의 또 다른 면에 따라, 디코딩 처리의 단계별 처리를 수행하는 것으로서, 상호간에 전달되는 데이터 전달 순서, 사이즈, 직렬/병렬 전송방식이 부합되도록 구비되는 복수 개의 기능 유닛을 조합하여 임의의 디코더를 구성하는 프로그램이 저장된 컴퓨터로 판독 가능한 기록 매체에 있어서, 상기 프로그램은 상기 기능 유닛의 식별자와 상기 기능 유닛 간의 연결관계 정보를 포함하는 디코더 디스크립션을 입력받는 단계와, 상기 디코더 디스크립션에 따라 상기 식별자에 대응하는 기능 유닛을 선택하는 단계와, 상기 디코더 디스크립션에 따라 상기 선택된 기능 유닛들을 조합하는 단계를 실행하는 것인 검퓨터로 판독 가능한 기록 매체가 제공된다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 의하여 구체적으로 개시된다.
본 발명에 따르면, 하나의 디코딩 장치로 다양한 방법으로 인코딩된 영상을 디코딩할 수 있다.
또한 FU간의 연결관계를 토큰을 이용하여 정의하고, 나아가 각 토큰은 이름(또는 식별자) 및 디스크립션만으로 정의하고, 이러한 토큰을 이용하여 FU을 정의함으로써, FU 연결관계를 간단 명료하게 정의할 수 있어, 상용 가능한 RVC 기술 적용 디코딩 장치 및 방법을 개발할 수 있으며, 표준화에 기여할 수 있다.
또한, DD의 작성을 용이하게 하여 신속한 RVC 기술 보급을 유도하는 한편, DD의 용량을 감소시킴으로써, 콘텐츠 전송시의 전송효율을 높일 수 있다.
또한 본 발명에 따르면, 각 인코딩 영상에 대응되는 재구성 디코더를 짧은 시간에 동적으로 구성할 수 있다. 또한 토큰, 토큰 풀 및 FU 테이블을 통해 정보를 집중시키며 일원화할 수 있다.
나아가, 인코더 레벨, 디코더 레벨, 그리고 표준화 레벨, 3단계 모두에 대해 검증조건을 제공하는 효과가 있다. 우선 인코더 레벨에서 DD 작성 시 DD 내 Token 정보를 이용하여 연결을 검증할 수 있다. 또한 DD에 포함된 Syntax Parser Description에도 Token 정보를 포함하여 디코더에서 연결에 대비할 수 있도록 한다.
디코더 레벨에서 DD 분석 시, 각 FU를 연결할 때 FU간 연결을 용이하게 검증할 수 있다.
표준화 레벨에서 새로운 FU 정의할 때 연결관계의 적합성(Connectable Network) 을 검증할 수 있다. 토큰 풀 내에 있는 토큰 만으로 연결 가능하면 적합상이 가장 좋고, 새로 토큰을 정의하는 경우 자신만의 이용하는 경우가 발생할 수 있다. 따라서 가급적 신규 정의를 피하고 재활용을 시도하기 때문에 기술 누적되는 효과가 있다. 아울러 표준화에 필요한 단계에서 필요한 Conformance Test를 수행할 수 있다.
도 1은 본 발명의 실시예들에 따른 디코딩 장치를 설명하기 위한 블록도.
도 2a 내지 도 2e는 FU을 설명하기 위한 예시도.
도 3은 본 발명의 실시예들에 따른 디코딩 방법을 설명하기 위한 도면.
도 4a 내지 도 4c는 FU의 동작을 설명하기 위한 예시도
도 5는 본 발명의 일 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명하기 위한 개념도.
도 6은 본 발명의 다른 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명하기 위한 개념도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 그 외의 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 예컨대, 본 명세서에 인코딩/디코딩 되는 콘텐츠를 영상으로 예시하고 있으나, 콘텐츠의 종류는 이에 한정되지 않고 영상/음성 등의 다양한 형태의 멀티미디어 콘텐츠에 적용될 수 있음은 물론이다.
본 발명의 기술적 기본 사상은 FU 들간의 연결관계를 입출력 신호 또는 입출력 단자 측면에서 정의하는 것이 아니라, 신호 흐름 관점에서의 토큰으로 정의하는 데 있다.
또한, 토큰은 자신의 이름과 최소한의 기본정의에 해당하는 디스크립션만으로 정의되고, 신호의 크기, 순서 등과는 무관하게 정의된다.
이하, 도 1 내지 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명한다. 도 1은 본 발명의 실시예에 따른 디코딩 장치를 설명하기 위한 블록도이고, 도 2는 FU를 설명하기 위한 예시도이고, 도 3은 본 발명의 실시예에 따른 디코딩 방법을 설명하기 위한 순서도이다.
도 1 내지 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 디코딩 장치(10)는, 구성부(100)와 저장부(repository)(200)를 포함할 수 있다. 구성부(100)는, 인코딩된 비트스트림을 디코딩하는 디코더(300)를 구성하기 위해, DD(Decoder Description)을 입력받아(S310) 저장부(200)에서 적어도 하나의 FU을 선택하고, 선택된 FU를 상호 연결하여, 인코딩된 신호를 디코딩하기에 적합한 디코더(300)를 구성한다. 디코더(300)는 DD에 따라 재구성되는 가변 가능한 특성을 가지므로 이하에서는 종래의 디코더와의 구별을 명확히 하기 위하여 가변 디코더라고 칭한다.
DD는 인코딩된 비트스트림을 디코딩하는 가변 디코더(300)를 구성하는데 필요한 FU(도 2 참조)들의 이름(또는 식별자)와, 이 FU들을 연결하기 위한 연결 정보를 포함하며, 저장부(Video Tool Library, VTL)(200)에는 다수의 FU가 저장되어 있다.
도 3을 참조하여 구성부(100)가 가변 디코더를 구성하는 절차를 설명하면 다음과 같다.
DD는 입력 비트스트림을 파싱하는 파서 FU를 구성하는 데 필요한 정보인 PD(Parser Description)과 FU 들을 연결하는데 필요한 연결정보인 FND(FU Network Description)을 포함하고 있는데, 구성부(100)가 DD를 입력받으면(S310), PD를 참조하여 파서 FU를 생성하고(S320), FND를 참조하여 저장부(200)으로부터 하나 이상의 FU를 선택하고 선택된 FU들을 연결하여 FU들로 구성된 디코딩 로직을 구성한다(S330).
파서 FU과 디코딩 로직을 포함하여 본 발명에 따른 가변 디코더(300)를 구성한다(S340).
가변 디코더(300)를 구성함에 있어서, 전술한 바와 달리, 파서 FU를 생성하지 않고 저장부(200)에 저장된 것을 이용할 수도 있으며, 이 경우 PD는 파서 FU의 이름 또는 식별자만을 포함하면 될 것이다.
이와 같이 본 발명의 기술적 요지를 벗어나지 않는 범위에서 그 외의 가변 디코더의 구성에 있어서의 다양한 형태의 변형례가 있을 수 있으며, 전술한 단계(S310 내지 S340) 역시 시계열적 한정을 두며 기술한 것은 아니다.
이러한 본 발명의 실시예에 따른 디코딩 장치(10) 및 디코딩 방법은, 입력되는 비트스트림이 어떠한 방법으로 인코딩되는 경우라도, 인코딩된 비트스트림과 함께 입력되는 DD에 따라 가변 디코더를 구성함으로써, 해당 인코딩 방법에 대응하는 적절한 디코더를 동적으로 구성할 수 있고, 따라서 하나의 장치를 이용하여 다양한 방법으로 인코딩된 신호를 디코딩할 수 있다.
이하에서 FU과 토큰에 대해 좀더 구체적으로 설명한다.
먼저, 토큰이란 FU 사이에서 전달되는 신호(데이터)를 의미하는데, 따라서 하나의 토큰은 두 개의 FU 사이의 입출력 관계를 포함하는 FU간 연결관계를 자연적으로 정의할 수 있다. 본 발명에서는 하나 이상의 토큰을 이용하여 가변 디코더(300)를 구성하는 FU들간의 연결관계를 정의한다.
한편, 본 발명에 따른 토큰은 자신의 이름(또는 식별자, 또는 이름 및 식별자)과 다른 토큰과 구별되는 자신만의 성질을 기술한 디스크립션만으로 정의된다.
본 발명의 바람직한 실시예에서, 토큰의 이름은 직관적으로 토큰의 종류를 인식할 수 있는 가변 길이 단어 또는 약어이며, 식별자는 DD 구성을 용이하게 하기 위하여 고정길이의 고유 번호 또는 약어 등일 수 있다.
또한, 토큰의 디스크립션은 신호(데이터)의 가장 기본적인 성질(예컨대, 비트스트림 자체, 제어신호 등)만을 정의하고 신호의 크기, 전달 순서, 전송 형태(직렬 또는 병렬전송) 등에 대해서는 정의하지 않는다.
도 2b 내지 도 2e를 참조하여 좀더 구체적으로 설명한다.
예를 들어 도 2b에 같이 2개의 FU가 토큰 X로 연결되어 있다고 할 때, 구현하고자 입장에 따라 크게 3가지 정도의 사례로 살펴볼 수 있다.
먼저 도 2c에는 각각 토큰 X를 Serial로 처리한 서로 다른 예를 보여주고 있다. 도 2c의 첫번째 그림은 abc의 형태로 전송하는 것을 선호하고 있으면 두번째 그림은 cba 형태로 전송하는 것을 선호하고 있다. 만약 토큰 X를 정의할 때 Data 전달 순서(sequencing)에 대해 규정하고 있다면 그림과 같은 사례는 서로 다른 토큰으로 구성되어야 할 뿐만 아니라 전자와 후자의 FU A는 서로 다른 출력을 명시하므로 서로 다른 FU로 등록되어야 한다. 이는 표준 문서의 기술을 복잡하게 할 뿐만 아니라 구현하는 자에게 특정 방식을 강요하는 결과를 초래할 수 있다.
도 2d는 토큰 X를 각각 Serial과 Parallel로 처리한 예를 보여주고 있다. 도 2d의 첫번째 그림은 Serial 방식으로 abc의 데이터를 전송하고 있으며, 도 2d의 두번째 그림은 토큰 X의 버스를 3개로 나누어 a, b, c를 각각 독립적으로 전송하고 있다. 이 경우 첫번째 그림은 a 하나의 크기로 토큰 X의 입출력을 설정할 수 있는 반면, 두번째 그림은 a+b+c 크기로 토큰 X의 입출력을 설정해야 하는 상황이다. 만약 토큰 X를 정의할 때 Size에 대해 규정하고 있다면 그림과 같은 사례는 서로 다른 토큰 으로 구성되어야 할 뿐만 아니라 전자와 후자의 FU A는 서로 다른 출력을 명시하므로 서로 다른 FU로 등록되어야 한다. 이 역시 앞선 예와 마찬가지로 표준 문서의 기술을 복잡하게 할 뿐만 아니라 구현하는 자에게 특정 방식을 강요하는 결과를 초래할 수 있다
다음으로 도 2e는 Serial 개념의 토큰을 내부에서 Parallel로 처리한 예를 보여주고 있다. 알고리듬을 구성할 때는 Serial 관점에서 제시되고 구현할 때 Parallel 방식으로 개선하는 경우가 주로 이러한 상황일 것이다. 전자의 경우는 알고리듬이 기술한 대로 토큰 X를 전송하는 경우이고 후자의 경우 3개의 토큰 으로 분할하여 Parallemism을 구현한 경우다. 하지만 후자의 경우 내부적으로 (X=Xa+Xb+Xc)로 규정한 경우, 다시 말해 토큰 X는 우리에게 Xa, Xb, Xc로 Parallel하고 구성된 것으로 처리한다라는 식의 규정이 있는 경우, 내부에서는 3개로 동작하지만 외부에서 보는 것은 동일하게 동작한다. 이 역시 만약 표준에서 토큰 X를 정의할 때 Parallism에 대해 규정하고 있다면 그림과 같은 사례는 서로 다른 토큰 으로 구성되어야 할 뿐만 아니라 전자와 후자의 FU A는 서로 다른 출력을 명시하므로 서로 다른 FU로 등록되어야 한다. 이 역시 앞선 예와 마찬가지로 표준 문서의 기술을 복잡하게 할 뿐만 아니라 구현하는 자에게 특정 방식을 강요하는 결과를 초래할 수 있다
도 2e에서 내부 규정으로 (X = Xa + Xb + Xc)이 명시된다면 입출력 결과는 동일하기 때문에 표준에서 FU를 추가적으로 정의하면서 이러한 상황을 세부적으로 규정할 필요가 없게 된다.
이러한 토큰의 이름(또는 식별자, 또는 이름 및 식별자) 및 디스크립션을 모아 토큰 풀을 구성하여 DD의 작성시 및 새로운 FU의 검증시 활용할 수 있으며, 토큰 풀의 템플릿의 일 예는 아래의 표 1과 같으며, 토큰 풀의 일 실시예는 아래의 표 2과 같을 수 있다.
토큰 풀 템플릿(Template of description of the Token Pool)
ID NAME DESCRIPTION
Unique numerical number which represent this Token in this row Unique name to represent this Token in this row Some text to describe characteristics or functionality of this Token in this row
토큰 풀(토큰-Pool)
ID NAME DESCRIPTION
1 CBP An array of 6 Boolean values for describing whether the individual block includes one or more DCT coefficients that are decoded as (LAST, RUN, LEVEL) symbol
2 Quant _ scale a 5-bit integer value for describing the quantization step in the current MB, which is derived from the running QP and dQuant to calculate QP and determine dc _ scaler for current MB by referring to Table 7-1 (14496-2:2004)
3 Dquant _ scale a 2-bit code which specifies the change in the quantiser scale, for I-, P-, and S(GMC)-VOPs
dquant codes and corresponding values: (ISO/IEC 14496-2 Table 6-32)
dquant_scale = 00 →value= -1
dquant_scale = 01 →value= -2
dquant_scale = 10 →value= 1
dquant_scale = 11 →value= 2
4 AC _ pred _ flag to determine the direction of inverse DC prediction
5 AltScan Indicates zigzag or alternate scan. AltScan flag is 0 when zigzag, 1 when alternate scan. It must set every block
6 Ac _ pred _ dir A flag to communicate the direction of prediction to the IAP block but also info about the scan mode of the block to the inverse scan block.
AC_PRED_DIR = -2 => NEWVOP flag. AC_PRED_DIR = -1 => An uncoded block so skip inverse AC prediction.
AC_PRED_DIR = 0 => No inverse AC prediction but use zig zag inverse scan. AC_PRED_DIR = 1 => Prediction form the left and use alternate vertical scan.
AC_PRED_DIR = 2 => Prediction form the top and use alternate horizontal scan.
7 RefMB A buffer of MB data to have a relation with current MB
8 MB A MB buffer to save a target MB data
9 MB _ type Indicate the type of MB
10 Qp Quantization parameter of an MB which is calculated in fuDCR.
11 DC _ left to compute the direction of DC/AC prediction for 6 (4 Y/1 Cb/1 Cr) block(s)
12 DC _ top
13 DC _ lefttop
이와 같이 토큰을 이름(또는 식별자, 또는 이름 및 식별자)과 디스크립션만으로 정의함으로써 토큰의 정의를 추상화시키고 구현-독립적인 내용만 포함시킴으로써 표준 내용이 특정 기업 또는 특정 산업에 국한되어 이용되는 것을 막을 수 있다. 그리고 FU에 관해서는 별도의 FU 테이블을 통해 FU를 정의하고, 토큰 풀에는 FU에 대한 사항을 기재하지 않음으로써, 정보를 집중시킬 수 있다.
한편, 토큰 풀에는 토큰 이름을 대체하여 또는 토큰 이름과 함께 토큰 식별자(Token ID)를 함께 기재하여 DD의 작성이나 FU의 구성에 있어서 식별자를 이용할 수 있도록 함이 바람직하다. 다만, 토큰 식별자(Token ID) 사용 중에, 다시 이름으로 복원하기 위해 ID-Name 맵을 사용할 수 있다. 이러한 경우, IDToName() / NameToID() 등의 함수를 구비할 수 있다.
한편, 저장부(200)에 저장된 FU는 DD에 따른 가변 디코더 구성과 검증을 위하여 자신의 연결정보를 가지고 있어야 한다.
즉, 각 FU는 자신이 처리 가능한 입출력 신호의 종류와 입출력 단의 개수에 대한 정보를 가지고 있어야 하는데, 이들 역시 토큰만을 이용하여 정의될 수 있다.
도 2 및 표 1을 참조하여 예로 들어 설명하면, FU I(210)가 입력단이 2개, 출력단이 1개이며 토큰 TA 및 TB에 해당하는 신호를 입력받아 이를 처리하여 토큰 TC에 해당하는 신호를 출력하는 FU일 경우, 다음과 같이 정의될 수 있다.
FU I
입력 : TA,
TB
출력 : TC
즉, FU의 입력단 및 출력단은 토큰으로 정의될 수 있다. 다시 말해서, 각 FU에 대한 입출력 관계의 정의를 입출력 인터페이스 관점이 아니라, 데이터 관점에서 정의를 함으로써, 연결 정보의 복잡도를 감소시키며 검증을 가능하게 한다.
각 FU에 대한 연결정보(즉, 입출력 관계 정보)를 토큰만으로 구성함으로써, 구성부(100)는 DD를 참조하여 신속하게 가변 디코더(300)을 구성할 수 있으며, 구성 과정 중에 FU 간의 적정 연결 여부를 검증할 수 있다. 한편, 전술한 바와 같이 FU의 입력단 및 출력단 각각은 토큰으로 정의되므로, 각 FU에 대한 연결정보는 토큰 이외에도 FU의 입력단 및 출력단에 관한 정보(예컨대 입력단 및 출력단의 식별자)로 정의될 수도 있다. 이와 관련한 구체 설명은 도 4를 참조하여 후술한다.
또한, 토큰의 정의로 인해 특정 FU와 타 FU 간의 연결 가능성을 사전에 검증할 수 있으므로, 다른 코덱의 FU를 사용할 수도 있게 된다. 아울러, 새로운 특정 코덱을 정의하고 그에 따른 토큰의 구조만 정의된다면, 코덱의 적정성을 검증할 수도 있다. 아울러 코덱 레벨에서 호환성(Conformance) 테스트가 가능하다. 예를 들어 자기 알고리듬으로 인코딩해서 비트스트림 생성하고 그에 맞는 DD를 디코더에 전달한다. 자기 알고리듬은 기존 코덱에서 일부 FU를 추가하거나 뺄 수 있다. 이는 DD만 분석하고 그 내에 사용된 Token의 적합성만 판명되면 언제든 가능하다. 이러한 특징은 미래에 등장할 새로운 코덱에 대해서도 유연하게 대응할 수 있다는 의미를 갖는다.
한편, FU들은 각 입력단에 입력되는 신호가 순서 종속적인 경우가 있을 수 있다. 예컨대, 토큰 TA가 플래그이고, 토큰 TB가 화소 신호이며, FU I(210)는 토큰 TA가 먼저 입력된 후에 토큰 TB를 입력받아 동작하도록 구현되어 있는 경우, FU I(210)에 대한 연결정보에, 예컨대 TA>TB 와 같은, 동작 특성을 표현하는 토큰 우선순위(토큰 Precedence) 정보를 포함함으로써, FU의 동작 특성이 입력 신호의 순서 종속적인 경우에도 토큰만을 이용하여 명확히 정의할 수 있다. 여기서 ‘>’는 둘 이상의 토큰 간의 우선순위를 표현하는 것으로, 상대적으로 먼저 입력되는 경우를 의미하는 데 사용된다. 또 다른 예를 들어 설명하면, FU가 토큰 TA가 먼저 입력된 후 TB1 및 T B2 를 입력받아 동작하도록 구현된 경우, 이러한 FU의 토큰 Precedence는 TA>(TB1, T B2)로 정의될 수 있다. 여기서 ‘,’는 특정 순간에 TB1 및 T B2가 함께 입력되어야 한다는 의미이다. 또 다른 예를 들어 설명하면, TA>(TB1, TB2*)로 토큰 Precedence가 정의되는 경우, TA가 TB1 및 TB2보다 먼저 입력되어야 하며, 다만, TB2는 입력되지 않을 수도 있다는 의미이다. 즉, ‘*’은 상황에 따라 사용되지 않거나 연결하지 않아도 되는 경우를 의미한다. 즉, 상기 기능 유닛의 입력단 및 출력단 중 적어도 하나와 다른 기능 유닛과의 연결이 선택적(optional)인 경우, TB2* 와 같이 토큰을 이용하여 다른 기능 유닛과의 연결과에 관한 옵션 정보를 표시할 수 있다. 이러한 경우, 기능 유닛은 토큰과, 옵션 정보로 정의될 수 있다. 또한 이러한 경우 구성부(100)는 토큰, 옵션 정보를 이용하여 기능 유닛들을 선택적으로 연결할 수 있고, 가변 디코더를 구성하는 단계(S340)는 토큰과 옵션 정보를 참조하여 기능 유닛을 선택하여 선택적으로 연결할 수 있다. 다만, 이러한 토큰 Precedence를 나타내는 문법적인 사항들은 이에 한정되지 않으며, 더 추가될 수도 있다.
다시 말해서, 각 FU이 입력단으로 입력되는 토큰의 순서에 따라 동작할 때, FU의 동작은 토큰의 순서로 정의되며, 토큰의 순서는 토큰의 이름 또는 식별자를 통해 표시된다.
FU에 포함되는 연결정보에 대하여 전술한 설명은 FU 테이블(Function Unit Table)로 다음의 표 3과 같이 도표화될 수 있다.
FU 테이블(Function Unit Table)
Number Name Description
Input Output 토큰 Precedence
1 FU I TA TC TA > TB
TB
2 FU Ⅱ TC TD
TE
10 FU Ⅹ TD or TE TF or TG or TH
표 3에 나타난 바와 같이, 각 FU의 입력단 및 출력단과, 입출력 신호(데이터)의 성질은 토큰으로 간단하게 정의될 수 있다.
한편, FU의 하나의 입력단에 2 이상의 토큰이 입력될 수 있으며, 또한 하나의 출력단에서 2 이상의 토큰이 출력될 수 있다. 이러한 경우 표 2에 기재된 FU Ⅹ의 디스크립션과 같이, 그룹 (TD or TE), (TF or TG or TH)으로 동작이 정의될 수 있다.
이와 같이, 각 FU는 디스크립션에 정의된 바와 같이 동작하므로, 각기 다른 토큰 입력을 구분할 수 있다. 토큰과 FU의 동작에 대해 도 4a 내지 도 4c를 참조하여 추가적으로 설명한다.
토큰이 같다는 것은 등가(또는 동등(equivalent))이라는 것을 의미한다. 반대로 등가가 아닌 경우 토큰이 달라야 한다.
도 4a에서 Mixer 1 FU의 경우 토큰 TA를 받아서 다시 토큰 TA를 내보낸다. TA가 비디오 입력이라면 Mixer1 FU는 필터링 같은 이미지 프로세싱을 수행하거나 자막을 추가하는 경우에 대한 예일 것이다. TA는 소정의 작업을 하지만 입출력 데이터 관점에서 TA는 서로 등가이다. 즉, 입출력되는 데이터 내용은 다르더라도 형태는 동일하기 때문에 TA가 정의된 추상적 의미를 벗어나지 않기 때문에 등가이다. Mixer 2 FU의 경우 입력으로 TA의 입력을 2개로 받아 들이고 하나의 토큰 TA의 형태로 출력한다. TA가 오디오의 형태일 때 서로 다른 오디오를 받아들여 믹싱(mix)하는 작업을 수행하는 경우다. PC에서 하나의 스피커로 윈도우 소리는 물론 CD, 마이크 및 라인 입력 등을 함께 들을 수 있는 것도 이러한 오디오 믹싱의 효과다. 이 경우 입출력의 TA는 등가임이 분명하다. 반면 Mixer 3 FU의 경우 비디오를 예로 들어 토큰 TC 입력을 통해 색상키(Color key)를 받아서 TB의 입력에 대해 색상키를 적용하여 투명 처리를 수행하는 경우다. 이 경우 TA의 입력에 TB의 입력이 오버레이(overlay) 되어 TA의 형태로 출력될 수 있다. 이 경우 TA와 TB는 각각 Main과 Sub의 다른 역할을 수행하므로 등가라고 할 수 없다. 만약 Mixer 3 FU을 Mixer 2 FU와 같이 TB를 TA로 정의한다면, Mixer 2 FU의 TA 출력과 연결될 때 Main에도 들어갈 수 있고 Sub에도 들어갈 수 있다. Mixer 3 FU가 바라는 출력과 전혀 다른 결과를 초래할 수 있다.
FU의 내부 동작은 외부에 알려지지 않고 FU를 사용하기 위한 특성만 토큰과 토큰 Precedence를 통해 외부에 알려진다. 이러한 특성을 감안한다면 Mixer 3 FU는 서로 다른 입력이 필요한 곳에 서로 다른 토큰을 정의하여 원하지 않는 입력이 들어오는 것을 분리해야 한다. 다시 말해 FU는 자신이 명시한 토큰 입출력에 대해 모든 의무를 다 해야 한다.
도 4b를 참조하면, FU A는 3개의 출력이 있는데 각각 (TA or TB), (TA or TC), (TA or TD)의 토큰 그룹의 형태로 지정되어 있다. FU B, FU C, FU D가 TA를 입력으로 사용하기 때문에 FU A는 이들 FU B, FU C, FU D와 TA로 연결되면 세개 출력 모두에 대해 등가 출력을 하게 된다.
*반면 도 4c를 참조하면, FU A는 도 4b와 다르게, FU B, FU C, FU D가 각각 TB, TC, TD를 사용하기 때문에 각각 TB, TC, TD로 연결된다. 앞서 언급한 대로 각 FU는 자신이 명시한 토큰 입출력에 대해 모든 의무를 다 해야 하기 때문에, 이번에는 TA의 등가 출력이 아니고 각 출력에 대해 서로 다른 출력을 해야 한다. 다시 말해서, FU A가 내부적으로는 어떤지 모르지만 등가 출력도 가능하고 때로는 다른 포맷으로 변환을 수행하여 출력하는 역할을 할 수 있다는 것이며, 이러한 목적으로 FU A를 사용하면 된다. 실제의 예를 들면, FU A는 기본적으로 RGB를 출력하는데, 연결된 FU B, FU C, FU D에 따라 R, G, B를 분할하여 출력할 수 있는 경우의 예가 될 수 있다.
한편, 표 2의 토큰 풀에 리스트된 토큰을 이용하여 구체적인 FU 테이블의 일 예를 나타내면 다음의 표 4와 같다.
FU 테이블(Function Unit Table)
ID Name Description
Input Output 토큰 Precedence
1
DCR MB
Quant_scale
DQuant_scale
MB_type
MB
Qp
(Quant_scale, DQuant_scale, MB_type) > MB
2 IS MB AltScan
CBP
AC_pred_flag
AC_pred_dir
MB (AltScan, CBP, AC_pred_flag, AC_pred_dir) > MB
3 IAP MB
AC_pred_flag
AC_pred_dir
Qp_left
Qp_top
Qp_current
MB (AC_pred_flag, AC_pred_dir, Qp_left, Qp_top, QP_current) > MB
정리해서 설명하면, 토큰은 표 1에 나타난 바와 같이 토큰 풀에 식별자 및 디스크립션만으로 정의되며, 이럼으로써 FU의 연결정보는 표 2에 나타난 바와 같이 토큰만으로 간단하게 정의될 수 있다. 전술한 바와 같이 FU의 입력단 및 출력단은 토큰으로 정의되므로, 각 FU에 대한 연결정보는 FU의 입력단 및 출력단에 관한 정보(예컨대 입력단 및 출력단의 식별자)로 정의될 수도 있다.
FU의 연결정보는 표 2에 도시한 바와 같이 복수의 FU에 대한 연결정보를 하나의 룩업 테이블에 기록할 수도 있고, 각 FU별로 자신의 연결정보를 저장할 수도 있음은 물론이다.
본 발명에 따른 토큰을 이용하면 DD의 작성이 매우 쉬워지고, 가변 디코더(300)의 구성이 신속하고 단순화될 수 있다.
예컨대, 도 4에 도시된 가변 디코더를 구성하고자 할 때, DD의 FND에는 아래와 같이 내용만 기재가 되면 된다.
<DD의 예시>
파서 FU - FU III (TA)
파서 FU - FU II (TB)
FU III - FU V (TC)
FU II - FU V (TD)
즉, DD 작성자는 각 FU가 어떤 크기와 순서(sequence)를 가지는 신호를 어떤 입력 순서로 어떤 전송방식(직렬 또는 병렬전송)으로 입출력하는 지를 고민할 필요가 없이 각 FU의 처리 기능과 연결 정보만을 염두에 두면 된다.
동적 재구성(dynamic reconfigurable)의 예가 될 수 있는 방송 환경을 고려해 본다면, 방송국에서 송출되는 비트스트림은 특정 회사의 제품이나 장치에 국한될 수 없다. 다시 말해 serial 방식을 염두하고 작성된 비트스트림이든 parallel 방식을 위한 비트스트림이든 관계없이 동일 DD와 함께 비트스트림이 전송될 것이다. 만약 DD가 serial이나 parallel에 국한되도록 구성된다면 DD는 각 경우에 따라 다르게 전송되어야 할 것이고 그로 인해 특정 제품에서는 때때로 시청을 하지 못하는 경우가 발생할 것이다. 따라서 DD에는 최소한의 요소만 정의되어야 하는데, DD가 지정하고 있는 Token에 구현-종속적인 특성이 반영되서는 안 된다. 이를 통해 DD는 VTL을 제작하는 Design-time 단계에서 뿐만 아니라 실제로 사용자 측에서 사용되는 실행시간(Run-time)에서도 동일하게 동작하게 된다.
DD를 분석하여 가변 디코더(300)를 구성하는 구성부(100) 역시 DD에 기술된 기재에 따라 순차적으로 각 FU를 선택하고 FU들간의 연결을 설정하면 되므로 단순한 방식으로 가변 디코더(300)를 구성할 수 있다.
특히, 구성부(100)는 DD에 기재된 연결정보의 적정성 여부를 용이하게 검증할 수 있다.
예컨대, DD의 FND에 [ FU III - FU V (TC) ]라는 기재가 있을 경우, 구성부(100)는 FU III 및 FU V의 연결정보(예컨대, 표 2에 기재된 내용)를 참조하여 FU III 의 출력가능 신호(토큰) 중에 TC가 있고, FU V 의 입력가능 신호 중에 TC가 있는지를 확인하여 적정한 연결인지 여부를 쉽게 검증할 수 있고 그에 따른 적절한 조치를 취할 수 있다.
만약, FU III 의 출력가능 신호(토큰) 중에 TC가 없거나, FU V 의 입력가능 신호 중에 TC가 없다면, 구성부(100)는 DD의 FND가 잘못 기재된 것을 확인하고 오류 메시지를 출력하고 가변 디코더(300) 구성 작업을 중단할 수 있으며, 구성부(100)는 이를 위한 검증부(미도시)를 포함할 수 있다.
이상 설명한 바와 같이, FU의 연결정보를 토큰만으로 정의함으로써, FU 또는 FU 테이블 자체가 이해하기 쉽고 토큰 풀과 FU간 연결 고리를 토큰 이름(또는 식별자)로 단일화하여 정보 불일치를 미연에 예방하고 정보 집중의 효과를 갖는다. 아울러 FU에 대한 토큰의 복수 기재를 허용함으로써, 해당 FU가 좀더 일반적(generic)인 특성을 갖도록 할 수 있으며, 이를 통해 FU의 기술적 특징에 집중하고 유사한 FU를 통합할 수 있는 기반을 마련할 수 있다.
한편, 본 발명에서는 FU의 구현은 한 업체 또는 상호 FU 구현 기준을 공유하는 하나의 파티(party)에서 수행되는 것을 전제로 한다.
즉, DD 작성자나 구성부(100)는 FU의 구체적인 처리동작, 입출력되는 신호(데이터)의 구체적인 포맷, 전송방식(직렬 또는 병렬 전송), 신호 내부의 순서 등에 대해서는 전혀 고려하지 아니하므로, FU 생산자는 하나의 저장부에 함께 저장될 FU 간에 입출력되는 신호(데이터)의 구체적인 포맷, 전송방식(직렬 또는 병렬 전송), 신호 내부의 순서, 상호 연결 가능한 FU 및 각 FU의 처리 알고리즘 들을 스스로 정하면서 FU를 구현해야 한다.
그런데, 바로 이러한 점으로 인하여, FU의 생산자 입장에서는, 토큰을 제외한 나머지 사항들에 대한 유연성을 확보하게 되므로 다양한 방법으로, 다양한 형태의 FU을 생산할 수 있다. 그로 인해 FU에 대한 기술이 더욱 발전할 수 있다.
즉, 본 발명에 따르면, FU 생산자는 신호 전달 순서, 신호의 직/병렬 입/출력 방식의 분류, 그리고 사이즈 등에 제한되지 않고, FU 간의 인터페이스 방식을 결정할 수 있는데, 예컨대 FU를 하드웨어로 구성할 때와 S/W로 구성할 때 적합한 신호 전달 순서, 신호의 직/병렬 입/출력 방식의 분류, 그리고 사이즈 등이 상이할 수 있으므로, 각 FU 생산자별로 자신이 택한 FU 구현 방식에 적합한 구체적인 신호 및 처리 규격을 정할 수 있으며, 또는 각 FU 생산자들 나름의 특징적 노하우를 투입하여 고성능의 FU 구현을 유연하게 할 수 있다.
이상 설명한 바를 정리하면, 인코딩 과정에서 DD 생성할 때, 토큰 풀 및 FU 테이블을 참조함으로써, 디코더를 구현하는 데 필요한 FU 및 이들을 연결하는 토큰을 쉽게 파악하고 쉽게 생성할 수 있다. 이때, FU과 토큰을 통해 구성될 디코더를 쉽게 검증할 수도 있다. 각 FU의 연결 관계가 토큰으로 명확하게 드러나게 되기 때문이다. 또한, 간략하고 일원화된 FU의 식별자와 토큰의 식별자를 이용하여 디코더 디스크립션을 생성하므로, 디코더 디스크립션의 용량을 줄일 수도 있다. 그로 인해 디코더 디스크립션의 전송 효율을 높일 수 있다.
또한 구성부는, 간략한 토큰의 식별자로 FU들을 상호 연결하므로, 간단한 로직을 통해 구성될 수 있다.
또한, FU의 연결정보는 토큰의 식별자로만 이루어지므로, 동일한 성질의 FU은, 토큰을 제외한 인터페이스 방식, 예컨대 토큰의 데이터 전달 순서, 직렬/병렬 전송 방식의 분류, 그리고 사이즈 등에 관계없이 하나로 결정될 수 있다.
예컨대 토큰의 데이터 전달 순서, 직렬/병렬 전송 방식의 분류 그리고 사이즈 등을 고려하여 FU을 정의하는 경우, 동일한 처리 기능을 수행하는 FU에 대해서도 데이터 전달 순서, 직렬/병렬 전송 방식의 분류 그리고 사이즈 등에 따라 복수 개 정의하여야 하고, 또한 저장부에도 동일한 처리 기능을 수행하는 복수 개의 FU을 구비하여야 한다. 그러나 본 발명에서는 FU의 연결관계를 토큰 만으로 정의하므로, FU의 연결정보가 간단해지며, 동일한 성질의 FU은 다수개가 필요하지 않게 되며, 따라서 저장부의 불필요한 용량 증가를 막을 수도 있다.
그리고, 표준화 레벨에서 토큰의 데이터 전달 순서, 직렬/병렬 전송 방식의 분류, 그리고 사이즈 등을 고려하지 않고 토큰 만을 고려하므로, 누구나 쉽게 표준 내용을 알 수 있으며, 표준화된 기술을 쉽게 이용할 수 있다.
또한 새로운 FU을 정의할 필요가 있을 때, 우선 표 1로 예시한 토큰 풀에서 토큰의 존재 여부를 확인하여, 새로운 FU가 사용 가능한 토큰이 존재하는지 여부를 먼저 판단한다. 사용 가능 토큰이 존재하는 경우에는 새로운 FU가 다른 FU과 상호 연결될 수 있다는 것이므로, 곧바로 새로운 FU을 이용 가능하게 되며, 토큰이 존재하지 않는 경우에는 이름 또는 식별자와 디스크립션만으로 새로운 토큰을 정의하고, 새롭게 정의된 토큰을 이용하여 새로운 FU의 연결정보를 정의하고 이용할 수 있다.
이와 같이, 식별자 및 디스크립션 만으로 토큰을 정의하고, 이러한 토큰으로 FU을 정의함으로써, 토큰 풀과 FU 테이블, 토큰 및 FU에 대한 정보가 집중되며 일원화될 수 있다.
이하에서는 본 발명의 실시예들에 따른 디코딩 장치 및 디코딩 방법을 구체적인 각 실시예를 통해 상세히 설명한다.
먼저, 도 1 및 도 5를 참조하여 본 발명의 일 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명한다. 도 5는 본 발명의 일 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명하기 위한 개념도이다.
도 1 및 도 5를 참조하면, 구성부(100)는 DD를 입력받아 가변 디코더(300)를 구성한다. 여기서 디코더 디스크립션(Decoder Description; DD)은, 디코더(300)에 사용되는 FU의 식별자(예컨대 FU을 구별하기 위한 숫자 또는 이름)와, FU을 상호 연결하기 위한 토큰의 식별자(예컨대 토큰을 구별하기 위한 숫자 또는 이름)로 구성되는 FU 연결 관계 정보(FU Network Description; FND)와, 파서 디스크립션(Parser Description; PD)을 포함할 수 있다.
먼저, 구성부(100)는 DD에 포함된 PD를 참조하여, 이에 해당하는 파서 FU (205)가 저장부(200)에 존재하는 경우, 저장부(200)에서 파서 FU(205)를 선택하여 배치시킨다. 여기서 파서 FU(205)는, 다른 인코딩된 비트스트림을 파싱하여, 다른 FU들에게 파싱된 신호들을 제공한다. 예컨대 인코딩된 비트스트림에서 디코딩을 위한 제어 신호와 인코딩된 영상 신호 등으로 파싱하여 다른 FU으로 제공한다. 다음으로, 저장부(200)에 존재하는 다수의 FU(210, 215, 220, 225, 230) 중에서 FU의 식별자에 대응하는 FU(215, 220, 230)을 저장부(200)에서 선택하여 배치한다. 그리고, 토큰의 식별자를 이용하여 파싱 유닛(205) 및 각 FU(215, 220, 230)을 상호 연결한다.
좀더 구체적으로, 구성부(100)는 저장부(200)에서 토큰 TA 및 토큰 TB로 정의되는 출력단을 갖는 파서 FU(205)를 선택하여 도 3과 같이 배치시키고, 토큰 TA 및 토큰 TB로 정의되는 입력단 및 출력단을 갖는 FU Ⅲ(220) 배치시키고, 토큰 TB 및 토큰 TD로 정의되는 입력단 및 출력단을 갖는 FU Ⅱ(215)를 배치시키고, 토큰 TC 및 토큰 TD로 정의되는 입력단과 토큰 TE로 정의되는 출력단을 갖는 FU Ⅴ(230)을 배치시킨 후, 각 토큰 식별자를 이용하여 파서 FU(205) 및 FU(215, 220, 230)를 상호 연결한다.
여기서, 구성부(100)가 저장부(200)에서 FU(215, 220, 230)을 선택하는 과정에서 토큰의 이름 또는 식별자(TA, TB, TC, TD, TE)를 통해 각 FU 간(215, 220, 230)의 연결 가능 여부를 사전에 검증할 수 있다. 전술한 바와 같이, DD를 생성하는 단계에서도, 표 2에 도시된 바와 같은 FU 테이블을 참조하여, 가변 디코더(300)를 구현하는데 필요한 FU의 입출력단 토큰 정보와 토큰 우선순위 정보를 고려하여 DD를 생성하므로, 각 FU의 연결 가능 여부를 사전에 검증할 수 있는 효과도 있다.
다음으로, 도 1 및 도 6을 참조하여 본 발명의 다른 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명한다. 도 6은 본 발명의 다른 실시예에 따른 디코딩 장치 및 디코딩 방법을 설명하기 위한 개념도이다.
이전 실시예와 달리, 본 실시예에서는 파서 FU(205)가 저장부(200)에 존재하지 않는다. 이러한 경우, 구성부(100)는 DD의 PD을 이용하여 파서 FU(205)를 생성한다. 구성부(100)는 생성된 파서 FU(205)를 배치하고, 다른 FU들(215, 220, 230)을 선택하여 배치한 후, 파서 FU(205) 및 각 FU(215, 220, 230)을 토큰의 이름 또는 식별자(TA, TB, TC, TD, TE)를 이용하여 상호 연결하여, 디코더(300)를 구성한다.
한편 본 발명에 따른 전술한 디코딩을 적절하게 수행하기 위해서, 아래와 같은 인코딩 방식이 요구된다.
전송할 비트스트림을 인코딩한 후 또는 인코딩 방식을 결정한 다음에는, 그 인코딩 방식에 대응하는 디코딩을 수행하기 위한 기능 유닛을 기능 유닛 테이블로부터 추출할 필요가 있다.
기능 유닛이 선택/추출 되면, 이 기능 유닛 사이의 연결관계를 설정하고, 설정된 연결관계를 기술한 DD를 생성한 후 인코딩된 비트스티림과 DD를 병합하여 전송하는 것이 바람직하다.
기능 유닛 간의 연결관계를 설정하는 과정은 토큰 테이블을 참조하여, 상기 추출된 기능 유닛의 입력 또는 출력에 가능한 토큰을 추출하고, 상기 추출된 토큰이 상호 연결하고자 하는 두 개의 기능 유닛들 사이에 공통으로 이용 가능한 것인지를 확인하고, 그 결과 토큰이 이용 가능할 경우 상기 상호 연결하고자 하는 두 개의 기능 유닛의 이름 또는 식별자와 상기 토큰을 이용하여 상기 기능 유닛간의 연결관계를 정의하면 된다.
이 때, 토큰이 두 개의 기능 유닛에 대해 공통으로 이용 가능하지 않을 경우, 상기 두 개의 기능 유닛 중 적어도 하나를 대체할 다른 기능 유닛을 추출하고, 대체된 기능 유닛 및 이와 연결하고자 하는 기능 유닛이 토큰을 공통으로 이용할 수 있는지를 확인하는 과정을 수행하되, 상기 토큰이 두 개의 기능 유닛 사이에 공통으로 이용 가능한 것으로 확인될 때까지 이를 반복하여 기능 유닛 간의 적합한 연결관계를 설정할 수 있다.
즉, 본 발명에 따르면 인코딩 단계에서도 기능 유닛간의 연결관계 적합성에 대한 검증을 용이하게 할 수 있다.
한편, 이상에서 설명된 본 발명의 실시예들에 따른 디코딩 장치 및 방법은 프로그램에 의해 구현되거나 실행될 수 있으며, 그러한 프로그램은 컴퓨터로 판독 가능한 기록 매체 저장될 수 있다.
이상 바람직한 실시예 및 첨부 도면을 참조하여 본 발명의 구성에 대하여 구체적으로 설명하였으나, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 명세서의 기재로부터 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이지 않은 것으로 이해해야만 한다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (14)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 입력 신호와 출력 신호가 토큰으로 표현된 다수의 기능 유닛(Function Unit)들을 저장하는 저장부; 및
    상기 기능 유닛들을 연결하여 가변 디코더를 구성하는 구성부;를 포함하되,
    상기 구성부는 수신된 비트스트림을 디코딩하는데 필요한 기능 유닛들의 식별자 및 상기 기능 유닛들을 연결하기 위한 연결 정보를 포함하는 디코더 디스크립션(Decoder Description)을 입력받은 후에, 상기 저장부로부터 상기 식별자에 대응되는 기능 유닛들을 선택하고, 상기 연결 정보를 이용하여 선택된 상기 기능 유닛들을 연결하여 가변 디코더를 구성하며,
    상기 가변 디코더는 상기 수신된 비트스트림을 디코딩하고,
    상기 토큰은 상기 기능 유닛들 사이에 전달되는 신호의 이름 또는 식별자를 나타내되, 상기 토큰은 상기 기능 유닛에 대한 정보와 상기 신호의 크기, 전달순서, 데이터의 직렬 또는 병렬 전송 형태 정보를 포함하지 않으며, 미리 만들어진 토큰 풀(Pool)에서 선택되는 것을 특징으로 하는 디코딩 장치.
  5. 삭제
  6. 제4항에 있어서,
    상기 디코더 디스크립션은 상기 비트스트림의 파싱 정보를 포함하는 파서 디스크립션(parser description)을 더 포함하고,
    상기 구성부는 상기 저장부로부터 상기 파서 디스크립션에 대응하는 파서 기능 유닛을 선택하고, 선택된 상기 파서 기능 유닛과 선택된 상기 기능 유닛을 연결하여 상기 가변 디코더를 구성하는 것을 특징으로 하는 디코딩 장치.
  7. 제4항에 있어서,
    상기 기능 유닛은 상기 입력 신호 또는 상기 출력 신호가 복수의 토큰으로 표현될 수 있으며, 상기 복수 토큰의 입력 또는 출력 순서가 종속적으로 동작하는 경우, 상기 복수 토큰 사이의 우선 순위 정보를 더 포함하는 것을 특징으로 하는 디코딩 장치.
  8. 제4항에 있어서,
    상기 구성부는 상기 저장부로부터 선택한 기능 유닛들의 토큰으로 표현된 입출력 신호 정보를 확인하여, 상기 연결 정보가 적정한지를 검증하는 검증부를 포함하는 것을 특징으로 하는 디코딩 장치.
  9. 수신된 비트스트림을 디코딩하는데 필요한 기능 유닛의 식별자 및 상기 기능 유닛들을 연결하기 위한 연결 정보를 포함하는 디코더 디스크립션(Decoder Description)을 입력받는 단계;
    입력 신호와 출력 신호가 토큰으로 표현된 다수의 기능 유닛(Function Unit)들을 저장하는 저장부로부터 상기 기능 유닛의 식별자에 대응하는 기능 유닛들을 선택하는 단계; 및
    상기 연결 정보를 이용하여 상기 선택된 기능 유닛들을 상호 연결하여 상기 수신된 비트스트림을 디코딩할 가변 디코더를 구성하는 단계; 및
    상기 가변 디코더를 이용하여 상기 수신된 비트스트림을 디코딩하는 단계;를 포함하되,
    상기 토큰은 상기 기능 유닛들 사이에 전달되는 신호의 이름 또는 식별자를 나타내되, 상기 토큰은 상기 기능 유닛에 대한 정보와 상기 신호의 크기, 전달순서, 데이터의 직렬 또는 병렬 전송 형태 정보를 포함하지 않으며, 미리 만들어진 토큰 풀(Pool)에서 선택되는 것을 특징으로 하는 디코딩 방법.
  10. 제9항에 있어서, 상기 가변 디코더를 구성하는 단계는,
    상기 수신된 비트스트림의 파싱 정보를 포함하는 파서 디스크립션을 상기 디코더 디스크립션으로부터 추출하는 단계; 및
    상기 저장부로부터 상기 파서 디스크립션에 대응하는 파서 기능 유닛을 선택하고, 선택된 상기 파서 기능 유닛과 선택된 상기 기능 유닛을 연결하는 단계;를 포함하는 것을 특징으로 하는 디코딩 방법.
  11. 삭제
  12. 삭제
  13. 비트스트림을 인코딩하는 단계;
    상기 인코딩 방식에 대응하여 상기 인코딩된 비트스트림의 디코딩을 수행하기 위한 기능 유닛들을 선택하는 단계;
    상기 기능 유닛들을 연결하기 위한 연결 정보를 포함하는 디코더 디스크립션(Decoder Description)을 생성하는 단계; 및
    상기 인코딩된 비트스트림과 상기 디코더 디스크립션을 병합하여 전송하는 단계;를 포함하되,
    상기 기능 유닛은 입력 신호와 출력 신호가 토큰으로 표현되며, 상기 토큰은 상기 기능 유닛들 사이에 전달되는 신호의 이름 또는 식별자를 나타내되, 상기 토큰은 상기 기능 유닛에 대한 정보와 상기 신호의 크기, 전달순서, 데이터의 직렬 또는 병렬 전송 형태 정보를 포함하지 않으며, 미리 만들어진 토큰 풀(Pool)에서 선택되는 것을 특징으로 하는 인코딩 방법.
  14. 제13항에 있어서, 상기 인코딩 방법은,
    복수의 상기 토큰으로 구성된 토큰 테이블 및 복수의 상기 기능 유닛으로 구성된 기능 유닛 테이블을 참조하여 상기 연결 정보가 적정한지를 검증하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
KR1020100072071A 2010-07-26 2010-07-26 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체 KR101048407B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100072071A KR101048407B1 (ko) 2010-07-26 2010-07-26 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100072071A KR101048407B1 (ko) 2010-07-26 2010-07-26 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020080070367A Division KR100983054B1 (ko) 2008-07-19 2008-07-19 디코딩 장치, 디코딩 방법, 인코딩 방법 및 컴퓨터로 판독가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20100092407A KR20100092407A (ko) 2010-08-20
KR101048407B1 true KR101048407B1 (ko) 2011-07-11

Family

ID=42757277

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100072071A KR101048407B1 (ko) 2010-07-26 2010-07-26 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101048407B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080035421A (ko) * 2006-12-27 2008-04-23 주식회사 휴맥스 계층 구조를 이용한 디코딩 방법 및 장치
KR20080035220A (ko) * 2006-10-18 2008-04-23 주식회사 휴맥스 계층 구조를 이용한 디코딩 방법 및 장치
KR20080090231A (ko) * 2007-04-04 2008-10-08 주식회사 휴맥스 디코딩 솔루션을 구비한 비트스트림 디코딩 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080035220A (ko) * 2006-10-18 2008-04-23 주식회사 휴맥스 계층 구조를 이용한 디코딩 방법 및 장치
KR20080035421A (ko) * 2006-12-27 2008-04-23 주식회사 휴맥스 계층 구조를 이용한 디코딩 방법 및 장치
KR20080090231A (ko) * 2007-04-04 2008-10-08 주식회사 휴맥스 디코딩 솔루션을 구비한 비트스트림 디코딩 장치 및 방법

Also Published As

Publication number Publication date
KR20100092407A (ko) 2010-08-20

Similar Documents

Publication Publication Date Title
KR101356480B1 (ko) 신호 처리 방법 및 장치
CA2948683C (en) Methods for palette size signaling and conditional palette escape flag signaling
US8331455B2 (en) Device and method for encoding/decoding video data
US20230412810A1 (en) Method and device for intra-predictive encoding/decoding a coding unit comprising picture data, said intra-predictive encoding depending on a prediction tree and a transform tree
CN104350751B (zh) 扩展数据处理
US9215471B2 (en) Bitstream manipulation and verification of encoded digital media data
KR100963211B1 (ko) 버전이 다른 avs1-p2 비트스트림을 시그널링하고디코딩하기 위한 방법 및 장치
CN101268697B (zh) 编码器和解码器
US8774285B2 (en) Method and apparatus for adaptive decoding
CN109413430A (zh) 视频编解码方法及其装置
KR101048407B1 (ko) 디코딩 장치, 디코딩 방법 및 컴퓨터로 판독 가능한 기록 매체
KR100983054B1 (ko) 디코딩 장치, 디코딩 방법, 인코딩 방법 및 컴퓨터로 판독가능한 기록 매체
TWI650005B (zh) Dynamic image predictive coding method and dynamic image predictive decoding method
KR100960028B1 (ko) 디코딩 장치, 디코딩 방법, 인코딩 방법 및 컴퓨터로 판독 가능한 기록 매체
CN102549656A (zh) 通过选择性通道解码的高效多通道信号处理
US9083972B2 (en) Encoder and decoder
CN109600616A (zh) 一种基于h.264视频压缩标准的码流封装方法
US20230291940A1 (en) Systems, apparatus and methods to enhance delivery and presentation of content
US9031136B2 (en) Device and method for encoding/decoding
US20110116554A1 (en) Method and apparatus for encoding and decoding
KR20100040625A (ko) 부호화/복호화 방법 및 장치
US8565320B2 (en) Device and method for encoding/decoding video data
KR101646581B1 (ko) 재구성 가능한 코덱에서 기능 유닛에 부가정보를 제공하는 장치 및 방법
CN109788300A (zh) 一种hevc解码器中的错误检测方法和装置
KR102517449B1 (ko) 딥러닝 네트워크 모델을 포함하는 멀티미디어 비트스트림 생성방법 및 그 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee