KR20130085977A - 변환 유닛 내의 다수 부호 비트 은폐 - Google Patents

변환 유닛 내의 다수 부호 비트 은폐 Download PDF

Info

Publication number
KR20130085977A
KR20130085977A KR1020130005192A KR20130005192A KR20130085977A KR 20130085977 A KR20130085977 A KR 20130085977A KR 1020130005192 A KR1020130005192 A KR 1020130005192A KR 20130005192 A KR20130005192 A KR 20130005192A KR 20130085977 A KR20130085977 A KR 20130085977A
Authority
KR
South Korea
Prior art keywords
coefficients
coefficient
bitstream
zero
sign
Prior art date
Application number
KR1020130005192A
Other languages
English (en)
Other versions
KR101538837B1 (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 리서치 인 모션 리미티드
Publication of KR20130085977A publication Critical patent/KR20130085977A/ko
Application granted granted Critical
Publication of KR101538837B1 publication Critical patent/KR101538837B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking

Landscapes

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

Abstract

변환 유닛에 대한 계수를 인코딩 또는 디코딩하기 위하여 비디오 데이터를 인코딩 및 디코딩하는 방법이 기재된다. 특히, 넌-제로 계수에 대한 부호 비트는 부호 비트 은폐를 이용하여 인코딩된다. 계수의 2이상의 세트는 변환 유닛에 대하여 정의되고 부호 비트는 각 세트에 대하여 은페될 수 있고, 임계치 테스트를 만족한다. 세트는 멀티레벨 시그니피컨스 맵 인코딩 및 디코딩에 사용되는 계수 그룹에 대응할 수 있다.

Description

변환 유닛 내의 다수 부호 비트 은폐{MULTIPLE SIGN BIT HIDING WITHIN A TRANSFORM UNIT}
저작권 공고
본 문서 및 첨부된 자료의 개시물의 일부는 저작권에 대한 청구가 이루어지는 자료를 포함한다. 저작권 소유자는 이것이 특허청 파일 또는 기록에 나타나기 때문에 특허 문서 또는 특허 개시물 중의 어느 것에 의해 팩시밀리 재생에 대하여 반대할 수 없지만, 다른 저작권은 보유한다.
본 출원은 일반적으로 데이터 압축에 관한 것으로, 특히 잔여 비디오 데이터(residual video data)를 인코딩 및 디코딩할 때 부호 비트 은폐 방법 및 장치에 관한 것이다.
데이터 압축이 다수의 컨텍스트에서 발생한다. 이는 정보를 효율적으로 저장, 송신 및 재생하기 위하여 통신 및 컴퓨터 네트워크에서 공통으로 사용된다. 이는 이미지, 오디오 및 비디오의 인코딩에서 특정한 애플리케이션을 찾는다. 비디오는 각 비디오 프레임에 요구되는 많은 양의 데이터 및 인코딩 및 디코딩이 종종 발생할 필요가 있는 속도 때문에 데이터 압축에 큰 문제를 제공한다. 비디오 인코딩을 위한 현재의 최신식 기술은 ITU-T H.264/AVC 비디오 코딩 표준이다. 이는 메인 프로파일, 베이스라인 프로파일 등을 포함하는 상이한 애플리케이션을 위한 다수의 상이한 프로파일을 정의한다. 차세대 비디오 인코딩 표준은 HEVC(high efficiency video coding)이라 불리우는 MPEG-IUT의 공동 시작을 통해 현재 개발되고 있다. 시작은 궁극적으로 MPEG-H라 불리우는 비디오 코딩 표준을 유발할 수 있다.
블록 기반 코딩 프로세스를 이용하는 H.264를 포함하는 이미지 및 비디오를 인코딩/디코딩하는 다수의 표준이 존재한다. 이들 프로세스에서, 이미지 또는 프레임은 블록, 일반적으로 4×4 또는 8×8로 분할되고, 블록은 스펙트럼으로 계수로 변환되고, 양자화되고, 엔트로피 인코딩된다. 많은 경우, 변환되는 데이터는 실제 픽셀 데이터가 아니지만 예측 동작을 따르는 잔여 데이터이다. 예측은 프레임/이미지 내의 인트라 프레임, 즉, 블록-대-블록, 또는 인터 프레임, 즉, 프레임 사이(움직임 예측이라 함)일 수 있다. MPEG-H는 또한 이들 특징을 갖는 것으로 예측된다.
잔여 데이터를 스펙트럼으로 변환하면, 이들 표준의 많은 것은 DCT(discrete cosine transform) 또는 그 임의의 변형의 사용을 규정한다. 그 결과적인 DCT 계수는 양자화기를 이용하여 양자화되어 양자화된 변환 도메인 계수 또는 인덱스를 생성한다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스(때때로 "변환 유닛"이라 함)가 특정한 컨텍스트 모델을 이용하여 엔트로피 인코딩된다. H.264/AVC 및 MPEG-H에 대한 현재의 개발 동작에서, 양자화된 변환 계수는, (a) 변환 유닛에서 마지막 넌-제로 계수의 위치를 지시하는 마지막 중요 계수 위치를 인코딩하고, (b) 넌-제로 계수를 포함하는 (마지막 중요 계수 위치 이외의) 변환 유닛 내의 위치를 지시하는 시그니피컨스 맵을 인코딩하고, (c) 넌-제로 계수의 크기를 인코딩하고, 및 (d) 넌-제로 계수의 부호를 인코딩함으로써 인코딩된다. 양자화된 변환 계수의 인코딩은 종종 비트스트림 내의 인코딩 데이터의 30-80%를 차지한다.
변환 유닛은 일반적으로 N×N이다. 임의의 실시예에서, 8×32, 및 32×8 등의 비정사각형 사이즈를 포함하는 다른 사이즈가 가능하지만, 일반적인 사이즈는 4×4, 8×8, 16×16, 및 32×32를 포함한다. 블록 내의 각 넌-제로 계수의 부호는 각 넌-제로 계수에 대한 하나의 부호 비트를 이용하여 인코딩된다.
본 출원은 부호 비트 은폐를 이용하여 잔여 비디오 데이터를 인코딩 및 디코딩하는 방법 및 인코더/디코더를 기재한다. 임의의 실시예에서, 인코더 및 디코더는 중요 계수 플래그를 인코딩하기 위한 멀티레벨 시그니피컨스 맵(multi-level significant map)을 사용할 수 있다. 변환 유닛 내의 계수의 각 서브세트에 대한 적어도 하나의 계수의 부호 비트는 패리티(parity) 기술을 이용하여 은폐될 수 있다. 임의의 경우, 계수의 서브세트는 예를 들어 시그니피컨스 맵 인코딩 및 디코딩에 사용되는 멀티레벨 맵에 사용되는 계수 그룹에 대응한다. 적어도 하나의 경우에서, 멀티레벨 맵은 16×16 및 32×32 TU 등의 더 큰 변환 유닛과 함께 사용된다. 임의의 경우, 멀티레벨 맵은 8×8 TU, 비정사각형 TU 및 다른 사이즈의 TU와 함께 사용될 수 있다. 부호 비트 은폐 기술은 임계수보다 많은 넌-제로 계수를 포함하는 계수의 서브세트에 사용될 수 있다. 임의의 실시예에서, 서브세트 기반 부호 비트 은폐 기술은 멀티레벨 시그니피컨스 맵 인코딩을 사용하지 않더라도, 특히, TU의 중요 계수 인코딩이 중요 계수 플래그의 서브세트를 위해 모듈 방식으로 구현되더라도 TU와 함께 사용될 수 있다.
일 형태에서, 본 출원은 변환 유닛에 대한 계수를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법을 기재하고, 상기 비트스트림은 상기 변환 유닛에 대한 부호 비트의 2이상의 세트를 인코딩하고, 각 세트는 상기 변환 유닛에 대한 계수의 각 세트에 대응하고, 각각의 부호 비트는 각각의 세트 내의 대응 넌-제로 계수의 부호를 지시한다. 방법은, 상기 부호 비트의 2 이상의 세트의 각각에 대하여, 상기 부호 비트의 세트에 대응하는 각각의 세트에 대한 계수의 절대값을 합산하여 패리티 값을 얻는 단계, 및 상기 패리티 값이 짝수 또는 홀수인지에 기초하여 상기 각각의 세트 내에서 상기 계수 중의 하나에 부호를 할당하는 단계를 포함한다.
다른 형태에서, 본 출원은 변환 유닛에 대한 계수에 대한 부호 비트를 인코딩함으로써 비디오의 비트스트림을 인코딩하는 방법을 기재한다. 방법은, 상기 변환 유닛에 대한 계수의 2 이상의 세트의 각각에 대하여, 상기 세트에 대한 계수의 절대값을 합산하여 패리티 값을 얻는 단계, 상기 세트 내의 계수 중의 하나의 부호가 상기 패리티 값에 대응하지 않는 것을 결정하는 단계, 및 상기 패리티 값을 변경하여 상기 계수 중의 하나의 부호에 대응하기 위하여 상기 세트 내의 계수의 레벨을 1만큼 조절하는 단계를 포함한다.
또 다른 형태에서, 본 출원은 이러한 인코딩 및 디코딩을 구현하도록 구성되는 인코더 및 디코더를 기재한다.
또 다른 형태에서, 본 출원은, 컴퓨터 실행가능 명령을 저장하는 비일시적 프로세서 판독가능 매체로서, 실행될 때 프로세서가 기재된 인코딩 또는 디코딩 방법을 수행하도록 구성하는 비일시적 프로세서 판독가능 매체를 기재한다.
본 출원의 다른 형태 및 특징은 첨부된 도면을 참조하여 다음의 예의 설명을 통해 당업자에 의해 이해될 것이다.
본 출원의 실시예를 나타내는 첨부된 도면을 참조하여 설명한다.
도 1은 비디오를 인코딩하는 인코더의 블록도.
도 2는 비디오를 디코딩하는 디코더의 블록도.
도 3은 16×16 변환 유닛에 대한 멀티레벨 스캔 순서의 예를 나타내는 도면.
도 4는 역 그룹 레벨 스캔 순서로 넘버링된 계수 그룹으로 파티션된 예시적인 16×16 변환 유닛을 나타내는 도면.
도 5는 계수 그룹 중의 4개의 그룹이 부호 비트 은폐를 위해 형성되는 변환 유닛의 일예를 나타내는 도면.
도 6은 부호 비트 은폐를 위한 계수 그룹의 그룹핑의 또 다른 예를 나타내는 도면.
도 7은 부호 비트 은폐를 위한 계수 그룹의 그룹핑의 또 다른 예를 나타내는 도면.
도 8은 부호 비트 은폐를 위한 계수의 세트를 동적으로 형성하는 예를 나타내는 도면.
도 9은 부호 비트 은폐를 위한 예시적인 프로세스의 플로우챠트.
도 10는 인코더의 예시적인 실시예의 간략화된 블록도.
도 11는 디코더의 예시적인 실시예의 간략화된 블록도.
유사한 참조 번호는 상이한 도면에서 유사한 구성요소를 지칭하는데 사용된다.
다음의 설명에서, 임의의 예시적인 실시예가 비디오 코딩을 위한 H.264 표준 및 개발중인 MPEG-H 표준을 참조하여 설명한다. 당업자는 본 출원이 H.264/AVC 또는 MPEG-H에 제한되지 않고 가능한 미래 표준, 멀티뷰 코딩 표준, 스케일러블 비디오 코딩 표준 및 재구성가능한 비디오 코딩 표준을 포함하는 다른 비디오 코딩/디코딩 표준에 적용가능함을 이해할 것이다.
다음의 설명에서, 비디오 또는 이미지를 참조할 때, 프레임, 픽쳐, 슬라이스, 타일 및 사각 슬라이스 그룹 등의 용어는 혼용될 수 있다. 당업자는, H.264 표준의 경우, 프레임이 하나 이상의 슬라이스를 포함할 수 있다는 것을 인식할 것이다. 소정의 인코딩/디코딩 동작은 적용가능한 이미지 또는 비디오 코딩 표준의 특정 요구사항 또는 용어에 따라, 프레임별로 수행되고, 일부는 슬라이스 별로 수행되고, 일부는 픽쳐별로 수행되고, 일부는 타일별로 수행되고, 일부는 사각 슬라이스 그룹별로 수행될 수 있다는 것을 인식할 것이다. 임의의 특정한 실시예에서, 적용가능한 이미지 또는 비디오 코딩 표준은 후술하는 동작이 경우에 따라 프레임 및/또는 슬라이스 및/또는 픽쳐 및/또는 타일 및/또는 사각 슬라이스 그룹과 관련하여 수행되는지를 결정할 수 있다. 따라서, 당업자는 본 개시물에 비추어, 여기에 기재된 특정 동작 또는 프로세스 및 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹에 대한 특정한 참조는 프레임, 슬라이스, 픽쳐, 타일, 사각 슬라이스 그룹 또는 주어진 실시예에 대한 것 중의 일부 또는 모두에 적용될 수 있다. 이것은 이하의 설명에 비추어 명백한 바와 같이 변환 유닛, 코딩 유닛, 코딩 유닛의 그룹 등에 적용된다.
본 출원은 변환 유닛의 넌-제로 계수에 대한 부호 비트를 인코딩하고 디코딩하는 예시적인 프로세스 및 장치를 기재한다. 넌-제로 계수는 시그니피컨스 맵에 의해 식별된다. 시그니피컨스 맵은 계수의 변환 유닛 또는 정의 유닛(예를 들어 몇개의 변환 유닛, 변환 유닛의 일부 또는 코딩 유닛)에 맵핑 또는 대응하는 블록, 매트릭스, 그룹, 플래그의 세트이다. 각각의 플래그는 변환 유닛 또는 특정 유닛 내의 대응 위치가 넌-제로 계수를 포함하는지의 여부를 지시한다. 기존의 표준에서, 이들 플래그는 중요 계수 플래그라 할 수 있다. 기존의 표준에서, 스캔 순서에서 DC 계수로부터 마지막 중요 계수로 계수당 하나의 플래그가 존재하고, 플래그는, 대응하는 계수가 제로이면 제로이고 대응하는 계수가 넌-제로이면 1로 설정되는 비트이다. 여기에 사용되는 용어"시그니피컨스 맵"은 이하의 설명으로부터 이해되는 바와 같이 변환 유닛에 대한 중요 계수 플래그의 매트릭스 또는 정렬 세트 또는 애플리케이션의 컨텍스트로부터 명백한 계수의 정의 유닛을 지칭하는 것으로 의도된다.
다음의 설명을 비추어 보면, 멀티레벨 인코딩 및 디코딩 구조는 소정의 상황에서 적용될 수 있고, 이들 상황은 비디오 콘텐츠 타입(시퀀스, 픽쳐 또는 슬라이스 헤드로 식별되는 자연 비디오 또는 그래픽)과 같은 사이드 정보로부터 결정될 수 있다. 예를 들어, 2레벨은 자연 비디오에 사용되고, 3레벨은 (일반적으로 더 드문) 그래픽에 사용될 수 있다. 또 다른 가능성은 시퀀스, 픽쳐, 또는 슬라이스 헤더 중의 하나 내의 플래그를 제공하여 구조가 1, 2, 3 레벨을 갖는지를 지시하여 본 콘텐츠에 대한 가장 적절한 구조를 선택할 유연성을 인코더에 허용하는 것이다. 또 다른 실시예에서, 플래그는 레벨의 수와 연관될 수 있는 콘텐츠 타입을 나타낼 수 있다. 예를 들어, 콘텐츠 타입"그래픽"은 3레벨을 포함할 수 있다.
도 1을 참조하면, 비디오를 인코딩하는 인코더(10)의 블록도가 도시된다. 도 2를 참조하면, 비디오를 디코딩하는 디코더(50)의 블록도가 도시된다. 여기에 기재된 인코더(10) 및 디코더(50)는 각각 하나 이상의 처리 소자 및 메모리를 포함하는 애플리케이션 특정 또는 범용 컴퓨팅 장치 상에서 구현될 수 있다. 인코더(10) 또는 디코더(50)에 의해 수행되는 동작은 경우에 따라 예를 들어 애플리케이션 특정 집적 회로 또는 범용 프로세서에 의해 실행가능한 저장된 프로그램 명령에 의해 구현될 수 있다. 장치는 예를 들어 기본 장치 기능을 제어하는 오퍼레이팅 시스템을 포함하는 추가의 소프트웨어를 포함할 수 있다. 인코더(10) 또는 디코더(50)가 구현될 수 있는 장치 및 플랫폼의 범위는 다음의 설명을 유념한 당업자에 의해 인식될 것이다.
인코더(10)는 비디오 소스(12)를 수신하고, 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 다수의 비디오 압축 표준에 따라 동작하도록 구성될 수 있다. 예를 들어, 인코더(10) 및 디코더(50)는 H.264/AVC를 따를 수 있다. 다른 실시예에서, 인코더(10) 및 디코더(50)는 MPEG-H와 같은 H.264/AVC 표준의 진화를 포함하는 다른 비디오 압축 표준을 따를 수 있다.
인코더(10)는 공간 예측기(21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24) 및 엔트로피 인코더(26)를 포함한다. 당업자에 의해 인식되는 바와 같이, 코딩 모드 선택기(20)는 대상 프레임/슬라이스가 I, P 또는 B 타입인지 및 프레임/슬라이스 내의 특정 코딩 유닛(예를 들어, 매크로블록, 코딩 유닛, 등)이 인터 또는 인트라 코딩되는지간에 비디오 소스에 대한 적절한 코딩 모드를 결정한다. 변환 프로세서(22)는 공간 도메인 데이터에 대한 변환을 수행한다. 특히, 변환 프로세서(22)는 블록 기반 변환을 적용하여 공간 도메인 데이터를 공간 성분으로 변환한다. 예를 들어, 많은 실시예에서, DCT(discrete cosine transform)가 사용된다. DST(discrete sine transform) 또는 다른 것 등의 다른 변환이 임의의 경우에 사용될 수 있다. 블록 기반 변환은 매크로블록 또는 코딩 유닛의 사이즈에 따라 코딩유닛, 매크로블록 또는 서브블록별로 수행된다. H.264 표준에서, 예를 들어, 일반적인 16×16 매크로블록은 16개의 4×4 변환 블록을 포함하고, DCT 프로세스는 4×4 블록에 대하여 수행된다. 임의의 경우, 변환 블록은 8×8일 수 있고, 이는 매크로블록당 4개의 변환 블록이 있다는 것을 의미한다. 다른 경우에, 변환 블록은 다른 사이즈일 수 있다. 임의의 경우, 16×16 매크로블록은 4×4 및 8×8 변환 블록의 비중첩 조합을 포함할 수 있다.
블록 기반 변환을 픽셀 데이터의 블록으로 적용하면 변환 도메인 계수의 세트를 유발한다. 이 컨텍스트 내의 "세트"는 계수가 계수 위치를 갖는 정렬된 세트이다. 임의의 경우, 변환 도메인 계수의 세트는 계수의 "블록" 또는 매트릭스로서 간주될 수 있다. 본 설명에서, "변환 도메인 계수의 세트" 또는 "변환 도메인 계수의 블록"의 구는 혼용되며 변환 도메인 계수의 정렬된 세트를 지시하는 것을 의미한다.
변환 도메인 계수의 세트는 양자화기(24)에 의해 양자화된다. 양자화된 계수 및 관련 정보는 엔트로피 인코더(26)에 의해 인코딩된다.
양자화된 변환 도메인 계수의 블록 또는 매트릭스는 "변환 유닛"(TU)이라 할 수 있다. 임의의 경우, TU는 넌-스퀘어, 예를 들어, NSQT(non-square quadrature transform)일 수 있다.
인트라 코딩 프레임/슬라이스(즉, 타입 I)는 다른 프레임/슬라이스를 참조하지 않고 인코딩된다. 즉, 이들은 시간 예측을 채용하지 않는다. 그러나, 인트라 코딩 프레임은 공간 예측기(21)에 의해 도 1에 도시된 바와 같이 프레임/슬라이스 내의 공간 예측에 의존한다. 즉, 특정 블록을 인코딩할 때, 블록 내의 데이터는 그 프레임/슬라이스에 대하여 이미 인코딩된 블록 내의 인근의 픽셀의 데이터와 비교될 수 있다. 예측 알고리즘을 이용하여, 블록의 소스 데이터는 잔여 데이터로 변환될 수 있다. 변환 프로세서(22)는 잔여 데이터를 인코딩한다. 예를 들어, H.264는 4×4 변환 블록을 위한 9개의 공간 예측 모드를 규정한다. 임의의 실시예에서, 9개의 모드의 각각은 블록을 독립적으로 처리하는데 사용될 수 있고, 레이트 왜곡 최적화는 최상의 모드를 선택하는데 사용된다.
H.264 표준은 또한 움직임 예측/보상의 사용을 규정하여 시간 예측의 이점을 취한다. 따라서, 인코더(10)는 역양자화기(28), 역변환 프로세서(30) 및 디블록킹 프로세서(32)를 포함하는 피드백 루프를 갖는다. 디블록킹 프로세서(32)는 디블록킹 프로세서 및 필터링 프로세서를 포함할 수 있다. 이들 소자는 디코더(50)에 의해 구현되는 디코딩 프로세스를 미러링하여 프레임/슬라이스를 재생한다. 프레임 스토어(34)는 재생된 프레임을 저장하는데 사용된다. 이 방식에서, 움직임 예측은 디코더(50)에서 재구성되는 프레임이 무엇인지에 기초하지만, 인코딩/디코딩에 수반되는 손실있는 압축 때문에 재구성된 프레임과는 다를 수 있는 본래의 프레임에 기초하지 않는다. 움직임 예측기(36)는 유사한 블록을 식별할 목적으로 현재의 프레임에 대한 비교를 위하여 소스 프레임/소스로서 프레임 스토어(34)에 저장된 프레임/슬라이스를 이용한다. 따라서, 움직임 예측이 적용되는 매크로 블록 또는 코딩 블록을 위하여, 변환 프로세서(22)가 인코딩하는 "소스 데이터"는 움직임 예측 프로세스에서 나오는 잔여 데이터이다. 이는, 예를 들어, 기준 프레임에 관한 정보, 공간 변위 또는 "움직임 벡터", 및 기준 블록 및 현재 블록 간의 차(있다면)를 나타내는 잔여 픽셀 데이터를 포함할 수 있다. 기준 프레임 및/또는 움직임 벡터에 관한 정보는 변환 프로세서(22) 및/또는 양자화기(24)에 의해 처리되지 않을 수 있지만, 대신에, 양자화된 계수와 함께 비트스트림의 일부로서 인코딩을 위한 엔트로피 인코더(26)로 공급될 수 있다.
당업자는 비디오 인코더를 구현하는 세부사항 및 가능한 변형을 인식할 것이다.
디코더(50)는 엔트로피 디코더(52), 역양자화기(54), 역변환 프로세서(56), 공간 보상기(57) 및 디블록킹 프로세서(60)를 포함한다. 디블록킹 프로세서(60)는 디블록킹 및 필터링 프로세서를 포함할 수 있다. 프레임 버퍼(58)는 움직임 보상의 적용에서 움직임 보상기(62)에 의해 사용될 재구성된 프레임을 공급한다. 공간 보상기(57)는 이전에 디코딩된 블록으로부터 특정 인트라 코딩 블록에 대한 비디오 데이터를 회복하는 동작을 나타낸다.
비트스트림(14)이 엔트로피 디코더(52)에 의해 수신되고 디코딩되어 양자화된 계수를 회복한다. 사이드 정보는 또한 엔트로피 디코딩 프로세스시 회복될 수 있고, 그 일부는 적용가능하다면, 움직임 보상에 사용하기 위하여 움직임 보상 루프로 공급될 수 있다. 예를 들어, 엔트로피 디코더(52)는 인터 코딩 매크로블록을 위한 기준 프레임 정보 및/또는 움직임 벡터를 회복할 수 있다.
양자화된 계수는 역양자화기(54)에 의해 역양자화되어 변화 도메인 계수를 생성하고, 이 변환 도메인 계수는 역변환 프로세서(56)에 의해 역변환되어 "비디오 데이터"를 재생성한다. 인트라 코딩 매크로블록 또는 코딩 유닛 등의 임의의 경우, 재생성된 "비디오 데이터"는 프레임 내의 이전에 디코딩된 블록에 대하여 공간 보상에 사용하기 위한 잔여 데이터이다. 공간 보상기(57)는 잔여 데이터로부터 비디오 데이트를 생성하고 이전에 디코딩된 블록으로부터 픽셀 데이터를 생성한다. 인터 코딩 매크로블록 또는 코딩 유닛 등의 다른 경우에, 역변환 프로세서(56)로부터 재생성된 "비디오 데이터"는 상이한 프레임으로부터 기준 블록에 대하여 움직임 보상에 사용하기 위한 잔여 데이터이다. 공간 및 이동 보상은 여기에서 "예측 동작"이라 할 수 있다.
움직임 보상기(62)는 특정 인터 코딩 매크로블록 또는 코딩 유닛을 위해 특정된 프레임 버퍼(58) 내에 기준 블록을 위치시킨다. 이것은 인터 코딩 매크로블록 또는 코딩 유닛을 위해 특정된 기준 프레임 정보 및 움직임 벡터에 기초한다. 그 후, 잔여 데이터와의 조합을 위하여 기준 블록 픽셀 데이터를 공급하여 그 코딩 유닛/매크로블록을 위해 재구성된 비디오 데이터에 도달한다.
디블록킹/필터링 프로세스는 디블록킹 프로세서(60)에 의해 지시된 바와 같이 재구성된 프레임/슬라이스에 적용될 수 있다. 디블록킹/필터링 후에, 프레임/슬라이스는 예를 들어 디스플레이 장치 상의 디스플레이를 위하여 디코딩된 비디오 프레임(16)으로서 출력된다. 컴퓨터, 셋탑 박스, DVD, 또는 블루레이 플레이어 등의 비디오 재생 머신 및/또는 모바일 핸드헬드 장치는 출력 장치 상에 디스플레이하기 전에 메모리 내에 디코딩된 프레임을 버퍼링할 수 있다.
MPEG-H 순응 인코더 및 디코더는 이들 동일 또는 유사한 특징 중의 많은 것을 가질 것으로 기대된다.
양자화된 변환 도메인 계수 인코딩 및 디코딩
상술한 바와 같이, 양자화된 변환 도메인 계수의 블록 또는 세트의 엔트로피 인코딩은 양자화된 변환 도메인 계수의 블록 또는 세트에 대한 시그니피컨스 맵(예를 들어, 중요 계수 플래그의 세트)을 인코딩하는 것을 포함한다. 시그니피컨스 맵은 넌-제로 계수가 (DC 위치로부터 마지막 중요 계수 위치로) 어떤 위치에서 나타나는지를 지시하는 블록의 바이너리 맵핑이다. 시그니피컨스 맵은 (수직, 수평, 대각선, 지그재그, 또는 적용가능한 코딩 표준에 의해 규정된 임의의 다른 스캔 순서일 수 있는) 스캔 순서에 따라 벡터로 변환될 수 있다. 스캔은 일반적으로 "역"순으로 수행한다, 즉, 마지막 중요 계수로 시작하여 [0, 0]에서의 상부 좌측 코너의 중요 계수 플래그에 도달될 때까지 역방향으로 중요 맵을 통해 역으로 작동한다. 본 설명에서, 용어 "스캔 순서"는 경우에 따라 플래그, 계수 또는 그룹이 처리되는 순서를 의미하는 것으로 의도되며 구어체로 "역 스캔 순서"라 할 수 있는 순서를 포함할 수 있다.
각 중요 계수 플래그는 적용가능한 컨텍스트 적응 코딩 방식을 이용하여 엔트로피 인코딩된다. 예를 들어, 많은 애플리케이션에서, CABAC(context-adaptive binary arithmetic coding) 방식이 사용될 수 있다.
16×16 및 32×32 시그니피컨스 맵으로, 중요 계수 플래그에 대한 컨텍스트는 (대부분의 경우의) 이웃 중요 계수 플래그 값에 기초한다. 16×16 및 32×32 시그니피컨스 맵에 사용되는 컨텍스트 중에서, [0, 0]에서 비트 위치 및 (임의의 예시적인 구현예에서) 이웃 비트 위치에 전용인 소정의 컨텍스트가 존재하지만, 중요 계수 플래그의 대부분은 이웃 중요 계수 플래그의 누적 값에 의존하는 4개 또는 5개의 컨텍스트 중의 하나를 취한다. 이 경우, 중요 계수 플래그에 대한 정확한 컨텍스트의 결정은 이웃 위치(일반적으로 5개의 위치이지만, 임의의 경우 더 많거나 작을 수 있다)에서의 중요 계수 플래그의 값을 결정하고 합산하는 것에 의존한다.
이들 넌-제로 계수에 대한 중요 계수 레벨이 인코딩될 수 있다. 일 구현예에서, 레벨은 1보다 큰 절대값 레벨을 갖는 넌-제로 계수의 맵을 먼저 인코딩함으로써 인코딩될 수 있다. 그 후, 다른 맵은 2보다 큰 레벨을 갖는 넌-제로 계수의맵을 인코딩함으로써 인코딩된다. 그 후, 2보다 큰 절대값을 갖는 계수 중의 임의의 값 또는 레벨이 인코딩된다. 임의의 경우, 인코딩된 값은 실제 값 - 3일 수 있다.
넌-제로 계수의 부호가 또한 인코딩된다. 각각의 넌-제로 계수는 넌-제로 계수의 레벨이 네가티브인지 또는 포지티브인지를 나타내는 부호 비트를 갖는다. 변환 유닛 내의 제1 계수에 대한 부호 비트를 은폐하는 제안(Clare, Gordon, 등의 "Sign Data Hiding", JCTVC-G271, 7th Meeting, Geneva, 21-30, 2011년 11월)이 있었다. 이 제안하에서, 변환 유닛 내의 제1 계수의 부호는 변환 유닛 내의 양자화된 계수의 합의 패리티로 인코딩된다. 패리티가 제1 계수의 실제 부호에 대응하지 않는 경우, 인코더는 패리티를 조절하기 위하여 계수 중의 하나의 레벨을 1씩 위로 또는 아래로 조절해야 한다. RDOQ는 어떤 계수가 조절되어야 하고 어떤 방향인지를 결정하는데 사용된다.
일부의 종래의 작업은 멀티레벨 시그니피컨스 맵에 초점을 마추었다. 도시된 멀티레벨 대각선 스캔 순서를 갖는 16×16 변환 유닛(100)을 나타내는 도 3을 참조한다. 변환 유닛(100)은 16개의 연속적인 4×4 계수 그룹 또는 "중요 계수 플래그의 세트"로 분할된다. 각각의 계수 그룹 내에서, 대각선 스캔 순서는 전체 변환 유닛(100)에 걸쳐서라기보다 그룹 내에 적용된다. 세트 또는 계수 그룹은 이 예시적인 구현예에서 대각선 스캔 순서인 스캔 순서로 처리된다. 이 예의 스캔 순서는 "역"스캔 순으로 도시되며, 즉, 스캔 순서는 좌측 하향 대각선 방향으로 하부 우측 계수 그룹으로부터 상부 좌측 계수 그룹을 향하여 진행하는 것으로 도시된다. 임의의 구현예에서, 동일한 스캔 순서가 다른 방향으로 정의될 수 있고, 즉, 우측 상향 대각선 방향의 진행은 인코딩 또는 디코딩시의 적용될 때 "역" 스캔 순으로 적용될 수 있다.
멀티레벨 시그니피컨스 맵의 사용은 어떤 계수 그룹이 넌-제로 중요 계수 플래그를 포함할 것으로 기대될 수 있는지 및 어떤 계수 그룹이 모든 제로 중요 계수 플래그를 포함할지를 나타내는 L1 또는 더 높은 레벨 시그니피컨스 맵의 인코딩을 수반한다. 넌-제로 중요 계수 플래그를 포함하는 것으로 기대될 수 있는 계수 그룹은 인코딩된 자신의 중요 계수 플래그를 갖지만, (이들이 적어도 하나의 넌-제로 중요 계수 플래그를 포함하는 것으로 추정되기 때문에, 이들이 특별한 경우의 예외 때문에 인코딩되는 그룹이 아니면)모든 제로 중요 계수 플래그를 포함하는 계수 그룹은 인코딩되지 않는다. 각각의 계수 그룹은 (그 계수 그룹이 마지막 중요 계수, 상부 좌측 그룹 등을 포함하는 그룹 등의 추청 값의 플래그를 갖는 특별한 경우가 적용되지 않으면) 중요 계수 그룹 플래그를 갖는다.
멀티레벨 시그니피컨스 맵의 사용은 인코딩 및 디코딩을 위한 잔여 데이터의 모듈 처리를 이용한다.
더 큰 TU는 다수의 부호 비트를 은폐할 기회를 제공한다. TU는 넌-제로 계수의 세트로 분할되거나 파티션될 수 있고 부호 비트는 그 세트 내의 넌-제로 계수의 합의 패리티를 이용하여 넌-제로 계수의 각 세트를 위해 은폐될 수 있다. 일 실시예에서, 넌-제로 계수의 세트는 멀티레벨 시그니피컨스 맵에 대하여 정의된 계수 그룹에 대응하도록 만들어질 수 있다.
데이터 타입에 상관 없이 단일 문턱값은 넌-제로 계수의 소정의 세트에 대한 부호 비트를 은폐할지를 결정하는데 사용될 수 있다. 일 예에서, 임계치 테스트는 세트 내의 첫번째 넌-제로 계수 및 마지막 넌-제로 계수 사이의 계수의 수에 기초한다. 즉, 세트 내의 적어도 제1 및 마지막 넌-제로 계수 사이의 임계수의 계수(threshold number of coeffiencts)가 존재하는지에 기초한다. 다른 예에서, 테스트는 세트 내의 적어도 임계수의 넌-제로 계수가 있는지에 기초할 수 있다. 또 다른 실시예에서, 테스트는 임계치를 초과하는 세트 내의 넌-제로 계수의 절대값의 합에 기초할 수 있다. 또 다른 실시예에서, 이들 테스트의 조합이 적용될 수 있고, 즉, 세트 내의 적어도 최소수의 계수가 존재하고 계수의 누적 절대값이 임계치를 초과해야 한다. 이들 임계치 테스트에 대한 변형이 또한 채용될 수 있다.
16×16 변환 유닛(120)의 예를 나타내는 도 4를 참조한다. 변환 유닛(120)은 4×4 계수 그룹, 즉, 16개의 계수 세트로 분할된다. 계수 그룹은 처리 순서, 예를 들어 역 대각선 스캔 순서로 1, 2, 3, ..., 16으로 넘버링된다.
제1 실시예에서, 각각의 계수 그룹은 부호 비트 은폐를 목적으로 하는 계수의 세트이다. 즉, 각각의 계수 그룹은 임계치에 대하여 테스트되어 계수 그룹이 부호 비트 은폐에 적합한지를 결정한다. 상술한 바와 같이, 테스트는 계수 그룹이 그 계수 그룹 내의 첫번째 넌-제로 계수 및 마지막 넌-제로 계수 사이의 적어도 최소수의 계수를 포함하는지일 수 있다.
제2 실시예에서, 부호 비트 은폐를 위한 계수의 세트가 계수 그룹을 그룹핑함으로써 형성된다. 도 5는 계수 그룹이 4개의 계수 세트로 그룹핑된 예를 나타내는 16×16 TU(140)를 나타낸다. 이 예에서, 부호 비트 은폐를 목적으로 하는 계수의 각 세트는 4개의 계수 그룹을 포함한다. 각 세트 내의 4개의 계수 그룹은 스캔 순서에서 연속적인 그룹이다. 예를 들어, 제1 계수 세트(142)는 계수 그룹(16, 15, 14, 13)을 포함한다. 제2 계수 그룹(144)은 계수 그룹(12, 11, 10, 9)을 포함한다. 제3 계수 그룹(146)은 계수 그룹(8, 7, 6, 5)을 포함한다. 마지막으로, 제4 계수 그룹(148)은 계수 그룹(4, 3, 2, 1)을 포함한다. 이 실시예에서, 부호 비트는 각 계수 세트에 대하여 은폐될 수 있다. 즉, TU(140)마다 4개의 부호 비트까지 은폐될 수 있다.
각 계수 세트(142, 144, 146, 148)에 대하여, 제1 및 마지막 넌-제로 계수 사이의 계수의 수(또는 넌-제로 계수의 수 또는 이들 계수의 누적 총값)가 임계치에 대하여 테스트되어 그 세트에 대한 부호 비트를 은폐할지를 결정한다. 세트 내의 계수의 절대값의 합의 패리티는 부호 비트가 은폐되는 메가니즘이다. 패리티가 은폐될 부호에 대응하지 않으면, 패리티는 세트 내의 계수 중의 하나의 레벨을 조절함으로써 조절된다.
도 6은 16×16 TU(150)로 부호 비트 은폐를 위한 계수의 세트의 제3 실시예를 나타낸다. 이 실시예에서, 세트는 계수 그룹에 기초하여 다시 형성되지만, 세트는 동일한 수의 계수 또는 계수 그룹을 반드시 포함하지 않는다. 예를 들어, 이 도면에서는, 5개의 계수 세트가 정의된다. 제1 세트(152)는 계수 그룹(1 내지 6)을 포함한다. 제2 세트(154)는 4개의 계수 그룹(7, 8, 9, 10)을 포함한다. 제3 세트(156)는 계수 그룹(11, 12, 13)을 포함한다. 제4 세트(158)는 계수 그룹(14 및 15)을 포함한다. 제5 세트(159)는 상부 좌측 계수 그룹(16)을 포함한다. 본 실시예는 더 적은 넌-제로 계수가 존재할 것 같은 변환 유닛(150)의 영역 내의 더 큰 계수 세트 및 넌-제로 계수가 더 일반적인 변환 유닛(150)의 영역 내의 더 작은 계수 세트를 제공하는 것을 인식할 것이다. 상기 실시예는 계수 그룹 구조물이 이들 TU에 적용되는 한 8×8 TU 사이즈 뿐만 아니라 32×32 또는 더 큰 TU 사이즈에 적용될 수 있다.
도 7은 8×8 변환 유닛(160) 내의 부호 비트 은폐를 위한 계수 세트는 계수 그룹 구조물에 부착되지 않고 형성되는 제4 실시예를 나타낸다. 8×8 변환 유닛은 시그니피컨스 맵 인코딩의 목적으로 계수 그룹 파티션되거나 되지 않을 수 있다. 임의의 이벤트에서, 이 실시예에서, 변환 유닛 대각선 스캔은 부호 비트 인코딩 및 은폐를 위해 계수를 처리하는데 사용된다. 이 경우, 계수 세트가 형성되어 스캔 순서에서 연속적인 계수를 그룹핑한다. 예를 들어, 이 도면에서, 변환 유닛(160)은 4개의 계수 세트로 그룹핑되고, 그 각각의 세트는 스캔 순서에서 16개의 연속적인 계수를 포함한다. 그룹은 도 7에서 162, 164, 166 및 168로 라벨링된다.
또 다른 실시예에서, 계수 세트는 스캔 순서로 부착되지 않을 수 있다. 즉, 각각의 세트는 변환 유닛 내의 더 높은 주파수 위치로부터의 임의의 계수 및 변환 유닛 내의 더 낮은 주파수 위치로부터의 임의의 계수를 포함할 수 있다. 이들 세트 내의 모든 계수는 스캔 순서에서 서로 반드시 인접하지 않을 수 있다.
도 8은 계수 그룹 구조물 및 스캔 순서를 이용하여 16×16 변환 유닛(170) 내의 부호 비트 은폐를 위한 계수 세트가 동적으로 형성되는 제5 실시예를 나타낸다. 이 실시예에서, 변환 유닛 사이즈 및 스캔 순서에 기초하여 미리 정의된 고정된 계수 세트보다는, 인코더 및 디코더는 스캔 순서를 따르고 임계값이 충족될 때까지 임계치에 대하여 어떤 품질이 측정되는지를 트랙킹함으로써 세트를 형성한다. 일단 임계치가 충족되면, 인코더 또는 디코더가 처리되는 계수 그룹에 대하여 부호 비트가 은폐된다.
일 예로서, 도 8은 계수 그룹 [2, 2] 내의 마지막 중요 계수를 나타낸다. 스캔 순서로, 인코더 및 디코더는 계수 그룹 [1, 3], [3, 0] 및 [2, 1]로 이동한다. 계수 그룹 [2, 1] 내의 계수를 처리하는 동안, 임계치가 충족된다. 따라서, 계수 그룹 [2, 1] 내의 역 스캔 순서로 처리될 마지막 넌-제로 계수에 대한 부호 비트(그룹 내의 최상부 좌측 넌-제로 계수)는 마지막 중요 계수로부터 현재의 계수 그룹 [2,1] 내의 모든 계수까지 계수의 누적 절대값의 패리티 내에 은폐된다. 이 예에서의 임계치 테스트는 최소수의 넌-제로 계수의 존재 또는 계수의 절대치가 임의의 임계치를 초과하는지에 기초할 수 있다. 기준 번호(174)는 특정한 계수 그룹 내의 "마지막" 또는 상부 최자측 계수에 대하여 부호 비트 은폐 동작을 지시한다.
제6 실시예에서, 부호 비트 은폐는 계수 그룹에 기초하여 수행되고, 계수 그룹이 부호 비트 은폐에 적합한지를 결정하는데 사용되는 기준은 이전에 디코딩된 계수 그룹에 따라 동적으로 조절된다. 일 예로서, 오른쪽의 계수 그룹 또는 하부의 계수 그룹이 넌-제로 계수를 가지면, 최소 2개의 넌-제로 계수를 포함하는 한 현재의 계수 그룹은 부호 비트 은폐에 적합한 것으로 결정된다. 상기 실시예의 일부에서 설명하는 바와 같이, 그 계수 그룹 내의 첫번째 넌-제로 계수 및 마지막 넌-제로 계수 사이의 적어도 최소수의 계수를 포함하면 계수 그룹은 또한 적절한 것으로 결정될 수 있다.
상술한 실시예의 일부에서, 부호 비트는 다른 계수 그룹 내의 계수에 의존하는 패리티 값에 기초하여 하나의 계수 그룹 내에 은폐될 수 있다. 즉, 하나의 계수 그룹 내의 계수의 부호값은 또 다른 계수 그룹 내의 계수로의 레벨 변화에 의해 패리티 내에 은폐될 수 있다.
또한, 상술한 실시예의 일부에서, 계수 세트 내에 은폐된 부호 비트는 움직임 벡터 차 플래그(예를 들어, mvd_sign_flag)처럼 상이한 신택스 요소로부터일 수 있다.
인코더측에서, 패리티 값이 부호에 대응하지 않는 경우 부호 비트를 은폐하기 위하여 어떤 계수를 조절할지에 관한 결정이 이루어진다. 패리티 값이 조절될 필요가 있으면, 계수 레벨은 패리티를 변경하기 위하여 1만큼 증가되거나 감소되어야 한다.
일 실시예에서, 계수 레벨을 조절하는 프로세스의 제1 단계는 검색 범위, 즉, 스캔 순서에서 시작 위치 및 종료 위치를 결정하는 것이다. 이 범위 내의 계수는 평가되고 그 중 하나가 선택되어 변경된다. 하나의 예시적인 실시예에서, 검색 범위는 스캔 순서에서 첫번째 넌-제로 계수로부터 마지막 계수까지일 수 있다.
멀티레벨 시그니피컨스 맵의 사용으로, 서브세트에 대한 검색 범위에 대한 종료 위치는 변경되어 블록 레벨 정보를 이용할 수 있다. 특히, 하나의 서브셋이 전체 TU 내의 가장 마지막 넌-제로 계수(소위 글로벌 마지막 또는 마지막 중요 계수)를 포함하면, 검색 범위는 첫번째 넌-제로 계수로서 마지막 넌-제로 계수까지 확립될 수 있다. 다른 서브세트에 대하여, 검색 범위는 첫번째 넌-제로 계수로부터 현재 서브 블록의 종료까지의 범위로 확장될 수 있다.
일 실시예에서, 시작 위치는 첫번째 넌-제로 양자화 계수 앞의 양자화되지 않은 계수를 조건적으로 포함하도록 확장될 수 있다. 특히, 양자화 전의 모든 계수를 고려한다. 은폐될 부호와 동일한 부호를 갖는 양자화되지 않은 계수는 검색 내에 포함될 수 있다. 위치 제로로부터 첫번째 넌-제로 양자화 계수의 위치로의 양자화되지 않은 계수에 대하여, 제로로부터 1로의 양자화 계수를 변경하는 비용은 검색에서 평가되고 테스팅된다.
계수 레벨을 조절하는 프로세스에서의 또 다른 문제는 조절의 영향을 평가하는데 사용되는 비용 산출을 정의하는 것이다. 계산 복잡성이 문제이면, 비용은 왜곡에 기초할 수 있고 레이트가 고려되지 않을 수 있고, 이 경우, 검색은 왜곡을 최소화하는 것이다. 반면에, 계산 복잡성이 무시할 문제가 아니며, 비용은 레이트 및 왜곡을 포함하여 레이트 왜곡 비용을 최소화할 수 있다.
RDDQ가 가능하면, RDOQ는 레벨을 조절하는데 사용될 수 있다. 그러나, 많은 경우, RDOQ의 계산 복잡성이 바람직하지 않을 수 있고 RDOQ가 가능하지 않을 수 있다. 따라서, 임의의 실시예에서, 간략화된 레이트 왜곡 분석이 인코더에서 적용되어 부호 비트 은폐를 구현할 수 있다.
세트 내의 첫번째 넌-제로 계수 및 세트 내의 마지막 넌-제로 계수 사이의 각 계수가 1만큼의 계수 증가 및 1만큼의 계수 감소로부터 대략적으로 왜곡을 산출하여 테스트될 수 있다. 일반적인 항에서, u의 계수 값은 u+δ의 실제값을 갖는다. 왜곡은 (δq)2에 의해 주어진다. 그 계수(u)가 1만큼 증가하여 u+1이 되면, 그 결과적인 왜곡은 다음과 같이 추정된다.
q2(1-2δ)
계수(u)가 1만큼 감소하여 u-1이 되면, 그 결과적인 왜곡은 다음과 같이 추정된다.
q2(1+2δ)
인터코딩의 경우, RDOQ가 오프일 때 양자화 왜곡(δ)이 범위 [-1/6 내지 +5/6] 내에 있다는 것을 인식할 것이다. 인트라 코딩 블록의 경우, RDOQ가 오프일 때 양자화 왜곡(δ)이 범위 [-1/3 내지 +2/3] 내에 있다. RDOQ가 온이면, δ의 범위는 변한다. 그러나, δ의 범위에 관계없이 상기 왜곡 증가의 산출은 여전히 유효하다.
인코더는 또한 로직 룰의 세트를 이용하여 다양한 계수에 대한 레이트 비용, 즉, 소정의 레이트 비용 메트릭에 관하여 대략적으로 추정할 수 있다. 예를 들어, 일 실시예에서, 소정의 레이트 비용 메트릭은 다음을 포함할 수 있다.
u+1(u≠0 및 u≠-1) -> 0.5 비트
u-1(u≠0 및 u≠+1) -> -0.5 비트
u=1 또는 -1 및 0으로 변경 -> -1-0.5-0.5 비트
u=0 또는 1 및 -1으로 변경 -> 1+0.5+0.5 비트
여기서, 부호 플래그의 비용은 1비트로 추정되고, 중요 계수 플래그의 비용은 0.5 비트로 추정되고, u로부터 u+1로의 비용 증가는 0.5 비트로 추정될 수 있다.
다른 규칙 또는 추정치가 다른 실시예에서 사용될 수 있다.
계수 그룹 기반 부호 비트 은폐로 비디오 데이터를 디코딩하는 예시적인 프로세스(200)를 나타내는 도 9를 참조한다. 프로세스(200)는 상술한 제2 실시예에 기초한다. 설명을 검토한 후에, 설명한 다른 실시예를 구현하는 프로세스(200)의 변형 및 변경이 당업자에 의해 인식될 것이다.
단계(202)에서 임계치가 설정된다. 임의의 실시예에서, 이 임계치는 디코더 내에서 미리 결정되거나 미리 구성될 수 있다. 다른 실시예에서, 이 값은 인코딩 비디오 데이터의 비트스트림으로부터 추출될 수 있다. 예를 들어, 임계치는 비트스트림 내의 다른 위치 또는 픽쳐 헤더 내에 있을 수 있다.
단계(204)에서, 디코더는 스캔 순서에서 현재의 계수 그룹, 즉, 계수 세트 내의 첫번째 넌-제로 위치 및 현재 계수 그룹 내의 마지막 넌-제로 위치를 식별한다. 스캔 순서에서 계수 그룹 내의 첫번째 및 마지막 넌-제로 계수 사이의 계수의 수를 결정한다.
단계(206)에서, 디코더는 비트스트림으로부터 부호 비트를 디코딩한다. 계수 그룹 내의 상부 최좌측 넌-제로 계수(역 스캔 순서에서 마지막 넌-제로 계수)를 제외하고 계수 그룹 내의 모든 넌-제로 계수에 대한 부호 비트를 디코딩한다. 부호 비트는 각각의 넌-제로 계수에 적용된다. 예를 들어, 제로의 부호 비트가 포지티브이고 1의 부호 비트가 네가티브인 적용가능한 컨벤션(applicable convention)이면, 1로 설정된 모든 부호 비트에 대하여, 해당하는 계수 레벨이 네가티브가 된다.
단계(208)에서, 디코더는 계수 그룹 내의 스캔 순서에서 첫번째 넌-제로 계수 및 마지막 넌-제로 계수 사이의 계수의 수가 임계치를 초과하는지를 평가한다. 그렇지 않으면, 부호 비트 은폐는 인코더에서 사용되지 않고, 단계(210)에서, 디코더는 상부 최좌측 넌-제로 계수(역 스캔 순서로 마지막)에 대한 부호 비트를 디코딩하고 이를 계수 레벨에 적용한다. 계수의 수가 임계치를 충족하면, 단계(212)에서, 디코더는 계수 그룹 내의 계수의 합의 절대값이 짝수 또는 홀수, 즉, 그 패리티인지를 평가한다. 짝수이면, 상부 최좌측 넌-제로 계수의 부호는 포지티브이고 디코더는 부호를 조절할 필요가 없다. 홀수이면, 상부 최좌측 넌-제로 계수의 부호가 네가티브이고 단계(214)에서 계수가 네가티브가 된다.
단계(216)에서, 디코더는 계수 그룹의 처리를 완료했는지를 결정한다. 그러면, 프로세스(200)는 종료한다. 그렇지 않으면, 단계(218)에서 그룹 스캔 순서에서 다음의 계수 그룹으로 이동하고, 단계(204)로 복귀한다.
다른 실시예에서, 계수 세트의 사이즈는 단일 계수로 감소할 수 있다. 즉, 부호 비트 은폐는 단일 계수 기반 부호 은폐일 수 있다. 이 실시예에서, 각각의 계수는 그 부호 정보가 은폐할지를 알기 위하여 테스트된다. 일 예의 테스트는 계수 레벨의 크기를 소정의 임계치와 비교하는 것이다. 임계치보다 큰 레벨을 갖는 계수는 자신의 부호 비트를 은폐하고, 그렇지 않으면, 컨벤션 부호 비트 인코딩/디코딩이 사용된다.
단일 계수 경우에 부호 비트 은페를 적용하기 위하여, 부호 정보는 계수 레벨의 패리티와 비교된다. 일 예로서, 짝수 패리티는 포지티브 부호에 대응하고 홀수는 네가티브에 대응할 수 있다. 레벨이 부호에 대응하지 않으면 인코더는 레벨을 조절한다. 이 기술은 임계치 이상의 모든 네가티블 레벨은 홀수이고 모든 포지티블 레벨은 짝수임을 암시하는 것으로 인식할 것이다. 하나의 의미에서, 이것이 임계치보다 큰 크기를 갖는 계수에 대한 양자화 단계 사이즈의 변형으로 간주될 수 있다.
부호 비트 은폐를 구현하는 예시적인 신택스가 이하에서 제공된다. 이 예시적인 신택스는 하나의 가능한 구현예이다. 이 예에서, 부호 비트 은폐는 계수 그룹 별로 적용되고 임계치 테스트는 계수 그룹 내의 첫번째 넌-제로 계수로부터 계수 그룹 내의 마지막 넌-제로 계수로의 계수의 수에 기초한다. sign_data_hiding으로 표시된 플래그가 픽쳐 헤더에서 전송되어 부호 비트 은폐가 온되었는지를 지시한다. 가능하면, 헤더는 또한 임계값인 파라미터(tsig)를 포함한다. 예시적인 신택스는 다음과 같다.
Figure pat00001
다음의 의사 코드는 계수 그룹 기반 부호 비트 은폐의 예시적인 구현을 나타낸다.
Figure pat00002
Figure pat00003
인코더(900)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 10을 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 인코딩 애플리케이션(906)을 포함한다. 인코딩 애플리케이션(906)은, 메모리(904)에 저장되고 프로세서(902)가 여기에 기재된 것 등의 동작을 수행하도록 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 애플리케이션(906)은 여기에 기재된 프로세스에 따라 인코딩된 비트스트림을 인코딩하고 출력할 수 있다. 인코딩 애플리케이션(906)은 콤팩트 디스크, 플래쉬 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체에 저장될 수 있다.
디코더(1000)의 예시적인 실시예의 간략화된 블록도를 나타내는 도 11를 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004) 및 디코딩 애플리케이션(1006)을 포함한다. 디코딩 애플리케이션(1006)은, 메모리(1004)에 저장되고 프로세서(1002)가 여기에 기재된 것 등의 동작을 수행하도록 구성하는 명령을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 디코딩 애플리케이션(1006)은 여기에 기재된 바와 같이 적어도 부분적으로 중요 계수 플래그의 재구성에 기초하여 잔여물을 재구성하도록 구성되는 엔트로피 디코더를 포함할 수 있다. 디코딩 애플리케이션(1006)은 콤팩트 디스크, 플래쉬 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등의 컴퓨터 판독가능 매체에 저장될 수 있다.
본 출원에 따른 디코더 및/인코더는 제한없이 서버, 적절하게 프로그래밍된 범용 컴퓨터, 오디오/비디오 인코딩 및 재생 장치, 셋탑 텔레비전 박스, 텔레비전 방송 장치 및 모바일 장치를 포함하는 많은 컴퓨팅 장치에서 구현될 수 있다. 디코더 또는 인코더는 프로세서가 여기에 기재된 기능을 수행하도록 구성하는 명령을 포함하는 소프트웨어에 의해 구현될 수 있다. 소프트웨어 명령은 CD, RAM, ROM, 플래쉬 메모리 등을 포함하는 임의의 적절한 비일시적 컴퓨터 판독가능 메모리에 저장될 수 있다.
여기에 기재된 인코더 및 모듈, 루틴, 프로세스, 스레드(thread) 또는 인코더를 구성하기 위한 기재된 방법/프로세스를 구현하는 다른 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기술 및 언어를 이용하여 실현될 수 있다. 본 출원은 특정한 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 컨벤션, 데이터 구조, 다른 이러한 구현 세부사항에 제한되지 않는다. 당업자는 기재된 프로세스가 휘발성 또는 비휘발성 메모리에 저장된 컴퓨터 실행가능 코드의 일부, ASIC(application-specific integrated chip)의 일부로서 구현될 수 있음을 인식할 것이다.
기재된 실시예의 소정의 응용 및 변형이 가능하다. 그러므로, 상술한 실시예는 설명하기 위한 것으로 제한적이지 않다.

