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.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 16th January 2013, 21:08   #16961  |  Link
Jong
Registered User
 
Join Date: Mar 2007
Location: London, UK
Posts: 576
Quote:
Originally Posted by yok833 View Post
Hello guys,
I have to change my old graphic card, a HD6850, and i would like to know if there is a card or a brand better than an other...
Do you think that it is possible to see an improvement and have a better picture quality with the last generation ???
I know that Nvidia has CUDA but it doesn't give a better picture, it only helps to decode more quickly...
not sure the quality is that improved in the latest gen, maybe a bit, but the real benefit for an HTPC is the reduced power and heat. It is now quite possible to have a silent GPU that comfortably does MadVR and video decoding.
Jong is offline   Reply With Quote
Old 16th January 2013, 21:11   #16962  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by madshi View Post
You'll get ringing in any case. Audio upsampling isn't so very different from video upsampling.
That's true, but SSRC seems to do very well on these characteristics: http://src.infinitewave.ca/

I was able to find examples where the Libsamplerate resampler (the default) produced audible aliasing. (in tests specifically designed to reveal it)

Quote:
Originally Posted by madshi View Post
I disagree. If you have managed to get the refresh rate close enough, there shouldn't be frame drops/repeats long enough to play the longest movie out there, rendering Reclock's resampling/sync corrections useless. In that case it does make a lot of sense to enable the "slave reference clock to audio" option, so that you can get kernel mode streaming without having to resample audio.
I think that's a nice idea in theory, but it depends where the point it has to drop frames is. While your current sync may theoretically allow for 10 hours of playback without dropped/repeated frames, in practice that point seems to happen during a film. At least I've never had perfect playback even when my refresh has been 24.00008 and the content is 24fps native, for example.

And with Windows 8, until this refresh rate bug gets sorted (unclear on whether it's Nvidia, Windows 8, or madVR at fault) you don't necessarily have the option for perfect timings. I can't get 24Hz playback in Fullscreen Exclusive any more, and a large number of my Blu-rays are 24.0fps, not 23.976.

Something I thought was interesting, and may be somewhat related; when playing Deus Ex Human Revolution the other night, it gives me the full list of resolutions and refresh rates to choose from in the config, when set to DX9. If I enable DirectX 11, I can only choose 59Hz. I don't know if that's just the game, or something that's happening with Windows 8, but maybe that has something to do with it? (I know madVR shouldn't be using DX11 now)

And if your sync is good enough that ReClock shouldn't have to do any work... then won't it not do any resampling?

Quote:
Originally Posted by DragonQ View Post
Fair enough; I rarely consider "telecined content" (2:3 pulldown) since it doesn't exist in "PAL regions", thus I never encounter it.

Also, wouldn't that technically be detelecining/IVTC, not deinterlacing?
You still need 2:2 pulldown with a lot of PAL film content. In fact, I have my madVR deinterlacing settings set to force Film mode by default, because it is often not selected with these titles, and it is rare that I encounter Video content.

Quote:
Originally Posted by nevcairiel View Post
Video Mode deinterlacing of telecined PAL just results in 50p, even if it would be supposed to only be 25p, so usually we never notice any such problems.
Halved resolution is noticeable to me. I need to have madVR force film-mode deinterlacing.


With all this talk of deinterlacing, I'll have to get a sample of another film that I just recently received, which is giving poor results regardless of what I set. I suspect it's a mastering issue, but I might as well upload it to see if there's anything that can be done. I'll try and get something up within the hour.
EDIT: Won't be for a while now, something came up.

Last edited by 6233638; 16th January 2013 at 22:16.
6233638 is offline   Reply With Quote
Old 16th January 2013, 22:11   #16963  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by 6233638 View Post
That's true, but SSRC seems to do very well on these characteristics: http://src.infinitewave.ca/
It does reasonably well, I know. There's a reason I'm using SSRC for resampling in eac3to. However, it still does introduce ringing, there's no denying that. Whether it's audible or not is a different matter. I'm much better at seeing video artifacts than I'm at hearing audio artifacts.

