nsf5stego
Copyright 2026 Yushitayuri <dev@example.com>

This product includes software developed by Yushitayuri.

Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy
of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

================================================================================
Third-Party Software Notices and Attributions
================================================================================

This project includes or depends on the following third-party software,
which are licensed under their respective open-source licenses. The full
license texts are available in the upstream project repositories.

--------------------------------------------------------------------------------

1. NumPy
   - Version: >= 1.20
   - License: BSD-3-Clause
   - URL:    https://numpy.org
   - Used for: array operations, DCT, image statistics.

2. Pillow (PIL Fork)
   - Version: >= 9.0
   - License: HPND (Historical Permission Notice and Disclaimer)
   - URL:    https://python-pillow.org
   - Used for: image I/O, LANCZOS resizing, format conversion.

3. matplotlib
   - Version: >= 3.5
   - License: BSD-3-Clause / PSF-based
   - URL:    https://matplotlib.org
   - Used for: code-family / embedding-efficiency plots in the GUI.

4. scikit-learn
   - Version: >= 1.0
   - License: BSD-3-Clause
   - URL:    https://scikit-learn.org
   - Used for: GroupKFold CV, calibration, ML stego classifier.

5. pandas
   - Version: >= 1.3
   - License: BSD-3-Clause
   - URL:    https://pandas.pydata.org
   - Used for: dataset CSV loading and feature columns.

6. joblib
   - Version: >= 1.0
   - License: BSD-3-Clause
   - URL:    https://joblib.readthedocs.io
   - Used for: model serialization (.joblib).

7. LightGBM (optional, only for LGB-tuned classifiers)
   - Version: >= 3.3
   - License: MIT
   - URL:    https://lightgbm.readthedocs.io
   - Used for: gradient-boosted tree classifier (default model).

8. XGBoost (optional, only for XGB-tuned classifiers)
   - Version: >= 1.5
   - License: Apache-2.0
   - URL:    https://xgboost.readthedocs.io
   - Used for: gradient-boosted tree classifier (backup model).

9. PyTorch (optional, only for the GPU pipeline `gpu/`)
   - Version: >= 1.10
   - License: BSD-3-Clause
   - URL:    https://pytorch.org
   - Used for: GPU-accelerated batch feature extraction.

================================================================================
Bundled Sub-Projects
================================================================================

This repository ships with a sibling Python package under the `yccstego/`
directory:

  yccstego — JPEG-compression-domain nsF5 on the Y (luma) channel of YCbCr
  with a self-contained DCT + Huffman codec.
    Copyright 2026 Yukinoshita-lin
    License: Apache-2.0
    License file: yccstego/LICENSE

The two packages are independent: each has its own LICENSE and NOTICE, and
each carries its own copyright. They are co-developed by the same author
group and distributed together for convenience.

================================================================================
Reference Implementations and Algorithms
================================================================================

The algorithms implemented in this project are based on the following
public-domain academic references. No source code was copied; only the
published specifications were followed.

  - J. Fridrich, T. Pevný, J. Kodovský, "Statistically undetectable
    JPEG steganography: dead ends, challenges, and possible alternatives",
    Information Hiding Workshop (IH), 2007.
  - J. Fridrich, "Steganography in Digital Media: Principles, Algorithms,
    and Applications", Cambridge University Press, 2009.
  - J. Fridrich, M. Goljan, "Practical steganalysis of digital images —
    state of the art", Security and Watermarking of Multimedia Contents
    IV, SPIE, 2002.
  - A. Westfeld, A. Pfitzmann, "Attacks on steganographic systems —
    Breaking HUGO", Information Hiding Workshop (IH), 1999.
  - J. Kodovský, J. Fridrich, "Steganalysis of JPEG images using rich
    features", Journal of Electronic Imaging, 2012.

================================================================================
Training Datasets
================================================================================

Models bundled in this repository (`models/*.joblib`) were trained on:

  - Campus photos collected by the authors (data/campus_jpg/, 414 JPGs).
    No third-party content.
  - BOSSbase 1.01 (Break Our Steganographic System, 2008). Used in early
    experiments only; not redistributed in the model weights and not
    required at runtime. The dataset must be obtained separately from
    its original distributor for any reproduction.

================================================================================
Trademark Notice
================================================================================

"Apache" is a registered trademark of the Apache Software Foundation.
The Apache License, Version 2.0 is published by the Apache Software
Foundation; this project is NOT affiliated with or endorsed by the
Apache Software Foundation.
