Skip to content

Commit

Permalink
Update API documentations for LDB. Update API documentation organizat…
Browse files Browse the repository at this point in the history
…ion.
  • Loading branch information
zengfung committed Dec 4, 2021
1 parent 800d91e commit e3a43fd
Show file tree
Hide file tree
Showing 11 changed files with 181 additions and 111 deletions.
28 changes: 4 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,14 @@ Extension). It contains additional functionalities that complement Wavelets.jl,
## Authors
This package is written and maintained by Zeng Fung Liew and Shozen Dan under the supervision of Professor Naoki Saito at the University of California, Davis.

## What's New (v0.1.13)
- **Changes in supported types in `denoise` and `denoiseall` functions.** For the `inputtype` positional argument, the initially supported arguments `:acwt` and `:acwpt` are now changed to `:acdwt` and `:acwpd` to match the function name change in `WaveletsExt.ACWT`.
- **2D Local Discriminant Basis now supported.** 2D version of LDB is now up and running without any changes in the syntax compared to the 1D version.

## What's New (v0.1.12)
- **Bug fixes on best basis algorithms** to allow compatibility when partial wavelet decomposition is run.
- **New function `plot_tfbdry2()` implemented.** Visual representation of leaf nodes for 2D best basis trees now available.

## What's New (v0.1.11)
- **All types of 2D wavelet transforms up and running.** Discrete wavelet transforms, wavelet packet transforms, and wavelet packet decompositions for standard, autocorrelation, and stationary transforms working well with improved speeds and memory allocations.
- **2D best basis algorithms up and running.** Best basis algorithms such as standard best basis, joint best basis (JBB), and least statistically dependent basis (LSDB) now support 2D wavelet transforms.

## What's New (v0.1.10)
- **Direct support for wavelet transform of multiple signals.** Since the current package deals
a lot with multiple signals (eg. Joint Best Basis (JBB), group signal denoising, Local
Discriminant Basis (LDB)), functions are added to transform all signals at once, allowing
for simpler, cleaner and more efficient implementation of transforms for multiple signals.
- **2D wavelet transforms.** 2D wavelet packet transforms and 2D wavelet packet
decompositions are implemented, along with additional functions to navigate through the quadtree.
- **Improved API documentations.** API documentations contain more explanations for each
function argument and more examples of function use cases.
- **Standardization of function names.** Wavelet transform function names are standardized
to:
- Discrete wavelet transform (redundant and non-redundant versions) have functions that
end with `dwt`, eg. `dwt`, `sdwt`, `acdwt`.
- Wavelet packet transform (redundant and non-redundant versions), where only the
coefficients of the leaf nodes are kept, have functions that end with `wpt`, eg.
`wpt`, `acwpt`, `swpt`.
- Wavelet packet decomposition (redundant and non-redundant versions), where all
coefficients of each level are recorded, have functions that end with `wpd`, eg.
`wpd`, `acwpd`, `swpd`.

## Installation
The package is part of the official Julia Registry. It can be install via the Julia REPL.
```julia
Expand Down
2 changes: 1 addition & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ makedocs(
"DWT" => "api/dwt.md",
"ACWT" => "api/acwt.md",
"SWT" => "api/swt.md",
"SIWPD" => "api/siwpd.md",
"Best Basis" => "api/bestbasis.md",
"Denoising" => "api/denoising.md",
"LDB" => "api/ldb.md",
"SIWPD" => "api/siwpd.md",
"Utils" => "api/utils.md",
"Visualizations" => "api/visualizations.md",
]
Expand Down
12 changes: 4 additions & 8 deletions docs/src/api/acwt.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
Modules = [ACWT]
```

## Public API
### Transforms on 1 Signal
## Transforms on 1 Signal
```@docs
ACWT.acdwt
ACWT.acdwt!
Expand All @@ -21,9 +20,7 @@ ACWT.iacwpd
ACWT.iacwpd!
```

### Transforms on Multiple Signals
!!! note
The following functions currently only support 1D-signals. Transforms on multiple 2D-signals are not yet supported.
## Transforms on Multiple Signals
```@docs
ACWT.acdwtall
ACWT.iacdwtall
Expand All @@ -33,8 +30,7 @@ ACWT.acwpdall
ACWT.iacwpdall
```

## Private API
### Utilities
## Utilities
```@docs
ACWT.autocorr
ACWT.pfilter
Expand All @@ -43,7 +39,7 @@ ACWT.make_acqmfpair
ACWT.make_acreverseqmfpair
```

### Single Step Transforms
## Single Step Transforms
```@docs
ACWT.acdwt_step
ACWT.acdwt_step!
Expand Down
20 changes: 9 additions & 11 deletions docs/src/api/bestbasis.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
Modules = [BestBasis]
```