Quote:
Originally Posted by 6233638 View Post
At least I've never had perfect playback even when my refresh has been 24.00008 and the content is 24fps native, for example.
Check back the last few posts about audio clock deviation. Getting a refresh of 24.00000 won't help if your audio clock deviates from your system clock (which it usually does). You should not aim for 24.00000, but for a different refresh rate, based on audio clock deviation.

Quote:
Originally Posted by 6233638 View Post
And if your sync is good enough that ReClock shouldn't have to do any work... then won't it not do any resampling?
I don't think it works that way. Either you enable the resampler or you disable it. I don't think you enable it for one audio block and then disable it for the next, depending on whether the sync is "good" or not. Resampling is based on a sliding window, so enabling/disabling isn't as simple as just turning it on/off. I believe if you allow Reclock to resample, it will *always* do so, regardless of how good the sync is.
madshi is offline   Reply With Quote
Old 16th January 2013, 22:33   #16964  |  Link
Dodgexander
Registered User
 
Join Date: Jul 2008
Posts: 157
Quote:
Originally Posted by madshi View Post
What does the OSD say about deinterlacing for those h264 files? If it's disabled, what happens if you press Ctrl+Alt+Shift+D twice to manually enable deinterlacing in madVR? Does that work? Can you upload a small sample with which I can reproduce the problem on my PC?
After cutting a sample. I found something interesting and probably the answer to why this is happening.

My samples are taken from the same file; A recording from BBC One HD, a DVB-T2 channel in the UK.

I first took a sample in the middle of the file, played the file and it worked fine, MadVR recognised the interlaced content and automatically did the job. I was so surprised I checked the mediainfo of the file, it was labeled as Interlaced.

So i checked the source file in mediainfo and it was labeled "progressive".

Then I realised something I read online. The BBC said that it would be switching its broadcasts between 25p and 25i, depending on the program shown.

I duly took a sample from the advertisements at the beginning of my recording and as I thought, it was labeled as progressive, meaning the recording changed from 25p to 25i when the program started, the stream was changed.

So this begs the question really, I'm guessing this is the cause of the error, but is it possible for Madvr to detect the change?

I have uploaded 3 files, one of which i think is when the change occurs, but for certain you can see the differences in flags for interlacing between the files.

Obviously at the moment I can just force deinterlacing or just use the Cyberlink decoder. But its odd this occurs using the FFDSHOW Dxva, LAV and Windows default decoder.

http://www.mediafire.com/?737zdww3dz4yx

Your work Madshi is commendable, the amount of time it must take you to help everyone in this thread. Truly amazing. Thanks!
Dodgexander is offline   Reply With Quote
Old 16th January 2013, 23:26   #16965  |  Link
dansrfe
Registered User
 
Join Date: Jan 2009
Posts: 1,210
Changing from DXVA2 (under Image downscaling) to something else with DXVA2 native decoding on in LAV Video doesn't make a difference The video basically freezes for 10 seconds and then LAV switches over to software decoding with avcodec and playback starts again.
dansrfe is offline   Reply With Quote
Old 17th January 2013, 00:24   #16966  |  Link
DragonQ
Registered User
 
Join Date: Mar 2007
Posts: 934
Quote:
Originally Posted by 6233638 View Post
You still need 2:2 pulldown with a lot of PAL film content. In fact, I have my madVR deinterlacing settings set to force Film mode by default, because it is often not selected with these titles, and it is rare that I encounter Video content.
Yes but showing each frame twice does no harm whatsoever, as long as the deinterlacer is not retarded. Which leads me to your next point...

Quote:
Originally Posted by 6233638 View Post
Halved resolution is noticeable to me. I need to have madVR force film-mode deinterlacing.
Halved resolution? That shouldn't be happening at all unless you're using bob deinterlacing. What video card do you have? Here's a screenshot comparison of 25p video in a 50i stream, using hardware deinterlacing on an nVidia GTS250:

Auto Mode (detected as "video")
Film Mode