Claims (15)

  1. 변환 유닛에 대한 계수를 재구성함으로써 인코딩된 비디오의 비트스트림을 디코딩하는 방법으로서, 상기 비트스트림은 상기 변환 유닛에 대한 부호 비트의 2이상의 세트를 인코딩하고, 부호 비트의 각 세트는 상기 변환 유닛에 대한 계수의 각 세트에 대응하고, 각각의 부호 비트는 각각의 세트 내의 대응 넌-제로 계수의 부호를 지시하고, 상기 방법은,
    상기 부호 비트의 2 이상의 세트의 각각에 대하여,
    패리티 값을 얻기 위해 상기 부호 비트의 세트에 대응하는 각각의 세트에 대한 계수의 절대값을 합산하는 단계; 및
    상기 패리티 값이 짝수 또는 홀수인지에 기초하여 상기 각각의 세트 내에서 상기 계수 중의 하나에 부호를 할당하는 단계
    를 포함하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  2. 제1항에 있어서,
    상기 계수의 세트의 각각은 각각의 4×4 계수 블록에 대응하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  3. 제1항에 있어서,
    상기 계수의 세트의 각각은 각각의 4×4 계수 블록의 그룹에 대응하고, 상기 각각의 그룹 내의 계수 블록은 블록 레벨 스캔 순서에서 연속적인 블록인,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  4. 제1항에 있어서,
    상기 방법은 스캔 순서에서 제1 넌-제로 계수 및 마지막 넌-제로 계수 사이의 계수의 각 세트 내의 계수의 수가 임계치를 초과하는 것을 결정하는 단계를 더 포함하는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  5. 제1항에 있어서,
    상기 할당하는 단계는, 상기 패리티 값이 홀수이면 계수 중의 하나를 네가티브로 만들고, 상기 패리티 값이 짝수이면 상기 계수 중의 하나가 포지티브로 남아 있는,
    인코딩된 비디오의 비트스트림 디코딩 방법.
  6. 변환 유닛에 대한 계수를 재구성하기 위해 인코딩된 데이터의 비트스트림을 디코딩하는 디코더로서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고, 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하는 명령을 포함하는 디코딩 애플리케이션
    을 포함하는,
    디코더.
  7. 변환 유닛에 대한 계수에 대한 부호 비트를 인코딩함으로써 비디오의 비트스트림을 인코딩하는 방법으로서, 상기 방법은,
    상기 변환 유닛에 대한 계수의 2 이상의 세트의 각각에 대하여,
    패리티 값을 얻기 위해 상기 세트에 대한 계수의 절대값을 합산하는 단계;
    상기 세트 내의 계수 중의 하나의 부호가 상기 패리티 값에 대응하지 않는 것을 결정하는 단계; 및
    상기 계수 중의 하나의 부호에 대응하도록 상기 패리티 값을 변경하기 위하여 상기 세트 내의 계수의 레벨을 1만큼 조절하는 단계
    를 포함하는,
    비디오의 비트스트림 인코딩 방법.
  8. 제7항에 있어서,
    상기 계수의 2 이상의 세트의 각각에 대하여, 상기 계수 중의 하나를 제외하고 상기 세트 내의 모든 넌-제로 계수에 대한 부호 비트를 인코딩하는 단계를 더 포함하는,
    비디오의 비트스트림 인코딩 방법.
  9. 제7항에 있어서,
    상기 계수의 2이상의 세트의 각각은 각각의 4×4 계수 블록을 포함하는,
    비디오의 비트스트림 인코딩 방법.
  10. 제7항에 있어서,
    상기 계수의 세트의 각각은 각각의 4×4 계수 블록의 그룹에 대응하고, 상기 각각의 그룹 내의 계수 블록은 블록 레벨 스캔 순서에서 연속적인 블록인,
    비디오의 비트스트림 인코딩 방법.
  11. 제7항에 있어서,
    상기 방법은 스캔 순서에서 제1 넌-제로 계수 및 마지막 넌-제로 계수 사이의 계수의 세트 내의 계수의 수가 임계치를 초과하는 것을 결정하는 단계를 더 포함하는,
    비디오의 비트스트림 인코딩 방법.
  12. 제7항에 있어서,
    상기 레벨을 조절하는 단계는 레이트 왜곡 최적화를 이용하여 조절될 세트 내의 계수를 선택하는 단계를 포함하는,
    비디오의 비트스트림 인코딩 방법.
  13. 제12항에 있어서,
    상기 레이트 왜곡 최적화는 레이트 비용을 평가하는 소정의 비용 메트릭(cost metric)을 이용하는,
    비디오의 비트스트림 인코딩 방법.
  14. 변환 유닛에 대한 계수에 대한 부호 데이터를 인코딩함으로써 비디오의 비트스트림을 인코딩하는 인코더로서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고, 제7항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하는 명령을 포함하는 인코딩 애플리케이션
    을 포함하는,
    인코더.
  15. 실행시에, 제1항 내지 제5항 및 제7항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 하나 이상의 프로세서를 구성하는 프로세서 실행가능 명령을 저장하는, 비일시적 프로세서 판독가능 매체.
