IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 上海交通大学の特許一覧

特許7408152メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体
<>
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図1
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図2
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図3
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図4
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図5
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図6
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図7
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図8
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図9
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図10
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図11
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図12
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図13
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図14
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図15
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図16
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図17
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図18
  • 特許-メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体
(51)【国際特許分類】
   H03M 13/35 20060101AFI20231225BHJP
   H04L 1/00 20060101ALI20231225BHJP
【FI】
H03M13/35
H04L1/00 B
H04L1/00 E
【請求項の数】 13
(21)【出願番号】P 2020500808
(86)(22)【出願日】2018-07-09
(65)【公表番号】
(43)【公表日】2020-08-31
(86)【国際出願番号】 CN2018095051
(87)【国際公開番号】W WO2019011219
(87)【国際公開日】2019-01-17
【審査請求日】2021-07-09
(31)【優先権主張番号】201710561850.2
(32)【優先日】2017-07-11
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201710973473.3
(32)【優先日】2017-10-18
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】507190994
【氏名又は名称】上海交通大学
【氏名又は名称原語表記】SHANGHAI JIAO TONG UNIVERSITY
【住所又は居所原語表記】800 Dongchuan Rd.,Minhang District,Shanghai,200240,P.R.CHINA
(74)【代理人】
【識別番号】100205936
【弁理士】
【氏名又は名称】崔 海龍
(72)【発明者】
【氏名】徐 異凌
(72)【発明者】
【氏名】張 文軍
(72)【発明者】
【氏名】柳 寧
(72)【発明者】
【氏名】管 云峰
(72)【発明者】
【氏名】王 延峰
(72)【発明者】
【氏名】孫 軍
(72)【発明者】
【氏名】姜 志乾
(72)【発明者】
【氏名】陳 浩
【審査官】吉江 一明
(56)【参考文献】
【文献】Cornelius Hellge, Thomas Schierl, Thomas Wiegand,MOBILE TV USING SCALABLE VIDEO CODING AND LAYER-AWARE FORWARD ERROR CORRECTION,2008 IEEE International Conference on Multimedia and Expo,IEEE,2008年04月26日,pp. 1177-1180,https://ieeexplore.ieee.org/document/4607650
【文献】Michael Luby, Mark Watson, Tiago Gasiba, Thomas Stockhammer, Wen Xu,Raptor codes for reliable download delivery in wireless broadcast systems,CCNC 2006. 2006 3rd IEEE Consumer Communications and Networking Conference, 2006.,IEEE,2006年01月10日,https://ieeexplore.ieee.org/document/1593014
【文献】Cornelius Hellge, David Gomez-Barquero, Thomas Schierl, Thomas Wiegand,Layer-Aware Forward Error Correction for Mobile Broadcast of Layered Media,IEEE Transactions on Multimedia,Volume: 13, Issue: 3,IEEE,2011年03月22日,pp. 551-562,https://ieeexplore.ieee.org/document/5737793
【文献】Qualcomm Incorporated,Proposed MBMS FEC Code: Proposed MBMS FEC Code based on IETF RFC6330[online],3GPP TSG-SA WG4#70 S4-121053,2012年08月10日
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/35
H04L 1/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
FEC符号化コードワードのデコード方法であって、
送信された復元データパケット、中間データパケット及び対応する指示情報を受信し、前記中間データパケットは実際の応用シーンおよびメディア内容に基づいて分けられた異なる優先順位の高い方から低い方に再配列されたものであるステップと、
前記復元データパケット及び中間データパケットに含まれるインデックスフィールド及び/又は優先順位指示フィールド、並びに前記指示情報を解析し、復元データパケット及び中間データパケットのロス状況、復元データパケット及び中間データパケットの前記インデックスフィールド、並びに前記指示情報に基づいて復元行列を生成するステップと、
前記復元行列及び受信された復元データパケット、中間データパケットに基づいて中間コードワードを生成するステップと、
中間コードワードを自己適応方式によりFEC復号化することで、復号化された後の中間データパケットに復元するステップと、
復号化された後の中間データパケットにおけるサブパケットのヘッダの総情報を解析し、復号化された後の前記中間データパケットにおけるサブパケットを再配列することで、ソースデータパケットに復元するステップと、
を含むことを特徴とする、FEC符号化コードワードのデコード方法。
【請求項2】
前記復元データパケットに含まれる前記インデックスフィールドは、前記復元データパケットにおけるサブパケットのシーケンス、前記優先順位指示フィールドに対応する優先順位での復元データパケットにおけるサブパケットのシーケンス、及び/又は対応する優先順位に属するサブパケットの数目若しくは前記復元データパケットにおける前記サブパケットの割合を指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード方法。
【請求項3】
前記中間データパケットに含まれる前記インデックスフィールドは、前記中間データパケットにおけるサブパケットのシーケンス、及び/又は前記優先順位指示フィールドに対応する優先順位での中間データパケットにおけるサブパケットのシーケンスを指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード方法。
【請求項4】
前記指示情報は、前記復元データパケットの各優先順位でのサブパケット、及び/又は前記中間データパケットの各優先順位でのサブパケットを指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード方法。
【請求項5】
復元データパケット及び中間データパケットのロス状況、復元データパケット及び中間データパケットの前記インデックスフィールド、並びに前記指示情報に基づいて復元行列を生成するステップは、
復元データパケット、中間データパケットに含まれるインデックスフィールド及び/又は優先順位指示フィールド並びに前記指示情報に基づいて、中間データパケットのコーディング行列を生成するステップと、
中間データパケットのコーディング行列、復元データパケット、中間データパケットのロス状況に基づいて復元行列を生成するステップと、
を含むことを特徴とする、請求項に記載のFEC符号化コードワードのデコード方法。
【請求項6】
中間コードワードをFEC復号化することで復号化された後の中間データパケットに復元するステップは、
中間データパケットのLTコーディング行列及び中間コードワードに基づいて、復号化された後の中間データパケットを生成するステップを含むことを特徴とする、請求項に記載のFEC符号化コードワードのデコード方法。
【請求項7】
送信された復元データパケット、中間データパケット及び対応する指示情報を受信し、前記中間データパケットは実際の応用シーンおよびメディア内容に基づいて分けられた異なる優先順位の高い方から低い方に再配列されたものである受信モジュールと、
前記復元データパケット及び中間データパケットに含まれるインデックスフィールド及び/又は優先順位指示フィールド、並びに前記指示情報を解析し、復元データパケット及び中間データパケットのロス状況、復元データパケット及び中間データパケットの前記インデックスフィールド、並ぶに前記指示情報に基づいて復元行列を生成する復元行列生成モジュールと、
前記復元行列及び受信した復元データパケット、中間データパケットに基づいて中間コードワードを生成し、中間コードワードを自己適応方式によりFEC復号化することで復号化された後の中間データパケットに復元する復号化モジュールと、
復号化された後の中間データパケットにおけるサブパケットのヘッダの総情報を解析し、復号化された後の前記中間データパケットにおけるサブパケットを再配列することで、ソースデータパケットに復元する復元モジュールと、
を含むことを特徴とする、FEC符号化コードワードのデコード装置。
【請求項8】
前記復元データパケットに含まれる前記インデックスフィールドは、前記復元データパケットにおけるサブパケットのシーケンス、復元データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンス、及び/又は対応する優先順位に属するサブパケットの数若しくは前記サブパケットの前記復元データパケットにおける割合を指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード装置。
【請求項9】
前記中間データパケットに含まれる前記インデックスフィールドは、前記中間データパケットにおけるサブパケットのシーケンス及び/又は中間データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンスを指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード装置。
【請求項10】
前記指示情報は、前記復元データパケットの各優先順位でのサブパケット、及び/又は前記中間データパケットの各優先順位でのサブパケットを指示するものであることを特徴とする、請求項に記載のFEC符号化コードワードのデコード装置。
【請求項11】
前記復元行列生成モジュールが復元データパケット及び中間データパケットのロス状況、復元データパケット及び中間データパケットの前記インデックスフィールド、並びに前記指示情報に基づいて復元行列を生成することは、
復元データパケット、中間データパケットに含まれるインデックスフィールド及び/又は優先順位指示フィールド及び前記指示情報に基づいて中間データパケットのコーディング行列を生成すること、並ぶに
中間データパケットのコーディング行列及び復元データパケット、中間データパケットのロス状況に基づいて復元行列を生成すること、
を含むことを特徴とする、請求項に記載のFEC符号化コードワードのデコード装置。
【請求項12】
中間データパケットのLTコーディング行列及び中間コードワードに基づいて復号化された後の中間データパケットを生成する復号化モジュールを含むことを特徴とする、請求項11に記載のFEC符号化コードワードのデコード装置。
【請求項13】
コンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータプログラムは、プロセッサにより実行されることにより、請求項1からのいずれか1項に記載のFEC符号化コードワードのデコード方法を実現することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中国特許出願CN201710973473.3(出願日:2017年10月18日、発明の名称:メディア内容に基づく自己適応システムコードFEC方法、装置およびシステム)および中国特許出願CN201710561850.2(出願日:2017年07月11日、発明の名称:メディア内容に基づく自己適応システムコードFEC符号化および復号化方法)の優先権を主張する。
【0002】
本発明は、マルチメディア伝送技術分野に関し、具体的には、メディア内容に基づく自己適応システムコードFEC(Forward Error Correction、前方誤り訂正)符号化および復号化方法、装置、システムおよび媒体に関する。
【背景技術】
【0003】
ヘテロジニアスネットワークのメディアサービスシステムにおいて、内容は、インターネットプロトコルまたは放送プロトコルにより端末に送信される。インターネットでは、IP/TCPまたはUDPメッセージによりメディアデータを伝送し、放送では、MPEG2-TSにより内容を伝送する。UDPメッセージは、複数のネット機器を経過した後、ロスする恐れがある。放送TSストリームは、伝送環境の影響によりビットエラーが発生し、端末側の画面の破損または音声の中断をもたらす恐れがある。
【0004】
FEC(Forward Error Correction、前方誤り訂正)技術は、通信システムにおいて幅広く応用されている符号化技術である。サーバー側は、メディアデータに対して誤り訂正の符号化を行い、さらに冗長情報を追加して送信し、端末側は、逆方向のFEC復号化を行い、紛失されたメッセージについて復元を行う。典型的なブロックシンボルを例にすれば、その基本原理は以下のとおりである。
送信端において、k bitの情報を一つのブロックとして符号化し、(n-k) bitの冗長校正情報を追加して、長さがn bitのコードワードを構成する。コードワードがチャネルを経て受信端に達した後、もし誤りが訂正可能な範囲内であれば、復号化によって誤りのbitを検査して訂正することができる。これにより、チャネルによりもたらした干渉に抵抗して、システムのビット誤り率を効果的に低減し、通信システムの信頼性を向上させる。しかしながら、FEC処理は冗長オーバーヘッドコストによりシステムのビット誤り率を低減するため、過剰なFEC符号化はシステムのリアルタイム性およびネットワークの状態に対してプレッシャーを与えることもある。
【0005】
不均一誤り保護(Unequal Error Protection、UEP)は、ジョイントソースチャネルコーディングの一種である。その核心的な思想は、コードストリームの各部分のデータの異なる重要性に基づき、各部分のデータに対して異なるチャネル保護メカニズムを用い、即ち重要なコードストリームに対しては重点的に保護する。UEPは非重要なコードストリームのノイズに耐える性能を低下させるが、システムのビット誤りを防ぐ全体的な性能の向上には役立つ。
【0006】
FEC(前方誤り訂正)符号化技術の一つとして、デジタルファウンテンコード(Digtial Fountain Code)は伝送過程において、フィードバックおよび自動再送信のメカニズムを必要としないため、信号送受信による時間遅延およびブロードキャスト応用におけるフィードバック爆発の問題を回避している。デジタルファウンテンの基本的な思想は、次のとおりである。送信端は、オリジナルデータをk個のデータシンボルに分割し、これらのデータシンボルについて符号化し、任意の長さの符号化シンボルのコードストリームを出力する。受信端は、n(nはkよりやや大きい)個の符号化シンボルを正確に受信するだけで全てのk個のデータシンボルを大きな確率で復元することができる。数字ファウンテンコードそれ自体は、UEP性能を有するので、重要性が異なるデータの保護を実現することができる。
【発明の概要】
【0007】
従来技術の問題点に鑑みて、本発明は、メディア内容に基づく自己適応システムコードFEC符号化および復号化方法、装置、システムおよび媒体を提供することを目的とする。
【0008】
(1)本発明に係るメディア内容に基づく自己適応システムコードFEC符号化および復号化方法は、
メディア内容の重要度に基づいて、ソースデータを優先順位に従ってN(1よりも大きい整数)種類のソースデータパケットに分けるステップと、
ソースデータおよびN種類のソースデータパケットの優先順位に基づいてN種類の中間コードを生成するステップと、
前記N種類の中間コードに基づいて、チャンネル状况に従ってN種類のソースデータの復元データを設定し、N種類の符号化シンボルを生成するステップと、
前記符号化シンボルを受信し、復号化の需要に応じて前記符号化シンボルを整理、配列し、前記符号化シンボルを復号化処理するステップと、
受信した符号化シンボルの状況に基づいて、先に優先順位が高い中間コードを復号化し、この中間コードに基づいて対応するソースデータパケットに復元するステップと、
を含む。
【0009】
(2)好ましくは、前記ソースデータおよびN種類のソースデータパケットの優先順位に基づいてN種類の中間コードを生成するステップは、
N種類のソースデータパケットに対応するコーディング行列A(i=1,2,…N)を構成することを含み、
【数1】
ここで、Aは、第iのソースデータパケットに対応するコーディング行列、G_pは、第iのソースデータパケットに対応するLDPC行列および単位行列からなる結合行列、G_ENCは、第iのソースデータパケットに対応するLTコーディング行列を示し、
N種類のソースデータパケットに対応するコーディング行列に基づいてソースデータのコーディング行列Aを構築し、前記ソースデータのコーディング行列は、以下の通りであり、
【数2】
したがって、
【数3】
であり、
ここで、C,C,…,C…,Cは、それぞれN種類のソースデータパケットの中間コードに対応し、D,D,…,D…,Dは、それぞれN種類のソースデータパケットのデータに対応し、上付き-1は、逆行列演算子である。
【0010】
(3)好ましくは、前記N種類の中間コードに基づいて、チャンネル状况に応じて設定したN種類のソースデータの復元データは、
【数4】
を含み、
ここで、R,R,…,R…,Rは、それぞれN個のソースデータパケットの復元データに対応し、G_ENC1iは、G_ENCと同じ生成ルールを有するLTコーディング行列を示し、G_ENCi1は、G_ENCと同じ生成ルールを有するLTコーディング行列を示す。i=1,2,…Nである。
【0011】
(4)好ましくは、Nが2である場合、重要度が異なるデータに対して以下の対応する中間コードを生成することができ、
【数5】
LTコーディング行列の構造を変更することでG_ENC11、G_ENC12、G_ENC21を得て、G_ENC12は、G_ENCの生成方式と同じであり、G_ENC21は、G_ENCの生成方式と同じであり、G_ENC11は、G_ENCと同じ生成方式を有するLTコーディング行列を示し、G_ENC21は、G_ENCと同じ生成方式を有するLTコーディング行列を示し、G_ENC12は、G_ENCと同じ生成方式を有するLTコーディング行列を示し、
得られた復元データRが優先順位1のデータにのみ関連し、復元データRが優先順位1および2のデータに関連する場合、
【数6】
が得られる。
【0012】
(5)好ましくは、Nが2である場合、前記符号化シンボルを受信し、前記符号化シンボルを復号化処理するステップは、
第1段階の復号化の時に、復元行列Wおよび受信したソースデータパケットに基づいて中間コードワードを得て、
【数7】
ここで、
REV_G_ENCは、受信した符号化シンボルのパケットロス状況に応じてG_ENCにおけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC11は、受信した符号化シンボルのパケットロス状況に応じてG_ENC11におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC12は、受信した符号化シンボルのパケットロス状況に応じてG_ENC12におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENCは、受信した符号化シンボルのパケットロス状況に応じてG_ENCにおけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC21は、受信した符号化シンボルのパケットロス状況に応じてG_ENC21におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
【数8】
にし、受信した対応優先順位でのソースデータパケットの数および受信したデータパケットの総数に基づいてデコードし、
受信した符号化シンボルの総数がソースデータで生成した符号化シンボルの数よりも少なく、かつ、
【数9】
の行数が列数より少ない場合、C、Cはいずれも算出できず、
受信した符号化シンボルの総数がソースデータで生成した符号化シンボルの数よりも少なく、かつ、
【数10】
の行数が列数以上である場合、
【数11】
の行数が列数以上であると、REV_Aはリバーシブルであり、対応する逆行列はREV_A -1と記し、
【数12】
が得られ、ここで、Cには解がなく、
ここで、REV_Dは、受信した優先順位1のソースデータ、REV_Rは、受信した優先順位1のソースデータの復元データを示し、
受信した符号化シンボルの総数がソースデータで生成した符号化シンボルの数以上であり、かつ、
【数13】
の行数が列数以上である場合、
【数14】
の行数が列数以上であると、REV_Aはリバーシブルであり、対応する逆行列はREV_A -1と記し、
【数15】
の行数が列数以上であると、REV_Aはリバーシブルであり、対応する逆行列はREV_A -1と記し、REV_AおよびREV_Aがいずれもリバーシブルであると、REV_Aはリバーシブルであり、対応する逆行列はREV_A-1と記し、
【数16】
であると、
【数17】
であり、
【数18】
が得られ、
【数19】
の行数が列数よりも少ないと、REV_Aには逆行列が存在せず、
【数20】
しか算出できず、
ここで、REV_Dは、受信した優先順位2のソースデータ、REV_Rは、受信した優先順位1および2のソースデータの復元データを示し、
受信した符号化シンボルの総数がソースデータで生成した符号化シンボルの数以上であり、かつ、
【数21】
の行数が列数よりも少なく、
【数22】
の行数が列数以上である場合、ガウスの消去法により行列REV_Aを直接解く、即ち、以下の線型方程式系を解くことにより、C、Cが得られる。
【数23】
【0013】
(6)好ましくは、一部のデータがロスしたので、受信した符号化シンボルに基づいて復元行列を生成する必要があり、つまり、ロスした符号化シンボルに対応する行列行を消去し、対応する復元行列(REV_G_ENCと記す)を生成し、受信したデータパケットの数に応じてケースバイケースで中間コードワードを生成し、具体的には、以下のステップA1~A4を含み、
(ステップA1)
l個の優先順位のデータパケットを受信した場合、以下の復元行列方程式が得られ、
【数24】
復元行列方程式に対して一次行変換を行うことで、
【数25】
が得られ、
ここで、
REV_G_ENCは、受信した符号化シンボルのパケットロス状況に応じてG_ENCにおけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC11は、受信した符号化シンボルのパケットロス状況に応じてG_ENC11におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC12は、受信した符号化シンボルのパケットロス状況に応じてG_ENC12におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENCは、受信した符号化シンボルのパケットロス状況に応じてG_ENCにおけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_G_ENC21は、受信した符号化シンボルのパケットロス状況に応じてG_ENC21におけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_Dは、受信した優先順位1のソースデータ、REV_Rは、受信した優先順位1のソースデータの復元データ、REV_Dは、受信した優先順位2のソースデータ、REV_Rは、受信した優先順位1および2ソースデータの復元データを示し、
REV_G_ENC1lは、受信した符号化シンボルのパケットロス状況に応じてG_ENC1lにおけるロスしたパケットに対応する行を除去した後のLTコーディング行列を示し、
REV_Dは、受信した優先順位lのソースデータ、REV_Rは、受信した優先順位1からlのソースデータの復元データ、Cは、生成した第lの中間コードを示し、
(ステップA2)
【数26】
とし、
R(i)を受信して拡張した後の第i(1≦i≦l)の符号化シンボルの数、L(i)を符号化端の各レベルのシンボルの長さとし、各レベルで生成した行列のランクを計算し、
eachRank(i)=min(Len(R(i)),sum(L(1:i)))
式中:eachRank(i)は、優先順位iのデータに対応するサブ行列のランクを示し、ここで、i=2である場合、対応するサブ行列は、
【数27】
であり、Len(R(i))は、受信した優先順位iの符号化シンボルの数の長さを示し、sum(L(1:i))は、優先順位iのサブ行列の列数を示し、min()は、最小値演算を示し、
累積行列のランクを計算し、
cumRank(i)=min(cumRank(i-1)+eachRank(i),sum(L(1:i)))
ここで、cumRank(i)は、優先順位1から優先順位iに対応するサブ行列ランクの和を示す。cumRank(i-1)は、優先順位1から優先順位i-1に対応するサブ行列ランクの和を示し、
cumRank(1)=eachRank(1)
順にcumRank(i)>=sum(L(1:i))を判断し、成立した場合、cumFullRank(i)=1であり、成立しない場合、cumFullRank(i)=0であり、cumFullRank(i)は、優先順位1から優先順位iに対応するサブ行列からなる行列のフルランクを示し、
(ステップA3)
受信した各レベルの符号化シンボルの数に応じて、ケースバイケースでそれぞれ中間コードC、C…Cを求める。ここで、i初期値をlに設定し、
cumFullRand(i)==1&&cumFullRank(1:i)>0を満足した場合、RFC 6330復号化方法によりC~Cを解き、ここで、&&は、AND演算を示し、cumFullRank(1:i)は、優先順位1から優先順位iの各サブ行列からなる行列のフルランクを示し、Cは、優先順位1のデータに対応する中間コードワードを示し、Cは、優先順位iのデータに対応する中間コードを示し、
【数28】
とし、
【数29】
が得られ、
ここで、
【数30】
であり、
ここで、REV_AΔiは、優先順位がiである場合の全てのサブ行列からなるフルランク行列を示し、B1_2は、サブ行列
【数31】
を示し、X1_2は、サブ行列B1_2を逆演算した後のサブ行列を示し、Xa_bは、サブ行列Ba_bを逆演算して得られたサブ行列を示し、Ba_bは、サブ行列
【数32】
を示し、aの範囲は1~iであり、bの範囲は2~iであり、A -1は、サブ行列
【数33】
の逆行列を示し、
【数34】
とし、ここで、
【数35】
であり、REV_A -1は、REV_Aの逆行列である場合、
【数36】
が得られ、
数学的帰納法により、
【数37】
が得られ、C、C…Cが算出され、Ci+1…Cが算出できず、
cumFullRand(i)==1を満足し、cumFullRank(1:i)>0を満足しない場合、ガウス消去復号化法によりC~Cを解き、
【数38】
とし、ガウスの消去法により解線型方程式系:
【数39】
を解くことにより、C、C…Cを算出できるが、Ci+1…Cを算出できず、
任意のi値に対して、cumFullRand(i)==1を満足しない場合、対応するCを算出できず、i==1までcumFullRank(1:i)>0も満足できない場合、C、C…Cはいずれも算出できず、復号化が失敗し、
(ステップA4)
iの値を1減らし、ステップA3に戻る。
【0014】
(7)好ましくは、ソースデータパケットにおける各サブパケットのヘッダの重要な情報を解析し、
前記重要な情報に基づいて、前記ソースデータパケットにおける各サブパケットをそれぞれ異なる優先順位にマッピングし、
サブパケットの優先順位に従って、サブパケットを再配列し、中間データパケットを得て、
前記中間データパケットを複数のシンボルsymbolに変換し、複数のシンボルsymbolに変換された中間データパケットに対して前方誤り訂正FEC符号化を行なった後、複数のシンボルsymbolを含む復元データパケットを得て、
前記復元データパケットにインデックスフィールドおよび/または優先順位指示フィールドを追加し、前記インデックスフィールドは、復元データパケットにおけるサブパケットのシーケンス、復元データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンスを指示し、前記中間データパケットにもインデックスフィールドおよび/または優先順位指示フィールドを追加し、前記インデックスフィールドは、中間データパケットにおけるサブパケットのシーケンスおよび/または中間データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンスを指示し、
前記復元データパケットおよび中間データパケットに対応する指示情報を追加し、または復元データパケットおよび中間データパケットを送信するときに対応する指示情報を送信し、前記指示情報は、復元データパケットの各優先順位でのサブパケット、対応する優先順位に属するサブパケットの数または前記サブパケットの前記復元データパケットにおける割合を示し、前記指示情報は、中間データパケットの各優先順位でのサブパケット、および対応する優先順位に属するサブパケットの数または前記サブパケットの前記中間データパケットにおける割合を示し、
端末側に指示情報を含む復元データパケット、中間データパケットを送信し、または端末側に復元データパケット、中間データパケットおよび対応する指示情報を送信する、
ステップをさらに含む。
【0015】
(8)好ましくは、ソースデータパケットにおける各サブパケットのヘッダの重要な情報を解析することは、
各サブパケットのヘッダにおけるpriorityフィールドを読み取り、前記priorityフィールドにおける情報に基づいて対応するサブパケットの優先順位を確定することを含む。
【0016】
(9)好ましくは、重要な情報に基づいて前記ソースデータパケットにおけるサブパケットをそれぞれ異なる所定の優先順位にマッピングすることは、
前記ソースデータパケットで実際に使用される優先順位の数および各優先順位での前記priorityフィールドとのマッピング関係を確定すること、および
前記マッピング関係に基づいて、サブパケットを対応する所定の優先順位にマッピングすることを含む。
【0017】
(10)好ましくは、前記中間データパケットを複数のシンボルsymbolに変換し、複数のシンボルsymbolに変換された中間データパケットに対して前方誤り訂正FEC符号化を行なった後、複数のsymbolを含む復元データパケットを得ることは、
前記中間データパケットに対して、RaptorQシステムコードの自己適応FEC符号化方式によりFEC符号化を行い、以下の中間コードワードを得ること、および
【数40】
ここで、Aは、第iのソースデータパケットに対応するコーディング行列を示し、C,C,…,C…,Cは、それぞれN種類のソースデータパケットの中間コードに対応し、D,D,…,D…,Dは、それぞれN種類のソースデータパケットのデータに対応し、上付き-1は、逆行列演算子であり、
前記中間コードワードに基づいて復元データパケットを取得し、前記復元データパケットにFEC payload IDを追加することを含み、ここで、前記復元データパケットにおける復元データは以下の通りであり、
【数41】
ここで、R,R,…,R…,Rは、それぞれ1~N個のソースデータパケットの復元データに対応し、G_ENCは、第iのソースデータパケットに対応するLTコーディング行列を示し、G_ENC1iは、G_ENCと同じ生成ルールを有するLTコーディング行列を示し、G_ENCi1は、G_ENCと同じ生成ルールを有するLTコーディング行列を示し、i=1,2,…Nである。
【0018】
(11)本発明に係るメディア内容に基づく自己適応システムコードFEC符号化および復号化方法は、
サーバーが送信した復元データパケット、中間データパケットを受信し、または復元データパケット、中間データおよび対応する指示情報を受信し、
前記復元データパケットおよび中間データパケットに含まれるインデックスフィールドを解析し、前記インデックスフィールドに基づいてコーディング行列を生成し、前記インデックスフィールドは、復元データパケットにおけるサブパケットのシーケンス、および中間データパケットの各優先順位でのサブパケットを指示し、復元データパケットおよび中間データパケットの優先順位指示フィールドによりインデック情報を直接取得し、前記インデック情報に基づいてコーディング行列を生成し、前記インデック情報は、復元データパケットにおけるサブパケットのシーケンス、および中間データパケットの各優先順位でのサブパケットを指示し、
前記コーディング行列に対して前方誤り訂正FEC復号化を行い、中間データパケットに復元し、
前記中間データパケットのヘッダにおける情報を解析し、前記中間データパケットのサブパケット的シーケンスを再配列し、ソースデータパケットに復元する、
とのステップを含む。
【0019】
(12)好ましくは、前記復元データパケットおよび中間データパケットに含まれるインデックスフィールドを解析することは、
以下の一般式によりソースデータに対応するコーディング行列の対応行インデックスフィールドを得ることを含み、
index=FEC payload ID-
number of packets of all priorities before this packet
ここで、indexは、ソースデータに対応するコーディング行列の対応行インデックを示し、FEC payload IDは、データパケットのヘッダのインデック情報を示し、number of packets of all priorities before this packetは、このデータパケットの前の全ての優先順位のデータパケット総数を示す。
【0020】
(13)好ましくは、前記コーディング行列に対して前方誤り訂正FEC復号化を行い、中間データパケットに復元することは、
前記コーディング行列を一次行変換し、受信した対応復元データパケットにおけるシンボルsymbolを配列し、復元されたデータパケットのヘッダのインデック情報FECpayload_IDの値および対応優先順位でのシンボルsymbolの数に基づいてこのシンボルsymbolが属する優先順位および変換後の位置を確定すること、或いは
復元データパケットのヘッダにおける優先順位フィールドおよびこの優先順位フィールドに対応する優先順位でのインデック情報に基づいて、シンボルsymbolが属する優先順位および変換後の位置を確定すること、
復元データパケットにおけるシンボルsymbolのシーケンスを調整し、ガウス消去デコーダおよびRFC6330デコーダにより復号化することにより、復元された複数のsymbolを含む中間データパケットを得ること、および
複数のsymbolを含む中間データパケットを中間データパケットに変換すること、
を含む。
【0021】
(14)本発明に係るメディア内容に基づく自己適応システムコードFEC符号化および復号化装置は、
ソースデータパケットにおける各サブパケットのヘッダの重要な情報を解析する解析モジュールと、
前記重要な情報に基づいて、前記ソースデータパケットにおける各サブパケットをそれぞれ異なる所定優先順位にマッピングするマッピングモジュールと、
所定優先順位に基づいてサブパケットを再配置することにより中間データパケットを得る配列モジュールと、
前記中間データパケットを複数のシンボルsymbolに変換し、複数のsymbolに変換された中間データパケットに対して前方誤り訂正FEC符号化を行うことで、複数のsymbolを含む復元データパケットを得る符号化モジュールと、
前記復元データパケットにインデックスフィールドおよび/または優先順位指示フィールドを加え、前記インデックスフィールドは、復元データパケットにおけるサブパケットのシーケンスおよび/または復元データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンスを指示するものであり、前記中間データパケットにインデックスフィールドおよび/または優先順位指示フィールドを加え、前記インデックスフィールドは、中間データパケットにおけるサブパケットのシーケンス、および/または中間データパケットにおけるサブパケットの前記優先順位指示フィールドに対応する優先順位でのシーケンスを指示するものであるインデックモジュールと、
前記復元データパケットおよび中間データパケットに対応する指示情報を加え、または復元データパケットおよび中間データパケットを送信するときに対応する指示情報を送信する指示情報生成モジュールであって、前記指示情報は、復元データパケットの各優先順位でのサブパケット、および対応する優先順位に属するサブパケットの数または前記サブパケットの前記復元データパケットにおける割合を指示し、前記指示情報は、中間データパケットの各優先順位でのサブパケット、および対応する優先順位に属するサブパケットの数または前記サブパケットの前記中間データパケットにおける割合を指示する指示情報生成モジュールと、
端末側に前記復元データパケット、中間データパケットおよび対応するシグナリング情報を送信し、または端末側に復元データパケット、中間データパケットおよび対応する指示情報を送信する送信モジュールと、
を含む。
【0022】
(15)好ましくは、前記符号化モジュールは、具体的には、
前記中間データパケットに対してRaptorQシステムコードの自己適応FEC符号化方式によりFEC符号化を行うことで、以下の中間コードワードを取得し、
【数42】
ここで、Aは、第iのソースデータパケットに対応するコーディング行列を示し、C,C,…,C…,Cは、それぞれN種類のソースデータパケットの中間コードに対応し、D,D,…,D…,Dは、それぞれN種類のソースデータパケットのデータに対応し、上付き-1は、逆行列演算子であり、
前記中間コードワードに基づいて復元データパケットを取得し、前記復元データパケットにFEC payload IDを追加し、ここで、前記復元データパケットにおける復元データは、次の通りであり、
【数43】
ここで、R,R,…,R…,Rはそれぞれ1~N個のソースデータパケットの復元データに対応し、G_ENCは、第iのソースデータパケットに対応するLTコーディング行列を示し、G_ENC1iは、G_ENCと同じ生成ルールを有するLTコーディング行列を示し、G_ENCi1は、G_ENCと同じ生成ルールを有するLTコーディング行列を示し、i=1,2,…Nである。
【0023】
(16)本発明に係るメディア内容に基づく自己適応システムコードFEC符号化および復号化装置は、受信モジュールと、コーディング行列生成モジュールと、復号化モジュールと、復元モジュールとを含み、
受信モジュールは、サーバーが送信した復元データパケット、中間データパケットを受信し、または復元データパケット、中間データおよび対応する指示情報を受信し、
コーディング行列生成モジュールは、前記復元データパケットおよび中間データパケットに含まれるインデックスフィールドを解析し、前記インデックスフィールドに基づいてコーディング行列を生成し、前記インデックスフィールドが復元データパケットにおけるサブパケットのシーケンス、および中間データパケットの各優先順位でのサブパケットを指示し、或いは
復元データパケットおよび中間データパケットの優先順位指示フィールドによりインデック情報を直接取得し、前記インデック情報に基づいてコーディング行列を生成し、前記インデック情報が復元データパケットにおけるサブパケットのシーケンス、および中間データパケットの各優先順位でのサブパケットを指示し、
復号化モジュールは、前記コーディング行列に対して前方誤り訂正FEC復号化を行い、中間データパケットに復元し、
復元モジュールは、前記中間データパケットのヘッダにおける情報を解析し、前記中間データパケットのサブパケットのシーケンスを再配列し、ソースデータパケットに復元する。
【0024】
(17)好ましくは、前記コーディング行列生成モジュールは、具体的には、
以下の一般式によりソースデータに対応するコーディング行列の対応行のインデックスフィールドを得て、
index=FEC payload ID-
number of packets of all priorities before this packet
ここで、indexは、ソースデータに対応するコーディング行列の対応行インデックを示し、FEC payload IDは、データパケットのヘッダのインデック情報を示し、number of packets of all priorities before this packetは、このデータパケットの前の全ての優先順位のデータパケット総数を示す。
【0025】
(18)好ましくは、前記復号化モジュールは、具体的には、
前記コーディング行列を一次行変換し、受信した対応復元データパケットにおけるシンボルsymbolを配列し、復元されたデータパケットのヘッダのインデック情報FECpayload_IDの値および対応優先順位でのシンボルsymbolの数に基づいてこのシンボルsymbolが属する優先順位および変換後の位置を確定し、或いは
復元データパケットのヘッダにおける優先順位フィールドおよびこの優先順位フィールドに対応する優先順位でのインデック情報に基づいて、シンボルsymbolが属する優先順位および変換後の位置を確定し、
復元データパケットにおけるシンボルsymbolのシーケンスを調整し、ガウス消去デコーダおよびRFC6330デコーダにより復号化することにより、復元された複数のsymbolを含む中間データパケットを取得し、
複数のsymbolを含む中間データパケットを中間データパケットに変換する。
【0026】
(19)本発明に係るメディア内容に基づく自己適応システムコードFEC符号化および復号化システムは、サーバーおよび少なくとも1つの端末を含み、前記サーバーは、上記(7)~(10)のいずれか1つに記載のメディア内容に基づく自己適応システムコードFEC符号化および復号化方法を実行し、前記端末は、上記(11)~(13)のいずれか1つに記載のメディア内容に基づく自己適応システムコードFEC符号化および復号化方法を実行する。
【0027】
(20)本発明は、コンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体をさらに提供する。前記コンピュータプログラムは、プロセッサにより実行されることにより、上記(7)~(13)のいずれか1つに記載の画像に基づくストライプ生地の検出位置決めクロッピング方法のステップを実行する。
【0028】
従来技術に比べて、本発明は、以下の有益な効果を有する。
本発明に係るメディア内容に基づく自己適応システムコードFEC方法は、メディア内容の重要度に応じて優先順位に従って配列し、不均一誤り保護(UEP)を採用することにより、メディア内容の品質が最大限に保証されるとともに、FECによるデータ冗長が減少される。また、システムコードの符号化および復号化がより柔軟になり、ソースデータストリームをマルチストリーム化する必要がないため、送信端FEC符号化の複雑さが低減され、FEC符号化の効率が向上される。さらに、現在のネットワーク状態の変化に基づいて符号化スキームを調整することができるため、時変ネットワークに対してより強い適応性を有する。
【図面の簡単な説明】
【0029】
以下の図面により非制限的な実施例を詳しく説明することにより、本発明の他の特徴、目的および利点は、より明確になる。
図1】メディアソースデータに対するFEC二層構造の模式図である。
図2】画像群における各フレームの依存関係の模式図である。
図3】画像群における各フレームの依存関係の模式図である。
図4】ファウンテンコードの不均一誤り保護符号化スキームの模式図である。
図5】ファウンテンコードの不均一誤り保護のシステム構成の模式図である。
図6】システムRaptorQコードのコーディング行列の構造模式図である。
図7】システムRaptorQコードの不均一誤り保護のコーディング行列の構造模式図である。
図8】LTコーディング行列の不均一誤り保護構造の模式図である。
図9】複数の優先順位の不均一誤り保護システムファウンテンコード符号化のフローチャートである。
図10】複数の優先順位の不均一誤り保護システムファウンテンコード復号化のフローチャートである。
図11】メディア内容に基づく自己適応システムコードFECシステムのフレーム図である。
図12】各優先順位のマッピング関係の模式図である。
図13】優先順位に従ってデータパケットストリームを再配列する模式図である。
図14】FEC符号化後のソースデータパケットおよび復元データパケットに対する処理フローチャートである。
図15】受信端がシグナリング情報およびデータパケット情報を解析する模式図である。
図16】受信したデータパケットに基づいてコーディング行列を生成する模式図である。
図17】受信したデータパケットを処理するフローチャートである。
図18】復元データパケットストリームの初期シーケンスの結果の模式図である。
図19】受信端がデータパケットのヘッダ情報を解析する模式図である。
【発明を実施するための形態】
【0030】
以下、具体的な実施形態を例示しながら、本発明について詳細に説明する。以下の実施形態は、いわゆる当業者が本発明をより理解しやすくするための例示であり、いかなる形式で本発明を限定するものではない。また、いわゆる当業者であれば、本発明の要旨から逸脱しない範囲内において、様々な変形や改良を行うことができ、これらも本発明の保護範囲に属することには注意されたい。
【0031】
以下、本明細書で用いられる用語を解釈する。
1)不均一誤り保護(Unequal Error Protection、UEP)は、ジョイントソースチャネルコーディングの一種である。その核心的な思想は、コードストリームの各部分のデータの異なる重要性に基づき、各部分のデータに対して異なるチャネル保護メカニズムを用い、即ち重要なコードストリームに対しては重点的に保護する。UEPは非重要なコードストリームのノイズに耐える性能を低下させるが、システムのビット誤りを防ぐ全体的な性能の向上には役立つ。
【0032】
2)デジタルファウンテンコード(Digtial Fountain Code)は、伝送過程において、フィードバックおよび自動再送信のメカニズムを必要としないため、信号送受信による時間遅延およびブロードキャスト応用におけるフィードバック爆発の問題を回避している。デジタルファウンテンの基本的な思想は、以下のとおりである。送信側は、オリジナルデータをk個のデータシンボルに分割し、これらのデータシンボルについて符号化し、任意の長さの符号化シンボルのコードストリームを出力する。受信側は、n(nはkよりやや大きい)個の符号化シンボルを正確に受信するだけで全てのk個のデータシンボルを大きな確率で復元することができる。
【0033】
デジタルファウンテンコード自体はUEP特性を有しており、重要性の異なるデータに対する保護を実現することができる。従来の固定ビットレートのチャネル符号化方法に比べ、デジタルファウンテンコードは明らかに以下の優位性を有する。
【0034】
a、理想的な拡張可能性を有する。単方向ブロードキャストはフィードバックがないため、送信側はユーザー数の増加によっていかなる影響も受けない。したがって、送信側は任意の数のユーザーにサービスを提供することができる。
【0035】
b、経時変化のチャネルに適し、チャネルの容量を効率的に利用する。ユーザーの復号化特性は、チャネルの削除確率および帯域幅に関連しない。チャネルのパケットロス率が高く、状況が悪い場合でも、受信側の復号化に影響を与えることなく、即ち受信側は十分な数の符号化データさえ受信すれば正常に復号化することができ、より高い適応性を有する。
【0036】
c、符号化と復号化の複雑度が低い。理想的な状況において、ファウンテンコードにより生成される各符号化シンボルは、線形の符号化と復号化の複雑度を有している。したがって、送受信側のコーデックの設計の簡略化およびソフトウェア化の実現に役立つ。
【0037】
d、ヘテロジニアスなユーザーに対する適用性が高い。ファウンテンコードのビットレートレス特性は、異なるパケットロス率または帯域幅を有するユーザー同士が互いに影響せず、高品質のユーザーが低品質のユーザーの影響を受けないようにする。この他、デジタルファウンテンコードは、中断後の伝送再開、非同期アクセス等の複数のサービスモードをサポートする。
【0038】
図1は、メディアリソースデータのFEC二層構造である。図1に示すように、第一層ではsource packet blockを多くの小さいブロックに分割し、それぞれについてFEC保護を行い、第二層ではブロック全体に対してFEC保護を行う。第一層における分割が細かいため、小さい遅延を提供することができ、第二層では復元性および小さい冗長を保証している。しかしながら、この方法では、FEC符号化を2回行う必要があるので、符号化の効率が低下し、柔軟性が不十分である。
【0039】
1つのデータストリームは、その内容に応じて異なるタイプのデータパケットに分けることができる。異なるタイプのデータパケットは、異なる重要度を有する。例えば、データパケットにおけるI、B、Pフレームの重要度を図2、3に示す。1つの画像群における各フレームの依存関係は、1つの画像群における異なるフレームの依存程度および重要度が異なることを示し、Iフレームは、最も重要であり、B、Pフレームの重要度が比較的低い。そのため、データ内容の重要性に基づいて不均一誤り保護を行うことができる。具体的には、2つの重要レベルを有するソースデータを伝送する状況を考慮する場合、ソースデータを前記標準に従って区画し、重要度に従って再配列し、システムファウンテンコードコーディング行列の構造を変更することにより、異なる内容に対する不均一誤り保護を実現する。そのシステムの基本的な構成を図5に示す。システムファウンテンコードの不均一誤り保護符号化により生成したデータを図4に示す。
【0040】
[実施例1]
本実施例では、RaptorQシステムコードを例とし、システムRaptorQコードのコーディング行列の構造を図6に示す。ここで、Dがソースデータ、Cが中間コード、G_LDPCがLDPC行列、I_S、I_Hが単位行列、G_ENCがLTコーディング行列を表示する場合、コーディング行列は、以下のように表され得る。
【数44】
【0041】
FEC符号化を行うときに、ソースデータおよび図6に示されるコーディング行列から中間コードを生成する。
【数45】
【0042】
さらに、コーディング行列におけるLT行列および得られた中間コードに基づいてソースデータおよび復元データを生成する。Rは符号化して得られた復元データを示し、G_ENC’はG_ENCと同じ生成方式により生成したLT行列である。
【数46】
【0043】
上記方法によりソースデータを符号化する場合には、ソースデータに対して優先順位付けを行い、不均一誤り保護符号化を採用することができないため、コーディング行列AおよびLT行列G_ENCの行列構造を改めて設計する必要がある。ソースデータに優先順位が異なる2つのデータがある場合を例とし、優先順位をそれぞれ優先順位1、優先順位2に設定し、ソースデータにおける優先順位が異なるデータを区分し、それぞれに異なる冗長度を割り当てることにより、不均一誤り保護の効果が達成される。
【0044】
<符号化過程>
そのコーディング行列構造を図7に示す。そのコーディング行列を一般式(6)で表す。ここで、G_ENCとG_ENCは、異なるルールで生成したコーディング行列であり、重要なデータの保護を保証するために、G_ENC行列の度分布を高めることができる。
【数47】
このようにして、重要度が異なるデータに対して対応する中間コードを生成することができる。
【数48】
【0045】
重要度が異なるデータに対する不均一誤り保護を達成するために、図8に示すようにLTコーディング行列の構造を変更することで、重要なデータを保護するための冗長データを増加させることができる。ここで、G_ENC’とG_ENCは、生成方式が同じであり、G_ENC’とG_ENCは、生成方式が同じである。得られた復元データRは、優先順位が1のデータにのみ関連し、復元データRは、優先順位が1および2のデータに関連する。これによって、重要データの冗長度が高くなり、それに対する保護強度が高くなる。チャネル条件の制限により、データの総冗長度が限られ、生成されるRとRの比は、[G_ENC’ 0]と[G_ENC’’ G_ENC’]の行数比により確定されるので、[G_ENC’ 0]の行数を増加することにより優先順位が1のデータに対する保護強度を向上させることができる。
【数49】
【0046】
<復号化過程>
損失チャネル(Lossy channel)を経過した後、一部のデータパケットがロスするので、受信したシンボルISIに基づいて復元行列を生成するために、ロスシンボルISIに対応する行列の行を消去する必要がある。例えば、行列REV_G_ENCの場合、受信したREV_Dおよび送信端のD_に基づいて、ロスデータのISIを得ることができ、これによって、G_ENCに対応する行を削除することができる。符号化過程と同様に、第1段階の復号化の際に、復元行列および受信したデータパケットに基づいて中間コードワードを得る。
【数50】
【0047】
上記行列方程式を一次行変換して以下の形式を得る。
【数51】
ここで、
【数52】
にし、受信した各優先順位でのデータパケットの数および受信したデータパケットの総数に基づいてケースバイケースで復号化する。
【0048】
受信した符号化シンボルの総数はソースデータ符号化シンボルの数よりも少なく、かつ、
【数53】
行数は列数よりも少なく、C、Cはいずれも算出できない。
【0049】
受信した符号化シンボルの総数はソースデータ符号化シンボルの数よりも少ないが、
【数54】
の行数は列数以上である。
【数55】
の行数が列数以上である場合、REV_Aはリバーシブルであり、その逆行列はREV_A -1と記し、
【数56】
は算出されるが、C2は算出できない。
【0050】
受信した符号化シンボルの総数はソースデータ符号化シンボルの数よりも大きく、かつ
【数57】
の行数は列数以上である。
【数58】
の行数が列数以上である場合、REV_Aはリバーシブルであり、その逆行列はREV_A -1と記す。
【数59】
の行数が列数以上である場合、REV_Aはリバーシブルであり、その逆行列はREV_A -1と記し、
【数60】
であり、
【数61】
であることが分かる。これによって、
【数62】
となる。
しかし、
【数63】
の行数が列数よりも小さい場合、REV_Aには逆行列がなく、
【数64】
しか算出できない。
【0051】
受信した符号化シンボルの総数がソースデータ符号化シンボルの数以上である場合、
【数65】
の行数が列数よりも小さいが、
【数66】
の行数が列数よりも大きい。
ガウスの消去法により行列REV_Aを直接解き、即ち、以下の線型方程式系を解くことにより、C、Cが求められる。
【数67】
【0052】
上記デコード過程の第1段階から分かるように、如何なる場合においてもまずC1を正確に算出する必要がある。中間コードワードC1およびC2は、デコードの第2段階でソースデータの重要なデータを復元するので、C1のデコード成功率を高めることにより、ソースデータの正確な復元の確率が高くなる。
【0053】
得られた中間コードワードに基づいてシステムコード符号化シンボルを生成する。
【数68】
第1段階でC、Cが算出できない場合、復号化が失敗し、ソースシンボルが復号化されない。Cのみが算出できる場合、優先順位が高いソースデータDが正確に復号化されることを保証することができる。C、Cがともに算出される場合、上式により最終的なソースコードDおよびDを得ることができる。
【0054】
また、この実施形態は、2つの優先順位のシーンにのみ適用するだけではなく、複数の優先順位のソースデータにも適用される。具体的な過程は、以下の通りである。
【0055】
<符号化過程>
まず、ソースデータおよびソースデータの優先順位に基づいて中間コードワードを生成する。ソースデータがl個のデータパケットに分けられる場合、
【数69】
が得られる。式(16)により中間コードワードC,C,…,Cが得られる。
【数70】
得られた中間コードワードに基づいてソースデータおよび復元データを生成する。
【数71】
【0056】
符号化過程全体を図9に示す。ソースデータおよび復元データを送信端より受信端に送信し、チャンネル減衰のため、一部のデータがロスする可能性があり、受信端がデータを受信した後、受信したデータの状況に基づいて復号化してソースデータを復元する。
【0057】
<復号化過程>
一部のデータがロスしたので、受信したシンボルISIに基づいて復元行列を生成する必要がある。つまり、ロスしたシンボルISIに対応する行列行を消去し、対応する行列(REV_G_ENCと記す)を生成する。受信したデータの数に応じて、ケースバイケースで中間コードワードを生成する。
【0058】
【数72】
上の行列方程式を一次行変換して以下の形式が得られる。
【数73】
【数74】
とし、R(i)(1≦i≦l)を受信して拡張した後の第iレベルのシンボル数、L(i)を符号化端の各レベルのシンボルの長さとし、i=1:lに対して、各レベルで生成した行列のランクeachRank(i)=min(Len(R(i)),sum(L(1:i)))を計算し、さらに、累積行列のランクcumRank(i)=min(cumRank(i-1)+eachRank(i),sum(L(1:i)))を計算する。ここで、cumRank(1)=eachRank(1)である。順にcumRank(i)>=sum(L(1:i))を判断し、成立した場合、cumFullRank(i)=1であり、成立しない場合、cumFullRank(i)=0である。以下、受信した各レベルのシンボル数に応じて、ケースバイケースで中間コードC、C…Cを求める。ここで、i初期値をlに設定する。
cumFullRand(i)==1&&cumFullRank(1:i)>0を満足した場合、RFC 6330復号化方法によりC(1)~C(i)を解く。
【数75】
とすると、
【数76】
である。ここで、
【数77】
である。さらに、中間コードは、下式により得られる。
【数78】
さらに、数学的帰納法により
【数79】
、C…Cが算出できるが、Ci+1…Cが算出できない。
cumFullRand(i)==1を満足し、cumFullRank(1:i)>0を満足しない場合、ガウス消去復号化法によりC(1)~C(i)を解く。
【数80】
とすると、ガウスの消去法により線型方程式系:
【数81】
を解くことにより、C、C…Cを算出できるが、Ci+1…Cを算出できない。
【0059】
あるi値の場合、cumFullRand(i)==1を満足しない場合、対応するCを算出できない。i==1まで前記2つの条件のいずれも満足できない場合、C、C…Cはいずれも算出できず、復号化が失敗する。
【0060】
i=i-1を引き続き循環させ、即ちi=l:-1:1にすることにより、上記過程を繰り返す。
【0061】
復号化プロセス全体を図10に示す。
本実施例の方法によれば、資源が有効に節約される。受信端で、場合によって受信したデータ(例えば、Bフレーム)を人為的に捨てると、伝送資源の浪費をもたらす。上記実施形態によれば、ソース端から問題が解決され、望ましくないパケットを伝送過程でより大きな確率でロスさせることにより、重要なパケットがより大きな程度で保護される。
【0062】
本実施例の方法によれば、個性的な伝送方式が提供される。チャンネル状況、ユーザ体験などに基づいて不均一誤り保護の態様を設計することにより、ビデオ伝送がより柔軟で緻密になる。また、送信端の符号化方式が柔軟になっても、受信端は、リスト情報に基づいてオリジナルデータを復元することができる。
【0063】
本実施例の方法によれば、より柔軟なコーディング行列の設計が提供される。実際のメディアの応用シーンに応じて、メディア内容に基づいてデータの優先順位付けを行い、実際の必要に応じてFECコーディング行列をより柔軟に設計することができ、これによって、不均一誤り保護の効果が達成される。
【0064】
本実施例の方法によれば、より柔軟な復号化方式が提供される。受信した各優先順位のデータの数に応じて、異なる復号化アルゴリズムを採用することにより、限られた帯域幅資源下で、優先順位が高いデータが最大限に復元され、優先順位が比較的高いデータに対する保護強度が高くなる。
【0065】
[実施例2]
ソースデータパケットにおける各サブパケットをそれぞれ異なる所定優先順位にマッピングし、または実施例1と実施例2とを組み合わせることができる。具体的には、以下の通りである。
【0066】
図11は、メディア内容に基づく自己適応システムコードFECシステムのフレーム図である。前記システムは、サーバーおよび少なくとも1つの端末を含む。まず、サーバー側は、実際の応用シーンおよびメディア内容に基づいて複数の優先順位を分け、データパケットのヘッダにおける前記データパケットに関連する重要な情報を解析し、各データパケットを異なる優先順位にマッピングする。さらに、優先順位状況およびマッピング関係に基づいて、前方誤り訂正符号化(FEC)を必要とするデータパケットを優先順位に従って高から低に再配列する。再配列されたソースデータに対して、実際のチャンネル状況に応じて、不均一誤り保護のFEC符号化方式により符号化を行い、復元データ(repair symbols)を生成する。FEC符号化終了後に、ソースデータパケットおよび復元データパケットに現在のデータパケットシーケンスを指示するインデックスフィールドを加える。各優先順位でのソースデータおよび復元データを統計し、対応するシグナリング情報を生成し、シグナリングにおいて各優先順位でのデータパケットの数または割合、および各優先順位で対応する復元データの数または割合を指示することにより、受信端がデータを受信した後にデータを正確に復元することができる。最後に、ソースデータパケット、復元データパケットおよびシグナリングを端末(クライアントまたは受信端)に送信する。
【0067】
対応するように、端末側は、まずシグナリング情報および受信したデータパケットにおけるインデックスフィールドを解析し、各優先順位で受信したソースデータパケットおよび復元データパケットの数および対応するデータパケットインデックを得る。さらに、得られたデータパケットインデック情報に基づいて受信端でコーディング行列を生成する。最後に、生成したコーディング行列に基づいてケースバイケースでFEC復号化を行い、ソースデータパケットを復元する。復元したソースデータパケットのシーケンスが再配列されたシーケンスであるので、データパケットのヘッダにおけるソースデータパケットのシーケンスを解析し、ソースデータパケットを再配列することにより、ソースデータパケットの初期データが得られる。
【0068】
以下、具体的な実施例により本発明の実施形態を詳しく説明する。以下の具体的な実施例は互いに組み合わせることができ、同じまたは類似の概念または過程は、いくつかの実施例は省略される。
【0069】
(実施例2.1)
図12に示すように、以下のステップを含むことができる。
S1:符号化してパッケージされたデータパケットのヘッダを解析し、DU headerにおけるpriorityフィールドを読み取り、実際の応用に応じて実際に採用される優先順位の数および各優先順位でのpriorityフィールドとのマッピング関係を確定する。
【0070】
S2:分けられた優先順位およびマッピング関係に基づいて、オリジナルのソースデータストリームを優先順位に従って高から低に再配列し、各優先順位でのデータパケットの数を統計する(図13)。
【0071】
S3:再配列されたソースデータストリームに対して、システムRaptorQシステムコードの自己適応FEC符号化スキームを採用してFEC符号化を行い、復元データを生成する。
【0072】
具体的には、前記中間データパケットに対して、RaptorQシステムコードの自己適応FEC符号化方式を採用してFEC符号化を行い、以下の中間コードワードを得る。
【数82】
ここで、Aは、第iのソースデータパケットに対応するコーディング行列を示す。C,C,…,C…,Cは、それぞれN種類のソースデータパケットの中間コードに対応する。D,D,…,D…,Dは、それぞれN種類のソースデータパケットのデータに対応する。上付き-1は、逆行列の演算子である。
前記中間コードワードに基づいて復元データパケットを取得し、前記復元データパケットにFEC payload IDを追加する。前記復元データパケットにおける復元データは、以下の通りである。
【数83】
ここで、R,R,…,R…,Rは、それぞれ1~N個のソースデータパケットの復元データに対応する。G_ENCは、第iのソースデータパケットに対応するLTコーディング行列を示す。G_ENC1iは、G_ENCと同じ生成ルールを有するLTコーディング行列を示す。G_ENCi1は、G_ENCと同じ生成ルールを有するLTコーディング行列を示す。ここで、i=1,2,…Nである。
【0073】
FECエンコーダーから出力されたデータストリーム(再配列された後のデータストリーム)に基づいてソースデータパケットおよび復元データパケットを生成し、FEC payload IDを追加する(図14)。
【0074】
S4:AL-FEC messageを生成し、シグナリングにおいて各優先順位でのデータパケットの数および各優先順位での対応する復元データパケットの数を指し示すことにより、受信端がデータを受信した後にデータを正確に復元することができる。具体的なシグナリングを表1に示す。
【0075】
【表1】
【0076】
表1において、number_of_priorityは優先順位の数を示す。feCpriority_value(8ビット)は、各優先順位に対応する値を示し、この値が多くともDU headerにおけるpriorityで定義された優先順位と同じであってもよく、複数のDU headerにおけるpriorityに対応してもよい。number_of_source_symbol(16ビット)は、優先順位がfeCpriority_valueで示される値でのソースシンボルの数を示す。number_of_repair_symbol(16位)は、優先順位がfeCpriority_valueで示される値での復元シンボルの数を示す。private_feCflagは、指示ビットであり、プライベートFEC符号化スキームを使用するか否かを明示する。private_flagは、指示ビットであり、使用されるプライベートFEC符号化スキームを記述する1つのprivate_fieldが存在するか否かを明示する。private_field_lengthは、プライベートFEC符号化スキームのフィールドの長さを記述する長さフィールドである。private_fieldは、プライベートFECスキームの詳細情報を記述する。priority_idは、MMTパケットの優先順位を指示する優先順位idである。feCcode_id_for_repair_flowは、使用されるFEC符号化スキームを記述する。repair_flow_id(8ビットの整数)は、生成したFEC repair flowとFEC repairパケットのヘッダにおけるpacket idとの間に対応関係を有することを示す。maximum_k_for_repair_flow(24ビットの整数)は、source sysmbolブロックにおけるsource symbolの最大数を示す。maximum_p_for_repair_flow(24ビットの整数)は、repair sysmbolブロックにおけるrepair symbolの最大数を示す。protection_window_timeは、FEC符号化において最初のsourceまたはrepairパケットの送信と、最後のsourceまたはrepairパケットの送信との間の最大時間差を示す保護ウィンドウ時間(単位:ミリ秒)である。protection_window_sizeは、FEC符号化ストリームにおいて最初のFECパケットを送信する負荷と最後のFECパケットを送信する負荷との間の最大カウント値を示す保護ウィンドウ値である。
【0077】
図15に示すように、FEC各優先順位でのデータパケットの数に基づいて、下式によりソースデータに対応するコーディング行列の対応行のインデックを得る。
index=FEC payload ID-number of packets of all priorities before this packet。
【0078】
式中、indexは、ソースデータのコーディング行列の対応行のインデックを示す。FEC payload IDは、データパケットのヘッダのインデック情報を示す。number of packets of all priorities before this packetは、前記データパケットの前のすべての優先順位のデータパケットの総数を示す。
【0079】
ここで、各優先順位の数が100である4つの優先順位を例として説明する(図16)。source_FECpayload_IDは、再配列された後のソースデータパケットのシーケンスに従って配列したものである。優先順位が1である場合、現在のsource_FECpayload_IDに基づいてコーディング行列を生成するISI(インデック)を直接確定することができる。優先順位が1よりも大きい場合、ヘッダを解析する際に、そのsource_FECpayload_IDの値および各優先順位でのソースシンボルの数に基づいてどの優先順位に属するかを確定することができる。例えば、source_FECpayload_ID=108である場合、優先順位2に属することを確定することができ、上記一般式によりそのISI=8であることが分かる。復元データパケットについては、ヘッダにおけるrepair_FECpayload_IDに基づいて生成行列のISIを確定することができる。送信端と受信端は同じFEC符号化メカニズムを採用するので、前記2つのインデックに基づいて対応するコーディング行列を生成することができる。
【0080】
生成したFECコーディング行列に基づいて、コーディング行列を一次行変換し、対応して受信したデータパケットを配列し、repair_FECpayload_IDの値および各優先順位での復元シンボルの数に基づいてどの優先順位に属するかを確定することにより、シンボルブロックにおける復元シンボルの位置を調整し、同じ変化を達成する(図17)。受信した異なる優先順位のデータパケットの数によって、ケースバイケースでデコードを行い、そのフローチャートを図10に示す。最終的に復元されたソースデータを取得し、さらにヘッダにおけるpacket_sequence_numberに基づいて得られたソースデータパケットを初期シーケンスに復元する(図18)。
【0081】
(実施例2.2)
図12に示すように、以下のステップを含むことができる。
S1:符号化してパッケージされたデータパケットのヘッダを解析し、DU headerにおけるpriorityフィールドを読み取り、実際の応用に応じて実際に採用される優先順位の数および各優先順位でのpriorityフィールドとのマッピング関係を確定する。
【0082】
S2:分けられた優先順位およびマッピング関係に基づいて、オリジナルのソースデータストリームを優先順位に従って高から低に再配列し、各優先順位でのデータパケットの数を統計する(図13)。
【0083】
S3:再配列されたソースデータストリームに対して、システムRaptorQシステムコードの自己適応FEC符号化スキームを採用してFEC符号化を行い、復元データを生成する。
【0084】
具体的には、前記中間データパケットに対して、RaptorQシステムコードの自己適応FEC符号化方式を採用してFEC符号化を行い、以下の中間コードワードを得る。
【数84】
ここで、Aは、第iのソースデータパケットに対応するコーディング行列を示す。C,C,…,C…,Cは、それぞれN種類のソースデータパケットの中間コードに対応する。D,D,…,D…,Dは、それぞれN種類のソースデータパケットのデータに対応する。上付き-1は、逆行列の演算子である。
前記中間コードワードに基づいて復元データパケットを取得し、前記復元データパケットにFEC payload IDを追加する。前記復元データパケットにおける復元データは、以下の通りである。
【数85】
ここで、R,R,…,R…,Rは、それぞれ1~N個のソースデータパケットの復元データに対応する。G_ENCは、第iのソースデータパケットに対応するLTコーディング行列を示す。G_ENC1iは、G_ENCと同じ生成ルールを有するLTコーディング行列を示す。G_ENCi1は、G_ENCと同じ生成ルールを有するLTコーディング行列を示す。ここで、i=1,2,…Nである。
【0085】
S4:データパケットのヘッダ拡張において対応する指示情報を生成し、各優先順位でのデータパケットの数および各優先順位での対応する復元データパケットの数を指し示すことにより、受信端がデータを受信した後にデータを正確に復元することができる。詳細を表2に示す。
【0086】
【表2】
【0087】
表2中、type(16ビット)は、現在のヘッダ拡張のタイプを示し、ここで、自己適応前方誤り訂正符号化に用いられる中間データパケットまたは復元データパケットを示す。length(16ビット)は、header_extensionの長さを示す。FECpriority(8ビット)は、現在のデータパケットが属する優先順位を指示する。sub_encoded_symbol_id(16ビット)は、この優先順位での中間データパケットまたは復元データパケットの数のインデックを示す。N(8ビット)は、優先順位の総数を示す。SSBL[i](24ビット)は、各優先順位のソースデータパケットの数を示し、ここで、iは第iの優先順位を指示する。RSBL[i](24ビット)は、i表示第iの優先順位,各優先順位の復元データパケットの数を示し、ここで、iは第iの優先順位を指示する。
【0088】
図19に示すように、FEC各優先順位でのデータパケットの数に基づいて、下式によりソースデータに対応するコーディング行列の対応行のインデックを得る。
index=FEC payload ID-number of packets of all priorities before this packet。
【0089】
ここで、indexは、ソースデータのコーディング行列の対応行のインデックを示す。FEC payload IDは、データパケットのヘッダのインデック情報を示す。number of packets of all priorities before this packetは、前記データパケットの前のすべての優先順位のデータパケットの総数を示す。
【0090】
生成したFECコーディング行列に基づいて、コーディング行列を一次行変換し、対応して受信したデータパケットを配列し、repair_FECpayload_IDの値および各優先順位での復元シンボルの数に基づいてどの優先順位に属するかを確定することにより、シンボルブロックにおける復元シンボルの位置を調整し、同じ変化を達成する(図17)。受信した異なる優先順位のデータパケットの数によって、ケースバイケースでデコードを行い、そのフローチャートを図10に示す。最終的に復元されたソースデータを取得し、さらにヘッダにおけるpacket_sequence_numberに基づいて得られたソースデータパケットを初期シーケンスに復元する(図18)。
【0091】
本実施例において、サーバー側は、データストリームにおける異なるデータを重要度に応じて分割することにより、重要度が異なるデータを異なる保護を与えることができる。送信したデータパケットのヘッダ情報およびシグナリング情報により標識する。システムコードの方式を採用し、チャンネル状况およびデータの重要度に応じてシステムファウンテンコードのコーディング行列を自己適応的に調整することにより、重要度が異なるデータに対する不均一誤り保護を達成する。端末側でシグナリング情報およびヘッダ情報を解析し、受信した異なる優先順位のデータの数に応じて柔軟な復号化アルゴリズムを採用することで柔軟な符号化および復号化を達成し、ヘッダ情報に基づいてソースデータストリームを最終的に復元する。従って、以下の有益な効果が得られる。
【0092】
1)資源が節約される。例えば、端末側(受信端)において場合によって受信したデータ(例えば、Bフレーム)を人為的に捨てると、伝送資源の浪費をもたらす。本実施例の方法によれば、ソース端から問題が解決され、望ましくないパケットを伝送過程でより大きな確率でロスさせることにより、重要なデータパケットがより大きな程度で保護される。
【0093】
2)個性的な伝送方式が達成される。例えば、チャンネル状況、ユーザ体験などに基づいて不均一誤り保護の態様を設計することにより、ビデオ伝送がより柔軟で緻密になる。また、送信端の符号化方式が柔軟になっても、受信端は、リスト情報に基づいてオリジナルデータを復元することができる。
【0094】
3)より柔軟なコーディング行列の設計が達成される。例えば、実際のメディアの応用シーンに応じて、メディア内容に基づいてデータの優先順位付けを行い、実際の必要に応じてFECコーディング行列をより柔軟に設計することができ、これによって、不均一誤り保護の効果が達成される。
【0095】
4)より柔軟な復号化方式が達成される。例えば、受信した各優先順位のデータの数に応じて、異なる復号化アルゴリズムを採用することにより、限られた帯域幅資源下で、優先順位が高いデータが最大限に復元され、優先順位が比較的高いデータに対する保護強度が高くなる。
【0096】
なお、本発明で提供されるメディア内容に基づく自己適応システムコードFEC符号化および復号化方法のステップは、メディア内容に基づく自己適応システムコードFECシステムにおける対応するモジュール、装置、ユニットなどにより達成される。当業者であれば、前記システムの技術スキームに基づいて前記方法のステップを実現することができる。つまり、前記システムにおける実施例は、前記方法を実現するための好適例として理解され得るので、ここで説明を省略する。
【0097】
また、本発明は、コンピュータ読み取り可能な記憶媒体に適用できる。コンピュータ読み取り可能な記憶媒体にコンピュータプログラムを記憶し、プロセッサによる実行により前記実施例に記載のメディア内容に基づく自己適応システムコードFEC符号化および復号化方法のステップを実現する。
【0098】
当業者に知られているように、ピュアコンピュータ可読プログラムコードの方式により本発明で提供されるシステムおよびその各装置、モジュール、ユニットを実現することに加えて、方法のステップを論理プログラミングすることにより、本発明で提供されるシステムおよびその各装置、モジュール、ユニットは、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラおよび組み込みマイクロコントローラなどにより同じ機能を実現することができる。従って、本発明で提供されるシステムおよびその各装置、モジュール、ユニットは、ハードウェア部品と見なすことができ、それらの内部に含まれる各機能を達成するための装置、モジュール、ユニットは、ハードウェア部品内の構造と見なすことができる。さらに、各機能を達成するための装置、モジュール、ユニットは、方法を達成できるソフトウェアモジュールまたはハードウェア部品内の構造と見なすこともできる。
【0099】
以上、本発明の具体的な実施例を説明した。需要理解的是,本発明は、前記特定の実施形態に限定されず、当業者は特許請求の範囲内において様々な変化または修正を行うことができ、これらの変化または修正は本発明の実質的な内容に提供を与えない。矛盾がない限り、本発明の実施例および実施例における特徴は、任意に組み合わせることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19