They are identical.
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7
DragonQ is offline   Reply With Quote
Old 17th January 2013, 00:56   #16967  |  Link
Mangix
Audiophile
 
Join Date: Oct 2006
Posts: 353
I have two crash reports relating to VSync functions. As I remember reading a few pages back about crashes with DXVA2 decoding and two displays, this might already be known. Let me know if they are needed. One crash is in d3d9.dll and the other in madVR.ax
Mangix is offline   Reply With Quote
Old 17th January 2013, 01:32   #16968  |  Link
nub234
Registered User
 
Join Date: Nov 2010
Posts: 6
Quote:
Originally Posted by madshi View Post
Weird. Could you please double check with LAV Splitter/Decoders in MPC-HC? Are you using software or hardware decoding? Try software decoding. If the problem then still occurs, please upload a sample where it's especially obvious, and please tell me what you're doing exactly in MPC-HC to reproduce the problem. Thanks.
Double checked on MPC-HC with LAV Splitters/Decoders and can confirm the problem exists there too with MadVR 0.85.2+

The exact steps I took are basically load up the file, pause the file frame step a few times really quickly to try and navigate to a specific frame and it throws a freeze. It then seems to be ok for a few seconds of frame stepping, and then freezes again. Each time it freezes the video also seems to skip a few seconds.

I cannot differentiate the freezes between different files, ie. they all seem to freeze equally, so I've uploaded a short file.

http://www56.zippyshare.com/v/1652887/file.html
nub234 is offline   Reply With Quote
Old 17th January 2013, 04:38   #16969  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by DragonQ View Post
Yes but showing each frame twice does no harm whatsoever, as long as the deinterlacer is not retarded. Which leads me to your next point...


Halved resolution? That shouldn't be happening at all unless you're using bob deinterlacing. What video card do you have? Here's a screenshot comparison of 25p video in a 50i stream, using hardware deinterlacing on an nVidia GTS250:

Auto Mode (detected as "video")
Film Mode

They are identical.
Seems to depend on the source. Sometimes that works, many times it does not, in my experience.

Auto (Video)
Film

That's why I have madVR set to force film mode by default, and change it to auto myself if that causes problems, which is rare. (rarer than this, at least)


Quote:
Originally Posted by annovif View Post
Have you got the same comparison for JINC 3-4-8 with and without AR (or only if AR is already 'the best quality that we can have)
So I went to do this comparison, and honestly, there's so little difference between Jinc 3/4/8 with chroma on that sample, that it's not even worth posting here. The only real difference is an increase in ringing as you move to higher levels.

It's only when you are dealing with "faulty" chroma samples where there is any real difference between them, and where Jinc 8 or SoftCubic 100 show any benefit. That is extremely rare, and so I do not recommend using those settings for chroma in general use.


What I did notice, however, was that the anti-ringing filter introduces artifacts (aliasing?) with that sample:

Lanczos 3 (no AR) for Luma.

That's not to say you shouldn't use the AR filter, just that it can cause problems in some cases.

I also found that going above a certain scaling factor seems to just give me a blank image now. With MPC-HC set to "Double Image" zooming in beyond 2.122 blacks out with Blu-ray.
6233638 is offline   Reply With Quote
Old 17th January 2013, 04:57   #16970  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,646
Quote:
Originally Posted by 6233638 View Post
That's not to say you shouldn't use the AR filter, just that it can cause problems in some cases.
Yeah the AR is making it lumpy, it still cleans up the edges fairly nicely though, I think I'd go with AR disabled there (I'm all for nice smooth gradients) and maybe we'll get improved AR sometime that will be best in all cases.
ryrynz is offline   Reply With Quote
Old 17th January 2013, 06:28   #16971  |  Link
squall12
Registered User
 
Join Date: Nov 2009
Posts: 7
Hi guy,

Anyone using the shader effect on the MPCHC with madvr? If yes what shader is best recommend to use with madvr for watch bluray movie only.

Thanks
squall12 is offline   Reply With Quote
Old 17th January 2013, 08:54   #16972  |  Link
G_M_C
Registered User
 
