The standard procedure to compute the singular value decomposition of a dense matrix, first reduces it into a bidiagonal one by means of orthogonal transformations. Once the bidiagonal matrix has been computed, the QR-method is applied to reduce the latter matrix into a diagonal one. In this paper we propose a new method for computing the singular value decomposition of a real matrix. In a first phase, an algorithm for reducing the matrix A into an upper triangular semiseparable matrix by means of orthogonal transformations is described. A remarkable feature of this phase is that, depending on the distribution of the singular values, after few steps of the reduction, the largest singular values are already computed with a precision depending on the gaps between the singular values.