（資料１）
原告ソフトウェアと被告ソフトウェアについて
１. ＳＳＴＧ１（原告ソフトウェア）とＢａｂｅｌ（被告ソフトウェア）について（１）『ＳＳＴＧ１』
・・・原告が開発した字幕制作ソフトウェア（２）『Ｂａｂｅｌ』
・・・被告が開発した字幕制作ソフトウェア（１）ＳＳＴＧ１の機能⚫

字幕テキストの入力・削除⚫

スポッティング（字幕の表示タイミング）機能⚫

字幕の分割、結合⚫

字幕エフェクトの設定（ルビ・イタリック・傍点・組文字・表示位置・行配置・フォント・サイズの設定）⚫

字幕の検索、置換、フォーマット（字幕エフェクト）の検索⚫

ガイドラインの設定機能（字幕表示最小時間、行内最大文字数など、字幕に関する制限を設定できる機能）⚫

ショートカットキーの設定⚫

データファイルのインポート、エクスポート

別紙１参照
http://canvass.co.jp/solution/products/sst_g1/process.html（２）Ｂａｂｅｌの機能⚫

字幕テキストの作成（字幕テキストのインポート、エクスポート）⚫

字幕の表示タイミング（スポッティング）調整⚫

字幕制作の制限がかけられるガイドライン機能（1 秒間の最大文字数制限、1 行の最大文字数制限、字幕の最小表示時間、字幕間の最小間隔）⚫

字幕の分割、結合⚫

スタイル検索・置換（字幕のフォント、色、向きなどのエフェクト毎に字幕テキストを検索できる機能、入力した字幕テキストを検索しエフェクトを追加できる機能）⚫

ショートカットキーの設定⇒ＳＳＴＧ１とＢａｂｅｌは、機能としてはほぼ同一

1

２. 原告ソフトウェアと被告ソフトウェアで使用されている C++言語について
原告ソフトウェアと被告ソフトウェアは C++言語にて開発されている
C++言語とは・・・
C 言語を拡張したオブジェクト指向のプログラミング言語
オブジェクト指向とは・・・
プログラムを手順ではなくて、モノの作成と操作として見る考え方⇒大人数で開発するときに便利
設計思想や構成を理解しやすいためクラスとは・・・
プログラムを実行するためのデータや処理をひとまとめにしたもの
インスタンスとは・・・
プログラムでオブジェクトを実際に使う時に生み出されるもの

2

３. ソースコードの類似について（１）類似箇所１について
GlobalSettings.h と SourceDefault.h との類似判断
C++言語における「.h」ヘッダファイル（定義ファイル）について⇒クラスで用いる変数や関数などの定義をしているファイル実装部（.cpp ファイル）で用いる変数や関数などを定義している
補足）
C++の『暗黙のルール』の一つに、「同一ファイルに複数のクラスを定義しない」「クラス名とファイル名を一致させる」というものがある
このルールに則り、例えば「Player」というクラスを作るなら、「Player.h」にクラスの定義を記述し、「Player.cpp」に関数の内容などの実装部を記述
GlobalSettings.h と SourceDefault.h、それぞれにクラス（原告ソフトウェア：CGlobalSettingsクラス、被告ソフトウェア：CsourceDefault クラス）が定義されており、そのクラスの主な役割
は字幕データの標準値を格納する変数を宣言すること※字幕データとは、文字のフォント、大きさ、色、輪郭の有無、文字のフォント，大きさ，色，輪郭の有無，ルビの有無などのデータを指すと思われる。

変数とは・・・
名前をもった値の入れもののこと例）a = 123;

変数「a」の中に、値「123」を代入する

変数の宣言とは・・・
変数に入れる値の型をあらかじめ記述すること
型とは・・・
変数に入る値の種類のことで、整数（int）、浮動小数点数（double）、文字（char）、文字列（string）などがある
例）int k;『int 型の変数 k を宣言という意味』

被告ソフトウェアで宣言されている 30 個の変数のうち20 個・・・型，コメント，インデント（型名と変数名の間の空白文字列，変数名と注釈の間の空白文字列）を含め完全に一致
5 個・・・少なくとも変数名は一致※変数の書き方
int k; //型