Join Date: Feb 2006
Posts: 1,076
Quote:
Originally Posted by squall12 View Post
Hi guy,

Anyone using the shader effect on the MPCHC with madvr? If yes what shader is best recommend to use with madvr for watch bluray movie only.

Thanks
Q: Why do you think you want or have to use a shader?

PS: Also see no 12 @ http://forum.doom9.org/forum-rules.htm
G_M_C is offline   Reply With Quote
Old 17th January 2013, 09:31   #16973  |  Link
AndreaMG
Registered User
 
AndreaMG's Avatar
 
Join Date: Sep 2012
Location: Turin
Posts: 104
Quote:
Originally Posted by squall12 View Post
Hi guy,

Anyone using the shader effect on the MPCHC with madvr? If yes what shader is best recommend to use with madvr for watch bluray movie only.

Thanks
See here:
http://forum.doom9.org/showthread.php?t=157634

If by "effects" you mean sharpening I personally like "r=1, sharpen edge complex, deband and minimal denoise.txt", I have a plasma and edge sharpening helps, it really depends on personal tastes and your tv/monitor.
__________________
Raven RVZ01 * i7-4790k * 16GB RAM * Zotac GTX 970 4G * SSD 850Evo 500GB * Blu-Ray Burner Slot-In * PSU SFX 80+ Gold 450Watt * Windows 10 64bit * MPCHC+MadVR+SVP * Panasonic 50" VT30 ^^

Last edited by AndreaMG; 17th January 2013 at 09:34.
AndreaMG is offline   Reply With Quote
Old 17th January 2013, 09:51   #16974  |  Link
DragonQ
Registered User
 
Join Date: Mar 2007
Posts: 934
Quote:
Originally Posted by 6233638 View Post
Seems to depend on the source. Sometimes that works, many times it does not, in my experience.

Auto (Video)
Film

That's why I have madVR set to force film mode by default, and change it to auto myself if that causes problems, which is rare. (rarer than this, at least)
Is this US TV? Can you post a sample please?
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7
DragonQ is offline   Reply With Quote
Old 17th January 2013, 10:11   #16975  |  Link
toniash
Registered User
 
Join Date: Oct 2010
Posts: 131
Quote:
Originally Posted by AndreaMG View Post
See here:
http://forum.doom9.org/showthread.php?t=157634

If by "effects" you mean sharpening I personally like "r=1, sharpen edge complex, deband and minimal denoise.txt", I have a plasma and edge sharpening helps, it really depends on personal tastes and your tv/monitor.
I use this ->
// script=ps_3_0
// SuperResolution - V1.0=ps_2_0
// Emmanuel - 6/03/2010
// www.homecinema-fr.com/forum/viewtopic.php?f=1195&t=29814317&start=981

// Super-resolution filter to be used behind a sharpen filter
// such as unsharp mask, ffdshow or avisynth LSF.

#define FinesseRendu 1 // 0: very fine, 1: end, 2: medium, 3: coarse

#define SeuilBruit 0.15 // to prevent the rise in background noise and
// The enhancement of small details in the textures
// Between 0.1 and 0.2

#define diff 0.49 // affect the rendering "3D-Like", type:
// 0.49 => 3D-Like + now
// 0.50 => 3D-Like this
// 0.51 => 3D-Like - this

#define ICG 3 // Intensity of gamma correction, type 0 to 5
// 0: low, 5: high

#define IAT 0 // Intensity enhancement of textures, from 0 to 3 type
// 0: strong (recommended for diffuser 720p)
// 3: low (recommended for diffuser 1080p)

sampler s0 : register(s0);
float4 p1 : register(c1);

#define dx (p1[0])
#define dy (p1[1])