KR1020130005192A 2012-01-20 2013-01-17 변환 유닛 내의 다수 부호 비트 은폐 KR101538837B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12151973.0 2012-01-20
EP12151973.0A EP2618572B1 (en) 2012-01-20 2012-01-20 Multiple sign bit hiding within a transform unit

Publications (2)

Publication Number Publication Date
KR20130085977A true KR20130085977A (ko) 2013-07-30
KR101538837B1 KR101538837B1 (ko) 2015-07-22

Family

ID=45491487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130005192A KR101538837B1 (ko) 2012-01-20 2013-01-17 변환 유닛 내의 다수 부호 비트 은폐

Country Status (11)

Country Link
EP (5) EP3094094B1 (ko)
JP (1) JP5537681B2 (ko)
KR (1) KR101538837B1 (ko)
CN (2) CN103220515B (ko)
AU (1) AU2013200325B2 (ko)
BR (1) BR102013001124B1 (ko)
CA (1) CA2801767C (ko)
ES (1) ES2776925T3 (ko)
MX (1) MX2013000711A (ko)
SG (1) SG192360A1 (ko)
TW (1) TWI524780B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048437A (ko) * 2013-10-28 2015-05-07 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
WO2020060328A1 (ko) * 2018-09-21 2020-03-26 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2982447A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982446A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit
WO2014190468A1 (en) 2013-05-27 2014-12-04 Microsoft Corporation Video encoder for images
US9456210B2 (en) * 2013-10-11 2016-09-27 Blackberry Limited Sign coding for blocks with transform skipped
US9264724B2 (en) * 2013-10-11 2016-02-16 Blackberry Limited Sign coding for blocks with transform skipped
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
BR112016022870B8 (pt) * 2014-04-01 2024-01-23 Huawei Tech Co Ltd Métodos e aparelhos para ocultar e reconstruir dados em unidades de codificação estruturadas de múltiplas camadas
US10924743B2 (en) 2015-02-06 2021-02-16 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
CN106162201B (zh) * 2015-03-26 2019-02-15 北京君正集成电路股份有限公司 一种基于符号位分组的图像数据压缩方法及装置
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
EP3412028B1 (en) 2016-02-12 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
EP3412027B1 (en) 2016-02-12 2024-04-24 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
CN105898300B (zh) * 2016-05-06 2019-03-26 西安电子科技大学 一种基于恢复变换系数的改进变换系数符号位隐藏方法
US10911773B2 (en) 2016-05-13 2021-02-02 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector difference coding and decoding
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
WO2019127003A1 (zh) * 2017-12-26 2019-07-04 富士通株式会社 图像编码方法、装置以及电子设备
WO2019156469A1 (ko) * 2018-02-09 2019-08-15 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
WO2019172799A1 (en) * 2018-03-07 2019-09-12 Huawei Technologies Co., Ltd Method and apparatus for detecting blocks suitable for multiple sign bit hiding
JP7047119B2 (ja) * 2018-03-07 2022-04-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 変換領域における残差符号予測のための方法および装置
JP7085009B2 (ja) * 2018-03-07 2022-06-15 華為技術有限公司 マルチ符号ビット隠蔽及び残差符号予測を和合する方法及び装置
WO2023277451A1 (ko) * 2021-07-01 2023-01-05 세종대학교 산학협력단 부호 비트 숨김을 이용한 비디오 부호화 및 복호화 방법
WO2024008060A1 (en) * 2022-07-05 2024-01-11 Mediatek Inc. Method and apparatus of dependent quantization for video coding
WO2024060099A1 (zh) * 2022-09-21 2024-03-28 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031878A1 (en) * 1998-11-20 2000-06-02 Interval Research Corporation Low cost video compression using fast, modified z-coding of wavelet pyramids
JP2004503964A (ja) * 2000-06-14 2004-02-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ カラービデオ符号化及び復号方法
MXPA05013572A (es) * 2003-06-25 2006-08-18 Thomson Licensing Metodo de decodificacion y aparato para la insercion de marca de aguas en una corriente de bits de video comprimido.
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
CN1893663A (zh) * 2005-09-02 2007-01-10 华为技术有限公司 多媒体通信的传输保护方法
KR101834825B1 (ko) * 2009-01-27 2018-03-06 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
FR2982446A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048437A (ko) * 2013-10-28 2015-05-07 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
WO2020060328A1 (ko) * 2018-09-21 2020-03-26 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11290737B2 (en) 2018-09-21 2022-03-29 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Image signal encoding/decoding method and apparatus therefor

