首页 / 专利库 / 银行与财务事项 / 货币 / 数字货币 / 加密货币 / 比特币 / 비디오 디코더의 압축 비트스트림의 계산 및 메모리 요구를 조절하는 방법 및 모델

비디오 디코더의 압축 비트스트림의 계산 및 메모리 요구를 조절하는 방법 및 모델

阅读:713发布:2020-10-28

专利汇可以提供비디오 디코더의 압축 비트스트림의 계산 및 메모리 요구를 조절하는 방법 및 모델专利检索,专利查询,专利分析的服务。并且압축된객체지향형비디오비트스트림의검정기를위한장치는검정기모델의세트, 즉비디오복잡도검정기(VCV), 비디오메모리검정기(VMV) 및비디오표시검정기(VPV)를포함한다. 상기모델들은가변 VOP 크기및 속도에대한디코더의동작을규정하고, 비트스트림이요구하는계산및 메모리자원을측정및 검사하기위해새로운파라미터와한계를규정한다. 상기모델들은비디오인코더에또는미리압축된비디오분포의검정에사용될수 있다.,下面是비디오 디코더의 압축 비트스트림의 계산 및 메모리 요구를 조절하는 방법 및 모델专利的具体信息内容。

  • 압축 비디오 비트스트림의 계산 및 메모리 요구를 조절하는 방법에 있어서,
    화상을 복수의 매크로블록으로 분할하는 단계,
    서로 다른 인코딩 유형을 가지는 매크로블록을 비트스트림으로 인코딩하는 단계,
    상기 매크로블록의 인코딩 유형에 기초하여 비트스트림의 비용 함수를 계산하는 단계,
    상기 비용 함수를 가상 디코더에 적용하는 단계,
    상기 비용 함수의 최적의 분포를 위해 화상의 디코딩 시간 스탬프를 조정하는 단계,
    가중 계수의 세트를 도출하는 단계, 및
    상기 가중 계수를 적용하여 인코딩 유형에 대한 장래의 결정을 조절하는 단계를 포함하는 것을 특징으로 하는 계산 및 메모리 요구의 조절방법.
  • 제1항에서와 같은 가상 디코더에 있어서,
    a) 현재의 VOP를 디코딩하는데 필요한 메모리의 크기는 VOP의 매크로블록의 수에 의해 정해지고, 현재의 VOP 및 후속 VOP의 디코딩 시간 스탬프 사이에서 일정 속도로 소비되며,
    b) I- 또는 P-VOP의 표시시간에, 디코딩 순서에서 이전의 I- 또는 P-VOP에 할당된 총 메모리는 순간적으로 해제되며,
    c) B-VOP의 표시시간에, B-VOP에 할당된 총 메모리는 순간적으로 해제되며,
    d) 어느 시간에서도, 디코딩 순서에서 (n+1)번째 VOP의 디코딩 시간 스탬프(DTS n+1 )는 디코딩 순서에서 n번째 VOP의 표시시간 스탬프(PTS n ) 이하이어야 하며,
    e) 어느 시간에서도, 소비되는 메모리의 합은 사용 가능한 최대 메모리 자원(M Max )을 초과하지 않아야 하고, 그렇지 않으면 가상 디코더는 메모리 오버플로우 한 것이 되며,
    f) 어느 시간에서도, 현재의 VOP의 디코딩 복잡도(Cn) 대 사용 가능한 디코딩 시간(DTS n+1 -DTS n )의 비는 초당 사용 가능한 최대 복잡도 자원(C' Max ) 보다도 작은 것이어야 하고, 만일 그렇지 않다면, 가상 디코더는 복잡도 오버플로우 한 것이 되는 규칙을 포함하는 것을 특징으로 하는 가상 디코더.
  • 제2항에 따른 비디오 비트스트림의 유효성을 보장하는 방법에 있어서, 상기 비트스트림의 값들은 d), e) 및 f)의 규칙을 만족하여야 되고, 가상 디코더가 메모리와 복잡도 자원 중 어느 것에서도 오버플로우하게 하지 않는 것을 특징으로 하는 비디오 비트스트림 유효성 보장 방법.
  • 제1항에서와 같은 매크로블록의 인코딩 유형에 기초하는 비트스트림의 비용 함수를 계산하는 방법에 있어서,
    상기 매크로블록의 인코딩 유형은 인트라 코딩, 예측 코딩, 양방향 코딩, 중첩 블록 동작 보상을 갖춘 예측 코딩, 경계 형상 디코딩을 갖춘 인트라 코딩, 및 경계 형상 디코딩을 갖춘 예측 코딩으로 이루어지고,
    상기 비용 함수는 비트스트림에 존재하는 각 인코딩 유형을 디코딩하는, 정규화되고 가중된 총 비용인 것을 특징으로 하는 비트스트림 비용 함수 계산 방법.
  • 제1항에서와 같은 비트스트림에서의 화상의 디코딩 시간 스탬프를 조정하는 방법에 있어서,
    다수의 화상의 시간 스탬프는, 상기 화상이 가상 디코더의 계산 및 메모리 자원의 사용 가능성에 따라서 가장 짧은 시간에 디코딩되도록 최적화되는 것을 특징으로 하는 화상 디코딩 시간 스탬프 조정 방법.
  • 제1항에 있어서, 상기 비트스트림은 비디오 비트스트림으로만 한정되지 않는 것을 특징으로 하는 계산 및 메모리 요구의 조절방법.
  • 메모리 사용을 측정하는 가상 메모리 버퍼,
    비용 함수를 계산하는 비용 함수 발생기,
    상기 비용 함수 및 메모리 자원 사용량에 기초한 디코딩 시간 스탬프 발생기,
    표시시간 스탬프 및 디코딩 시간 스탬프 비교기, 및
    매크로블록 유형 가중계수 발생기를 포함하는 것을 특징으로 하는 가상 디코더용 장치.
  • 생성된 압축 비디오 비트스트림의 계산 및 메모리 요구조건이 소정의 한계값을 초과하지 않는지를 인코더 내부에서 검사하는 방법에 있어서,
    디코딩 시간 스탬프, 표시시간 스탬프 및 매크로블록의 인코딩 유형을 얻는 단계,
    상기 매크로블록의 인코딩 유형에 기초하여 상기 비트스트림의 비용 함수를 계산하는 단계,
    상기 비용 함수를 이하의 규칙, 즉
    a) 현재의 VOP를 디코딩하는데 필요한 메모리의 크기는 VOP의 매크로블록의 수에 의해 정해지고, 현재의 VOP 및 후속 VOP의 디코딩 시간 스탬프 사이에서 일정 속도로 소비됨,
    b) I- 또는 P-VOP의 표시시간에, 디코딩 순서에서 이전의 I- 또는 P-VOP에 할당된 총 메모리는 순간적으로 해제됨,
    c) B-VOP의 표시시간에, B-VOP에 할당된 총 메모리는 순간적으로 해제됨,
    d) 어느 시간에서도, 디코딩 순서에서 (n+1)번째 VOP의 디코딩 시간 스탬프(DTS n+1 )는 디코딩 순서에서 n번째 VOP의 표시시간 스탬프(PTS n ) 이하이어야 함,
    e) 어느 시간에서도, 소비되는 메모리의 합은 사용 가능한 최대 메모리 자원(M Max )을 초과하지 않아야 하고, 그렇지 않으면 가상 디코더는 메모리 오버플로우 한 것이 됨,
    f) 어느 시간에서도, 현재의 VOP의 디코딩 복잡도(Cn) 대 사용 가능한 디코딩 시간(DTS n+1 -DTS n )의 비는 초당 사용 가능한 최대 복합도 자원(C' Max ) 보다도 작은 것이어야 하고, 그렇지 않으면 가상 디코더는 복잡도 오버플로우 한 것이 됨,
    을 실행하는 가상 디코더에 적용하는 단계, 및
    상기 디코딩 시간 스탬프, 표시시간 스탬프 및 비용 함수가 상기 규칙 d), e) 및 f)를 만족시키는지의 여부를 검사하는 단계를 포함하는 것을 특징으로 하는 검사 방법.
  • 인코더의 출력에 부착된, 가설에 기초하여 가상 복잡도 검정기에 의한 압축 비디오 비트스트림의 계산 및 메모리 요구조건이 소정의 한계값을 초과하지 않는지를 검사하는 방법에 있어서,
    디코딩 시간 스탬프, 표시시간 스탬프 및 매크로블록의 인코딩 유형을 얻기 위해 인코더의 출력에서 비트스트림을 해석하는 단계,
    상기 매크로블록의 인코딩 유형에 기초하여 비트스트림의 비용 함수를 계산하는 단계,
    상기 비용 함수를 이하의 규칙, 즉
    a) 현재의 VOP를 디코딩하는데 필요한 메모리의 크기는 VOP의 매크로블록의 수에 의해 정해지고, 현재의 VOP 및 후속 VOP의 디코딩 시간 스탬프 사이에서 일정 속도로 소비됨,
    b) I- 또는 P-VOP의 표시시간에, 디코딩 순서에서 이전의 I- 또는 P-VOP에 할당된 총 메모리는 순간적으로 해제됨,
    c) B-VOP의 표시시간에, B-VOP에 할당된 총 메모리는 순간적으로 해제됨,
    을 실행하는 가상 디코더에 적용하는 단계, 및
    상기 디코딩 시간 스탬프, 표시시간 스탬프 및 비용 함수가 이하의 규칙, 즉
    d) 어느 시간에서도, 디코딩 순서에서 (n+1)번째 VOP의 디코딩 시간 스탬프(DTS n+1 )는 디코딩 순서에서 n번째 VOP의 표시시간 스탬프(PTS n ) 이하이어야 함,
    e) 어느 시간에서도, 소비되는 메모리의 합은 사용 가능한 최대 메모리 자원(M Max )을 초과하지 않아야 하고, 그렇지 않으면 가상 디코더는 메모리 오버플로우 한 것이 됨,
    f) 어느 시간에서도, 현재의 VOP의 디코딩 복잡도(Cn) 대 사용 가능한 디코딩 시간(DTS n+1 -DTS n )의 비는 초당 사용 가능한 최대 복합도 자원(C' Max ) 보다도 작은 것이어야 하고, 그렇지 않으면 가상 디코더는 복잡도 오버플로우 한 것이 됨,
    을 만족시키는지를 검사하는 단계를 포함하는 것을 특징으로 하는 검사 방법
  • 제8항에서와 같은 가상 복잡도 검정기용 장치에 있어서,
    디코딩 시간 스탬프 발생기,
    표시시간 스탬프 발생기,
    매크로블록 인코딩 유형 발생기,
    비용 함수를 계산하는 비용 함수 발생기,
    메모리 사용량을 측정하는 가상 메모리 버퍼, 및
    표시시간 스탬프 및 디코딩 시간 스탬프 검정기를 포함하는 것을 특징으로 하는 가상 복잡도 검정기용 장치.
  • 제9항에서와 같은 가상 복잡도 검정기용 장치에 있어서,
    디코딩 시간 스탬프, 표시시간 스탬프 및 매크로블록의 인코딩 유형을 추출하는 비트스트림 파서,
    비용 함수를 계산하는 비용 함수 발생기,
    메모리 사용량을 측정하는 가상 메모리 버퍼, 및
    표시시간 스탬프 및 디코딩 시간 스탬프 검정기를 포함하는 것을 특징으로 하는 가상 복잡도 검정기용 장치.
  • 압축 비디오 비트스트림 디코더의 프로세서와 기준 메모리를 시뮬레이션하는 방법에 있어서,
    상기 압축 비트스트림에 저장된 화상을 디코딩하는데 필요한 처리시간을 모델화하는 단계, 및
    상기 디코더에 의해 더 이상 필요하지 않게 될 때까지 상기 화상을 유지하는데 필요한 기억장치를 모델화하는 단계를 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 디코더에 대한 압축 비디오 비트스트림의 프로세서와 기준 메모리 요구를 조절하는 방법에 있어서,
    상기 압축 비트스트림에 저장된 화상을 디코딩하는데 필요한 처리시간을 모델화하는 단계,
    상기 디코더에 의해 더 이상 필요하지 않게 될 때까지 상기 화상을 유지하는데 필요한 기억장치를 모델화하는 단계, 및
    상기 모델이 물리적으로 허용 한도 내에 유지되는 것을 보증하기 위해, 상기 압축 비트스트림을 조절하는 단계를 포함하는 것을 특징으로 하는 압축 비디오 비트스트림의 프로세서 및 기준 메모리 요구 조절 방법
  • 제12항에 있어서,
    표시기에 의해 더 이상 필요하지 않게 될 때까지 상기 화상을 유지하는데 필요한 기억장치를 모델화하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 디코딩 시간 모델화 단계는,
    상기 비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 단계,
    소정의 디코딩 속도로 상기 디코딩 유닛을 처리할 수 있는 가설 디코더에 의해 상기 디코딩 유닛의 디코딩 요구를 어드레싱하는 단계,
    상기 화상의 디코딩 개시시간을 결정하는 단계, 및
    상기 화상의 디코딩 종료시간을 결정하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 디코딩 시간 모델화 단계는,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 단계,
    상기 디코딩 유닛을 복수의 카테고리로 분류하는 단계,
    상기 카테고리의 각각에 가중 계수를 결합시키는 단계,
    상기 분류된 카테고리와, 비용 인자 등가의 유닛에서의 상기 결합된 가중 계수에 기초하여 상기 디코딩 유닛의 디코딩 요구를 계산하는 단계,
    소정의 디코딩 속도로 비용 인자 등가의 상기 유닛을 처리할 수 있는 가설 디코더에 의해 상기 디코딩 요구를 어드레싱하는 단계,
    상기 화상의 디코딩 개시시간을 결정하는 단계, 및
    상기 화상의 디코딩의 종료시간을 결정하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 디코딩 시간 모델화 단계는,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 단계,
    상기 디코딩 유닛의 디코딩 요구를 버퍼에 축적하는 단계,
    소정의 디코딩 속도로 상기 디코딩 유닛을 처리할 수 있는 가설 디코더에 의해 상기 축적된 디코딩 요구를 어드레싱하는 단계,
    상기 화상의 디코딩 개시시간을 결정하는 단계, 및
    상기 화상의 디코딩 종료시간을 결정하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 디코딩 시간 모델화 단계는,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 단계,
    상기 디코딩 유닛을 복수의 카테고리로 분류하는 단계,
    상기 카테고리의 각각에 가중 계수를 결합시키는 단계,
    상기 분류된 카테고리와, 비용 인자 등가의 유닛에서의 상기 결합된 가중 계수에 기초하여, 상기 디코딩 유닛의 디코딩 요구를 계산하는 단계,
    상기 계산된 디코딩 요구를 버퍼에 축적하는 단계,
    소정의 디코딩 속도로 비용 인자 등가의 상기 유닛을 처리할 수 있는 가설 디코더에 의해 상기 축적된 디코딩 요구를 어드레싱하는 단계,
    상기 화상의 디코딩 개시시간을 결정하는 단계, 및
    상기 화상의 디코딩 종료시간을 결정하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 개시시간 결정 단계는,
    상기 압축 비트스트림의 디코더 대기시간을 결정하는 단계,
    상기 화상의 표시시간 스탬프를 결정하는 단계,
    상기 화상의 화상 재배열 지연을 결정하는 단계,
    상기 디코더 대기시간 및 상기 화상 재배열 지연을 상기 표시시간 스탬프로부터 감산함으로써 후보 개시시간(candidate start time)을 계산하는 단계, 및
    직전의 화상의 상기 후보 개시시간 및 상기 종료시간 중 더 큰 값으로 상기 개시시간을 선택하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 종료시간 결정 단계는,
    상기 화상에 속하는 상기 디코딩 유닛의 상기 디코딩 기간을 가산하는 단계,
    상기 디코딩 속도에 의해 상기 가산 단계의 결과를 제산하는 단계, 및
    상기 종료시간을 구하기 위해 상기 개시시간에 상기 제산 단계의 결과를 더하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 기억장치 요구 모델화 단계는,
    상기 개시시간 및 상기 종료시간 사이의 기간 중에 소정의 소비 속도로 상기 기억장치를 소비시키는 단계, 및
    상기 화상의 상기 표시시간 스탬프에서 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제12항에 있어서, 상기 기억장치 요구 모델화 단계는,
    상기 개시시간 및 상기 종료시간 사이의 기간 중에 소정의 소비 속도로 상기 기억장치를 소비시키는 단계,
    상기 화상을 2개의 카테고리로 분류하는 단계,
    상기 화상의 상기 표시시간 스탬프에서 제1 카테고리의 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 단계, 및
    상기 화상과 동일한 제2 카테고리에 속하는 직전의 화상의 상기 표시시간 스탬프에서 제2 카테고리의 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제19항에 있어서, 상기 디코더 대기시간 결정 단계는,
    상기 압축 비트스트림으로부터 디코더 대기시간 파라미터를 추출하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 방법.
  • 제21항 또는 제22항에 있어서, 상기 기억장치는 초기에 비어 있는 것을 특징으로 하는 시뮬레이션 방법.
  • 압축 비디오 비트스트림을 디코딩하는 처리시간 및 기억장치 요구를 모델화하는 장치에 있어서,
    상기 압축 비트스트림에 저장된 화상을 디코딩하는데 필요한 처리시간을 모델화하는 수단, 및
    상기 디코더 및 표시기에 의해 더 이상 필요없게 될 때까지 상기 화상을 유지하는데 필요한 기억장치를 모델화하는 수단을 포함하는 것을 특징으로 하는 처리시간 및 기억장치 요구 모델화 장치.
  • 디코더의 압축 비디오 비트스트림에 의해 프로세서 및 기준 메모리 요구를 조절하는 장치에 있어서,
    상기 압축 비트스트림에 저장된 화상을 디코딩하는데 필요한 처리시간을 모델화하는 수단,
    상기 디코더에 의해 더 이상 필요없게 될 때까지 상기 화상을 유지하는데 필요한 기억장치를 모델화하는 수단, 및
    상기 모델이 물리적으로 허용 한도 내에 유지되는 것을 보증하기 위해, 상기 압축 비트스트림을 조절하는 수단을 포함하는 것을 특징으로 하는 프로세서 및 기준 메모리 요구 조절 장치.
  • 제25항 또는 제26항에 있어서, 상기 디코딩 시간 모델화 수단은,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 수단,
    소정의 디코딩 속도로 상기 디코딩 유닛을 처리할 수 있는 가설 디코더에 의해 상기 디코딩 유닛의 디코딩 요구를 어드레싱하는 수단,
    상기 화상의 디코딩의 개시시간을 결정하는 수단, 및
    상기 화상의 디코딩의 종료시간을 결정하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제25항 또는 제26항에 있어서, 상기 디코딩 시간 모델화 수단은,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 수단,
    상기 디코딩 유닛을 복수의 카테고리로 분류하는 수단,
    상기 카테고리의 각각에 가중 계수를 결합시키는 수단,
    상기 분류된 카테고리와, 비용 인자 등가의 유닛에서의 상기 결합된 가중계수에 기초하여, 상기 디코딩 유닛의 디코딩 요구를 계산하는 수단,
    소정의 디코딩 속도로 비용 인자 등가의 상기 유닛을 처리할 수 있는 가설 디코더에 의해 상기 디코딩 요구를 어드레싱하는 수단,
    상기 화상의 디코딩 개시시간을 결정하는 수단, 및
    상기 화상의 디코딩 종료시간을 결정하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제25항 또는 제26항에 있어서, 상기 디코딩 시간 모델화 수단은,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 수단,
    상기 디코딩 유닛의 디코딩 요구를 버퍼에 축적하는 수단,
    소정의 디코딩 속도로 상기 디코딩 유닛을 처리할 수 있는 가설 디코더에 의해 상기 축적된 디코딩 요구를 어드레싱하는 수단,
    상기 화상의 디코딩 개시시간을 결정하는 수단, 및
    상기 화상의 디코딩 종료시간을 결정하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제25항 또는 제26항에 있어서, 상기 디코딩 시간 모델화 수단은,
    비트스트림의 디코딩을 복수의 디코딩 유닛으로 분리하는 수단,
    상기 디코딩 유닛을 복수의 카테고리로 분류하는 수단,
    상기 카테고리의 각각에 가중 계수를 결합시키는 수단,
    상기 분류된 카테고리와, 비용 인자 등가의 유닛에서의 상기 결합된 가중 계수에 기초하여, 상기 디코딩 유닛의 디코딩 요구를 계산하는 수단,
    상기 계산된 디코딩 요구를 버퍼에 축적하는 수단,
    소정의 디코딩 속도로 비용 인자 등가의 상기 유닛을 처리할 수 있는 가설 디코더에 의해 상기 디코딩 요구를 어드레싱하는 수단,
    상기 화상의 디코딩 개시시간을 결정하는 수단, 및
    상기 화상의 디코딩 종료시간을 결정하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제27항에 있어서, 상기 개시시간 결정 수단은,
    상기 압축 비트스트림의 디코더 대기시간을 결정하고 상기 압축 비트스트림으로부터 디코더 대기시간 파라미터를 추출하는 수단,
    상기 화상의 표시시간 스탬프를 결정하는 수단,
    상기 화상의 화상 재배열 지연을 결정하는 수단,
    상기 표시시간 스탬프에서 상기 디코더 대기시간 및 상기 화상 재배열 지연을 감산함으로써 후보 개시시간을 계산하는 수단, 및
    직전의 화상의 상기 후보 개시시간 및 종료시간 중 더 큰 값으로 상기 개시시간을 선택하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제27항에 있어서, 상기 종료시간 결정 수단은,
    상기 화상에 속하는 상기 디코딩 유닛의 상기 디코딩 기간을 가산하는 수단,
    상기 가산 결과를 상기 디코딩 속도로 제산하는 수단, 및
    상기 종료시간을 구하기 위해 상기 제산의 결과를 상기 개시시간에 더하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  • 제25항에 있어서, 상기 기억장치 요구 모델화 장치는,
    상기 개시시간 및 상기 종료시간 사이의 기간 중에 소정의 소비 속도로 상기 기억장치를 소비시키는 수단, 및
    상기 화상의 상기 표시시간 스탬프에서 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 수단을 더 포함하는 것을 특징으로 하는 처리시간 및 기억장치 요구 모델화 장치.
  • 제25항에 있어서, 상기 기억장치 요구 모델화 장치는,
    상기 개시시간 및 상기 종료시간 사이의 기간 중에 소정의 소비 속도로 상기 기억장치를 소비시키는 수단,
    상기 화상을 2개의 카테고리로 분류하는 수단,
    상기 화상의 상기 표시시간 스탬프에서 제1 카테고리의 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 수단,
    상기 화상과 동일한 제2 카테고리에 속하는 직전의 화상의 상기 표시시간 스탬프에서 제2 카테고리의 상기 화상에 의해 점유되는 상기 기억장치를 해제하는 수단을 더 포함하는 것을 특징으로 하는 처리시간 및 기억장치 요구 모델화 장치.
  • 说明书全文

    비디오 디코더의 압축 비트스트림의 계산 및 메모리 요구를 조절하는 방법 및 모델{METHOD AND MODEL FOR REGULATING THE COMPUTATIONAL AND MEMORY REQUIREMENTS OF A COMPRESSED BITSTREAM IN A VIDEO DECODER}

    본 발명은 비디오 디코더 내의 압축된 비트스트림의 계산 및 메모리 요구를 제어하는 방법 및 모델에 관한 것이다. 이 발명은 인코더가 발생하는 비트스트림의 복잡도 요구를 제어할 필요가 있는 다중 매체 시청각(audio-visual:AV) 코딩 및 압축 기술의 분야에서 유용하다. 이것은 규격(standard)의 복잡도 사양에 따른 디코더가 자원(resource)이 부족하게 동작하는 일이 없이 이들 비트스트림을 성공적으로 디코딩할 수 있게 한다.

    종래에는, 어떤 표준 성능의 규격을 만족하는 비디오 디코더의 개발자는, 사양에 따라서 가능한 최악의 시나리오를 지원하기에 충분한 자원을 디코더가 가질 수 있도록 보증해야 한다. 최악의 시나리오라는 것은 일반적으로 통상의 동작 상태에서는 일어날 수 없는 상태를 나타내는 것이며, 이것은 기술적으로 바람직한 방법이라고는 할 수 없다. 이것은 필요 이상의 기술개발과 자원의 소비를 야기한다.

    현재 MPEG-4 표준화에서는, 최악의 시나리오보다는 나은 비트스트림의 복잡도에 기초하여 디코더의 복잡도 경계를 규정하려는 노력이 이루어지고 있다. 이것은 일반적인 유닛에 의한 복잡도의 양에 기초한 통계적인 방법이다. 규격은 그것에 준거하고 있는 비트스트림에서 허용되는 최대 복잡도에 대한 고정값을 규정한다. 디코더는 규격에 준거한 모든 비트스트림을 디코딩하기에 충분한 자원을 제공해야만 한다. 인코더는 발생되는 모든 비트스트림이 최대 복잡도 경계를 초과하지 않도록 보증해야 한다.

    도 1은 상기 개념을 그래프로 나타낸 것이다. 도 1에서, 유효 비트스트림은 규격의 고정값의 좌측에 분포되고, 모든 규격 준거 인코더(compliant encoder)는 규격의 고정값의 우측에 분포된다. 복잡도 경계는 그래프에서 직선으로 표시된다. 횡좌표는 복잡도 유닛으로서 주어진다. 모든 규격 적합 비트스트림(conformant bitstream)은 라인의 좌측에 존재한다. 비트스트림의 전형적인 분포가 여기에 도시되어 있다. 대부분의 비트스트림은 복잡도 경계보다 매우 작은 복잡도를 가진다. 일부 비트스트림은 이 경계에 접근하고 있다. 비트스트림이 이 경계를 초과할 때, 그러한 비트스트림은 더 이상 규격 적합 비트스트림이 아니므로 도시하지 않는다. 복잡도 경계의 우측에는 디코더의 분포가 존재한다. 대부분의 디코더는 비용을 절감하기 위해 가능한 복잡도 경계에 근접하도록 설계된다. 일부 디코더는 필요한 것보다 더 많은 자원을 가질 수도 있고, 이들은 그래프의 더욱 우측에 위치한다. 규격 준거 비트스트림의 복잡도 조건을 충족시키는데 충분한 자원을 가지지 않는 디코더는 복잡도 경계의 좌측에 위치하며, 규격에 준거하지 않았다고 볼 수 있다.

    도 2는 간단한 복잡도 측정 방법을 나타내는 것으로, 여기서 인코더는 선택된 각 매크로블록(macroblock)의 유형(type)의 수를 카운트하고 각 매크로블록 유형에 제공된 어떤 미리 정해진 비용 함수(cost function)에 기초하여 비트스트림의 복잡도를 평가한다. 도 2는 등가의 I-MB 유닛을 계산함으로써 발생되는 비트스트림의 비용 함수를 카운트하는 간단한 방법을 도시한다. 그러나, 이것은 복잡도 양을 즉시 제공할 수 없고, 메모리와 같은 다른 자원을 고려하지 않는다는 문제점을 가진다. 현재의 매크로블록에 대한 정보는 매크로블록 유형 결정 모듈(201)에 전달되며, 거기서 특정 방법으로 매크로블록을 디코딩하는 것이 결정된다. 이 정보를 복잡도 비용 함수로 변환시키는 비용 함수 발생기 모듈(202)에 의해 이 결정이 카운트된다. 복잡도 비용 함수는 이후의 결정을 위해 매크로블록 유형 결정 모듈로 피드백(feed back)된다.

    모듈들(203 내지 210)은 하이브리드 변환 코더에 필요한 일반적인 모듈이다. 입력 화상은 각각 동작 추정 및 보상 모듈(210, 209)에 의해 처리되는 블록으로 분할된다. 동작 예측이 없는 경우에는 이 단계가 생략되는 점에 주의해 주기 바란다. 동작 보상된 차분 신호는 DCT 변환 모듈(203)에 의해 처리된다. 변환 계수는 양자화 모듈(204)에서 양자화되고, 양자화된 계수는 가변길이 코딩 모듈(205)에서 매크로블록 유형과 동작 벡터의 오버헤드 정보와 함께 엔트로피 코딩(entropy coding)된다. 모듈(206 내지 209)로 구성된 국부 디코더(local decoder)는 이후의 화상의 예측에 사용되는 코딩된 화상을 재생한다. 계수가 역 DCT 모듈(207)에 공급되기 전에 역양자화 모듈(206)이 그 계수를 역양자화하여, 차분신호가 재생된다. 차분신호에 동작 예측이 가산되어서 재생블록이 형성된다. 이 블록들은 이후에 사용하기 위해 프레임 메모리 모듈(208)에 저장된다.

    또한, 비디오 코딩에서는, 압축 처리가 가변 비트율 비트스트림을 야기하는 것은 본질적인 것이다. 이 비트스트림은 일반적으로 일정 비트율 채널 상으로 전송된다. 비트율의 순간적인 변화를 흡수하기 위해, 인코더의 출력 및 디코더의 입력에 버퍼를 도입하는 것이 일반적이다. 이 버퍼들은 비트의 저장소(reservoir)로서 기능을 하며, 가변 비트율 비트스트림을 발생하는 인코더에 뿐만 아니라 가변 비트율로 비트스트림을 소비하는 디코더에 일정 비트율 채널이 접속되도록 한다.

    버퍼가 충전되어 있을 때의 속도와 버퍼가 비어 있을 때의 속도가 다르기 때문에, 버퍼 점유율은 시간에 따라 변화한다. 그러나, 긴 시간 동안 버퍼를 충전시키기 위한 평균 속도 및 버퍼를 비우는 평균 속도는 동일하게 정해질 수 있다. 따라서, 충분히 큰 버퍼를 사용하는 경우, 정상 상태의 동작이 이루어질 수 있다. 정확하게 작동하기 위해, 버퍼는 공백 상태(언더플로우) 또는 완전히 충전된 상태(오버플로우)로 되지 않아야 한다. 이러한 제한을 확실하게 하기 위해, 버퍼의 모델은 MPEG-1 및 MPEG-2와 같은 문헌에 나타나 있으며, 여기서 비디오 버퍼 모델은 일정 비트율 채널에 접속되는 가변 비트율 디코더의 동작을 가능하게 한다. 디코더의 나머지는 비디오 디코딩 방법이 일정한 프레임률로 규정되어 있고 각 프레임이 일정한 크기를 가지기 때문에, 모델이 될 필요가 없다. 따라서, 디코딩의 일정 속도와 버퍼의 소비는 적절하게 잘 규정되며, 자체의 발송률 함수 R(t)에 의해 비트스트림을 점검함으로써 디코더에 필요한 버퍼 메모리가 정해진 버퍼 크기보다 작은지를 검사하기 위해 비디오 버퍼 검정기(VBV)가 사용된다.

    복잡도의 양을 제한하는 것은 디코더가 명백한 방법으로 설계될 수 있게 하는데 충분하지 않다. 이에 대해서는 2가지 이유가 있다.

    첫번째 이유는 복잡도가 시간적으로 측정되는 것이다. 시간이 충분히 길기 때문에, 여러 프레임의 화상을 수용할 수 있다. 평균 복잡도가 설정된 한계값 이하일지라도 복잡도의 분포는 디코더의 자원이 순간적으로 소비되는 경우가 있다. 윈도우(window)를 더 짧은 시간으로 한정하면 화상의 복잡도의 변동을 제한하는 것이 된다. 이것은 모든 화상이 일정한 복잡도를 가져야 한다는 것을 의미한다. 이것은 코딩 모드의 특징에 따라서 다른 화상 유형은 다른 복잡도를 가져야 하기 때문에, 바람직하지 못하다.

    두번째 이유는 복잡도가 계산 시간에 반드시 관련되는 것은 아니라는 것이다. 복잡도 측정에 포착되지 않는 제2의 요소는 메모리에 필요한 조건이다.

    따라서, 해결되어야 할 문제점은 계산 및 메모리 조건의 관점에서 비트스트림의 복잡도 조건을 제어하는 방법을 발명하는 것이다.

    또한, 비디오 압축 처리에서의 최근의 개발에서는, 객체 지향되는 더욱 유연한 인코딩 방법이 MPEG에 의해 규정되어 있다. 이러한 유연한 인코딩 방법은 디코딩의 속도와 및 메모리의 소비 속도가 더 이상 일정하게 되지 않도록 상이한 영상 속도와 비디오 화상 내의 매크로블록의 가변적인 수(variable number)를 지원한다. 이러한 속도가 디코더의 최대 성능을 벗어나지 않도록 하는 것을 보증하기 위하여 이들 시간당 속도를 측정하는 것이 필요하게 된다.

    또한 해결되어야 할 문제점은 발생된 비트스트림이 정해진 성능 및 자원에 의해 디코딩될 수 있게 하기 위해, 압축 비디오 비트스트림의 파라미터를 측정하기 위한 새로운 검정기(verifier) 및 알고리듬을 어떻게 정할 것인가 하는 것이다.

    도 1은 종래 기술의 비트스트림 복잡도 및 디코더 자원의 분포를 복잡도의 유닛으로 나타내는 도면.

    도 2는 종래 기술의 비디오 인코더에서의 복잡도 측정 및 제어를 나타내는 도면.

    도 3은 제1 실시예에 따른 비디오 인코더에서 가상 디코더에 의한 복잡도 측정 및 제어를 나타내는 도면.

    도 4는 제1 실시예의 가상 디코더의 블록도.

    도 5는 디코딩 시간 스탬프 및 표시시간 스탬프를 가지며 프레임 재배열이 없는 가상 디코더의 기능을 나타내는 그래프.

    도 6은 디코딩 시간 스탬프 및 표시시간 스탬프를 가진 가상 디코더의 기능을 나타내며, 특히 가상 디코더의 실시예를 나타내는 그래프.

    도 7은 본 발명에 따른 비디오 인코더에서 가설에 기초하여 가상 복잡도 검정기에 의한 복잡도 측정 및 검사를 나타내는 블록도.

    도 8은 가설에 기초한 가상 복잡도 검정기를 사용하여 복잡도 측정 및 검사를 나타내는 블록도.

    도 9는 특히 VBV, VCV, VMV 및 VPV 사이의 상호 관계를 나타내는 비디오 검정기 모델의 블록도.

    도 10은 특히 인코더의 출력에 접속된 비디오 버퍼 검정기의 배치를 나타내는 비디오 버퍼 검정기의 블록도.

    도 11은 시간을 점유하는 비디오 버퍼 검정기의 동작을 나타내는 그래프.

    도 12는 특히 인코더의 출력에 접속된 비디오 복잡도 검정기의 배치를 나타내는 비디오 복잡도 검정기의 블록도.

    도 13은 시간을 점유하는 비디오 복잡도 검정기의 동작을 나타내는 그래프.

    도 14는 특히 인코더의 출력에 접속되는 비디오 메모리 검정기의 배치를 나타내는 비디오 메모리 검정기의 블록도.

    도 15는 시간을 점유하는 비디오 메모리 검정기의 동작을 나타내는 그래프.

    도 16은 특히 인코더의 출력에 접속된 비디오 표시 검정기의 배치를 나타내는 비디오 표시 검정기의 블록도.

    도 17은 시간을 점유하는 비디오 표시 검정기의 동작을 나타내는 그래프.

    도 18은 비디오 인코더에 사용되는 비디오 검정기의 블록도.

    도 19는 독립형 비디오 비트스트림 검정기의 동작을 나타내는 비디오 비트스트림 검정의 흐름도.

    도 20은 VBV 버퍼 점유율을 나타내는 그래프.

    도 21은 VCV, VMV 및 VPV 버퍼 점유율을 나타내는 그래프.

    상기 문제점을 해결하기 위해, 계산 요구조건과 메모리 요구조건이 결합된 모델이 설계된다. 비트스트림의 계산 요구조건 뿐만 아니라 메모리 요구조건도 고려함으로써, 디코더의 자원 요구조건을 정확하게 제한할 수 있다.

    메모리 요구조건은 사용 가능한 메모리의 크기에 의해 명확히 규정된다. 비디오 시퀀스의 디코딩 시간 스탬프(decoding time stamp) 및 표시시간 스탬프(presentation time stamp)에 의해 메모리의 사용 및 해제도 시간적으로 명확하게 규정된다. 이 시간 스탬프는 비트스트림에 내장된다.

    계산 복잡도 유닛을 메모리 사용에 연결함으로써, 복잡도 경계를 규정하는 윈도우가 불명료해지는 첫번째 문제점을 해결할 수 있다. 이들 요구조건을 연결함으로써, 디코딩 및 표시시간 스탬프에 기초하여 계산 및 메모리 요구조건은 한정될 수 있다. 복잡도의 측정을 위한 슬라이딩 윈도우를 한정할 필요가 없어진다. 동시에, 화상은 일정한 복잡도를 가지도록 제한되지 않는다.

    더욱이, VCV 모델(130)은 매크로블록의 디코딩의 개시 및 종료시간을 결정하기 위해 계산 요구량을 설정한다. VMV 모델(140)은 기준 메모리의 동작 및 기준 메모리의 점유값을 설명한다. VPV(105)는 비트스트림을 점검하여 표시 버퍼의 크기를 검정하기 위한 알고리듬을 규정한다.

    본 발명은 메모리 소비에 관하여 상기 모델들을 연결하여, 디코더의 물리적인 한계에 의해 비트스트림의 억제가 가능하다. 검정을 수행하기 위한 장치가 또한 본 발명에 제공된다.

    더욱이, 완전히 새로운 검정기 모델의 세트, 즉 비디오 복잡도 검정기(VCV), 비디오 메모리 검정기(VMV) 및 비디오 표시 검정기(VPV)가 개발되어 있다. 상기 모델들은 가변 VOP 크기 및 속도에 대한 디코더의 동작을 규정하고, 비트스트림이 요구하는 계산 및 메모리 자원을 측정 및 검사하기 위해 새로운 파라미터와 한계를 규정한다.

    본 발명의 동작은 이하와 같다. 인코더는 매크로블록 유형을 카운트함으로써 발생되는 비트스트림의 복잡도를 모니터한다. 각 매크로블록 유형에는 어떠한 복잡도 유닛으로 미리 정해진 비용이 할당된다. 디코딩된 각 매크로블록은 미리 정해진 크기의 메모리 공간을 소비한다. VOP의 유형에 따라서, 상이한 기간만을 메모리가 점유된다. 메모리는 VOP의 매크로블록이 디스플레이 또는 예측을 위해 더 이상 필요하지 않게 될 때, 해제된다.

    가상 디코더에는 복잡도 유닛 및 메모리의 최대 경계가 지정된다. 가상 디코더는 복잡도 경계인 한계값에 따라 비트스트림을 가능한 한 빨리 디코딩할 수 있게 한다. 그러나, 그렇게 할 경우에는, 디코더는 디코딩된 VOP가 디스플레이될 때까지 또는 예측이 더 이상 필요하지 않게 될 때까지 디코딩된 VOP를 유지하기 위해 여분의 메모리를 가져야 한다. 그러므로, 가상 디코더는 처리 성능 및 사용 가능한 메모리의 양 모두에 의해 제한되는 것이 명백하다.

    따라서, 비트스트림의 복잡도 유닛의 요구조건을 모니터하고, VOP의 디코딩 시간 스탬프를 조정함으로써, 가상 디코더는 메모리 사용량이 그 경계를 초과하는 것을 방지할 수 있다. 그러므로, 가상 디코더는 단순한 VOP에서 보다 적은 시간을 사용하고, 복잡한 VOP에 보다 많은 시간을 사용할 수 있도록 한다.

    가상 디코더는 아래의 규칙에 의해 규정된다.

    a) 현재의 VOP를 디코딩하는데 필요한 메모리의 크기는 VOP의 매크로블록의 수에 의해 정해지고, 현재의 VOP 및 후속 VOP의 디코딩 시간 스탬프 사이에서 일정 속도로 소비된다.

    b) I- 또는 P-VOP의 표시시간에, 디코딩 순서에서 이전의 I- 또는 P-VOP에 할당된 총 메모리는 순간적으로 해제된다.

    c) B-VOP의 표시시간에, B-VOP에 할당된 총 메모리는 순간적으로 해제된다.

    d) 어느 시간에서도, 디코딩 순서에서 (n+1)번째 VOP의 디코딩 시간 스탬프(DTS n+1 )는 디코딩 순서에서 n번째 VOP의 표시시간 스탬프(PTS n ) 이하이어야 한다.

    여기에서 n은 디코딩 순서이다.

    e) 어느 시간에서도, 소비되는 메모리의 합은 사용 가능한 최대 메모리 자원(M Max )을 초과하지 않아야 한다. 그렇지 않으면, 가상 디코더는 메모리 오버플로우한 것으로 한다.

    f) 어느 시간에서도, 현재의 VOP의 디코딩 복잡도(Cn) 대 사용 가능한 디코딩 시간(DTS n+1 -DTS n )의 비는 초당 사용 가능한 최대 복합도 자원(C' Max ) 보다도 작아야 한다. 그렇지 않으면, 가상 디코더는 복잡도 오버플로우한 것으로 한다.

    여기에서, n은 디코딩 순서이다.

    유효 비트스트림은 비트스트림의 값이 d), e) 및 f)의 조건을 만족하며, 가상 디코더가 메모리 또는 복잡도 자원 내에서 오버플로우를 발생시키지 않는 경우이다.

    제1 실시예

    제1 실시예는 도 3, 도 4, 도 5 및 도 6에 도시되어 있다. 도 3은 도 2의 종래 기술의 것과 동일한 도면을 나타내지만, 본 발명에 따라서 부가된 새로운 부분을 가진다. 제1 실시예는 가상 디코더(303)를 사용한다. 비용 함수 발생기(302)의 출력은 매크로블록 유형 결정 모듈(301)로 직접 피드백 되지 않고, 가상 디코더(303)를 통해 피드백 된다. 가상 디코더(303)는 또한 코딩된 화상의 표시시간 스탬프(presentation time stamp)를 수신한다. 가상 디코더(303)는 전술한 바와 같은 기능을 실행한다. 한정된 계산 및 메모리 자원을 가지는 디코더를 시뮬레이션하는 것이 가설 모델(hypothetical model)이다. 이 자원들은 비용 함수 발생기 및 표시시간 스탬프에서 발견되는 인코딩 정보에 따라서 소비된다.

    도 4는 가상 디코더(303)의 기능을 나타낸다. 비용 함수 발생기(302)로부터의 복잡도 비용 함수는 가상 VOP 메모리 버퍼(401) 및 디코딩 시간 스탬프(DTS) 발생기(402)로 전달된다. 가상 VOP 메모리 버퍼(401)는 표시시간 스탬프(PTS) 및 디코딩 시간 스탬프(DTS) 신호를 또한 수신한다. 가상 VOP 메모리 버퍼는 메모리 버퍼 사용을 시뮬레이션 한다. 가상 VOP 메모리 버퍼(401)의 출력은 메모리 버퍼 점유율이다. 이 정보가 DTS 발생기(402)로 전달되어 그것이 후속 DTS를 생성할 수 있도록 한다.

    DTS의 생성은 메모리 버퍼 점유율 및 복잡도 비용 함수에 의존한다. 메모리가 충전될 때, 현재의 화상을 디코딩하기 위한 보다 많은 시간을 제공하기 위하여 후속 DTS를 지연시켜도 좋으며, 이에 따라 메모리 버퍼를 더 늦게 충전한다. 이와 같이, 현재의 화상의 복잡도 비용 함수가 상승할 때, 현재의 화상을 디코딩하기 위한 보다 많은 시간을 디코더에 제공하기 때문에 후속 화상의 DTS를 지연시켜도 좋다. 가능한 함수는 아래와 같이 주어진다.

    여기에서 c

    1 및 c

    2 는 시퀀스의 프레임 레이트(frame rate)에 의해 결정되는 일정한 인자(constant factor)이다.

    2개의 연속적인 DTS가 너무 근접하면 수학식 2의 분모는 작아지며, 상기 수학식의 좌변이 우변의 한계를 초과하게 될수록 DTS는 너무 빠르게 될 수 없다. 이것이 발생하면, 디코더는 계산 자원을 동나게 한다[상기 규칙 f) 참조].

    마찬가지로, 화상이 PTS로 주어진 특정 시간으로서 디스플레이되어야 하기 때문에, DTS는 무기한으로 지연될 수 없다[ 규칙 d) 참조]. 이러한 검사는 PTS/DTS 비교기(403)에서 이루어지고, 여기에서 PTS 및 DTS 사이의 차가 검사된다. 그 결과는 매크로블록 유형 가중계수 발생기(404)에 전달되고, 여기에서 각 매크로블록 유형에 대한 가중계수가 발생된다. 이들 가중치는 매크로블록 유형 결정 모듈(301)에서 이루어진 결정을 제어하는데 사용된다.

    가상 VOP 메모리 버퍼는 규칙 a) 내지 c)를 수행하고, 규칙 e)가 위반되지 않게 한다. 이러한 실시예의 2가지 예가 도 5 및 도 6에 도시되어 있다. 도 5는 VOP 코딩 유형이 I 및 P-VOP들만으로 이루어지는 경우를 나타낸다. 따라서, VOP는 동일한 순서로 디코딩 및 디스플레이된다. 도 6은 VOP 코딩 유형이 I, P 및 B-VOP로 이루어진 경우를 나타낸다. B-VOP의 양방향 예측 때문에, 인코딩을 위해 VOP를 재배열하는 것이 필요하므로 VOP의 코딩 순서 및 디스플레이 순서는 상이하다. 따라서, 상기 모델에서, VOP는 다른 순서로 디코딩 및 디스플레이된다.

    예 1: I 및 P-VOP

    이하는 I 및 P-VOP만 존재할 경우의 가상 VOP 메모리 버퍼의 동작을 설명한다. 수평축은 사건이 개시할 때의 시간 및 그에 대응하는 시간 스탬프를 나타낸다. 수직축은 메모리 사용량을 나타낸다. 메모리 자원의 한계는 사용 가능한 최대 메모리 자원에 의해 표시된다.

    규칙 a)에 따르면, 시간 DTS 0 에서, 가상 디코더가 제1 VOP인 I-VOP 0을 디코딩하기 시작한다. 이것은 DTS 1 에서 디코딩을 종료한다. 가상 디코더 또는 모델은 VOP 0에 의해 사용되는 메모리가 시간적으로 선형이며, DTS 0 및 DTS 1 사이에 나타낸 직선으로 가정한다. DTS 1 및 DTS 2 사이에서, 디코더는 P-VOP 1을 디코딩하고, VOP 1분의 메모리를 소비한다. 이러한 처리는 DTS i 내지 DTS i+1 의 모든 구간에서 반복되고, 도 5에 선형적으로 증가하는 선으로 도시되어 있다.

    규칙 b)는 이전의 VOP가 없는, PTS 0 를 제외한 각 PTS에 도시되어 있다. PTS 1 에서, VOP 0에 의해 소비된 메모리는 즉시 해제된다. 이것은 그래프에서 수직선으로 도시되어 있다. 소비된 메모리에서 유사한 수직 강하가 그래프의 여러 곳의 시간 PTS 1 에 도시되어 있다.

    상기 그래프가 사용 가능한 최대 메모리 자원의 한계 사이에서 있으며, DTS 및 PTS가 규칙 e)의 조건을 충족시키는 한, 모델은 그 한계 내에서 동작된다. 규칙 d), e) 또는 f) 중 하나 또는 그 이상을 위반했을 때, 모델은 오버플로우(overflow)된다.

    예 2: I, P 및 B-VOP

    도 6은 I, P 및 B-VOP가 존재하는 경우를 나타낸다. 시퀀스에 B-VOP가 존재하면, 디코딩 순서를 재배열하는 것이 필요하다. 이 예에서, 인코딩된 시퀀스는 VOP 0, 1, 2, 3, 4, … 를 포함한다. VOP 0은 I-VOP이고, VOP 1 및 3은 P-VOP이며, VOP 2 및 4는 B-VOP이다. 이 VOP들의 실제 디스플레이 순서는 0, 2, 1, 4, 3, … 이다. VOP 1 및 2 뿐만 아니라 VOP 3 및 4의 재배열에도 주의하라. 이것은 B-VOP 2가 예측을 위하여 P-VOP를 필요로 하기 때문이며, 따라서 디스플레이 순서는 B-VOP 2의 뒤가 되지만 P-VOP 1이 먼저 디코딩된다.

    규칙 a)를 따르면, 시간 DTS 0 에서 가상 디코더는 제1 VOP인 즉 I-VOP O을 디코딩하기 시작한다. 가상 디코더는 DTS 1 에서 디코딩을 종료한다. 모델은 VOP 0에 의해 사용되는 메모리가 시간적으로 선형이며, DTS 0 및 DTS 1 사이에 나타낸 직선이라고 가정한다. DTS 1 및 DTS 2 사이에서, 디코더는 P-VOP 1을 디코딩하고 VOP 1분의 메모리를 소비한다. DTS2 및 DTS3 사이에서, 디코더는 B-VOP 2를 디코딩하고 VOP 2분의 메모리를 소비한다.

    규칙 b) 및 c)는 이전의 VOP가 없는 PTS 0 를 제외한 각 PTS에 적용된다. PTS 2 에서, VOP 2에 의해 소비되는 메모리는 즉시 해제된다. 이것은 그래프에서 수직선으로 도시되어 있다. 소비된 메모리에서 유사한 수직 강하가 그래프의 여러 곳에 시간 PTS i 에서 나타나 있다.

    그래프가 사용 가능한 최대 메모리 자원의 한계 사이에 있으며, DTS 및 PTS가 규칙 e)의 조건을 충족시키는 한, 모델은 그 한계 내에서 동작된다. 모델은 규칙 d), e) 또는 f) 중 하나 또는 그 이상의 위반될 경우 오버플로우된다.

    가상 복잡도 검사

    개개의 실시예에서, 가상 디코더(303)는 인코딩된 비트스트림의 복잡도를 제어하기 위한 것은 아니며, 비트스트림이 복잡도 규격에 준거하고 있는 지의 여부를 검사하는데 사용된다. 2가지 검사 방법이 존재한다. 그 하나는 비트스트림을 생성하면서 인코더 내에서 내부적으로 실행되며, 다른 하나는 비트스트림이 생성된 후에 인코더의 외부에서 실행된다. 이들은 도 7 및 도 8에 도시되어 있다.

    도 7에서, 가설에 기초한 가상 복잡도 검정기는 PTS, DTS 발생기(701)로부터 PTS 및 DTS를 수신할 뿐 아니라, 비용 함수 발생기(702)를 통해 비용 함수를 계산한다. 이러한 정보는 전술한 바와 같이, 가상 디코더(703)을 통해 적용된다. 상기 검정기는 상기 비트스트림이 유효하기 때문에 규칙 a) 내지 f)가 충족되는 것을 보증한다.

    도 8은 가설에 기초한 가상 복잡도 검정기가 인코더(801)의 출력에 부착되는 경우를 나타낸다. 파서(parser)(802)는 인코더의 출력으로부터의 비트스트림을 분석하여, PTS, DTS 및 매크로블록 인코딩 유형을 얻는다. 매크로블록 인코딩 유형은 비용 함수 발생기(803)로 보내지며, 거기서 비용 함수가 평가된다. 비용 함수는 PTS 및 DTS와 함께 전술한 바와 같이 가상 디코더(804)를 통해 적용된다. 상기 검정기는 비트스트림이 유효하기 때문에 규칙 a) 내지 f)가 충족되는 것을 보증한다.

    제1 실시예에 의하면, 인코더는 생성된 코드화 비트스트림의 복잡도를 제어하고 조절할 수 있다. 동시에, 디코더는 스트림이 너무 복잡하게 생성되지 않게 한다. 본 발명의 효과는 디코더의 설계가 최악의 시나리오에 기초한 것이 아니라도 좋으며, 규격에 의해 특정된 일반적인 복잡도 양에 기초한 것이다. 따라서, 과도한 기술 개발을 필요로 하지 않기 때문에 이러한 제품의 비용을 감소시킬 수 있다.

    제2 실시예

    제2 실시예는 본 발명의 일반적인 동작을 설명한다.

    모델은 표적 디코더와 비트스트림 버퍼, 중앙 처리 장치(CPU) 또는 메모리 기억장치와 같은 디코더의 모듈의 동작의 시뮬레이션이다. 모델은 전형적인 디코더가 인코더에 의해 생성된 비트스트림을 디코딩할 수 있도록 하기 위해 인코딩된 비트스트림의 생성 중에 인코더 내의 내장 비디오 검정기(embedded video verifier)로서 사용될 수 있다. 모델은 또한 독립형 비디오 검정기로서 사용될 수도 있다. 독립형 비디오 검정기는 전형적인 디코더가 비트스트림을 디코딩할 수 있도록 하기 위해 임의의 수단에 의해 이미 인코딩된 비트스트림을 점검하고 검정하기 위해 사용된다.

    이 실시예는 도 9에 도시되어 있는 아래의 모델을 포함하는 비디오 검정기를 나타낸다.

    1) 비디오 버퍼 모델(120),

    2) 비디오 복잡도 모델(130),

    3) 비디오 기준 메모리 모델(140) 및

    4) 비디오 표시 모델(150).

    각 모델들은 도 10, 도 12, 도 14 및 도 16에 각각 개별적으로 도시되어 있다.

    도 10은 비디오 버퍼 검정기(202)를 가지는 비디오 버퍼 모델(120)을 나타낸다. 비디오 버퍼 검정기(202)는 비디오 디코더에 의해 요구되는 비트스트림 버퍼의 메모리 요구량을 제한하기 위해 필요하며, 이로써, 소정의 버퍼 메모리 크기로 디코딩될 수 있는 비트스트림을 만들도록 비디오 인코더를 제한할 수 있다. 인코더(201)의 출력에 부착된 비디오 버퍼 검정기(202)는 실제 디코더(203) 내에 있는 비트스트림 버퍼(204)를 시뮬레이션하는데 사용된다.

    비디오 버퍼 검정기(202)는 도 11에 도시되어 있는 바와 같이 이하의 방법으로 작동한다. 비디오 버퍼 검정기는 이하와 같이 가정함으로써 디코더의 비트스트림 버퍼를 시뮬레이션한다. 먼저, 비디오 버퍼 검정기의 임의의 최대 버퍼 크기(251) 및 가상 버퍼 검정기의 초기 점유율(252)을 가정한다. 이어서, 가상 버퍼 검정기는 인코더에 의해 생성된 비트스트림으로부터의 비트로 충전되는 것(253)으로 가정된다. 가상 버퍼 검정기는 비트스트림을 전송하는데 사용되는 채널에 의해 지배되는 특정 속도로 충전된다. 비트스트림에 내장된 타이밍 정보를 해석함으로써, 비디오 버퍼 검정기는 디코더가 비트스트림(254)으로 코딩된 입력 데이터의 개별 화상의 디코딩을 개시하는데 예상되는 시간을 산출한다. 디코더가 입력 데이터의 개별 화상의 디코딩을 완료한 것으로 추측되는 시간에, 현재의 화상을 표시하는 비트의 수는 가상 버퍼 검정기(255)에서 제거된다. 비트들은 버퍼로부터 순간적으로 제거되는 것으로 가정된다.

    가상 버퍼 검정기(202) 내용(content)은 비트가 가상 버퍼 검정기로부터 제거되기 직전 직후에 점검된다. 점유 가상 버퍼 검정기가 최대 버퍼 크기를 초과하는 경우, 가상 버퍼 검정기는 오버플로우(overflow) 되었다고 한다. 제거될 비트가 가상 버퍼 검정기에서 사용 가능한 것보다 많은 경우, 가상 버퍼 검정기는 언더플로우(underflow) 되었다고 한다. 통상 작동을 위하여, 버퍼에는 오버플로우가 허용되지 않는다. 언더플로우의 경우에, 디코더는 필요한 비트가 가상 버퍼 검정기에 도달할 때까지 작동하지 않는 유휴(idle)로 가정된다.

    이러한 모델을 실행하고, 그것을 인코더에 의해 생성된 비트스트림을 조절 및 점검하는데 사용함으로써, 표준 규격에 따른 모든 디코더가 발생된 비트스트림을 디코딩할 수 있다. 비트스트림은 디코더의 비트스트림 버퍼를 오버플로우 또는 언더플로우 시키지 않는다.

    도 12는 비디오 복잡도 검정기(302)를 가지는 비디오 복잡도 모델(130)을 나타낸다. 비디오 복잡도 검정기(302)는 비디오 디코더가 필요로하는 처리 속도 요구를 제한하기 위해 필요하며, 이와 함께 소정의 디코더 프로세서 성능에 의해 디코딩 가능한 비트스트림을 형성하기 위하여 비디오 인코더는 제한될 수 있다. 인코더(301)의 출력에 부착된 비디오 복잡도 검정기(302)는 실제 디코더(303)에 있는 프로세서(305)를 시뮬레이션하는데 사용된다.

    비디오 복잡도 검정기(302)는 도 13에서 그래프에 의해 도시되어 있는 바와 같이 이하의 방법으로 작동한다. 비디오 복잡도 검정기는 아래와 같이 가정함으로써 디코더의 프로세서를 시뮬레이션한다. 화상은 매크로블록이라고 하는 더 작은 처리 유닛으로 분할된다. 먼저, 처리를 위해 프로세서가 버퍼 내에 축적할 수 있는 특정의 매크로블록(351)의 최대수가 있다고 가정한다. 이것은 화상이 디코딩되어야 하기 전에 프로세서에 허용되는 지연량에 경계를 둔다. 이어서, 비디오 복잡도 검정기는 비트스트림에서 인코딩된 정보를 점검함으로써 디코딩 시간의 개시를 결정한다. 그 시간에 디코더는 비트스트림에서 코딩된 입력 데이터의 개별 화상의 디코딩을 개시한다고 예상되고(352), 가상 복잡도 검정기는 매크로블록의 수에 의해 디코딩될 화상의 복잡도를 결정한다(353). 이러한 매크로블록의 수는 처리를 위한 비디오 복잡도 검정기의 큐우(queue)에 위치된다. 비디오 검정기는 단위 시간당 매크로블록의 소정의 최대 속도로 매크로블록을 처리한다(354). 이러한 최대 속도는 표준 규격에 기초한다. 이러한 가정들을 사용하면, 화상의 디코딩의 종료시간이 계산된다(535). 처리 속도로 큐우의 크기를 나누는 간단한 공식은 큐우에 제공된 화상의 디코딩을 종결시키는데 필요한 시간을 제공한다.

    비디오 복잡도 검정기의 큐우는 최대 수의 매크로블록 제한을 초과하지 않게 하기 위해 디코딩의 개시시간에 점검된다. 이것은 모든 화상이 어떤 특정의 디코딩 대기시간 내에 디코딩될 수 있도록 하기 위한 것이다.

    비디오 복잡도 검정기의 다른 변형에서, 다른 유형의 매크로블록에 의해 비트스트림의 복잡도가 더 측정된다. 매크로블록의 코딩 유형은 다른 복잡도 카테고리로 매크로블록을 분류하는데 사용된다. 복잡도는 하나의 매크로블록 복잡도를 한 유닛으로 하여 가장 간단한 유형의 매크로블록에 대하여 정규화된다. 나머지 카테고리에는 1 매크로블록의 w배의 복잡도의 가중치가 주어지고, 여기서 w는 복잡도에 대응하여 각 카테고리에 대해 변동하며, 또한 항상 1보다 큰 값이다. 매크로블록 복잡도의 가중된 합은 비디오 복잡도 검정기에서 사용된다.

    이 모델을 수행하고, 모델을 인코더에 의해 생성되는 비트스트림을 조절 및 점검하는데 사용함으로써, 표준 규격에 따르는 모든 디코더가 발생되는 비트스트림을 디코딩할 수 있게 한다. 비트스트림은 디코더의 프로세서에 대해 너무 복잡하지 않게 된다.

    도 14는 비디오 메모리 검정기(402)를 가지는 비디오 메모리 모델(140)을 나타낸다. 비디오 메모리 검정기(402)는 비디오 디코더가 필요로 하는 기준 메모리 요구량을 제한하기 위해 필요하며, 이로써 소정의 기준 메모리 크기로 디코딩될 수 있는 비트스트림을 형성할 수 있도록 비디오 인코더를 제한할 수 있다. 인코더(401)의 출력에 부착되는 비디오 메모리 검정기(402)는 실제 디코더(403)에 있는 기준 메모리(406)를 시뮬레이션하는데 사용된다.

    비디오 메모리 검정기(402)는, 도 15의 그래프에 의해 도시되어 있는 바와 같이 이하의 방법으로 작동한다. 비디오 메모리 검정기는 이하와 같이 가정함으로써 디코더의 메모리 소비를 시뮬레이션한다. 먼저, 매크로블록에 의한 임의의 최대 기준 메모리가 사용 가능하다(451)고 가정한다. 디코딩 시간 동안(452), 기준 메모리는 화상의 디코딩의 속도로 주어지는 일정한 속도로 소비된다(453). 이 속도는 단위 시간당 매크로블록에 의한 것일 수 있다. 현재의 화상의 표시시간에(454), 이전의 화상에 의해 점유되는 메모리는 순간적으로 해제된다(455).

    현재의 화상이 아니며, 이전의 화상에 의해 점유된 메모리가 해제되는 이유는, 이전 화상의 기준 메모리가 현재의 화상의 디코딩을 위해 사용되기 때문이다. 이전 화상에 의해 점유된 메모리는 그것이 더 이상 필요하지 않을 때만 해제될 수 있다. 현재의 화상의 디스플레이 시간은, 현재의 화상이 디코딩되고 따라서 이전 화상이 더 이상 필요하지 않고 해제될 수 있는 것을 결정하는데 사용된다. 양방향 예측의 경우에, 메모리의 해제는 더욱 복잡하다. 양방향 예측된 화상이 이후의 화상의 예측에 사용되지 않기 때문에, 이 화상들은 어떠한 지연없이 그 표시시간에 메모리로부터 해제된다.

    비디오 메모리 검정기는 각 화상의 표시시간에 점검되어, 화상이 최대 기준 메모리를 초과했는지의 여부를 확인한다. 이것은 디코딩된 화상의 기억을 위해 기준 메모리가 항상 충분히 존재하도록 하기 위한 것이다.

    이 모델을 수행하고, 이것을 인코더에 의해 생성되는 비트스트림을 조절 및 점검하는데 사용함으로써, 표준 규격에 따르는 임의의 디코더가 발생되는 비트스트림을 디코딩할 수 있게 한다. 비트스트림은 디코더에서 사용 가능한 것보다 더 많은 기준 메모리를 점유하지 않는다.

    비디오 표시 모델

    도 16은 비디오 표시 검정기(502)를 가지는 비디오 표시 모델(150)을 나타낸다. 비디오 표시 검정기(502)는 비디오 디스플레이에 의해 요구되는 표시 메모리 요구량을 제한하기 위해 필요하며, 이로써 비디오 인코더는 비트스트림을 소정의 디스플레이 메모리 크기로 디스플레이할 수 있도록 하기 위해 제한될 수 있다. 인코더(501)의 출력에 부착되는 비디오 표시 검정기(502)는 실제 디코더(503)의 출력에 부착되는 표시 메모리(507)를 시뮬레이션하는데 사용된다.

    비디오 표시 검정기(502)는 도 17의 그래프에 의해 도시되어 있는 바와 같이, 이하의 방법으로 작동한다. 비디오 표시 검정기는 이하와 같이 가정함으로써 디스플레이의 표시 메모리 버퍼를 시뮬레이션한다. 먼저, 매크로블록에 의한 특정의 최대 표시 메모리가 사용 가능하다(551)고 가정한다. 표시시간 동안(552), 표시 메모리는 완전히 디코딩된 화상으로 충전된다. 이 메모리는 화상이 디스플레이됨에 따라 일정 속도로 해제된다(553). 상기 표시 검정기는 버퍼의 누적된 매크로블록이 최대 사용 가능 메모리를 초과하지 않도록 하기 위해 점검된다.

    상기에서 개별적으로 표시된 비디오 검정기 모델은 완전한 비디오 검정기를 형성하기 위해 결합될 수도 있다. 도 18은 인코더의 모든 모듈을 포함하는 완전한 해결법을 나타낸다. 도 18은 비디오 검정기 모델 및 상기 검정기의 피드백 메커니즘에 의해 제어되는 여러 가지 인코더 모듈을 나타낸다. 본 발명의 비디오 검정기 모델은 비디오 인코더 및 선행 인코딩 비디오 비트스트림(pre-encoded video bitstream)의 검정에 사용된다.

    비디오 인코더에 사용될 때, VBV 모델(613)은 비트스트림 속도(rate)를 점검하기 위해 사용된다. 상기 속도가 정해진 한계보다 큰 경우, 피드백 신호는 양자화(604) 및 VLC(605)를 제어하기 위해 속도 제어기(610)로 전송된다. VCV 모델(612)은 발생된 비트스트림의 복잡도 또는 디코딩 비용을 점검하는데 사용된다. 복잡도가 정해진 한계를 초과하는 경우, 피드백 신호는 매크로블록 유형 결정(601)을 제어하기 위해 매크로블록 유형 제어기(611)로 전송된다. VMV(614) 및 VPV(615)는 기준 메모리(608) 요구를 점검하는데 사용된다. 오버플로우되는 경우, 피드백 신호는 매크로블록 유형 결정(601)을 변경하기 위해 매크로블록 유형 제어기(611)로 재전송된다.

    도 19에 도시되어 있는 바와 같이, 상기 검정기 모델은 또한 비디오 비트스트림의 적합성을 점검하는데 사용될 수도 있다. 흐름도에 의해, 비디오 비트스트림은 VBV, VCV, VMV 및 VPV로 하나씩 점검된다. 모든 제한이 충족될 수 없는 경우, 비트스트림은 부적합하며 거부되어야 한다.

    제3 실시예

    제3 실시예는 본 발명의 일반화된 경우들이다. 제3 실시예는 비디오 검정기 모델의 완전한 규격의 일례를 설명한다. 제3 실시예는 아래의 정의로 구분된다.

    비디오 버퍼 모델 정의

    비디오 버퍼 검정기(VBV)는 디코더에 필요한 속도 버퍼 메모리(rate buffer memory)의 크기가 상기 버퍼 크기보다 작은 것을 검정하기 위해, 그 전송률 함수[R(t)]로 비트스트림을 점검하는 알고리듬이다. MPEG-2로부터 발생된 새로운 VBV는 객체 지향 비디오 코딩의 새로운 특징에 의해 규정된다. 영상 비트스트림(visual bitstream)이 하나 이상의 비디오 객체 계층(VOL)을 각각 가지는 다중 비디오 객체(VO)로 구성된 경우, 상기 속도 버퍼 모델은 각 VOL에 (그 VOL에 특정되는 버퍼 크기 및 비율 함수(rate function)를 사용하여) 독립적으로 적용된다.

    VBV는 인트라(intra), 예측(predicted) 및 양방향(Bi-directional) 비디오 객체 평면(plane)(I, P 및 B-VOP)의 조합으로서 코딩되는 본래의 비디오에 적용한다. 이하의 항목에 대해서는 도 20을 참조한다. 코딩된 비디오 비트스트림은 이하와 같이 규정된 VBV의 요구에 부합하도록 제한된다.

    1. vbv_buffer_size 및 vbv_occupancy 파라미터가 시스템 레벨 구성 정보에 의해 특정될 때, 비트스트림은 특정값에 따라서 제한된다. vbv_buffer_size 및 vbv_occupancy 파라미터가 (후술되는 바와 같은 짧은 비디오 헤더(short video header)는 제외하고) 특정되지 않은 때, 이것은 vbv_buffer_size 및 vbv_occupancy의 디폴트값에 따라서 비트스트림이 제한되는 것을 나타낸다. vbv_buffer_size의 디폴트값은 프로파일(profile) 및 레벨 내에서 허용되는 vbv_buffer_size의 최대값이다. vbv_occupancy의 디폴트값은 170×vbv_buffer_size이며, 여기에서 vbv_occupancy는 64 비트 유닛이고, vbv_buffer_size는 16384 비트 유닛이다. 이것은 전체 버퍼 크기의 대략 2/3의 초기 점유값에 대응한다.

    2. VBV 버퍼 크기는 16384 비트 유닛의 VOL 헤더의 vbv_buffer_size 필드에 의해 특정된다. 0의 vbv_buffer_size는 금지된다. B=16834×vbv_buffer_size를 비트의 VBV 버퍼 크기로 규정한다.

    3. 인코더에 의해 볼 수 있는 순간적인 비디오 객체 계층 채널 비트율은 비트/초로서 R vol (t)로 나타낸다. VOL 헤더에 bit_rate 필드가 존재하는 경우, 그 필드는 R vol (t)≤400×bit_rate가 되도록 피크율(초당 400 비트 유닛; 0의 값은 금지)을 규정한다. R vol (t)는 현재의 VOL에 대한 영상 신텍스(visual syntax)만을 계산한다(이하의 d i 의 정의 참조). 채널이 다른 VOL을 포함하는 연속 시간 다중화(serial time multiplx)인 경우 또는 인코더에 의해 볼 수 있는 모든 순간적인 채널률 가지는 ISO/IEC 14496-1에 규정된 것과 같은 연속 시간 다중화라면, 다음 식과 같다.

    4. VBV 버퍼는 초기에 비어 있다. vbv_occupancy 필드는 초기 VOP를 디코딩하기 전에 64 비트 유닛의 VBV 버퍼의 초기 점유값을 특정한다. VBV 버퍼의 제1 비트는 기본 스트림의 제1 비트이다.

    5. d i 를 i번째 VOP의 비트의 크기 + 직전의 모든 GOV 헤더의 크기가 되도록 규정하며, 여기에서 i는 디코딩 순서에서 1씩 증가하는 VOP 인덱스(index)이다. VOP는 후속 개시 코드 이전의 모든 후속 스터핑 코드 워드(trailing stuffing code word)를 포함하고, 코딩된 VOP(d i )의 크기는 개시 코드 정렬에 기인하여 항상 8 비트의 배수이다.

    6. t i 를 디코딩 순서에서 VOP i와 관련된 디코딩 시간이라고 하자. VOP i의 모든 비트(d i )는 t i 에서 순간적으로 VBV 버퍼에서 제거된다. 이 순간적인 제거 특성은 VBV 버퍼를 실제 속도 버퍼와 구별시킨다. t i 의 값을 결정하는 방법은 이하 7번 항목에서 정의된다.

    7. τ i 는 VOP i의 합성 시간(또는 비합성기 디코더(no-compositor decoder)의 표시시간)이다. 비디오 객체 평면에 대하여, τ i 는 vop_time_increment (1/vop_time_increment_ resolution 초의 유닛) + module_time_base로 특정된 전체 초의 누적된 수에 의해 규정된다. 비월 주사된 비디오(interlaced video)의 경우에는, VOP는 2개의 필드에서의 라인으로 구성되고, τ i 는 제1 필드의 합성 시간이다. VOP의 합성 시간 및 디코딩 시간 사이의 관계는 아래와 같이 주어지며,

    여기에서 low_delay는 기본 스트림이 B-VOP를 포함하지 않는 경우 참('1')이다. low_delay가 '0'이고 측정가능성(scalability)이 '0'인 경우, I 및 P VOP의 합성 시간은 일시적으로 직전의 모든 B-VOP가 합성될 때까지 지연된다. 이러한 지연 기간은 m ifp 이고, 여기에서 I 또는 P VOP에 대하여 f는 VOP 자체의 인덱스이고, B-VOP에 대해서는 VOP i에 관련된 시간적으로 가장 가까운 일시적으로 장래의 비 B VOP(non-B VOP)의 인덱스이며, p는 vop i에 관련된 시간적으로 가장 가까운 일시적으로 직전의 비 B VOP이다.

    m i 가 제1 VOP에서 요구될 때 모델 디코더를 초기화하기 위해, 제1 VOP에 대한 초기 디코딩 시간(t 0 )을 정의하는 것이 필요하다(타이밍 구조가 B-VOP 시간에 고정되고 제1 디코딩 VOP는 B-VOP가 아니기 때문에). 이러한 정의된 디코딩 타이밍은 t 0 =2t 1 -t 2 (즉, t 1 -t 0 =t 2 -t 1 으로 가정)으로 된다.

    아래의 예는 mi가 연속적인 B-VOP의 가변적인 수들을 가지는 시퀀스에 대해 결정되는 방법을 나타낸다.

    디코딩 순서 : I 0 P 1 P 2 P 3 B 4 P 5 B 6 P 7 B 8 B 9 P 10 B 11 B 12

    표시 순서 : I 0 P 1 P 2 B 4 P 3 B 6 P 5 B 8 B 9 P 7 B 11 B 12 P 10

    이 예에서 vop_time_increment=1이고 modulo_time_base=0으로 가정한다. 서브 인덱스 i는 디코딩 순서 중에 있다.

    m

    i 가 결정되는 방법을 나타내는 예

    i τ i t i m i
    0 0 0-1=-1 1
    1 1 1-1=0 1
    2 2 2-1=1 1
    3 4 4-2=2 2
    4 3 3 2
    5 6 6-2=4 2
    6 5 5 2
    7 9 9-3=6 3
    8 7 7 3
    9 8 8 3
    10 12 12-3=9 3
    11 10 10 3
    12 11 11 3

    8. b i 는 속도 버퍼로부터 VOP i의 제거 직후의 비트의 버퍼 점유율로서 규정한다. 상기 정의를 이용하면, b i 는 반복적으로 규정할 수 있다.

    9. 속도 버퍼 모델은 VBV 버퍼가 오버플로우 또는 언더플로우하지 않는 것, 즉, 모든 i에 대해 0<b i 및 b i +d i <B 를 필요로 한다. b i 를 계산하기 위해 실수값을 사용하므로 에러가 누적되지 않는다.

    10. 짧은 비디오 헤더가 사용되는 경우(즉, short_video_header=1일 때), 파라미터 vbv_buffer_size는 존재하지 않고, 아래의 조건이 VBV 동작을 위해 필요하게 된다. 버퍼는 인코더 동작의 개시시에(즉, 짧은 헤더를 가지는 제1 비디오 평면의 발생시에 t=0) 초기에는 비어 있고, 그 충족(fullness)은 이어서 1001/30000초의 각 시간 간격 후에 점검된다(즉, t=1001/30000, 2002/30000 등에서). 짧은 헤더를 가지는 완전한 비디오 평면이 점검 시간에 버퍼 중에 있는 경우, 비디오 평면은 제거된다. VOP, b i 의 제거 후에 버퍼 충족은 0보다 크고 (4·Rmax·1001)/30000 비트보다 작게되고, 여기에서 Rmax는 프로파일 및 레벨 내에서 허용되는 비트/초의 최대 비트율이다. 모든 단일 VOP, d i 를 코딩하는데 사용되는 비트의 수는 k·16384 비트를 초과하지 않도록 하며, 여기에서 보다 큰 k의 값이 프로파일 및 레벨 정의에서 특정되어 있지 않은 한, QCIF 및 서브 QCIF에 대해 k=4이고, CIF에 대해 k=16이며, 4CIF에 대해 k=32이고, 16CIF에 대해 k=64이다. 더욱이, 언제나 총 버퍼 충족은 B = k·16384 + (4·Rmax·1001)/30000의 값을 초과하지 않는다.

    인코더에 대한 요구는 VBV 버퍼를 오버플로우 또는 언더플로우하지 않는 비트스트림을 생성하는 것이다. 이것은 시스템이 비트스트림의 발송을 위해 동작하는 R vol, decoder (t)의 값의 범위에서 인코더가 정확한 VBV 동작을 실행하도록 설계되어야 함을 의미한다. 특정 비트가 채널에 입력될 때의 시간 t에서 인코더 비트율 R vol, encoder (t)가 R vol, decoder (t+L)과 동일하면 채널은 일정한 지연을 갖게 되고, 이 경우 비트는 (t+L)로서 수신된다. 일정한 지연 채널의 경우에, 인코더는 오버플로우 또는 언더플로우를 방지하기 위해, VBV 점유율을 시뮬레이션하고 VOP, di 당 비트의 수를 제어하도록 인코더의 국부적으로 평가된 R vol, encoder (t)를 사용할 수 있다.

    VBV 모델은 일정한 지연 채널을 가정한다. 이것은 인코더가 R vol, encoder (t)를 사용하여 버퍼를 오버플로우 또는 언더플로우하지 않는 기본적인 비트스트림을 생성할 수 있게 하며, R vol (t)는 상기 2 항목의 R vol, encoder (t)로서 규정됨에 유의하라.

    비디오 복잡도 모델 정의

    비디오 복잡도 검정기(VCV)는 디코더에 필요한 처리 능력의 크기가 I-MB/sec에 등가인 비용 함수의 상술한 복잡도 측정보다 작은지를 검정하기 위해 비트스트림을 점검하기 위한 알고리듬이다. 영상 비트스트림이 각각 하나 이상의 VOL을 가지는 다중 VO로 구성된 경우, 비디오 복잡도 모델은 모든 VOL에 대해 (모든 VOL에 대해 하나의 누적 vcv_buffer_size를 사용하여) 함께 적용된다.

    VCV는 I, P 및 B-VOP의 결합으로서 코딩된 본래의 비디오에 적용한다. 코딩된 비디오 비트스트림은 이하와 같이 정의된 VCV의 요구와 부합하도록 제한된다.

    1. vcv_buffer_size는 VCV 버퍼에 포함될 수 있는 등가의 I-MB의 수로서 규정된다. 이들 등가의 I-MB의 수는 비용함수 등가의 I-MB 디코딩 속도 vcv_decoder_rate로 디코더에 의해 소비된다. vcv_decoder_latency는 전체 VCV 버퍼(vcv_buffer_size MB)를 MB 디코딩 속도로 디코딩하는데 필요한 처리시간(등가의 I-MB/s)으로 규정된다. 따라서, 관계식 vcv_buffer_size = vcv_decoder_latency * vcv_decoder_rate가 유지된다. VCV 버퍼는 디코딩의 개시시에 초기에 비어 있다.

    2. vcv-decoder_latency 파라미터가 vol_control_parameters에 의하여 특정될 때, 비트스트림은 특정값에 따라서 제한된다. vcv_decoder_latency 파라미터가 특정되지 않을 때, 비트스트림은 vcv_decoder_latency의 디폴트값에 따라서 제한된다.

    3. 등가의 I-MB 유닛의 vop, M i 의 복잡도 비용은 아래의 공식에 기초하여 계산된다.

    M i 는 시간 스탬프 t i 에서 매크로블록의 새로운 양이다. M i 는 I-, P- 및 B- 매크로블록을 포함할 수 있다. 이들 매크로블록에 대한 「디코딩 비용」은 매크로블록 유형에 기초하여 가중치 w I , w P , w B , w SI 및 w SP 로 제공된다.

    M i =w I M Ii +w P M Pi +w B M Bi +w SI M SIi +w SP M SPi

    여기에서 I, P 및 B는 각각 I-, P- 및 B-매크로블록에 관한 것이지만, SI 및 SP는 각각 객체 경계(형상)를 포함하는 I- 및 P-매크로블록에 관한 것이다.

    4. 시간 t i - vcv_decoder_latency에서, vop의 복잡도 비용은 VCV 버퍼에 더해지며, 여기에서 t i 는 섹션 0에서 계산된 디코딩 시간이다.

    5. 복잡도 모델은 VCV 버퍼가 오버플로우하지 않는 것을 필요로 하며, 즉, 디코딩 프로세스가 디코더 대기시간 내에 완료되어야 한다. 그러한 경우에, 모델의 유일한 엄격한 요구가 충족된다. 디코딩 종료시간은 섹션 0에서 계산된 디코딩 시간보다도 앞서야만 된다. 이러한 제한은 VCV 버퍼가 오버플로우가 발생되지 않는 경우, 항상 충족된다.

    6. 복잡도 모델은 VCV 버퍼가 언더플로우될 수 있게 하고, 그 경우 디코더가 간단히 유휴 상태를 유지하지만, VCV 버퍼는 비어 있다.

    비디오 기준 메모리 모델 정의

    비디오 메모리 검정기(VMV)는 디코더에서 필요한 기준 메모리의 크기가 MB 유닛의 상기 언급된 최대 총 기준 메모리보다 작은지를 검정하기 위해 비트스트림을 점검하기 위한 알고리듬이다. 영상 비트스트림이 각각 하나 이상의 VOL을 가지는 다중 VO로 구성되는 경우, 비디오 기준 메모리 모델은 모든 VOL에 공동으로 적용된다(이 모델이 공유 메모리 공간을 취하기 때문에).

    VMV는 I, P 및 B-VOP의 결합으로서 코딩되는 본래의 비디오에 적용된다. 코딩된 비디오 비트스트림은 이하와 같이 정의된 VMV의 요구에 부합하도록 제한된다.

    1. 기준 메모리는 초기에 비어 있다. 각 매크로블록이 디코딩될 때, 디코딩된 데이터로 충전된다.

    2. i번째 vop의 디코딩에 필요한 기준 메모리의 크기는 vop,n i 의 매크로블록의 수로 규정되고, vop,T i 디코딩 기간 중에 일정한 속도로 소비된다. i번째 vop,T i 의 디코딩 기간은 s i 및 e i 사이에서 발생한다. 여기서 s i 및 e i 는 i번째 vop의 디코딩 개시시간 및 디코딩 종료시간이며, 도 21의 VCV 모델의 디코더 처리 기울기와 디코더 시간축의 교점으로부터 얻어진다.

    3. I- 또는 P-VOP의 합성시간(또는 비합성기(no-compositor) 디코더의 표시시간) τ i 에서, 디코딩 순서에서 이전의 I- 또는 P-VOP에 할당된 총 메모리는 순간적으로 해제된다.

    4. B-VOP의 합성시간(또는 비합성기 디코더의 표시시간) τ i 에서, B-VOP에 할당된 총 메모리는 순간적으로 해제된다.

    5. 기준 메모리 모델은 VMV 버퍼가 오버플로우하지 않는 것을 필요로 한다.

    비디오 메모리 검정기의 버퍼 점유율이 도 21에 도시되어 있다. 도 21에서, 화살표 A1은 기준 메모리가 디코딩 기간동안 소비되는 위치를 나타내고, 화살표 A2는 비합성기 디코더의 표시시간 또는 합성시간에 기준 메모리가 해제되는 위치를 나타낸다.

    VBV, VCV 및 VMV 사이의 상호 작용

    속도 버퍼 모델은 비트스트림이 디코딩을 위해 사용 가능한 시간과 버퍼로부터 제거된 시간을 규정한다. 복잡도 모델은 매크로블록이 디코딩되는 속도를 정의한다. 기준 메모리 모델은 소비 및 해제되는 기준 메모리의 크기를 정의한다. 명백하게, 비디오 디코더가 가능한 한 미리 디코딩하는 것이 유리하다. 그러나, 이것은 VBV 및 VMV에 의해 제한된다. 디코더는 디코딩하는데 비트를 사용할 수 있는 경우에만, 디코딩을 개시할 수 있다. 디코더가 비트스트림을 디코딩하는 동시에, 기준 메모리를 소비하는 매크로블록을 발생한다. 디코더가 너무 빨리 디코딩하는 경우, 기준 메모리를 오버플로우시킨다.

    반면에, 디코더가 너무 느리게 디코딩을 개시하는 경우, 제 때에 디코딩을 완료할 수 없고, 비트스트림은 처리되기 전에 VBV로부터 제거될 수 있다. 마찬가지로, 현재의 VOP의 예측에 필요한 기준 메모리도 또한 VMV로부터 제거될 수 있다.

    따라서, 결과적인 비트스트림이 VBV, VCV 및 VMV 모델 중 어느 것도 위반하지 않도록 인코더는 vbv_buffer_size, vbv_occupancy 및 vcv_decoder_latency 파라미터를 조정해야 한다. 이들 파라미터를 조정하는 이외에, 결과적인 비트스트림이 상기 모델들을 위반하지 않도록, 인코더는 그 인코딩 파라미터를 적응적으로 조정할 수 있다.

    비디오 표시 모델 정의

    비디오 표시 검정기(VPV)는 디코더에 필요한 표시 버퍼의 크기가 MB 유닛의 메모리의 제공된 크기보다 작은지를 검정하기 위해, 비트스트림을 점검하기 위한 알고리듬이다. 비디오 표시 검정기는 또한 MB/sec의 최대수에 의해 합성기의 속도를 제한하는데 사용된다.

    VPV는 VCV와 동일한 방식으로 동작한다.

    1. i번째 VOP, τ i 의 합성시간에, VOP는 표시 버퍼에 위치된다.

    2. 표시 버퍼의 데이터는 최대수의 MB/sec와 등가인 속도로 합성기에 의해 소비된다.

    3. τ i + compositor_latency에서, VOP는 합성된다.

    4. 표시 메모리 모델은 VPV 버퍼가 오버플로우하지 않을 것을 요구한다.

    본 발명의 제3 실시예에 의하면, 인코더는 발생하는 코딩된 비트스트림의 복잡도를 제어 및 조절할 수 있다. 동시에, 디코더는 너무 복잡한 스트림이 생성되지 않게 한다.

    본 발명의 효과는 최악의 시나리오에 더 이상 기초하지 않고, 표준 규격에 의해 특정되는 일반적인 복잡도 측정에 기초하는 디코더의 설계를 제공할 수 있다. 이러한 제품들의 비용은 따라서 과도한 기술을 요하지 않으므로 감소될 수 있다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