float4 main( float2 tex : TEXCOORD0 ) : COLOR
{
// Pixel original, blurred, corrected
float4 ori = tex2D(s0, tex);
float4 flou;
float4 cori;
float seuil = 0.82 + FinesseRendu/100;

// Get the matrix of 9 points
// [1, 2, 3]
// [4, ori, 5]
// [6, 7, 8]

float4 c1 = tex2D(s0, tex + float2(-dx,-dy));
float4 c2 = tex2D(s0, tex + float2(0,-dy));
float4 c3 = tex2D(s0, tex + float2(dx,-dy));
float4 c4 = tex2D(s0, tex + float2(-dx,0));
float4 c5 = tex2D(s0, tex + float2(dx,0));
float4 c6 = tex2D(s0, tex + float2(-dx,dy));
float4 c7 = tex2D(s0, tex + float2(0,dy));
float4 c8 = tex2D(s0, tex + float2(dx,dy));

// Edge detection
// Filter by sobel
float delta1,delta2,value;

// Horizontal gradient
// [ -1, 0 ,1 ]
// [ -2, 0, 2 ]
// [ -1, 0 ,1 ]
delta1 = (c3 + 2*c5 + c8)-(c1 + 2*c4 + c6);

// Vertical Gradient
// [ -1,- 2,-1 ]
// [ 0, 0, 0 ]
// [ 1, 2, 1 ]
delta2 = (c6 + 2*c7 + c8)-(c1 + 2*c2 + c3);

// Calculation
value = sqrt(mul(delta1,delta1) + mul(delta2,delta2)) ;

// Gamma adaptive near a transition
cori = ori;
if ((value >= seuil-diff*1.15)&&(value <= seuil)) cori = pow(ori,1./(1-value/(10.5-ICG/10)));
//If ((value> = threshold-diff * 1.15) && (value <= threshold)) cori = float4 (1,0,0,0);

// Unsharp Mask to enhance the textures

// Calculate blurring (Gaussian)
// To normalize the values, divide by the sum of the coef
// 1/(1+2+1+2+4+2+1+2+1) = 1/ 16 = .0625

flou = (c1+c3+c6+c8 + 2*(c2+c4+c5+c7)+ 4*cori)*0.0625;

// Sharpen textures if they are far from an edge
if ((value > SeuilBruit) && (value < seuil-diff)) cori = (2-IAT/10)*cori - (1-IAT/10)*flou;
//If ((value> SeuilBruit) && (value <prev-line)) cori = float4 (0,0,1,0);

return cori;
}
toniash is offline   Reply With Quote
Old 17th January 2013, 10:28   #16976  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by Dodgexander View Post
After cutting a sample. I found something interesting and probably the answer to why this is happening.

My samples are taken from the same file; A recording from BBC One HD, a DVB-T2 channel in the UK.

I first took a sample in the middle of the file, played the file and it worked fine, MadVR recognised the interlaced content and automatically did the job. I was so surprised I checked the mediainfo of the file, it was labeled as Interlaced.

So i checked the source file in mediainfo and it was labeled "progressive".

Then I realised something I read online. The BBC said that it would be switching its broadcasts between 25p and 25i, depending on the program shown.

I duly took a sample from the advertisements at the beginning of my recording and as I thought, it was labeled as progressive, meaning the recording changed from 25p to 25i when the program started, the stream was changed.

So this begs the question really, I'm guessing this is the cause of the error, but is it possible for Madvr to detect the change?

I have uploaded 3 files, one of which i think is when the change occurs, but for certain you can see the differences in flags for interlacing between the files.
We've just discussed this very problem in the last 2 pages. But thanks for the samples, maybe they'll be helpful.

Quote:
Originally Posted by dansrfe View Post
Changing from DXVA2 (under Image downscaling) to something else with DXVA2 native decoding on in LAV Video doesn't make a difference The video basically freezes for 10 seconds and then LAV switches over to software decoding with avcodec and playback starts again.
Ok, so it's not DXVA scaling. I'm not sure what it is then. It seems most other people don't have this problem? The creation of the Direct3D device on the new monitor doesn't seem to work. I don't know why...

Quote:
Originally Posted by DragonQ View Post
Halved resolution? That shouldn't be happening at all unless you're using bob deinterlacing. What video card do you have? Here's a screenshot comparison of 25p video in a 50i stream, using hardware deinterlacing on an nVidia GTS250:

