Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
|
Thread Tools | Search this Thread | Display Modes |
4th August 2015, 11:49 | #21 | Link |
Registered User
Join Date: Nov 2012
Posts: 41
|
Hi colours,
This non-separable filter is a Gaussian-like low pass filter. I don't think it is intended to be better than the separable 6-tap, rather it is designed to give the encoder more flexibility. There are 16 sub pixel offsets per integer MV position. They break down as follows:
Of course an alternate way of achieving this would be have a separate flag, or index to specify the motion compensation filter to be applied. Pure speculation on my part but perhaps this approach has prior art that the Thor team wishes to avoid. Or perhaps combining the MC filter mode with MVD signalling is cheaper since Thor does not use arithmetic coding.
__________________
John @ Parabola Research Limited - HEVC conformance and technology http://www.parabolaresearch.com/ |
12th August 2015, 08:08 | #22 | Link |
Swallowed in the Sea
Join Date: Oct 2002
Location: Aix-en-Provence, France
Posts: 5,191
|
fyi, Daala's Entropy Coder has been pulled to Thor and vice-versa... Nice work btw.
From Monty Montgomery... |
12th August 2015, 08:30 | #23 | Link |
Registered User
Join Date: Mar 2004
Posts: 1,126
|
Thor has been officially announced: http://blogs.cisco.com/collaboration...ee-video-codec
|
12th August 2015, 09:34 | #24 | Link | |
Registered User
Join Date: Mar 2006
Posts: 1,049
|
Quote:
|
|
13th August 2015, 13:20 | #26 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
German technology sites and blogs of different topics start to discuss Thor already. Fefe's "conspiracy" blog (or rather a blog of political and social interests) points at the fact that Cisco used to be happy while being a member of the H.264 patent pool, being on the earners' side ... but because H.265 has two independent patent pools, and licenses are not even capped, Cisco got afraid of becoming a main payer this time.
Capitalism is a great concept as long as you make profits. |
13th August 2015, 14:11 | #27 | Link | ||
Registered User
Join Date: Mar 2006
Posts: 1,049
|
Quote:
From my perspective Cisco is interested in niche codec capable to perform real time video streaming with reasonable resources usage even with less quality. Daala on other side pursue quality with reasonable resource usage - it almost same but not the same. Probably both will share some ideas but at some point Daala should be capable to do more where Thor remain mostly niche codec. Quote:
Last edited by pandy; 13th August 2015 at 14:13. |
||
13th August 2015, 14:20 | #28 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
A codec for a limited purpose may be easier to optimize than a general purpose codec. Not sure which interest Cisco may have mainly, but e.g. "video telephony" with face presentation may be narrow enough to optimize strongly for it.
|
13th August 2015, 16:56 | #29 | Link |
Registered User
Join Date: Jan 2007
Posts: 729
|
I don't think there is that much space to differentiate with the format itself. Most of the needs can be addressed by encoder/decoder configuration/architecture, so it IMHO makes more sense to use a general-purpose format that will benefit from network effects and such.
|
13th August 2015, 21:07 | #30 | Link | |
Moderator
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,771
|
Quote:
However, codecs for extremely low latency don't need a lot of features useful for file-based encoding or streaming. For example, B-frames aren't used in VC since even a single one adds several frames of latency end-to-end. Robust error concealment and correction is also a lot more important than for other scenarios. |
|
20th August 2015, 10:32 | #31 | Link | |
Registered User
Join Date: Mar 2006
Posts: 1,049
|
Quote:
|
|
31st August 2015, 10:17 | #36 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
Back to the purpose of this thread ... we have a new codec. Who was able to test it?
I'm just trying, and it is a little annoying; at first the lack of documentation from the CLI ('-?' doesn't show a brief help, '-h' doesn't either, just like omitting any parameter); then the assumption from the available config examples that only raw YUV is supported, not even Y4M, and possibly no pipe either, lack of documentation, you know (so I get afraid I may have to waste disk space to create a copy of my Y4M test samples without header). Luckily, thorenc supports the use of config files as input: Code:
Thorenc -cf config.txt Here are some defaults from enc/strings.c: Code:
add_param_to_list(&list, "-cf", NULL, ARG_FILENAME, NULL); add_param_to_list(&list, "-if", NULL, ARG_FILENAME, ¶ms->infilestr); add_param_to_list(&list, "-ph", "0", ARG_INTEGER, ¶ms->file_headerlen); add_param_to_list(&list, "-fh", "0", ARG_INTEGER, ¶ms->frame_headerlen); add_param_to_list(&list, "-of", NULL, ARG_FILENAME, ¶ms->outfilestr); add_param_to_list(&list, "-rf", NULL, ARG_FILENAME, ¶ms->reconfilestr); add_param_to_list(&list, "-stat", NULL, ARG_FILENAME, ¶ms->statfilestr); add_param_to_list(&list, "-n", "600", ARG_INTEGER, ¶ms->num_frames); add_param_to_list(&list, "-skip", "0", ARG_INTEGER, ¶ms->skip); add_param_to_list(&list, "-width", "1920", ARG_INTEGER, ¶ms->width); add_param_to_list(&list, "-height", "1080", ARG_INTEGER, ¶ms->height); add_param_to_list(&list, "-qp", "32", ARG_INTEGER, ¶ms->qp); add_param_to_list(&list, "-f", "60", ARG_FLOAT, ¶ms->frame_rate); add_param_to_list(&list, "-lambda_coeffI", "1.0", ARG_FLOAT, ¶ms->lambda_coeffI); add_param_to_list(&list, "-lambda_coeffP", "1.0", ARG_FLOAT, ¶ms->lambda_coeffP); add_param_to_list(&list, "-lambda_coeffB", "1.0", ARG_FLOAT, ¶ms->lambda_coeffB); add_param_to_list(&list, "-early_skip_thr", "0.0", ARG_FLOAT, ¶ms->early_skip_thr); add_param_to_list(&list, "-enable_tb_split", "0", ARG_INTEGER, ¶ms->enable_tb_split); add_param_to_list(&list, "-enable_pb_split", "0", ARG_INTEGER, ¶ms->enable_pb_split); add_param_to_list(&list, "-max_num_ref", "1", ARG_INTEGER, ¶ms->max_num_ref); add_param_to_list(&list, "-HQperiod", "1", ARG_INTEGER, ¶ms->HQperiod); add_param_to_list(&list, "-num_reorder_pics", "0", ARG_INTEGER, ¶ms->num_reorder_pics); add_param_to_list(&list, "-dqpP", "0", ARG_INTEGER, ¶ms->dqpP); add_param_to_list(&list, "-dqpB", "0", ARG_INTEGER, ¶ms->dqpB); add_param_to_list(&list, "-mqpP", "1.0", ARG_FLOAT, ¶ms->mqpP); add_param_to_list(&list, "-mqpB", "1.0", ARG_FLOAT, ¶ms->mqpB); add_param_to_list(&list, "-dqpI", "0", ARG_INTEGER, ¶ms->dqpI); add_param_to_list(&list, "-intra_period", "0", ARG_INTEGER, ¶ms->intra_period); add_param_to_list(&list, "-intra_rdo", "0", ARG_INTEGER, ¶ms->intra_rdo); add_param_to_list(&list, "-rdoq", "0", ARG_INTEGER, ¶ms->rdoq); add_param_to_list(&list, "-max_delta_qp", "0", ARG_INTEGER, ¶ms->max_delta_qp); add_param_to_list(&list, "-encoder_speed", "0", ARG_INTEGER, ¶ms->encoder_speed); add_param_to_list(&list, "-deblocking", "1", ARG_INTEGER, ¶ms->deblocking); add_param_to_list(&list, "-clpf", "1", ARG_INTEGER, ¶ms->clpf); add_param_to_list(&list, "-snrcalc", "1", ARG_INTEGER, ¶ms->snrcalc); add_param_to_list(&list, "-use_block_contexts", "0", ARG_INTEGER, ¶ms->use_block_contexts); add_param_to_list(&list, "-enable_bipred", "0", ARG_INTEGER, ¶ms->enable_bipred); Code:
Thorenc.exe -if Johnny_1280x720_60.yuv -width 1280 -height 720 -f 60 -n 600 -of Johnny_1280x720_60.bit -rf Johnny_1280x720_60.recon.y4m Preparing a config for higher efficiency, testing again... Code:
-if Johnny_1280x720_60.yuv ; Input yuv sequence -of Johnny_1280x720_60_HE.bit ; Output bitstream -rf Johnny_1280x720_60_HE.recon.y4m ; Reconstructed yuv sequence -stat Johnny_1280x720_60_HE.stat.txt ; Statistics to file -width 1280 ; Witdh of luminance -height 720 ; Height of luminance -n 600 ; Number of frames to encode -f 60 ; Frame rate in Hz -qp 32 ; Quantization parameter -HQperiod 12 ; Period of high quality frames -mqpP 1.2 ; QP multiplier for low quality P frames -dqpI -2 ; QP offset for intra frames -lambda_coeffI 1.2 ; Multiplier for lambda - I frames -lambda_coeffP 1.2 ; Multiplier for lambda - P frames ; ;High complexity operating point ; -intra_rdo 1 ; Use RDO for choosing intra mode -enable_tb_split 1 ; Enable splitting of a block in 4 transform blocks -enable_pb_split 1 ; Enable splitting of an inter block in 4 prediction blocks -early_skip_thr 0.3 ; Early skip threshold -max_num_ref 4 ; Number of reference frames -use_block_contexts 1 ; Use block contexts -enable_bipred 1 ; Enable biprediction -encoder_speed 0 ; Encoder complexity parameter (0: Slow, 1: Moderate: 2: Fast) The stats file tells little, just few statistical values, it's not like a 2-pass bitrate distribution stats file: Code:
NFR kbps PSNRY PSNRU PSNRV 600 161.215 38.010 44.001 44.578 Last edited by LigH; 31st August 2015 at 13:53. |
1st September 2015, 19:12 | #37 | Link | |
Registered User
Join Date: Apr 2009
Location: Gurupi, Tocantins, Brasil
Posts: 205
|
Maybe offtopic: http://aomedia.org
Quote:
|
|
2nd September 2015, 04:56 | #38 | Link | |
Registered User
Join Date: Jun 2013
Posts: 98
|
Quote:
|
|
2nd September 2015, 10:45 | #39 | Link |
Registered User
Join Date: Aug 2009
Posts: 201
|
I gathered a few of the announcement posts about the Alliance and started a thread here:
http://forum.doom9.org/showthread.php?t=172550 |
23rd September 2015, 23:29 | #40 | Link |
Registered User
Join Date: Jan 2007
Posts: 729
|
Presentation about Thor from VDD 2015: https://www.youtube.com/watch?v=g6m_N3QlqOI
I didn't yet have time to watch it whole, but it seems that Thor is basically something that Cisco originally proposed for HEVC, but with lower complexity (which means the lack of CABAC-grade entropy coding is intentional, meh!), and now it is basically being recycled. Which also means that Thor as a format is not going to be competitive with HEVC, even if it had a competitively-tuned encoder available which it AFAIK doesn't have anyway. I hope the influence of these low-complexity aims won't cripple NetVC's overall compression strength, as Thor and Cisco is another input into the NetVC program apart from Daala. |
|
|