Also Published As

Publication number Publication date
AU2013200325B2 (en) 2014-12-04
CA2801767A1 (en) 2013-07-20
CN103220515B (zh) 2016-06-29
JP5537681B2 (ja) 2014-07-02
BR102013001124A2 (pt) 2018-07-31
TWI524780B (zh) 2016-03-01
JP2013150323A (ja) 2013-08-01
EP3644611A1 (en) 2020-04-29
EP3644611B1 (en) 2023-09-06
EP3399753A1 (en) 2018-11-07
CN105959697B (zh) 2019-04-05
EP2618572B1 (en) 2016-08-24
ES2776925T3 (es) 2020-08-03
EP4258663A3 (en) 2023-12-20
EP4258663A2 (en) 2023-10-11
SG192360A1 (en) 2013-08-30
EP3094094B1 (en) 2018-03-28
TW201340717A (zh) 2013-10-01
CA2801767C (en) 2016-05-17
BR102013001124B1 (pt) 2022-04-19
EP3399753B1 (en) 2019-12-11
MX2013000711A (es) 2014-01-09
CN103220515A (zh) 2013-07-24
EP3094094A1 (en) 2016-11-16
CN105959697A (zh) 2016-09-21
EP2618572A1 (en) 2013-07-24
KR101538837B1 (ko) 2015-07-22

Similar Documents

Publication Publication Date Title
KR101538837B1 (ko) 변환 유닛 내의 다수 부호 비트 은폐
US11786596B2 (en) Multiple sign bit hiding within a transform unit
US9854235B2 (en) Methods and devices for entropy coding in scalable video compression
US9363512B2 (en) Motion vector sign bit hiding
CA2858629A1 (en) Methods and devices for context modeling to enable modular processing
TWI510031B (zh) 用於編碼及解碼之多層級有效性映射
TWI533705B (zh) 用於內容脈絡集選擇之方法及裝置
CA2801095C (en) Methods and devices for context modeling to enable modular processing

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
FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 5