Auto Mode (detected as "video")
Film Mode

They are identical.
Sometimes DXVA gets it right, sometimes not. I've several PAL DVD samples where DXVA switches to video mode deinterlacing which introduces artifacts compared to proper IVTC. Most of the time it's not really half resolution, but still, it can be quite visible. If artifacts show up, they can be worse than just softness. Artifacts can be things like moire, or "line jumping", which can be quite distracting.

Quote:
Originally Posted by DragonQ View Post
Is this US TV? Can you post a sample please?
This is a PAL DVD. 6233638 sent me a sample of this a while ago. This is a rare case, though. Most other PAL DVDs are not as bad as this. Also my AMD card handles this a lot better than 6233638's GPU. Seems that AMD vs. NVidia are quite different in their PAL DVD IVTC quality.

Quote:
Originally Posted by nub234 View Post
Double checked on MPC-HC with LAV Splitters/Decoders and can confirm the problem exists there too with MadVR 0.85.2+

The exact steps I took are basically load up the file, pause the file frame step a few times really quickly to try and navigate to a specific frame and it throws a freeze. It then seems to be ok for a few seconds of frame stepping, and then freezes again. Each time it freezes the video also seems to skip a few seconds.

I cannot differentiate the freezes between different files, ie. they all seem to freeze equally, so I've uploaded a short file.

http://www56.zippyshare.com/v/1652887/file.html
Hmmmm... The only way I can reproduce any problems is if I hold the frame step keys pressed for a while. Then video plays fast forward for a few seconds, and then freezes. But when frame stepping quickly frame by frame, I can't reproduce any issues. Anyway, I can see if I can find the cause of the freeze when holding the frame stepping keys. Maybe that will also fix the issue you're seeing.

Last edited by madshi; 17th January 2013 at 10:32.
madshi is offline   Reply With Quote
Old 17th January 2013, 12:54   #16977  |  Link
PetitDragon
Registered User
 
Join Date: Sep 2006
Posts: 81
Quote:
Originally Posted by G_M_C View Post
Q: Why do you think you want or have to use a shader?
Just likes "Why do you think you want or have to use MadVR?"?
PetitDragon is offline   Reply With Quote
Old 17th January 2013, 14:05   #16978  |  Link
pururin
Registered User
 
Join Date: Dec 2011
Posts: 54
Quote:
Originally Posted by 6233638 View Post
That's true, but SSRC seems to do very well on these characteristics: http://src.infinitewave.ca/

I was able to find examples where the Libsamplerate resampler (the default) produced audible aliasing. (in tests specifically designed to reveal it)
In real world scenarios, is it worth costing more CPU power for using SSRC over the default Libsamplerate?

I've read some posts on Hydrogenaudio stating that good quality resamplers aren't much different as long as they do their math right.
pururin is offline   Reply With Quote
Old 17th January 2013, 14:28   #16979  |  Link
nub234
Registered User
 
Join Date: Nov 2010
Posts: 6
Quote:
Originally Posted by madshi View Post
Hmmmm... The only way I can reproduce any problems is if I hold the frame step keys pressed for a while. Then video plays fast forward for a few seconds, and then freezes. But when frame stepping quickly frame by frame, I can't reproduce any issues. Anyway, I can see if I can find the cause of the freeze when holding the frame stepping keys. Maybe that will also fix the issue you're seeing.
Thanks madshi, appreciate it.
nub234 is offline   Reply With Quote
Old 17th January 2013, 15:09   #16980  |  Link
Dodgexander
Registered User
 
Join Date: Jul 2008
Posts: 157
Thanks Madshi. Can someone explain what the problem is to me? I have tried to scan through the thread to understand, but have had no success.

So far I notice that the problem relates to "film mode" rather than "video mode".

So film mode presumes theres no deinterlacing?
Video mode presumes there is?

How does this work with pal compared to ntsc?
Dodgexander is offline   Reply With Quote
Reply

Tags
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:04.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.