KR101099261B1 - 인코더와 인코딩 방법 및 이를 수록한 저장매체 - Google Patents

인코더와 인코딩 방법 및 이를 수록한 저장매체 Download PDF

Info

Publication number
KR101099261B1
KR101099261B1 KR1020080078344A KR20080078344A KR101099261B1 KR 101099261 B1 KR101099261 B1 KR 101099261B1 KR 1020080078344 A KR1020080078344 A KR 1020080078344A KR 20080078344 A KR20080078344 A KR 20080078344A KR 101099261 B1 KR101099261 B1 KR 101099261B1
Authority
KR
South Korea
Prior art keywords
encoding
motion
bit rate
encoder
motion vector
Prior art date
Application number
KR1020080078344A
Other languages
English (en)
Other versions
KR20100019663A (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 KR1020080078344A priority Critical patent/KR101099261B1/ko
Publication of KR20100019663A publication Critical patent/KR20100019663A/ko
Application granted granted Critical
Publication of KR101099261B1 publication Critical patent/KR101099261B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability

Landscapes

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

Abstract

본 발명은 인코더와 인코딩 방법 및 이를 수록한 저장매체에 관한 것이다. 보다 상세하게는 하나의 컨텐츠를 서로 다른 비트율로 여러 번 인코딩해야 하는 상황에서 하나의 인코더로 동시에 여러 개의 비트 스트림 화일을 생성하되, 움직임 추정을 가장 높은 비트율에 대해서만 수행하고 나머지 비트율에 대해서는 움직임 추정을 하지 않고 저장된 움직임 벡터를 이용하여 움직임 보상만 수행함으로써 인코딩 시간과 비용을 획기적으로 절감할 수 있는 인코더와 인코딩 방법 및 이를 수록한 저장매체에 관한 것이다.
이를 위하여 본 발명은 비트율이 다른 복수개의 비트 스트림을 생성하기 위한 인코더에 있어서, 가장 높은 비트율로 인코딩시에는 참조영상에 대한 대상영상의 움직임을 추정하고 움직임 벡터를 저장한 후 움직임 보상을 수행하고, 상기 비트율보다 낮은 비트율로 인코딩시에는 상기 저장된 움직임 벡터를 이용하여 움직임 보상을 수행하는 것을 특징으로 하는 인코더를 제공한다.
Figure R1020080078344
인코더, 다중 비트율, 다중 비트 스트림, 움직임 추정, 인코딩 시간

Description

인코더와 인코딩 방법 및 이를 수록한 저장매체{Device and Method for encoding, Storage medium storing the same}
본 발명은 인코더와 인코딩 방법 및 이를 수록한 저장매체에 관한 것이다. 보다 상세하게는 하나의 컨텐츠를 서로 다른 비트율로 여러 번 인코딩해야 하는 상황에서 하나의 인코더로 동시에 여러 개의 비트 스트림 화일을 생성하되, 움직임 추정을 가장 높은 비트율에 대해서만 수행하고 나머지 비트율에 대해서는 움직임 추정을 하지 않고 저장된 움직임 벡터를 이용하여 움직임 보상만 수행함으로써 인코딩 시간과 비용을 획기적으로 절감할 수 있는 인코더와 인코딩 방법 및 이를 수록한 저장매체에 관한 것이다.
광대역 통신망의 급속한 발전과 보급은 고화질 영상의 새로운 컨텐츠 시대를 열어가고 있으며, 통신과 방송의 융합이 주목받고 있다. 이러한 시대적 요청에 대응하여 H.264/AVC라는 새로운 영상압축기술이 표준화되어 국제적으로 주목을 받고 있다.
1980년대 중반에 네트워크와 저장 미디어의 디지털화와 음성 및 영상미디어 정보의 디지털화가 동시에 진행되면서 멀티미디어의 사용이 현실화되었다. 이러한 기술 중에서도 방대한 정보량을 가지는 동영상을 압축하는 기술은 최근 20여년간 눈부신 발전을 거듭해 온 핵심 기술이라 할 수 있다.
또한, 최근 인터넷 또는 무선 네트워크를 통한 주문형 비디오(VoD)와 IPTV 서비스가 활성화됨에 따라 컨텐츠를 저장 또는 전송하기 위한 부호화 기술이 주요 화두로 자리잡고 있다. 컨텐츠를 인코딩하기 위해서는 많은 시간과 비용이 소요되며, 일례로 현재 IPTV에서 사용되는 H.264 코덱의 경우 만족할 만한 대역폭 대비 화질성능을 얻기 위해 대부분 소프트웨어 코덱이 사용된다. 소프트웨어 코덱의 경우 일반적으로 컨텐츠 재생시간의 수 배에 달하는 시간이 인코딩에 소요된다.
한편, 사용자의 네트워크와 단말 환경은 매우 다양하므로, 하나의 비트율로만 컨텐츠를 인코딩하면 다양한 사용자들을 만족시킬 수 없게 된다. 예컨대, 높은 대역폭이 제공되는 사용자와 낮은 대역폭만이 허용된 사용자에게 중간 정도의 비트율로만 인코딩된 컨텐츠를 제공한다면 두 사용자 모두 불만을 가지게 될 것이다. 이러한 문제를 해결하기 위해 비디오 사업자들은 하나의 컨텐츠를 여러 비트율로 인코딩하여 각 사용자의 환경에 적합하도록 서비스할 필요가 있다.
도 1은 일반적인 하나의 인코더를 통해 비트율이 다른 복수개의 비트 스트림을 생성하는 과정을 도시한 개념도이다.
하나의 컨텐츠를 여러 가지 비트율로 인코딩하기 위해서는 한 번에 한 비트율로 순차적으로 비트율을 달리해 가면서 인코딩하여야 한다. 이와 같이 순차적으로 하나씩 인코딩이 이루어지면 원하는 비트율의 가지수에 비례하여 인코딩 시간이 증가한다는 문제점이 있다. 예컨대, 한번 인코딩하는데 소요되는 시간이 재생시간 의 3배라고 가정하면 1시간짜리 드라마 한 편을 하나의 비트율로 인코딩하기 위해 3시간이 소요되므로, 5가지 비트율로 인코딩하는 경우 인코딩 시간만 15시간이 소요된다.
인코딩 시간을 절약하기 위해 여러 대의 인코더로 동시에 인코딩을 하는 경우에도 많은 인코더를 관리하고 컨텐츠를 스케줄링하는 데 많은 시간과 비용이 소요되므로, 인코더의 인코딩 능력을 향상시키는 것이 매우 중요한 문제로 대두된다.
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 특히 하나의 컨텐츠를 서로 다른 비트율로 여러 번 인코딩해야 하는 상황에서 하나의 인코더로 동시에 여러 개의 비트 스트림 화일을 생성함에 있어, 인코딩 시간과 비용을 획기적으로 절감할 수 있는 인코더와 인코딩 방법 및 이를 수록한 저장매체를 제공하는 데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, 비트율이 다른 복수개의 비트 스트림을 생성하기 위한 인코더에 있어서, 각각 서로 다른 비트율의 참조영상이 저장된 복수개의 재생프레임 메모리; 가장 높은 비트율로 인코딩시 움직임 벡터를 산출하는 움직임 추정부; 상기 움직임 추정부가 산출한 움직임 벡터를 저장하는 움직임 벡터 메모리; 및 상기 가장 높은 비트율로 인코딩시에는 상기 움직임 추정부가 산출한 움직임 벡터를 이용하여 움직임 보상을 수행하고, 나머지 비트율로 인코딩시에는 상기 움직임 벡터 메모리에 저장된 움직임 벡터를 이용하여 움직임 보상을 수행하는 움직임 보상부를 포함한다.
삭제
삭제
또한, 상기 인코더는 특정 프레임을 서로 다른 비트율로 반복 인코딩하는 순서를 제어하기 위한 인코딩 순서 제어부를 더 포함할 수 있다.
또한, 상기 인코더는 상기 대상영상의 상기 움직임 보상된 화면에 대한 차이값을 구하는 감산기; 상기 감산기에서 얻어진 차이값에 대한 행렬을 변환하여 변환 계수를 얻는 변환부; 상기 변환 계수를 양자화하는 양자화부; 및 상기 양자화된 변환 계수를 부호화하는 엔트로피 부호화부를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 방법은, (a) 한 프레임의 비디오 피드(video feed)가 입력되는 단계; (b) 가장 높은 비트율로 인코딩시 움직임 벡터를 산출하고 산출된 움직임 벡터를 메모리에 저장하는 단계; (c) 상기 산출된 움직임 벡터를 이용하여 움직임 보상을 수행하는 단계; (d) 상기 가장 높은 비트율이 아닌 다른 비트율로 인코딩할지 여부를 결정하는 단계; 및 (e) 상기 가장 높은 비트율이 아닌 다른 비트율로 인코딩하는 경우 상기 (b)단계를 통해 기 저장된 움직임 벡터를 이용하여 움직임 보상을 수행하는 단계를 포함한다.
또한, 상기 인코딩 방법은 상기 (c)단계를 통해 움직임 보상된 영상에 대한 대상영상의 차이값을 변환과 양자화 및 부호화를 통해 비트 스트림을 생성하고 파일로 저장하는 단계를 더 포함할 수 있다.
또한, 상기 인코딩 방법은 상기 양자화된 차이값을 역양자화 및 역변환하여 상기 움직임 보상된 영상에 가산함으로써 재생프레임을 생성하고 저장하는 단계를 더 포함할 수 있다.
또한, 상기 인코딩 방법은 상기 (e)단계를 통해 움직임 보상된 영상에 대한 대상영상의 차이값을 변환과 양자화 및 부호화를 통해 비트 스트림을 생성하고 파일로 저장하는 단계를 더 포함할 수 있다.
또한, 상기 인코딩 방법은 상기 양자화된 차이값을 역양자화 및 역변환하여 상기 움직임 보상된 영상에 가산함으로써 재생프레임을 생성하고 저장하는 단계를 더 포함할 수 있다.
삭제
본 발명에 의하면 하나의 컨텐츠를 서로 다른 비트율로 여러 번 인코딩해야 하는 상황에서 하나의 인코더로 동시에 여러 개의 비트 스트림 화일을 생성하되, 움직임 추정을 가장 높은 비트율에 대해서만 수행하고 나머지 비트율에 대해서는 움직임 추정을 하지 않고 저장된 움직임 벡터를 이용하여 움직임 보상만 수행함으로써 인코딩 시간과 비용을 획기적으로 절감할 수 있는 효과가 있다.
본 발명에서는 하나의 인코더를 이용하여 동시에 여러 가지 비트율로 인코딩된 비트 스트림을 얻음으로써 인코딩에 소요되는 시간과 비용을 절감하고자 한다. 즉, 한 번에 하나의 비트율로 인코딩된 비트 스트림을 얻는 구조인 기존의 비디오 인코더를 수정함으로써 여러 개의 비트 스트림을 동시에 발생시키는 방법이 제안된다.
본 발명은 주로 소프트웨어 인코더 또는 소프트웨어 트랜스코더에 적용되며, 하드웨어 인코더나 트랜스코더에도 적용가능하다. 이하에서는 동시에 생성되는 다른 종류의 다중 비트 스트림들이 동일한 시간적, 공간적 해상도를 갖는다고 가정한다.
본 발명의 기본적인 아이디어는 비디오 인코딩에 소요되는 시간 중 가장 많은 시간이 시간 방향의 중복성(redundancy)을 제거하기 위해 매크로블록 단위로 움직임을 찾는 과정(움직임 추정, Motion Estimation)에서 발생한다는 널리 알려진 사실로부터, 움직임을 찾는 과정은 가장 높은 비트율로 인코딩할 때 한 번만 수행하고 이후에 그보다 낮은 비트율로 인코딩할 때에는 이미 얻어진 움직임 벡터를 그대로 사용함으로써 인코딩 시간을 획기적으로 절감한다는 것이다.
예컨대, 움직임 추정에 걸리는 시간이 총 인코딩 시간의 50% 정도라고 가정하면 도 1의 인코더에서 한 번 인코딩할 때 소요되는 3시간의 1/2인 90분은 움직임 추정에 소요된다. 5가지 비트율로 인코딩을 한다면 총 450분이 움직임 추정에 소요된다. 만일 10Mbps 비트율 인코딩에서 움직임 추정을 한 번만 하고 나머지 비트율에서는 수행하지 않는다면 90분 × 4 = 360분이 절감될 수 있다. 따라서, 총 인코딩 소요시간인 900분의 40%에 해당하는 인코딩 시간을 절약할 수 있게 된다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되 는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 2는 본 발명의 바람직한 실시예에 따른 인코더의 블록도이다. 이하에서는 부호화하고자 하는 원 영상을 '대상영상'이라 하고, 상기 대상영상의 움직임 추정을 위해 참조하는 재생영상을 '참조영상'이라 한다.
본 발명의 바람직한 실시예에 따른 인코더는, 도 2를 참조하면, 변환부(10), 양자화부(20), 역양자화부(30), 역변환부(40), 재생프레임 메모리(50), 움직임 추정부(60), 움직임 벡터 메모리(70), 움직임 보상부(80), 인코딩 순서 제어부(90), 및 엔트로피 부호화부(100)를 포함하여 이루어진다.
도 2의 실시예에서 전방향 경로(Forward Path)에 대하여 설명하면 다음과 같다.
입력부(미도시)로부터 비디오 피드가 입력되면 감산기(5)에서는 움직임 보상된 참조영상과 입력된 대상영상의 차이값 행렬을 구해서 변환부(10)로 전달한다. 변환부(10)는 감산기(5)에서 얻어진 차이값에 대한 행렬을 변환하여 변환 계수를 얻는다. 일례로, 변환부(10)는 이산 코사인 변환(Discrete Cosine Transformation)을 수행하여 DCT 계수를 얻을 수 있다. 이어서, 양자화부(20)에서는 변환부(10)에서 얻은 변환 계수를 양자화시킨다. 이렇게 양자화된 변환 계수는 엔트로피 부호화부(100)로 전달되어 CAVLC(Context Adaptive Variable Length Coding) 또는 CABAC(Context Adaptive Binary Arithmetic Coding) 등의 방법으로 엔트로피 코딩 된다. 엔트로피 부호화부(100)는 양자화된 변환 계수와 각종 헤더 정보, 제어 정보 등을 부호화한다. 이와 같은 과정을 통해 다양한 비트율을 갖는 비트 스트림 파일(110)이 생성된다.
이어서, 도 3의 실시예에서 재구성 경로(Reconstruction Path)에 대해서 설명하면 다음과 같다.
본 실시예의 양자화부(20)를 거친 데이터는 역양자화부(30)와 역변환부(40) 및 가산기(45)를 거쳐 영상으로 재구성되어 재생프레임 메모리(50)에 저장된다. 각 비트율별로 재생프레임(참조영상)들은 별도의 프레임 메모리에 저장해 두어야 하므로 비트 스트림의 개수만큼의 프레임 메모리가 필요하므로 재생프레임 메모리(50)는 복수개 구비된다. 즉, 재생프레임 메모리(50)는 재생프레임 메모리 #1(50_1), 재생프레임 메모리 #2(50_2), ..., 재생프레임 메모리 #N(50_N)의 총 N개로 구성될 수 있다. 각 재생프레임 메모리의 양단에는 인코딩 순서 제어부(90)에 의해 제어되는 스위치가 구비된다. 즉, 재생프레임 메모리 #1(50_1)의 양단에는 스위치(Sa_1, Sb_1)가 구비되고, 재생프레임 메모리 #2(50_2)의 양단에는 스위치(Sa_2, Sb_2)가 구비되며, 재생프레임 메모리 #N(50_N)의 양단에는 스위치(Sa_N, Sb_N)가 구비된다.
역양자화부(30)는 양자화된 변환 계수를 역양자화하고, 역변환부(40)는 역양자화된 변환 계수를 화소(pixel) 영역으로 변환시킨다. 움직임 추정부(60)는 블록 단위로 움직임 추정을 수행하고, 산출된 움직임 벡터를 움직임 벡터 메모리(70)에 저장한다. 이때, 움직임 추정부(60)는 생성하고자 하는 비트 스트림의 비트율에 따 라 동작 여부가 달라진다. 움직임 추정부(60)는 가장 높은 비트율로 인코딩시에는 참조영상에 대한 대상영상의 움직임을 추정하여 움직임 벡터를 산출함으로써 이를 이용하여 움직임 보상부(80)가 움직임 보상을 수행할 수 있도록 하고, 상기 비트율보다 낮은 비트율로 인코딩시에는 동작하지 않음으로써 움직임 보상부(80)가 기 저장되어 있는 움직임 벡터를 이용하여 움직임 보상을 수행하도록 한다. 즉, 움직임 추정부(60)는 가장 높은 비트율로 인코딩시에만 움직임 벡터를 산출한다. 움직임 추정부(60)의 동작 여부는 인코딩 순서 제어부(90)를 통해 제어된다. 움직임 벡터 메모리(70)는 움직임 추정부(60)에서 산출한 움직임 벡터가 저장되는 부분으로, 가장 높은 비트율로 인코딩할 때 움직임 추정을 통해 얻은 움직임 벡터가 일시적으로 저장된다. 이후에 다른 비트율로 인코딩할 때에는 이 메모리에 저장되어 있는 해당 매크로블록의 움직임 벡터값을 읽어내어 움직임 보상이 이루어진다. 인코딩 순서 제어부(90)는 특정 프레임을 서로 다른 비트율로 반복 인코딩하는 순서를 제어한다. 이하에서는 가장 높은 비트율을 갖는 비트 스트림 화일 #1(110_1)을 생성하는 경우와 그 외의 비트 스트림 화일 #2 ~ #N(110_2 ~ 110_N)을 생성하는 경우를 구별하여 움직임 추정과 보상 과정을 설명한다.
① 가장 높은 비트율로 인코딩하는 경우
가장 높은 비트율로 인코딩하는 경우, 인코딩 순서 제어부(90)는 Sa_1, Sb_1, Sc_1 스위치를 ON시키고 나머지 스위치를 OFF시켜 비트 스트림 화일 #1이 생성될 수 있도록 하고, 움직임 추정부(60)가 작동하도록 한다.
움직임 추정부(60)는 재생프레임 메모리(50_1)로부터 하나 또는 두 개의 참 조영상을 입력받고, 입력부(미도시)로부터 대상영상을 입력받아 움직임 벡터를 산출한다. 즉, 움직임 추정부(60)는 참조영상을 기준으로 하여 대상영상의 움직임을 예상하고, 대상영상의 블록에 대한 움직임 벡터를 산출한다. 이때, 움직임 추정부(60)를 통해 산출된 움직임 벡터는 움직임 벡터 메모리(70)에 저장됨과 동시에 엔트로피 부호화부(100)로 전송된다.
움직임 추정부(60)에서 구한 움직임 벡터는 움직임 벡터 메모리(70)에 저장되고, 움직임 보상부(80)로 전달되어 예측영상이 구성된다. 즉, 입력된 대상영상과 상기 예측영상의 차이가 감산기(5)에서 연산되어, 전술한 바와 같이 변환부(10)로 전달되는 것이다. 아울러, 움직임 보상부(80)에서 예측된 영상에 대한 데이터는 가산기(45)로도 입력되어 역변환부(40)를 통해 재구성된 차이값 행렬의 정보가 입력되어 재구성된 영상에 대한 데이터가 재생프레임 메모리(50_1)에 저장된다.
요약하면, 가장 높은 비트율로 인코딩하는 경우에는 움직임 추정부(60)의 동작 결과로 얻어지는 움직임 벡터들을 움직임 벡터 메모리(70)에 저장하고 움직임 보상을 한 후, 나머지 인코딩 블록들을 수행하여 인코딩함으로써 비트 스트림 화일 #1을 생성한다.
② 그 외의 경우
인코딩 순서 제어부(90)는 Sa_2, Sb_2, Sc_2 스위치를 ON시키고 나머지 스위치를 OFF시켜 비트 스트림 화일 #2(110_2)가 생성될 수 있도록 하고, 움직임 추정부(60)가 작동하지 않도록 한다.
움직임 보상부(80)는 상기 ①의 인코딩에서 움직임 벡터 메모리(70)에 기 저 장해 놓은 움직임 벡터를 이용하여 움직임 보상을 수행한다. 이때, 움직임 보상에 사용된 움직임 벡터는 엔트로피 부호화부(100)로 전송되어 비트 스트림 화일 #2(110_2)의 작성에 사용된다.
이와 같은 과정을 반복하여 N-1 번째 비트 스트림 화일까지 생성되면, 인코딩 순서 제어부(90)는 Sa_N, Sb_N, Sc_N 스위치를 ON시키고 나머지 스위치를 OFF시켜 비트 스트림 화일 #N(110_N)이 생성될 수 있도록 한다.
즉, 상기 ②의 경우에는 움직임 추정부(60)는 작동하지 않으며, 움직임 벡터 메모리(70)에 저장되어 있는 움직임 벡터 정보를 가지고 움직임 보상만을 수행한 후 나머지 인코딩 블록들을 수행하여 해당 프레임을 인코딩한다.
가장 비트율이 높은 비트 스트림을 생성하기 위한 움직임 추정 과정에서 산출된 움직임 벡터는 그보다 낮은 비트율에서의 동일 블록에 대한 움직임 벡터와 미세한 차이가 발생할 수 있다. 그러나, 비트율이 높은 영상에서 산출된 움직임 벡터는 비트율이 낮은 영상에서 산출된 움직임 벡터보다 정확도가 높으므로, 이와 같이 움직임 벡터를 재사용하며 움직임 추정이 보다 정확해진다.
도 2에서는 본 발명의 설명을 용이하도록 하기 위해서 참조영상을 이용해서 인코딩하는 인터모드(inter mode)에 대한 구성만을 나타내고, I화면을 생성하기 위한 인트라모드(intra mode) 구성에 대한 설명을 생략하였다. 그러나, 본 실시예 역시 MPEG-2 또는 H.264/AVC 표준에서와 같이 인터모드와 인트라모드 사이에서 모드를 선택하는 모드 선택부 및 I화면을 생성하기 위한 인트라모드부를 더 구비할 수 있음은 물론이다.
도 3은 본 발명의 바람직한 실시예에 따른 인코딩 방법의 흐름도이다.
본 발명의 바람직한 실시예에 따른 인코딩 방법은 일례로 도 2와 같은 인코더를 통해서 구현될 수 있다.
단계 S10은 한 프레임의 비디오 피드가 입력되는 단계이다.
단계 S20은 가장 높은 비트율로 움직임 추정을 수행하는 단계이다.
단계 S30은 단계 S20을 통해 산출된 움직임 벡터를 메모리에 저장하는 단계이다.
단계 S40은 단계 S20을 통해 산출된 움직임 벡터를 이용하여 움직임 보상을 수행하고, 움직임 보상된 영상과 대상영상의 차이값을 변환하고 양자화하는 단계이다.
단계 S50은 단계 S40을 통해 양자화된 데이터를 역양자화 및 역변환하는 단계이다.
단계 S60은 단계 S40을 통해 움직임 보상된 영상에 단계 S50을 통해 역변환된 값을 더하여 재생프레임을 구성하는 단계이다.
단계 S70은 양자화된 변환 계수와 각종 헤더 정보 및 제어 정보 등을 엔트로피 부호화하는 단계이다.
단계 S80은 엔트로피 부호화가 완료된 비트 스트림 화일을 저장하는 단계이다.
단계 S90은 다른 비트율로 인코딩할지 여부를 결정하는 단계이다. 다른 비트율로 인코딩할 경우에는 단계 S40으로 돌아가, 기 저장되어 있는 해당 매크로블록 의 움직임 벡터를 이용하여 움직임 보상과 변환 및 양자화를 수행하며, 나머지 과정들이 반복 수행된다.
얻고자 하는 비트율 전부에 대하여 비트 스트림이 생성되면 해당 프레임의 인코딩이 완료된다(S100).
본 발명에 따른 인코더와 인코딩 방법을 수행하기 위한 장치는 복수 또는 단일의 집적회로로 구성된 하나의 전용 장치로 구현될 수도 있지만, 일반 범용 컴퓨터에 인코딩 방법을 수행하기 위한 프로그램을 로딩하여 구현할 수도 있다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질 적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 인코더와 인코딩 방법에 관한 것으로, 움직임 추정 시간을 단축함으로써 네트워크 및 단말 환경이 이질적인 주문형 비디오 또는 실시간 동영상 방송을 비롯한 다양한 분야에 이용될 수 있다.
도 1은 일반적인 하나의 인코더를 통해 비트율이 다른 복수개의 비트 스트림을 생성하는 과정을 도시한 개념도,
도 2는 본 발명의 바람직한 실시예에 따른 인코더의 블록도,
도 3은 본 발명의 바람직한 실시예에 따른 인코딩 방법의 흐름도이다.

Claims (12)

  1. 삭제
  2. 비트율이 다른 복수개의 비트 스트림을 생성하기 위한 인코더에 있어서,
    각각 서로 다른 비트율의 참조영상이 저장된 복수개의 재생프레임 메모리;
    가장 높은 비트율로 인코딩시 움직임 벡터를 산출하는 움직임 추정부;
    상기 움직임 추정부가 산출한 움직임 벡터를 저장하는 움직임 벡터 메모리; 및
    상기 가장 높은 비트율로 인코딩시에는 상기 움직임 추정부가 산출한 움직임 벡터를 이용하여 움직임 보상을 수행하고, 나머지 비트율로 인코딩시에는 상기 움직임 벡터 메모리에 저장된 움직임 벡터를 이용하여 움직임 보상을 수행하는 움직임 보상부
    를 포함하는 인코더.
  3. 삭제
  4. 제2항에 있어서,
    특정 프레임을 서로 다른 비트율로 반복 인코딩하는 순서를 제어하기 위한 인코딩 순서 제어부를 더 포함하는 것을 특징으로 하는 인코더.
  5. 제2항에 있어서,
    대상영상의 상기 움직임 보상된 화면에 대한 차이값을 구하는 감산기;
    상기 감산기에서 얻어진 차이값에 대한 행렬을 변환하여 변환 계수를 얻는 변환부;
    상기 변환 계수를 양자화하는 양자화부; 및
    상기 양자화된 변환 계수를 부호화하는 엔트로피 부호화부
    를 더 포함하는 것을 특징으로 하는 인코더.
  6. (a) 한 프레임의 비디오 피드(video feed)가 입력되는 단계;
    (b) 가장 높은 비트율로 인코딩시 움직임 벡터를 산출하고 산출된 움직임 벡터를 메모리에 저장하는 단계;
    (c) 상기 산출된 움직임 벡터를 이용하여 움직임 보상을 수행하는 단계;
    (d) 상기 가장 높은 비트율이 아닌 다른 비트율로 인코딩할지 여부를 결정하는 단계; 및
    (e) 상기 가장 높은 비트율이 아닌 다른 비트율로 인코딩하는 경우 상기 (b)단계를 통해 기 저장된 움직임 벡터를 이용하여 움직임 보상을 수행하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 방법.
  7. 제6항에 있어서,
    상기 (c)단계를 통해 움직임 보상된 영상에 대한 대상영상의 차이값을 변환과 양자화 및 부호화를 통해 비트 스트림을 생성하고 파일로 저장하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  8. 제7항에 있어서,
    상기 양자화된 차이값을 역양자화 및 역변환하여 상기 움직임 보상된 영상에 가산함으로써 재생프레임을 생성하고 저장하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  9. 제6항에 있어서,
    상기 (e)단계를 통해 움직임 보상된 영상에 대한 대상영상의 차이값을 변환과 양자화 및 부호화를 통해 비트 스트림을 생성하고 파일로 저장하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  10. 제9항에 있어서,
    상기 양자화된 차이값을 역양자화 및 역변환하여 상기 움직임 보상된 영상에 가산함으로써 재생프레임을 생성하고 저장하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  11. 삭제
  12. 제6항 내지 제10항 중 어느 한 항에 따른 인코딩 방법이 프로그램으로 수록된 컴퓨터가 판독가능한 저장매체.
KR1020080078344A 2008-08-11 2008-08-11 인코더와 인코딩 방법 및 이를 수록한 저장매체 KR101099261B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080078344A KR101099261B1 (ko) 2008-08-11 2008-08-11 인코더와 인코딩 방법 및 이를 수록한 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080078344A KR101099261B1 (ko) 2008-08-11 2008-08-11 인코더와 인코딩 방법 및 이를 수록한 저장매체

Publications (2)

Publication Number Publication Date
KR20100019663A KR20100019663A (ko) 2010-02-19
KR101099261B1 true KR101099261B1 (ko) 2011-12-26

Family

ID=42089892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080078344A KR101099261B1 (ko) 2008-08-11 2008-08-11 인코더와 인코딩 방법 및 이를 수록한 저장매체

Country Status (1)

Country Link
KR (1) KR101099261B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013162257A1 (ko) * 2012-04-23 2013-10-31 삼성전자 주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101470404B1 (ko) * 2013-08-07 2014-12-09 한양대학교 산학협력단 N 스크린 서비스를 위한 트랜스코딩 방법 및 장치
US9860535B2 (en) * 2015-05-20 2018-01-02 Integrated Device Technology, Inc. Method for time-dependent visual quality encoding for broadcast services

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013162257A1 (ko) * 2012-04-23 2013-10-31 삼성전자 주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
US9918063B2 (en) 2012-04-23 2018-03-13 Samsung Electronics Co., Ltd. Multiview video encoding method and device, and multiview video decoding method and device

Also Published As

Publication number Publication date
KR20100019663A (ko) 2010-02-19

Similar Documents

Publication Publication Date Title
TWI221738B (en) Apparatus and methods for transcoder-based adaptive quantization
JP4927207B2 (ja) 符号化方法、復号化方法及び装置
JP4109113B2 (ja) ビデオ伝送におけるビットストリーム間の切換
US9025664B2 (en) Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program
US7301999B2 (en) Quantization method and system for video MPEG applications and computer program product therefor
KR101608426B1 (ko) 영상의 인트라 예측 부호화/복호화 방법 및 그 장치
KR100950743B1 (ko) 화상 정보 부호화 장치 및 방법, 및 화상 정보 복호 장치및 방법
US9584832B2 (en) High quality seamless playback for video decoder clients
JP2008523687A (ja) ファイングラニュラースケーラビリティのためのデジタルビデオのリアルタイムトランスコーディングのシステム及び方法
US20040013399A1 (en) Information processing method and apparatus
US20110211637A1 (en) Method and system for compressing digital video streams
US20100020883A1 (en) Transcoder, transcoding method, decoder, and decoding method
JP2005348093A (ja) 画像処理装置、そのプログラムおよびその方法
CN101677400A (zh) 编码、解码方法和编码器、解码器及编解码系统
CN115118976A (zh) 一种图像编码方法、可读介质及其电子设备
JP5345797B2 (ja) ビデオ信号の変換方法及び装置
KR101099261B1 (ko) 인코더와 인코딩 방법 및 이를 수록한 저장매체
JP4421734B2 (ja) 符号化データ変換方法,及びデータ記録媒体
KR20130085088A (ko) 스케일러블 비디오 코딩에서의 고속 모드 결정 방법 및 그 장치
JP5472094B2 (ja) 動画像変換装置、動画像配信システム、動画像変換方法及びプログラム
KR20110024574A (ko) 통합 영상 부호화 방법 및 장치
KR101037868B1 (ko) 듀얼 모드 비디오 인코더와 이를 이용한 인코딩 장치, 인코딩 방법 및 이를 수록한 저장매체
JP2004350162A (ja) 画像符号化装置
KR20060016947A (ko) Mpeg 비디오 부호화 시스템 및 부호화 방법
JP6874844B2 (ja) 動画像符号化装置、動画像符号化方法、及び、動画像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee