KR101953855B1 - 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치 - Google Patents

다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101953855B1
KR101953855B1 KR1020167030249A KR20167030249A KR101953855B1 KR 101953855 B1 KR101953855 B1 KR 101953855B1 KR 1020167030249 A KR1020167030249 A KR 1020167030249A KR 20167030249 A KR20167030249 A KR 20167030249A KR 101953855 B1 KR101953855 B1 KR 101953855B1
Authority
KR
South Korea
Prior art keywords
data
data hiding
encoding unit
values
patterns
Prior art date
Application number
KR1020167030249A
Other languages
English (en)
Other versions
KR20160138271A (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 KR20160138271A publication Critical patent/KR20160138271A/ko
Application granted granted Critical
Publication of KR101953855B1 publication Critical patent/KR101953855B1/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/169Methods 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/17Methods 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/169Methods 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/17Methods 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/176Methods 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
    • 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/169Methods 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/18Methods 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 a set of transform coefficients
    • 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/169Methods 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/169Methods 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/182Methods 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 a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 계층적 계층화된 부호화 유닛의 값을 부호화 유닛에 포함된 다른 값에 은닉하기 위한 방법(부호화 방법)에 관한 것이다. 더욱이, 발명은 또한 부호화된 부호화 유닛으로부터 은닉된 데이터를 재구성하기 위한 방법(복호화 방법)에 관한 것이다. 발명은 또한 장치와 (비 일시적(non-transitory)) 컴퓨터 판독 가능 매체상에서의 이러한 부호화 및/또는 복호화 방법의 구현에 관한 것이다. 발명에 따르면 데이터가 계층적으로 구조화된 부호화 유닛의 상이한 계층들의 값들에 은닉된다.

Description

다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치{METHODS AND APPARATUS FOR DATA HIDING IN MULTI-LAYER STRUCTURED CODING UNITS}
본 발명은 계층적으로 계층화된(hierarchically layered) 부호화 유닛의 값들을 부호화 유닛에 포함되는 다른 값들에 은닉하기 위한 방법(부호화 방법)에 관한 것이다. 더욱이, 본 발명은 또한 부호화된 부호화 유닛으로부터 은닉된 데이터를 재구성하기 위한 방법(복호화 방법)에 관한 것이다. 본 발명은 또한 장치와 (비 일시적(non-transitory)) 컴퓨터 판독 가능 매체상에서의 이러한 부호화 및/또는 복호화 방법의 구현에 관한 것이다.
손실 데이터 압축(Lossy data compression)은 특히 통신, 방송, 엔터테인먼트 및 보안(security)에서 많은 애플리케이션(applications)을 가지고 있다. 기존 통신 채널을 통하여 고품질 및 고해상도 그림(pictures)을 전송하는데 큰 압축 비율(large compression ratios)이 요구되기 때문에, 비디오 압축은 도전 과제(challenging task)이다.
최근에 적용된 ITU-T H.265/HEVC 표준(ISO/IEC 23008-2:2013, "정보 기술 - 이종 환경에서의 고효율 부호화 및 미디어 전달- 파트 2: 고효율 비디오 부호화" 2013년 11월)(Information technology - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding", November 2013)은, 부호화 효율과 계산 복잡도(computational complexity) 사이의 합리적인 트레이드오프(a reasonable tradeoff)를 제공하는 최첨단 비디오 부호화 도구의 집합(a set of state-of-the-art video coding tools)을 선언한다. ITU-T H.265/HEVC 표준에 대한 개요가, 2012년 12월 22권 12호, 비디오 기술에 대한 회로 및 시스템에 관한 IEEE 트랜잭션(Transaction)에서, 개리 제이. 설리반(Gary J. Sullivan)이 기술한 글(article)인 "고효율 비디오 부호화 표준에 대한 개요"("Overview of the High Efficiency Video Coding (HEVC) Standard", in IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12, December 2012))에 제시되어 있으며, 참조를 위해 전체를 원용한다.
ITU-T H.264/AVC 비디오 부호화 표준과 유사하게, HEVC/H.265 비디오 부호화 표준은 소스 그림의 블록 예를 들어, 부호화 유닛(coding units (CUs))으로의 분할을 제공한다. CU들 각각은 더 작은 CU들 또는 예측 유닛(prediction units (PUs))으로 더 분할될 수 있다. PU는 PU의 화소에 대하여 적용되는 처리의 타입에 따라, 인트라(intra) 예측되거나 또는 인터(inter) 예측될 수 있다.
인터 예측의 경우, PU는 PU에 대하여 지정된 움직임 벡터(motion vector)를 사용하는 움직임 보상(compensation)에 의해 처리되는 화소들의 영역을 나타낸다. 인트라 예측에 대해, PU는 변환 유닛(transform units (TUs))의 집합에 대하여 예측 모드를 지정한다. TU는 상이한 크기들(예: 4x4, 8x8, 16x16 and 32x32 화소)를 가질 수 있으며, 상이한 방식으로 처리될 수 있다. TU에 대해 변환 부호화(transform coding)가 수행되고 있으며, 즉, 예측 에러는 이산 코사인 변환(discrete cosine transform (DCT))으로 변환되고 양자화된다. 양자화된 변환 계수는 CG들로 그룹화되며, 각 CG는 16개의 양자화 변환 계수를 가진다.
위에 기술된 바와 같이, 그림의 블록을 부호화기 위한 이러한 표준들 또는 유사한 독점 코덱(proprietary codecs)의 핵심 도구(core tool)는 인터-예측 및 인트라-예측, 스펙트럼-변환(spectrum-transformation)(예: 이산 코사인 변환 또는 그의 정수 근사화(integer approximation)) 그리고 양자화이다. 인터-예측 및 인트라-예측 도구는 주어진 블록에 대하여 예측 신호를 생성하는 데 사용된다. 부호화기 측에서, 소위 잔여 신호(residual signal)로 명명되는 소스 블록과 그의 예측 사이의 차이(difference)는 그들의 스펙트럼으로 변환되고, 즉, 소스 블록 화소들이 주파수 도메인에서 변환 계수에 의해 표시된다. 더욱이, 계수들은 양자화된다. 비제로(Non-zero) 및 제로(zero) 양자화된 변환 계수들은 각각 주로 유효 및 비유효(significant and insignificant) 계수들로 주로 명명된다. 양자화된 변환 계수와 부가 정보(side information)(예: 인트라 부호화를 위한 인트라 예측 모드 및 인터 부호화를 위한 움직임 벡터)를 포함하는 모든 신택스 엘리먼트(syntax element)는 이진화되고 엔트로피(entropy) 부호화된다. 압축된 H.265/HEVC 비트-스트림에서 엔트로피 부호화된 계수들의 일부는 80%를 초과할 수 있다.
양자화된 변환 계수를 부호화하는 단계(stage)는 다음과 같다.
- 마지막 유효 계수(last significant coefficient) 즉, 마지막 비제로 양자화된 변환 계수의 위치를 부호화
- 모든 비제로 계수들의 위치를 복원(restore)하는 데 사용되는 시그니피컨스 맵(significance map)을 부호화
- 유효 계수들의 부호 부호화(sign encoding)
- 유효 계수들의 크기 부호화(Magnitude encoding)
이러한 단계들은 소위 계수 그룹(coefficient groups (CGs))들로 분할되는 양자화된 변환 계수들의 컨텍스트(context)에서 수행된다. 각 CG는 일반적으로 4x4 계수들로 이루어지는 서브집합이다.
익스플리시트 부호 부호화(Explicit sign encoding)는 부호화될 하나의 유효 계수마다 하나의 부호 비트를 요구한다. 그러나 부호 비트 은닉(Sign Bit Hiding (SBH))으로 명명되는 새로운 도구가 ITU-T H.265/HEVC 표준에 채택되었다. 이 기술의 기본 아이디어는 주어진 CG에 속하는 유효 계수의 최하위 비트(least significant bit)들의 합의 패리티 체크(parity check)를 이용하여 주어진 CG 내에서 제1 유효 계수의 부호를 암시적(implicitly )으로 지시하는 것이다. 이 도구는 모든 CG에 적용되는 것이 아니라 단지 임계 조건 즉, 첫 번재 및 마지막 유효 계수의 위치 차이가 4와 동일하거나 이상이어야 하는 조건을 만족하는 CG들에 적용된다. H.265/HEVC 표준을 개발하는 것을 담당하고 있는 비디오 부호화에 대한 협력 팀(Joint Collaborative Team on Video Coding (JCT-VC))에 의해 제시된 결과에 따라, 이 도구는 JCT-VC 테스트에서 사용된 넓은 범위의 비디오 시퀀스에 대하여 동일한 품질을 위한 비트-레이트를 감소시킨다. 이는 특히, SBH와 데이터 은닉이 일반적으로 효율적인 압축 도구가 될 수 있음을 확인한다.
비디오 압축에 더하여, 데이터 은닉은 상이한 디지털 저작권 관리(Digital Rights Management(DRM)) 애플리케이션(예: 디지털 워터마킹(watermarking))에 사용될 수 있다. 반송파 신호에 디지털 정보를 삽입하는데 사용되는 DRM 기술 중의 하나이다(예를 들어, Tirkelet al., "Electronic Water Mark", Digital Image Computing: Techniques and Applications (DICTA), 1993, Macquarie University, pp. 666-673 참조). 이 은닉된 정보는 반송파 신호의 신뢰성(authenticity) 또는 무결성(integrity)을 검증하거나 또는 그 소유자의 아이덴티티(identity)를 보여주는 데 사용될 수 있다.
이 경우, 여러 은닉 동작들이 목표 값들의 동일 집합에 대해 수행되어야 하면, 이러한 동작들이 잠재적으로 서로 간섭할 수 있다. 은닉 동작이 이전 은닉 동작 동안에 은닉된 데이터에 대한 변경의 영향을 고려하지 않고 집합의 값을 변경한다면, 이러한 간섭이 발생한다. 그래서 은닉 동작들의 간단한 조합이 결과적으로 복호화할 수 없는(undecodable) 비트 스트림을 생성할 수 있다.
이러한 상황의 예로서, SBH가 계수들에 대하여 수행되어야 하는 경우 TU의 양자화된 변환 계수 내에서 플래그의 집합의 은닉을 고려할 수 있다. 만약 플래그 은닉 동작이 독립적으로(independently) 수행된다면(즉, SBH와 매칭되지 않음), 은닉된 부호를 추출하는 것이 부정확하게 수행될 수 있다.
하나의 목적(object)은 부호화 유닛에 포함되는 데이터(값)의 입력 집합을 토대로 부호화될 데이터 유닛(부호화 유닛)의 복수의 데이터(multiple pieces of data)를 부호화하기 위한 새로운 방법을 제안하는 것이다. 다른 목적은 부호화된 데이터 유닛으로부터 그러한 데이터들을 다시 복호화하기 위한 방식(way)을 제안하는 것이다. 더욱이, 추가적인 목적은 결과적으로 복호화할 수 없는(undecodable) 부호화된 데이터가 되는 간섭을 야기하지 않고, 여러 은닉 동작들이 수행될 수 있는 데이터 은닉 메커니즘을 제안하는 것이다.
본 발명의 제1 측면에 따르면, 부호화될 데이터 유닛이 계층적 구조를 가진다. 이는 예를 들어, 부호화 유닛에 속하는 데이터의 개개의 값이 부호화 유닛의 여러 계층을 제공하는 계층적 구조에 대응한다는 것을 의미한다. 제1 측면의 아이디어는 데이터 은닉 패턴을 사용하는 부호화 유닛의 다른 정보를 토대로 각각의 주어진 계층에 속하는 정보(예: 값)를 은닉하는 것이다. 각각의 데이터 은닉 패턴이 적용되는 다른 정보는 각 데이터 은닉 패턴에 대한 값들의 입력 집합을 고려할 수 있다. 여러 데이터 은닉 패턴은 동일한 값의 입력 집합, 부분적으로 중첩하는 값의 입력 집합, 또는 별개의 값의 입력 집합 또는 이들의 조합을 토대로 할 수 있다.
제1 측면의 제1 예시적인 구현에 따라, 계층적으로 계층화된(hierarchically layered) 부호화(coding) 유닛의 값을 상기 부호화 유닛이 포함하는 다른 값에 은닉하는(hiding) 방법이 제공된다. 본 방법에서, 데이터 은닉 패턴들의 계층화된 스택(layered stack)이 제공된다. 상기 데이터 은닉 패턴들은 상기 부호화 유닛의 상이한 계층들에서 상기 부호화 유닛의 값들을 은닉하기 위한 것이다. 상기 데이터 패턴 각각은 상기 부호화 유닛의 계층들 중의 하나에서 상기 부호화 유닛의 하나 이상의 값을 은닉하는 데 사용되는 것에 관련된 체크 함수(check function)를 가진다. 상기 데이터 은닉 패턴들 각각에 대하여 다음의 단계:
(i) 상기 부호화 유닛의 상기 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택되는 값들을 기반으로, 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하는 단계,
(ii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하는지를 결정하는 단계, 및
(iii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하지 않으면, 상기 단계 (ii)에서의 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하도록, 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 단계
를 수행한다.
부호화된 부호화 유닛은, 모든 데이터 은닉 패턴에 대해 상기 단계 (iii)에서 변경된, 상기 부호화 유닛의 상기 다른 값들을 포함한다.
또한, 제1 측면의 제1 구현 형태의 제2 구현에서, 상기 데이터 은닉 패턴의 상기 계층화된 스택은 분리된 데이터 은닉 패턴을 정의한다. 상기 분리된 데이터 은닉 패턴들은, 상기 스택의 상기 데이터 은닉 패턴들 중 하나를 사용하여 복원된 으닉된 값이, 상기 스택에 정의된 나머지 데이터 은닉 패턴들의 조합(예: 선형 조합)으로부터 도출될 수 없는 기준을 만족하는 것이 고려될 수 있다. 상기 데이터 은닉 패턴의 계층화된 스택이 분리되면, 은닉된 값이 적절하게 복원될 수 있도록, 동일한 값의 입력 데이터 집합에 대해 동일한 것을 적용하는 것이, 상기 스택의 상이한 데이터 은닉 패턴들 사이에 간섭을 일으키지 않는다. 이러한 간섭은 예를 들어, 이전 데이터 은닉 동작에서 값의 입력 집합의 하나 이상의 값의 변경의 영향을 고려하지 않고, 은닉 동작이 값의 입력 집합의 값(즉, 상기 데이터 은닉 동작에 사용된 상기 데이터 은닉 패턴에 의해 선택된 값들)을 변경하는 경우에 발생할 수 있다.
더욱이, 제1 측면의 임의 이전 구현 형태의 제3 구현에서, 각 계층은 상기 데이터 은닉 패턴들의 하나 또는 다수에 연관될 수 있다.
제1 측면의 임의 이전 구현 형태의 추가적인 제4 구현에서, 상기 데이터 은닉 패턴은 데시메이션(decimation) 기반 데이터 은닉 패턴들, 하나 이상의 일반(regular) 데이터 은닉 패턴, 그리고 하나 이상의 의사 랜덤(pseudo-random) 데이터 은닉 패턴 중 적어도 하나로 이루어질 수 있다.
제1 측면의 임의 이전 구현 형태의 제5 구현에 따르면, 상기 방법은, 상기 데이터 은닉 패턴들 각각에 대하여,
상기 단계 (ii)에서의 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 상기 값에 대응하도록, 상기 단계 (iii)에서 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 데 사용되는 알고리즘이 상기 값들을 변경하지 않는 경우에, 상기 단계 (ii)에서의 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 상기 값에 대응할 때까지, 상기 단계 (i) 내지 단계 (iii)를 반복하는 단계를 더 포함할 수 있다.
제1 측면의 임의 이전 구현 형태의 제6 구현에 따르면, 상기 데이터 은닉 패턴의 제1 데이터 은닉 패턴과 제2 데이터 은닉 패턴을 사용하여 상기 단계 (i) 내지 단계 (iii)를 각각 수행하는 경우, 상기 제1 데이터 은닉 패턴에 의해 선택되고 상기 단계 (iii)에서 변경된 상기 부호화 유닛의 하나 이상의 다른 값들이, 만일 두 번째 반복(the second iteration) 에서 상기 제2 데이터 은닉 패턴에 의해 선택되면, 상기 제2 데이터 은닉 패턴에 대하여 상기 단계 (i) 내지 단계 (iii)를 수행하는 경우, 상기 단계(iii)에서 다시 변경되지 않는다.
제1 측면의 임의 이전 구현 형태의 제7 구현에 따르면, 상기 데이터 은닉 패턴들 중 하나에 대하여 상기 단계 (iii)에서 변경된 상기 적어도 하나의 값이, 상기 데이터 은닉 패턴들 중 다른 하나에 대하여 상기 단계 (i) 내지 단계 (iii)를 수행하는 경우 원래 값(original values)들 대신에 고려된다.
제1 측면의 제8 구현에 따르면, 부호화된 부호화 유닛으로부터 은닉된 값을 재구성하는 방법(복호화 방법)이 제공된다. 다시, 데이터 은닉 패턴들의 계층화된 스택이 제공된다. 상기 스택은 상기 부호화 유닛의 상기 값을 은닉하기 위한 부호화기에 의해 사용되었다. 상기 데이터 패턴 각각은 이에 관련된 체크 함수를 가진다. 본 방법에서, 상기 데이터 은닉 패턴들 각각에 대하여, 상기 데이터 은닉 패턴의 각각의 체크 함수가, 상기 부호화 유닛의 다른 값으로부터 상기 각각의 데이터 은닉 패턴에 의해 선택된 값들을 토대로 산출되며, 상기 체크 함수의 결과는 재구성된 은닉된 값들 중 하나에 대응한다.
제1 측면의 임의 이전 구현 형태의 제9 구현에 따르면, 상기 데이터 은닉 패턴의 체크 함수를 산출할 때 기초가 되는 상기 부호화 유닛이 포함한 값들은, 상기 부호화 유닛의 최하위 계층적 계층(the lowest hierarchical layer)의 값들이다.
제1 측면의 제9 구현 형태의 제10 구현에 따르면, 상기 부호화 유닛의 상기 최하위 계층적 계층 이외의 계층에 연관된 데이터 은닉 패턴의 체크 함수가, 상기 부호화 유닛의 상기 최하위 계층적 계층의 값들의 각 서브집합으로부터 상기 데이터 은닉 패턴의 각각에 의해 선택된 값들에 대하여 산출된다.
제1 측면의 제10 구현 형태의 제11 구현에 따르면, 상기 데이터 은닉 패턴의 각각의 크기가, 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기를 토대로 결정된다.
제1 측면의 제10 또는 제11 구현 형태의 제12 구현에 따르면, 상기 최하위 계층적 계층 이외의 계층에서의 각 서브집합이, 각각의 계층의 조직 데이터 유닛(organizational data unit)에 계층적으로 속하는 상기 부호화 유닛의 상기 최하위 계층적 계층의 값들을 포함한다.
제1 측면의 제12 구현 형태의 제113구현에 따르면, 상기 각각의 계층의 각각의 조직 데이터 유닛에 적용 가능한 데이터 은닉 패턴의 수 및/또는 크기가, 상기 체크 함수가 산출되는 각각의 계층의 각각의 조직 데이터 유닛에 속하는 값들의 서브집합의 크기를 토대로 결정된다.
제1 측면의 제10 내지 제13 구현 형태의 제14 구현에 따르면, 상기 데이터 은닉 패턴들의 각각의 크기는, 상기 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기의 제수(divisor)와 동일하거나 상기 제수이다. 이와 다르게(To put it different), 상기 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기는 상기 데이터 은닉 패턴들의 각각의 크기의 정수배와 동일하거나 또는 정수배이다.
제1 측면의 임의 이전 구현 형태의 제15 구현에 따르면, 상기 부호화 유닛의 값들이 영상의 화소의 블록을 나타내고, 상기 부호화 유닛은, 하나 이상의 예측 유닛, 하나 이상의 변환(transform) 유닛 그리고 하나의 이상의 계수(coefficient) 그룹을 포함하며, 상기 데이터 은닉 패턴들이 상기 예측 유닛, 상기 변환 유닛 그리고 상기 부호화 유닛에 대응하는 상기 부호화 유닛의 계층들에 각각 연관되어 있다. 게다가, 상기 데이터 은닉 패턴들 각각은 상기 부호화 유닛의 연관된 계층의 하나 이상의 값들을 은닉한다.
제1 측면의 제15 구현 형태의 제16 구현에 따르면, 상기 데이터 은닉 패턴들은 상기 계수 그룹, 상기 예측 유닛, 상기 변환 유닛, 그리고 상기 부호화 유닛에 대응하는 상기 부호화 유닛의 계층들에 연관되며, 상기 계수 그룹은 상기 부호화 유닛의 최하위 계층의 일부이다.
제1 측면의 임의 이전 구현 형태의 제17 구현에 따르면, 상기 데이터 은닉 패턴의 체크 함수는 상기 계수 그룹의 값을 토대로 산출된다.
제1 측면의 제15 내지 제17 구현 형태의 제18 구현에 따르면, 상기 데이터 은닉 패턴은, 상기 부호화 유닛의 상기 변환 유닛에 대한 인트라 예측(intra prediction)을 위한 기준(reference) 샘플 필터링 플래그(flag)를 은닉하기 위한 하나 이상의 데이터 은닉 패턴을 포함한다.
제1 측면의 제15 내지 제18 구현 형태의 제19 구현에 따르면, 상기 데이터 은닉 패턴은 상기 예측 유닛의 예측 모드 인덱스와 예측 유닛 크기 중 적어도 하나를 은닉하기 위한 하나 이상의 데이터 은닉 패턴을 포함한다.
제1 측면의 제15 내지 제19 구현 형태의 제20 구현에 따르면, 상기 데이터 은닉 패턴은 상기 부호화 유닛에 워터마크(watermark)를 삽입하기(embedding) 위한 데이터 은닉 패턴을 포함한다.
제1 측면의 제15 내지 제20 구현 형태의 제21 구현에 따르면, 상기 데이터 은닉 패턴은 상기 계수 그룹의 계수의 부호 비트(sign bit)를 은닉하기 위한 데이터 은닉 패턴을 포함한다.
제1 측면의 제1 내지 제14 구현 형태의 제22 구현에 따르면, 상기 부호화 유닛의 값은, 부호화될 영상 데이터의 블록, 오디오 데이터의 블록, 또는 도큐먼트(document)의 블록을 나타낸다.
제1 측면의 제1 내지 제22 구현 형태의 제23 구현에 따르면, 상기 은닉된 값들 중 하나는 상기 부호화 유닛에 포함된 값의 신뢰성(authenticity)을 확인하는 것을 허용한다.
본 발명의 제1 측면의 제24 구현은 계층적으로 계층화된 부호화 유닛의 값을 상기 부호화 유닛이 포함하는 다른 값에 은닉하는 부호화 장치(encoding apparatus)를 제공한다. 상기 부호화 장치는 상기 부호화 유닛의 상이한 계층들에서 상기 부호화 유닛의 상기 값을 은닉하기 위한 데이터 은닉 패턴들의 계층화된 스택을 제공받으며, 상기 데이터 은닉 패턴들 각각은 상기 부호화 유닛의 계층들 중의 하나에서 상기 부호화 유닛의 하나 이상의 값을 은닉하기 위한 것에 관련된 체크 함수를 가진다. 상기 부호화 장치는 처리 유닛을 포함하며, 상기 처리 유닛은, 상기 데이터 은닉 패턴들 각각에 대하여 이하의 단계:
(i) 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택되는 값을 기반으로, 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하는 단계:
(ii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하는지를 결정하는 단계; 및
(iii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하지 않으면, 상기 단계 (ii)에서의 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하도록, 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 단계
를 수행하도록 구성된다.
상기 부호화 장치는 부호화된 부호화 유닛을 출력하도록 구성된 출력 유닛을 더 포함하고, 상기 부호화된 부호화 유닛은 모든 데이터 은닉 패턴에 대해 상기 단계 (iii)에서 변경된, 상기 부호화 유닛의 상기 다른 값을 포함한다.
본 발명의 제1 측면의 제25 구현은, 제1 측면의 임의 구현 형태에 따른 방법을 수행하도록 구성된 부호화 장치를 제공한다.
본 발명의 제1 측면의 제26 구현은, 부호화된 부호화 유닛으로부터 은닉된 값을 재구성하는 복호화 장치(decoding apparatus)를 제공한다. 상기 복호화 장치는 상기 부호화 유닛의 값들을 은닉하기 위한 부호화기에 의해 사용된 데이터 은닉 패턴들의 계층화된 스택을 제공받으며, 상기 데이터 은닉 패턴들 각각은 그것에 연관된 체크 함수를 가진다. 상기 복호화 장치는 상기 데이터 은닉 패턴들 각각에 대하여, 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택된 값들을 토대로 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하도록 구성된 처리 유닛; 및 복호화된 데이터의 일부로서 상기 재구성된 은닉된 값들을 포함하는 복호화된 부호화 유닛을 출력하도록 구성된 출력 유닛을 포함하며, 상기 체크 함수의 결과는 상기 재구성된 은닉된 값들 중 하나에 대응한다.
제1 측면의 제1 내지 제26 구현 형태의 제27 구현에 따르면, 상기 부호화된 부호화 유닛으로부터 각각의 데이터 은닉 패턴에 의해 선택된 상기 값들은, 상기 부호화 유닛의 최하위 계층적 계층의 값들이다.
제1 측면의 제1 내지 제27 구현 형태의 제28 구현에 따르면, 상기 처리 유닛은, 추가로 상기 부호화 유닛의 상기 최하위 계층적 계층의 값들의 각 서브집합으로부터 상기 데이터 은닉 패턴의 각각에 의해 선택된 값들에 대하여, 상기 부호화된 부호화 유닛의 상기 최하위 계층적 계층 이외의 계층에 연관된 데이터 은닉 패턴의 체크 함수를 산출하도록 구성된다.
제1 측면의 제1 내지 제28 구현 형태의 제29 구현에 따르면, 상기 처리 유닛은, 상기 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기를 토대로, 상기 데이터 은닉 패턴의 각각의 크기를 결정하도록 구성된다.
제1 측면의 제1 내지 제28 또는 제29 구현 형태의 제30 구현에 따르면, 상기 최하위 계층적 계층 이외의 계층에서의 각 서브집합이, 각각의 계층의 조직 데이터 유닛에 계층적으로 속하는 상기 부호화 유닛의 최하위 계층적 계층의 값들을 포함한다.
제1 측면의 제1 내지 제30 구현 형태의 제31 구현에 따르면, 상기 처리 유닛은, 상기 체크 함수가 산출되는 각각의 계층의 각각의 조직 데이터 유닛에 속하는 값들의 서브집합의 크기를 토대로, 각각의 계층의 각각의 조직 데이터 유닛에 적용 가능한 데이터 은닉 패턴의 수 및/또는 크기를 결정하도록 구성된다.
본 발명의 제1 측면의 제32 구현은, 제1 측면의 임의 구현 형태에 따른 복호화 방법을 수행하도록 구성된 복호화 장치를 제공한다.
본 발명의 제1 측면의 제33 구현은 명령들이 저장된 (비 일시적(non-transitory)) 컴퓨터 판독 가능 매체를 제공하며, 상기 명령은 부호화 장치의 처리 유닛에 의해 실행되는 경우에 상기 부호화 장치가 상기 데이터 은닉 패턴들 각각에 대하여 이하의 단계:
(i) 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택되는 값을 기반으로, 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하는 단계:
(ii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하는지를 결정하는 단계; 및
(iii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하지 않으면, 상기 단계 (ii)에서의 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하도록, 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 단계
를 수행하도록 한다.
더욱이, 상기 명령은 상기 부호화 장치의 처리 유닛이, 부호화된 부호화 유닛에, 모든 데이터 은닉 패턴에 대해 상기 단계 (iii)에서 변경된, 상기 부호화 유닛의 상기 다른 값을 포함하도록 할 수 있다.
본 발명의 제1 측면의 제34 구현은, 명령들이 저장된 (비 일시적) 컴퓨터 판독 가능 매체를 제공하며, 상기 명령은 부호화 장치의 처리 유닛에 의해 실행되는 경우에 상기 부호화 장치가 제1 측면의 임의 구현 형태에 따른 부호화 방법을 수행하도록 한다.
본 발명의 제1 측면의 제34 구현은, 명령들이 저장된 (비 일시적) 컴퓨터 판독 가능 매체를 제공하며, 상기 명령은 부호화 장치의 처리 유닛에 의해 실행되는 경우에, 상기 부호화 장치가 데이터 은닉 패턴들의 계층화된 스택을 제공하도록 하며, 상기 스택은 부호화 유닛의 값을 은닉하기 위한 부호화기에 의해 사용된다. 상기 데이터 패턴 각각은 이에 관련된 체크 함수를 가진다. 상기 명령은, 복호화 장치가 상기 데이터 은닉 패턴들 각각에 대하여, 상기 부호화 유닛의 다른 값으로부터 상기 각각의 데이터 은닉 패턴에 의해 선택된 값들을 토대로 상기 데이터 은닉 패턴의 각각의 체크 함수를 산출하도록 하며, 상기 체크 함수의 결과는 재구성된 은닉된 값들 중 하나에 대응한다.
본 발명의 제1 측면의 제36 구현은 명령들이 저장된 (비 일시적) 컴퓨터 판독 가능 매체를 제공하며, 상기 명령은 복호화 장치의 처리 유닛에 의해 실행되는 경우에, 상기 복호화 장치가 제1 측면의 임의 구현 형태에 따른 복호화 방법을 수행하도록 한다.
본 발명의 다음 실시 예들에서 첨부한 그림 및 도면(figures and drawings)을 참조하여 보다 상세하게 설명한다. 도면에서의 유사하거나 대응하는 부분에 대해서는 동일한 도면 부호(reference numeral)로 표시한다.
도 1은 본 발명의 실시 예에 따른 부호화 유닛의 예시적 구조(부호화 트리)를 나타낸다.
도 2는 H.265 표준의 부호화 유닛 구조와 유사한, 본 발명의 실시 예의 부호화 유닛의 예시적 구조를 나타낸다.
도 3은 본 발명의 실시 예에 따른 1차원의 분리된(one-dimensional decoupled) 데이터 은닉 패턴들의 상이한 예들을 나타낸다.
도 4는 본 발명의 실시 예에 따른 2차원의 분리된 데이터 은닉 패턴의 상이한 예들을 나타낸다.
도 5는 본 발명의 실시 예에 따라 도 2의 상이한 계층들에 대하여 정의된 데이터 은닉 패턴의 계층화된 스택의 구조의 예시적 실시 예들을 나타낸다.
도 6은 본 발명의 예시적 실시 예에 따른 데이터 은닉 패턴의 예시적 계층적 구조를 나타낸다.
도 7 및 도 8은 본 발명의 실시 예에 따른 다중 계층 계층적 구조의 데이터 은닉 패턴의 부호화기 측 상에서의 계수 조정(coefficient adjustment)의 절차의 흐름도를 나타낸다.
도 9는 본 발명의 실시 예에 따른 2개의 계층의 데이터 은닉 패턴에 대한 부호화기 측 상에서의 계수 조정의 간단화 된 절차의 흐름도를 나타낸다.
도 10은 본 발명의 실시 예에 따른 비디오 스트림을 복호화하기 위한 절차의 흐름도를 나타낸다.
도 11은 본 발명의 예시적 실시 예의 부호화기 및 복호화기 구조를 나타낸다.
도 12는 본 발명의 실시 예에 따른 ITU T H.265/HEVC 인트라 예측에 따라 기준 샘플 필터링을 위한 암시적 플래그 시그널링 흐름도의 예시적 변경을 나타낸다.
도 13a, 도 13b 그리고 도 13c는 상이한 추가 실시 예에 따른 본 발명의 개념의 예시적 사용 케이스를 나타낸다.
도 14는 본 발명의 실시 예의 예시적 부호화 장치를 나타낸다.
도 15는 본 발명의 실시 예의 예시적 복호화 장치를 나타낸다.
다음에는 상이한 측면들(aspects)의 다양한 구현 및 실시 예들을 설명한다. 위에 이미 기술한 바와 같이, 발명의 하나의 측면은 부호화 유닛(coding unit)의 데이터에 대한 다수의 데이터 은닉 동작들을 수행하는 것에 관한 것이다.
부호화 유닛은 일반적으로 부호화될 데이터의 집합을 포함하는 구조를 나타낸다. 부호화 유닛은 계층적 구조를 가지는 것으로 가정된다. 이는, 예를 들어, 부호화 유닛에 속하는 데이터를 나타내는 개개의 값들이 부호화 유닛의 여러 계층을 제공하는 계층적 구조에 대응한다는 것을 의미한다. 이러한 계층화(layering)는 예를 들어, 부호화 트리(tree)를 정의하는 구조에 의해 구현될 수 있으며, 부호화 유닛 계층은 트리의 루트(root)와 다음 하위 계층에 속하는 트리의 각 브랜치(branch)의 데이터를 정의한다. 부호화 유닛의 데이터는 구조의 상이한 계층들에서의 정보를 나타내는 데이터 값(간략하게 값)으로 나타내어진다. 데이터 값은 이진 포맷으로 나타낼 수 있다. 데이터 은닉 동작과 특히 체크 함수의 산출은 값에 대해 수행될 수 있지만, 필요에 따라 이진 표현(binary representation)(비트 레벨)에 대해 또한 수행될 수 있다.
예시적인 부호화 트리가 도 1에 도시되어 있다. 부호화 유닛(계층 n 유닛, 최상위 계층 유닛)의 구조는 부호화 트리의 계층들의 계층적 순서에서의 최상위 계층을 정의한다. 각 계층(최하위 계층을 제외)에서의 각 유닛은 각 계층의 부가 정보(side information)와 하나 이상의 하위 계층 유닛으로 이루어질 수 있다. 본 발명의 애플리케이션에 따라, 하나 이상의 계층에 부가 정보가 없을 수 있다. 최하위 계층 유닛(계층 0 유닛)은 예를 들어, 값들을 포함하거나 값들로 이루어질 수 있으며, 선택적으로 부가 정보가 또한 있을 수 있다.
본 발명의 제1 측면의 아이디어는 데이터 은닉 패턴(data hiding patterns (DHPs))을 사용하는 부호화 유닛의 다른 값들을 토대로 별개의 계층(distinct layers)에 속하는 정보(예: 부호화 유닛의 하나 이상의 값)를 은닉하는 것이다. 예를 들어, 은닉하고자 하는 데이터는 부호화된 데이터에서 명시적으로(explicitly) 부호화되어야 하는 각 계층의 하나 이상의 부가 정보일 수 있다. 하나의 구현에서, 각 계층의 데이터 구조(예: 계층 n-1 유닛 또는 다른 임의 하위 계층 유닛)의 부가 정보는 각 데이터 구조에 속하는 값들 내에서 은닉될 수 있다.
계층이 부호화된 부호화 유닛에 은닉되는 어떤 정보(또는 값)가 예를 들어 미리 설정될 수 있으며, 또는 복호화 장치에 시그널링될 수 있다. 또한, 각각의 상이한 계층들 상에서 사용되는 데이터 은닉 패턴은 미리 설정될 수 있으며, 또는 부호화된 부호화 유닛의 파라미터, 예를 들어, 각각의 크기로부터 도출될 수 있다. 동일한 데이터 은닉 패턴 또는 패턴들은 본 계층의 계층 X 유닛들의 각각에 대하여 하나의 계층 X에서 재사용될 수 있다.
일부 실시 예에서, 데이터 은닉 동작의 기초가 되는 값들이 부호화 유닛의 최하위 계층적 계층에 속한다. 각각의 데이터 은닉 패턴이 적용된 이러한 값들은 각 데이터 은닉 패턴의 값들의 입력 집합으로 고려될 수 있다. 여러 데이터 은닉 패턴들은 동일한 값의 입력 집합(identical input sets of values), 부분적으로 중첩되는 값의 입력 집합, 또는 별개의 값의 입력 집합 또는 이들의 조합을 토대로 할 수 있다.
일반적으로, 예시적인 목적을 위해, 단지 이진 결과를 가지는 체크 함수를 가정하고, 하나의 데이터 은닉 패턴은 1비트의 정보를 은닉할 수 있다. 따라서, 동일한 데이터 은닉 패턴이 그들의 각 서브집합에 적용될 수 있도록 입력 집합이 충분히 크지 않는 한, 데이터 은닉 패턴의 개수는 각 계층의 유닛에 대하여 은닉될 비트의 개수에 대응한다. 한 계층의 데이터 유닛에 대한 데이터 은닉 패턴들은 분리된(decoupled) 데이터 은닉 패턴들의 스택을 정의한다. 데이터 은닉 패턴들의 분리(decoupling)는 은닉된 비트들이 부호화된 부호화 유닛으로부터 다시 재구성될 수 있음을 보장한다. 바람직하게는(Advantageously), 데이터 은닉 패턴의 분리는 하나의 싱글 계층을 위한 데이터 은닉 패턴들에 대해 제공되지 않고, 데이터 은닉 패턴들이 부호화 유닛의 모든 계층에 걸쳐서 분리된다. 이전에 기술한 바와 같이, "분리된(decoupled)"은 임의 데이터 은닉 패턴을 이용하여 임의 계층으로부터 재구성된 값들이 본 계층에 대하여 정의된 나머지 데이터 은닉 패턴들의 조합(예: 선형 조합(linear combination))에 의해 도출될 수 없음을 의미한다. 다시 말하자면, 데이터 은닉 패턴들의 스택은 주어진 목표 값의 집합으로부터 추출된 값들을 도출하는 수식(equations)의 넌-디제너레이트(non-degenerate) 시스템에 의해 설명될 수 있다.
분리된 데이터 은닉 패턴들의 계층화된 스택은 예를 들어, 다양한 방식으로 구성될 수 있다. 도 3은 1차원의 분리된 데이터 은닉 패턴의 상이한 예들을 나타내며, 이들은 데시메이션(decimation) 기반, 규칙적(regular) 및 비규칙적(irregular)(의사 랜덤(pseudo-random))의 3개의 그룹으로 분류될 수 있다. 도 3에서 (a) 및 (b)는 데시메이션 기반 DHP의 2개의 예들을 나타내며, (c), (d), 그리고 (e)는 다른 규칙적 DHP의 3개의 상이한 예들을 나타내며, (f)는 비규칙적(의사 랜덤) DHP의 예를 보여준다(demonstrates).
데시메이션 기반 데이터 은닉 패턴은 주어진 값들의 집합의 모든 n번째 엘리먼트가 데이터 은닉을 위해 사용될 수 있는 방식으로 구성될 수 있다. 보다 일반적인 경우, 집합의 엘리먼트가 정기적으로(regularly)으로 즉, 일부 규칙적인 순서(some regular order)에 따라 데이터 은닉 패턴에 의해 선택되면, 이러한 데이터 은닉 패턴들은 규칙적 데이터 은닉 패턴으로 분류될 수 있다. 내부에 임의 일정한 순서를 정의하지 않는 다른 모두의 경우, 데이터 은닉 패턴은 비규칙적 또는 의사 랜덤 데이터 은닉 패턴의 클래스로 그룹화될 수 있다.
계층의 스택은 상이한 클래스들의 데이터 은닉 패턴들로 이루어질 수 있으며, 그러나 이러한 데이터 은닉 패턴들이 분리되는 것에 대한 제한을 가진다. 게다가(Moreover), 데이터 은닉 패턴은 2차원 또는 심지어 다차원일 수 있다. 데이터 은닉 패턴의 2차원 계층화된 스택의 예가 도 4에 도시되어 있다. 2차원 데이터 은닉 패턴은 예를 들어, 단지 1차원과 같이, 양자화된 변환 계수에 적용될 수 있으며, 그러나 이러한 경우의 데이터 은닉 및 추출 절차는 계수 스캔 전에 수행될 수 있다.
다음 예에서, 본 발명이 비디오 부호화 컨텍스트(context)에 사용되는 대부분의 시간을 가정한다. 부호화 유닛의 데이터는 영상(image)의 화소의 블록을 나타낸다. 예시적인 목적을 위해, 부호화 유닛이 H.256 표준에 유사한 부호화 트리 구조를 가지는 것으로 가정한다. 부호화 유닛은 하나 이상의 예측 유닛, 하나 이상의 변환 유닛, 그리고 하나 이상의 계수 그룹을 가진다. 본 예시적인 계층화된 구조가 도 2에 도시되어 있으며, 부호화 유닛(coding unit (CU))의 각 계층이 강조되어 있다(highlighted). 더욱이, 개개의 계층에 대하여 인정된 파라미터들은 각 계층의 데이터 유닛(CU, PU, TU and CG)에 대하여 은닉될 수 있는 예시적인 부가 정보를 리스트에 포함한다. 더욱이, 각 계층에 대한 데이터 은닉 동작이 각 계층의 데이터 유닛(CU, PU, TU and CG)에 속하는 CG(들)의 변환 계수 값들을 토대로 수행됨을 예시적으로 가정한다. 따라서, 각 계층의 데이터 유닛에 대해 수행되는 데이터 은닉 동작(들)을 위한 입력 데이터 집합은 상이할 수 있다. 이는 상이한 각 계층의 데이터 유닛들에 대해 동일한 데이터 은닉 패턴(들)을 재사용하는 것을 허용할 수 있다.
도 5는 도 2의 상이한 계층에 대하여 정의된 데이터 은닉 패턴의 계층화된 스택의 구조의 예시적인 실시 예를 나타낸다. 본 예에서, 단지 예시적인 목적으로, 4개의 계층의 각각에서, 각 계층의 데이터 유닛에 대하여 하나의 데이터 은닉 패턴이 있는 것으로 가정한다.
최하위 계층(계층 0), CG 계층 상에서, 각 CG의 하나의 값이 은닉될 것이다(예를 들어, 각 CG의 (유효) 변환 계수의 부호 플래그). 변환 계수의 집합이 모두 고려됨을 주목한다(예를 들어, 4x4 크기의 CG에 대하여, 단지 유효 계수가 부호화된 부호화 유닛에서 부호화될 수 있음에도 불구하고, 16개의 유효 및 비유효 계수들이 모두 고려된다.).
각 데이터 은닉 패턴과 체크 함수(예를 들어, 패리티 체크 함수)를 사용하여, 주어진 CG 내에서 하나 이상의 유효 계수의 부호가 부호화될 수 있다. 데이터 은닉 패턴(들)의 크기는 CG의 크기(예를 들어, 4x4 CG에 대한 16개의 값들)(또는 크기의 제수)에 해당하며(equivalent), 체크 함수의 애플리케이션을 위한 CG의 계수 값들의 서브집합을 선택한다. 데이터 은닉 동작은 모든 CG에 적용되는 것이 아니라 임계 조건을 만족하는 CG에 적용된다. 예를 들어, 첫 번째 및 마지막 유효 계수들의 위치의 차이가 4 보다 크거나 동일해야 하는 경우에, 데이터 은닉이 사용된다.
하나의 예에서, 은닉하고자 하는 CG의 각 값에 대하여, 대응하는 데이터 은닉 패턴(및 체크 함수)이 정의된다. 따라서(Hence), 예를 들어, 4개의 유효 계수의 부호를 은닉하고자 하면, 하나의 부호 비트를 은닉하는 데 사용되는 4개의 별개의 데이터 은닉 패턴들이 있다(데이터 은닉 패턴의 크기가 CG의 크기(즉, 계수의 개수)와 동일하다고 가정). 도 5의 예에서, 유효 계수 중 하나의 부호 비트는 하나의 CG에 대하여 은닉될 수 있다. 상이한 CG들의 부호 비트(들)를 은닉하기 위하여 사용되는 데이터 은닉 패턴들의 집합이 부호화 유닛의 모든 CG들에 대하여 동일할 수 있음을 주목한다. 그러나 또한 상이한 데이터 은닉 패턴들이 사용될 수 있다.
TU 레벨 즉, 도 5의 예에서 계층 1로 돌아가면, 여러 CG들이 일반적으로 하나의 TU에 속한다. 따라서, TU의 부가 정보(예를 들어, TU의 기준 샘플 필터링 플래그)를 은닉하기 위하여, 데이터 은닉 동작을 위한 입력 데이터 집합이 각 TU에 속하는 모든 CG의 변환 계수일 수 있다. 따라서, TU 계층의 데이터 은닉 패턴(들)은 도 5에 도시된 바와 같이, CG의 크기와 동일한 크기를 가질 수 있다. 만약, TU 계층에서 다수의 비트를 은닉해야 하면, 대응하는 개수의 분리된 데이터 은닉 패턴들이 정의된다.
다르게는, TU 계층의 데이터 은닉 패턴(들)의 크기는 (도 5에 도시되지 않은) CG의 크기의 제수일 수 있다. 추후에 기술되는 바와 같이, 데이터 은닉 패턴은 최소 크기를 가질 수 있다. 이 경우, 데이터 은닉 패턴의 크기의 정수배(integer multiple)는 TU에 속하는 CG의 크기(즉, TU에 속하는 상이한 CG들의 계수의 개수)와 동일할 수 있다. 이 경우, 동일한 데이터 은닉 패턴이 다수의 비트를 은닉하기 위하여 TU에 속하는 CG의 상이한 서브집합에 다수회 적용될 수 있다.
TU 계층과 유사하게, 또한 PU 계층에서, 즉, 도 5의 예의 계층 2에서, 여러 개의 CG가 하나의 PU에 속할 수 있다. 따라서, PU 계층에 대한 데이터 은닉 동작을 위한 입력 데이터 집합이 TU 레벨의 입력 데이터 집합보다 다시 클 수 있다. PU 계층에 대한 데이터 은닉 패턴(들)은 각각의 PU에 속하는 CG의 크기와 크기에서 동일할 수 있으며, 다르게는, PU 계층의 데이터 은닉 패턴(들)의 크기가 (도 5에 도시되지 않은) CG들의 크기의 제수일 수 있으며, 이는 다수 비트를 은닉하는 데 있어서 각 PU에 속하는 CG들의 계수 값들의 상이한 서브집합에 대하여 데이터 은닉 패턴(들)의 재사용을 용이하게 한다.
일반적으로, 데이터 은닉 패턴(들)은 또한 비이진 값(non-binary value), 예를 들어, PU에 대한 예측 모드 인덱스 또는 움직임 벡터(인덱스)를 은닉하는 데 사용될 수 있다. 데이터 은닉 패턴의 크기와 각 계층의 유닛에 속하는 계수들의 개수에 따라, 하나 이상의 데이터 은닉 패턴이 그렇게 사용될 필요가 있다. PU가 다수의 TU를 가지는 것으로 가정하면, 심지어 하나의 데이터 은닉 패턴이 PU에 대한 예측 모드 인덱스 또는 움직임 벡터(인덱스)와 같은 비이진 값을 은닉하는데 사용될 수 있도록, PU의 CG들에 속하는 CG들의 변환 계수의 개수가, PU에 대한 데이터 은닉 패턴(들)의 (최대) 크기보다 상당히 큰 것으로 예상될 수 있다.
최종적으로, CU 계층, 즉, 도 5의 예의 계층 3에서, CU의 모든 CG의 모든 계수가 데이터 은닉 처리를 위해 사용될 수 있다. 따라서, CU 계층에 대한 하나 또는 여러 부가 정보를 은닉하는 것이 가능할 수 있다. 예를 들어, 루프 필터 파라미터, SAO 오프셋 값, 또는 디블록킹(de-blocking) 필터 파라미터가, TU와 PU 계층에 대해 위에 기술된 바와 같이, CU의 CG들의 계수들 내에서 데이터 은닉 동작에 의해 은닉될 수 있다.
더욱이, 이하에 기술되는 바와 같이, 계층들 중 임의 하나에서 워터마크(watermark)(핑거프린트(fingerprint))를 추가하는 것이 또한 가능하다.
보다 명백해지는 바와 같이, 각 데이터 은닉 패턴에 의해 선택된 값들에 적용되는 체크 함수들이 상이한 계층들에서 은닉될 데이터의 은닉에 대해 정확한 결과를 제공하도록, 데이터 은닉 동작은 최하위 계층에서 개별 값들(예: 도 2 및 도 5의 이전에 논의된 예들에서의 CG 계층의 계수 값들)을 변경할 필요가 있을 수 있다. 따라서, 예를 들어, 오디오, 그림 또는 비디오 부호화를 고려하는 경우, 최하위 계층 데이터의 변경은 부호화된 신호의 왜곡을 초래할 수 있다. 값의 변경에 의해 야기되는 왜곡은 예를 들어 "코스트(cost)"의 측면에서(in terms of) 정의될 수 있으며, 어떤 최하위 계층 값(들)을 변경해야 하는지를 결정하기 위한 알고리즘이, 데이터 은닉 동작의 입력 데이터 집합(즉, 데이터 은닉 패턴들에 의해 선택되는 값들)을 형성하는 각각의 값의 변경의 코스트(즉, 품질에서 추정된 감소(an estimated decrease in quality)를 토대로 그 결정을 할 수 있다. 은닉 동작에 의해 초래된 왜곡은 또한 각각의 데이터 은닉 패턴에 의해 선택되는 값들의 개수(즉, 변경을 위해 이용할 수 있는 후보들의 개수)와, 어떻게 이러한 값들이 부호화 유닛의 최하위 계층 값들의 전체 집합에 걸쳐서 분배되는지에 또한 좌우될 수 있다(dependent on). 일반적으로, 말하자면 더 많은 값들이 선택되거나 및/또는 선택된 값들이 보다 큰 값들의 집합에 걸쳐서 분배될수록, 데이터 은닉 동작에 의해 초래되는 왜곡이 데이터 은닉 패턴의 크기에 따라 줄어듬을 예상할 수 있다. 다른 팩터(factor)는 물론 부호화 유닛에 대하여 수행되는 데이터 은닉 동작들의 개수이다.
그러나 데이터 은닉 패턴이 더 커질수록, 데이터 은닉 패턴의 상이한 길이들 사이의 복호화된 신호의 왜곡의 감소(reduction)가 낮아질 것이다. 따라서, CU, PU 그리고 TU 계층들과 관련하여 위에 설명한 바와 같이, 각 계층의 값들에 연관된 최하위 계층 값들에 대하여 최대 길이의 데이터 은닉 패턴을 다수회 적용하는 것을 (일반적으로 상위 계층에 대해) 허용할 수 있으므로, 데이터 은닉 패턴들의 최대 길이를 정의하는 것은 의미가 있다. 이는 데이터 은닉에 의해 초래되는 왜곡을 감소시킬 수 있으며, 또한 데이터 은닉 패턴의 분리된 스택을 정의하는 데 있어서의 복잡도를 감소시킬 수 있다.
게다가, 계층마다 은닉할 비트의 개수가 미리 설정될 수 있으므로, 각 계층의 유닛의 크기(및 그들에 연관된 하위 계층 값들의 개수)가 부호화 처리에서 동적으로 선택될 수 있으며, 부호화 장치뿐만 아니라 복호화 장치가 동적으로 각 부호화 유닛을 부호화 및 복호화하기 위하여 사용될 데이터 은닉 패턴의 스택(예: 계층마다 데이터 은닉 패턴의 개수 및 크기)을 결정할 수 있다. 게다가, 이하에서 보다 상세히 설명되는 바와 같이, 부호화 유닛을 부호화 및 복호화하기 위하여 사용될 데이터 은닉 패턴의 스택의 선택은 부호화 유닛의 구조(예: 각 계층의 유닛의 크기)를 토대로 결정될 수 있으므로, 부호화 및 복호화 장치에서 사용되는 데이터 은닉 패턴들의 크기를 시그널링해야 하는 추가적인 시그널링 오버헤드가 없을 수 있으며, 여전히 데이터 은닉에 의해 초래되는 왜곡을 감소시키기 위하여 데이터 은닉 패턴들의 상이한 스택들의 동적인 사용을 가능하게 한다.
은닉된 데이터의 복호화 즉, 부호화된 부호화 유닛으로부터의 상이한 계층에서의 은닉된 값들의 재구성을 고려하면, 상이한 계층들에서 사용된 데이터 은닉 패턴들의 분리된 스택이 미리 설정되지 않을 수 있으며, 그러나 부호화된 부호화 유닛의 구조로부터 도출될 수 있다. 이하에 설명되는 바와 같이, 예를 들어, 데이터 은닉 패턴들의 스택이 부호화 유닛들의 파라미터들 예를 들어, CG, TU, PU 그리고 CU의 크기를 토대로 부호화 및 복호화 장치에 의해 적응적으로 도출될 수 있다.
본 개념을 설명하기 위하여, 일반성의 손실(loss of generality) 없이 다음의 간단한 예가 고려될 수 있다. 데이터 은닉 패턴이 16비트의 최대 크기(즉, CG의 16 계수들의 집합으로부터 값들을 선택)를 가지는 것으로 가정한다. 더욱이, CG가 CG마다 16개의 계수를 산출하는 4x4의 크기 또는 CG마다 64개의 계수를 산출하는 8x8 크기를 가지는 것으로 가정한다. 게다가, CG에서 첫 번째 4개의 유효 계수들의 부호가 데이터 은닉(4개의 비트가 은닉됨)에 의해 부호화되는 것으로 가정한다. 게다가, CG 계층에 대하여, 미리 설정된 4개의 데이터 은닉 패턴들 DHP1, DHP2, DHP3 및 DHP4이 있으며, 이들은 분리되어 있으며, 각각 16비트의 크기를 가진다. 각 데이터 은닉 패턴이 하나의 비트를 은닉하는 데 사용될 수 있도록, 각 데이터 은닉 패턴(DHP1, DHP2, DHP3 및 DHP4)이 데이터 은닉을 위한 체크 함수로서 패리티 체크 함수를 사용한다.
부호화 처리에서, 부호화 유닛이 4x4 CG를 산출하는 즉, CG에 16개의 계수가 있는 구조를 가지는 경우, 부호화 장치의 처리 유닛은 4개의 데이터 은닉 패턴(DHP1, DHP2, DHP3 및 DHP4)을 사용하여 CG의 16개의 계수들에 대하여 4개의 부호 비트를 은닉하기 위한 4번의 데이터 은닉 동작을 수행할 것이다. 유사하게, 복호화 장치상에서, 복호화 처리시에, 복호화 장치의 처리 유닛이 4x4인 CG의 크기를 인식하고, DHP1, DHP2, DHP3 및 DHP4의 각각에 대하여, CG의 16개의 계수들 중에서 4개의 데이터 은닉 패턴 DHP1, DHP2, DHP3 및 DHP4 각각에 의해 선택되는 계수들을 토대로 패리티 체크 함수의 4개의 결과를 산출한다.
부호화 유닛이 8x8 CG를 산출하는 즉, CG에 64개의 계수들이 있는 구조를 가지는 경우, 부호화 장치의 처리 유닛은 64개의 계수들을 각각 16개의 계수를 가지는 상이한 서브집합들로 분리할 것이며, 16개의 계수들의 각 서브집합에 대하여 4개의 부호 비트를 은닉하기 위한 4번의 데이터 은닉 동작을 수행할 것이다. 4개의 상이한 계수들의 서브집합을 토대로 하는 이러한 4번의 데이터 은닉 동작에서, 부호화 장치의 처리 유닛은 4개의 데이터 은닉 패턴들(DHP1, DHP2, DHP3 및 DHP4) 중 하나 또는 다르게는 그들 모두 또는 4개의 데이터 은닉 패턴들(DHP1, DHP2, DHP3 및 DHP4)의 하나의 서브집합을 사용할 수 있다. 4개의 데이터 은닉 패턴들(DHP1, DHP2, DHP3 및 DHP4) 중 하나 이상의 어떤 것이 부호화 장치에 사용될지가 미리 설정될 수 있으므로, 이 정보는 복호화 장치로 시그널링될 필요가 없다.
유사하게, 복호화 장치상에서, 복호화 처리시에, 복호화 장치의 처리 유닛은 8x8이 되는 CG의 크기를 인식한다. 복호화 장치는 CG의 64개의 계수들로부터 각각 16개의 계수를 가지는 서브집합들을 형성한다(이러한 분리는 물론 부호화 장치와 동일하며, 미리 설정될 수 있음을 주목). 다음에, 복호화 장치는 부호화 장치에 의해 사용된 4개의 데이터 은닉 패턴들(DHP1, DHP2, DHP3 및 DHP4) 중 하나 이상의 동일한 것을 사용하여 16개의 계수로 이루어진 각 서브집합을 토대로 패리티 체크 함수의 4개의 결과를 산출한다.
동일한 계수 집합에 대하여 수행된 4개의 데이터 은닉 동작의 사용에 의해 4x4 CG에서 4개의 비트를 은닉하는 경우와, 상이한 계수 서브 집합에 대하여 수행된 4개의 데이터 은닉 동작의 사용에 의해 8x8 CG에서 4개의 비트를 은닉하는 경우를 비교하면, 패리티 체크 함수가 4개의 부호들 각각에 대하여 정확한 부호 플래그(비트 값)를 산출하는 것을 보장하기 위하여, 계수들의 변경에 의해 초래되는 왜곡이, 8x8 CG에 비하여 4x4 CG에 대한 복호화된 신호에서 더 많은 왜곡을 야기할 수 있음이 보다 명백해진다.
따라서, 데이터 은닉이 CG의 부호화 동안에 사용되었는지를 시그널링 할 수 있는 4x4 CG의 부가 정보에서 플래그를 예견(foreseeing)하는 것을 고려할 수 있다. 다르게는, 데이터 은닉이 TU의 4x4 CG를 부호화하는데 사용되었는지를 시그널링하기 위하여 플래그가 TU 부가 정보에 예견될 수 있다. 부호화 장치는 미리 설정된 또는 구성 가능한 왜곡 임계값을 토대로 4x4 CG에 대한 데이터 은닉의 사용을 결정할 수 있다.
은닉된 데이터의 재구성을 위해, 복호화 장치는 단지 부호화된 CG로부터 CG의 16개 계수(즉, 유효 및 비유효 계수)를 결정할 수 있으며, 그러나 스펙트럼(spectrum)으로부터 시간 도메인으로의 계수의 역 변환(reverse transformation)을 수행할 필요가 없음을 주목한다.
후자의 사항(point)이, 워터마킹 애플리케이션(예: CG 계층 보다 상위 계층, 예를 들어, CU 계층 상)에서 데이터 은닉을 사용하는 경우에, 스펙트럼에서 시간 도메인으로의 계수의 역변환을 수행하지 않고 워터마크가 체크될 수 있으므로, 특히 유리할 수 있다. 워터마크가 확인되지 않으면 유효 처리 자원들(significant processing resources)이 저장될 수 있도록, 워터마크가 부호화된 데이터의 신뢰성을 확인할 수 있다면, 최하위 계층 데이터의 복호화(예: 역변환)가 단지 복호화 장치에 의해 수행될 수 있다.
위의 예가 CG 계층에서 적응적으로 데이터를 은닉하는 것에 관한 것이지만, 유사한 메커니즘이 예를 들어 TU 계층, PU 계층 그리고 CU 계층 중 하나 이상에 대하여 사용될 수 있다. 예를 들어, 도 2에서, TU들 중 일부는 이에 연관된 4x4 = 16 CG를 가지며, 다른 TU들은 이에 관련된 8x8 = 64 CG를 가진다. CG마다 4x4=16 또는 8x8=64 계수들이 있는 것을 고려하면, 이들 모두 대신에, 데이터 은닉 동작을 위한 가능한 입력 데이터 집합이, TU에 속하는 계수들의 전체 개수의 서브 집합을 토대로 할 수 있음이 명백하다.
하나의 예시적인 구현에서, 예시적인 목적을 위해 TU마다 은닉될 8비트가 있는 것으로 가정한다. 4x4 크기의 16개의 CG를 가지는 TU에 대하여, 데이터 은닉 동작이 수행될 수 있는 256개의 계수 값들의 전체 개수를 산출한다. 예시적인 목적으로 단지 32비트의 데이터 은닉 패턴을 고려하면, 하나의 데이터 은닉 패턴은 256개의 계수들에서 8비트를 은닉하는데 충분할 수 있다. 데이터 은닉 패턴은 256개의 계수로부터의 32개의 계수의 별개의 서브 집합에 대한 8번의 데이터 은닉 동작에 적용될 수 있다. 예를 들어, 모든 계층에 걸쳐서 데이터 은닉 패턴들의 스택이 분리되는 것을 보장하기 위하여, 물론 길이 32 비트의 하나 이상의 데이터 은닉 패턴을 정의하는 것을 고려할 수 있다. 따라서, 복호화 장치 측 상에서, 4x4의 TU 크기 및 4x4의 CG의 크기는 복호화 장치가 (부호화 장치에 사용된 바와 같이) 32비트의 미리 설정된 데이터 은닉 패턴(또는 패턴들)을 선택하고, TU에 속하는 256개의 계수들로부터 32개 계수들의 각각의 미리 설정된 서브집합으로부터 8개의 은닉된 비트를 재구성하도록 한다.
8x8 크기의 16개의 CG를 가지는 TU 또는 4x4 크기의 64개의 CG를 가지는 TU에 대하여, 데이터 은닉 동작이 수행될 수 있는 1024개의 계수 값들의 전체 개수를 산출한다. 하나의 가능성은, CG의 증가된 크기에 따라 데이터 은닉 패턴의 크기(및 이들이 따라서 적용되는 계수 서브집합)를 증가시킬 수 있는 것이며, 즉, TU에 속하는 1024개의 계수 중 128개의 계수들의 각각의 미리 설정된 서브집합을 사용하여 8개의 은닉된 비트들을 은닉하고 재구성하는데 사용되는, 하나 이상의 128비트의 데이터 은닉 패턴을 각각 정의할 수 있다.
다르게는, 4x4 CG들을 가지는 4x4 TU의 경우에 사용되는 바와 같은 동일한 데이터 은닉 패턴(들)이 사용될 수 있으며, 이들은 TU에 속하는 1024개의 계수들의 미리 설정된 256개의 계수들에 대하여 동작된다. TU의 나머지 768개의 계수들은 사용되지 않을 수 있다.
또 다르게는, 4x4 CG들을 가지는 4x4 TU의 경우에 사용되는 바와 같은 동일한 데이터 은닉 패턴(들)이 사용될 수 있지만, TU의 나머지 768개의 계수들이 추가적인 비트들을 은닉하기 위하여 사용될 수 있다(즉, 총 32비트가 은닉될 수 있음).
8x8 크기의 64개의 CG들을 가지는 TU에 대하여, 데이터 은닉을 위한 이용 가능한 계수들의 개수가 4096 계수들까지 증가된다. 위의 경우와 유사하게, 이는 데이터 은닉을 위한 계수들의 하나의 서브 집합을 단지 사용하기 위하여, 따라서 데이터 은닉 패턴 크기를 증가시키거나(데이터 은닉 패턴(들)의 크기를 유지시키면서), TU에 더 많은 데이터를 은닉하기 위하여 사용될 수 있다.
얼마나 많은 비트들이 각 계층에 은닉될지에 대한 결정은 또한 복호화된 신호에서 데이터 은닉 동작에 의해 초래된 전체적인 왜곡을 고려해야 한다. 그러나 각 계층에 대한 데이터 은닉이 미리 설정되면, 각 계층의 데이터 유닛(CU, PU, TU, CG)의 크기 및/또는 하나 이상의 각 하위 계층의 데이터 유닛(PU, TU, CG)의 크기와 같은 파라미터는 부호화된 부호화 유닛을 복호화하는 경우, 복호화 장치에 대하여 부호화 장치에 의해 사용된 데이터 은닉 패턴의 스택을 시사(imply)할 수 있다.
데이터 은닉 동작으로 돌아가서, 동일하게 다음과 같이 구현될 수 있다. 입력 데이터 집합에서 1비트의 정보(CG(들)의 계수)를 은닉할 수 있도록, 데이터 은닉 패턴에 연관된 체크 함수가 이진 결과를 가지고, 각 데이터 은닉 패턴이 입력 데이터 집합의 값들의 서브집합(또는 그들의 모든 값들)을 선택하고, 선택된 값들의 집합에 대해 체크 함수를 산출하는 것으로 가정한다. 이 산출의 이진 결과는 은닉될 이진 정보와 비교된다. 만약 결과가 은닉될 이진 정보와 매칭되면, 선택된 값들 중 어떤 값도 변경될 필요는 없다. 만약 결과가 은닉될 이진 정보와 매칭되지 않으면, 체크 함수의 결과가 은닉될 이진 정보와 매칭되도록, 입력 데이터 집합으로부터 데이터 은닉 패턴에 의해 선택된 하나 이상의 값들이 변경되어야 한다.
하나의 예시적인 실시 예에서, 입력 데이터 집합으로부터 데이터 은닉 패턴에 의해 선택된 값들의 필수적인 변경은, 선택된 값(들)의 변경에 의해 초래되는 왜곡을 최소화시키며, 변경될 값(들)을 결정할 수 있는 알고리즘에 의해 수행된다.
값의 선택에서 부분적인 중첩을 가지는 상이한 계층적 계층들에 대한 여러 데이터 은닉 패턴들을 사용하는 경우에(도 4 및 도 5 참조), 부호화 장치는, 첫 번째 데이터 은닉 동작에서 선택되고 변경된 값이 이 값을 다시 선택하는 다른 두 번째 데이터 은닉 동작에서 다시 변경되지 않는 것을 보장한다. 더욱이, 두 번째 데이터 은닉 동작은 체크 함수를 산출할 때 선택되고 변경된 값을 고려해야 한다. 이는 데이터 은닉이 개개의 데이터 은닉 패턴들(및 계층)에 대하여 순차적으로 수행되는 구현을 위해 중요하다.
다르게는, 모든 데이터 은닉 패턴들에 대하여 모든 체크 함수들이 먼저 산출되고 다음에, 각 체크 함수가 정확한 결과를 제공하도록, 하나의 알고리즘이 모든 데이터 패턴들에 대하여 부호화 유닛의 최하위 계층의 값들을 변경하는데 사용되는, 구현이 가능하다.
또한, 위의 두 대안의 하이브리드 구현이 가능하며, 이 경우 예를 들어, 개개의 계층이 순차적으로 처리되며, 그러나 하나의 계층에 대하여, 모든 체크 함수가 하나의 계층의 모든 데이터 패턴에 대하여 산출되고, 각 체크 함수가 정확한 결과를 제공하도록, 변경 알고리즘이 하나의 계층의 모든 데이터 은닉 패턴에 대하여 부호화 유닛의 최하위 계층의 값들을 변경한다.
도 1에 도시된 바와 같은 계층적 구조를 위해, 계수 조정의 특정 규칙이, 정확한 계수 조정을 보장하는 DHP(도6)에 적용될 수 있다. 한 계층의 주어진 DHP(601)에 대하여, 자식 DHP(602, 603)의 집합이 발견될 수 있다. 이 DHP의 집합 내에서, 하나의 특정 DHP(603)가 선택될 수 있다. 다른 자식 DHP(602)가 그들과 그들의 각각의 자식 DHP의 체크 함수의 값을 제어하며, 선택된 DHP(603)는 추가적으로 주어진 부모 DHP(601)의 값을 제어한다. 자식 DHP의 각각에 재귀적으로(recursively) 적용되는 동일한 규칙이 모든 DHP(601-505)에게 목표 체크 함수 값을 제공한다.
다중 계층 계층적 구조의 DHP에 대하여 부호화기 측 상에서의 계수 조정을 포함하는 데이터 은닉 절차의 예시적인 흐름도가 도 7 및 도 8에 도시되어 있다. 부호화 처리는 예를 들어, 도 6에 도시된 바와 같은 구조의 DHP의 스택을 토대로 할 수 있지만, 본 발명은 이에 한정되지 않는다. 조정된 계수들의 결과 집합은 최상위 계층의 각 DHP에 대하여 매칭된 은닉 탐색(701)을 수행하는 것에 의해 획득된다. 본 절차는 다음의 입력을 가지는 최하위 계층을 제외하고 반복된다(recursive).
- 계층 i의 인덱스
- 계층 i의 현재 DHP
- 계층i의 현재 DHP에 관련된 상위 DHP(ancestor DHPs)의 체인(chain)을 나타내는 상위 계층들에 대하여 구성된 DHP의 스택(도 6 참조). 매칭된 은닉 탐색이 최상위 계층의 DHP에 대하여 수행되는 경우, DHP의 스택은 비어있다(empty).
- 각 DHP에 연관된 목표값. 이러한 목표값은 은닉될 값이며, 각 DHP에 의해 선택되는 값에 적용될 체크 함수에 의해 제공될 결과를 정의한다.
단계(702)는 만약 최하위 계층이 처리되는지 또는 처리되지 않는지의 체크를 수행한다. 모든 계층들이 최하위 계층부터 시작하여 0부터 번호가 매겨지고 입력 계층이 인덱스 i를 가지는 것으로 가정하면, 블록(702)은 i를 0과 비교한다.
만약 최하위 계층이 처리되는 것이 아니면(i가 0과 동일하지 않으면), 최선(best) DHP 체인의 탐색이 계속된다(또는 i가 최상위 계층의 인덱스와 동일한 경우에 시작됨). 시작 및 계속 탐색 모두에 대하여 다음의 단계들, 최선 코스트(best cost) 초기화(703), 탐색의 상태 저장(704), DHP 스캔(705), 및 계수 갱신(718)이 수행된다.
최선 코스트의 초기화(703)는 최선 은닉 코스트가 재정의되지 않는 한 최선 코스트 체크(715)가 참(true) 값을 리턴하는 것을 보장한다. 예를 들어, 최선 은닉 코스트가 변수에 저장될 수 있으면, 초기화(703)는 단계(714) 동안에 산출된 임의 은닉 코스트보다는 큰 이 변수의 가장 높은 가능한 값(the highest possible value)을 할당(assign)할 수 있다.
초기화(703)의 다른 가능한 방법은 제1 시간에 대한 체크(715) 전에, 거짓(false)과 동일한 특정 초기화 플래그를 도입하는 것이며, 체크(715) 이후에 이를 참으로 스위칭하는 것이 수행된다. 이 경우, 체크(715)는 초기화 플래그가 거짓이면 언제나 참일 수 있다.
탐색의 상태를 저장하는 것(704)은 DHP 스캔(705) 일관성(consistency) 즉, 스캔(705)의 모든 개개의 반복(iteration)이 동일한 DHP의 스택 및 계수의 상태와 시작하는 것을 유지하기 위하여 필요하다. 현재 DHP와 DHP의 스택에 대응하는 서브 집합의 계수들은 모두 단계(704) 동안에 임시 어레이(temporary array)에 저장될 수 있으며, 복원 단계(706) 동안에 임시 어레이로부터 복원될 수 있다. 다르게는, 복원 단계(706)가 705의 다음 반복을 시작하기 전에 즉, 717의 완료 후에 또는 715가 거짓으로 평가한 경우에 수행될 수 있다. 그러나 706의 배치(placement)는 705의 모든 반복에 대하여 동일한 계수의 초기 상태 및 동일한 DHP의 스택의 초기 상태를 제공하기 때문에, 획득된 결과에 영향을 주지 않는다.
자식 DHP에 대한 계수의 서브집합이 현재 DHP에 대응하는 계수의 서브집합에 포함되면, DHP는 현재 DHP에 대한 자식 DHP이다. 목표 체크 함수의 결과를 자체(itself)뿐만 아니라 상위 DHP의 체인에게도 제공할 수 있는 그러한 자식 DHP를 선택하기 위하여, 단계(705)는 현재 DHP에 대하여 자식 DHP인 계층 i-1의 모든 DHP들을 스캔한다.
후보 자식 DHP가 선택되는 경우, 임의 자식 DHP의 계수의 조정(adjustment)이 선택된 DHP에 대하여 수행되는 조정에 영향을 줄 수 있기 때문에, 다른 자식 DHP가 먼저 조정된다. 단계(707)는 선택된 DHP를 제외한 모든 자식 DHP들에 걸쳐서 반복되며, 그들 각각에 대해 매칭된 은닉 탐색을 수행한다. 그러나 반복(707) 동안에 현재 DHP 스택이 아니라 단계(708)에서 구성된 새로운 스택이 매칭된 은닉 탐색(709)으로 전달된다. 새롭게 구성된 집합은 단계(707)에서 최근에 반복된 자식 DHP를 포함하며, 따라서, 707에 의해 반복된 모든 DHP는 정확한 체크 함수 결과를 상위 DHP(ancestor DHP)가 아닌 자신과, 자신의 하위 DHP(successor DHP)에게 제공한다.
상위 DHP의 목표 체크 함수 값은, 반복 단계(705)에서 선택된 자식 DHP에 의해 제공된다. 그러므로 단계(707)가 완료되는 경우, DHP의 입력 스택은 선택된 자식 DHP(711)와 선택된 자식 DHP에 대해 부모인 현재 입력 DHP(712) 와 함께 갱신된다.
모든 계수 조정이 완료되면, 주어진 DHP 스택에 대하여 은닉(714)의 코스트를 산출하는 것이 가능하다. 이 코스트를 최선의 코스트와 비교(715)하는 것에 의해, 최선 계수 조정 변형(variant)이 선택될 수 있다. 이 선택은 임시 어레이에 대해 계수 조정(716)을 저장하는 것과, 단계(714)에서 산출된 현재 코스트로 최선 코스트(717)를 재정의하는 것을 포함한다. 현재 DHP에 대한 모든 변형이 단계(705)에서의 반복에 의해 처리되는 경우, 단계(718) 동안에 계수의 최선 조정(best adjustments)이 임시 어레이로부터 복원된다. 추가 액션(712)은 현재 계층 i에 따른다. 만약 i가 상위 계층 인덱스와 일치하면, 매칭 은닉 탐색이 완료되고 DHP의 계수들이 조정된다. 그렇지 않으면, 재귀적 호출(recursive call)이 완료되고 따라서 709 다음의 다른 단계가 수행된다.
최하위 계층(i가 0)인 경우에 대하여, 매칭된 은닉 탐색(701)이 DHP의 입력 스택에 따라 서브집합 조정(720)을 수행한다. 단계(719)에서 서브집합 조정을 위해 선택된 계수들은 DHP의 입력 스택의 최상위 계층의 DHP에 대응하는 서브집합에 속한다.
도 8은 주어진 계수의 서브집합, M개의 DHP를 포함하는 주어진 DHP의 스택 그리고 DHP가 DHP의 스택에 속하면 각각에 의해 제공되는 주어진 목표 값들의 스택에 대한 계수 조정(801)의 처리를 나타낸다. 재귀적 호출의 카운터는 단계(802)에서 0으로 초기화된다. 그러나 본 단계(802)는 서브집합 조정(801)이 재귀적으로 호출되면 스킵(skip)될 수 있다. 나중에, 체크 함수의 결과 따라서 목표 값의 스택으로부터의 값과 일치하는지를 검증하는 서브집합 체크(803)가 수행된다. 이 체크(803)는 각 DHP에 대하여 체크 함수 값을 산출하는 것(804)과 이 값을 목표 값과 비교하는 것(805)으로 이루어진다.
만약, 이 동등함(equality)이 DHP의 입력 스택의 모든 DHP들에 대하여 나타나면, 서브집합 조정이 완료된다. 서브집합 조정(801)이 단계(815)로부터 재귀적으로 호출되어도, 즉시 종료(Immediate exit)(813)가 수행된다.
그렇지 않으면, 계수 조정의 탐색이 계속된다. 스택의 DHP가 분리되기 때문에, 체크 함수의 목표 값들이 최대 M개의 계수들을 조정하여 획득될 수 있다는 것을 주목할 수 있다. 그러나 상황에 따라, 요구되는 조정 개수들이 M보다 적을 수 있다.
계수 조정은 계수의 값을 임시 어레이에 저장하는 것(806)으로 시작하며, 그래서 반복적 탐색(807) 동안의 임의 조정은 초기 상태로 복원될 수 있다. 이 반복 탐색(807)은 이전 재귀적 호출에서 이미 변경된 계수들을 제외한 입력 서브집합의 모든 계수들에 대하여 수행된다. 선택된 계수들에 대하여 조정(808)이 수행된다. 구체적으로, 이 조정은 몇 개의 상수 값(constant value)(양 또는 음)을 추가하거나 또는 계수의 비트의 값을 바꾸는 것(altering)으로 이루어진다. 이외에, 단계(808)에서, 조정의 코스트가 산출된다. 다음에, 계수의 집합이 초기 상태로 롤백(roll back)되고, 다음 계수가 선택된다.
모든 계수들이 반복되는 경우, 순환 루프(recursion loops)의 카운터가 단계(811)에서 증가된다. 이 카운터에 대한 특정 체크(special check)(810)가 가능한 에러를 검출하기 위하여 수행된다. 단계(810)는 선택적인 것으로 생략될 수 있다. 구체적으로, 만약 순환 카운터가 스택 M의 DHP의 개수를 초과하면, 서브집합 체크(803)가 M개의 조정된 계수들에 대하여 성공하지 못한 것을 의미한다. 이 상황은 단지 스택의 DHP가 분리되지 않은 경우에만 가능하다. 이 상황이 발생하는 경우, 체크(810)는 성공하지 않으며, 에러(812)가 처리되어야 한다(handled). 일반적으로, 체크(810)는 모든 경우에 참이어야 한다. 순환 카운터를 증가시키는 것(811) 이외에, 입력 계수들이 단계(808)에서 산출된 계수로부터 선택된 최선 코스트에 따라 조정된다. 최선 코스트 값을 제공하는 계수 조정은 단계(8140에서 수행되며, 조정된 계수는 다음 반복 동안에 수행되는 체크(807)에서 배제되며, 최종적으로 서브집합 조정이 재귀적으로 호출된다(단계 815).
분명히, 위에 기술된 서브집합 조정(801)은 최소의 조정 코스트로 M 개의 계수들 또는 적은 개수의 계수들을 변경한다. 조정 절차(801)는 차선(suboptimal)이지만, 항상 유효 입력 조정에 대하여 유효 결과를 제공해야 한다. 재귀적 호출(815)이 이 절차의 마지막 단계이기 때문에, 이 절차는 또한 루프의 형태로 구현될 수 있음을 주목할 수 있다.
두 개의 계층 내에서의 데이터 은닉의 특정 경우에 대하여, 도 9에 도시된 바와 같이, 간단한 방식(simpler scheme)(901)이 고려될 수 있다. 이 예에서, 예시적인 목적을 위해, 부모 DHP는 TU에 대응하고 자식 DHP는 CG에 대응하는 것으로 가정한다. 최선 코스트와 은닉 플래그의 초기화(902)인 이 절차의 첫 번째 단계가 수행된다. 최선 코스트를 초기화하기 위한 방법(way)은 일반화된 방식의 단계(703)와 같다. 매칭된 은닉 플래그의 초기 값이 0이다. 단계(904~908)를 통하여 고리를 만드는(loops) 반복(903)이 종료되는 경우, 최소 조정 코스트를 가지는 CG가 결정된다. 체크 단계(906)는 계층 0에 대하여 계수 조정의 필요가 존재하는지에 따라 방식의 다음 단계를 제어한다. 만약 이러한 필요가 적어도 하나의 CG에 대하여 검출되면, 매칭된 은닉 플래그가 단계(908)에서 하나로 설정된다.
단계(903) 다음의 동작은 계층 0이 조정을 필요로 하는지의 여부에 따른다. 만약 그렇다면, 단계(909)와 단계(910)는 최소 코스트를 가지는 CG를 제외한 모든 필요한 CG를 조정한다. 그렇지 않으면, 최소 조정 코스트를 가지는 계수가 모든 CG 내에서 탐색된다(단계 911).
다음 단계(912)는 (TU에 대한) 계층 1에서 체크 함수 값을 산출하는 것이다. 이 값은 목표 값과의 비교에 의해 체크된다(913). TU에 대해 조정이 수행되어야 하면, 단계(914)와 단계(916)가 TU의 DHP에 의해 선택된 최소 코스트의 계수를 조정한다. 매칭된 은닉 플래그 값에 따라, 두 번째 계수가 단계(915) 및 단계(917)에서 조정되어야 한다. 이 조정은 계층 1에 대한 조정과 계층 0에 대한 조정을 매칭하기 위하여 필수적이다.
만약 TU 체크 함수 평가(913)가 성공하고, 매칭된 은닉 플래그가 0이 아니면, TU의 DHP에 속하지 않는 하나의 계수를 조정하는 것이 가능하다. 그러므로 단계(915, 917)가 이 경우에 수행될 수 있다.
만약 TU 체크 함수 평가(913)가 성공하고, 매칭된 은닉 플래그가 0이면, 조정할 필요가 없으며, 절차(901)는 종료된다(918).
위의 설명에서, 입력 데이터 집합의 변경으로부터 기인한 은닉 코스트를 참조한다. 비디오 또는 영상 부호화 컨텍스트(context)에서, 은닉 코스트는 예를 들어, 입력 데이터 집합의 주어진 변경으로부터 기인하는 영상 품질의 감소를 추정하거나 결정하는 일부 코스트 함수에 의해 결정될 수 있다. 영상 품질의 이러한 감소는 예를 들어, 입력 데이터 집합의 변경으로부터 기인하는 비율 왜곡(rate distortion)을 결정하거나 계산하는(approximate) 코스트 함수를 사용하여 추정될 수 있다. 특히(Notably), 비율 왜곡의 산출이 자원 사용의 관점에서 코스트가 많이 들기(expensive) 때문에, 낮은 계산 집약적 추정의 코스트(less computationally intensive estimation of the costs)를 허용하며, 단지 품질 감소의 추정을 제공하는 코스트 함수를 선택하는 것이 바람직할 수 있다.
은닉된 데이터의 복호화 처리는 다음과 같이 구현될 수 있다. 복호화 장치는 부호화된 데이터의 스트림으로부터 각각의 부호화된 부호화 유닛을 획득한다. 부호화 장치에 의해 사용된 분리된 데이터 은닉 패턴들의 스택이, (위에 기술된 바와 같이) 부호화된 부호화 유닛의 구조로부터 고정되거나(static) 구성 가능하거나(configurable) 또는 도출 가능할 수 있기 때문에, 복호화 장치는 부호화 장치에서의 데이터 은닉 동작의 기초를 형성하는 데이터 은닉 패턴과 입력 데이터 집합을 안다. 따라서, 복호화 장치는 적절한 입력 데이터 집합을 사용하여 각 데이터 은닉 패턴의 체크 함수를 간단하게 산출할 수 있다. 체크 함수(들)의 이러한 출력 값은 복원된 은닉된 데이터를 나타낸다.
데이터 은닉 동작을 위한 체크 함수의 선택에 관하여, 체크 함수에 대한 요구사항은 입력 목표 값의 집합에 대하여 하나의 출력 값(이진 또는 비이진)을 가지도록 하는 것이다. 체크 함수의 가장 일반적인 타입은, 입력 목표 값의 합이 짝수인지 홀수인지를 체크하여 이진 출력 값을 도출하는 패리티 체크 함수이다. 다음 리스트에, 체크 함수의 일부 다른 유효한 예가 제공된다.
- 일부 거리 함수(distance function)(예: 합(sum) 함수) 결과를
Figure 112016105135219-pct00001
로 나눈 것의 나머지(remainder)의 제로와 동일(equality to zero)
- 제로(zero)(또는 비제로) 값들의 개수의 패리티
- 일부 통계적 특성값(평균(mean), 편차(deviation) 등)을 임계값과 비교
체크 함수의 출력 값이 또한 비 이진(non-binary)으로 정의될 수 있다. 예를 들어,
- 일부 거리 함수(예: 합 함수) 값을
Figure 112016105135219-pct00002
로 나눈 것의 나머지. 이 경우, 체크 함수 출력 값이 범위 [0,…, x-1]로 한정된다.
- 일부 통계적 특성(평균, 편차 등)의 양자화된 값
- 일부 기준을 만족하는 주어진 값들의 집합 내부의 엘리먼트들의 개수의 함수
본 발명의 예시적인 실시 예에 따라 비디오 스트림을 복호화하는 상세한 처리가 도 10에 도시되어 있다. 이 복호화 처리는 위의 도 7 및 도 8과 관련되어 기술된 방법을 사용하여 부호화된, 부호화된 비디오 스트림을 복호화하는데 적합하다. 부호화된 입력 비트스트림(1001)이 엔트로피 복호화기(entropy decoder)(1002)에 의해 처리된다. 복호화된 값들의 일부는 양자화된 변환 계수(1005)의 절대값에 대응한다. 이러한 값들은 역양자화기(de-quantizer)에 의해 추가로 처리된다. 이 처리의 결과는 정확한 부호가 할당된 이후에 역변환(inverse transform) 처리를 위해 적합한 계수들의 절대값들이다.
값들의 부호는 예를 들어, 부호화된 입력 스트림(1001)에서 명시적으로(explicitly) 시그널링될 수 있으며 또는 그것에 은닉된 데이터로서 포함될 수 있다. 첫 번째 경우, 부호의 도출이 엔트로피 부호화기(1002)에 의해 명시적으로 수행될 수 있으며, 두 번째 경우에 양자화된 변환 계수에 대응하는 집합에 적절한 DHP를 적용하는 것에 의해 암시적으로 수행될 수 있다. DHP 선택기(selector)(1006)는 엔트로피 복호화기(1002)에 의해 제공되는 이용 가능한 양자화된 변환 계수들에 따라 DHP 선택을 수행한다. 계수들이 단지 계수 그룹(coefficient group (CG))에 대하여 이용 가능한 경우, DHP 선택기(1006)는 CG에 대한 부호 값(또는 값들)을 추출하고, 계수의 정확한 값을 획득하기 위하여 이러한 부호(1008)를 역 변환(1004)에 제공한다.
양자화된 변환 계수가 하나 이상의 CG를 포함할 수 있는 보다 큰 구조의 엘리먼트에 대하여 이용 가능한 경우, DHP 선택기(1006)는 적용될 수 있는 모든 DHP를 주어진 계수의 집합에 적용한다. 어떤 DHP가 선택되는지에 따라, 출력 값이 레벨 스위치(1007)에 의해 디스패치된다(dispatched). 계수 부호(1008)에 대하여 기술된 바와 같이, 1007의 출력은 복호화된 데이터의 일부를 제공할 수 있다. 이 경우, 나머지 데이터가 다르게 복호화되어야 한다. 가장 확실한 방법 중 하나는 이 일부를 명시적으로 복호화하고 엔트로피 디코더(1002)를 사용하여 복원하는 것이다.
도 10에 도시된 바와 같이, DHP 선택기(1006)의 가능한 출력 데이터는 다음과 같은 것들 중 하나 이상일 수 있다.
- 계수 부호(1008)
- 기준 샘플을 필터링하기 위한 플래그(1009) (이것의 사용은 도 12에 추가적으로 도시됨)
- 인트라 예측(intra-prediction)의 모드(1010)
- 루프 필터 파라미터(1011)
- 워터마크 비트(1012)
그러나 도 10은 단지 양자화된 변환 계수 내에서 혹시 은닉될 수 있는 데이터의 여러 예를 보여준다. 은닉된 데이터의 가능한 타입은 위의 리스트에 한정되지 않는다.
변환 계수가 역 변환된 다음에, 잔여 신호(residual signal)가 복원되며, 이는 예측 신호(1019)에 더 추가된다. 선택된 예측 모드에 따라 인트라 예측(1013) 또는 인터 예측(1014)을 사용하여 예측 신호가 생성된다. 이 선택은 스위치(1018)의 형태로 구현될 수 있다. 인트라 및 인터 예측 모두, 프레임 버퍼(1017)에 저장되어 있는 이전에 복호화된 화소를 사용한다. 그러나 인트라 예측 메커니즘은 루프 필터(1015)에 의해 변경되지 않은 화소를 사용할 수 있다.
비디오 부호화 애플리케이션 이외에, 제안된 발명은 또한 워터마킹과 같은 부가적인 태스크(task)를 해소할 수 있다. DHP 선택기(1006)는 은닉된 워터마크 비트(1012)를 복원할 수 있으며, 이러한 비트들에 대한 워터마크 검증기(validator)(1016)에 의해 리턴되는 결과에 따라, 스위치(1020)에 의해 예시된 바와 같이, 출력 프레임들이 출력으로부터 방지된다. 만약 검증이 성공하면, 스위치(1020)는 "닫히고(closed)", 출력 그림(1021)은 복호화기에 의해 출력된다. 그렇지 않으면, 스위치(1020) "개방되고(opened)", 워터마크 검증기(1016)가 워터마크 불일치(mismatch)를 시그널링할 수 있다.
도 11은 본 발명의 실시 예에 따른 비디오 부호화 장치의 예시적 구조를 나타낸다. 부호화 장치는 또한 복호화 장치에서 분리하여 제공될 수 있는 복호화를 위한 블록(1112-1115)을 포함하며, 엔트로피 복호화기(1002)를 더 포함한다. 도 11의 장치는 예를 들어, 애플리케이션 특정 (application-specific) 또는 일반적인 목적의 컴퓨팅 디바이스에 구현될 수 있다(도 14 및 도 15 참조). 부호화 장치는 부호화될 개개의 프레임/슬라이스(1002)를 포함하는 비디오 신호를 수신하고, 부호화된 비트스트림(1110)을 생성한다. 도 15에 도시된 바와 같이 복호화 장치는 부호화된 비트스트림(1110)을 수신하고, 비디오 신호의 각 프레임/슬라이스에 대하여 복호화된 비디오 프레임/슬라이스를 출력할 수 있다.
부호화 장치는 움직임 추정/움직임 보상 블록(1101), 모드 결정 블록(1105), 변환 블록(1106), 양자화기(1007), 그리고 엔트로피 부호화기(entropy encoder (CABAC))(1109)를 포함한다. 모드 결정 블록(1005)은 비디오 소스(source)에 대한 적절한 부호화 모드를 결정할 수 있다. 모드 결정 블록(1005)은 예를 들어, 대상(suject) 프레임/슬라이스가 I, P 또는 B 프레임/슬라이스인지를 결정하거나 및/또는 프레임/슬라이스 내의 특정한 부호화 유닛이 인터 또는 인트라 부호화되어 있는지를 결정한다.
변환 블록(1106)은 공간적 도메인 데이터(spatial domain data)에 대한 변환을 수행한다. 변환 블록(1106)의 이러한 변환은 스펙트럼 성분( component)에 대하여 공간적 도메인 데이터를 변환하기 위한 블록 기반 변환일 수 있다. 예를 들어, 이산 코사인 변환(discrete cosine transform (DCT))이 변환을 위해 사용될 수 있다. 이산 사인 변화 또는 다른 것과 같은 다른 변환이 또한 사용될 수 있다. 블록 기반 변환은 부호화 유닛의 크기에 따라 부호화 유닛에 대해 수행된다. 화소 데이터의 블록의 블록 기반 변환은 위에 기술된 바와 같이, 변환 계수들의 집합을 출력한다. 변환 계수는 양자화기(1107)에 의해 양자화된다. 양자화된 계수와 연관된 부가 정보가 엔트로피 부호화기(CABAC)(1109)에 의해 부호화된다. 양자화된 계수의 블록 또는 매트릭스(matrix)가 변환 유닛(transform unit (TU))으로 명명될 수 있다. 일부의 경우, TU는 정사각형이 아닐(non-square) 수 있으며, 예를 들어, NSQT(non-square quadrature transform)일 수 있다.
인트라 부호화된 프레임/슬라이스(즉, 타입 I)는 다른 프레임/슬라이스(1103)을 참조하지 않고 부호화되며, 따라서 시간적 예측(temporal prediction)을 사용하지 않는다. 인트라 부호화된 프레임(블록 1104 참조)은 프레임/슬라이스 내에서의 공간 예측(spatial prediction)에 의존한다. 블록에서 화소의 특정 블록을 부호화하는 경우, 그 프레임/슬라이스에 대하여 이미 부호화된 블록 내의 주변 화소(nearby pixels)의 데이터와 비교될 수 있다. 예측 알고리즘을 사용하여, 블록의 소스 데이터가 잔류 데이터(residual data)로 변환될 수 있다. 변환 블록(1106)은 잔류 데이터를 부호화한다.
인트라 예측이 기준 샘플(by reference sample) 생성 블록(11110에 의해 생성되는 기준 샘플들에 대해 수행된다. 블록(1111)은 인트라 예측에 대하여 필터링된 또는 필터링되지 않은 기준 샘플을 출력할 수 있으며, 그들 중 어떤 것을 사용할지의 선택이 필터링 플래그에 의해 시그널링된다. 도 11의 예에서, 예시적으로 기준 샘플 필터 플래그가 은닉된 데이터로서 출력 비트스트림(1110)에 추가되는 것을 가정한다. RSAF 플래그 은닉 블록(1108)은 도 7 및 도 8과 관련되어 기술된 바와 같은 은닉 동작을 수행하며, 선택적으로, 변환 블록(1106)으로부터 획득된 변환 계수들의 부호(도 11에 도시되지 않음)의 일부 또는 모두와 같은, 부가 정보를 추가로 은닉할 수 있다.
시간 예측의 효과를 활용하는 움직임 예측/보상을 지원하기 위하여, 부호화 장치는 역 양자화기(inverse quantizer)(1112), 역 변환(inverse transform) 블록(1113), 디블록킹 필터(1114), 그리고 선택적으로 샘플 적응 오프셋 (sample adaptive offset) 블록(1114)을 포함하는 피드백 루프를 가진다. 디블록킹 필터(114)는 디블로깅 프로세서와 필터링 프로세서를 포함할 수 있다. 엘리먼트(1112-1115)는 위에 기술한 바와 같이, 원래(original) 프레임/슬라이스를 재생성하기 위하여 복호화 장치에 의해 구현되는 복호화 장치를 반영(mirror)한다. 프레임 저장소(기준 프레임들(1103))가 재생성된 프레임을 저장하는 데 사용된다. 이러한 방식에서, 움직임 보상은 원래 프레임이 아니라, 어떤 것이 재생성된 프레임이 될지를 토대로 하며, 이는 부호화/복호화에 포함되는 손실 압축(lossy compression)에 의한 재생성된 프레임과는 다를 수 있다. 움직임 추정/움직임 보상(1101)은 유사한 블록을 식별하기 위하여, 현재 프레임에 대한 비교를 위한 소스 프레임/슬라이스로서 프레임 저장소에 저장된 프레임/슬라이스를 사용한다. 움직임 추정/움직임 보상(1101)에 의해 제공되는 데이터는 부가 정보, 기준 프레임에 관한 정보, 움직임 벡터, 그리고 (만약 어떠한) 기준 블록과 현재 블록 사이의 차이를 나타내는 잔류 화소 데이터를 포함할 수 있다. 움직임 추정/움직임 보상(1101)에 제공된 잔류 신호는 추가로 부호화될 수 있다. 기준 프레임 및/또는 움직임 벡터에 관한 정보는 변환 블록(1106) 및/또는 양자화기(1107)에 의해 처리되지 않을 수 있으며, 그러나 대신에 양자화된 계수와 함께 비트스트림의 일부로서 부호화를 위해 엔트로피 부호화기(CABAC)(1109)로 제공될 수 있다.
복호화 장치는 부호화기의 엔트로피 부호화를 반대로 하는 엔트로피 복호화기뿐만 아니라 도 11에 도시된 블록(1112 내지 1115)을 포함할 수 있다.
본 발명은 광범위의 애플리케이션을 가진다. 위에 기술된 바와 같이, ITU T H.265/HEVC 인트라 예측을 위한 기준 샘플 필터링을 위한 애플리케이션 암시적 플래그 시그널링과 같은 한 예가 위에 기술된 바와 같이 구상될 수 있다. 그러나 위에 기술된 바와 같이, 부호화 동안에 생성되는 데이터 구조의 일부를 형성하는 다른 부가 정보가 또한 발명에 의해 은닉될 수 있다. ITU T H.265/HEVC에 따르면, 로우 패스 필터(low-pass filter)를 기준 샘플에 적용할 지의 여부에 대한 결정이, 선택된 예측 모드와 예측될 블록의 크기에 따라 이루어진다. 이러한 결정은 제안된 발명을 사용하여 양자화된 변환 계수 내에서 암시적으로 시그널링될 수 있는 플래그에 의해 오버라이드(override)될 수 있다. 이 변경은 도 12에 도시되어 있다.
미디어 압축에 더하여, 본 발명을 위한 사용 케이스의 큰 집합(large set of use-cases)은 워터마킹 애플리케이션에서 발견될 수 있다. 도 13a, 도 13b 그리고 도 13c는 이러한 실시 예들의 일부를 나타낸다. 도 13a, 도 13b 그리고 도 13c에 도시된 사용 케이스는 DHP를 ID 카드에 저장된 디지털 사진(photo)의 화소 또는 양자화된 변환 계수에 적용하여 추출될 수 있는 은닉된 데이터를 사용하여 ID 카드의 식별자를 검증하는 것으로 이루어지는 인증 절차(authentication procedure)를 나타낸다. 검증은 상이한 방법들 예를 들어, 체크썸(checksum) 값을 산출하여 이것을 추출된 데이터와 비교하는 것으로 수행될 수 있다. 만약 비교 불일치가 발생하면, 인증이 실행한다. 이러한 불일치는 디지털 사진 또는 식별자가 승인없이 바뀐 것을 나타낸다. 만약 비교가 성공하면, 검증은 긍정적인 인증(positive authentication)을 야기한다.
도 13b는 템퍼 감지(tamper detection) 애플리케이션의 예를 제공한다. 이 경우에 대하여, 디지털 그림(picture)이 그 블록에 예를 들어, 화소 값이나 변환 계수에 은닉된 키 데이터를 가지도록 준비되어 있는 것으로 가정한다. 워터마크 판독 동작은 DHP를 사용하여 그림의 블록으로부터 은닉된 키를 검색하며, 이는 보안 키를 사용하여 추가적으로 검증된다. 검증 절차는 도 8a에 도시된 경우에 대한 것과 동일하며, 따라서 불일치는 변조된 특정 그림 블록을 검출하는 것을 야기한다.
다른 사용 케이스(도 13c)는 임플리시트 메시지(implicit message)의 존재를 검출하기 어려운 방식에서, 익스플리시트(explicit) 메시지 내에서 임플리시트 메시지를 전송하는 것이 요구되는 것을 가정한다. 도 8c에 도시된 사용-케이스의 예에서, 익스플리시트 메시지의 복호화 동안에 양자화된 값에 DHP를 적용하여 임플리시트 메시지가 복원된다.
도 14는 부호화기(1400)의 예시적 실시 예의 간단화된 블록도를 나타낸다. 부호화기(1400)는 프로세서(1401), 메모리(1402), 그리고 부호화 애플리케이션(1406)을 포함한다. 부호화 애플리케이션(1403)은 메모리(1402)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있으며, 여기에 기술된 바와 같은 동작을 수행하도록 프로세서(1401)를 구성하기 위한 명령(instructions)을 포함한다. 예를 들어, 부호화 애플리케이션(1403)은 여기에 기술된 다양한 실시 예들 예를 들어, 도 7과 도 8과 관련된 실시 예들에 따른 부호화 처리에 따라 부호화된 비트스트림을 부호화하고 출력한다. 부호화 애플리케이션(1403)이 컴퓨터 판독 가능 매체에 저장될 수 있음을 이해할 수 있을 것이다. 출력 비트스트림은 예를 들어 통신 시스템(1404)를 통해 전송될 수 있으며 또는 컴퓨터 판독 가능 매체에 저장될 수 있다.
복호화기(1500)의 예시적 실시 예의 간단화 된 블록도를 나타내는 도 15를 참조할 수 있다. 복호화기(1500)는 프로세서(1501), 메모리(1502), 그리고 복호화 애플리케이션(1503)을 포함한다. 복호화 애플리케이션(1503)은 메모리(1502)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있으며, 예를 들어, 위의 도 10에 관련되어 기술한 바와 같이, 여기에 기술된 다양한 실시 예들에 따라 입력 비트스트림을 복호화도록 프로세서(1501)를 구성하기 위한 명령을 포함한다. 복호화 애플리케이션(1503)이 컴퓨터 판독가능한 매체에 저장될 수 있음을 이해할 수 있을 것이다. 입력 비트스트림은 예를 들어 통신 시스템(1404)을 통해 수신될 수 있으며 또는 컴퓨터 판독 가능 매체로부터 판독될 수 있다.
일부 측면(aspects )들이 방법의 컨텍스트에서 설명되었지만, 이러한 측면들이 그러한 방법을 수행하도록 적절하게 적응된 대응 장치의 설명을 나타내는 것이 명백하다. 이러한 장치에서 (기능적 또는 유형의(tangible)) 블록은 하나 이상의 방법 단계 또는 방법 단계의 특징에 대응할 수 있다. 유사하게(Analogously), 대응 장치의 대응 블록 또는 아이템(item) 또는 특징의 컨텍스트에서 기술된 측면은 또한 대응 방법의 개개의 방법 단계에 대응할 수 있다.
더욱이, 여기에 기술된 방법은 프로세서(들), 마이크로프로세서(들), 프로그래머블 컴퓨터 또는 전자 회로(electronic circuit)와 같은 하드웨어 장치에 의해(또는 사용하여) 실행될 수 있다. 일부 하나 이상의 중요 방법 단계들은 이러한 장치에 의해 실행될 수 있다. 여기서 장치가 기능적 블록의 관점에서 기술되었으며, 장치의 엘리먼트가 하드웨어 엘리먼트/회로(circuitry)로 완전히 또는 부분적으로 구현될 수 있음을 추가로 이해하여야 한다. 프로세서(들), 마이크로프로세서(들) 등과 같은 개개의 하드웨어는 장치의 하나 이상의 엘리먼트의 기능성(functionality)을 구현하는 데 사용될 수 있다.
또한, 하드웨어에서 장치의 기능적 엘리먼트의 방법 단계를 구현하는 처리에서 정보 또는 데이터가 저장되며, 장치는, 장치의 하나 이상의 하드웨어 엘리먼트/회로에 통신 가능하게(communicatably) 결합될 수 있는 메모리 또는 저장 매체를 포함할 수 있다.
본 발명의 측면을 하드웨어에서 또는 소프트웨어에서 또는 그들의 조합에서 구현하는 것이 또한 숙고된다(contemplated). 이는 예를 들어, 플로피 디스크, DVD, 블루레이(Blu-Ray), CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리와 같은, 전자적으로 판독 가능한 제어 신호 또는 그들에 저장된 명령을 가지는 디지털 저장 매체를 사용할 수 있으며, 각각의 방법이 수행되도록 프로그래머블 컴퓨터 시스템과 협력한다(또는 협력할 수 있다). 전자적으로 판독 가능한 제어 신호 또는 명령을 포함하는 데이터 캐리어(data carrier)가 제공될 수 있으며, 이는 제공될 수 있으며, 이는 각각의 방법이 수행되도록 프로그래머블 컴퓨터 시스템과 협력할 수 있다.
프로그램 코드를 가지는 컴퓨터 프로그램 생성물의 형태로 본 발명의 측면을 구현하는 것이 또한 숙고되며, 프로그램 코드는 컴퓨터 프로그램 생성물이 컴퓨터 상에서 실행되는 경우에 방법을 수행하도록 동작된다. 프로그램 코드는 머신 판독 가능한 캐리어(machine readable carrier)에 저장될 수 있다.
위에 기술된 것은 단지 예시적인 것이며, 여기에 기술된 배열(arrangements)의 변경 및 변형 그리고 세부사항(the details)은 당업자에게 명백할 것임을 이해한다. 그러므로 의도(intent)는 위의 기술 및 설명의 방식으로 제시된 구체적인 세부사항에 의한 것이 아니고, 첨부한 청구범위의 범위에 의해 한정된다.

Claims (31)

  1. 계층적으로 계층화된(hierarchically layered) 부호화(coding) 유닛의 값을 상기 부호화 유닛이 포함하는 다른 값에 은닉하는(hiding) 방법으로서,
    상기 부호화 유닛의 상이한 계층(layer)들에서 상기 부호화 유닛의 값들을 은닉하기 위한 데이터 은닉 패턴들의 계층화된 스택(layered stack)을 제공하는 단계 - 상기 데이터 은닉 패턴들 각각은 상기 부호화 유닛의 계층들 중의 하나에서 상기 부호화 유닛의 하나 이상의 값을 은닉하기 위한 것에 관련된 체크 함수(check function)를 가짐 -; 및
    상기 데이터 은닉 패턴들 각각에 대하여 다음의 단계:
    (i) 상기 부호화 유닛의 상기 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택되는 값들을 기반으로, 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하는 단계,
    (ii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하는지를 결정하는 단계, 및
    (iii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하지 않으면, 상기 단계 (ii)에서의 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하도록, 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 단계
    를 수행하는 단계
    를 포함하며,
    부호화된 부호화 유닛은, 모든 데이터 은닉 패턴에 대해 상기 단계 (iii)에서 변경된, 상기 부호화 유닛의 상기 다른 값들을 포함하고,
    상기 데이터 은닉 패턴은 데시메이션(decimation) 기반 데이터 은닉 패턴들, 하나 이상의 일반(regular) 데이터 은닉 패턴, 그리고 하나 이상의 의사 랜덤(pseudo-random) 데이터 은닉 패턴 중 적어도 하나로 이루어지는, 방법.
  2. 제1항에 있어서,
    상기 데이터 은닉 패턴의 상기 계층화된 스택은 분리된 데이터 은닉 패턴을 정의하는, 방법.
  3. 제1항에 있어서,
    각 계층은 상기 데이터 은닉 패턴들의 하나 또는 다수에 연관되어 있는, 방법.
  4. 제1항에 있어서,
    상기 데이터 은닉 패턴들 각각에 대하여,
    상기 단계 (ii)에서의 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 상기 값에 대응하도록, 상기 단계 (iii)에서 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 데 사용되는 알고리즘이 상기 값들을 변경하지 않는 경우에, 상기 단계 (ii)에서의 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 상기 값에 대응할 때까지, 상기 단계 (i) 내지 단계 (iii)를 반복하는 단계
    를 더 포함하는, 방법.
  5. 제1항에 있어서,
    상기 데이터 은닉 패턴의 제1 데이터 은닉 패턴과 제2 데이터 은닉 패턴을 사용하여 상기 단계 (i) 내지 단계 (iii)를 각각 수행하는 경우, 상기 제1 데이터 은닉 패턴에 의해 선택되고 상기 단계 (iii)에서 변경된 상기 부호화 유닛의 하나 이상의 다른 값들이, 만일 두 번째 반복(the second iteration) 에서 상기 제2 데이터 은닉 패턴에 의해 선택되면, 상기 제2 데이터 은닉 패턴에 대하여 상기 단계 (i) 내지 단계 (iii)를 수행하는 경우, 상기 단계 (iii)에서 다시 변경되지 않는, 방법.
  6. 제1항에 있어서,
    상기 데이터 은닉 패턴들 중 하나에 대하여 상기 단계 (iii)에서 변경된 상기 적어도 하나의 값이, 상기 데이터 은닉 패턴들 중 다른 하나에 대하여 상기 단계 (i) 내지 단계 (iii)를 수행하는 경우 원래 값(original values)들 대신에 고려되는(considered), 방법.
  7. 부호화된 부호화 유닛으로부터 은닉된 값을 재구성하는 방법으로서,
    상기 부호화 유닛의 값들을 은닉하기 위한 부호화기(encoder)에 의해 사용된 데이터 은닉 패턴들의 계층화된 스택을 제공하는 단계 - 상기 데이터 은닉 패턴들 각각은 연관된 체크 함수를 가짐 -; 및
    상기 데이터 은닉 패턴들 각각에 대하여, 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택된 값들을 토대로 상기 데이터 은닉 패턴들 각각의 체크 함수를 산출하는 단계
    를 포함하고,
    상기 데이터 은닉 패턴은 데시메이션(decimation) 기반 데이터 은닉 패턴들, 하나 이상의 일반(regular) 데이터 은닉 패턴, 그리고 하나 이상의 의사 랜덤(pseudo-random) 데이터 은닉 패턴 중 적어도 하나로 이루어지는, 방법.
  8. 제1항에 있어서,
    상기 데이터 은닉 패턴의 체크 함수를 산출할 때 기초가 되는 상기 부호화 유닛이 포함한 값들은, 상기 부호화 유닛의 최하위 계층적 계층(the lowest hierarchical layer)의 값들인, 방법.
  9. 제8항에 있어서,
    상기 부호화 유닛의 상기 최하위 계층적 계층 이외의 계층에 연관된 데이터 은닉 패턴의 체크 함수가, 상기 부호화 유닛의 상기 최하위 계층적 계층의 값들의 각 서브집합으로부터 상기 데이터 은닉 패턴의 각각에 의해 선택된 값들에 대하여 산출되는, 방법.
  10. 제9항에 있어서,
    상기 데이터 은닉 패턴의 각각의 크기가, 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기를 토대로 결정되는, 방법.
  11. 제9항에 있어서,
    상기 최하위 계층적 계층 이외의 계층에서의 각 서브집합이, 각각의 계층의 조직 데이터 유닛(organizational data unit)에 계층적으로 속하는 상기 부호화 유닛의 상기 최하위 계층적 계층의 값들을 포함하는, 방법.
  12. 제11항에 있어서,
    상기 각각의 계층의 각각의 조직 데이터 유닛에 적용 가능한 데이터 은닉 패턴의 수 및/또는 크기가, 상기 체크 함수가 산출되는 각각의 계층의 각각의 조직 데이터 유닛에 속하는 값들의 서브집합의 크기를 토대로 결정되는, 방법.
  13. 제9항에 있어서,
    상기 데이터 은닉 패턴들의 각각의 크기는, 상기 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기의 제수(divisor)와 동일하거나 상기 제수인, 방법.
  14. 제1항에 있어서,
    상기 부호화 유닛의 값들이 영상의 화소의 블록을 나타내고, 상기 부호화 유닛은, 하나 이상의 예측 유닛, 하나 이상의 변환(transform) 유닛 그리고 하나의 이상의 계수(coefficient) 그룹을 포함하며, 상기 데이터 은닉 패턴들이 상기 예측 유닛, 상기 변환 유닛 그리고 상기 부호화 유닛에 대응하는 상기 부호화 유닛의 계층들에 각각 연관되어 있으며,
    상기 데이터 은닉 패턴들 각각은 상기 부호화 유닛의 연관된 계층의 하나 이상의 값들을 은닉하는, 방법.
  15. 제14항에 있어서,
    상기 데이터 은닉 패턴들은 상기 계수 그룹, 상기 예측 유닛, 상기 변환 유닛, 그리고 상기 부호화 유닛에 대응하는 상기 부호화 유닛의 계층들에 연관되며, 상기 계수 그룹은 상기 부호화 유닛의 최하위 계층의 일부인, 방법.
  16. 제14항에 있어서,
    상기 데이터 은닉 패턴의 체크 함수는 상기 계수 그룹의 값을 토대로 산출되는, 방법.
  17. 제14항에 있어서,
    상기 데이터 은닉 패턴은, 상기 부호화 유닛의 상기 변환 유닛에 대한 인트라 예측(intra prediction)을 위한 기준(reference) 샘플 필터링 플래그(flag)를 은닉하기 위한 하나 이상의 데이터 은닉 패턴을 포함하는, 방법.
  18. 제14항에 있어서,
    상기 데이터 은닉 패턴은 상기 예측 유닛의 예측 모드 인덱스와 예측 유닛 크기 중 적어도 하나를 은닉하기 위한 하나 이상의 데이터 은닉 패턴을 포함하는, 방법.
  19. 제14항에 있어서,
    상기 데이터 은닉 패턴은 상기 부호화 유닛에 워터마크(watermark)를 삽입하기(embedding) 위한 데이터 은닉 패턴을 포함하는, 방법.
  20. 제14항에 있어서,
    상기 데이터 은닉 패턴은 상기 계수 그룹의 계수의 부호 비트(sign bit)를 은닉하기 위한 데이터 은닉 패턴을 포함하는, 방법.
  21. 제1항에 있어서,
    상기 부호화 유닛의 값은, 부호화될 영상 데이터의 블록, 오디오 데이터의 블록, 또는 도큐먼트(document)의 블록을 나타내는, 방법.
  22. 제1항에 있어서,
    상기 은닉된 값들 중 하나는 상기 부호화 유닛에 포함된 값의 신뢰성(authenticity)을 확인하는 것을 허용하는, 방법.
  23. 계층적으로 계층화된 부호화 유닛의 값을 상기 부호화 유닛이 포함하는 다른 값에 은닉하는 부호화 장치(encoding apparatus)로서,
    상기 부호화 장치는 상기 부호화 유닛의 상이한 계층들에서 상기 부호화 유닛의 상기 값을 은닉하기 위한 데이터 은닉 패턴들의 계층화된 스택을 제공받으며, 상기 데이터 은닉 패턴들 각각은 상기 부호화 유닛의 계층들 중의 하나에서 상기 부호화 유닛의 하나 이상의 값을 은닉하기 위한 것에 관련된 체크 함수를 가지며,
    상기 부호화 장치는, 처리 유닛 및 출력 유닛을 포함하고,
    상기 처리 유닛은, 상기 데이터 은닉 패턴들 각각에 대하여 이하의 단계:
    (i) 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택되는 값을 기반으로, 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하는 단계:
    (ii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하는지를 결정하는 단계; 및
    (iii) 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하지 않으면, 상기 단계 (ii)에서의 상기 체크 함수의 결과가 상기 각각의 데이터 은닉 패턴에 의해 은닉될 상기 부호화 유닛의 값에 대응하도록, 상기 부호화 유닛의 상기 다른 값들로부터 상기 각각의 데이터 은닉 패턴에 의해 선택되는 상기 값들 중 적어도 하나를 변경하는 단계
    를 수행하도록 구성되며,
    상기 출력 유닛은 부호화된 부호화 유닛을 출력하도록 구성되고,
    상기 부호화된 부호화 유닛은 모든 데이터 은닉 패턴에 대해 상기 단계 (iii)에서 변경된, 상기 부호화 유닛의 상기 다른 값을 포함하고,
    상기 데이터 은닉 패턴은 데시메이션(decimation) 기반 데이터 은닉 패턴들, 하나 이상의 일반(regular) 데이터 은닉 패턴, 그리고 하나 이상의 의사 랜덤(pseudo-random) 데이터 은닉 패턴 중 적어도 하나로 이루어지는, 부호화 장치.
  24. 부호화된 부호화 유닛으로부터 은닉된 값을 재구성하는 복호화 장치(decoding apparatus)로서,
    상기 복호화 장치는 상기 부호화 유닛의 값들을 은닉하기 위한 부호화기에 의해 사용된 데이터 은닉 패턴들의 계층화된 스택을 제공받으며, 상기 데이터 은닉 패턴들 각각은 그것에 연관된 체크 함수를 가지며,
    상기 복호화 장치는,
    상기 데이터 은닉 패턴들 각각에 대하여, 상기 부호화 유닛의 다른 값들로부터 각각의 데이터 은닉 패턴에 의해 선택된 값들을 토대로 상기 데이터 은닉 패턴들의 각각의 체크 함수를 산출하도록 구성된 처리 유닛; 및
    복호화된 데이터의 일부로서 상기 재구성된 은닉된 값들을 포함하는 복호화된 부호화 유닛을 출력하도록 구성된 출력 유닛
    을 포함하며,
    상기 체크 함수의 결과는 상기 재구성된 은닉된 값들 중 하나에 대응하고,
    상기 데이터 은닉 패턴은 데시메이션(decimation) 기반 데이터 은닉 패턴들, 하나 이상의 일반(regular) 데이터 은닉 패턴, 그리고 하나 이상의 의사 랜덤(pseudo-random) 데이터 은닉 패턴 중 적어도 하나로 이루어지는, 복호화 장치.
  25. 제24항에 있어서
    상기 부호화된 부호화 유닛으로부터 각각의 데이터 은닉 패턴에 의해 선택된 상기 값들은, 상기 부호화 유닛의 최하위 계층적 계층의 값들인, 복호화 장치.
  26. 제25항에 있어서,
    상기 처리 유닛은, 추가로
    상기 부호화 유닛의 상기 최하위 계층적 계층의 값들의 각 서브집합으로부터 상기 데이터 은닉 패턴의 각각에 의해 선택된 값들에 대하여, 상기 부호화된 부호화 유닛의 상기 최하위 계층적 계층 이외의 계층에 연관된 데이터 은닉 패턴의 체크 함수를 산출하도록 구성되는, 복호화 장치.
  27. 제26항에 있어서,
    상기 처리 유닛은, 상기 각각의 데이터 은닉 패턴의 체크 함수가 산출되는 서브집합의 크기를 토대로, 상기 데이터 은닉 패턴의 각각의 크기를 결정하도록 구성되는, 복호화 장치.
  28. 제26항에 있어서,
    상기 최하위 계층적 계층 이외의 계층에서의 각 서브집합이, 각각의 계층의 조직 데이터 유닛에 계층적으로 속하는 상기 부호화 유닛의 최하위 계층적 계층의 값들을 포함하는, 복호화 장치.
  29. 제28항에 있어서,
    상기 처리 유닛은, 상기 체크 함수가 산출되는 각각의 계층의 각각의 조직 데이터 유닛에 속하는 값들의 서브집합의 크기를 토대로, 각각의 계층의 각각의 조직 데이터 유닛에 적용 가능한 데이터 은닉 패턴의 수 및/또는 크기를 결정하도록 구성되는, 복호화 장치.
  30. 삭제
  31. 삭제
KR1020167030249A 2014-04-01 2014-04-01 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치 KR101953855B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2014/000236 WO2015152757A1 (en) 2014-04-01 2014-04-01 Methods and apparatus for data hiding in multi-layer structured coding units

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197005559A Division KR102061081B1 (ko) 2014-04-01 2014-04-01 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160138271A KR20160138271A (ko) 2016-12-02
KR101953855B1 true KR101953855B1 (ko) 2019-03-04

Family

ID=51842739

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167030249A KR101953855B1 (ko) 2014-04-01 2014-04-01 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치
KR1020197005559A KR102061081B1 (ko) 2014-04-01 2014-04-01 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197005559A KR102061081B1 (ko) 2014-04-01 2014-04-01 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치

Country Status (7)

Country Link
US (2) US10104379B2 (ko)
EP (1) EP3146720B1 (ko)
JP (1) JP6401290B2 (ko)
KR (2) KR101953855B1 (ko)
CN (1) CN106063274B (ko)
BR (1) BR112016022870B8 (ko)
WO (1) WO2015152757A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3254184B1 (en) * 2015-02-05 2023-06-07 Barcelona Supercomputing Center-Centro Nacional de Supercomputación Radix sort method for discovering multiple instances of recurring values within a vector and corresponding computing device and computer program product
CN113301334B (zh) 2015-11-17 2023-11-03 华为技术有限公司 视频编码样本自适应滤波的方法和装置
JP6595711B2 (ja) * 2015-12-23 2019-10-23 華為技術有限公司 階層的分割内でのブロックレベルの変換選択および黙示的シグナリングを伴う変換コーディングのための方法および装置
EP3412028B1 (en) 2016-02-12 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
RU2706228C1 (ru) 2016-02-12 2019-11-15 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
KR102293097B1 (ko) * 2016-10-14 2021-08-25 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 디바이스들 및 방법들
CN110431843A (zh) * 2017-03-23 2019-11-08 索尼公司 图像处理装置及方法
CN107040787B (zh) * 2017-03-30 2019-08-02 宁波大学 一种基于视觉感知的3d-hevc帧间信息隐藏方法
KR20200035396A (ko) * 2017-08-10 2020-04-03 소니 주식회사 송신 장치, 송신 방법, 수신 장치, 및 수신 방법
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
CN108024114B (zh) * 2017-11-23 2020-01-14 华南理工大学 一种基于标志位参数修改的大容量无损hevc信息隐藏方法
EP3913946A1 (en) 2018-01-12 2021-11-24 Telefonaktiebolaget LM Ericsson (publ) Handling identifier validation
PL4038883T3 (pl) * 2019-10-02 2024-04-29 V-Nova International Limited Wykorzystanie przekształconych współczynników w celu zapewnienia osadzonej sygnalizacji znaku wodnego
CN111476703B (zh) * 2020-04-09 2024-04-26 北京印实科技有限公司 一种光学水印的制作方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010009581A1 (en) 2000-01-24 2001-07-26 Nec Corporation Electronic watermark detecting/inserting device
US6456726B1 (en) 1999-10-26 2002-09-24 Matsushita Electric Industrial Co., Ltd. Methods and apparatus for multi-layer data hiding
US6553070B2 (en) 1997-02-24 2003-04-22 Nec Corporation Video-data encoder and recording media wherein a video-data encode program is recorded
US20030177359A1 (en) 2002-01-22 2003-09-18 Bradley Brett A. Adaptive prediction filtering for digital watermarking
US20140314144A1 (en) 2011-11-07 2014-10-23 Orange Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859920A (en) * 1995-11-30 1999-01-12 Eastman Kodak Company Method for embedding digital information in an image
JP3269014B2 (ja) 1996-12-25 2002-03-25 日本アイ・ビー・エム株式会社 統計的性質を用いたデータ・ハイディング方法及びシステム
JP2004221950A (ja) * 2003-01-15 2004-08-05 Ricoh Co Ltd 画像処理装置、プログラムおよび記憶媒体
SG120173A1 (en) * 2004-08-17 2006-03-28 Sony Corp Methods and apparatus for watermarking digital data
US20090010483A1 (en) * 2007-07-02 2009-01-08 The Hong Kong University Of Science And Technology Block-based lossless data hiding in the delta domain
US8650402B2 (en) * 2007-08-17 2014-02-11 Wong Technologies L.L.C. General data hiding framework using parity for minimal switching
CN101621692B (zh) * 2009-07-27 2011-04-20 宁波大学 一种基于预测模式的h.264/avc视频信息隐藏方法
US8660355B2 (en) * 2010-03-19 2014-02-25 Digimarc Corporation Methods and systems for determining image processing operations relevant to particular imagery
CN102025997A (zh) * 2010-12-22 2011-04-20 中兴通讯股份有限公司 隐藏信息的方法和装置、提取隐藏信息的方法和装置
US9417754B2 (en) * 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US9008184B2 (en) 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit
US9363512B2 (en) 2012-03-08 2016-06-07 Blackberry Limited Motion vector sign bit hiding
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
CN102685500B (zh) * 2012-05-08 2014-11-12 合肥工业大学 基于信息变长分组结构的h.264大容量信息隐藏方法
EP2675159B1 (en) * 2012-06-15 2018-08-08 BlackBerry Limited Multi-bit information hiding using overlapping subsets
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
US20150139303A1 (en) 2012-06-29 2015-05-21 Sony Corporation Encoding device, encoding method, decoding device, and decoding method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553070B2 (en) 1997-02-24 2003-04-22 Nec Corporation Video-data encoder and recording media wherein a video-data encode program is recorded
US6456726B1 (en) 1999-10-26 2002-09-24 Matsushita Electric Industrial Co., Ltd. Methods and apparatus for multi-layer data hiding
US20010009581A1 (en) 2000-01-24 2001-07-26 Nec Corporation Electronic watermark detecting/inserting device
US20030177359A1 (en) 2002-01-22 2003-09-18 Bradley Brett A. Adaptive prediction filtering for digital watermarking
US20140314144A1 (en) 2011-11-07 2014-10-23 Orange Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xingyu Zhang, et al., ‘Additional sign bit hiding of transform coefficients in HEVC’, 2013 IEEE International Conference on Multimedia and Expo Workshops (ICMEW), 2013. 7. 19.*

Also Published As

Publication number Publication date
BR112016022870A2 (pt) 2017-10-10
CN106063274A (zh) 2016-10-26
US10104379B2 (en) 2018-10-16
KR20190022920A (ko) 2019-03-06
KR20160138271A (ko) 2016-12-02
KR102061081B1 (ko) 2019-12-31
BR112016022870B1 (pt) 2023-03-07
US10440368B2 (en) 2019-10-08
JP2017516368A (ja) 2017-06-15
US20180343453A1 (en) 2018-11-29
EP3146720B1 (en) 2020-09-30
WO2015152757A1 (en) 2015-10-08
JP6401290B2 (ja) 2018-10-10
BR112016022870B8 (pt) 2024-01-23
CN106063274B (zh) 2020-02-14
EP3146720A1 (en) 2017-03-29
US20170048528A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
KR101953855B1 (ko) 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치
KR102143908B1 (ko) 계층적 분할 내에서 블록 레벨 변환 선택 및 암시적 시그널링을 이용한 변환 코딩을 위한 방법 및 장치
JP6324510B2 (ja) ブロック予測技法での使用のための事前予測フィルタリングのための方法及び装置
KR101695681B1 (ko) 상황-기반의 적응형 이진 산술 코딩(cabac)비디오 스트림 준수
US7336711B2 (en) Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
EP2697974B1 (en) Methods and devices for coding and decoding the position of the last significant coefficient
EP1810518A2 (en) Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
CN112804529B (zh) 用于对数字图像进行编码的方法、解码方法、装置和相关计算机程序
US11245897B2 (en) Methods and apparatuses for signaling partioning information for picture encoding and decoding
KR20180111975A (ko) 스캔 순서 선택을 위한 방법 및 장치
JP6664454B2 (ja) 多層構造化コーディングユニットのデータ隠蔽のための方法および装置
US20170353722A1 (en) A method for encoding a digital image, decoding method, devices, and associated computer programs
Mathew et al. Highly scalable coding of depth maps with arc breakpoints
CN104506860A (zh) 视频编码的参考图像选择方法及系统
CN105049846B (zh) 图像和视频编解码的方法和设备
CN116320471B (zh) 视频信息隐藏方法、系统、设备及视频隐藏信息提取方法
Prasad et al. A Hybrid Semi-fragile Image Watermarking Technique Using SVD-BND Scheme for Tampering Detection with Dual Authentication
CN118214880A (zh) 在解压缩数据上签名的可编辑视频数据
Velasco et al. Adaptive JPEG steganography using convolutional codes and synchronization bits in DCT domain
CN118214898A (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
A107 Divisional application of patent
GRNT Written decision to grant