## Public API
### Cost functions and computations
## Cost functions and computations
```@docs
BestBasis.CostFunction
BestBasis.LSDBCost
Expand All @@ -21,7 +20,14 @@ BestBasis.tree_costs
BestBasis.tree_costs(::AbstractMatrix{T}, ::AbstractVector{BitVector}, ::SIBB) where T<:Number
```

### Best basis computation
# Best Basis Tree Selection
```@docs
BestBasis.bestbasis_treeselection
BestBasis.bestbasis_treeselection(::AbstractVector{Tc}, ::AbstractVector{Tt}) where {Tc<:AbstractVector{<:Union{Number,Nothing}}, Tt<:BitVector}
BestBasis.delete_subtree!
```

## Best basis computation
```@docs
BestBasis.BestBasisType
BestBasis.LSDB
Expand All @@ -32,11 +38,3 @@ Wavelets.Threshold.bestbasistree
Wavelets.Threshold.bestbasistree(::AbstractMatrix{T}, ::Integer, ::SIBB) where T<:Number
BestBasis.bestbasistreeall
```

# Private API
```@docs
BestBasis.bestbasis_treeselection
BestBasis.bestbasis_treeselection(::AbstractVector{Tc}, ::AbstractVector{Tt}) where {Tc<:AbstractVector{<:Union{Number,Nothing}}, Tt<:BitVector}
BestBasis.delete_subtree!
```
2 changes: 0 additions & 2 deletions docs/src/api/denoising.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
Modules = [Denoising]
```

# Public API
## Shrinking Types and Constructors
```@docs
Denoising.RelErrorShrink
Expand All @@ -25,7 +24,6 @@ Wavelets.Threshold.denoise
Denoising.denoiseall
```

# Private API
## Helper Functions for Threshold Determination and Noise Estimation
```@docs
Denoising.surethreshold
Expand Down
8 changes: 3 additions & 5 deletions docs/src/api/dwt.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
Modules = [DWT]
```

## Public API
### Transforms on 1 Signal
## Transforms on 1 Signal
```@docs
Wavelets.Transforms.wpt
Wavelets.Transforms.wpt(::AbstractArray{T,2}, ::OrthoFilter, ::Integer; ::Bool) where T<:Number
Expand All @@ -21,7 +20,7 @@ DWT.iwpd
DWT.iwpd!
```

### Transforms on Multiple Signals
## Transforms on Multiple Signals
```@docs
DWT.dwtall
DWT.idwtall
Expand All @@ -31,8 +30,7 @@ DWT.wpdall
DWT.iwpdall
```

## Private API
### Single Step Transforms
## Single Step Transforms
```@docs
DWT.dwt_step
DWT.dwt_step!
Expand Down
8 changes: 3 additions & 5 deletions docs/src/api/swt.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
Modules = [SWT]
```

## Public API
### Transforms on 1 Signal
## Transforms on 1 Signal
```@docs
SWT.sdwt
SWT.sdwt!
Expand All @@ -21,7 +20,7 @@ SWT.iswpd
SWT.iswpd!
```

### Transforms on Multiple Signals
## Transforms on Multiple Signals
```@docs
SWT.sdwtall
SWT.isdwtall
Expand All @@ -31,8 +30,7 @@ SWT.swpdall
SWT.iswpdall
```

## Private API
### Single Step Transforms
## Single Step Transforms
```@docs
SWT.sdwt_step
SWT.sdwt_step!
Expand Down
12 changes: 5 additions & 7 deletions docs/src/api/utils.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
Modules = [Utils]
```

## Public API
### Useful wavelet/signal utilities
## Useful wavelet/signal utilities
```@docs
Wavelets.Util.maxtransformlevels
Utils.getbasiscoef
Expand All @@ -17,7 +16,7 @@ Utils.coarsestscalingrange
Utils.finestdetailrange
```

### Tree traversing functions
## Tree traversing functions
```@docs
Wavelets.Util.isvalidtree
Wavelets.Util.maketree
Expand All @@ -28,24 +27,23 @@ Utils.getdepth
Utils.gettreelength
```

### Metrics
## Metrics
```@docs
Utils.relativenorm
Utils.psnr
Utils.snr
Utils.ssim
```

### Dataset generation
## Dataset generation
```@docs
Utils.ClassData
Utils.duplicatesignals
Utils.generatesignals
Utils.generateclassdata
```

## Private API
## Miscellaneous
```@docs
Utils.main2depthshift
Utils.packet
```
2 changes: 1 addition & 1 deletion docs/src/manual/transforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ plot(p0, p1, p2, layout=(1,3))

- 2D Example
```@example dwt
using Images, TestImages
using TestImages
img = testimage("cameraman");
x = convert(Array{Float64}, img);
Expand Down
Loading

2 comments on commit e3a43fd

@zengfung
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/49895

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.1.13 -m "<description of version>" e3a43fd457db47d92fb9720d85a5e05aae606330
git push origin v0.1.13

Please sign in to comment.