KR101038531B1 - 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 - Google Patents
복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 Download PDFInfo
- Publication number
- KR101038531B1 KR101038531B1 KR1020090056962A KR20090056962A KR101038531B1 KR 101038531 B1 KR101038531 B1 KR 101038531B1 KR 1020090056962 A KR1020090056962 A KR 1020090056962A KR 20090056962 A KR20090056962 A KR 20090056962A KR 101038531 B1 KR101038531 B1 KR 101038531B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- bitstream
- entropy
- macroblocks
- compressed data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N2007/243—Bitstream control arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법이 개시된다. 매크로블록 부호화부는 입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력한다. 엔트로피 부호화부는 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력한다. 데이터 길이 산출부는 한 개 또는 연속하는 복수의 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 각각의 데이터 그룹의 길이를 산출하여 출력한다. 비트스트림 생성부는 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 각각의 데이터 그룹의 길이를 비트스트림의 헤더에 포함시켜 출력한다. 본 발명에 따르면, 복호화시 복수의 엔트로피 복호화기에 의해 각각의 데이터 그룹에 속하는 압축 데이터를 병렬적으로 복호화할 수 있어 속도면에서 시스템의 성능을 향상시킬 수 있다.
엔트로피 코딩, 병렬처리, 데이터 길이
Description
본 발명은 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법에 관한 것으로, 보다 상세하게는, 비트스트림의 복호화가 신속하게 수행되도록 하기 위한 장치 및 방법에 관한 것이다.
개인용 컴퓨터, 무선 장치 및 감시 장치 등의 디지털 장비에서는 영상 데이터를 포함하는 멀티미디어 데이터를 송수신한다. 따라서 이러한 디지털 장비에서 영상 데이터를 효율적으로 송수신하는 것이 중요해지고 있다. 영상 데이터의 효율적인 송수신을 위해 사용되는 기법으로 영상 압축 기법이 사용된다.
H.264는 국제전기통신연합(International Telecommunication Union : ITU-T)에서 제안하는 비디오 코덱에 관련된 권고안으로서, 영상 회의와 방송, 스트리밍(streaming) 서비스 등에 적용할 수 있는 패킷(packet) 기반의 동영상 압축 기술의 하나이다.
H.264에 의해 복수의 매크로블록으로 구성된 원본 영상프레임으로부터 압축된 데이터 스트림을 생성하는 영상 압축 과정의 각 단계는 매크로블록 단위로 수행된다. H.264의 최종 단계에 해당하는 엔트로피 부호화에 의해 생성된 데이터 스트림을 복호화하여 원본 영상프레임을 재구성하는 과정은 엔트로피 복호화 단계에 의해 개시된다. 엔트로피 복호화 과정 역시 매크로블록 단위로 수행된다. 엔트로피 복호화 단계에서 현재 매크로블록의 복호화를 위해서는 이전에 복호화된 매크로블록의 정보를 필요로 한다. 이때 원본 영상프레임 상에서 각 매크로블록의 위치를 데이터 스트림으로부터 알 수 있으면 복수의 매크로블록에 대해 병렬적으로 복호화를 수행할 수 있다. 그런데 엔트로피 부호화 방법에 의해 생성된 데이터 스트림에서는 각 매크로블록이 부호화되어 생성된 데이터의 길이가 각각 다르기 때문에 복호화 과정에서 각 매크로블록에 대응하는 데이터의 시작 위치를 알 수 없다. 따라서 복수의 매크로블록에 대한 복호화 과정을 동시에 수행할 수 없고, 순차적으로 복호화하여야 하는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는, 복호화시 병렬처리가 가능한 비트스트림을 생성하는 영상 부호화 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 복수의 엔트로피 디코더에 의해 비트스트림에 포함된 데이터를 복호화하여 하나의 영상프레임을 생성하는 영상 복호화 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 영상의 복호화시 병렬처리를 수행하여 원본 영상프레임이 빠르게 복원되도록 하는 영상 부호화/복호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 영상 부호화 장치는, 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하며, 입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화부; 상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화부; 한 개 또는 연속하는 복수의 상기 압축 데이터로 이루어진 복수의 데이터 그룹 을 생성하고, 각각의 데이터 그룹의 길이를 산출하여 출력하는 데이터 길이 산출부; 및 상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 영상 부호화 방법은, 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하며, 입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화단계; 상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화단계; 한 개 또는 연속하는 상기 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 각각의 데이터 그룹의 길이를 산출하여 출력하는 데이터 길이 산출단계; 및 상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성단계;를 갖는다.
상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 영상 복호화 장치는, 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출부; 상기 데이터 그룹 각각에 포함된 복수의 압축 데이터에 대해 동시에 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 복수의 엔트로피 복호화부; 상기 각각의 엔트로피 복호화로부터 상기 복수의 양자화 계수 데이터를 순차적으로 입력받아 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 출력하는 매크로블록 복호화부; 상기 복수의 매크로블록을 결합하여 원본 영상프레임으로 복원하는 영상프레임 복원부; 및 상기 복수의 데이터 그룹의 길이를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 각각의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 출력하는 제어부;를 구비한다.
상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 영상 복호화 방법은, 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출단계; 상기 복수의 데이터 그룹의 길이를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 복수의 데이터 그룹과 동일한 개수로 구비된 복수의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 각각 출력하는 제어단계; 상기 각각의 엔트로피 복호화부에 의해 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 입력받아 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 엔트로피 복호화단계; 상기 복수의 양자화 계수 데이터에 대해 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 생성하는 매크로블록 복호화단계; 및 상기 복수의 매크로블록을 결합하여 원본 영상프레임을 복원하는 영상프레임 복원단계;를 갖는다.
본 발명에 따른 영상 부호화 장치 및 방법에 의하면, 원본 영상프레임을 구성하는 매크로블록으로부터 엔트로피 부호화에 의해 생성된 압축 데이터들을 복수의 데이터 그룹으로 분류하고, 각각의 데이터 그룹의 길이를 비트스트림의 헤더에 포함시켜 전송함으로써, 복호화시 복수의 엔트로피 복호화기에 의해 각각의 데이터 그룹에 속하는 압축 데이터를 병렬적으로 복호화할 수 있어 속도면에서 시스템의 성능을 향상시킬 수 있다.
본 발명에 따른 영상 복호화 장치 및 방법에 의하면, 복수의 엔트로피 복호화부에 의해 비트스트림을 구성하는 복수의 데이터 그룹에 포함된 압축 데이터를 병렬적으로 동시에 복호화함으로써, 비트스트림으로부터 원본 영상프레임을 신속하게 복원할 수 있다. 또한 각각의 엔트로피 복호화부에 압축 데이터를 출력할 때 각각의 엔트로피 복호화부에 의해 생성된 양자화 계수 데이터의 개수를 기초로 설정된 시간 간격에 따라 압축 데이터를 출력함으로써, 엔트로피 복호화부 내에서 시간의 지체 없이 압축 데이터에 대한 엔트로피 복호화를 수행할 수 있다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다. 다만, 특허청구범위의 기재에 있어서 전제부의 기재는 종래기술을 의미하는 것이 아닌 본 발명의 기술적 특징을 나타내기 위한 것이다.
도 1은 H.264 방식에서 사용되는 일반적인 인코더/디코더의 구성을 도시한 블록도이다. 도 1에서 음영처리된 부분이 디코더에 해당한다. 또한 H.264에 의한 영상 압축 과정은 널리 알려져 있는 사항에 해당하므로 상세한 설명을 생략하고, 전 과정에 대하여 간단하게 설명한다.
도 1을 참조하면, 원본 영상프레임이 인코더로 입력되며, 인코더 내에서 매크로블록 단위로 처리된다. 각 매크로블록은 프레임 내 예측 또는 프레임간 예측으로서의 움직임 예측 및 보상에 의해 처리되어 예상 매크로블록이 생성된다. 예측 모드의 선택은 제어부에 의해 이루어진다.
다음으로 예상 매크로블록과 원본 영상프레임의 매크로블록을 감산기에 입력하여 차분 매크로블록을 구하고, 차분 매크로블록에 대해 변환 및 양자화 과정이 수행되어 양자화 변환 계수가 생성된다. 최종적으로 양자화된 매크로블록은 엔트로피 부호화 과정에 의해 부호화된 다음 비트스트림의 형태로 출력된다.
디코더에 의해 부호화된 비트스트림으로부터 원본 영상프레임을 복원하는 과정은 다음과 같다. 먼저 비트스트림은 엔트로피 부호화의 역과정인 엔트로피 복호화 과정을 거쳐 양자화 변환 계수로 재구성되며, 이후 역양자화 및 역변환 과정을 거쳐 차분 매크로블록이 생성된다. 이러한 차분 매크로블록이 예상 매크로블록과 합산되어 재구성된 매크로블록이 생성되며, 이후 디블록킹 필터를 거쳐 원본 영상프레임으로 복원된다. 한편, 디블록킹 필터는 복원된 영상프레임의 매크로블록 사이에서 발생하는 왜곡 현상을 완화시키기 위해 사용되는 필터이다.
도 2는 본 발명에 따른 복호화시 병렬처리가 가능한 영상 부호화 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명에 따른 영상 부호화 장치는 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 비트스트림을 생성하며, 매크로블록 부호화부(210), 엔트로피 부호화부(220), 데이터길이 산출부(230) 및 비트스트림 생성부(240)를 구비한다.
매크로블록 부호화부(210)는 입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력한다. 즉, 매크로블록 부호화부(210)는 도 1에 도시된 H.264 인코더에서 변환 및 양자화부와 동일한 기능을 수행한다. 이때 매크로블록 부호화부(210)는 원본 영상프레임 전체가 아닌 원본 영상프레임이 분할되어 생성된 복수의 슬라이스 중 하나의 동일한 슬라이스를 구성하는 복수의 매크로블록에 대해 정수 변환 및 양자화를 수행할 수 있다. 기존에 알려진 바와 같이 H.264 방식에 의한 부호화 과정은 영상프레임 단위가 아닌 슬라이스 단위로 수행될 수 있기 때문이다.
H.264에서 매크로블록에 대한 변환 과정은 4×4(픽셀) 크기의 블록 단위로 이루어지며, 기존의 이산 코사인 변환(Discrete Cosine Transform : DCT) 대신 DCT에 근접한 정수형 4×4 공간 변환이 사용된다. 이전의 압축 표준에서 사용했던 8×8(픽셀) 블록 대신 4×4(픽셀) 블록을 사용함으로써, 블록현상을 줄일 수 있고, 역변환 과정 역시 정수 연산만으로 이루어지므로 왜곡이 발생하지 않는다. 매크로블록에 대한 정수 변환 결과 변환 계수가 생성된다.
다음으로 변환계수는 스칼라 양자화에 의해 양자화된다. 52개의 양자화 계수 중 하나가 양자화 파라미터에 의해 각각의 매크로블록에 대해 선택된다. 양자화 계수는 양자화 파라미터가 하나 증가할 때 양자화된 계단 크기가 약 12.5%까지 증가되도록 정렬된다. 양자화된 매크로블록에서 양자화 변환 계수는 일반적으로 지그재그 형태로 스캔되어 정렬된다. 매크로블록 부호화부(210)의 출력인 양자화 계수 데이터는 이와 같이 정렬된 양자화 변환 계수로 이루어지며, 매크로블록과 동일한 개수로 얻어진다.
엔트로피 부호화부(220)는 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력한다. 이미 알려진 바와 같이 엔트로피 부호화는 심벌(symbol)의 출현 빈도에 의한 확률에 근거하여 최적의 코드워드(Code Word)를 배정하는 통계학적 예측에 기초하고 있다. H.264에서 사용되는 엔트로피 부호화 방식으로는 문맥 기반 적응적 가변 길이 부호화(Context-based Adaptive Variable Length Coding : CAVLC) 및 문맥 기반 적응적 이진 산술 부호화(Context-based Adaptive Binary Arithmetic Coding : CABAC) 방식이 있다.
CAVLC 방식에서는 이미 부호화된 매크로블록의 부호화 정보를 기반으로 복수의 가변 길이 부호화 표(Variable Length Coding Table) 중 하나를 선택한다. 예를 들면, H.264에서는 Num-VLC0, Num-VLC1, Num-VLC2 및 FLC 등의 가변 길이 부호화 표를 사용한다. H.264 방식에서는 현재 매크로블록을 부호화할 때 이미 부호화된 왼쪽과 위쪽의 인접 매크로블록의 부호화 정보 중 0이 아닌 계수들의 수(NumCoeff)를 근거로 4개의 가변 길이 부호화 표 중에서 하나를 선택하여 현재 매크로블록에서 트레일링 1(trailing ones)의 수(Tls)와 0이 아닌 계수들의 수(NumCoeff)를 부 호화하게 된다. 예를 들면, 위쪽의 매크로블록에서 NumCoeff가 NU이고 왼쪽의 매크로블록에서 NumCoeff가 NL이라 할 때, 현재 매크로블록에서 예상되는 NumCoeff는 N=round(NL+NU)/2이다. H.264에서는 이렇게 예상된 N을 기초로 다음의 표 1과 같이 네 개의 가변 길이 부호화표 중에서 하나를 선택한다.
N | 가변 길이 부호화 표 |
0,1 | Num-VLC0 |
2,3 | Num-VLC1 |
4,5,6,7 | Num-VLC2 |
8 이상 | FLC |
이와 같이 정해진 가변 길이 부호화 표에서 현재 매크로블록으로부터 산출되는 NumCoeff와 Tls를 참조하여 현재 매크로블록에 대한 비트스트림의 최초 부분 코드워드를 얻을 수 있다.
N의 값을 예상할 때 현재 매크로블록의 왼쪽이나 위쪽 매크로블록에 대한 NL 값이나 NU 값을 구할 수 없는 경우, NL의 값을 얻을 수 없는 경우에는 N=NU가 되고, NU의 값을 얻을 수 없는 경우에는 N=NL이 된다. NU와 NL의 값을 모두 얻을 수 없는 경우에는 N=0이 된다.
H.264에서는 이어서 트레일링 1의 부호, 트레일링 1을 제외한 0이 아닌 계수의 크기, 0이 아닌 마지막 계수의 앞에 위치하는 0의 개수 및 이들 0의 위치를 순차적으로 부호화한다.
다음으로 CABAC에서는 확률 모델을 사용하여 변환 계수와 움직임 벡터들의 구성 요소들을 부호화한다. 산술 코딩의 부호화 효율을 개선하기 위하여 기초 확률 모델인 컨텍스트 모델(context model)이 영상프레임 내에서 변화하는 통계에 적용되는데, 이러한 과정을 컨텍스트 모델링(context modeling)이라 한다. 컨텍스트 모델링은 부호화 심벌의 조건부 확률 추정치를 제공한다. 적합한 컨텍스트 모델을 이용하여 주어진 심벌 사이의 중복성이 활용될 수 있는데, 현재 심벌 주변의 미리 부호화된 심벌에 따라 다른 컨텍스트 모델로 전환하게 된다. 각각의 구성요소는 다른 모델을 유지한다. 예를 들면, 움직임 벡터와 변환 계수는 다른 모델을 가지고 있다. CABAC는 CAVLC에 비하여 약 10% 향상된 비트율을 제공할 수 있다.
이러한 컨텍스트 모델은 매번 갱신되는 것으로, 본 발명에 따른 엔트로피 부호화부에서 CABAC 방식의 엔트로피 부호화를 수행하는 경우에는 컨텍스트 모델링을 수행하는 장치를 추가적으로 구비하고, 컨텍스트 모델이 비트스트림의 헤더에 포함되도록 출력하면 된다.
엔트로피 부호화부(220)는 매크로블록 부호화부(210)로부터 출력된 양자화 계수 데이터에 대해 CAVLC 또는 CABAC의 엔트로피 부호화를 수행한다. 엔트로피 부호화 결과 양자화 계수 데이터의 개수와 동일한 복수의 압축 데이터가 얻어진다.
데이터 길이 산출부(230)는 한 개 또는 연속하는 복수의 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 각각의 데이터 그룹의 길이를 산출하여 출력한다.
엔트로피 부호화부(220)에 의해 생성된 압축 데이터로부터 원본 영상프레임을 복원하기 위해서는 엔트로피 복호화 과정이 수행되어야 한다. 엔트로피 부호화에서와 마찬가지로 엔트로피 복호화 과정에서도 현재 압축 데이터를 복원하기 위해서는 이전 압축 데이터로부터 복호화된 데이터의 정보를 필요로 한다. 따라서 앞에서 설명한 바와 같이 복수의 복호화기에 의해 압축 데이터를 병렬적으로 복호화하기 어렵다는 문제가 있었다. 그러나 복호화기에서 각각의 압축데이터의 길이 정보를 가지게 된다면 현재 복원하는 매크로블록에 대한 원본 영상프레임 상에서의 위치 정보를 알 수 있으므로 반드시 복수의 압축 데이터를 순차적으로 복호화할 필요 없이 복수의 복호화기에 의한 병렬적인 복호화가 가능하게 된다.
이를 위해 데이터 길이 산출부(230)는 먼저 복수의 복호화기 각각에 대응되는 복수의 데이터 그룹을 생성한다. 하나의 데이터 그룹에는 한 개 내지 연속하는 복수의 압축 데이터가 포함된다. 주의할 점은 하나의 매크로블록으로부터 생성된 압축 데이터가 분할되지 않고 모두 동일한 데이터 그룹에 속하도록 해야 한다. 또한 도 2에서는 데이터 길이 산출부(230)가 엔트로피 부호화부(220)와 별개의 구성요소인 것으로 도시하였으나, 데이터 길이 산출부(230)가 엔트로피 부호화부(220) 내에 구비되어 엔트로피 부호화에 의해 생성된 압축 데이터들이 즉시 복수의 데이터 그룹으로 분류되도록 할 수도 있다.
데이터 길이 산출부(230)에 의해 생성된 하나의 데이터 그룹은 하나의 복호화기에 의해 복호화되는 압축 데이터의 그룹이다. 따라서 데이터 그룹은 영상 복호화 장치에 구비된 복호화기와 동일한 개수로 생성된다. 또한 하나의 데이터 그룹에 포함되는 압축 데이터의 개수, 즉 하나의 복호화기에 의해 복원될 매크로블록의 개수는 사전에 설정되어 부호화 장치 및 복호화 장치에 대해 동일하게 적용되어야 한다. 나아가 데이터 길이 산출부(230)는 복수의 데이터 그룹의 길이와 함께 각각의 데이터 그룹에 포함된 압축 데이터의 개수를 출력하여 비트스트림의 헤더에 포함되도록 할 수 있다. 한편, 각각의 데이터 그룹과 해당 데이터 그룹의 길이 정보가 정확하게 대응되도록 하기 위해 데이터 길이 산출부(230)는 각각의 데이터 그룹과 그에 대응하는 길이 정보에 동일한 식별번호를 부여할 수 있다.
비트스트림 생성부(240)는 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 각각의 데이터 그룹의 길이를 비트스트림의 헤더에 포함시켜 출력한다.
엔트로피 부호화에 의해 생성된 압축 데이터를 결합하여 통신선로를 통해 복호화 장치로 전송되는 비트스트림을 생성하는 기술은 기존에 널리 알려져 있으므로 상세한 설명은 생략하도록 한다. 생성된 비트스트림의 헤더에는 원본 영상프레임의 프레임 번호, CAVLC 또는 CABAC의 엔트로피 코딩 방법을 선택하기 위한 플래그(flag), 예측, 양자화 및 디블록킹을 위한 파라미터 등 도 1에 도시된 바와 같은 H.264 인코더의 제어부에서 사용하는 제어 정보가 포함된다.
비트스트림 생성부(240)는 이러한 비트스트림의 헤더정보에 앞에서 설명한 바와 같은 병렬적인 복호화 과정의 수행을 위해 필요한 데이터 그룹의 길이 정보를 더 포함시켜 출력한다. 데이터 그룹의 길이 정보는 데이터 길이 산출부(230)로부터 입력받은 것이다.
엔트로피 부호화부(220)가 CABAC 방식의 엔트로피 부호화를 수행하는 경우에는 각각의 압축 데이터를 생성할 때 사용된 컨텍스트 모델 정보를 압축 데이터와 함께 출력하고, 비트스트림 생성부(240)는 컨텍스트 모델을 비트스트림의 헤더에 데이터 그룹의 길이와 함께 포함시켜 출력한다.
도 3은 본 발명에 따른 영상 부호화 장치가 슬라이스 단위로 부호화를 수행할 때 비트스트림 생성부(240)에 의해 생성된 비트스트림의 일 예를 도시한 도면이다.
도 3을 참조하면, 비트스트림에는 부호화된 슬라이스 데이터, 슬라이스 헤더 및 각종 H.264 환경정보들이 저장되며, H.264 환경정보에는 시퀀스 파라미터 셋(Sequence Parameter Set : SPS) 및 픽쳐 파라미터 셋(Picture Parameter Set : PPS)이 포함된다. SPS에는 하나의 완전한 영상 시퀀스를 구성하기 위한 파라미터들, 즉 자신의 아이디, 최대 영상프레임 수, 영상 순서, 복호화된 영상의 폭과 높이 등의 파라미터가 포함되며, PPS에는 자신의 아이디와 선택된 SPS 아이디, CAVLC 또는 CABAC 엔트로피 부호화 방식을 선택하기 위한 플래그(flag), 그리고 슬라이스 그룹을 정의하는 파라미터들과 예측, 양자화 및 디블록킹을 위한 파라미터들이 포함된다. 슬라이스 데이터는 해당 슬라이스를 구성하는 복수의 매크로블록으로부터 부호화된 압축 데이터들을 나타내며, 비트스트림 생성부(240)는 슬라이스 헤더에 각각의 데이터 그룹의 길이를 포함시킨다.
도 4는 본 발명에 따른 복호화시 병렬처리가 가능한 영상 부호화 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 4를 참조하면, 매크로블록 복호화부(210)는 입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력한다(S410). 다음으로 엔트로피 부호화부(220)는 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력한다(S420). 엔트로피 부호화로는 CAVLC 또는 CABAC 방식이 사용될 수 있다.
데이터 길이 산출부(230)는 한 개 또는 연속하는 복수의 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 각각의 데이터 그룹의 길이를 산출하여 출력한다(S430). 데이터 그룹은 복수의 복호화기에 의해 동시에 복호화되는 압축 데이터들로 구성되며, 복호화기와 동일한 개수로 생성된다. 마지막으로 비트스트림 생성부(240)는 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 각각의 데이터 그룹의 길이를 비트스트림의 헤더에 포함시켜 출력한다(S440). 한편, 엔트로피 부호화부(220)에서 CABAC 방식에 의한 엔트로피 부호화가 수행되는 경우에는 비트스트림 생성부(240)는 비트스트림의 헤더에 컨텍스트 모델을 추가적으로 포함시켜 출력한다.
도 5는 본 발명에 따른 병렬처리가 가능한 영상 복호화 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 5를 참조하면, 본 발명에 따른 영상 복호화 장치는 헤더정보 추출부(510), 제어부(520), 엔트로피 복호화부(530), 매크로블록 복호화부(540) 및 영상프레임 복원부(550)를 구비한다.
헤더정보 추출부(510)는 부호화된 비트스트림을 입력받아 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출한다. 헤더정보 추출부(510)로 입력되는 비트스트림은 본 발명에 따른 영상 부호화 장치의 비트스트림 생성부(240)에 의해 생성된 것이며, 비트스트림의 헤더정보, 즉 도 3에 도시된 비트스트림의 경우, 슬라이스 헤더에는 앞에서 설명한 바와 같이 각각의 데이터 그룹의 길이가 포함되어 있다. 또한 엔트로피 부호화부(220)에서 CABAC 방식의 엔트로피 부호화를 수행하는 경우에는 비트스트림의 헤더정보에 확률 모델인 컨텍스트 모델이 더 포함된다. 나아가 각각의 데이터 그룹이 길이 정보와 정확하게 대응되어야 하기 때문에 비트스트림에 포함된 데이터 그룹 및 그에 대응하여 헤더정보에 포함된 데이터 그룹의 길이에는 각각 식별번호가 부여될 수 있다. 따라서 헤더정보 추출부(510)에 의해 추출된 헤더정보에 포함된 데이터 그룹의 길이가 비트스트림에 포함된 데이터 그룹들 중에서 몇 번째 데이터 그룹의 길이인지 파악할 수 있다.
엔트로피 복호화부(530)는 복수의 데이터 그룹 각각에 포함된 복수의 압축 데이터에 대해 동시에 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력한다. 이때 엔트로피 복호화부(530)는 데이터 그룹의 개수와 동일한 개수가 구비된다.
앞에서도 설명한 바와 같이 CAVLC와 CABAC 등의 엔트로피 부호화에서는 각각의 매크로블록을 복원할 때 이전에 복원된 매크로블록의 정보를 필요로 한다. 따라서 복수의 엔트로피 복호화부(530)가 각각의 데이터 그룹에 포함된 압축 데이터를 입력받는다 하여도 이전에 복원된 매크로블록 정보가 없으면 각각의 압축 데이터에 대한 엔트로피 복호화를 개시할 수 없다. 이때 비트스트림 상에서 앞부분에 위치하는 데이터 그룹에 포함된 압축 데이터를 입력받은 엔트로피 복호화부(530)에 의해 엔트로피 복호화가 일정 정도 수행된 다음 비트스트림 상에서 해당 데이터 그룹의 뒷부분에 위치하는 데이터 그룹에 포함된 압축 데이터를 다음 엔트로피 복호화부(530)로 입력시키는 것이 바람직하다.
제어부(520)는 헤더정보에 포함된 복수의 데이터 그룹의 길이를 기초로 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 각각의 엔트로피 복호화부(530)로 사전에 설정된 시간 간격에 따라 출력한다.
각각의 엔트로피 복호화부(530)로 압축 데이터를 출력하는 시간 간격은 엔트로피 복호화부(530)에서 하나의 압축 데이터에 대해 엔트로피 복호화를 수행하는 평균 시간을 기초로 설정될 수 있다. 즉, 첫번째 엔트로피 복호화부(530)로 비트스트림의 첫번째 데이터 그룹에 포함된 압축 데이터를 출력한 후, 두번째 데이터 그룹의 첫번째 압축 데이터를 복호화할 때 필요한 정보를 모두 얻을 수 있을 정도의 시간이 경과하면 두번째 엔트로피 복호화부(530)로 비트스트림의 두번째 데이터 그룹에 포함된 압축 데이터를 출력하는 것이다.
시간 간격을 설정하는 또 다른 방법으로, 제어부(520)가 각각의 엔트로피 복호화부(530)에 의해 생성된 양자화 계수 데이터의 개수 정보를 입력받아 각각의 엔트로피 복호화부(530)로 압축 데이터를 출력하는 시간 간격을 설정할 수 있다. 예를 들면, 두번째 데이터 그룹의 첫번째 압축 데이터를 복호화하기 위해 첫번째 데이터 그룹에서 최초 세 개의 압축 데이터가 복호화되어 생성된 매크로블록의 정보가 필요하다면, 제어부(520)는 첫번째 데이터 그룹에 포함된 압축 데이터들을 복호화하는 엔트로피 복호화부(530)로부터 세 개의 압축 데이터를 복호화하였다는 신호가 입력되면 두번째 엔트로피 복호화부(530)로 두번째 데이터 그룹에 포함된 압축 데이터들을 출력할 수 있다.
도 6은 CAVLC 방식을 사용하는 복수의 엔트로피 복호화부(530)에 의해 복호화되는 복수의 데이터 그룹의 예를 도시한 도면이다.
도 6에 도시된 영상프레임은 8×6개의 매크로블록으로 구성되어 있고, 8개의 매크로블록으로 구성된 영상프레임의 행은 각각 하나의 데이터 그룹을 나타낸다. 따라서 데이터 그룹의 길이는 8개의 매크로블록으로부터 생성된 복수의 압축 데이터의 길이의 합이다. 또한 도 6에는 편의상 매크로블록 형태로 표시하였지만, 각각의 매크로블록은 비트스트림을 구성하는 압축 데이터 또는 그로부터 복호화된 양자화 계수 데이터를 나타낸다.
제어부(520)는 먼저 영상프레임의 제1행에 위치하는 매크로블록들로부터 부호화된 압축 데이터들, 즉 제1데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 첫번째 엔트로피 복호화부(530)로 출력한다. 압축 데이터의 출력 순서는 왼쪽에서 오른쪽 방향이 된다. 다음으로 제어부(520)는 영상프레임의 제2행에 위치하는 매크로블록들로부터 부호화된 압축 데이터들, 즉 제2데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 두번째 엔트로피 복호화부(530)로 출력하게 된다. 이때 앞에서도 설명한 바와 같이 압축 데이터를 복호화하여 양자화 계수 데이터로 복원하기 위해서는 이전에 복원된 양자화 계수 데이터의 정보를 필요로 한다. 도 6에 도시된 영상프레임의 경우, 제2행의 첫번째 매크로블록에 해당하는 압축 데이터를 복호화하기 위해서는 제1행의 첫번째 매크로블록과 두번째 매크로블록에 해당하는 양자화 계수 데이터의 정보가 필요하다. 따라서 제1행의 두번째 매크로블록에 해당하는 양자화 계수 데이터가 생성될 때까지 제어부(520)는 제2행의 첫번째 매크로블록에 해당하는 압축 데이터를 출력하지 않고 대기한다.
도 6에서 옅은 음영으로 표시된 매크로블록은 엔트로피 복호화부(530)에 의해 이미 복원된 양자화 계수 데이터를 나타내며, 진한 음영으로 표시된 매크로블록은 엔트로피 복호화부(530)에 의해 현재 복원중인 양자화 계수 데이터를 나타낸다. 제어부(520)가 제3행에서 별표(☆)로 표시된 매크로블록에 해당하는 압축 데이터를 세번째 엔트로피 복호화부(530)로 출력하고자 할 때, 영상프레임 상에서 해당 매크로블록의 오른쪽 상단에 위치하는 매크로블록이 현재 엔트로피 복호화부(530)에 의해 복원되는 중이므로 매크로블록에 해당하는 양자화 계수 데이터의 생성이 완료되면 별표(☆)로 표시된 매크로블록에 해당하는 압축 데이터를 엔트로피 복호화부(530)로 출력할 수 있다.
이와 같이 복수의 엔트로피 복호화부(530)에 의해 병렬적으로 엔트로피 복호화를 수행하도록 함으로써, 영상프레임의 복원 속도가 빨라지게 된다.
다음으로 매크로블록 복호화부(540)는 각각의 엔트로피 복호화부(530)로부터 복수의 양자화 계수 데이터를 순차적으로 입력받아 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 출력한다.
본 발명에 따른 영상 복호화 장치에는 엔트로피 복호화부(530)가 복수 개 구비되어 각각의 엔트로피 복호화부(530)에서 병렬적으로 복수의 데이터 그룹에 포함된 압축 데이터 각각에 대한 복호화가 수행되므로, 매크로블록 복호화부(540)는 복수의 엔트로피 복호화부(530)로부터 동시에 양자화 계수 데이터를 입력받는다. 매크로블록 복호화부(540)에서는 본 발명에 따른 영상 부호화 장치의 매크로블록 부호화부(210)에서 수행된 정수 변환 및 양자화의 역과정인 역양자화 및 역변환을 수행하여 복호화된 매크로블록을 생성한다. 보다 구체적으로 말하면, 매크로블록 복호화부(540)에 의해 복호화된 매크로블록은 차분 매크로블록에 해당하며 예측된 매크로블록과 합산하여 최종적으로 복원된 매크로블록이 생성된다.
이와 같이 매크로블록 복호화부(540)에서 양자화 계수 데이터를 복호화할 때, 영상프레임 또는 슬라이스의 왼쪽 상단에서 오른쪽 하단까지의 매크로블록에 해당하는 양자화 계수 데이터를 하나씩 순차적으로 입력받는 것이 아니고 복수의 엔트로피 복호화부(530)로부터 양자화 계수 데이터를 입력받는다. 이러한 경우에는 매크로블록들을 결합하여 영상프레임을 복원할 때 각각의 매크로블록의 위치를 알 수 없어서 복원이 어렵게 될 수 있다. 따라서 매크로블록 복호화부(540)는 생성된 매크로블록을 출력할 때마다 원본 영상프레임 상에서 해당 매크로블록의 위치정보를 함께 출력한다.
영상프레임 복원부(550)는 복수의 매크로블록을 결합하여 원본 영상프레임으로 복원한다. 이때 매크로블록 복호화부(540)로부터 입력받은 각각의 매크로블록의 위치정보가 이용된다. 복수의 엔트로피 복호화부(530)가 구비되어 병렬적으로 엔트로피 복호화를 수행한 결과 압축 데이터로부터 양자화 계수 데이터, 그리고 매크로블록으로의 복호화가 신속하게 이루어지므로 비트스트림으로부터 원본 영상프레임을 빠르게 복원할 수 있다.
도 7은 본 발명에 따른 병렬처리가 가능한 영상 복호화 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 7을 참조하면, 헤더정보 추출부(510)는 부호화된 비트스트림을 입력받아 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출한다(S710). 추출된 헤더정보는 복수의 압축 데이터를 포함하는 데이터 그룹의 길이 또는 추가적으로 CABAC 방식의 엔트로피 복호화를 위한 컨텍스트 모델을 포함한다. 다음으로 제어부(520)는 헤더정보에 포함된 복수의 데이터 그룹의 길이를 기초로 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 복수의 데이터 그룹과 동일한 개수로 구비된 복수의 엔트로피 복호화부(530)로 사전에 설정된 시간 간격에 따라 출력한다(S720). 시간 간격은 제어부(520)가 엔트로피 복호화부(530)의 복호화 속도를 기초로 설정할 수도 있고, 엔트로피 복호화부(530)로부터 양자화 계수 데이터의 개수 정보를 입력받아 설정할 수도 있다.
복수의 엔트로피 복호화부(530)는 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 입력받아 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력한다(S730). 엔트로피 복호화 방식으로는 CAVLC 또는 CABAC 방식이 사용될 수 있다. 다음으로 매크로블록 복호화부(540)는 복수의 엔트로피 복호화부(530)에 의해 각각 생성된 복수의 양자화 계수 데이터를 순차적으로 입력받아 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 생성한다(S740). 마지막으로 영상프레임 복원부(550)는 복수의 매크로블록을 결합하여 원본 영상프레임을 복원한다(S750). 이때 매크로블록 복호화부(540)는 생성된 매크로블록과 함께 영상프레임 상에서 매크로블록의 위치정보를 영상프레임 복원부(550)로 출력할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 H.264 방식에서 사용되는 일반적인 인코더/디코더의 구성을 도시한 블록도,
도 2는 본 발명에 따른 복호화시 병렬처리가 가능한 영상 부호화 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 3은 본 발명에 따른 영상 부호화 장치가 슬라이스 단위로 부호화를 수행할 때 비트스트림 생성부에 의해 생성된 비트스트림의 일 예를 도시한 도면,
도 4는 본 발명에 따른 복호화시 병렬처리가 가능한 영상 부호화 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도,
도 5는 본 발명에 따른 병렬처리가 가능한 영상 복호화 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 6은 CAVLC 방식을 사용하는 복수의 엔트로피 복호화부에 의해 복호화되는 복수의 데이터 그룹의 예를 도시한 도면, 그리고,
도 7은 본 발명에 따른 병렬처리가 가능한 영상 복호화 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
Claims (15)
- 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하는 영상 부호화 장치에 있어서,입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화부;상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화부;한 개 또는 연속하는 복수의 상기 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 상기 각각의 데이터 그룹의 길이 및 상기 각각의 데이터 그룹에 포함된 상기 압축 데이터의 개수를 산출하여 출력하는 데이터 길이 산출부; 및상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성부;를 포함하는 것을 특징으로 하는 영상 부호화 장치.
- 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하는 영상 부호화 장치에 있어서,입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화부;상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화부;한 개 또는 연속하는 복수의 상기 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 상기 각각의 데이터 그룹의 길이를 산출하여 출력하는 데이터 길이 산출부; 및상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성부;를 포함하며,상기 엔트로피 부호화부는 문맥기반 적응적 이진 산술 부호화를 수행하고,상기 비트스트림 생성부는 확률 모델인 컨텍스트 모델을 상기 비트스트림의 헤더에 추가적으로 포함시켜 출력하는 것을 특징으로 하는 영상 부호화 장치.
- 삭제
- 제 1항 또는 제 2항에 있어서,상기 복수의 매크로블록은 상기 원본 영상프레임이 분할되어 생성된 복수의 슬라이스 중에서 동일한 하나의 슬라이스를 구성하는 것을 특징으로 하는 영상 부호화 장치.
- 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하는 영상 부호화 방법에 있어서,입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화단계;상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화단계;한 개 또는 연속하는 복수의 상기 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 상기 각각의 데이터 그룹의 길이 및 상기 각각의 데이터 그룹에 포함된 상기 압축 데이터의 개수를 산출하여 출력하는 데이터 길이 산출단계; 및상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성단계;를 포함하는 것을 특징으로 하는 영상 부호화 방법.
- 부호화된 비트스트림을 구성하는 복수의 데이터 그룹이 각각 복수의 복호화기에 의해 동시에 복호화되어 동일한 영상프레임에 속하는 복수의 매크로블록이 생성되도록 상기 비트스트림을 생성하는 영상 부호화 방법에 있어서,입력받은 원본 영상프레임을 구성하는 복수의 매크로블록에 대해 순차적으로 정수 변환 및 양자화를 수행하여 복수의 양자화 계수 데이터를 출력하는 매크로블록 부호화단계;상기 복수의 양자화 계수 데이터 각각에 대해 엔트로피 부호화를 수행하여 복수의 압축 데이터를 출력하는 엔트로피 부호화단계;한 개 또는 연속하는 복수의 상기 압축 데이터로 이루어진 복수의 데이터 그룹을 생성하고, 상기 각각의 데이터 그룹의 길이를 산출하여 출력하는 데이터 길이 산출단계; 및상기 복수의 압축 데이터로부터 부호화된 비트스트림을 생성하고, 상기 각각의 데이터 그룹의 길이를 상기 비트스트림의 헤더에 포함시켜 출력하는 비트스트림 생성단계;를 포함하며,상기 엔트로피 부호화단계에서, 문맥기반 적응적 이진 산술 부호화를 수행하고,상기 비트스트림 생성단계에서, 확률 모델인 컨텍스트 모델을 상기 비트스트림의 헤더에 추가적으로 포함시켜 출력하는 것을 특징으로 하는 영상 부호화 방법.
- 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출부;상기 데이터 그룹 각각에 포함된 복수의 압축 데이터에 대해 동시에 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 복수의 엔트로피 복호화부;상기 각각의 엔트로피 복호화로부터 상기 복수의 양자화 계수 데이터를 순차적으로 입력받아 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 출력하는 매크로블록 복호화부;상기 복수의 매크로블록을 결합하여 원본 영상프레임으로 복원하는 영상프레임 복원부; 및상기 복수의 데이터 그룹의 길이 및 상기 각각의 엔트로피 복호화부에 의해 생성된 상기 양자화 개수 데이터의 개수 정보를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 각각의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 출력하는 제어부;를 포함하는 것을 특징으로 하는 영상 복호화 장치.
- 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출부;상기 데이터 그룹 각각에 포함된 복수의 압축 데이터에 대해 동시에 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 복수의 엔트로피 복호화부;상기 각각의 엔트로피 복호화로부터 상기 복수의 양자화 계수 데이터를 순차적으로 입력받아 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 출력하는 매크로블록 복호화부;상기 복수의 매크로블록을 결합하여 원본 영상프레임으로 복원하는 영상프레임 복원부; 및상기 복수의 데이터 그룹의 길이를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 각각의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 출력하는 제어부;를 포함하며,상기 헤더 정보에는 확률 모델인 컨텍스트 모델이 더 포함되고, 상기 엔트로피 복호화부는 상기 컨텍스트 모델을 기초로 문맥기반 적응적 이진 산술 복호화를 수행하는 것을 특징으로 하는 영상 복호화 장치.
- 삭제
- 제 7항 또는 제 8항에 있어서,상기 매크로블록 복호화부는 상기 원본 영상프레임 상에서 상기 복호화된 매크로블록의 위치정보를 상기 영상프레임 복원부로 출력하는 것을 특징으로 하는 영 상 복호화 장치.
- 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출단계;상기 복수의 데이터 그룹의 길이를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 복수의 데이터 그룹과 동일한 개수로 구비된 복수의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 각각 출력하는 제어단계;상기 각각의 엔트로피 복호화부에 의해 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 입력받아 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 엔트로피 복호화단계;상기 복수의 양자화 계수 데이터에 대해 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 생성하는 매크로블록 복호화단계; 및상기 복수의 매크로블록을 결합하여 원본 영상프레임을 복원하는 영상프레임 복원단계;를 포함하며,상기 제어단계에서, 상기 각각의 엔트로피 복호화부에 의해 생성된 상기 양자화 계수 데이터의 개수 정보를 입력받아 상기 시간 간격을 설정하는 것을 특징으로 하는 영상 복호화 방법.
- 부호화된 비트스트림을 입력받아 상기 비트스트림을 구성하는 복수의 데이터 그룹의 길이를 포함하는 헤더정보를 추출하는 헤더정보 추출단계;상기 복수의 데이터 그룹의 길이를 기초로 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 상기 복수의 데이터 그룹과 동일한 개수로 구비된 복수의 엔트로피 복호화부로 사전에 설정된 시간 간격에 따라 각각 출력하는 제어단계;상기 각각의 엔트로피 복호화부에 의해 상기 각각의 데이터 그룹에 포함된 복수의 압축 데이터를 순차적으로 입력받아 엔트로피 복호화를 수행하여 복수의 양자화 계수 데이터를 출력하는 엔트로피 복호화단계;상기 복수의 양자화 계수 데이터에 대해 역양자화 및 역변환을 수행하여 복수의 복호화된 매크로블록을 생성하는 매크로블록 복호화단계; 및상기 복수의 매크로블록을 결합하여 원본 영상프레임을 복원하는 영상프레임 복원단계;를 포함하며,상기 헤더 정보에는 확률 모델인 컨텍스트 모델이 더 포함되고, 상기 엔트로피 복호화단계에서 문맥기반 적응적 이진 산술 부호화를 수행하는 것을 특징으로 하는 영상 복호화 방법.
- 삭제
- 제 5항에 기재된 영상 부호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 제 11항 또는 제 12항에 기재된 영상 복호화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090056962A KR101038531B1 (ko) | 2009-06-25 | 2009-06-25 | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090056962A KR101038531B1 (ko) | 2009-06-25 | 2009-06-25 | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100138425A KR20100138425A (ko) | 2010-12-31 |
KR101038531B1 true KR101038531B1 (ko) | 2011-06-02 |
Family
ID=43511901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090056962A KR101038531B1 (ko) | 2009-06-25 | 2009-06-25 | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101038531B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101172346B1 (ko) | 2012-02-03 | 2012-08-14 | 이노뎁 주식회사 | 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법 |
WO2013100694A1 (ko) * | 2011-12-29 | 2013-07-04 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR101284559B1 (ko) | 2011-12-22 | 2013-07-11 | 광주과학기술원 | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101631944B1 (ko) | 2009-10-30 | 2016-06-20 | 삼성전자주식회사 | 복호화 가속화를 위한 엔트로피 부호화 방법과 그 장치 및 엔트로피 복호화 방법과 그 장치 |
EP2381685B1 (en) * | 2010-04-13 | 2019-01-02 | BlackBerry Limited | Methods and devices for load balancing in parallel entropy coding and decoding |
KR101499919B1 (ko) * | 2010-11-23 | 2015-03-10 | 한국전자통신연구원 | 비트 플레인 기반의 예측 오차 데이터 복호화 장치 및 방법 |
KR101726274B1 (ko) * | 2011-02-21 | 2017-04-18 | 한국전자통신연구원 | 병렬 엔트로피 부호화/복호화 방법 및 장치 |
US9106932B2 (en) * | 2012-02-29 | 2015-08-11 | Broadcom Corporation | Parallel pyramid entropy coding for video and image compression |
KR102123620B1 (ko) * | 2014-11-14 | 2020-06-26 | 엘지전자 주식회사 | 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970068627A (ko) * | 1996-03-22 | 1997-10-13 | 구자홍 | 최적화된 가변길이 테이블장치 및 최적 길이값 산출방법 |
KR0166737B1 (ko) * | 1995-03-08 | 1999-03-20 | 김광호 | 병렬처리형 가변장복호화장치 |
KR20060020160A (ko) * | 2004-08-31 | 2006-03-06 | 주식회사 렛스비전 | 가변장 복호화 시스템 및 그 방법 |
WO2008063334A2 (en) | 2006-11-09 | 2008-05-29 | Calista Technologies | System and method for effectively encoding and decoding electronic information |
-
2009
- 2009-06-25 KR KR1020090056962A patent/KR101038531B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0166737B1 (ko) * | 1995-03-08 | 1999-03-20 | 김광호 | 병렬처리형 가변장복호화장치 |
KR970068627A (ko) * | 1996-03-22 | 1997-10-13 | 구자홍 | 최적화된 가변길이 테이블장치 및 최적 길이값 산출방법 |
KR20060020160A (ko) * | 2004-08-31 | 2006-03-06 | 주식회사 렛스비전 | 가변장 복호화 시스템 및 그 방법 |
WO2008063334A2 (en) | 2006-11-09 | 2008-05-29 | Calista Technologies | System and method for effectively encoding and decoding electronic information |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101284559B1 (ko) | 2011-12-22 | 2013-07-11 | 광주과학기술원 | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 |
KR102238127B1 (ko) * | 2011-12-29 | 2021-04-08 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20230025037A (ko) * | 2011-12-29 | 2023-02-21 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
CN104041031A (zh) * | 2011-12-29 | 2014-09-10 | Lg电子株式会社 | 视频编码和解码方法和使用该方法的装置 |
KR20140110876A (ko) * | 2011-12-29 | 2014-09-17 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
US9883185B2 (en) | 2011-12-29 | 2018-01-30 | Lg Electronics Inc. | Method for encoding and decoding image based on entry point in bitstream and apparatus using same |
US10356414B2 (en) | 2011-12-29 | 2019-07-16 | Lg Electronics Inc. | Video encoding and decoding method and apparatus using same |
KR102072165B1 (ko) * | 2011-12-29 | 2020-01-31 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20200013793A (ko) * | 2011-12-29 | 2020-02-07 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
US10742985B2 (en) | 2011-12-29 | 2020-08-11 | Lg Electronics Inc. | Video encoding and decoding method based on entry point information in a slice header, and apparatus using same |
KR102158629B1 (ko) * | 2011-12-29 | 2020-09-22 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR102657113B1 (ko) | 2011-12-29 | 2024-04-15 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
WO2013100694A1 (ko) * | 2011-12-29 | 2013-07-04 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR102331361B1 (ko) * | 2011-12-29 | 2021-12-01 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20210144943A (ko) * | 2011-12-29 | 2021-11-30 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20210041102A (ko) * | 2011-12-29 | 2021-04-14 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
US11240506B2 (en) | 2011-12-29 | 2022-02-01 | Lg Electronics Inc. | Video encoding and decoding method based on entry point information in a slice header, and apparatus using same |
KR102375821B1 (ko) | 2011-12-29 | 2022-03-16 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20220038184A (ko) * | 2011-12-29 | 2022-03-25 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR102417101B1 (ko) | 2011-12-29 | 2022-07-05 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20220095257A (ko) * | 2011-12-29 | 2022-07-06 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR102500639B1 (ko) | 2011-12-29 | 2023-02-16 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
KR20200110472A (ko) * | 2011-12-29 | 2020-09-23 | 엘지전자 주식회사 | 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치 |
US11711549B2 (en) | 2011-12-29 | 2023-07-25 | Lg Electronics Inc. | Video encoding and decoding method based on entry point information in a slice header, and apparatus using same |
KR101172346B1 (ko) | 2012-02-03 | 2012-08-14 | 이노뎁 주식회사 | 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20100138425A (ko) | 2010-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101038531B1 (ko) | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 | |
CN101090495B (zh) | 处理视频数据的方法和系统 | |
KR101523452B1 (ko) | 비디오 코딩에서 블록에 대한 스캐닝 순서에 기초하여 비디오 블록 내의 마지막 유효 계수의 포지션을 코딩 | |
KR101552027B1 (ko) | 비디오 코딩 시 비디오 블록의 마지막 유효 계수의 포지션의 별도 코딩 | |
US9106913B2 (en) | Coding of transform coefficients for video coding | |
JP5746169B2 (ja) | 大きいサイズの変換単位を利用した映像符号化、復号化方法及び装置 | |
KR101874945B1 (ko) | 향상된 엔트로피 인코딩 및 디코딩을 위한 방법 및 장치 | |
KR101106086B1 (ko) | 부호화 장치 및 부호화 방법 | |
CN107710759B (zh) | 转换系数编解码的方法及装置 | |
US10701362B2 (en) | High throughput significance map processing for CABAC in HEVC | |
US9332283B2 (en) | Signaling of prediction size unit in accordance with video coding | |
US7486211B2 (en) | Method and system for entropy coding | |
CN103329522B (zh) | 用于使用字典编码视频的方法 | |
US20130187796A1 (en) | Lossless coding technique for cabac in hevc | |
KR20190000920A (ko) | 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치 | |
KR100949475B1 (ko) | 스캔 패턴 결정 장치 및 이를 이용한 영상 데이터 부호화방법과 그 장치, 그리고, 이를 이용한 영상 데이터 복호화방법과 그 장치 | |
CN101282480A (zh) | 用于先进视频标准的先进宏块熵编码 | |
WO2014160378A1 (en) | Multi-frame compression | |
KR20100089546A (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
JP2009017472A (ja) | 画像復号装置および画像復号方法 | |
WO2013065265A1 (ja) | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム | |
Karwowski | Improved adaptive arithmetic coding for HEVC video compression technology | |
CN116095340B (en) | Encoding and decoding method, device and equipment | |
JP3712919B2 (ja) | 符号化データ再圧縮方法および符号化データ復元方法ならびにコンピュータにそれらの方法を実行させるためのプログラムを記録した記録媒体 | |
CN114979656A (zh) | 视频编解码方法、装置、计算机可读介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140312 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160418 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |