From patchwork Thu Jun 21 10:33:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 9456 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:11c:0:0:0:0:0 with SMTP id c28-v6csp1842565jad; Thu, 21 Jun 2018 03:41:18 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIBr48Y+iqEl6Og+rtiKkt2en13XfMkptDdbUH+BueU89csSNfa0cNWv9KfiGDfvJq4Pj4e X-Received: by 2002:a1c:938e:: with SMTP id v136-v6mr4404604wmd.32.1529577678771; Thu, 21 Jun 2018 03:41:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529577678; cv=none; d=google.com; s=arc-20160816; b=ZK2fZOIz8FnYebGhi/qf3F9hGvBzEsTuK/14pkg0iIZZv3Z894HKLqcY7F572MQIrv YgwYT3x4CZd0ijPlmP96D4GF05xGBQw0zFvcIaPVoxgSVbvRfL7ZR/KAITZMH2mVKW29 RFzPcOASJvXWtS75ACKbnNJw/IldL4lVDI5rMXK7GlSjxDJlMFpojl0q66RuZZXXA49m j0uO4BsUer7taWSJiRdNKJWC813EiMky7vC5KElYSPVM44cRe11B1gRl/G92PbGkwOM1 eGb0BSURcct+xFpN0y+u+bB3Ptj/P35M/jlKCocTjN3UwQprXbVvFtKxo3OhBQesbx9g W1aA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=u4tHKetzSLwjB/hqGfcW7A5SyKPu0iMQBjl24zZ3nlA=; b=dbOXNuPiY7AQ4Qd/3gjoChG+msf5jkUyBV9254VabACKMhKkuBGPOCsXIwYNiVFA3A hsK6xN+SZA6yoZOxXwuhD2SSNehZ4pjuxcfFsaFJUrp1Vl2iRK1slc90u+ml5fV+cTeC cFqIB0Df5vwpekacT32fTtjqz8BCiqoa75fM7P0tROu1J4tfTlGc87ZD6/FsscrKGIuy Z0TcgIRvSmqtovwi4s750KBVuWEeDKqADCqE+gssdXBxB8aLc0CebzUAPamljI9bWHj5 LceJndb1mbfq+M5C1N2OHjCc+FBrlw9GpfI2UjfB5mGS78T+P+e7Nj4As/vr/YGtZWd4 xFGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Tv0Pi+Fk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 9-v6si4295939wmr.140.2018.06.21.03.41.17; Thu, 21 Jun 2018 03:41:18 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Tv0Pi+Fk; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6AD1868A6DD; Thu, 21 Jun 2018 13:40:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f66.google.com (mail-pg0-f66.google.com [74.125.83.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98C7A68A6DC for ; Thu, 21 Jun 2018 13:40:15 +0300 (EEST) Received: by mail-pg0-f66.google.com with SMTP id e11-v6so1252985pgq.0 for ; Thu, 21 Jun 2018 03:41:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Q3x8bwCm7WVmvxDATAHO8Oz51mCRBoivOKClljGHd1o=; b=Tv0Pi+FkBuzKNKBIWkOP+9q2xuLDgeTFq+kJN8vjS1lrpDkWdfaIej4qHQZ7F1lO9P LdaB6x8F620qGtrer9mfTH7yPmDilwZ1Fuh2V8IdqM8YKwlCCk9bxHsX2vhPseoqqH8g 023Mrf8saF+6nWZdKD8hkZAgSDaShjDtAtyR6m6t2BBJBF/aDWssdrCGQdUz99eGE/Ga emVyY84GhOTEbdGf11NyxLplvkaAX6KtZoL6Fdv3ojb7SCxFP71DXEZmyhls50nMnAH6 T6shDES96s+36q4DL9hIZhj+x7OWCaXz7wc4VLf4wu0X6dphlhI6fSWGCCG2r2Q3iUsS zFDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Q3x8bwCm7WVmvxDATAHO8Oz51mCRBoivOKClljGHd1o=; b=hhmCqypp1dte3TqlzYN52AETVCZk4yuninKWnkhJD0EnDHjnMLx84/rzUDQcb/zYzx uZ22vDY7y1mFUdZ+Oq13AyC50V0R5GPW/B8NWafXiYzywnekxg7lZkZI86WcfJoEvCfV ZsBoayZlLwNxI+793f0OJEAoPH3CqKoHaw78SmcyzJreZ+lPbuX0uIaMJ1aJ9Pdsk9yy 7udak2shbnkwYcB9uXxrm2cJyvimNGnL2HCiPHrI0/0gvy82my5sIpU+GPhkW412fVzp YqMloHzW0PJ0Gclww50DmH7xo7B5yem6X8ht8S7iAUM/mCWJRR429kwz3pFRMuy8RgsL Ic8w== X-Gm-Message-State: APt69E0TVTrv/htDPlDviX/nBLit3i6q8rKT3ars09KdKHcMld6QdcfW G8MWwDIYxuYK8RAgWfkNQTDXkI2A X-Received: by 2002:aa7:8311:: with SMTP id t17-v6mr26909451pfm.45.1529577208046; Thu, 21 Jun 2018 03:33:28 -0700 (PDT) Received: from gagandeep-Aspire-VX5-591G.cse.iitk.ac.in ([125.17.242.34]) by smtp.googlemail.com with ESMTPSA id b15-v6sm5826888pgu.54.2018.06.21.03.33.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Jun 2018 03:33:27 -0700 (PDT) From: Gagandeep Singh To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Jun 2018 16:03:10 +0530 Message-Id: <20180621103310.13097-1-deepgagan231197@gmail.com> X-Mailer: git-send-email 2.14.1 Subject: [FFmpeg-devel] [PATCH] lavc/cfhd: added correct decompanding to codebook0 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Gagandeep Singh MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" output of samples using codebook 0 improved --- libavcodec/cfhd.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index bf80cb9c07..226b135c07 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -115,7 +115,30 @@ static inline int dequant_and_decompand(int level, int quantisation, int codeboo { if (lossless) return level; - if (codebook == 0 || codebook == 1) { + if (codebook == 0) { + if (level >= 40 && level < 264) { + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + } else if (level <= -40) { + level = -level; + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + level = -level; + } + return level * quantisation; + } else if (codebook == 1) { int64_t abslevel = abs(level); if (level < 264) return (abslevel + ((768 * abslevel * abslevel * abslevel) / (255 * 255 * 255))) *