整数型の変数 k を宣言
コメント

インデント
3

（２）類似箇所２について
SourceDefault.cpp と GlobalSettings.cpp の類似判断
特定のフォーマット情報を，メモリ上に，編集中のプロジェクト（字幕データ）のフォーマット情報として格納する機能。フォーマットデータの構成要素にどのような変数名を付けるか，各変数名にどのような順番で変数を代入するが記載されていると思われる。

代入演算子のオーバーロード
代入演算子とは・・・「＝」の記号をさす。プログラムコードの 1 要素代入演算子のオーバーロードとは・・・「＝」に本来の意味以上に意味を拡充することが可能となる C++のプログラム手法（３）類似箇所３について
SSTDB.cpp と Mdb.cpp の類似箇所
SourceDefault.cpp が実装する CsourceDefault クラスの比較演算子のオーバーロードで参照されている変数と GlobalSettings.cpp の類似判断
編集中の字幕のフォーマット情報を保存しようとする際，既存のフォーマットのリストの中に，保存しようとする前記フォーマット情報と同一のものがあるか否かを判断するために呼び出される比較処理部分。フォーマットデータの構成要素にどのような変数名を付けるか，各変数名にどのような順番で変数を代入するか記載されていると思われる

比較演算子のオーバーロード
比較演算子とは・・・「＜」「＞」「＜＝」「＞＝」などの記号をさす。プログラムコードの 1 要素
代入演算子のオーバーロードとは・・・
上記比較演算子に本来の意味以上に意味を拡充することが可能となる C++のプログラム手法（４）類似箇所４
AutoLocker.h と SafeLocker.h
SSTDB.cpp のフィールド名と Mdb.cpp の類似判断

フィールド名とは・・・
DB におけるレコードを構成する１つ１つの要素のこと
DB の構造について「テーブル」
・・・Excel のシートに相当するのがテーブル
4データベースではデータの種類やプログラムの利便性を考慮して複数のテーブルを持つことが多い「カラム」
・・・Excel の列に相当するのが、カラム
データベースではカラムごとに、文字列（と文字数）、数値（と桁数）のように属性が定められる「レコード」
・・・レコードはデータそのもののこと「フィールド」・・・レコードを構成する１つ１つの要素のことです。Excel でいうセルに相当

SSTDB.cpp ファイルは，Template.mdb に字幕データを記述及び保存する機能、Template.mdb
形式の字幕ファイルから字幕データを解析する機能及び Template.mdb 形式の字幕データを原告ソフトウェアのデータメモリ領域に展開する機能を有すると思われる（５）類似箇所５
AutoLocker.cpp と SafeLocker.cpp のクリティカルセクションに関するユーティリティクラスを実装する部分

クリティカルセクションとは・・・
複数の処理を並列に実行するプログラムのうち、共有するリソースにアクセスする部分のこと、また、それに対して排他制御をすること
ユーティリティクラスとは・・・
各クラスに点在する共通処理をまとめたクラス

複数の処理が共有するリソースに対して同時期に実行されるとプログラムが正常に動作しなくなるため、これを回避するための制御を実施する機能を記載したソースファイルを指すと思われる。
（６）Template.mdb
5Template.mdb とは・・・
原告プログラムで取込み又は作成した文字データや各種設定情報を格納するための書式（読み出された Template.mdb にユーザの操作により各種データが所定のフィールドに上書きされていき、最終的には個別の字幕データファイルとして完成される。）（著作権侵害訴
訟控訴審より）
別紙２『Template.mdb』について（著作権侵害訴訟控訴審別紙より抜粋）
Template.mdb のセマンティクス
セマンティクスとは・・・
プログラミング言語において、ソースコード中で利用されている変数や文が正しく動作するかを判断する基準のこと
プログラミングが論理的には正しくとも、正しく動作しないことを「セマンティクスレベルでのエラー」という本件において、Template.mdb のセマンティクスとは、Template.mdb のテーブル、フィールド、型などの構成から、それぞれどのような意味をもち、ソースコードとの関連でどのように動作するかの意味のことを指すと思われる。
以6上