VSIPL 1.6 RTF Avatar
  1. OMG Issue

VSIPL16 — Conv. 'kernel_size()' incorrect for symmetric kernels

  • Key: VSIPL16-9
  • Legacy Issue Number: 18204
  • Status: open  
  • Source: dpdx.net ( Brooks Moses)
  • Summary:

    Copied from an internal bug report:

    PROBLEM: Convolution accessor 'kernel_size()' is defined to return the
    domain having the same length for each dimension as 'filter_coeffs'.
    However, when constructing a convolution with a symmetric kernel
    (sym_even_len_odd or sym_even_len_even), 'filter_coeffs' only holds
    a subset of coefficients. In those cases, the true kernel size is
    larder (For example, in 1D convolutions the true size will either '2 *
    filter_coeffs.size()' or '2 * filter_coeff.size() + 1').

    In contrast, the C-VSIPL spec defines the kernel size as M, and
    specifies the size of 'filter_coeffs' as either M if symmetry =
    non_sym, or 'floor(M/2)' if 'symmetry == sym_even_len_

    {odd,even}

    '.
    Queries to return the kernel size of a convolution return M.

    PROPOSED FIX: Change wording of 'kernel_size()' accessor (and
    Convolution constructor effects) to indicate correct kernel size.

    TODO: Review specification of Correlation, FIR, and IIR for similar
    error.

  • Reported: VSIPL++ 1.2 — Tue, 23 Oct 2012 04:00 GMT
  • Updated: Fri, 6 Mar 2015 20:57 GMT